.toast-container[data-v-b992e826]{position:fixed;bottom:16px;right:16px;z-index:100;display:flex;flex-direction:column-reverse;gap:8px;pointer-events:none}.toast[data-v-b992e826]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--radius-md);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);box-shadow:var(--shadow-md);font-size:12px;pointer-events:auto}.toast-icon[data-v-b992e826]{width:16px;height:16px;flex-shrink:0}.toast-success[data-v-b992e826]{border-color:#1ea6624d}.toast-error[data-v-b992e826]{border-color:#df22254d}.toast-info[data-v-b992e826]{border-color:#16a4e24d}.toast-enter-active[data-v-b992e826]{transition:all .2s cubic-bezier(.16,1,.3,1)}.toast-leave-active[data-v-b992e826]{transition:all .15s ease}.toast-enter-from[data-v-b992e826]{opacity:0;transform:translateY(8px) scale(.96)}.toast-leave-to[data-v-b992e826]{opacity:0;transform:translate(20px)}:root{color-scheme:light;--background: oklch(.995 0 0);--foreground: oklch(.145 0 0);--card: oklch(.975 .002 90);--card-foreground: var(--foreground);--popover: oklch(1 0 0);--popover-foreground: var(--foreground);--primary: oklch(.12 0 0);--primary-foreground: oklch(.985 0 0);--secondary: oklch(.965 .002 90);--secondary-foreground: oklch(.2 0 0);--muted: oklch(.965 .002 90);--muted-foreground: oklch(.55 0 0);--accent: oklch(.95 .003 90);--accent-foreground: oklch(.16 0 0);--destructive: oklch(.58 .22 27);--destructive-foreground: oklch(.985 0 0);--success: oklch(.64 .15 155);--warning: oklch(.75 .15 80);--info: oklch(.68 .14 235);--border: oklch(.91 0 0);--input: oklch(.9 0 0);--ring: oklch(.2 0 0);--sidebar-bg: oklch(.995 0 0);--sidebar-border: oklch(.93 0 0);--radius: .5rem;--radius-sm: calc(var(--radius) - 4px);--radius-md: calc(var(--radius) - 2px);--radius-lg: calc(var(--radius) + 2px);--font-sans: "Inter", "Noto Sans SC", ui-sans-serif, system-ui, -apple-system, sans-serif;--font-mono: "Roboto Mono", ui-monospace, "SF Mono", monospace;--shadow-xs: 0 1px 2px oklch(0 0 0 / .05);--shadow-sm: 0 1px 3px oklch(0 0 0 / .08), 0 1px 2px oklch(0 0 0 / .04);--shadow-md: 0 4px 12px oklch(0 0 0 / .08), 0 1px 3px oklch(0 0 0 / .05);--shadow-lg: 0 16px 40px oklch(0 0 0 / .12), 0 4px 12px oklch(0 0 0 / .06)}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--background: oklch(.13 0 0);--foreground: oklch(.95 0 0);--card: oklch(.18 0 0);--popover: oklch(.17 0 0);--primary: oklch(.96 0 0);--primary-foreground: oklch(.12 0 0);--secondary: oklch(.21 0 0);--secondary-foreground: oklch(.94 0 0);--muted: oklch(.21 0 0);--muted-foreground: oklch(.64 0 0);--accent: oklch(.24 0 0);--accent-foreground: oklch(.96 0 0);--destructive: oklch(.65 .2 28);--border: oklch(.27 0 0);--input: oklch(.3 0 0);--ring: oklch(.75 0 0);--sidebar-bg: oklch(.145 0 0);--sidebar-border: oklch(.25 0 0);--shadow-xs: 0 1px 2px oklch(0 0 0 / .3);--shadow-sm: 0 1px 3px oklch(0 0 0 / .4), 0 1px 2px oklch(0 0 0 / .2);--shadow-md: 0 4px 12px oklch(0 0 0 / .35), 0 1px 4px oklch(0 0 0 / .2);--shadow-lg: 0 20px 48px oklch(0 0 0 / .5), 0 4px 16px oklch(0 0 0 / .3)}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--background);color:var(--foreground);line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit;color:inherit}input,select,textarea{font:inherit;color:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;top:0;left:0;bottom:0;width:240px;z-index:30;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;padding:20px 12px;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:8px;padding:0 8px 16px;font-size:15px;font-weight:600;border-bottom:1px solid var(--sidebar-border);margin-bottom:8px}.brand-icon{width:20px;height:20px;flex-shrink:0}.nav-section{margin-bottom:4px}.nav-section-label{display:block;padding:12px 10px 4px;font-size:11px;font-weight:500;color:var(--muted-foreground);letter-spacing:.02em}.nav-item{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border-radius:var(--radius-md);font-size:12px;font-weight:400;color:var(--muted-foreground);transition:background-color .15s,color .15s}.nav-item:hover{background:color-mix(in oklab,var(--secondary) 55%,transparent);color:var(--foreground)}.nav-active{background:color-mix(in oklab,var(--secondary) 60%,transparent);color:var(--foreground);font-weight:500}.nav-icon{width:16px;height:16px;flex-shrink:0;opacity:.7}.nav-active .nav-icon{opacity:1}.sidebar-footer{margin-top:auto;padding-top:8px;border-top:1px solid var(--sidebar-border)}.sidebar-user{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;font-size:12px;color:var(--foreground)}.sidebar-user-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-logout{width:100%;color:var(--muted-foreground)}.nav-logout:hover{color:var(--destructive);background:#df22250f}.main-content{flex:1;min-width:0;margin-left:240px;padding:28px 36px}.main-full{margin-left:0}.page-enter-active{transition:opacity .2s ease,transform .2s ease}.page-leave-active{transition:opacity .12s ease}.page-enter-from{opacity:0;transform:translateY(4px)}.page-leave-to{opacity:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:500;line-height:1;white-space:nowrap;transition:background-color .15s,color .15s,opacity .15s,transform .1s;outline:none}.btn:focus-visible{box-shadow:0 0 0 2px var(--background),0 0 0 4px var(--ring)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;pointer-events:none}.btn-sm{height:28px;padding:0 10px;font-size:11px}.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{background:color-mix(in oklab,var(--primary) 84%,transparent)}.btn-secondary{background:var(--secondary);color:var(--secondary-foreground)}.btn-secondary:hover{background:color-mix(in oklab,var(--secondary) 80%,var(--foreground))}.btn-outline{border:1px solid var(--input);background:var(--background);color:var(--foreground)}.btn-outline:hover{background:var(--accent);color:var(--accent-foreground)}.btn-ghost{color:var(--muted-foreground)}.btn-ghost:hover{background:var(--accent);color:var(--accent-foreground)}.btn-destructive{background:var(--destructive);color:var(--destructive-foreground)}.btn-destructive:hover{background:color-mix(in oklab,var(--destructive) 90%,transparent)}.btn-icon{width:32px;padding:0}.btn-icon.btn-sm{width:28px}.btn svg{width:14px;height:14px;flex-shrink:0}.field{width:100%;height:32px;padding:0 10px;border:1px solid var(--input);border-radius:var(--radius-md);background:color-mix(in oklab,var(--secondary) 55%,transparent);color:var(--foreground);font-size:12px;line-height:32px;transition:background-color .15s,box-shadow .15s,border-color .15s}.field:hover:not(:disabled):not(:focus){background:color-mix(in oklab,var(--secondary) 78%,transparent)}.field:focus{outline:none;background:var(--background);border-color:var(--ring);box-shadow:0 0 0 1px var(--ring)}.field::placeholder{color:var(--muted-foreground)}.field:disabled{opacity:.5;cursor:not-allowed}.field[aria-invalid=true]{border-color:var(--destructive);box-shadow:0 0 0 1px var(--destructive)}textarea.field{height:auto;min-height:80px;padding:8px 10px;line-height:1.5;resize:vertical}.field-label{display:flex;flex-direction:column;gap:4px}.field-label-text{font-size:11px;font-weight:500;color:var(--muted-foreground);line-height:1}.toggle{position:relative;width:28px;height:16px;display:inline-flex;align-items:center;cursor:pointer}.toggle input{position:absolute;opacity:0;width:0;height:0}.toggle-track{width:28px;height:16px;border-radius:999px;background:var(--input);transition:background-color .15s}.toggle input:checked+.toggle-track{background:var(--primary)}.toggle-thumb{position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:var(--background);box-shadow:var(--shadow-xs);transition:transform .15s}.toggle input:checked~.toggle-thumb{transform:translate(12px)}.card{padding:16px 20px;border-radius:var(--radius-lg);background:var(--card);border:1px solid transparent;transition:border-color .2s}.card:hover{border-color:color-mix(in oklab,var(--border) 55%,transparent)}.card-flat{background:transparent;border:none;padding:0}.card-flat:hover{border-color:transparent}.badge{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:400}.badge-default{background:color-mix(in oklab,var(--primary) 10%,transparent);color:var(--primary)}.badge-success{background:#1ea6621a;color:var(--success)}.badge-warning{background:#dfa11a1f;color:var(--warning)}.badge-destructive{background:#df22251a;color:var(--destructive)}.badge-info{background:#16a4e21a;color:var(--info)}.table-wrap{overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.table{width:100%;border-collapse:collapse;font-size:12px}.table th{height:36px;padding:0 8px;text-align:left;font-weight:400;color:var(--muted-foreground);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:8px;border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr{transition:background-color .15s}.table tbody tr:hover{background:color-mix(in oklab,var(--secondary) 45%,var(--background))}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.metric-card{padding:16px 20px;border-radius:var(--radius-lg);background:var(--card);border:1px solid transparent;transition:border-color .2s}.metric-card:hover{border-color:color-mix(in oklab,var(--border) 55%,transparent)}.metric-value{font-size:22px;font-weight:500;line-height:1.2;font-variant-numeric:tabular-nums}.metric-label{font-size:11px;color:var(--muted-foreground);margin-top:2px}.page-title{font-size:20px;font-weight:500;line-height:28px}.page-subtitle{font-size:12px;color:var(--muted-foreground);margin-top:2px}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.section-title{font-size:14px;font-weight:500;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.form-section{padding-bottom:16px;margin-bottom:16px;border-bottom:1px solid var(--border)}.form-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.form-section-title{font-size:12px;font-weight:500;color:var(--muted-foreground);margin-bottom:10px;text-transform:uppercase;letter-spacing:.03em}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0003;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);display:flex;align-items:center;justify-content:center;animation:overlay-in .15s ease}.dialog-box{width:min(440px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow-y:auto;padding:20px;border-radius:var(--radius-lg);background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:dialog-in .2s cubic-bezier(.16,1,.3,1)}.dialog-title{font-size:16px;font-weight:500;margin-bottom:4px}.dialog-desc{font-size:12px;color:var(--muted-foreground);line-height:1.5;margin-bottom:16px}.dialog-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes dialog-in{0%{opacity:0;transform:scale(.97) translateY(-4px)}to{opacity:1;transform:none}}.mono{font-family:var(--font-mono);font-size:11px}.toast-container{position:fixed;bottom:16px;right:16px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{padding:10px 16px;border-radius:var(--radius-md);background:var(--popover);border:1px solid var(--border);box-shadow:var(--shadow-md);font-size:12px;animation:toast-in .2s cubic-bezier(.16,1,.3,1)}.toast-error{border-color:var(--destructive)}.toast-success{border-color:var(--success)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:767px){.sidebar{display:none}.main-content{margin-left:0;padding:20px}.metric-grid{grid-template-columns:repeat(2,1fr)}.form-grid{grid-template-columns:1fr}}
