:root{--ink:#12303f;--brass:#f2b23e;--paper:#f6f2e9;--steel:#5e8496;--bg:var(--paper);--bg-raised:#fcfaf4;--bg-hover:#efe9db;--bg-sunken:#ede7d8;--border:#e3dccb;--border-strong:#cdc4ae;--text:var(--ink);--text-muted:#3f5a67;--text-faint:#536c78;--accent:#866016;--accent-bright:var(--brass);--accent-dim:#f7e9c9;--accent-ring:#f2b23e73;--good:#327350;--bad:#b24331;--warn:#8a5f12;--sidebar-bg:var(--ink);--sidebar-border:#1d4257;--sidebar-text:#ede7da;--sidebar-muted:#b3cad6;--sidebar-faint:#93aeba;--sidebar-hover:#1b3f53;--sidebar-active-bg:#f2b23e29;--sidebar-active-text:#f6c976;--shadow:0 1px 2px #12303f0f, 0 8px 24px #12303f0d;--actual:#1d6b70;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--radius:10px;--mono:ui-monospace, "SF Mono", SFMono-Regular, Menlo, monospace;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif}:root[data-theme=dark]{--bg:#0c1f2b;--bg-raised:#12303f;--bg-hover:#1b3f53;--bg-sunken:#0a1a24;--border:#1e4356;--border-strong:#2e5c73;--text:var(--paper);--text-muted:#b3cad6;--text-faint:#8aa6b3;--accent:var(--brass);--accent-bright:var(--brass);--accent-dim:#f2b23e29;--accent-ring:#f2b23e80;--good:#6fc49a;--bad:#f08a74;--warn:#e8ac42;--sidebar-bg:#0a1a24;--sidebar-border:#1a3b4d;--sidebar-text:#ede7da;--sidebar-muted:#b3cad6;--sidebar-faint:#93aeba;--sidebar-hover:#16374a;--sidebar-active-bg:#f2b23e29;--sidebar-active-text:#f6c976;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000047;--actual:#63c9c2;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:600}.shell{min-height:100%;display:flex}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);flex-direction:column;flex:0 0 216px;gap:4px;width:216px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.brand{padding:0 10px 18px}.brand-name{color:var(--sidebar-text);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:650;overflow:hidden}.brand-sub{color:var(--sidebar-faint);text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.nav-item{color:var(--sidebar-muted);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:10px;width:100%;padding:8px 10px;font-family:inherit;font-size:13.5px;font-weight:500;display:flex}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text)}.nav-item.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.nav-badge{background:var(--brass);color:#3b2a05;border-radius:9px;margin-left:auto;padding:1px 6px;font-size:10.5px;font-weight:600}.sidebar-foot{color:var(--sidebar-faint);margin-top:auto;padding:10px;font-size:11px}.sidebar-foot .warn{color:var(--brass)}.sidebar-foot .btn{border-color:var(--sidebar-border);color:var(--sidebar-muted);background:0 0}.sidebar-foot .btn:hover{border-color:var(--brass);color:var(--sidebar-active-text)}.main{flex:1;min-width:0;max-width:1500px;padding:28px 32px 64px}.page-head{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-title{font-size:22px}.page-sub{color:var(--text-muted);margin-top:3px;font-size:13px}.page-head-right{align-items:center;gap:8px;margin-left:auto;display:flex}.grid{gap:14px;display:grid}.grid-4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.card-head{align-items:baseline;gap:10px;margin-bottom:14px;display:flex}.card-title{font-size:13.5px;font-weight:600}.card-note{color:var(--text-faint);margin-left:auto;font-size:11.5px}.stat-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:11px;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:6px;font-size:25px;font-weight:650}.stat-value.sm{font-size:19px}.stat-foot{color:var(--text-muted);margin-top:5px;font-size:12px}.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.num{font-variant-numeric:tabular-nums;font-family:var(--mono)}.table-wrap{border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:right;white-space:nowrap;padding:7px 10px}th{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);border-bottom:1px solid var(--border-strong);background:var(--bg-raised);z-index:1;font-size:10.5px;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left;background:var(--bg-raised);z-index:2;position:sticky;left:0}th:first-child{z-index:3}tbody tr:hover td,tbody tr:hover td:first-child{background:var(--bg-hover)}tr.section-row td{border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);background:var(--bg-sunken);font-weight:650}tr.section-row:hover td{background:var(--bg-sunken)}tr.group-label td{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);border-bottom:none;padding-top:14px;font-size:10.5px;font-weight:700}.btn{border:1px solid var(--border-strong);background:var(--bg-hover);color:var(--text);cursor:pointer;border-radius:7px;padding:6px 12px;font-family:inherit;font-size:12.5px;font-weight:550}.btn:hover{border-color:var(--accent-bright)}.btn.primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}:root[data-theme=dark] .btn.primary{background:var(--brass);border-color:var(--brass);color:#3b2a05}.btn.primary:hover{filter:brightness(1.1)}.btn.ghost{background:0 0}.btn.danger:hover{border-color:var(--bad);color:var(--bad)}.btn:disabled{opacity:.5;cursor:default}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}input,select{font-family:var(--mono);background:var(--bg);border:1px solid var(--border-strong);color:var(--text);border-radius:6px;width:100%;padding:6px 9px;font-size:13px}input:focus,select:focus{border-color:var(--accent-bright);box-shadow:0 0 0 3px var(--accent-ring);outline:none}select{font-family:var(--sans)}.cell-input{color:var(--text);text-align:right;background:0 0;border:1px solid #0000;border-radius:4px;width:100%;min-width:84px;padding:2px 4px;font-size:13px}.cell-input:hover{border-color:var(--border-strong)}.cell-input.actual{color:var(--actual)}.cell-input.empty{color:var(--text-faint)}.toggle{background:var(--bg);border:1px solid var(--border);border-radius:8px;gap:2px;padding:3px;display:flex}.toggle button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 11px;font-family:inherit;font-size:12px;font-weight:550}.toggle button.on{background:var(--bg-raised);color:var(--text);box-shadow:0 1px 2px #12303f1f}.pill{text-transform:uppercase;letter-spacing:.04em;border-radius:20px;padding:2px 8px;font-size:10.5px;font-weight:650}.pill.fix{background:var(--accent-dim);color:var(--warn)}.pill.note{color:var(--text-muted);background:#5e849624}.pill.ok{color:var(--good);background:#3e8e6324}.chart{width:100%;display:block;overflow:visible}.chart text{fill:var(--text-faint);font-size:10px;font-family:var(--sans)}.chart .grid-line{stroke:var(--border);stroke-width:1px}.chart .axis-line{stroke:var(--border-strong);stroke-width:1px}.legend{color:var(--text-muted);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:11.5px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.swatch{border-radius:2px;width:9px;height:9px}.login{place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{width:100%;max-width:340px}.callout{background:var(--accent-dim);color:var(--text);border:1px solid #f2b23e66;border-radius:8px;gap:11px;padding:12px 14px;font-size:12.5px;display:flex}.callout.info{color:var(--text);background:#5e84961a;border-color:#5e84964d}.divergence{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:14px 0;display:flex}.divergence:last-child{border-bottom:none}.divergence-head{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.divergence-cell{font-family:var(--mono);color:var(--accent);background:var(--accent-dim);border:1px solid #f2b23e4d;border-radius:4px;padding:1px 6px;font-size:11px}.divergence p{color:var(--text-muted);margin:0;font-size:12.5px}.divergence .impact{color:var(--text)}.spinner{color:var(--text-faint);text-align:center;padding:60px}.error-box{color:var(--bad);background:#c64b3617;border:1px solid #c64b3666;border-radius:8px;padding:12px 14px;font-size:13px}@media (width<=820px){.shell{flex-direction:column}.sidebar{flex-direction:row;flex:none;width:100%;height:auto;padding:10px;position:static;overflow-x:auto}.brand,.sidebar-foot{display:none}.main{padding:18px 14px 48px}}.hint-toggle{cursor:pointer;color:var(--text);font:inherit;background:0 0;border:none;align-items:center;gap:7px;padding:0;font-size:13.5px;font-weight:600;display:inline-flex}.hint-toggle:hover{color:var(--accent)}.hint-mark{border:1px solid var(--border-strong);width:15px;height:15px;color:var(--text-faint);text-align:center;border-radius:50%;font-size:10px;font-weight:700;line-height:13px}.hint-toggle:hover .hint-mark{border-color:var(--accent-bright);color:var(--accent)}.hint-mark.on{background:var(--brass);border-color:var(--brass);color:#3b2a05}.hint-body{background:#5e849614;border:1px solid #5e849638;border-radius:8px;margin-bottom:14px;padding:12px 14px;font-size:12.5px;line-height:1.6}.hint-what{color:var(--text);margin:0 0 8px}.hint-steps{color:var(--text-muted);gap:4px;margin:0;padding-left:18px;display:grid}.hint-steps li::marker{color:var(--accent);font-weight:600}.hint-tip{color:var(--text-muted);margin:10px 0 0}.hint-tip strong{color:var(--warn);margin-right:6px;font-weight:650}.guide{margin-bottom:16px}.guide-head{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:100%;font:inherit;text-align:left;color:var(--text-muted);align-items:center;gap:10px;padding:10px 14px;display:flex}.guide-head:hover{border-color:var(--border-strong);color:var(--text)}.guide.open .guide-head{border-radius:var(--radius) var(--radius) 0 0;border-bottom:none}.guide-icon{background:var(--accent-dim);width:18px;height:18px;color:var(--accent);text-align:center;border-radius:50%;flex:0 0 18px;font-size:11px;font-weight:700;line-height:18px}.guide-lead{flex:1;font-size:12.5px}.guide-chevron{color:var(--text-faint);white-space:nowrap;font-size:11.5px}.guide.open .hint-body{border-radius:0 0 var(--radius) var(--radius);border-color:var(--border);background:var(--bg-raised);margin-bottom:0}.feature-row{color:var(--text);cursor:pointer;grid-template-columns:auto auto 1fr;align-items:start;gap:10px;font-size:13px;display:grid}.feature-row input{width:15px;height:15px;accent-color:var(--brass);margin-top:2px}.feature-row input:disabled{cursor:default;opacity:.5}.feature-icon{text-align:center;width:16px;color:var(--text-faint)}.feature-name{font-weight:550;display:block}.feature-blurb{color:var(--text-faint);margin-top:2px;font-size:11.5px;display:block}.ws-switch{margin:0 0 14px;position:relative}.ws-button{border:1px solid var(--sidebar-border);cursor:pointer;width:100%;color:var(--sidebar-text);font:inherit;text-align:left;background:#ffffff0d;border-radius:8px;align-items:center;gap:9px;padding:8px 10px;display:flex}.ws-button:hover{border-color:var(--brass)}.ws-avatar{background:var(--brass);color:#3b2a05;text-align:center;border-radius:6px;flex:0 0 22px;width:22px;height:22px;font-size:11px;font-weight:700;line-height:22px}.ws-name{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12.5px;font-weight:600;overflow:hidden}.ws-caret{color:var(--sidebar-faint);font-size:10px}.ws-menu{z-index:40;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:8px;padding:5px;position:absolute;top:calc(100% + 5px);left:0;right:0;box-shadow:0 12px 32px #00000080}.ws-item{cursor:pointer;width:100%;color:var(--text-muted);font:inherit;text-align:left;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:7px 8px;font-size:12.5px;display:flex}.ws-item:hover{background:var(--bg-hover);color:var(--text)}.ws-item.current{color:var(--accent);font-weight:600}.ws-item-role{color:var(--text-faint);margin-left:auto;font-size:10.5px}.ws-divider{background:var(--border);height:1px;margin:5px 0}.pw-wrap{display:flex;position:relative}.pw-wrap input{padding-right:52px}.pw-toggle{cursor:pointer;color:var(--text-faint);font:inherit;background:0 0;border:none;border-radius:4px;padding:3px 7px;font-size:11px;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--accent);background:var(--bg-sunken)}.member-badge{background:var(--accent-dim);color:var(--warn);text-transform:uppercase;letter-spacing:.04em;border-radius:10px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:650}.credential-box{background:#3e8e6314;border:1px solid #3e8e6359;border-radius:8px;margin-top:12px;padding:12px 14px;font-size:12.5px}.credential-box code{font-family:var(--mono);color:var(--text);background:var(--bg);-webkit-user-select:all;user-select:all;word-break:break-all;border-radius:6px;margin-top:7px;padding:7px 9px;font-size:13px;display:block}.brand{align-items:center;gap:10px;display:flex}.brand-mark{border-radius:7px;flex:0 0 28px}.login-brand{align-items:center;gap:12px;margin-bottom:16px;display:flex}.login-brand img{border-radius:9px}.theme-toggle{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}::selection{background:var(--accent-ring);color:var(--text)}*{scrollbar-color:var(--border-strong) transparent}.editable-text{color:inherit;font:inherit;text-align:left;cursor:text;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;max-width:100%;margin:-2px -5px;padding:2px 5px;overflow:hidden}.editable-text:hover{border-color:var(--border-strong)}.editable-text-input{font:inherit;border-radius:4px;width:100%;min-width:120px;margin:-2px -5px;padding:2px 5px}.row-action{padding:1px 7px;font-size:11px;transition:opacity .1s}tr .row-action{opacity:0}tr:hover .row-action,tr .row-action:focus-visible{opacity:1}@media (hover:none){tr .row-action{opacity:1}}.add-row{flex-wrap:wrap;align-items:flex-end;gap:8px;padding:12px 0 2px;display:flex}.empty-hint{text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:8px;margin-top:12px;padding:18px;font-size:13px}.note-wrap{vertical-align:middle;display:inline-flex;position:relative}.note-mark{cursor:pointer;opacity:0;background:0 0;border:none;border-radius:3px;width:12px;height:12px;margin-left:3px;padding:0;transition:opacity .1s;position:relative}.note-mark:after{content:"";border:1px solid var(--text-faint);border-radius:2px;position:absolute;inset:3px}.note-mark:hover:after{border-color:var(--accent)}tr:hover .note-mark,.note-mark:focus-visible,.note-mark.has-note{opacity:1}.note-mark.has-note:after{background:var(--brass);border-color:var(--brass);inset:2px}@media (hover:none){.note-mark{opacity:1}}.note-pop{z-index:60;background:var(--bg-raised);border:1px solid var(--border-strong);text-align:left;white-space:normal;border-radius:8px;flex-direction:column;gap:8px;width:260px;padding:10px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000047}.note-pop textarea{font-family:var(--sans);background:var(--bg);border:1px solid var(--border-strong);color:var(--text);resize:vertical;border-radius:6px;width:100%;padding:7px 9px;font-size:12.5px;line-height:1.5}.note-pop textarea:focus{border-color:var(--accent-bright);outline:none}.note-actions{gap:6px;display:flex}.note-actions .btn{padding:4px 10px;font-size:12px}.note-legend{color:var(--text-faint);font-size:11.5px}.note-legend i{background:var(--brass);vertical-align:baseline;border-radius:2px;width:8px;height:8px;margin-right:5px;display:inline-block}.modal-backdrop{z-index:200;background:#12303f73;place-items:center;padding:20px;display:grid;position:fixed;inset:0}:root[data-theme=dark] .modal-backdrop{background:#0009}.modal{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius);width:100%;max-width:420px;max-height:90vh;padding:20px;overflow-y:auto;box-shadow:0 24px 60px #00000059}.topbar{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:4px;padding-bottom:14px;display:flex}.topbar-context{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.topbar-action{align-items:center;gap:7px;margin-left:auto;display:inline-flex}.member-badge.admin{background:var(--accent-dim);color:var(--accent)}@media (width<=820px){.topbar-context{display:none}.topbar-action{margin-left:0}}.policy-group{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:4px 0 10px;font-size:11px;font-weight:700}.policy-rows{grid-template-columns:auto 1fr;align-items:baseline;gap:6px 14px;font-size:13px;display:grid}.policy-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);white-space:nowrap;font-size:10.5px;font-weight:600}.policy-value{word-break:break-word;font-weight:550}.policy-summary{border-top:1px solid var(--border);color:var(--text-muted);margin:14px 0 0;padding-top:12px;font-size:12.5px;line-height:1.6}.policy-textarea{font-family:var(--sans);background:var(--bg);border:1px solid var(--border-strong);color:var(--text);resize:vertical;border-radius:6px;width:100%;padding:8px 10px;font-size:12.5px;line-height:1.5}.policy-textarea:focus{border-color:var(--accent-bright);box-shadow:0 0 0 3px var(--accent-ring);outline:none}input[type=file]{font-family:var(--sans);padding:8px;font-size:13px}input[readonly],textarea[readonly],select:disabled{border-color:var(--border);color:var(--text-muted);cursor:default;background:0 0}input[readonly]:focus,textarea[readonly]:focus{border-color:var(--border);box-shadow:none}.cell-static{text-align:right;font-variant-numeric:tabular-nums;min-width:84px;padding:3px 5px;font-size:13px;display:block}.cell-static.empty{color:var(--text-faint)}.cell-static.actual{color:var(--actual)}.static-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}
