:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--accent-900:#123d33;--accent-700:#1f5c4d;--accent-600:#276f5d;--accent-200:#bfd9cf;--accent-100:#e3efea;--accent-50:#f1f7f4;--paper:#f6f5f1;--surface:#fff;--surface-2:#faf9f6;--line:#e4e2db;--line-strong:#cbc8bf;--ink:#1b1f1d;--ink-2:#454b48;--ink-3:#737a76;--ink-4:#a2a8a4;--sev-high:#b42318;--sev-high-bg:#fdecea;--sev-medium:#b54708;--sev-medium-bg:#fff2e5;--sev-info:#175cd3;--sev-info-bg:#e8f0fd;--ok:#067647;--ok-bg:#e6f4ec;--font-sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", Consolas, "Noto Sans Mono CJK TC", monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-md:.9375rem;--fs-lg:1.0625rem;--fs-xl:1.375rem;--fs-2xl:1.75rem;--sp-1:.25rem;--sp-2:.5rem;--sp-3:.75rem;--sp-4:1rem;--sp-5:1.5rem;--sp-6:2rem;--sp-8:3rem;--radius-sm:4px;--radius:6px;--radius-lg:10px;--shadow-sm:0 1px 2px #141e1a0f;--shadow:0 4px 14px #141e1a1a, 0 1px 2px #141e1a0f;--shadow-lg:0 18px 40px #141e1a2e;--sidebar-w:224px;--appbar-h:52px;--dur:.16s}@media (prefers-reduced-motion:reduce){:root{--dur:0s}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.5}#root{min-height:100svh}h1,h2,h3,h4{letter-spacing:-.01em;color:var(--ink);margin:0;font-weight:600;line-height:1.25}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0}a{color:var(--accent-700)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent-600);outline-offset:2px;border-radius:var(--radius-sm)}code,.mono{font-family:var(--font-mono);font-size:.92em}.num,.money,.qty{font-variant-numeric:tabular-nums lining-nums;text-align:right;white-space:nowrap}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.shell{grid-template-rows:var(--appbar-h) 1fr;min-height:100svh;display:grid}.appbar{align-items:center;gap:var(--sp-3);min-width:0;height:var(--appbar-h);padding:0 var(--sp-4);background:var(--surface);border-bottom:1px solid var(--line);z-index:30;display:flex;position:sticky;top:0}.appbar-brand{align-items:center;gap:var(--sp-2);letter-spacing:-.01em;font-weight:700;display:flex}.mark{background:var(--accent-700);color:#fff;border-radius:6px;flex:none;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.mark-img{object-fit:contain;background:0 0;border-radius:0}.appbar-sub{color:var(--ink-3);font-size:var(--fs-sm)}.appbar-spacer{flex:1}.appbar-user{align-items:center;gap:var(--sp-3);font-size:var(--fs-sm);color:var(--ink-2);display:flex}.menu-toggle{display:inline-flex}.body{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);display:grid}.body.nav-collapsed{grid-template-columns:minmax(0,1fr)}.body.nav-collapsed>.sidebar{display:none}.scrim{inset:var(--appbar-h) 0 0 0;z-index:20;cursor:pointer;background:#141e1a59;border:0;padding:0;position:fixed}.sidebar{top:var(--appbar-h);height:calc(100svh - var(--appbar-h));padding:var(--sp-4) var(--sp-3) var(--sp-6);border-right:1px solid var(--line);background:var(--surface-2);align-self:start;position:sticky;overflow-y:auto}.nav-tools{padding:0 var(--sp-1) var(--sp-2);justify-content:flex-end;display:flex}.nav-tools button{padding:2px var(--sp-2);border-radius:var(--radius-sm);color:var(--ink-3);font-size:var(--fs-xs);cursor:pointer;background:0 0;border:0}.nav-tools button:hover{color:var(--accent-700);background:var(--accent-50)}.nav-group+.nav-group{margin-top:var(--sp-1)}.nav-group-title{justify-content:space-between;align-items:center;gap:var(--sp-2);width:100%;padding:.5rem var(--sp-3);border-radius:var(--radius);color:var(--ink);text-align:left;cursor:pointer;transition:background var(--dur), color var(--dur);background:0 0;border:0;font-size:1rem;font-weight:700;display:flex}.nav-group-title:hover{background:var(--accent-50)}.nav-group.current>.nav-group-title{color:var(--accent-900)}.nav-chevron{border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);width:.45rem;height:.45rem;transition:transform var(--dur);flex:none;margin-right:2px;transform:rotate(-45deg)}.nav-group.open>.nav-group-title .nav-chevron{transform:rotate(45deg)}.nav-group-items{padding:2px 0 var(--sp-2)}.nav-item{align-items:center;gap:var(--sp-2);width:100%;padding:.38rem var(--sp-3) .38rem var(--sp-5);border-radius:0 var(--radius) var(--radius) 0;color:var(--ink-2);text-align:left;transition:background var(--dur), color var(--dur);background:0 0;border:0;border-left:3px solid #0000;font-size:.875rem;display:flex}.nav-item:hover{background:var(--accent-50);color:var(--ink)}.nav-item.active{background:var(--accent-100);color:var(--accent-900);border-left-color:var(--accent-700);font-weight:600}.content{padding:var(--sp-5) var(--sp-6) var(--sp-8);min-width:0}@media (width<=900px){.body,.body.nav-collapsed{grid-template-columns:minmax(0,1fr)}.body.nav-collapsed>.sidebar{display:block}.sidebar{top:var(--appbar-h);width:min(80vw, var(--sidebar-w));z-index:25;transition:transform var(--dur) ease;box-shadow:var(--shadow-lg);position:fixed;bottom:0;left:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.content{padding:var(--sp-4)}.appbar-sub,.appbar-user .who,.appbar-user .health-badge{display:none}}@media (width<=420px){.appbar{gap:var(--sp-2);padding:0 var(--sp-3)}.appbar-user{gap:var(--sp-2)}.appbar-brand .brand-name{display:none}}.filter-bar{align-items:flex-end;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2);margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.filter-field{font-size:var(--fs-xs);color:var(--ink-3);gap:2px;display:grid}.filter-field>span{letter-spacing:.02em;font-weight:600}.filter-field .input,.filter-field .select{min-width:9rem}.filter-field:first-child .input{min-width:14rem}.filter-count{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-left:auto}@media (width<=900px){.filter-field:first-child .input{min-width:0}.filter-count{margin-left:0}}.login-wrap{min-height:100svh;padding:var(--sp-5);place-items:center;display:grid}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:min(420px,100%);box-shadow:var(--shadow);padding:var(--sp-6)}.login-card .brand{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.login-card .brand .mark{width:36px;height:36px;font-size:16px}.login-card h1{font-size:var(--fs-xl)}.login-card .lead{color:var(--ink-3);font-size:var(--fs-sm)}.login-hint{margin-top:var(--sp-4);color:var(--ink-3);font-size:var(--fs-xs)}.login-logo{width:min(260px,80%);height:auto;margin:0 auto var(--sp-5);display:block}.login-company{margin-top:var(--sp-5);text-align:center;color:var(--ink-3);font-size:var(--fs-xs)}.page-header{align-items:flex-end;gap:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.page-header .titles{min-width:0}.page-header .eyebrow{font-size:var(--fs-xs);letter-spacing:.08em;color:var(--accent-700);margin-bottom:2px;font-weight:700}.page-header h1{align-items:baseline;gap:var(--sp-2);display:flex}.page-header h1 .count{font-size:var(--fs-md);color:var(--ink-3);font-variant-numeric:tabular-nums;font-weight:500}.page-header .desc{color:var(--ink-3);font-size:var(--fs-sm);margin-top:2px}.page-header .actions{gap:var(--sp-2);flex-wrap:wrap;margin-left:auto;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel+.panel{margin-top:var(--sp-4)}.panel-head{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);display:flex}.panel-head h3{font-size:var(--fs-md)}.panel-head .actions{gap:var(--sp-2);margin-left:auto;display:flex}.panel-body{padding:var(--sp-4)}.panel-body.flush{padding:0}.stats{gap:var(--sp-3);margin-bottom:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4)}.stat .label{font-size:var(--fs-xs);color:var(--ink-3);letter-spacing:.04em}.stat .value{font-size:var(--fs-xl);font-variant-numeric:tabular-nums;margin-top:2px;font-weight:600}.stat.high .value{color:var(--sev-high)}.stat.medium .value{color:var(--sev-medium)}.stat.info .value{color:var(--sev-info)}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table th,.table td{padding:.55rem var(--sp-3);border-bottom:1px solid var(--line);vertical-align:middle;text-align:left;white-space:nowrap}.table th.wrap,.table td.wrap{white-space:normal;min-width:14rem}.table th:first-child,.table td:first-child{padding-left:var(--sp-4)}.table th:last-child,.table td:last-child{padding-right:var(--sp-4)}.table thead th{font-size:var(--fs-xs);letter-spacing:.05em;color:var(--ink-3);background:var(--surface-2);border-bottom:1px solid var(--line-strong);white-space:nowrap;font-weight:700}.table tbody tr:hover{background:var(--accent-50)}.table tbody tr:last-child td{border-bottom:0}.table td.num,.table th.num{text-align:right}.table td.actions-cell{white-space:nowrap;text-align:right}.table td.actions-cell .btn+.btn{margin-left:var(--sp-1)}.table tr.expanded>td{background:var(--accent-50)}.table td .muted{color:var(--ink-3)}.table td code{white-space:nowrap}.row-detail{padding:var(--sp-2) var(--sp-4) var(--sp-3)}.row-detail .table{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.state{padding:var(--sp-6) var(--sp-4);text-align:center;color:var(--ink-3);font-size:var(--fs-sm)}.state.error{color:var(--sev-high)}.state .btn{margin-top:var(--sp-3)}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent-700);vertical-align:-3px;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.badge{font-size:var(--fs-xs);white-space:nowrap;border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface);border-radius:999px;align-items:center;gap:4px;padding:.1rem .5rem;font-weight:600;line-height:1.5;display:inline-flex}.badge.neutral{color:var(--ink-3);background:var(--surface-2)}.badge.ok{color:var(--ok);background:var(--ok-bg);border-color:#0000}.badge.accent{color:var(--accent-700);background:var(--accent-100);border-color:#0000}.badge.warn{color:var(--sev-medium);background:var(--sev-medium-bg);border-color:#0000}.badge.danger{color:var(--sev-high);background:var(--sev-high-bg);border-color:#0000}.badge.info{color:var(--sev-info);background:var(--sev-info-bg);border-color:#0000}.btn{justify-content:center;align-items:center;gap:var(--sp-1);border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:var(--fs-sm);transition:background var(--dur), border-color var(--dur), color var(--dur);padding:.4rem .8rem;font-weight:500;line-height:1.3;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--ink-4)}.btn:disabled{opacity:.55}.btn.primary{background:var(--accent-700);border-color:var(--accent-700);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-900);border-color:var(--accent-900)}.btn.danger{color:var(--sev-high);border-color:#f0b8b3}.btn.danger:hover:not(:disabled){background:var(--sev-high-bg);border-color:var(--sev-high)}.btn.ghost{color:var(--accent-700);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--accent-50)}.btn.sm{font-size:var(--fs-xs);padding:.25rem .6rem}.btn.lg{font-size:var(--fs-md);padding:.6rem 1.1rem}.btn.block{width:100%}a.btn{text-decoration:none}.form{gap:var(--sp-3);display:grid}.form-grid{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.field{gap:4px;min-width:0;display:grid}.field>label,.field .label{font-size:var(--fs-xs);color:var(--ink-2);letter-spacing:.02em;font-weight:600}.field .help{font-size:var(--fs-xs);color:var(--ink-3)}.field.required>label:after{content:" *";color:var(--sev-high)}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:100%;font-size:var(--fs-sm);transition:border-color var(--dur), box-shadow var(--dur);padding:.45rem .6rem}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent-600);box-shadow:0 0 0 3px var(--accent-100);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-2);color:var(--ink-3)}.input.num{text-align:right;font-variant-numeric:tabular-nums}.textarea{resize:vertical;min-height:72px}.form-actions{gap:var(--sp-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.form-actions .left{margin-right:auto}.line-editor{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto}.line-editor table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.line-editor th{font-size:var(--fs-xs);color:var(--ink-3);text-align:left;padding:var(--sp-2) var(--sp-2);background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:700}.line-editor td{padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--line)}.line-editor th.num,.line-editor td.num{text-align:right;font-variant-numeric:tabular-nums}.line-editor tr:last-child td{border-bottom:0}.line-editor .input,.line-editor .select{padding:.3rem .45rem}.line-editor tfoot td{background:var(--surface-2);padding:var(--sp-2)}.line-editor .price-hint{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap;margin-top:2px}.line-editor .btn{white-space:nowrap}.alert{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);font-size:var(--fs-sm);border:1px solid #0000;align-items:flex-start;display:flex}.alert.error{background:var(--sev-high-bg);color:var(--sev-high);border-color:#f4c7c3}.alert.success{background:var(--ok-bg);color:var(--ok);border-color:#bfe3cf}.alert.info{background:var(--sev-info-bg);color:var(--sev-info);border-color:#c7d9f8}.alert.warn{background:var(--sev-medium-bg);color:var(--sev-medium);border-color:#f9d4b0}.alert+.alert,.alert+.panel,.panel+.alert{margin-top:var(--sp-3)}.toast-host{right:var(--sp-4);bottom:var(--sp-4);z-index:60;gap:var(--sp-2);max-width:min(420px,100vw - 2rem);display:grid;position:fixed}.toast{background:var(--ink);color:#fff;padding:var(--sp-3) var(--sp-4);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:var(--fs-sm);gap:var(--sp-3);animation:toast-in var(--dur) ease-out;align-items:flex-start;display:flex}.toast.success{background:var(--ok)}.toast.error{background:var(--sev-high)}.toast button{color:inherit;opacity:.8;background:0 0;border:0;margin-left:auto;padding:0}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.dialog-scrim{z-index:50;padding:var(--sp-4);background:#141e1a73;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--radius-lg);width:min(560px,100%);max-height:calc(100svh - 2rem);box-shadow:var(--shadow-lg);animation:dialog-in var(--dur) ease-out;text-align:left;white-space:normal;overflow:auto}.dialog.wide{width:min(860px,100%)}.dialog-head{padding:var(--sp-4) var(--sp-5) var(--sp-3);border-bottom:1px solid var(--line)}.dialog-head h3{font-size:var(--fs-lg)}.dialog-head .desc{color:var(--ink-3);font-size:var(--fs-sm);margin-top:4px}.dialog-body{padding:var(--sp-4) var(--sp-5);gap:var(--sp-3);display:grid}.dialog-foot{padding:var(--sp-3) var(--sp-5) var(--sp-4);justify-content:flex-end;gap:var(--sp-2);border-top:1px solid var(--line);display:flex}@keyframes dialog-in{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.kv{gap:var(--sp-1) var(--sp-4);font-size:var(--fs-sm);grid-template-columns:max-content 1fr;margin:0;display:grid}.kv dt{color:var(--ink-3)}.kv dd{margin:0}.toolbar{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.toolbar .grow{flex:1}.seg{border:1px solid var(--line-strong);border-radius:var(--radius);display:inline-flex;overflow:hidden}.seg button{background:var(--surface);font-size:var(--fs-sm);color:var(--ink-2);border:0;padding:.3rem .7rem}.seg button+button{border-left:1px solid var(--line)}.seg button.active{background:var(--accent-100);color:var(--accent-900);font-weight:600}.page-tabs{width:fit-content;max-width:100%;margin-bottom:var(--sp-3);flex-wrap:wrap;display:flex}.report-picker{margin-bottom:var(--sp-2)}.report-picker label{font-size:var(--fs-sm);color:var(--ink-2);font-weight:600}.todo-list{gap:var(--sp-2);display:grid}.todo-item{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ink-4);border-radius:var(--radius);padding:var(--sp-3) var(--sp-4)}.todo-item.high{border-left-color:var(--sev-high)}.todo-item.medium{border-left-color:var(--sev-medium)}.todo-item.info{border-left-color:var(--sev-info)}.todo-line{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.todo-line .kind{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-3)}.todo-line .period{font-size:var(--fs-xs);color:var(--ink-3);margin-left:auto}.todo-item .hint{color:var(--ink-2);font-size:var(--fs-sm);margin-top:4px}.todo-item .resolve{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.todo-item .resolve .input{flex:200px;width:auto}.todo-item .resolve .select{width:auto}.org-tree,.org-children{margin:0;padding:0;list-style:none}.org-children{margin:var(--sp-1) 0 0 var(--sp-3);padding-left:var(--sp-3);border-left:2px solid var(--accent-200)}.org-node{margin:var(--sp-1) 0}.org-node-head{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.org-name{font-weight:600}.org-code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-4)}.org-mgr{font-size:var(--fs-xs);color:var(--ink-2)}.steps{gap:var(--sp-2);display:grid}.step{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--radius);font-size:var(--fs-sm);display:flex}.step .no{width:22px;height:22px;font-size:var(--fs-xs);background:var(--surface-2);color:var(--ink-3);border:1px solid var(--line-strong);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.step.ready .no{background:var(--accent-700);color:#fff;border-color:var(--accent-700)}.step.approved .no{background:var(--ok-bg);color:var(--ok);border-color:#0000}.step.rejected .no{background:var(--sev-high-bg);color:var(--sev-high);border-color:#0000}.step .title{flex:1}.health-list{font-size:var(--fs-sm);margin:0;padding:0;list-style:none}.health-list li{justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--line);display:flex}.health-list li:last-child{border-bottom:0}.badges{flex-wrap:wrap;gap:4px;display:inline-flex}.check-inline{gap:var(--sp-2);font-size:var(--fs-sm);cursor:pointer;margin-bottom:var(--sp-2);align-items:center;display:inline-flex}.role-grid{gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.role-option{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:var(--surface);align-items:flex-start;display:flex}.role-option.on{border-color:var(--accent-600);background:var(--accent-50)}.role-option input{margin-top:3px}.role-grid.scroll{max-height:18rem;padding:2px;overflow-y:auto}.role-option span{font-size:var(--fs-sm);gap:2px;display:grid}.role-option small{color:var(--ink-3);font-size:var(--fs-xs)}.role-option b{gap:var(--sp-1);align-items:center;display:inline-flex}.delivery-choice{gap:var(--sp-2);border:0;min-width:0;margin:0;padding:0;display:grid}.delivery-choice legend{font-size:var(--fs-sm);margin-bottom:var(--sp-2);padding:0;font-weight:600}.panel-note{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--ink-3);border-bottom:1px solid var(--line)}.code-strong{font-family:var(--font-mono,ui-monospace, monospace);font-size:var(--fs-lg);letter-spacing:.12em;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--line);padding:2px 8px;font-weight:700}.th-sort{all:unset;cursor:pointer;font:inherit;color:inherit;align-items:center;gap:4px;display:inline-flex}.th-sort:hover{color:var(--ink)}.th-sort:focus-visible{outline:2px solid var(--accent-600);outline-offset:2px;border-radius:2px}.th-sort-mark{color:var(--ink-3);font-size:.7em}.th-sort.on .th-sort-mark{color:var(--accent-600)}.table-wrap.reloading{opacity:.55;transition:opacity .12s}.pager{gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.pager-buttons{gap:var(--sp-1);align-items:center;display:flex}.pager-page{text-align:center;font-variant-numeric:tabular-nums;min-width:4.5rem}.pager-range{font-variant-numeric:tabular-nums}.audit-extra-filters{border-bottom:0;padding-bottom:0}.audit-timeline{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.audit-entry{border-left:3px solid var(--line);padding:var(--sp-1) 0 var(--sp-1) var(--sp-3)}.audit-entry-head{gap:var(--sp-2);font-size:var(--fs-sm);flex-wrap:wrap;align-items:baseline;display:flex}.audit-entry-head time{color:var(--ink-3);font-variant-numeric:tabular-nums}.audit-entry-detail{gap:2px var(--sp-3);margin:var(--sp-1) 0 0;font-size:var(--fs-xs);color:var(--ink-3);flex-wrap:wrap;display:flex}.audit-entry-detail>div{gap:4px;display:flex}.audit-entry-detail dt{font-weight:600}.audit-entry-detail dd{word-break:break-all;margin:0}.audit-entry-reason{margin:var(--sp-1) 0 0;font-size:var(--fs-sm)}.audit-changes{margin:var(--sp-1) 0 0;font-size:var(--fs-xs);gap:2px;padding:0;list-style:none;display:grid}.audit-changes li{gap:4px var(--sp-2);flex-wrap:wrap;align-items:baseline;display:flex}.audit-change-field{min-width:6rem;font-weight:600}.audit-change-was{color:var(--ink-3);word-break:break-all;text-decoration:line-through}.audit-change-now{word-break:break-all}.audit-entry-trace code{font-size:var(--fs-xs)}.attachment-list{gap:var(--sp-2);margin:0;padding:0;list-style:none;display:grid}.attachment-item{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-2) var(--sp-3);gap:var(--sp-1);display:grid}.attachment-item.removed{background:var(--surface-2)}.attachment-item.removed strong{color:var(--ink-3);text-decoration:line-through}.attachment-head{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.attachment-head strong{word-break:break-all}.attachment-meta{font-size:var(--fs-xs);color:var(--ink-3)}.attachment-actions{gap:var(--sp-2);flex-wrap:wrap;align-items:flex-end;display:flex}.attachment-upload{border-top:1px solid var(--line);padding-top:var(--sp-3)}.proposal-list{gap:var(--sp-3);margin:0;padding:0;list-style:none;display:grid}.proposal-item{border:1px solid var(--line);border-left:3px solid var(--accent-600);border-radius:var(--radius);padding:var(--sp-3);gap:var(--sp-2);display:grid}.proposal-head{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.proposal-meta{font-size:var(--fs-xs);color:var(--ink-3)}.proposal-summary{font-size:var(--fs-sm);gap:2px;margin:0;padding-left:1.2rem;display:grid}.proposal-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.table .totals-row td{background:var(--surface-2);border-top:2px solid var(--line);font-weight:600}.report-form{gap:var(--sp-3);display:grid}.report-meta{gap:var(--sp-2) var(--sp-4);color:var(--ink-3);font-size:var(--fs-sm);margin:0 0 var(--sp-3);flex-wrap:wrap;display:flex}.report-notes{margin:var(--sp-3) 0 0;color:var(--ink-3);font-size:var(--fs-sm);padding-left:1.25rem}.bell{position:relative}.bell-button{min-width:2.25rem;position:relative}.bell-count{background:var(--sev-high);color:#fff;text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;min-width:1.15rem;height:1.15rem;padding:0 4px;font-size:.68rem;font-weight:700;line-height:1.15rem;position:absolute;top:-6px;right:-6px}.bell-panel{z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:min(22rem,100vw - 1.5rem);max-height:70vh;position:absolute;top:calc(100% + 6px);right:0;overflow:auto;box-shadow:0 10px 30px #0000001f}.bell-panel-head{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);display:flex}.bell-list{margin:0;padding:0;list-style:none}.bell-item{all:unset;box-sizing:border-box;width:100%;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);cursor:pointer;font-size:var(--fs-sm);color:var(--ink-3);gap:2px;display:grid}.bell-item:hover,.bell-item:focus-visible{background:var(--surface-2)}.bell-item.unread{color:var(--ink);border-left:3px solid var(--accent-600)}.bell-item-title{font-weight:600}.bell-item-body,.bell-item-meta{font-size:var(--fs-xs);color:var(--ink-3)}@media (width<=560px){.bell-panel{position:fixed;top:3.25rem;right:.75rem}}.plain-list{margin:0;padding-left:1.1em}.plain-list li+li{margin-top:2px}.link-button{color:var(--accent-700);font:inherit;font-size:var(--fs-sm);cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.link-button:hover:not(:disabled){text-decoration:underline}.link-button:disabled{opacity:.5;cursor:default}.mfa-steps{margin:0 0 var(--sp-3) 1.2em;color:var(--ink-2);font-size:var(--fs-sm)}.mfa-setup{gap:var(--sp-4);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.mfa-qr{border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:220px;height:220px}.recovery-codes{gap:var(--sp-2);margin:var(--sp-3) 0;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));padding-left:1.6em;display:grid}.recovery-codes code{font-size:var(--fs-md);letter-spacing:.04em}.recovery-banner{margin-bottom:var(--sp-4)}.recovery-step{margin:var(--sp-2) 0 0;align-items:flex-start;display:flex}.recovery-step input{margin-top:3px}.section-title{margin:var(--sp-4) 0 var(--sp-2);font-size:var(--fs-sm);color:var(--ink-2)}.panel-note{color:var(--ink-3);font-size:var(--fs-sm);margin-bottom:var(--sp-3)}
