.toasts[data-v-e1602b6e]{position:fixed;bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0));left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:var(--space-2);z-index:1000;pointer-events:none;max-width:min(92vw,480px)}.toast[data-v-e1602b6e]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);font-size:var(--text-sm);pointer-events:auto;cursor:pointer}.toast--success[data-v-e1602b6e]{border-color:#22c55e}.toast--success .icon[data-v-e1602b6e]{color:#22c55e}.toast--error[data-v-e1602b6e]{border-color:#ef4444}.toast--error .icon[data-v-e1602b6e]{color:#ef4444}.toast--warn[data-v-e1602b6e]{border-color:#f97316}.toast--warn .icon[data-v-e1602b6e]{color:#f97316}.toast__msg[data-v-e1602b6e]{word-break:break-word}.toast-enter-active[data-v-e1602b6e],.toast-leave-active[data-v-e1602b6e]{transition:all .2s ease}.toast-enter-from[data-v-e1602b6e],.toast-leave-to[data-v-e1602b6e]{opacity:0;transform:translateY(8px)}.modal-backdrop[data-v-d978571a]{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:999;padding:var(--space-4)}.modal[data-v-d978571a]{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:420px;width:100%}.modal__head[data-v-d978571a]{padding:var(--space-4) var(--space-4) 0}.modal__head h2[data-v-d978571a]{font-size:var(--text-lg)}.modal__body[data-v-d978571a]{padding:var(--space-4)}.modal__msg[data-v-d978571a]{font-size:var(--text-sm);color:var(--color-text);white-space:pre-wrap;word-break:break-word}.modal__input[data-v-d978571a]{margin-top:var(--space-3);width:100%;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm)}.modal__input[data-v-d978571a]:focus{outline:none;border-color:var(--color-primary)}.modal__actions[data-v-d978571a]{display:flex;gap:var(--space-2);justify-content:flex-end;padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-divider)}:root{--radius-xs: 4px;--radius-sm: 6px;--radius: 10px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 9999px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;--font-mono: var(--mono);--text-xs: .786rem;--text-sm: .857rem;--text-base: 1rem;--text-md: 1rem;--text-lg: 1.143rem;--text-xl: 1.429rem;--text-2xl: 1.714rem;--text-3xl: 2.286rem;--font-size-xs: .786rem;--font-size-sm: .857rem;--font-size-md: .929rem;--font-size-lg: 1.143rem;--font-size-xl: 1.429rem;--font-size-2xl: 1.714rem;--leading-tight: 1.25;--leading-snug: 1.4;--leading-normal: 1.6;--leading-relaxed: 1.75;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--sidebar-w: 240px;--sidebar-w-collapsed: 64px;--header-h: 56px;--content-max: 1280px;--reader-max: 720px;--z-header: 50;--z-sidebar: 60;--z-dropdown: 100;--z-tooltip: 200;--z-modal: 500;--z-toast: 900;--z-drawer: 400;--transition-fast: .12s ease;--transition: .16s ease;--transition-base: .16s ease;--transition-slow: .26s ease}:root,[data-theme=dark]{--bg: #0f172a;--surface: #1e293b;--surface2: #293548;--surface3: #1b2331;--log-bg: #0a0e1a;--border: #334155;--border-strong: #475569;--accent: #6366f1;--accent-h: #818cf8;--accent-muted: rgba(99,102,241,.15);--accent-soft: rgba(99,102,241,.12);--danger: #ef4444;--danger-soft: rgba(239,68,68,.12);--success: #10b981;--success-soft: rgba(16,185,129,.12);--warn: #f59e0b;--warning: #f59e0b;--warn-soft: rgba(245,158,11,.12);--info: #3b82f6;--info-soft: rgba(59,130,246,.12);--text: #f1f5f9;--text-2: #94a3b8;--text-3: #64748b;--text-muted: #64748b;--text-subtle: #475569;--text-on-accent: #ffffff;--shadow-xs: 0 1px 4px rgba(0,0,0,.25);--shadow-sm: 0 2px 8px rgba(0,0,0,.3);--shadow: 0 4px 24px rgba(0,0,0,.4);--shadow-md: 0 4px 24px rgba(0,0,0,.4);--shadow-lg: 0 12px 40px rgba(0,0,0,.5);--shadow-xl: 0 24px 64px rgba(0,0,0,.6);--sidebar-bg: var(--surface);--sidebar-bg-active: var(--accent-muted);--sidebar-text: var(--text-2);--sidebar-text-active: var(--accent-h);--sidebar-border: var(--border);--overlay: rgba(0,0,0,.55);--focus-ring: rgba(99,102,241,.5);color-scheme:dark}[data-theme=light]{--bg: #f6f8fb;--surface: #ffffff;--surface2: #f1f5f9;--surface3: #e9eef5;--log-bg: #0f172a;--border: #d7dee7;--border-strong: #b9c2cf;--accent: #4f46e5;--accent-h: #6366f1;--accent-muted: rgba(79,70,229,.1);--accent-soft: rgba(79,70,229,.08);--danger: #dc2626;--danger-soft: rgba(220,38,38,.1);--success: #059669;--success-soft: rgba(5,150,105,.1);--warn: #d97706;--warning: #d97706;--warn-soft: rgba(217,119,6,.1);--info: #2563eb;--info-soft: rgba(37,99,235,.1);--text: #0f172a;--text-2: #475569;--text-3: #94a3b8;--text-muted: #94a3b8;--text-subtle: #b9c2cf;--text-on-accent: #ffffff;--shadow-xs: 0 1px 4px rgba(15,23,42,.05);--shadow-sm: 0 2px 8px rgba(15,23,42,.06);--shadow: 0 4px 24px rgba(15,23,42,.08);--shadow-md: 0 4px 24px rgba(15,23,42,.08);--shadow-lg: 0 12px 40px rgba(15,23,42,.12);--shadow-xl: 0 24px 64px rgba(15,23,42,.18);--sidebar-bg: #ffffff;--sidebar-bg-active: rgba(79,70,229,.08);--sidebar-text: #475569;--sidebar-text-active: #4f46e5;--sidebar-border: #e2e8f0;--overlay: rgba(15,23,42,.4);--focus-ring: rgba(79,70,229,.4);color-scheme:light}[data-theme=contrast]{--bg: #000000;--surface: #0a1020;--surface2: #131c32;--surface3: #060b18;--log-bg: #050914;--border: #5a6f90;--border-strong: #7586a3;--accent: #818cf8;--accent-h: #a5b4fc;--accent-muted: rgba(129,140,248,.22);--accent-soft: rgba(129,140,248,.18);--danger: #ff5252;--danger-soft: rgba(255,82,82,.18);--success: #22e6a4;--success-soft: rgba(34,230,164,.18);--warn: #ffc043;--warning: #ffc043;--warn-soft: rgba(255,192,67,.18);--info: #5aa7ff;--info-soft: rgba(90,167,255,.18);--text: #ffffff;--text-2: #e2e8f0;--text-3: #a9b4c4;--text-muted: #a9b4c4;--text-subtle: #7586a3;--text-on-accent: #0b1020;--shadow-xs: 0 1px 4px rgba(0,0,0,.55);--shadow-sm: 0 2px 10px rgba(0,0,0,.55);--shadow: 0 4px 28px rgba(0,0,0,.65);--shadow-md: 0 4px 28px rgba(0,0,0,.65);--shadow-lg: 0 14px 48px rgba(0,0,0,.75);--shadow-xl: 0 28px 72px rgba(0,0,0,.85);--sidebar-bg: var(--surface);--sidebar-bg-active: var(--accent-muted);--sidebar-text: var(--text-2);--sidebar-text-active: var(--accent-h);--sidebar-border: var(--border);--overlay: rgba(0,0,0,.7);--focus-ring: rgba(165,180,252,.6);color-scheme:dark}[data-theme=sepia]{--bg: #efe5cc;--surface: #f5ecd6;--surface2: #e7dabb;--surface3: #ddcfa9;--log-bg: #3a2f1c;--border: #cdbb95;--border-strong: #b3a079;--accent: #b6552d;--accent-h: #c9663d;--accent-muted: rgba(182,85,45,.14);--accent-soft: rgba(182,85,45,.1);--danger: #b3261e;--danger-soft: rgba(179,38,30,.12);--success: #4f7a2f;--success-soft: rgba(79,122,47,.12);--warn: #b07a1a;--warning: #b07a1a;--warn-soft: rgba(176,122,26,.12);--info: #2f6a86;--info-soft: rgba(47,106,134,.12);--text: #3a2f1c;--text-2: #6b5b3f;--text-3: #8a785a;--text-muted: #8a785a;--text-subtle: #a8967a;--text-on-accent: #ffffff;--shadow-xs: 0 1px 4px rgba(90,70,30,.1);--shadow-sm: 0 2px 8px rgba(90,70,30,.12);--shadow: 0 4px 24px rgba(90,70,30,.16);--shadow-md: 0 4px 24px rgba(90,70,30,.16);--shadow-lg: 0 12px 40px rgba(90,70,30,.22);--shadow-xl: 0 24px 64px rgba(90,70,30,.28);--sidebar-bg: #e7dabb;--sidebar-bg-active: rgba(182,85,45,.14);--sidebar-text: #6b5b3f;--sidebar-text-active: #b6552d;--sidebar-border: #cdbb95;--overlay: rgba(58,47,28,.4);--focus-ring: rgba(182,85,45,.4);color-scheme:light}:root,[data-theme=dark],[data-theme=light],[data-theme=contrast],[data-theme=sepia]{--color-bg: var(--bg);--color-bg-elevated: var(--surface);--color-surface: var(--surface);--color-surface-2: var(--surface2);--color-surface-3: var(--surface3);--color-surface-hover: var(--surface2);--color-surface-active: var(--surface3);--color-border: var(--border);--color-border-strong: var(--border-strong);--color-divider: var(--border);--color-text: var(--text);--color-text-muted: var(--text-2);--color-text-subtle: var(--text-3);--color-text-on-primary: var(--text-on-accent);--color-primary: var(--accent);--color-primary-hover: var(--accent-h);--color-primary-soft: var(--accent-soft);--color-primary-soft-hover: var(--accent-muted);--color-accent: var(--accent);--color-success: var(--success);--color-success-soft: var(--success-soft);--color-danger: var(--danger);--color-danger-hover: var(--danger);--color-danger-soft: var(--danger-soft);--color-warning: var(--warn);--color-warning-soft: var(--warn-soft);--color-info-soft: var(--info-soft);--color-focus-ring: var(--focus-ring);--color-overlay: var(--overlay);--primary: var(--accent);--primary-hov: var(--accent-h);--bg-elev: var(--surface);--bg-elev2: var(--surface2);--chip: var(--accent-muted);--block: var(--accent-soft);--all-day: var(--info-soft);--gutter: var(--surface2);--today: var(--accent-muted);--muted: var(--text-3);--hover: var(--surface2);--accent-fg: var(--text-on-accent);--err-bg: var(--danger-soft);--err-fg: var(--danger);--warn-bg: var(--warn-soft);--warn-fg: var(--warn);--ok: var(--success);--fg: var(--text);--card: var(--surface);--accent-hi: var(--accent-h);--row-hover: var(--surface2);--error-bg: var(--danger-soft);--error-border: var(--danger);--error-fg: var(--danger);--danger-hi: var(--danger)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}html{scroll-behavior:smooth;font-size:var(--base-font-size, 14px)}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:1rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background var(--transition-slow),color var(--transition-slow)}a{color:var(--accent-h);text-decoration:none}a:hover{color:var(--text)}h1{font-size:1.6rem;font-weight:700;color:var(--text)}h2{font-size:1.25rem;font-weight:600;color:var(--text)}h3{font-size:1rem;font-weight:600;color:var(--text)}h4{font-size:.875rem;font-weight:600;color:var(--text)}p{color:var(--text-2)}img,svg,video{max-width:100%;display:block}::selection{background:var(--accent);color:var(--text-on-accent)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:.929rem;font-weight:500;cursor:pointer;border:none;font-family:var(--font);white-space:nowrap;transition:background var(--transition),opacity var(--transition),color var(--transition),border-color var(--transition),transform var(--transition)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--accent);color:var(--text-on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-h)}.btn-ghost{background:transparent;color:var(--text-2);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface2);color:var(--text);border-color:var(--border-strong)}.btn-soft{background:var(--accent-soft);color:var(--accent-h)}.btn-soft:hover:not(:disabled){background:var(--accent-muted)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){opacity:.88}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){opacity:.88}.btn-warn{background:var(--warn);color:#1a1a1a}.btn-warn:hover:not(:disabled){opacity:.88}.btn-sm{padding:5px 10px;font-size:.857rem}.btn-xs{padding:3px 8px;font-size:.786rem}.btn-lg{padding:10px 20px;font-size:1rem}.btn-icon{padding:6px;width:32px;height:32px}.btn-icon.btn-sm{width:26px;height:26px;padding:4px}.btn-block{display:flex;width:100%}.secondary{background:var(--surface3);color:var(--text-2)}.secondary:hover{background:var(--surface2);color:var(--text)}.btn-group{display:inline-flex}.btn-group .btn{border-radius:0}.btn-group .btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.btn-group .btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.btn-group .btn+.btn{border-left:1px solid rgba(255,255,255,.1)}.input,.select,.textarea{width:100%;padding:8px 12px;border-radius:var(--radius-sm);background:var(--surface2);border:1px solid var(--border);color:var(--text);font-size:.929rem;font-family:var(--font);outline:none;transition:border-color var(--transition),background var(--transition)}.input:hover,.select:hover,.textarea:hover{border-color:var(--border-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent)}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input-sm,.select-sm{padding:5px 10px;font-size:.857rem}.input-lg,.select-lg{padding:10px 14px;font-size:1rem}.textarea{resize:vertical;min-height:80px;line-height:1.5}.textarea-mono{font-family:var(--mono);font-size:.857rem}.select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%2394a3b8'%3E%3Cpath d='M6 8.5L1 3.5h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:28px}.checkbox,.radio{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:.929rem;color:var(--text-2);user-select:none}.checkbox input,.radio input{display:none}.checkbox-box,.radio-box{width:16px;height:16px;flex-shrink:0;border:1.5px solid var(--border);background:var(--surface2);transition:all var(--transition);display:flex;align-items:center;justify-content:center}.checkbox-box{border-radius:var(--radius-xs)}.radio-box{border-radius:50%}.checkbox-box:after{content:"";display:block;width:9px;height:5px;border:2px solid #fff;border-top:none;border-right:none;transform:rotate(-45deg) translateY(-1px);opacity:0;transition:opacity var(--transition)}.radio-box:after{content:"";display:block;width:8px;height:8px;border-radius:50%;background:#fff;opacity:0;transition:opacity var(--transition)}.checkbox input:checked~.checkbox-box,.radio input:checked~.radio-box{background:var(--accent);border-color:var(--accent)}.checkbox input:checked~.checkbox-box:after,.radio input:checked~.radio-box:after{opacity:1}.checkbox:hover .checkbox-box,.radio:hover .radio-box{border-color:var(--accent-h)}.checkbox input:disabled~.checkbox-box,.radio input:disabled~.radio-box{opacity:.4;cursor:not-allowed}.toggle{position:relative;width:36px;height:20px;display:inline-block}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:var(--border);border-radius:20px;cursor:pointer;transition:background var(--transition)}.toggle-slider:before{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:#fff;left:3px;top:3px;transition:transform var(--transition)}.toggle input:checked+.toggle-slider{background:var(--accent)}.toggle input:checked+.toggle-slider:before{transform:translate(16px)}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:.857rem;font-weight:500;color:var(--text-2)}.form-hint{font-size:.786rem;color:var(--text-3)}.form-error{font-size:.786rem;color:var(--danger)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.form-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px}.field__label{font-size:.857rem;font-weight:500;color:var(--text-2)}.input-group{display:flex}.input-group .input{border-radius:0}.input-group .input:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm)}.input-group .input:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.input-group .btn{border-radius:0}.input-group .btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0}.input-group-text{display:flex;align-items:center;padding:0 12px;background:var(--surface3);border:1px solid var(--border);font-size:.857rem;color:var(--text-3);white-space:nowrap}.input-group-text:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);border-right:none}.input-group-text:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none}.input-search{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='%2364748b'%3E%3Ccircle cx='6' cy='6' r='5' fill='none' stroke='%2364748b' stroke-width='1.5'/%3E%3Cline x1='9.5' y1='9.5' x2='13' y2='13' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:10px center;padding-left:30px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card-hover{transition:border-color var(--transition),transform var(--transition),box-shadow var(--transition)}.card-hover:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.card-elevated{box-shadow:var(--shadow-sm)}.card-flush{padding:0}.card-flush>.card-header,.card-flush>.card-body,.card-flush>.card-footer{padding:16px 20px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px}.card-flush>.card-header{margin-bottom:0;border-bottom:1px solid var(--border)}.card-title{font-size:1rem;font-weight:600;color:var(--text)}.card-body{flex:1;min-height:0;min-width:0}.card-footer{border-top:1px solid var(--border);padding-top:12px;margin-top:16px}.card-flush>.card-footer{margin-top:0;padding-top:12px}.panel{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:.857rem;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border)}.panel-body{padding:12px 14px}.panel-row{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;font-size:.929rem;border-bottom:1px solid var(--border)}.panel-row:last-child{border-bottom:none}.panel-collapse>.panel-header{cursor:pointer;user-select:none}.panel-collapse>.panel-header:after{content:"▸";transition:transform var(--transition)}.panel-collapse.is-open>.panel-header:after{transform:rotate(90deg)}.table{width:100%;border-collapse:collapse}.table th{padding:8px 12px;text-align:left;font-size:.786rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border);background:var(--surface2);position:sticky;top:0;z-index:1}.table td{padding:10px 12px;border-bottom:1px solid var(--border);font-size:.929rem;color:var(--text-2)}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface2);color:var(--text)}.table-compact th{padding:6px 10px}.table-compact td{padding:6px 10px;font-size:.857rem}.table-striped tbody tr:nth-child(2n) td{background:#7f7f7f0a}.table-fixed{table-layout:fixed}.table-wrap{overflow:auto;min-height:0}.table-wrap .table th{position:sticky;top:0;z-index:1}.table .cell-r{text-align:right}.table .cell-c{text-align:center}.table .cell-mono{font-family:var(--mono);font-size:.857rem}.table .cell-nowrap{white-space:nowrap}.table .cell-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:0}.table .th-sort{cursor:pointer;user-select:none}.table .th-sort:hover{color:var(--text)}.table .th-sort:after{content:" ↕";opacity:.3}.table .th-sort.asc:after{content:" ↑";opacity:1}.table .th-sort.desc:after{content:" ↓";opacity:1}.table .row-active td{background:var(--accent-muted)}.kv-list{display:grid;grid-template-columns:auto 1fr;gap:2px 16px;font-size:.929rem}.kv-key{color:var(--text-3);font-weight:500;white-space:nowrap;padding:4px 0}.kv-val{color:var(--text);padding:4px 0}.dl{display:flex;flex-direction:column;gap:12px}.dl-label{font-size:.786rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}.dl-value{font-size:.929rem;color:var(--text)}.list{list-style:none}.list-item{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:.929rem;color:var(--text-2);border-bottom:1px solid var(--border);transition:background var(--transition)}.list-item:last-child{border-bottom:none}.list-item:hover{background:var(--surface2);color:var(--text)}.list-item.is-active{background:var(--accent-muted);color:var(--accent-h)}.code{font-family:var(--mono);font-size:.857rem;line-height:1.6;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-2);white-space:pre;overflow:auto}.code-inline{font-family:var(--mono);font-size:.857rem;background:var(--surface2);border-radius:var(--radius-xs);padding:2px 6px;color:var(--accent-h)}.log{font-family:var(--mono);font-size:.786rem;line-height:1.7;background:var(--log-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;color:#c8d0dc;overflow:auto}.log-line{white-space:pre-wrap;word-break:break-all}.log-ts{color:var(--text-3);user-select:none;margin-right:8px}.log-info{color:var(--info)}.log-warn{color:var(--warn)}.log-error{color:var(--danger)}.log-debug{color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;font-size:.786rem;font-weight:600}.badge-green{background:var(--success-soft);color:var(--success)}.badge-red{background:var(--danger-soft);color:var(--danger)}.badge-indigo{background:var(--accent-muted);color:var(--accent-h)}.badge-yellow{background:var(--warn-soft);color:var(--warn)}.badge-blue{background:var(--info-soft);color:var(--info)}.badge-gray{background:#94a3b82e;color:var(--text-3)}.badge-outline{background:transparent;border:1px solid currentColor}.badge-sm{font-size:.714rem;padding:1px 6px}.badge-lg{font-size:.857rem;padding:3px 10px}.badge--primary{background:var(--accent-muted);color:var(--accent-h)}.badge--success{background:var(--success-soft);color:var(--success)}.badge--danger{background:var(--danger-soft);color:var(--danger)}.badge--warning{background:var(--warn-soft);color:var(--warn)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.dot-green{background:var(--success)}.dot-red{background:var(--danger)}.dot-yellow{background:var(--warn)}.dot-blue{background:var(--info)}.dot-gray{background:var(--text-3)}.dot-pulse{animation:dotPulse 1.5s ease-in-out infinite}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.3}}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:99px;font-size:.857rem;font-weight:500;background:var(--surface2);color:var(--text-2)}.tag-remove{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:.714rem;padding:0 2px;line-height:1}.tag-remove:hover{color:var(--danger)}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.929rem;border-left:3px solid}.alert-danger{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.alert-success{background:var(--success-soft);border-color:var(--success);color:var(--success)}.alert-warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.alert-info{background:var(--info-soft);border-color:var(--info);color:var(--info)}.alert-error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.alert--danger{background:var(--danger-soft);border-left:3px solid var(--danger);color:var(--danger)}.alert--success{background:var(--success-soft);border-left:3px solid var(--success);color:var(--success)}.alert--warn{background:var(--warn-soft);border-left:3px solid var(--warn);color:var(--warn)}.alert--info{background:var(--info-soft);border-left:3px solid var(--info);color:var(--info)}.modal-backdrop,.modal-overlay{position:fixed;inset:0;z-index:var(--z-modal);background:var(--overlay);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:520px;max-height:85vh;display:flex;flex-direction:column}.modal-lg{max-width:720px}.modal-sm{max-width:360px}.modal-xl{max-width:960px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-size:1.071rem;font-weight:600;color:var(--text)}.modal-body{padding:20px;overflow-y:auto;flex:1;min-height:0}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border);flex-wrap:wrap}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal__title{font-size:1.071rem;font-weight:600;color:var(--text)}.modal__body{padding:20px;overflow-y:auto;flex:1;min-height:0}.modal__footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border)}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:4px 10px;border-radius:var(--radius-xs);background:var(--text);color:var(--bg);font-size:.786rem;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition);z-index:var(--z-tooltip)}[data-tooltip]:hover:after{opacity:1}[data-tooltip-pos=bottom]:after{bottom:auto;top:calc(100% + 6px)}[data-tooltip-pos=left]:after{bottom:auto;top:50%;left:auto;right:calc(100% + 6px);transform:translateY(-50%)}[data-tooltip-pos=right]:after{bottom:auto;top:50%;left:calc(100% + 6px);transform:translateY(-50%)}@keyframes shimmer{to{background-position:200% center}}.skeleton{background:linear-gradient(90deg,var(--surface2) 25%,var(--surface) 50%,var(--surface2) 75%);background-size:200% auto;animation:shimmer 1.5s linear infinite;border-radius:var(--radius-sm)}.skeleton-text{height:14px;width:80%;margin-bottom:8px}.skeleton-title{height:20px;width:50%;margin-bottom:12px}.skeleton-avatar{width:32px;height:32px;border-radius:50%}.skeleton-row{height:36px;width:100%;margin-bottom:4px}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.spinner-sm{width:14px;height:14px}.spinner-lg{width:28px;height:28px;border-width:3px}.progress{height:6px;background:var(--surface2);border-radius:3px;overflow:hidden}.progress-bar{height:100%;border-radius:3px;transition:width .3s ease;background:var(--accent)}.progress-bar-green{background:var(--success)}.progress-bar-red{background:var(--danger)}.progress-bar-yellow{background:var(--warn)}.progress-lg{height:10px;border-radius:5px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 16px;color:var(--text-3);text-align:center}.empty-state .icon{font-size:2.5rem;opacity:.4}.empty-state__title{font-size:1.071rem;font-weight:600;color:var(--text-2)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--accent-muted);color:var(--accent-h);font-size:.857rem;font-weight:600;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.avatar-sm{width:24px;height:24px;font-size:.714rem}.avatar-lg{width:44px;height:44px;font-size:1.143rem}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);overflow-x:auto}.tab{padding:8px 16px;font-size:.929rem;font-weight:500;color:var(--text-3);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;transition:all var(--transition);font-family:var(--font);white-space:nowrap}.tab:hover{color:var(--text-2)}.tab.is-active{color:var(--accent-h);border-bottom-color:var(--accent)}.tab-sm{padding:6px 12px;font-size:.857rem}.tabs-pill{border-bottom:none;gap:4px;background:var(--surface2);border-radius:var(--radius-sm);padding:3px}.tabs-pill .tab{border-bottom:none;border-radius:var(--radius-xs);padding:5px 12px}.tabs-pill .tab.is-active{background:var(--accent);color:var(--text-on-accent)}.dropdown{position:relative;display:inline-block}.dropdown-menu{position:absolute;top:100%;left:0;z-index:var(--z-dropdown);min-width:160px;margin-top:4px;padding:4px 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);display:none}.dropdown.is-open>.dropdown-menu{display:block}.dropdown-menu-right{left:auto;right:0}.dropdown-item{display:flex;align-items:center;gap:8px;padding:7px 14px;font-size:.929rem;color:var(--text-2);cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:var(--font);transition:background var(--transition),color var(--transition)}.dropdown-item:hover{background:var(--surface2);color:var(--text)}.dropdown-item-danger{color:var(--danger)}.dropdown-item-danger:hover{background:var(--danger-soft)}.dropdown-divider{border:none;border-top:1px solid var(--border);margin:4px 0}.dropdown-header{padding:6px 14px;font-size:.786rem;font-weight:600;color:var(--text-3);text-transform:uppercase}.toolbar{display:flex;align-items:center;gap:8px;padding:8px 0;flex-wrap:wrap}.toolbar-separator{width:1px;height:20px;background:var(--border);flex-shrink:0}.toolbar-spacer{flex:1}.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.divider{border:none;border-top:1px solid var(--border);margin:16px 0}.divider-sm{margin:8px 0}.page{display:flex;flex-direction:column;gap:16px;padding:16px;min-width:0}.page-narrow{max-width:960px;margin:0 auto}.stack{display:flex;flex-direction:column;gap:12px}.stack-sm{display:flex;flex-direction:column;gap:8px}.stack-md{display:flex;flex-direction:column;gap:12px}.stack-lg{display:flex;flex-direction:column;gap:16px}.row{display:flex;flex-direction:row;gap:8px;align-items:center}.row-sm{display:flex;flex-direction:row;gap:4px;align-items:center}.row-md{display:flex;flex-direction:row;gap:8px;align-items:center}.row-lg{display:flex;flex-direction:row;gap:16px;align-items:center}.row-wrap{flex-wrap:wrap}.row-spaced{justify-content:space-between}.text-primary{color:var(--accent-h)}.text-danger{color:var(--danger)}.text-success{color:var(--success)}.text-warn{color:var(--warn)}.text-info{color:var(--info)}.text-muted{color:var(--text-3)}.text-subtle{color:var(--text-subtle)}.text-secondary{color:var(--text-2)}.text-xs{font-size:.786rem}.text-sm{font-size:.857rem}.text-md{font-size:1rem}.text-lg{font-size:1.143rem}.text-xl{font-size:1.429rem}.text-bold{font-weight:600}.text-semibold{font-weight:500}.text-mono{font-family:var(--mono)}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-nowrap{white-space:nowrap}.text-center{text-align:center}.text-right{text-align:right}.text-upper{text-transform:uppercase;letter-spacing:.04em}.gap-2{gap:2px}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.gap-32{gap:32px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-12{margin-top:12px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-4{margin-bottom:4px}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.p-8{padding:8px}.p-12{padding:12px}.p-16{padding:16px}.p-24{padding:24px}.p-0{padding:0}.flex{display:flex}.inline-flex{display:inline-flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1;min-width:0;min-height:0}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.grid{display:grid}.grid-cols-1{grid-template-columns:1fr}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.w-full{width:100%}.h-full{height:100%}.min-h-0{min-height:0}.min-w-0{min-width:0}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.hidden{display:none}.block{display:block}.inline-block{display:inline-block}.relative{position:relative}.absolute{position:absolute}.sticky{position:sticky}.inset-0{inset:0}.z-10{z-index:10}.z-50{z-index:50}.border{border:1px solid var(--border)}.border-t{border-top:1px solid var(--border)}.border-b{border-bottom:1px solid var(--border)}.rounded{border-radius:var(--radius)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-full{border-radius:9999px}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:all .2s ease}.slide-enter-from,.slide-leave-to{opacity:0;transform:translateY(-8px)}@media (max-width: 1024px){:root{--sidebar-w: 220px}}@media (max-width: 768px){:root{--header-h: 52px}h1{font-size:1.35rem}h2{font-size:1.15rem}.form-row,.form-row-3,.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.hide-mobile{display:none!important}.card{padding:16px}.modal{max-height:94vh}.modal-header,.modal-footer{padding:12px 16px}.modal-body{padding:16px}}@media (max-width: 480px){body{font-size:.929rem}.hide-sm{display:none!important}.card{padding:14px;border-radius:var(--radius-sm)}.toolbar{gap:6px}.btn{padding:7px 12px}.btn-lg{padding:9px 16px}}@media (min-width: 769px){.show-mobile{display:none!important}}html[data-density=compact]{--space-2: 6px;--space-3: 9px;--space-4: 12px;--space-5: 15px;--space-6: 18px}html[data-density=compact] body{font-size:13px;line-height:1.45}html[data-density=compact] .btn{padding:5px 11px;font-size:12px}html[data-density=compact] .btn-sm{padding:3px 8px;font-size:11px}html[data-density=compact] .btn-icon{width:28px;height:28px;padding:5px}html[data-density=compact] .input,html[data-density=compact] .select,html[data-density=compact] .textarea{padding:5px 9px;font-size:12px}html[data-density=compact] .card{padding:14px}html[data-density=compact] .card-flush>.card-header,html[data-density=compact] .card-flush>.card-body,html[data-density=compact] .card-flush>.card-footer{padding:10px 14px}html[data-density=compact] .table th,html[data-density=compact] .table td{padding:6px 10px;font-size:12px}html[data-density=compact] .table-compact th,html[data-density=compact] .table-compact td{padding:4px 8px;font-size:11px}html[data-density=compact] .badge{padding:1px 6px;font-size:10px}html[data-density=compact] .modal-header{padding:12px 16px}html[data-density=compact] .modal-body{padding:16px}html[data-density=compact] .modal-footer{padding:10px 16px}html[data-density=relaxed]{--space-2: 10px;--space-3: 16px;--space-4: 22px;--space-5: 28px;--space-6: 36px}html[data-density=relaxed] body{font-size:15px;line-height:1.7}html[data-density=relaxed] .btn{padding:10px 20px;font-size:14px}html[data-density=relaxed] .btn-sm{padding:7px 14px;font-size:13px}html[data-density=relaxed] .btn-icon{width:40px;height:40px;padding:9px}html[data-density=relaxed] .input,html[data-density=relaxed] .select,html[data-density=relaxed] .textarea{padding:11px 15px;font-size:14px}html[data-density=relaxed] .card{padding:26px}html[data-density=relaxed] .table th,html[data-density=relaxed] .table td{padding:14px 16px}:root{font-size:var(--base-font-size, 14px);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 2.5rem;--space-9: 3rem}[data-density=compact]{--space-3: .5rem;--space-4: .65rem;--space-5: .85rem;--space-6: 1rem;--space-7: 1.35rem;--space-8: 1.7rem;--space-9: 2rem;--row-py: .4rem}[data-density=normal]{--row-py: .7rem}[data-density=relaxed]{--space-3: 1.05rem;--space-4: 1.4rem;--space-5: 1.75rem;--space-6: 2.1rem;--space-7: 2.8rem;--space-8: 3.5rem;--space-9: 4.2rem;--row-py: 1.1rem}html[data-density] .message-row,html[data-density] .thread-row__head,html[data-density] .thread-child{padding-top:var(--row-py);padding-bottom:var(--row-py)}:root{--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-pill: 999px;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: .9375rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--leading-tight: 1.2;--leading-snug: 1.35;--leading-normal: 1.5;--leading-relaxed: 1.7;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--header-h: 56px;--sidebar-w: 264px;--content-max: 1200px;--reader-max: 760px;--transition-fast: .12s ease;--transition-base: .18s ease;--transition-slow: .24s cubic-bezier(.2, .8, .2, 1);--z-drawer: 50;--z-modal: 100;--z-toast: 200}:root,[data-theme=light]{color-scheme:light;--color-bg: #f3f5fa;--color-bg-elevated: #ffffff;--color-surface: #ffffff;--color-surface-2: #f1f5f9;--color-surface-3: #e8eef7;--color-surface-hover: rgba(15, 23, 42, .04);--color-surface-active: rgba(15, 23, 42, .07);--color-border: #e4e8f0;--color-border-strong: #cdd5e2;--color-divider: #eef1f6;--color-text: #0f172a;--color-text-muted: #5b6577;--color-text-subtle: #8a93a4;--color-text-on-primary: #ffffff;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-soft: #e8efff;--color-primary-soft-hover: #d8e3ff;--color-accent: #7c3aed;--color-success: #16a34a;--color-success-soft: #dcfce7;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-soft: #fee2e2;--color-warning: #d97706;--color-warning-soft: #fef3c7;--color-info-soft: #dbeafe;--color-focus-ring: rgba(37, 99, 235, .35);--color-overlay: rgba(15, 23, 42, .45);--shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .07);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .06);--shadow-lg: 0 12px 24px -8px rgba(15, 23, 42, .18), 0 4px 8px -4px rgba(15, 23, 42, .08);--shadow-xl: 0 24px 48px -12px rgba(15, 23, 42, .25);--sidebar-bg: #ffffff;--sidebar-bg-active: #eef3ff;--sidebar-text: #3f4a5c;--sidebar-text-active: #1d4ed8;--sidebar-border: #e4e8f0}[data-theme=dark]{color-scheme:dark;--color-bg: #0a0f1c;--color-bg-elevated: #111827;--color-surface: #131b2c;--color-surface-2: #1a2438;--color-surface-3: #243049;--color-surface-hover: rgba(255, 255, 255, .04);--color-surface-active: rgba(255, 255, 255, .08);--color-border: #1f2a40;--color-border-strong: #334155;--color-divider: #1a2438;--color-text: #e6edf7;--color-text-muted: #9aa6bb;--color-text-subtle: #6b7891;--color-text-on-primary: #ffffff;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-primary-soft: rgba(59, 130, 246, .16);--color-primary-soft-hover: rgba(59, 130, 246, .24);--color-accent: #a78bfa;--color-success: #34d399;--color-success-soft: rgba(52, 211, 153, .14);--color-danger: #f87171;--color-danger-hover: #fca5a5;--color-danger-soft: rgba(248, 113, 113, .14);--color-warning: #fbbf24;--color-warning-soft: rgba(251, 191, 36, .14);--color-info-soft: rgba(59, 130, 246, .16);--color-focus-ring: rgba(59, 130, 246, .55);--color-overlay: rgba(0, 0, 0, .6);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 32px rgba(0, 0, 0, .6);--shadow-xl: 0 28px 56px rgba(0, 0, 0, .7);--sidebar-bg: #0d1424;--sidebar-bg-active: rgba(59, 130, 246, .18);--sidebar-text: #b6c1d6;--sidebar-text-active: #93c5fd;--sidebar-border: #1a2438}[data-theme=sepia]{color-scheme:light;--color-bg: #efe5cc;--color-bg-elevated: #fbf6e6;--color-surface: #fbf6e6;--color-surface-2: #f1e7ce;--color-surface-3: #e9dcb8;--color-surface-hover: rgba(80, 56, 24, .05);--color-surface-active: rgba(80, 56, 24, .08);--color-border: #ddcd9e;--color-border-strong: #c2ad7a;--color-divider: #e6d8b3;--color-text: #3d2f1c;--color-text-muted: #6f5c39;--color-text-subtle: #957f55;--color-text-on-primary: #fbf6e6;--color-primary: #b6552d;--color-primary-hover: #8f4220;--color-primary-soft: #f4e2c9;--color-primary-soft-hover: #ecd2ad;--color-accent: #876c2f;--color-success: #5b7a26;--color-success-soft: #e2e8c2;--color-danger: #a93226;--color-danger-hover: #862419;--color-danger-soft: #f0d3cb;--color-warning: #b9791b;--color-warning-soft: #f5e3b2;--color-info-soft: #e6dabd;--color-focus-ring: rgba(182, 85, 45, .4);--color-overlay: rgba(60, 38, 14, .45);--shadow-xs: 0 1px 2px rgba(60, 38, 14, .08);--shadow-sm: 0 1px 3px rgba(60, 38, 14, .1);--shadow-md: 0 4px 8px rgba(60, 38, 14, .14);--shadow-lg: 0 12px 24px rgba(60, 38, 14, .18);--shadow-xl: 0 28px 48px rgba(60, 38, 14, .22);--sidebar-bg: #f1e7ce;--sidebar-bg-active: #ecd2ad;--sidebar-text: #5a4729;--sidebar-text-active: #8f4220;--sidebar-border: #ddcd9e}@media (prefers-color-scheme: dark){:root:not([data-theme]){color-scheme:dark;--color-bg: #0a0f1c;--color-bg-elevated: #111827;--color-surface: #131b2c;--color-surface-2: #1a2438;--color-surface-3: #243049;--color-surface-hover: rgba(255, 255, 255, .04);--color-surface-active: rgba(255, 255, 255, .08);--color-border: #1f2a40;--color-border-strong: #334155;--color-divider: #1a2438;--color-text: #e6edf7;--color-text-muted: #9aa6bb;--color-text-subtle: #6b7891;--color-text-on-primary: #ffffff;--color-primary: #3b82f6;--color-primary-hover: #60a5fa;--color-primary-soft: rgba(59, 130, 246, .16);--color-primary-soft-hover: rgba(59, 130, 246, .24);--color-accent: #a78bfa;--color-success: #34d399;--color-success-soft: rgba(52, 211, 153, .14);--color-danger: #f87171;--color-danger-hover: #fca5a5;--color-danger-soft: rgba(248, 113, 113, .14);--color-warning: #fbbf24;--color-warning-soft: rgba(251, 191, 36, .14);--color-info-soft: rgba(59, 130, 246, .16);--color-focus-ring: rgba(59, 130, 246, .55);--color-overlay: rgba(0, 0, 0, .6);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 32px rgba(0, 0, 0, .6);--shadow-xl: 0 28px 56px rgba(0, 0, 0, .7);--sidebar-bg: #0d1424;--sidebar-bg-active: rgba(59, 130, 246, .18);--sidebar-text: #b6c1d6;--sidebar-text-active: #93c5fd;--sidebar-border: #1a2438}}*,*:before,*:after{box-sizing:border-box}html,body,#app{margin:0;padding:0;min-height:100%}html{-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base),color var(--transition-base)}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer;padding:0}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4,h5{margin:0;font-weight:var(--weight-semibold);line-height:var(--leading-snug);letter-spacing:-.01em}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}p{margin:0}::selection{background:var(--color-primary-soft);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-xs)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-pill);border:2px solid var(--color-bg)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.btn{--btn-bg: var(--color-surface);--btn-fg: var(--color-text);--btn-border: var(--color-border-strong);--btn-hover: var(--color-surface-hover);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.5rem .95rem;min-height:38px;font-size:var(--text-sm);font-weight:var(--weight-medium);line-height:1;color:var(--btn-fg);background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:var(--radius-sm);cursor:pointer;user-select:none;white-space:nowrap;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.btn:hover:not(:disabled){background:var(--btn-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn .icon{width:16px;height:16px}.btn--primary{--btn-bg: var(--color-primary);--btn-fg: var(--color-text-on-primary);--btn-border: var(--color-primary);--btn-hover: var(--color-primary-hover)}.btn--primary:hover:not(:disabled){border-color:var(--color-primary-hover)}.btn--ghost{--btn-bg: transparent;--btn-border: transparent;--btn-hover: var(--color-surface-hover)}.btn--soft{--btn-bg: var(--color-primary-soft);--btn-fg: var(--color-primary);--btn-border: transparent;--btn-hover: var(--color-primary-soft-hover)}.btn--danger{--btn-bg: transparent;--btn-fg: var(--color-danger);--btn-border: var(--color-danger);--btn-hover: var(--color-danger-soft)}.btn--danger.btn--solid{--btn-bg: var(--color-danger);--btn-fg: #fff;--btn-border: var(--color-danger);--btn-hover: var(--color-danger-hover)}.btn--icon{width:38px;height:38px;padding:0}.btn--sm{min-height:30px;padding:.3rem .65rem;font-size:var(--text-xs)}.btn--lg{min-height:46px;padding:.7rem 1.25rem;font-size:var(--text-md)}.btn--block{width:100%}.input,.select,.textarea{display:block;width:100%;padding:.55rem .75rem;min-height:38px;font-size:var(--text-sm);color:var(--color-text);background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.input::placeholder,.textarea::placeholder{color:var(--color-text-subtle)}.input:hover,.select:hover,.textarea:hover{border-color:var(--color-text-subtle)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.textarea{min-height:120px;resize:vertical;line-height:var(--leading-normal)}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:var(--space-4)}.field__label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase}.input-group{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);min-height:38px;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.input-group:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.input-group .icon{color:var(--color-text-subtle);flex-shrink:0}.input-group .input{border:none;padding:0;background:transparent;min-height:0;height:36px}.input-group .input:focus{box-shadow:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-xs)}.card--elevated{box-shadow:var(--shadow-md)}.card--padded{padding:var(--space-5)}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:2px 8px;font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-pill);background:var(--color-surface-2);color:var(--color-text-muted);line-height:1.4}.badge--primary{background:var(--color-primary-soft);color:var(--color-primary)}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--danger{background:var(--color-danger-soft);color:var(--color-danger)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.alert{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);border:1px solid transparent}.alert--info{background:var(--color-info-soft);color:var(--color-primary);border-color:transparent}.alert--success{background:var(--color-success-soft);color:var(--color-success)}.alert--danger{background:var(--color-danger-soft);color:var(--color-danger)}.alert--warning{background:var(--color-warning-soft);color:var(--color-warning)}.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);padding:0;animation:fadeIn .16s ease}.modal{width:100%;max-width:480px;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:92vh;overflow:hidden;animation:slideUp .22s cubic-bezier(.2,.8,.2,1)}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-divider)}.modal__title{font-size:var(--text-lg);font-weight:var(--weight-semibold)}.modal__body{padding:var(--space-5);overflow-y:auto;overflow-x:hidden;min-width:0}.modal__footer{display:flex;gap:var(--space-2);justify-content:flex-end;padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-divider);flex-wrap:wrap}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width: 640px){.modal-overlay{align-items:center;padding:var(--space-4)}.modal{border-radius:var(--radius-lg);max-height:86vh}}.skeleton{background:linear-gradient(90deg,var(--color-surface-2) 0%,var(--color-surface-3) 50%,var(--color-surface-2) 100%);background-size:200% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s linear infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.avatar{--avatar-size: 40px;width:var(--avatar-size);height:var(--avatar-size);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:var(--weight-semibold);font-size:calc(var(--avatar-size) * .4);color:#fff;flex-shrink:0;letter-spacing:.02em;text-transform:uppercase}.avatar--sm{--avatar-size: 32px}.avatar--lg{--avatar-size: 56px}.divider{height:1px;background:var(--color-divider);border:0;margin:var(--space-4) 0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-5);text-align:center;color:var(--color-text-muted);gap:var(--space-3)}.empty-state .icon{width:40px;height:40px;color:var(--color-text-subtle)}.empty-state__title{color:var(--color-text);font-weight:var(--weight-semibold);font-size:var(--text-md)}.toolbar{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.spinner{width:16px;height:16px;border:2px solid var(--color-border-strong);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.text-muted{color:var(--color-text-muted)}.text-subtle{color:var(--color-text-subtle)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success)}.icon{width:18px;height:18px;flex-shrink:0}.icon--sm{width:14px;height:14px}.icon--lg{width:22px;height:22px}.icon--xl{width:28px;height:28px}
