:root{--base03:#002b36;--base02:#073642;--base01:#586e75;--base00:#657b83;--base0:#839496;--base1:#93a1a1;--base2:#eee8d5;--base3:#fdf6e3;--yellow:#b58900;--orange:#cb4b16;--red:#dc322f;--magenta:#d33682;--violet:#6c71c4;--blue:#268bd2;--cyan:#2aa198;--green:#859900;--bg:var(--base3);--bg-alt:var(--base2);--bg-dim:#f5efd8;--rule:#ddd6c1;--rule-soft:#e8e1cc;--text:var(--base00);--text-em:var(--base01);--text-mut:var(--base1);--accent:var(--blue);--accent-bg:#d6e9f5;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--fs-xs:11px;--fs-sm:12px;--fs:13px;--fs-md:14px;--fs-lg:16px;--fs-xl:20px;--fs-2xl:28px;--lh:1.45;--cell-clip-max:60ch;--row-h:32px;--pad-x:14px;--pad-y:10px;--gap:12px;--chrome:36px;--statusbar:22px;--sidebar:260px}[data-density=compact]{--row-h:26px;--pad-x:10px;--pad-y:6px;--gap:8px;--fs:12px;--fs-md:13px}[data-density=comfortable]{--row-h:40px;--pad-x:18px;--pad-y:14px;--gap:16px;--fs:14px;--fs-md:15px}[data-theme=dark]{--bg:var(--base03);--bg-alt:var(--base02);--bg-dim:#00343f;--rule:#0c4753;--rule-soft:#093b46;--text:var(--base0);--text-em:var(--base1);--text-mut:var(--base01);--accent-bg:#0a4250}[data-theme=dark][data-accent=blue]{--accent-bg:#093e52}[data-theme=dark][data-accent=cyan]{--accent-bg:#0a4248}[data-theme=dark][data-accent=green]{--accent-bg:#2a3416}[data-theme=dark][data-accent=yellow]{--accent-bg:#3a3110}[data-theme=dark][data-accent=orange]{--accent-bg:#3d2414}[data-theme=dark][data-accent=red]{--accent-bg:#3d1c1a}[data-theme=dark][data-accent=magenta]{--accent-bg:#381c2b}[data-theme=dark][data-accent=violet]{--accent-bg:#232544}[data-theme=dark] .badge.live{background:#16331f;border-color:#2c5a30}[data-theme=dark] .badge.paused{background:#34300f;border-color:#5a4f1c}[data-theme=dark] .badge.error{background:#3a1d1a;border-color:#6a2a26}[data-theme=dark] .badge.info{background:#0a3a52;border-color:#1d5e82}[data-theme=dark] .badge.review{background:#391d2b;border-color:#6a2f50}[data-theme=dark] .badge.active{background:#16331f;border-color:#2c5a30}[data-theme=dark] .badge.trial{background:#0a4248;border-color:#1d6a6a}[data-theme=dark] .badge.suspended{background:#3a1d1a;border-color:#6a2a26}[data-theme=dark] .badge.confirmed{background:#16331f;border-color:#2c5a30}[data-theme=dark] .btn.danger:hover{background:#3a1d1a}[data-theme=dark] .scrim{background:#000c108c}[data-accent=blue]{--accent:var(--blue);--accent-bg:#d6e9f5}[data-accent=cyan]{--accent:var(--cyan);--accent-bg:#d4ecea}[data-accent=green]{--accent:var(--green);--accent-bg:#e3e7c4}[data-accent=yellow]{--accent:var(--yellow);--accent-bg:#ede4be}[data-accent=orange]{--accent:var(--orange);--accent-bg:#f1d9c8}[data-accent=red]{--accent:var(--red);--accent-bg:#f3d3cd}[data-accent=magenta]{--accent:var(--magenta);--accent-bg:#f0d3df}[data-accent=violet]{--accent:var(--violet);--accent-bg:#dcdcec}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-mono);font-size:var(--fs);line-height:var(--lh);font-feature-settings:"ss01", "calt", "liga";-webkit-font-smoothing:antialiased;margin:0;padding:0}button,input,textarea,select{font:inherit;color:inherit}::selection{background:var(--accent-bg);color:var(--text-em)}.app{grid-template-rows:var(--chrome) 1fr var(--statusbar);height:100vh;display:grid;overflow:hidden}.tabchrome{background:var(--bg-alt);border-bottom:1px solid var(--rule);-webkit-user-select:none;user-select:none;align-items:stretch;padding-right:8px;display:flex}.tabchrome .tab{height:100%;font-size:var(--fs);color:var(--text-mut);border:none;border-right:1px solid var(--rule);cursor:pointer;background:0 0;align-items:center;gap:8px;min-width:0;padding:0 14px 0 12px;display:flex;position:relative}.tabchrome .tab .label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tabchrome .tab:hover{color:var(--text-em);background:var(--bg-dim)}.tabchrome .tab.active{background:var(--bg);color:var(--text-em)}.tabchrome .tab.active:before{content:"";background:var(--accent);height:2px;position:absolute;inset:0 0 auto}.tabchrome .tab .glyph{color:var(--text-mut);font-size:var(--fs-sm)}.tabchrome .tab.active .glyph{color:var(--accent)}.tabchrome .tab .x{color:var(--text-mut);opacity:0;border-radius:2px;place-items:center;width:16px;height:16px;margin-left:auto;display:grid}.tabchrome .tab:hover .x,.tabchrome .tab.active .x{opacity:1}.tabchrome .tab .x:hover{background:var(--rule);color:var(--red)}.tabchrome .newtab{width:28px;color:var(--text-mut);cursor:pointer;font-size:var(--fs-md);background:0 0;border:none}.tabchrome .newtab:hover{color:var(--accent)}.body{grid-template-columns:var(--sidebar) 1fr;min-height:0;display:grid;overflow:hidden}.sidebar{background:var(--bg);border-right:1px solid var(--rule);flex-direction:column;gap:18px;padding:14px 0;display:flex;overflow-y:auto}.sidebar .brand{color:var(--text-em);font-size:var(--fs-md);letter-spacing:-.01em;align-items:baseline;gap:8px;padding:0 16px 6px;display:flex}.sidebar .brand .prompt{color:var(--green)}.sidebar .brand .cursor{background:var(--text-em);width:7px;height:14px;margin-left:2px;animation:1.05s steps(2,end) infinite blink;display:inline-block;transform:translateY(2px)}@keyframes blink{50%{background:0 0}}.navgroup .label{font-size:var(--fs-xs);color:var(--text-mut);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;padding:0 16px}.navlist{flex-direction:column;display:flex}.navitem{color:var(--text);cursor:pointer;text-align:left;font-size:var(--fs);background:0 0;border:none;align-items:center;gap:10px;padding:6px 16px;text-decoration:none;display:flex;position:relative}.navitem:hover{background:var(--bg-alt);color:var(--text-em)}.navitem.active{background:var(--accent-bg);color:var(--text-em)}.navitem.active:before{content:"";background:var(--accent);width:2px;position:absolute;top:4px;bottom:4px;left:0}.navitem .marker{color:var(--text-mut);font-size:var(--fs-sm);width:14px}.navitem.active .marker{color:var(--accent)}.navitem .count{font-size:var(--fs-xs);color:var(--text-mut);margin-left:auto}.navitem.active .count{color:var(--accent)}.main{background:var(--bg);flex-direction:column;min-width:0;padding:0;display:flex;overflow:auto}.pane-header{border-bottom:1px solid var(--rule);background:var(--bg);justify-content:space-between;align-items:flex-end;gap:16px;padding:18px 24px 14px;display:flex}.pane-header .crumbs{font-size:var(--fs-sm);color:var(--text-mut)}.pane-header .crumbs .sep{color:var(--rule);margin:0 6px}.pane-header .crumbs .here{color:var(--text-em)}.pane-header h1{font-size:var(--fs-xl);color:var(--text-em);letter-spacing:-.01em;margin:4px 0 0;font-weight:600}.pane-header h1 .prompt{color:var(--green);margin-right:6px;font-weight:400}.pane-header .meta{font-size:var(--fs-sm);color:var(--text-mut);margin-top:2px}.pane-header .actions{align-items:center;gap:8px;display:flex}.pane-body{flex:1;min-width:0;padding:18px 24px 32px}.statusbar{background:var(--text-em);color:var(--bg);font-size:var(--fs-xs);letter-spacing:.02em;align-items:center;display:flex}.statusbar .seg{align-items:center;gap:6px;height:100%;padding:0 10px;display:flex}.statusbar .seg.accent{background:var(--accent);color:var(--bg)}.statusbar .seg.alt{background:var(--base01)}.statusbar .seg.spacer{flex:1}.statusbar .dot{background:var(--green);border-radius:50%;width:6px;height:6px;transition:background .12s;display:inline-block}.statusbar .seg.net[data-net=loading] .dot{background:var(--yellow);animation:.9s ease-in-out infinite net-pulse}.statusbar .seg.net[data-net=done] .dot{background:var(--green)}.statusbar .seg.net[data-net=error] .dot{background:var(--red)}.statusbar .seg.net[data-net=idle] .dot{background:var(--green);opacity:.55}@keyframes net-pulse{0%,to{opacity:1}50%{opacity:.4}}.statusbar .seg.clock{cursor:pointer;padding-right:8px;position:relative}.statusbar .seg.clock .tz-label{opacity:.75;margin-left:2px}.statusbar .seg.clock .tz-chevron{opacity:.6;margin-left:2px;font-size:9px}.statusbar .seg.clock select{opacity:0;cursor:pointer;width:100%;height:100%;font:inherit;appearance:none;color:var(--text);background:0 0;border:0;position:absolute;inset:0}.statusbar .seg.clock option{color:var(--text);background:var(--bg)}.statusbar kbd{font-family:var(--font-mono);font-size:var(--fs-xs);background:#fdf6e326;border-radius:2px;padding:1px 5px}.btn{height:var(--row-h);background:var(--bg);color:var(--text-em);border:1px solid var(--rule);cursor:pointer;font-size:var(--fs);font-family:var(--font-mono);white-space:nowrap;align-items:center;gap:8px;padding:0 12px;text-decoration:none;transition:background 80ms,border-color 80ms,color 80ms;display:inline-flex}.btn:hover{background:var(--bg-alt);border-color:var(--text-mut)}.btn:active{background:var(--bg-dim)}.btn:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.btn .glyph{color:var(--text-mut)}.btn.primary{background:var(--accent);color:var(--bg);border-color:var(--accent)}.btn.primary:hover{filter:brightness(.93)}.btn.primary .glyph{color:var(--bg);opacity:.85}.btn.ghost{color:var(--text);background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--bg-alt);color:var(--text-em)}.btn.danger{color:var(--red);border-color:var(--rule)}.btn.danger:hover{border-color:var(--red);background:#f8e4e0}.btn.sm{height:24px;font-size:var(--fs-sm);padding:0 8px}.btn[disabled]{opacity:.45;cursor:not-allowed}.iconbtn{width:var(--row-h);height:var(--row-h);color:var(--text-mut);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;padding:0;display:grid}.iconbtn:hover{background:var(--bg-alt);color:var(--text-em);border-color:var(--rule)}.field{flex-direction:column;gap:4px;min-width:0;display:flex}.field>label{font-size:var(--fs-xs);color:var(--text-mut);letter-spacing:.04em;text-transform:uppercase}.input,.select,.textarea{height:var(--row-h);background:var(--bg);border:1px solid var(--rule);color:var(--text-em);font-family:var(--font-mono);font-size:var(--fs);align-items:center;min-width:0;padding:0 10px;display:flex}.textarea{align-items:flex-start;height:auto;padding:8px 10px}.input:focus-within,.select:focus-within,.textarea:focus-within{border-color:var(--accent);background:var(--bg);box-shadow:inset 0 0 0 1px var(--accent);outline:none}.input input,.textarea textarea,.select select{font:inherit;color:inherit;background:0 0;border:none;outline:none;flex:1;min-width:0}.input .prompt{color:var(--green);margin-right:6px}.input .icon{color:var(--text-mut);font-size:var(--fs-sm);margin-right:8px}.input input::placeholder{color:var(--text-mut);opacity:.6}.select{cursor:pointer;padding:0;position:relative}.select select{appearance:none;cursor:pointer;padding:0 24px 0 10px}.select:after{content:"▾";color:var(--text-mut);pointer-events:none;position:absolute;right:8px}.select.active{background:var(--accent-bg);border-color:var(--accent)}.select.active select,.select.active:after{color:var(--accent)}.select select option{color:var(--text-em)}.check{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs);align-items:center;gap:8px;display:inline-flex;position:relative}.check input{opacity:0;pointer-events:none;position:absolute}.check .box{border:1px solid var(--text-mut);background:var(--bg);width:14px;height:14px;color:var(--accent);place-items:center;font-size:11px;line-height:1;display:grid}.check input:checked+.box{border-color:var(--accent)}.check input:checked+.box:after{content:"✓"}.check .box.radio{border-radius:50%}.check input:checked+.box.radio:after{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;font-size:var(--fs);align-items:center;gap:8px;display:inline-flex}.switch input{opacity:0;position:absolute}.switch .track{border:1px solid var(--text-mut);background:var(--bg);width:30px;height:16px;position:relative}.switch .track:after{content:"";background:var(--text-mut);width:12px;height:12px;transition:all .1s;position:absolute;top:1px;left:1px}.switch input:checked+.track{border-color:var(--accent);background:var(--accent-bg)}.switch input:checked+.track:after{background:var(--accent);left:15px}.badge{font-size:var(--fs-xs);background:var(--bg-alt);color:var(--text-em);border:1px solid var(--rule);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:6px;padding:1px 8px;display:inline-flex}.badge .dot{background:var(--text-mut);border-radius:50%;width:6px;height:6px}.badge.live{color:var(--green);background:#ecedd0;border-color:#cbd198}.badge.live .dot{background:var(--green);box-shadow:0 0 0 2px #d8de9c66}.badge.draft{color:var(--text-mut)}.badge.draft .dot{background:var(--text-mut)}.badge.paused{color:var(--yellow);background:#efe6c4;border-color:#dccb9b}.badge.paused .dot{background:var(--yellow)}.badge.archived{color:var(--text-mut);background:var(--bg-alt)}.badge.archived .dot{background:var(--base1)}.badge.error{color:var(--red);background:#f7d9d3;border-color:#ecc8c2}.badge.error .dot{background:var(--red)}.badge.info{color:var(--blue);background:#d6e9f5;border-color:#b5d4ea}.badge.info .dot{background:var(--blue)}.badge.review{color:var(--magenta);background:#f3d6e3;border-color:#ecc4d7}.badge.review .dot{background:var(--magenta)}.badge.active{color:var(--green);background:#ecedd0;border-color:#cbd198}.badge.active .dot{background:var(--green);box-shadow:0 0 0 2px #d8de9c66}.badge.trial{color:var(--cyan);background:#d4ecea;border-color:#b7ddd9}.badge.trial .dot{background:var(--cyan)}.badge.suspended{color:var(--red);background:#f7d9d3;border-color:#ecc8c2}.badge.suspended .dot{background:var(--red)}.badge.confirmed{color:var(--green);background:#ecedd0;border-color:#cbd198}.badge.confirmed .dot{background:var(--green);box-shadow:0 0 0 2px #d8de9c66}.badge.unconfirmed{color:var(--text-mut)}.badge.unconfirmed .dot{background:var(--text-mut)}.badge.deleted{color:var(--text-mut);background:var(--bg-alt);border-color:var(--rule)}.badge.deleted .dot{background:var(--text-mut)}.tag{font-size:var(--fs-sm);color:var(--text);white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.tag:before{content:"▪";color:currentColor;opacity:.7;font-size:.7em}.tag.bare:before{content:none}.tag.violet{color:var(--violet)}.tag.blue{color:var(--blue)}.tag.cyan{color:var(--cyan)}.tag.green{color:var(--green)}.tag.magenta{color:var(--magenta)}.tag.orange{color:var(--orange)}.tag.muted{color:var(--text-mut)}.tabs{border-bottom:1px solid var(--rule);gap:0;display:flex}.tabs .tab{color:var(--text-mut);font-family:var(--font-mono);font-size:var(--fs);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px}.tabs .tab:before{content:"›";color:var(--text-mut);margin-right:6px}.tabs .tab:hover{color:var(--text-em)}.tabs .tab.active{color:var(--text-em);border-bottom-color:var(--accent)}.tabs .tab.active:before{color:var(--accent)}.tabs .tab .count{font-size:var(--fs-xs);color:var(--text-mut);margin-left:3px}kbd{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-em);background:var(--bg);border:1px solid var(--rule);border-bottom-width:2px;border-radius:2px;padding:1px 6px;display:inline-block}.state-nav{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.state-nav .chip{font-size:var(--fs-sm);color:var(--text);background:var(--bg);border:1px solid var(--rule);cursor:pointer;border-radius:3px;align-items:center;gap:6px;padding:3px 9px;transition:background 60ms,border-color 60ms,color 60ms;display:inline-flex}.state-nav .chip:hover{border-color:var(--text-mut);color:var(--text-em)}.state-nav .chip.active{background:var(--accent-bg);border-color:var(--accent);color:var(--text-em)}.state-nav .chip .n{color:var(--text-mut);font-variant-numeric:tabular-nums}.state-nav .chip.active .n{color:var(--accent)}.table-wrap{border:1px solid var(--rule);background:var(--bg);overflow:hidden}.table-toolbar{border-bottom:1px solid var(--rule);background:var(--bg);white-space:nowrap;flex-wrap:nowrap;align-items:center;gap:8px;padding:8px 10px;display:flex;overflow:auto hidden}.table-toolbar>*{flex:none}.table-toolbar .grow{flex:auto;min-width:0}.table-toolbar .count{font-size:var(--fs-sm);color:var(--text-mut)}.table{border-collapse:collapse;width:100%;font-size:var(--fs);font-variant-numeric:tabular-nums}.table-scroll{overflow:auto hidden}.table-scroll .table{min-width:max-content}.table th,.table td{text-align:left;height:var(--row-h);border-bottom:1px solid var(--rule-soft);vertical-align:middle;white-space:nowrap;padding:0 12px}.table th{background:var(--bg-alt);color:var(--text-mut);font-weight:500;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--rule);cursor:pointer;-webkit-user-select:none;user-select:none;position:sticky;top:0}.table th.sortable .sort{color:var(--text-mut);opacity:.4;margin-left:4px}.table th.sortable:hover{color:var(--text-em)}.table th.sorted .sort{opacity:1;color:var(--accent)}.table tbody tr{transition:background 60ms}.table tbody tr:hover{background:var(--bg-alt)}.table tbody tr.selected{background:var(--accent-bg)}.table tbody tr.selected td{color:var(--text-em)}.table td .mut{color:var(--text-mut)}.table td .em{color:var(--text-em)}.table td a{color:var(--text-em);border-bottom:1px dotted var(--rule);text-decoration:none}.table td a:hover{color:var(--accent);border-color:var(--accent)}.link{color:var(--text-em);border-bottom:1px dotted var(--rule);cursor:pointer;text-decoration:none}.link:hover{color:var(--accent);border-color:var(--accent)}.table td.num{text-align:right;font-variant-numeric:tabular-nums}.table td.actions{text-align:right;padding-right:8px}.table .checkcol{width:32px;padding-left:12px}.table td .cell-clip{max-width:var(--cell-clip-max);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.table-footer{border-top:1px solid var(--rule);font-size:var(--fs-sm);color:var(--text-mut);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.page-controls,.pager{align-items:center;gap:4px;display:flex}.page-controls{gap:8px}.table tbody tr.skel-row td{color:#0000}.skel-bar{vertical-align:middle;height:1em;line-height:1;font-family:var(--font-mono);font-size:inherit;letter-spacing:0;white-space:nowrap;-webkit-user-select:none;user-select:none;color:var(--rule);display:inline-block;position:relative;overflow:hidden}.skel-bar:before{content:"░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░";display:block}.skel-bar:after{content:"";background:var(--accent);opacity:.22;width:1.5ch;animation:1.6s steps(12,end) infinite skel-scan;position:absolute;inset:0 auto 0 0}@keyframes skel-scan{0%{transform:translate(-2ch)}to{transform:translate(40ch)}}@media (prefers-reduced-motion:reduce){.skel-bar:after{display:none}}.card{background:var(--bg);border:1px solid var(--rule)}.card .head{border-bottom:1px solid var(--rule);font-size:var(--fs-sm);color:var(--text-em);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.card .head .title{align-items:center;gap:8px;display:flex}.card .head .title:before{content:"▸";color:var(--text-mut)}.card .head .actions{color:var(--text-mut);gap:6px;display:flex}.card .body{padding:14px}.kpi-grid{gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.kpi{border:1px solid var(--rule);background:var(--bg);flex-direction:column;gap:4px;padding:14px 16px;display:flex;position:relative}.kpi .label{font-size:var(--fs-xs);color:var(--text-mut);text-transform:uppercase;letter-spacing:.06em}.kpi .value{color:var(--text-em);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:28px}.kpi .value .unit{font-size:var(--fs);color:var(--text-mut);margin-left:4px}.kpi .delta{font-size:var(--fs-sm);color:var(--text-mut);align-items:center;gap:6px;display:flex}.kpi .delta.up{color:var(--green)}.kpi .delta.down{color:var(--red)}.kpi .spark{font-family:var(--font-mono);color:var(--text-mut);letter-spacing:-.5px;margin-top:6px;font-size:11px;line-height:1}.kpi .sub{font-size:var(--fs-xs);color:var(--text-mut)}.asciichart{font-family:var(--font-mono);font-size:var(--fs);color:var(--text);white-space:pre;line-height:1.4}.asciichart .axis{color:var(--text-mut)}.asciichart .bar{color:var(--accent)}.asciichart .bar.alt{color:var(--cyan)}.log{font-family:var(--font-mono);font-size:var(--fs);color:var(--text);flex-direction:column;gap:0;display:flex}.log .row{border-bottom:1px dotted var(--rule);grid-template-columns:78px 70px 1fr;align-items:baseline;gap:12px;padding:5px 0;display:grid}.log .row:last-child{border-bottom:none}.log .ts{color:var(--text-mut);font-size:var(--fs-sm)}.log .lvl{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em}.log .lvl.info{color:var(--blue)}.log .lvl.ok{color:var(--green)}.log .lvl.warn{color:var(--yellow)}.log .lvl.err{color:var(--red)}.log .msg .em{color:var(--text-em)}.log .msg .mut{color:var(--text-mut)}.log .msg .geo{color:var(--text-mut);font-size:var(--fs-xs);margin-top:1px;display:block}.log .msg .geo:before{content:"⌖ ";color:var(--accent)}.scrim{z-index:50;background:#002b362e;place-items:center;padding:20px;animation:.12s scrim-in;display:grid;position:fixed;inset:0}@keyframes scrim-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg);border:1px solid var(--text-mut);box-shadow:0 12px 0 -8px var(--rule), 0 16px 40px #002b362e;flex-direction:column;width:min(580px,100%);max-height:90vh;animation:.16s modal-in;display:flex}@keyframes modal-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.modal.lg{width:min(960px,100%);height:85vh}.modal .titlebar{background:var(--bg-alt);border-bottom:1px solid var(--rule);font-size:var(--fs-sm);color:var(--text-em);align-items:center;gap:8px;padding:6px 8px 6px 12px;display:flex}.modal .titlebar .title{flex:1}.modal .titlebar .title:before{content:"▌ ";color:var(--accent)}.modal .titlebar .x{cursor:pointer;width:20px;height:20px;color:var(--text-mut);border:1px solid #0000;place-items:center;display:grid}.modal .titlebar .x:hover{color:var(--red);border-color:var(--rule)}.modal .modal-body{flex-direction:column;flex:1;min-height:0;padding:18px 20px;display:flex;overflow:hidden auto}.modal .modal-foot{border-top:1px solid var(--rule);background:var(--bg-alt);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.modal .prompt-line{font-size:var(--fs-md);color:var(--text-em);margin:0 0 14px}.modal .prompt-line .prompt{color:var(--green);margin-right:8px}.modal .helper{font-size:var(--fs-sm);color:var(--text-mut);margin-top:6px}.opsmenu-wrap{position:relative}.opsmenu{z-index:60;background:var(--bg);border:1px solid var(--text-mut);min-width:236px;padding:5px;animation:.11s modal-in;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #002b3638}.opsmenu-grp{padding:3px 0}.opsmenu-grp+.opsmenu-grp{border-top:1px solid var(--rule);margin-top:3px}.opsmenu-label{font-size:var(--fs-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--text-mut);padding:4px 8px 3px}.opsmenu-item{cursor:pointer;text-align:left;width:100%;color:var(--text);font-family:var(--font-mono);font-size:var(--fs);background:0 0;border:none;align-items:center;gap:9px;padding:6px 8px;display:flex}.opsmenu-item:hover{background:var(--bg-alt);color:var(--text-em)}.opsmenu-glyph{text-align:center;width:1.5em;color:var(--text-mut);flex:none}.opsmenu-item:hover .opsmenu-glyph{color:var(--accent)}.opsmenu-txt{flex:1}.opsmenu-hint{font-size:var(--fs-xs);color:var(--text-mut)}.opsmenu-item.danger,.opsmenu-item.danger .opsmenu-glyph{color:var(--red)}.opsmenu-item.danger:hover{background:#f8e4e0}[data-theme=dark] .opsmenu-item.danger:hover{background:#3a1d1a}.dropdown-trigger{flex:none;justify-content:space-between}.dropdown-trigger.active{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}.dropdown-trigger.active .dropdown-caret{color:var(--accent)}.dropdown-label{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.dropdown-caret{color:var(--text-mut);font-size:1.15em;line-height:1;transition:transform .12s}.dropdown-caret.open{transform:rotate(180deg)}.dropdown-menu{animation:.11s modal-in}.dropdown-menu .opsmenu-item.on{color:var(--text-em)}.dropdown-menu .opsmenu-item.on .opsmenu-hint{color:var(--accent)}.dropdown-sep{background:var(--rule);height:1px;margin:3px 0}.dropdown-clear{cursor:pointer;width:1.15em;height:1.15em;color:var(--text-mut);flex:none;justify-content:center;align-items:center;margin-left:2px;font-size:1.05em;line-height:1;transition:color .12s;display:inline-flex}.dropdown-clear:hover{color:var(--red)}.datepicker-trigger{-webkit-user-select:none;user-select:none;gap:8px}.datepicker-trigger.active{padding-right:6px}.datepicker-trigger .cal-glyph{color:var(--accent);font-size:var(--fs-sm)}.datepicker-calendar{z-index:60;background:var(--bg);border:1px solid var(--rule);min-width:220px;padding:10px 12px;animation:.11s modal-in;box-shadow:0 4px 12px #0000001f}[data-theme=dark] .datepicker-calendar{box-shadow:0 4px 12px #00000059}.datepicker-cal-body{gap:14px;display:flex}.datepicker-cal-panel{flex:1;min-width:220px}.datepicker-cal-head{border-bottom:1px solid var(--rule-soft);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;display:flex}.datepicker-cal-head button{appearance:none;border:1px solid var(--rule);background:var(--bg);color:var(--text);cursor:pointer;font:inherit;font-size:var(--fs-sm);padding:2px 7px;line-height:1}.datepicker-cal-head button:hover{background:var(--bg-alt)}.datepicker-cal-head .cal-title{font-size:var(--fs-sm);color:var(--text-em);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.datepicker-cal-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.datepicker-cal-weekdays span{text-align:center;font-size:var(--fs-xs);color:var(--text-mut);text-transform:uppercase;letter-spacing:.06em;padding:2px 0}.datepicker-cal-grid{background:var(--rule-soft);border:1px solid var(--rule-soft);grid-template-columns:repeat(7,1fr);gap:1px;display:grid}.datepicker-cal-grid .cal-cell{background:var(--bg);text-align:center;font-size:var(--fs-sm);color:var(--text);cursor:pointer;font:inherit;appearance:none;border:none;padding:4px 0}.datepicker-cal-grid .cal-cell:hover{background:var(--bg-alt)}.datepicker-cal-grid .cal-cell.empty{background:var(--bg-dim);cursor:default}.datepicker-cal-grid .cal-cell.empty:hover{background:var(--bg-dim)}.datepicker-cal-grid .cal-cell.today{color:var(--accent);font-weight:700}.datepicker-cal-grid .cal-cell.selected,.datepicker-cal-grid .cal-cell.range-start,.datepicker-cal-grid .cal-cell.range-end{background:var(--accent);color:var(--bg)}.datepicker-cal-grid .cal-cell.selected:hover,.datepicker-cal-grid .cal-cell.range-start:hover,.datepicker-cal-grid .cal-cell.range-end:hover{background:var(--accent)}.datepicker-cal-grid .cal-cell.in-range{background:var(--accent-bg);color:var(--text-em)}.datepicker-cal-grid .cal-cell.in-range:hover{background:var(--accent-bg)}.datepicker-cal-grid .cal-cell.other{color:var(--text-mut)}.datepicker-cal-grid .cal-cell.disabled{color:var(--text-mut);cursor:not-allowed;opacity:.45}.datepicker-shortcuts{border-top:1px solid var(--rule-soft);align-items:center;gap:5px;margin-top:10px;padding-top:9px;display:flex}.datepicker-shortcuts button{appearance:none;color:var(--text-mut);cursor:pointer;font:inherit;font-size:var(--fs-xs);background:0 0;border:1px solid #0000;padding:3px 7px}.datepicker-shortcuts button:hover{background:var(--bg-alt);border-color:var(--rule);color:var(--text-em)}.datepicker-shortcuts button:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.minilink{cursor:pointer;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-xs);background:0 0;border:none;padding:0}.minilink:hover{text-decoration:underline}.palette{width:min(640px,100%)}.palette .search{border:none;border-bottom:1px solid var(--rule);background:var(--bg)}.palette .search .prompt{color:var(--green);margin-right:8px}.palette .results{max-height:380px;padding:6px 0;overflow:auto}.palette .pgroup{color:var(--text-mut);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;padding:8px 14px 4px}.palette .pitem{cursor:pointer;color:var(--text);align-items:center;gap:10px;padding:6px 14px;display:flex}.palette .pitem.active{background:var(--accent-bg);color:var(--text-em)}.palette .pitem .marker{color:var(--text-mut);width:16px}.palette .pitem.active .marker{color:var(--accent)}.palette .pitem .txt{align-items:baseline;gap:8px;min-width:0;display:flex}.palette .pitem .txt .lbl{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette .pitem .txt .sub{color:var(--text-mut);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.palette .pitem .hint{color:var(--text-mut);font-size:var(--fs-xs);margin-left:auto}.palette .psearching{color:var(--text-mut);font-size:var(--fs-sm);padding:16px 14px}.palette .foot{border-top:1px solid var(--rule);font-size:var(--fs-xs);color:var(--text-mut);background:var(--bg-alt);gap:14px;padding:6px 14px;display:flex}.photogrid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));display:grid}.photo{border:1px solid var(--rule);background:var(--bg);cursor:pointer;flex-direction:column;transition:border-color 80ms;display:flex;overflow:hidden}.photo:hover{border-color:var(--text-mut)}.photo.selected{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:-2px}.photo .frame{aspect-ratio:4/3;background:var(--bg-alt);place-items:center;display:grid;position:relative;overflow:hidden}.photo .frame .ascii{font-family:var(--font-mono);color:var(--text-em);white-space:pre;text-align:center;letter-spacing:-.5px;font-size:8px;line-height:1}.photo .frame .corner{font-size:var(--fs-xs);color:var(--text-mut);background:var(--bg);border:1px solid var(--rule);padding:1px 4px;position:absolute;top:6px;left:6px}.photo .frame .badge{position:absolute;bottom:6px;right:6px}.photo .meta{font-size:var(--fs-sm);border-top:1px solid var(--rule);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.photo .meta .name{color:var(--text-em)}.photo .meta .sub{color:var(--text-mut);font-size:var(--fs-xs)}.toast-stack{bottom:calc(var(--statusbar) + 12px);z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;right:16px}.toast{background:var(--bg);border:1px solid var(--text-mut);font-size:var(--fs-sm);align-items:flex-start;gap:10px;min-width:240px;padding:8px 12px;animation:.2s toast-in;display:flex;box-shadow:0 6px 20px #002b3626}.toast .lvl{font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;font-weight:600}.toast.ok .lvl{color:var(--green)}.toast.err .lvl{color:var(--red)}.toast.info .lvl{color:var(--blue)}.toast .toast-body{color:var(--text-em)}.toast .toast-body .mut{color:var(--text-mut);font-size:var(--fs-xs);margin-top:2px;display:block}@keyframes toast-in{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.row{align-items:center;gap:var(--gap);display:flex}.col{gap:var(--gap);flex-direction:column;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.muted{color:var(--text-mut)}.em{color:var(--text-em)}.accent{color:var(--accent)}.mono{font-family:var(--font-mono)}.tnum{font-variant-numeric:tabular-nums}.divider{background:var(--rule);height:1px}.section-title{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-mut);margin:24px 0 10px}.section-title:before{content:"── ";color:var(--rule)}.section-title:after{content:" ──";color:var(--rule)}.eid{font-family:var(--font-mono);white-space:nowrap;cursor:pointer;-webkit-user-select:all;user-select:all;border-radius:2px;margin:0 -2px;padding:0 2px;transition:background 60ms,color 60ms}.eid.static{cursor:default}a .eid.static{cursor:inherit}.eid .eid-tag{font-weight:600}.eid .eid-sep{color:var(--rule);margin:0 1px}.eid .eid-tail{color:var(--text-mut)}.eid.em .eid-tail{color:var(--text-em)}.eid:not(.static):hover{background:var(--accent-bg);outline:1px solid var(--rule)}.eid:not(.static):hover .eid-tail{color:var(--text-em)}.eid.copied{background:0 0;outline:none}.eid .eid-ok{color:var(--green);font-weight:500}.table td .eid,.eid.prefix{margin-right:6px}.timeline{flex-direction:column;display:flex}.timeline-row{grid-template-columns:16px 1fr;gap:10px;display:grid}.timeline-rail{flex-direction:column;align-items:center;display:flex}.timeline-dot{background:var(--green);border-radius:50%;flex:none;width:8px;height:8px;margin-top:5px}.timeline-line{background:var(--rule);flex:1;width:1px;margin:3px 0}.timeline-body{padding-bottom:14px}.avatar{border:1px solid var(--rule);background:var(--bg-alt);width:22px;height:22px;color:var(--text-em);letter-spacing:0;place-items:center;font-size:10px;display:inline-grid}.avatar.lg{width:32px;height:32px;font-size:12px}.entity-glyph{border:1px solid var(--rule);background:var(--bg-alt);letter-spacing:0;flex:none;place-items:center;width:32px;height:32px;font-size:26px;line-height:1;display:inline-grid}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--rule);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-mut)}@media (max-width:900px){.body{grid-template-columns:56px 1fr}.sidebar .brand .text,.sidebar .navitem span.label,.navgroup .label{display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}}.app.crt:after{content:"";pointer-events:none;z-index:100;mix-blend-mode:multiply;background:repeating-linear-gradient(#002b3609 0 1px,#0000 1px 3px);position:fixed;inset:0}[data-theme=dark] .app.crt:after{mix-blend-mode:normal;background:repeating-linear-gradient(#0000002e 0 1px,#0000 1px 3px)}.app.crt:before{content:"";pointer-events:none;z-index:100;background:radial-gradient(#0000 62%,#002b361a 100%);position:fixed;inset:0}[data-theme=dark] .app.crt:before{background:radial-gradient(#0000 55%,#0006 100%)}.login-wrap{background:var(--bg);min-height:100vh;font-family:var(--font-mono);color:var(--text);justify-content:center;align-items:center;display:flex}.login-card{flex-direction:column;gap:12px;width:320px;padding:28px 26px;display:flex}.login-brand{font-size:var(--fs-xl);color:var(--text-em);font-weight:600}.login-sub{font-size:var(--fs-sm);margin-bottom:8px}.login-label{font-size:var(--fs-sm);color:var(--text-mut);flex-direction:column;gap:5px;display:flex}.login-label input{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--text-em);background:var(--bg-dim);border:1px solid var(--rule);outline:none;padding:9px 10px}.login-label input:focus{border-color:var(--accent)}.login-submit{margin-top:6px}.login-error{font-size:var(--fs-sm);color:var(--red);border:1px solid var(--red);background:#dc322f14;padding:7px 10px}.photo-drawing-overlay>svg{object-fit:contain;width:100%;height:100%}
