:root{color-scheme:light;--bg-canvas: #f4f5f8;--bg-surface: #ffffff;--bg-raised: #ffffff;--bg-inset: #eceef3;--bg-hover: rgba(16, 20, 32, .045);--bg-active: rgba(16, 20, 32, .085);--bg-selected: rgba(74, 79, 228, .1);--fg-1: #16181d;--fg-2: #4a5361;--fg-3: #6d7787;--fg-disabled: #a3abb8;--fg-on-accent: #ffffff;--border-1: rgba(16, 20, 32, .1);--border-2: rgba(16, 20, 32, .17);--border-focus: var(--accent-9);--accent-9: #4a4fe4;--accent-10: #3d42cf;--accent-a1: rgba(74, 79, 228, .06);--accent-a3: rgba(74, 79, 228, .13);--accent-fg: #3b40c9;--ok-9: #16a34a;--ok-fg: #15803d;--ok-a2: rgba(22, 163, 74, .12);--warn-9: #d97706;--warn-fg: #b45309;--warn-a2: rgba(217, 119, 6, .13);--danger-9: #dc2626;--danger-fg: #b91c1c;--danger-a2: rgba(220, 38, 38, .11);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-1: 4px;--r-2: 6px;--r-3: 8px;--r-4: 10px;--r-5: 14px;--r-full: 999px;--e-1: 0 1px 2px rgba(16, 20, 32, .06);--e-2: 0 1px 2px rgba(16, 20, 32, .06), 0 2px 6px rgba(16, 20, 32, .06);--e-3: 0 2px 4px rgba(16, 20, 32, .07), 0 8px 20px rgba(16, 20, 32, .09);--e-4: 0 4px 8px rgba(16, 20, 32, .08), 0 16px 40px rgba(16, 20, 32, .13);--e-5: 0 8px 16px rgba(16, 20, 32, .1), 0 28px 70px rgba(16, 20, 32, .18);--dur-1: 90ms;--dur-2: .16s;--dur-3: .26s;--ease-std: cubic-bezier(.2, 0, 0, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--font: "Segoe UI Variable Text", "Segoe UI", -apple-system, system-ui, sans-serif;--font-mono: "Cascadia Mono", "Cascadia Code", Consolas, ui-monospace, monospace;--ts-1: 11px;--ts-2: 12px;--ts-3: 13px;--ts-4: 15px;--ts-5: 18px;--ts-6: 24px;--titlebar-h: 44px;--statusbar-h: 28px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg-canvas: #111318;--bg-surface: #171a21;--bg-raised: #1d212a;--bg-inset: #0e1015;--bg-hover: rgba(255, 255, 255, .045);--bg-active: rgba(255, 255, 255, .08);--bg-selected: rgba(123, 128, 255, .16);--fg-1: #e7eaf0;--fg-2: #adb6c4;--fg-3: #858fa0;--fg-disabled: #5b6472;--fg-on-accent: #ffffff;--border-1: rgba(255, 255, 255, .09);--border-2: rgba(255, 255, 255, .15);--accent-9: #6b70f5;--accent-10: #7f84ff;--accent-a1: rgba(123, 128, 255, .08);--accent-a3: rgba(123, 128, 255, .18);--accent-fg: #a3a7ff;--ok-9: #22c55e;--ok-fg: #4ade80;--ok-a2: rgba(34, 197, 94, .15);--warn-9: #f59e0b;--warn-fg: #fbbf24;--warn-a2: rgba(245, 158, 11, .15);--danger-9: #ef4444;--danger-fg: #fca5a5;--danger-a2: rgba(239, 68, 68, .15);--e-1: 0 1px 2px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .03);--e-2: 0 2px 6px rgba(0, 0, 0, .36), inset 0 1px 0 rgba(255, 255, 255, .04);--e-3: 0 8px 20px rgba(0, 0, 0, .42), inset 0 1px 0 rgba(255, 255, 255, .05);--e-4: 0 16px 40px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .06);--e-5: 0 28px 70px rgba(0, 0, 0, .58), inset 0 1px 0 rgba(255, 255, 255, .07)}}:root[data-theme=dark]{color-scheme:dark;--bg-canvas: #111318;--bg-surface: #171a21;--bg-raised: #1d212a;--bg-inset: #0e1015;--bg-hover: rgba(255, 255, 255, .045);--bg-active: rgba(255, 255, 255, .08);--bg-selected: rgba(123, 128, 255, .16);--fg-1: #e7eaf0;--fg-2: #adb6c4;--fg-3: #858fa0;--fg-disabled: #5b6472;--fg-on-accent: #ffffff;--border-1: rgba(255, 255, 255, .09);--border-2: rgba(255, 255, 255, .15);--accent-9: #6b70f5;--accent-10: #7f84ff;--accent-a1: rgba(123, 128, 255, .08);--accent-a3: rgba(123, 128, 255, .18);--accent-fg: #a3a7ff;--ok-9: #22c55e;--ok-fg: #4ade80;--ok-a2: rgba(34, 197, 94, .15);--warn-9: #f59e0b;--warn-fg: #fbbf24;--warn-a2: rgba(245, 158, 11, .15);--danger-9: #ef4444;--danger-fg: #fca5a5;--danger-a2: rgba(239, 68, 68, .15);--e-1: 0 1px 2px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .03);--e-2: 0 2px 6px rgba(0, 0, 0, .36), inset 0 1px 0 rgba(255, 255, 255, .04);--e-3: 0 8px 20px rgba(0, 0, 0, .42), inset 0 1px 0 rgba(255, 255, 255, .05);--e-4: 0 16px 40px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .06);--e-5: 0 28px 70px rgba(0, 0, 0, .58), inset 0 1px 0 rgba(255, 255, 255, .07)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:var(--ts-3);line-height:1.5;color:var(--fg-1);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;overflow:hidden;-webkit-user-select:none;user-select:none;cursor:default}input,textarea,[contenteditable],.selectable{-webkit-user-select:text;user-select:text;cursor:auto}h1,h2,h3,h4,p,figure{margin:0}button{font:inherit;color:inherit}.tnum{font-variant-numeric:tabular-nums}:focus{outline:none}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px;border-radius:var(--r-2)}*{scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-2);border:3px solid transparent;background-clip:content-box;border-radius:var(--r-full)}*::-webkit-scrollbar-thumb:hover{background:var(--fg-disabled);background-clip:content-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes pulse-ring{0%{box-shadow:0 0 0 0 var(--ok-a2)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.app{display:grid;grid-template-rows:var(--titlebar-h) minmax(0,1fr) var(--statusbar-h);height:100%;background:var(--bg-canvas)}.titlebar{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-3);background:var(--bg-surface);border-bottom:1px solid var(--border-1);-webkit-app-region:drag}.titlebar button,.titlebar .no-drag{-webkit-app-region:no-drag}.app-mark{width:28px;height:28px;border-radius:var(--r-2);flex:0 0 auto;display:block}.app-title{font-size:var(--ts-3);font-weight:600;letter-spacing:-.005em;white-space:nowrap}.app-subtitle{font-size:var(--ts-1);color:var(--fg-3);white-space:nowrap}.titlebar-spacer{flex:1 1 auto;min-width:var(--sp-2)}.status-pill{display:inline-flex;align-items:center;gap:var(--sp-2);height:26px;padding:0 var(--sp-3);border-radius:var(--r-full);border:1px solid var(--border-1);background:var(--bg-canvas);font-size:var(--ts-1);color:var(--fg-2);white-space:nowrap;cursor:pointer;transition:background var(--dur-1) var(--ease-std),border-color var(--dur-1) var(--ease-std)}.status-pill:hover{background:var(--bg-hover);border-color:var(--border-2)}.body{display:grid;grid-template-columns:56px minmax(0,1fr);min-height:0}.rail{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-3) 0;background:var(--bg-surface);border-right:1px solid var(--border-1)}.rail-spacer{flex:1 1 auto}.workbench{display:grid;grid-template-columns:232px 340px minmax(0,1fr);min-height:0;min-width:0}@media(max-width:1180px){.workbench{grid-template-columns:200px 300px minmax(0,1fr)}}.pane{display:flex;flex-direction:column;min-height:0;min-width:0;border-right:1px solid var(--border-1);background:var(--bg-surface)}.pane:last-child{border-right:0;background:var(--bg-canvas)}.pane-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-3) var(--sp-2)}.pane-title{font-size:var(--ts-1);font-weight:650;letter-spacing:.055em;text-transform:uppercase;color:var(--fg-3)}.pane-scroll{flex:1 1 auto;overflow-y:auto;min-height:0}.search-box{position:relative;margin:0 var(--sp-3) var(--sp-2)}.search-box .search-icon{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--fg-3);pointer-events:none}.search-box input{width:100%;height:32px;padding:0 var(--sp-3) 0 30px;border-radius:var(--r-2);border:1px solid var(--border-1);background:var(--bg-inset);color:var(--fg-1);font:inherit;font-size:var(--ts-2);outline:none;transition:border-color var(--dur-1) var(--ease-std),box-shadow var(--dur-1) var(--ease-std)}.search-box input::placeholder{color:var(--fg-3)}.search-box input:focus{border-color:var(--accent-9);box-shadow:0 0 0 3px var(--accent-a3)}.search-kbd{position:absolute;right:7px;top:50%;transform:translateY(-50%);pointer-events:none}.nav-item{display:flex;align-items:center;gap:var(--sp-2);width:calc(100% - var(--sp-4));margin:1px var(--sp-2);padding:6px var(--sp-2);border:0;border-radius:var(--r-2);background:transparent;color:var(--fg-2);font-size:var(--ts-3);text-align:left;cursor:pointer;transition:background var(--dur-1) var(--ease-std),color var(--dur-1) var(--ease-std)}.nav-item:hover{background:var(--bg-hover);color:var(--fg-1)}.nav-item.is-on{background:var(--bg-selected);color:var(--accent-fg);font-weight:550}.nav-item .label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item .count{font-size:var(--ts-1);color:var(--fg-3)}.nav-item.is-on .count{color:var(--accent-fg)}.cat-dot{width:8px;height:8px;border-radius:var(--r-full);flex:0 0 auto}.group-head{position:sticky;top:0;z-index:1;padding:var(--sp-3) var(--sp-3) var(--sp-1);font-size:var(--ts-1);font-weight:650;letter-spacing:.055em;text-transform:uppercase;color:var(--fg-3);background:linear-gradient(var(--bg-surface) 72%,transparent)}.card{display:grid;grid-template-columns:8px minmax(0,1fr);gap:var(--sp-2);align-items:start;width:calc(100% - var(--sp-4));margin:2px var(--sp-2);padding:var(--sp-2) var(--sp-2) 9px;border:1px solid transparent;border-radius:var(--r-3);background:transparent;text-align:left;cursor:pointer;animation:rise-in var(--dur-2) var(--ease-out-expo) both;transition:background var(--dur-1) var(--ease-std),border-color var(--dur-1) var(--ease-std)}.card:hover{background:var(--bg-hover)}.card.is-on{background:var(--bg-selected);border-color:color-mix(in srgb,var(--accent-9) 28%,transparent)}.card-stripe{width:3px;height:100%;min-height:34px;border-radius:var(--r-full);margin-top:2px}.card-top{display:flex;align-items:center;gap:var(--sp-2)}.card-name{flex:1 1 auto;min-width:0;font-size:var(--ts-3);font-weight:550;color:var(--fg-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-name mark{background:color-mix(in srgb,var(--warn-9) 32%,transparent);color:inherit;border-radius:2px;padding:0 1px}.card-preview{margin-top:2px;font-size:var(--ts-2);color:var(--fg-3);line-height:1.42;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;align-items:center;gap:var(--sp-2);margin-top:6px}.editor{display:flex;flex-direction:column;min-height:0;height:100%}.editor-head{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border-1);background:var(--bg-surface)}.editor-title{flex:1 1 auto;min-width:0;border:1px solid transparent;border-radius:var(--r-2);background:transparent;padding:5px var(--sp-2);margin-left:calc(var(--sp-2) * -1);font:inherit;font-size:var(--ts-5);font-weight:600;letter-spacing:-.012em;color:var(--fg-1);outline:none;transition:background var(--dur-1) var(--ease-std),border-color var(--dur-1) var(--ease-std)}.editor-title:hover{background:var(--bg-hover)}.editor-title:focus{background:var(--bg-inset);border-color:var(--accent-9);box-shadow:0 0 0 3px var(--accent-a3)}.saved-pill{display:inline-flex;align-items:center;gap:5px;font-size:var(--ts-1);color:var(--ok-fg);opacity:0;transition:opacity var(--dur-3) var(--ease-std)}.saved-pill.is-on{opacity:1}.editor-body{flex:1 1 auto;overflow-y:auto;padding:var(--sp-4);display:grid;gap:var(--sp-4);align-content:start}.card-panel{background:var(--bg-surface);border:1px solid var(--border-1);border-radius:var(--r-4);box-shadow:var(--e-1);padding:var(--sp-4);display:grid;gap:var(--sp-4)}.panel-head{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:calc(var(--sp-2) * -1)}.panel-title{font-size:var(--ts-2);font-weight:650;letter-spacing:.03em;text-transform:uppercase;color:var(--fg-3)}.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-4)}@media(max-width:1320px){.grid-2{grid-template-columns:minmax(0,1fr)}}.statusbar{display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-3);background:var(--bg-surface);border-top:1px solid var(--border-1);font-size:var(--ts-1);color:var(--fg-3)}.statusbar .sb-item{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.statusbar .spacer{flex:1 1 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:32px;padding:0 var(--sp-3);border:1px solid transparent;border-radius:var(--r-2);font-size:var(--ts-3);font-weight:550;white-space:nowrap;cursor:pointer;transition:background var(--dur-1) var(--ease-std),border-color var(--dur-1) var(--ease-std),color var(--dur-1) var(--ease-std),transform var(--dur-1) var(--ease-std)}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{height:27px;padding:0 9px;font-size:var(--ts-2)}.btn-primary{background:var(--accent-9);color:var(--fg-on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-10)}.btn-secondary{background:var(--bg-surface);border-color:var(--border-2);color:var(--fg-1)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover)}.btn-ghost{background:transparent;color:var(--fg-2)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--fg-1)}.btn-danger{background:transparent;border-color:color-mix(in srgb,var(--danger-9) 40%,transparent);color:var(--danger-fg)}.btn-danger:hover:not(:disabled){background:var(--danger-a2)}.icon-btn{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:var(--r-2);background:transparent;color:var(--fg-2);cursor:pointer;flex:0 0 auto;transition:background var(--dur-1) var(--ease-std),color var(--dur-1) var(--ease-std)}.icon-btn:hover{background:var(--bg-hover);color:var(--fg-1)}.icon-btn.is-active{background:var(--bg-selected);color:var(--accent-fg)}.field{display:grid;align-content:start;gap:5px;min-width:0}.field-label{font-size:var(--ts-2);font-weight:600;color:var(--fg-2)}.field-hint{font-size:var(--ts-1);color:var(--fg-3);line-height:1.45}.input,.textarea{width:100%;border-radius:var(--r-2);border:1px solid var(--border-2);background:var(--bg-inset);color:var(--fg-1);font:inherit;font-size:var(--ts-3);outline:none;transition:border-color var(--dur-1) var(--ease-std),box-shadow var(--dur-1) var(--ease-std)}.input{height:32px;padding:0 var(--sp-2)}.textarea{padding:8px var(--sp-2);min-height:120px;resize:vertical;line-height:1.55;font-family:var(--font-mono);font-size:var(--ts-2);tab-size:2}.input:focus,.textarea:focus{border-color:var(--accent-9);box-shadow:0 0 0 3px var(--accent-a3)}.input.is-invalid{border-color:var(--danger-9)}.textarea-wrap{display:grid;gap:4px}.textarea-counter{justify-self:end;font-size:var(--ts-1);color:var(--fg-3)}.combo{position:relative;display:block;min-width:0}.combo .input{padding-right:30px}.combo-toggle{position:absolute;right:1px;top:1px;bottom:1px;width:28px;display:grid;place-items:center;border:0;border-radius:0 var(--r-2) var(--r-2) 0;background:transparent;color:var(--fg-3);cursor:pointer}.combo-toggle:hover{color:var(--fg-1)}.combo-list{position:fixed;z-index:40;max-height:260px;overflow-y:auto;overscroll-behavior:contain;padding:var(--sp-1) 0;border-radius:var(--r-3);border:1px solid var(--border-1);background:var(--bg-raised);box-shadow:var(--e-4);animation:pop-in var(--dur-1) var(--ease-out-expo) both}.combo-group{position:sticky;top:0;padding:7px var(--sp-3) 3px;font-size:var(--ts-1);font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-3);background:var(--bg-raised)}.combo-option{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);padding:6px var(--sp-3);font-size:var(--ts-3);cursor:pointer}.combo-option[aria-selected=true]{background:var(--accent-9);color:var(--fg-on-accent)}.combo-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-hint{flex:0 0 auto;font-size:var(--ts-1);color:var(--fg-3);white-space:nowrap}.combo-option[aria-selected=true] .combo-hint{color:color-mix(in srgb,var(--fg-on-accent) 78%,transparent)}.combo-empty{padding:var(--sp-3);font-size:var(--ts-2);color:var(--fg-3);text-align:center}.segmented{display:inline-flex;justify-self:start;align-self:start;width:max-content;max-width:100%;flex-wrap:wrap;padding:2px;gap:2px;border-radius:var(--r-2);background:var(--bg-inset);border:1px solid var(--border-1)}.seg{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border:0;border-radius:var(--r-1);background:transparent;color:var(--fg-2);font-size:var(--ts-2);font-weight:500;cursor:pointer;white-space:nowrap;transition:background var(--dur-1) var(--ease-std),color var(--dur-1) var(--ease-std)}.seg:hover{color:var(--fg-1)}.seg.is-on{background:var(--bg-surface);color:var(--fg-1);font-weight:600;box-shadow:var(--e-1)}.switch-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-4);padding:9px 0}.switch-text label{font-size:var(--ts-3);font-weight:500;color:var(--fg-1);cursor:pointer}.switch{position:relative;width:38px;height:22px;flex:0 0 auto;margin-top:1px;border:0;border-radius:var(--r-full);background:var(--border-2);cursor:pointer;transition:background var(--dur-2) var(--ease-std)}.switch .knob{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:var(--r-full);background:var(--bg-surface);box-shadow:var(--e-1);transition:transform var(--dur-2) var(--ease-out-expo)}.switch.is-on{background:var(--accent-9)}.switch.is-on .knob{transform:translate(16px)}.badge{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:var(--r-1);font-size:var(--ts-1);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.badge-neutral{background:var(--bg-active);color:var(--fg-2)}.badge-accent{background:var(--accent-a3);color:var(--accent-fg)}.badge-ok{background:var(--ok-a2);color:var(--ok-fg)}.badge-warn{background:var(--warn-a2);color:var(--warn-fg)}.badge-danger{background:var(--danger-a2);color:var(--danger-fg)}.dot{width:8px;height:8px;border-radius:var(--r-full);flex:0 0 auto}.dot-ok{background:var(--ok-9);animation:pulse-ring 2.6s var(--ease-std) infinite}.dot-warn{background:var(--warn-9)}.dot-danger{background:var(--danger-9)}.dot-idle{background:var(--fg-disabled)}kbd{display:inline-block;min-width:17px;padding:1px 5px;border-radius:var(--r-1);border:1px solid var(--border-2);background:var(--bg-surface);font-family:var(--font);font-size:10px;line-height:15px;text-align:center;color:var(--fg-3)}.empty{display:grid;justify-items:center;align-content:center;gap:var(--sp-2);height:100%;padding:var(--sp-8) var(--sp-6);text-align:center;animation:fade-in var(--dur-3) var(--ease-std) both}.empty-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:var(--r-5);background:var(--bg-inset);color:var(--fg-3);margin-bottom:var(--sp-1)}.empty-title{font-size:var(--ts-4);font-weight:600}.empty-desc{max-width:300px;font-size:var(--ts-2);color:var(--fg-3);line-height:1.5}.notice{display:flex;align-items:flex-start;gap:var(--sp-2);padding:10px var(--sp-3);border-radius:var(--r-3);font-size:var(--ts-2);line-height:1.5}.notice-body{flex:1 1 auto;min-width:0}.notice-info{background:var(--accent-a1);color:var(--fg-2)}.notice-ok{background:var(--ok-a2);color:var(--ok-fg)}.notice-warn{background:var(--warn-a2);color:var(--warn-fg)}.notice-danger{background:var(--danger-a2);color:var(--danger-fg)}.toast-host{position:fixed;right:var(--sp-4);bottom:calc(var(--statusbar-h) + var(--sp-3));z-index:50;display:grid;gap:var(--sp-2);justify-items:end;pointer-events:none}.toast{display:flex;align-items:center;gap:var(--sp-2);max-width:460px;padding:10px var(--sp-2) 10px var(--sp-3);border-radius:var(--r-3);background:var(--bg-raised);border:1px solid var(--border-1);box-shadow:var(--e-4);font-size:var(--ts-2);pointer-events:auto;animation:rise-in var(--dur-2) var(--ease-out-expo) both}.toast-ok{color:var(--ok-fg)}.toast-danger{color:var(--danger-fg)}.toast-info{color:var(--fg-1)}.toast-text{flex:1 1 auto;color:var(--fg-1)}.toast-action{border:0;background:transparent;color:var(--accent-fg);font-size:var(--ts-2);font-weight:600;padding:3px 7px;border-radius:var(--r-1);cursor:pointer}.toast-action:hover{background:var(--accent-a3)}.toast-close{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:var(--r-1);background:transparent;color:var(--fg-3);cursor:pointer}.toast-close:hover{background:var(--bg-hover);color:var(--fg-1)}.palette-backdrop{position:fixed;inset:0;z-index:60;display:grid;justify-items:center;align-items:start;padding-top:14vh;background:color-mix(in srgb,var(--bg-canvas) 55%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in var(--dur-1) var(--ease-std) both}.palette{width:min(560px,calc(100vw - var(--sp-8)));border-radius:var(--r-4);background:var(--bg-raised);border:1px solid var(--border-1);box-shadow:var(--e-5);overflow:hidden;animation:pop-in var(--dur-2) var(--ease-out-expo) both}.palette-input{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3);border-bottom:1px solid var(--border-1);color:var(--fg-3)}.palette-input input{flex:1 1 auto;border:0;background:transparent;outline:none;font:inherit;font-size:var(--ts-4);color:var(--fg-1)}.palette-list{max-height:44vh;overflow-y:auto;padding:var(--sp-1) 0}.palette-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:8px var(--sp-3);border:0;background:transparent;color:var(--fg-1);font-size:var(--ts-3);text-align:left;cursor:pointer}.palette-item .sub{color:var(--fg-3);font-size:var(--ts-2)}.palette-item[aria-selected=true]{background:var(--accent-9);color:var(--fg-on-accent)}.palette-item[aria-selected=true] .sub{color:color-mix(in srgb,var(--fg-on-accent) 78%,transparent)}.palette-foot{display:flex;gap:var(--sp-4);padding:8px var(--sp-3);border-top:1px solid var(--border-1);background:var(--bg-surface);font-size:var(--ts-1);color:var(--fg-3)}.dashboard{width:min(920px,100%)}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-3)}@media(max-width:980px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{display:grid;align-content:start;gap:2px;padding:var(--sp-4);border-radius:var(--r-4);background:var(--bg-surface);border:1px solid var(--border-1);box-shadow:var(--e-1)}.stat-hero{grid-column:1 / -1;background:linear-gradient(135deg,var(--accent-a1),transparent 60%),var(--bg-surface);border-color:color-mix(in srgb,var(--accent-9) 26%,var(--border-1))}.stat-label{display:flex;align-items:center;gap:6px;font-size:var(--ts-2);font-weight:600;color:var(--fg-3)}.stat-value{font-size:var(--ts-6);font-weight:650;letter-spacing:-.02em;line-height:1.15}.stat-hero .stat-value{font-size:40px;color:var(--accent-fg)}.stat-sub,.stat-formula{font-size:var(--ts-2);color:var(--fg-3)}.stat-assumption{display:flex;align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border-1);font-size:var(--ts-2);color:var(--fg-3);flex-wrap:wrap}.stat-assumption label{color:var(--fg-2)}.chart{display:flex;align-items:flex-end;gap:3px;height:96px;padding-top:var(--sp-2)}.chart-col{flex:1 1 0;height:100%;display:flex;align-items:flex-end;min-width:0}.chart-bar{width:100%;border-radius:3px 3px 1px 1px;background:var(--accent-9);opacity:.85;transition:opacity var(--dur-1) var(--ease-std)}.chart-col:hover .chart-bar{opacity:1}.chart-col.is-today .chart-bar{background:var(--accent-10);opacity:1;box-shadow:0 0 0 2px var(--accent-a3)}.rank{display:grid;gap:1px}.rank-row{display:grid;grid-template-columns:20px minmax(0,1fr) auto auto;align-items:center;gap:var(--sp-2);padding:7px var(--sp-2);border:0;border-radius:var(--r-2);background:transparent;text-align:left;cursor:pointer;font-size:var(--ts-3);color:var(--fg-1);transition:background var(--dur-1) var(--ease-std)}.rank-row:hover{background:var(--bg-hover)}.rank-no{font-size:var(--ts-2);font-weight:650;color:var(--fg-3)}.rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-count{font-size:var(--ts-2);color:var(--fg-3)}.conn-line{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--ts-3)}.page{overflow-y:auto;padding:var(--sp-8);display:grid;justify-items:center}.page-inner{width:min(720px,100%);display:grid;gap:var(--sp-5)}.page-title{font-size:var(--ts-6);font-weight:650;letter-spacing:-.02em}.page-lead{font-size:var(--ts-4);color:var(--fg-3);margin-top:calc(var(--sp-2) * -1)}.step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-4);background:var(--bg-surface);border:1px solid var(--border-1);box-shadow:var(--e-1)}.step-no{display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-full);background:var(--bg-inset);color:var(--fg-2);font-size:var(--ts-2);font-weight:650}.step.is-done .step-no{background:var(--ok-a2);color:var(--ok-fg)}.step-title{font-size:var(--ts-4);font-weight:600;margin-bottom:2px}.step-body{display:grid;gap:var(--sp-3);min-width:0}.path-box{display:flex;align-items:center;gap:var(--sp-2);padding:9px var(--sp-3);border-radius:var(--r-2);background:var(--bg-inset);border:1px solid var(--border-1);font-family:var(--font-mono);font-size:var(--ts-2);color:var(--fg-2);overflow-x:auto;white-space:nowrap}.code-display{display:flex;align-items:center;gap:var(--sp-4)}.code-value{font-family:var(--font-mono);font-size:40px;font-weight:600;letter-spacing:.14em;color:var(--fg-1);font-variant-numeric:tabular-nums}.ring{transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:3;stroke-linecap:round}.ring .track{stroke:var(--border-1)}.ring .value{stroke:var(--accent-9);transition:stroke-dashoffset 1s linear}.matrix{display:grid;gap:2px}.matrix-row{display:grid;grid-template-columns:16px 200px minmax(0,1fr);gap:var(--sp-2);align-items:center;padding:4px var(--sp-2);border-radius:var(--r-1);font-size:var(--ts-2)}.matrix-row:hover{background:var(--bg-hover)}.matrix-name{font-family:var(--font-mono);color:var(--fg-2)}.matrix-note{color:var(--fg-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}dl.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px var(--sp-4);margin:0;font-size:var(--ts-2)}dl.kv dt{color:var(--fg-3)}dl.kv dd{margin:0;font-family:var(--font-mono);color:var(--fg-2);overflow-wrap:anywhere}.tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tag-chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 4px 0 8px;border-radius:var(--r-full);background:var(--bg-active);color:var(--fg-2);font-size:var(--ts-1)}.tag-chip button{display:grid;place-items:center;width:16px;height:16px;border:0;border-radius:var(--r-full);background:transparent;color:var(--fg-3);cursor:pointer}.tag-chip button:hover{background:var(--bg-active);color:var(--fg-1)}.panel-note{margin-left:auto;font-size:var(--ts-1);color:var(--fg-3)}.var-list{display:grid;gap:6px;margin-bottom:var(--sp-3)}.var-row{display:grid;grid-template-columns:minmax(120px,auto) minmax(0,1fr) minmax(0,1fr) 28px;align-items:center;gap:var(--sp-2)}.var-token{font-family:var(--font-mono);font-size:var(--ts-1);color:var(--accent-11);background:var(--accent-a3);border-radius:var(--r-2);padding:4px 7px;white-space:nowrap}.var-warn{grid-column:2 / -1;font-size:var(--ts-1);color:var(--warn-11, var(--fg-3))}.var-add{display:flex;gap:var(--sp-2);align-items:center}.var-add .input{flex:1}.var-suggest{font-family:var(--font-mono);font-size:var(--ts-1);color:var(--accent-11);background:var(--accent-a3);border:0;border-radius:var(--r-2);padding:2px 6px;margin-right:4px;cursor:pointer}.var-suggest:hover{background:var(--accent-a4, var(--accent-a3))}.web-shell{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:100vh;background:var(--bg-canvas)}.web-top{display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-4);height:52px;background:var(--bg-surface);border-bottom:1px solid var(--border-1)}.web-brand{display:flex;align-items:center;gap:var(--sp-2);margin-right:var(--sp-2)}.web-brand img{width:26px;height:26px;border-radius:var(--r-2);flex:0 0 auto;display:block}.web-brand-text{display:flex;flex-direction:column;line-height:1.15}@media(max-width:720px){.web-brand-text{display:none}}.web-logo{display:block;width:48px;height:48px;border-radius:var(--r-3);margin-bottom:var(--sp-3)}.web-brand strong{font-size:13px;font-weight:650;color:var(--fg-1)}.web-brand span{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}.web-nav{display:flex;gap:var(--sp-1);flex:1}.web-nav button{appearance:none;border:0;background:transparent;color:var(--fg-2);font:inherit;font-size:13px;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-2);cursor:pointer}.web-nav button:hover{background:var(--bg-hover);color:var(--fg-1)}.web-nav button[aria-current=page]{background:var(--bg-selected);color:var(--accent-fg);font-weight:600}.web-user{display:flex;align-items:center;gap:var(--sp-3);font-size:12px;color:var(--fg-2)}.web-main{overflow:auto;padding:var(--sp-5) var(--sp-4) var(--sp-6)}.web-page{max-width:1040px;margin:0 auto;display:flex;flex-direction:column;gap:var(--sp-4)}.web-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap}.web-head p{margin:var(--sp-1) 0 0;font-size:13px;color:var(--fg-3);max-width:62ch}.web-table-wrap{overflow-x:auto}.web-table{width:100%;border-collapse:collapse;font-size:13px}.web-table th{text-align:left;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--fg-3);font-weight:600;padding:0 var(--sp-3) var(--sp-2);border-bottom:1px solid var(--border-1);white-space:nowrap}.web-table td{padding:var(--sp-3);border-bottom:1px solid var(--border-1);color:var(--fg-2);vertical-align:middle}.web-table tr:last-child td{border-bottom:0}.web-table tr:hover td{background:var(--bg-hover)}.web-table .web-strong{color:var(--fg-1);font-weight:600}.web-table .web-sub{display:block;font-size:11px;color:var(--fg-3)}.web-actions{display:flex;gap:var(--sp-2);justify-content:flex-end;flex-wrap:wrap}.web-center{min-height:100vh;display:grid;place-items:center;padding:var(--sp-4);background:var(--bg-canvas)}.web-card{width:100%;max-width:400px;background:var(--bg-surface);border:1px solid var(--border-1);border-radius:var(--r-3);box-shadow:var(--e-2);padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-4)}.web-card h1{margin:0;font-size:19px;font-weight:650;color:var(--fg-1)}.web-card .web-lead{margin:var(--sp-1) 0 0;font-size:13px;color:var(--fg-3)}.web-token{font-family:var(--font-mono);font-size:12px;word-break:break-all;background:var(--bg-inset);border:1px solid var(--border-1);border-radius:var(--r-2);padding:var(--sp-3);color:var(--fg-1);-webkit-user-select:all;user-select:all}.web-form{display:flex;flex-direction:column;gap:var(--sp-3)}.web-empty{padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--fg-3);font-size:13px}.web-checkline{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;font-size:13px;color:var(--fg-2)}.web-checkline input{accent-color:var(--accent-9);width:15px;height:15px}.web-muted{color:var(--fg-3);font-size:12px}body{overflow:auto;-webkit-user-select:text;user-select:text;cursor:auto}.web-page-wide{max-width:1400px}.web-split{display:grid;gap:var(--sp-4);align-items:start}.web-liste-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.web-liste-item{appearance:none;border:0;width:100%;text-align:left;background:transparent;font:inherit;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-2);cursor:pointer;display:flex;flex-direction:column;gap:1px;color:var(--fg-2)}.web-liste-item:hover{background:var(--bg-hover)}.web-liste-item.is-on{background:var(--bg-selected)}.web-liste-item.is-on .web-strong{color:var(--accent-fg)}.web-detail{display:flex;flex-direction:column;gap:var(--sp-4);min-width:0}.web-detail-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);flex-wrap:wrap;padding-bottom:var(--sp-2);border-bottom:1px solid var(--border-1)}.web-detail-head strong{color:var(--fg-1);font-size:15px}.web-editor{display:flex;flex-direction:column;gap:var(--sp-4)}input[type=file].input{padding:var(--sp-2);line-height:1.6}select.input{cursor:pointer}.kat-leiste{display:flex;flex-direction:column;gap:1px;margin:var(--sp-2) 0}.kat-eintrag{appearance:none;border:0;background:transparent;font:inherit;font-size:13px;color:var(--fg-2);display:flex;align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2);border-radius:var(--r-2);cursor:pointer;text-align:left}.kat-eintrag:hover{background:var(--bg-hover);color:var(--fg-1)}.kat-eintrag.is-on{background:var(--bg-selected);color:var(--accent-fg);font-weight:600}.kat-punkt{width:9px;height:9px;border-radius:var(--r-full);flex:0 0 auto;display:inline-block}.kat-punkt-alle{background:transparent;border:1.5px solid var(--fg-3)}.kat-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kat-zahl{font-size:11px;color:var(--fg-3);font-variant-numeric:tabular-nums}.web-liste-item .web-strong{display:flex;align-items:center;gap:var(--sp-2)}.nutzung-chart{display:flex;align-items:flex-end;gap:2px;height:120px;padding:var(--sp-2) 0}.nutzung-balken{flex:1;min-width:2px;background:var(--accent-9);border-radius:2px 2px 0 0;opacity:.85}.nutzung-balken:hover{opacity:1}.web-split{grid-template-columns:232px 340px minmax(0,1fr)}@media(max-width:1180px){.web-split{grid-template-columns:200px 300px minmax(0,1fr)}}@media(max-width:900px){.web-split{grid-template-columns:minmax(0,1fr)}.web-spalte{position:static;max-height:none}}.web-spalte{position:sticky;top:var(--sp-4);max-height:calc(100vh - 120px);overflow:auto;min-width:0}.web-spalte-kat{align-self:start}.web-spalte .panel-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.web-thema .segmented{font-size:11px}.web-thema .seg{padding:3px var(--sp-2)}@media(max-width:860px){.web-thema{display:none}}.web-notizen{background:var(--bg-inset);border:1px solid var(--border-1);border-radius:var(--r-2);padding:var(--sp-3);font-size:13px}.web-notizen strong{display:block;color:var(--fg-1);margin-bottom:var(--sp-1)}.web-notizen p{margin:0;color:var(--fg-2);white-space:pre-wrap}.web-details{border:1px solid var(--border-1);border-radius:var(--r-2);padding:var(--sp-2) var(--sp-3);font-size:13px;color:var(--fg-2)}.web-details summary{cursor:pointer;color:var(--fg-1);font-weight:600;padding:var(--sp-1) 0}.web-schritte{margin:var(--sp-2) 0;padding-left:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2)}.web-schritte code,.web-details code,.web-page code{background:var(--bg-inset);border-radius:var(--r-1);padding:1px 5px;font-family:var(--font-mono);font-size:.92em}a.btn{text-decoration:none;display:inline-flex;align-items:center;gap:var(--sp-2)}
