.toast-host[data-v-cbf33b69]{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:var(--sp-2);pointer-events:none;width:max-content;max-width:min(92vw,520px)}.toast[data-v-cbf33b69]{display:flex;align-items:flex-start;gap:var(--sp-2);padding:9px var(--sp-4);background:#2b3138;color:#fff;border-radius:var(--r-md);box-shadow:var(--sh-lg);font-size:var(--fs-sm);line-height:1.45;pointer-events:auto;cursor:pointer}.toast-dot[data-v-cbf33b69]{width:6px;height:6px;margin-top:6px;border-radius:50%;flex:none;background:#fff}.toast-success .toast-dot[data-v-cbf33b69]{background:#4ade80}.toast-warning .toast-dot[data-v-cbf33b69]{background:#fbbf24}.toast-error .toast-dot[data-v-cbf33b69]{background:#f87171}.toast-error[data-v-cbf33b69]{background:#4a1f1b}.toast-warning[data-v-cbf33b69]{background:#453411}.toast-msg[data-v-cbf33b69]{flex:1;word-break:break-word}.toast-enter-active[data-v-cbf33b69],.toast-leave-active[data-v-cbf33b69]{transition:all .2s ease}.toast-enter-from[data-v-cbf33b69]{opacity:0;transform:translateY(-8px)}.toast-leave-to[data-v-cbf33b69]{opacity:0;transform:translateY(-4px)}:root{--c-primary: #c0392b;--c-primary-dark: #a5321f;--c-primary-light: #f9e9e7;--c-accent: #d4a017;--c-accent-light: #fdf6e3;--c-success: #2e8b57;--c-success-light: #e8f5ee;--c-warning: #d68910;--c-warning-light: #fdf3e3;--c-danger: #b03a2e;--c-danger-light: #fbecea;--c-info: #2c6fa8;--c-info-light: #eaf2f9;--c-text: #1f2329;--c-text-2: #5a6472;--c-text-3: #8a94a6;--c-border: #e3e6ec;--c-border-strong: #cfd4dd;--c-bg: #f5f6f8;--c-bg-card: #ffffff;--c-bg-hover: #f0f2f5;--c-position: #2c6fa8;--c-position-bg: #eaf2f9;--c-culture: #d4a017;--c-culture-bg: #fdf6e3;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 16px;--fs-lg: 18px;--fs-xl: 22px;--fs-2xl: 28px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--r-full: 999px;--sh-sm: 0 1px 2px rgba(31, 35, 41, .06);--sh-md: 0 2px 8px rgba(31, 35, 41, .08);--sh-lg: 0 8px 24px rgba(31, 35, 41, .12);--sidebar-w: 232px;--header-h: 56px;--tabbar-h: 54px;--safe-bottom: env(safe-area-inset-bottom, 0px)}@media (max-width: 1023px){:root{--fs-base: 14px;--header-h: 50px}}*,*:before,*:after{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--fs-base);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3,h4,p{margin:0}a{color:var(--c-primary);text-decoration:none}button{font-family:inherit;font-size:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);height:34px;padding:0 var(--sp-4);border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-bg-card);color:var(--c-text);font-size:var(--fs-base);white-space:nowrap;transition:background .15s,border-color .15s,opacity .15s}.btn:hover:not(:disabled){background:var(--c-bg-hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--c-primary-dark);border-color:var(--c-primary-dark)}.btn-ghost{border-color:transparent;background:transparent;color:var(--c-text-2)}.btn-ghost:hover:not(:disabled){background:var(--c-bg-hover);color:var(--c-text)}.btn-sm{height:28px;padding:0 var(--sp-3);font-size:var(--fs-sm)}.btn-danger{color:var(--c-danger);border-color:var(--c-danger-light)}.btn-block{width:100%}.input,.select,.textarea{width:100%;height:34px;padding:0 var(--sp-3);border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:#fff;outline:none;transition:border-color .15s,box-shadow .15s}.textarea{height:auto;min-height:76px;padding:var(--sp-2) var(--sp-3);resize:vertical;line-height:1.6}.input:focus,.select:focus,.textarea:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-light)}.input::placeholder,.textarea::placeholder{color:var(--c-text-3)}.card{background:var(--c-bg-card);border-radius:var(--r-md);box-shadow:var(--sh-sm)}.card-pad{padding:var(--sp-4)}.tag{display:inline-flex;align-items:center;height:20px;padding:0 var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-xs);line-height:1;white-space:nowrap}.tag-success{background:var(--c-success-light);color:var(--c-success)}.tag-warning{background:var(--c-warning-light);color:var(--c-warning)}.tag-danger{background:var(--c-danger-light);color:var(--c-danger)}.tag-info{background:var(--c-info-light);color:var(--c-info)}.tag-gray{background:var(--c-bg-hover);color:var(--c-text-2)}.row{display:flex;align-items:center}.row-between{display:flex;align-items:center;justify-content:space-between}.col{display:flex;flex-direction:column}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.flex-1{flex:1}.wrap{flex-wrap:wrap}.text-2{color:var(--c-text-2)}.text-3{color:var(--c-text-3)}.text-sm{font-size:var(--fs-sm)}.text-xs{font-size:var(--fs-xs)}.text-lg{font-size:var(--fs-lg)}.text-xl{font-size:var(--fs-xl)}.bold{font-weight:600}.num{font-variant-numeric:tabular-nums}.center{text-align:center}.right{text-align:right}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-1{margin-top:var(--sp-1)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mb-2{margin-bottom:var(--sp-2)}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.page{padding:var(--sp-4)}.page-title{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--sp-3)}@media (max-width: 1023px){.page{padding:var(--sp-3);padding-bottom:calc(var(--sp-3) + var(--tabbar-h) + var(--safe-bottom))}}@media (min-width: 1024px){::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--c-border-strong);border-radius:var(--r-full)}::-webkit-scrollbar-track{background:transparent}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fade-in{animation:fadeIn .18s ease-out}
