.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin:4px 0 16px}.kpi-card{display:flex;flex-direction:column;gap:4px;min-width:0;background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:14px 16px 12px;box-shadow:0 1px 2px #1d2a320d;font:inherit;color:inherit;text-align:left}.kpi-card.is-button{cursor:pointer}.kpi-card.is-button:hover{border-color:var(--action)}.kpi-card.is-active{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}.kpi-card.rag-green{border-top:3px solid var(--ok-ink)}.kpi-card.rag-amber{border-top:3px solid #b07a1f}.kpi-card.rag-red{border-top:3px solid var(--err-ink)}a.kpi-card{text-decoration:none}.kc-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.kc-rag{font-size:.72rem;font-weight:600;white-space:nowrap}.kc-rag i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px;background:currentColor}.kc-rag.is-green{color:var(--ok-ink)}.kc-rag.is-amber{color:#6d5312}.kc-rag.is-red{color:var(--err-ink)}.kpi-strip+.kpi-strip{margin-top:-4px}.strip-title{margin:14px 0 6px;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft)}.kc-label{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--ink-soft);text-transform:uppercase}.kc-value{font-size:1.75rem;font-weight:600;line-height:1.15}.kc-change{font-size:.82rem;font-weight:600}.kc-change.is-good{color:var(--ok-ink)}.kc-change.is-bad{color:var(--err-ink)}.kc-muted{color:var(--muted);font-weight:400}.kc-note{font-size:.8rem;color:var(--ink-soft)}.kc-spark{width:100%;height:28px;margin-top:2px}.kc-bullet{display:flex;flex-direction:column;gap:3px;font-size:.78rem}.kc-track{position:relative;height:8px;background:var(--grid);border-radius:4px}.kc-fill{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:#eda100}.kc-fill.is-good{background:#0d8a76}.kc-tick{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink)}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;align-items:start}.dash-grid.is-packed{grid-auto-rows:8px;row-gap:0;grid-auto-flow:row dense}.dash-grid.is-packed>.panel{margin-bottom:16px}.panel-data.is-folded table.ledger>tbody>tr:nth-child(n+13){display:none}.panel-more,.rb-more{margin-top:6px;font-size:.82rem}.panel{grid-column:span 6;min-width:0;background:var(--surface);border:1px solid var(--rule);border-radius:10px;padding:12px 16px 14px;box-shadow:0 1px 2px #1d2a320d}.panel.span-3{grid-column:span 3}.panel.span-4{grid-column:span 4}.panel.span-5{grid-column:span 5}.panel.span-7{grid-column:span 7}.panel.span-8{grid-column:span 8}.panel.span-12{grid-column:span 12}.panel-head{margin-bottom:8px}.panel-head h3{font-size:.95rem;margin:0}.panel .ledger{background:transparent}.panel-data{margin-top:10px;overflow-x:auto}.panel-data.is-collapsed{display:none}.panel-note{margin:8px 0 0;font-size:.8rem;color:var(--ink-soft)}.panel.is-full{position:fixed;top:16px;right:16px;bottom:16px;left:16px;z-index:50;overflow:auto;box-shadow:0 0 0 100vmax #1d2a3259}@media (max-width: 1100px){.panel.span-3,.panel.span-4,.panel.span-5{grid-column:span 6}.panel.span-7,.panel.span-8{grid-column:span 12}}@media (max-width: 760px){.dash-grid{grid-template-columns:minmax(0,1fr)}.panel,.panel[class*=span-]{grid-column:1 / -1}}.filter-chips{display:inline-flex;align-items:center;gap:8px;max-width:100%}.filter-chips .seg{overflow-x:auto;max-width:100%}.filter-chips .seg button{white-space:nowrap}.fc-label{font-size:.85rem;color:var(--ink-soft)}.active-filter{margin:0 0 12px;font-size:.9rem}.active-filter .link-button{margin-left:8px}.kit-chart{width:100%}.kit-chart svg{display:block}.kit-grid{stroke:var(--grid);stroke-width:1}.kit-axis{font-size:11px;fill:var(--muted);font-variant-numeric:tabular-nums}.kit-label{font-size:11px;font-weight:600;fill:var(--ink);font-variant-numeric:tabular-nums}.kit-centre{font-size:13px;font-weight:600;fill:var(--ink)}.kit-pick{cursor:pointer}.kit-empty{color:var(--muted);font-size:.9rem;margin:8px 0}.kit-legend{display:flex;flex-wrap:wrap;gap:4px 14px;list-style:none;margin:6px 0 0;padding:0;font-size:.8rem}.kit-legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}.kit-legend i.is-line{height:0;border-top:2px dashed #6b7a80;border-radius:0;vertical-align:3px}.kit-legend.is-column{flex-direction:column;gap:6px}.kit-legend.is-column li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center}.kit-legend .is-dim,.rank-bars .is-dim{opacity:.45}.share-donut{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.share-donut .kit-legend{flex:1;min-width:160px}.rank-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.rb-row{display:grid;grid-template-columns:minmax(0,42%) minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;background:none;border:0;padding:2px 0;font:inherit;color:inherit;text-align:left}button.rb-row{cursor:pointer}button.rb-row:hover .rb-label{color:var(--action)}.rb-label{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rb-sub{color:var(--muted);margin-left:6px;font-size:.78rem}.rb-track{height:12px;background:var(--grid);border-radius:3px;overflow:hidden}.rb-fill{display:block;height:100%;border-radius:3px}.rb-value{font-size:.85rem;min-width:64px;text-align:right}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:0}.stat-row dt{font-size:.75rem;color:var(--ink-soft)}.stat-row dd{margin:0;font-size:1.2rem;font-weight:600}@media print{.dash-grid{display:block}.panel,.kpi-card{box-shadow:none;break-inside:avoid;margin-bottom:10px}.panel-data.is-collapsed{display:block}.panel-data.is-folded table.ledger>tbody>tr{display:table-row!important}.dash-grid.is-packed>.panel{grid-row-end:auto!important;margin-bottom:10px}.panel.is-full{position:static;box-shadow:none}}.drill-link{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline dotted var(--muted);text-underline-offset:3px}.drill-link:hover,.drill-link:focus-visible{color:var(--action);text-decoration-color:var(--action)}button.kpi-drill{background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}button.kpi-drill:hover .kpi-value,button.kpi-drill:focus-visible .kpi-value{color:var(--action)}.drill-panel{z-index:60}@media print{.drill-link{text-decoration:none}}.points-editor{margin:8px 0 14px;padding:12px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--surface)}.points-editor input{width:100%;min-width:120px}.insight-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 18px;margin:4px 0 14px}.insight-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted, #5f6b6a)}.insight-controls select{min-width:150px;max-width:240px}.query-insights .kc-value{overflow-wrap:anywhere}.results-panel{margin-top:0}.results-panel .panel-head{align-items:center}.results-panel .active-filter{margin:0}.cf-settings{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:12px}.cf-settings fieldset{max-height:320px;overflow-y:auto;border:1px solid var(--rule);border-radius:8px;padding:8px 12px}.cf-settings .check{display:flex;gap:6px;align-items:baseline;font-size:.86rem;padding:2px 0}.cf-settings .check .num{margin-left:auto}table.ledger tr.is-low td{font-weight:600}:root{--settled: var(--action);--age1: #d8c48a;--age2: #c9a057;--age3: #b87c33;--age4: #a05a28;--age5: #843c24;--age6: #5f261a}.report{display:flex;flex-direction:column;gap:28px}.report-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}.report-head h2{margin:0 0 4px;font-size:1.25rem;font-weight:600}.report-head p{margin:0;max-width:68ch}.report-meta{white-space:nowrap;font-size:.82rem}.report-error{color:var(--age5)}.report .muted{color:var(--ink-soft)}.report-figures{display:flex;flex-wrap:wrap;gap:6px 40px;align-items:baseline}.report-figures div{display:flex;flex-direction:column}.report-figures strong{font-size:2rem;font-weight:600;line-height:1.1}.num{font-variant-numeric:tabular-nums}.num.settled{color:var(--settled)}.num.out{color:var(--age3)}.num.low{color:var(--age5);font-weight:600}.strip{display:flex;height:46px;border-radius:3px;overflow:hidden;background:var(--rule)}.strip-seg{display:block;height:100%;min-width:0;transition:flex-grow .35s ease}.strip-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.84rem}.strip-legend span{display:inline-flex;align-items:center;gap:6px}.strip-legend i{width:11px;height:11px;border-radius:2px;display:inline-block}.strip-legend b{font-weight:600}.tone-settled{background:var(--settled)}.tone-age1{background:var(--age1)}.tone-age2{background:var(--age2)}.tone-age3{background:var(--age3)}.tone-age4{background:var(--age4)}.tone-age5{background:var(--age5)}.tone-age6{background:var(--age6)}@media (prefers-reduced-motion: reduce){.strip-seg{transition:none}}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.kpi{display:flex;flex-direction:column;gap:2px;padding:14px 18px 14px 0}.kpi+.kpi{border-left:1px solid var(--rule);padding-left:18px}.kpi-label,.kpi-note{font-size:.8rem}.kpi-value{font-size:1.4rem;font-weight:600}.report h3{font-size:1rem;font-weight:600;margin:0 0 12px}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}@media (max-width: 860px){.report-grid{grid-template-columns:minmax(0,1fr)}}.report table.ledger{width:100%;border-collapse:collapse;font-size:.88rem}.report table.ledger th{text-align:left;font-weight:500;color:var(--ink-soft);border-bottom:1px solid var(--rule);padding:6px 8px 6px 0;white-space:nowrap}.report table.ledger td{padding:6px 8px 6px 0;border-bottom:1px solid var(--rule)}.report table.ledger .r,.report table.ledger th.r{text-align:right;padding-right:0}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--bg)}.rate{display:inline-flex;align-items:center;gap:8px;justify-content:flex-end}.rate-bar{width:64px;height:6px;background:var(--rule);border-radius:3px;overflow:hidden}.rate-bar i{display:block;height:100%;background:var(--settled)}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:minmax(110px,190px) 1fr auto;gap:10px;align-items:center;font-size:.86rem}.bar-track{height:12px;background:var(--rule);border-radius:2px;overflow:hidden}.bar-track i{display:block;height:100%;background:var(--settled)}.report-footnote{font-size:.82rem}.report .pair{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;align-items:start}@media (max-width: 1100px){.report .pair{grid-template-columns:minmax(0,1fr)}}.report .note{font-size:.82rem;margin:6px 0 0}.report .strip.mini{height:10px;min-width:140px;border-radius:2px}.report .age-col{width:160px;padding-left:16px}.report table.compact td,.report table.compact th{padding-top:3px;padding-bottom:3px;font-size:.86rem}.report .year-figures{display:flex;flex-wrap:wrap;gap:6px 28px;margin:2px 0 12px;font-size:.9rem}.report .year-figures b{font-weight:600;margin-left:4px}.report tr.current td{background:var(--bg)}.report .section-actions .seg button{padding:3px 12px;font-variant-numeric:tabular-nums}.tone-pending{background:#8fc1b8}.pm .pm-switches{display:flex;flex-wrap:wrap;gap:8px 22px;margin:-4px 0 4px;font-size:.9rem}.pm .pm-tabs{align-self:flex-start;margin:4px 0 -4px}.pm .pm-tabs button{font-size:.88rem;padding:5px 14px}.pm .pm-scroll{max-height:72vh;overflow:auto;border-top:1px solid var(--rule)}.pm .pm-table{font-size:.84rem}.pm .pm-table th{position:sticky;top:0;background:var(--surface);z-index:1;white-space:nowrap}.pm .pm-table .pm-sticky{position:sticky;left:0;background:var(--surface);z-index:2;min-width:120px}.pm .pm-table th.pm-sticky{z-index:3}.pm .pm-table td{vertical-align:top}.pm .pm-sub{font-size:.76rem;line-height:1.25}.pm .pm-stage{min-width:64px}.pm .pm-mapcol{min-width:190px;max-width:240px}.pm .pm-open{border-left:1px solid var(--rule)}.pm .pm-status{font-size:.8rem;margin-top:4px}.pm tr.pm-carried td{background:color-mix(in srgb,var(--bg) 60%,transparent)}.pm .pm-projtext{color:#3f8f82}.pm .pm-bar{position:relative;height:10px;border-radius:3px;background:var(--rule);overflow:hidden}.pm .pm-bar .pm-paid,.pm .pm-bar .pm-proj{position:absolute;left:0;top:0;bottom:0}.pm .pm-bar .pm-paid{background:var(--settled)}.pm .pm-bar .pm-proj{background:repeating-linear-gradient(135deg,#8fc1b8 0,#8fc1b8 4px,#c7e1dc 4px,#c7e1dc 7px)}.pm .pm-bar .pm-tick{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--surface)}.pm .pm-legend i{width:14px;height:10px;border-radius:2px;display:inline-block}.pm .pm-key-paid{background:var(--settled)}.pm .pm-key-proj{background:repeating-linear-gradient(135deg,#8fc1b8 0,#8fc1b8 4px,#c7e1dc 4px,#c7e1dc 7px)}.pm .pm-key-tick{background:var(--rule);box-shadow:inset 6px 0 0 var(--rule),inset 8px 0 #fff}@media print{.pm .pm-scroll{max-height:none;overflow:visible}.pm .pm-table .pm-sticky,.pm .pm-table th{position:static}}.pm .pm-detail{white-space:nowrap;font-size:.8rem}.tone-owed{background:var(--age3)}.pm .pm-bridge{height:34px;margin:4px 0 8px}.pm .pm-bridge-table{max-width:640px}.pm .pm-key{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:8px;vertical-align:-1px}.pm .pm-headline{font-size:.95rem;margin:2px 0 6px}.sp .up{color:var(--ok-ink)}.sp .down{color:var(--err-ink)}.sp tr.current td{background:var(--bg)}.sp .sp-group td{font-weight:600;background:var(--bg);padding-top:8px}.sp .sp-grid td,.sp .sp-grid th{white-space:nowrap}.report.board .board-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0;border-top:1px solid var(--rule);margin:4px 0 28px}.report.board .board-tile{display:flex;flex-direction:column;gap:3px;padding:12px 16px 12px 14px;border-bottom:1px solid var(--rule);border-left:3px solid var(--rule)}.report.board .board-tile-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.report.board .rag-edge-green{border-left-color:var(--ok-ink)}.report.board .rag-edge-amber{border-left-color:#b07a1f}.report.board .rag-edge-red{border-left-color:var(--err-ink)}.report.board .rag{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:600}.report.board .rag i{width:8px;height:8px;border-radius:50%;background:currentColor}.report.board .rag-green{color:var(--ok-ink)}.report.board .rag-amber{color:#6d5312}.report.board .rag-amber i{background:#b07a1f}.report.board .rag-red{color:var(--err-ink)}.report.board .spark{width:100%;height:24px;margin-top:4px}.report.board .spark polyline{stroke:var(--ink-soft);stroke-width:1.5}.report.board .board-links{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:.8rem;margin-top:2px}.report.board .board-links a{color:var(--action)}.report.board .board-warn{background:#f7edd8;color:#6d5312;border-color:#b07a1f}.report.board .num{font-variant-numeric:tabular-nums}.report.pl .banner{background:var(--surface);color:var(--ink-soft);border-color:var(--rule)}.report.pl .up{color:var(--ok-ink)}.report.pl .down{color:var(--err-ink)}.report.pl tr.pl-drawer td{font-weight:600;background:var(--bg);padding-top:8px}.report.pl tr.pl-group td:first-child{padding-left:14px}.report.pl tr.pl-group td:first-child:before{content:"▸ ";color:var(--muted)}.report.pl tr.pl-group td.open:first-child:before{content:"▾ "}.report.pl tr.pl-account td{color:var(--ink-soft)}.report.pl tr.pl-account td:first-child{padding-left:32px}.report.pl tr.pl-total td{font-weight:600;border-top:1px solid var(--ink)}.report.pl tr.pl-last td{color:var(--muted)}.report.pl .pl-months td,.report.pl .pl-months th{white-space:nowrap}@media print{.report.pl tr.pl-group td:first-child:before{content:none}}.report.pl .pl-toggle{color:inherit;text-align:left;padding:0}.report.group .gv-sub{font-size:12px}.report.group .gv-sys td{border-top:0;font-size:12px;color:var(--muted)}.report.group .gv-note{margin-bottom:12px}.report.group .gv-admin{margin-top:28px}.report.group .gv-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.report.group .gv-lists ul{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}.report.group .gv-lists h4{margin:0 0 6px;font-size:13px;font-weight:600}.report.wc .up{color:var(--ok-ink)}.report.wc .down{color:var(--err-ink)}.report.wc .wc-group td{font-weight:600;background:var(--bg);padding-top:8px}.report.wc .wc-sub td{font-weight:500}.report.wc tfoot td{font-weight:600}.report.wc .wc-summary{max-width:900px}.report.wc table.ledger th.r+th:not(.r),.report.wc table.ledger td.r+td:not(.r){padding-left:16px}.report.spf .up{color:var(--ok-ink)}.report.spf .down{color:var(--err-ink)}.report.spf tfoot td{font-weight:600}.report.spf .spf-filters .seg{align-self:flex-end}.report.spf table.ledger th.r+th:not(.r),.report.spf table.ledger td.r+td:not(.r){padding-left:16px}.report.imp .up{color:var(--ok-ink)}.report.imp .down{color:var(--err-ink)}.report.imp tfoot td{font-weight:600}.report.imp .imp-warn{background:#f7edd8;color:#6d5312;border-color:#b07a1f}.report.inv .inv-age-rows{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.report.inv .inv-age-row{display:grid;grid-template-columns:minmax(120px,220px) 1fr 64px;gap:10px;align-items:center;width:100%;background:none;border:0;padding:2px 0;font:inherit;color:inherit;text-align:left}.report.inv button.inv-age-row{cursor:pointer}.report.inv button.inv-age-row:hover .inv-age-label{color:var(--action)}.report.inv .inv-age-rows .is-dim{opacity:.45}.report.inv .inv-age-label{font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.report.inv .inv-age-track{display:flex;height:14px;border-radius:3px;overflow:hidden;min-width:2px}.report.inv .inv-age-track i{display:block;height:100%;min-width:1px}.report.inv .inv-age-value{font-size:.85rem;text-align:right}.report.inv .inv-profile{display:flex;flex-direction:column;gap:12px}.report.inv .inv-profile .strip{height:28px}.report.inv .inv-scroll{overflow-x:auto}.report.inv .inv-recon th,.report.inv .inv-recon td{white-space:nowrap;padding-left:8px}.report.inv .inv-recon tfoot td{font-weight:600}.report.inv .inv-bad{color:var(--err-ink);font-weight:600}.report.inv .inv-callout{margin:12px 0 0;padding:8px 10px;border-left:3px solid var(--age3);background:var(--bg);font-size:.86rem}@media print{.report.inv .inv-scroll{overflow:visible}}.report.inv .inv-minex{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:flex-end;margin:4px 0 8px}.report.inv .inv-minex label{display:flex;flex-direction:column;gap:4px;font-size:.85rem}.report.inv .inv-minex input{min-width:220px}.report.pcost .pc-callout{margin:0 0 14px;padding:8px 10px;border-left:3px solid var(--err-ink);background:var(--bg);font-size:.86rem;max-width:110ch}.report.pcost .panel-data{overflow-x:auto}.report.pcost .panel-data th,.report.pcost .panel-data td{white-space:nowrap}.report.pcost .panel-data td:nth-child(2){white-space:normal}.report.pcost tfoot td{font-weight:600}@media print{.report.pcost .panel-data{overflow:visible}}.report.pcost .pc-outside{margin:0 0 10px;font-size:.86rem}:root{--bg: #edf0ee;--surface: #ffffff;--ink: #1d2a32;--ink-soft: #5a6a72;--rule: #ccd4d0;--action: #23615a;--action-ink: #ffffff;--ok-ink: #1e5b3c;--err-bg: #f6e7e4;--err-ink: #8c2f21;--focus: #23615a;--grid: #e4e9e6;--axis-line: #ccd4d0;--muted: #7d8b92}*{box-sizing:border-box}body{margin:0;font-family:IBM Plex Sans,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.45}.app{max-width:1480px;margin:0 auto;padding:0 20px 60px}.shell{display:grid;grid-template-columns:168px minmax(0,1fr);gap:32px}.sidebar{padding-top:24px}.nav-group h3{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 6px;padding-bottom:5px;border-bottom:1px solid var(--rule)}.nav-group+.nav-group h3{margin-top:18px}.nav-find{margin-bottom:14px}.nav-find input{width:100%;font-size:13px;padding:5px 7px}.nav-all{background:none;border:0;padding:4px 0 0;font:inherit;font-size:12px;color:var(--action);cursor:pointer}.nav-all:hover{text-decoration:underline}.nav-toggle{display:flex;align-items:center;gap:6px;width:100%;background:none;border:0;padding:0;margin:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;text-align:left;cursor:pointer}.nav-toggle:disabled{cursor:default}.nav-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.nav-chevron{width:0;height:0;border-left:4px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .12s;flex:none}.nav-toggle[aria-expanded=true] .nav-chevron{transform:rotate(90deg)}.nav-count{margin-left:auto;font-weight:400;letter-spacing:0;color:var(--muted);font-variant-numeric:tabular-nums}.nav-none{font-size:13px;color:var(--ink-soft);margin:0 0 8px}@media (prefers-reduced-motion: reduce){.nav-chevron{transition:none}}.nav-group ul{list-style:none;margin:0;padding:0}.nav-item{display:block;padding:6px 8px;border-left:2px solid transparent;font-size:14px;color:var(--ink);text-decoration:none}.nav-item:hover{background:var(--surface)}.nav-item.active{border-left-color:var(--action);font-weight:600;background:var(--surface)}.nav-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.topbar{display:flex;align-items:center;gap:28px;padding:22px 0 14px;border-bottom:2px solid var(--ink);flex-wrap:wrap}.brand-name{font-weight:700;font-size:20px;letter-spacing:-.01em}.brand-sub{color:var(--ink-soft);margin-left:10px;font-size:13px}.conn{display:flex;align-items:center;gap:7px;margin-left:auto;font-size:13px;color:var(--ink-soft)}.conn-dot{width:8px;height:8px;border-radius:50%;background:var(--rule)}.conn-ok .conn-dot{background:var(--ok-ink)}.conn-error .conn-dot{background:var(--err-ink)}.link-state{display:inline-flex;align-items:center;gap:6px}.refresh-status{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.refresh-status.error{color:var(--err-ink);cursor:help}.refresh-now{font-size:12px}.refresh-dot{width:8px;height:8px;border-radius:50%;background:#0d8a76;animation:refresh-breathe 1.6s ease-in-out infinite}@keyframes refresh-breathe{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.topbar{position:relative}.refresh-sweep{position:absolute;left:0;right:0;bottom:-2px;height:2px;overflow:hidden}.refresh-sweep:after{content:"";position:absolute;top:0;left:0;width:30%;height:100%;background:#0d8a76;animation:refresh-sweep 1.4s ease-in-out infinite}@keyframes refresh-sweep{0%{transform:translate(-100%)}to{transform:translate(340%)}}@media (prefers-reduced-motion: reduce){.refresh-dot{animation:none;opacity:1}.refresh-sweep{display:none}}@media print{.refresh-status,.refresh-sweep,.refresh-now{display:none}}.content{padding-top:24px}.banner{padding:10px 14px;margin:0 0 18px;border-left:3px solid;font-size:14px}.banner.error{background:var(--err-bg);color:var(--err-ink);border-color:var(--err-ink)}.banner.test{background:#f7edd8;color:#6d5312;border-color:#b07a1f;font-weight:600}input,button{font:inherit}input[type=search],input[type=text],input[type=password],input[type=date],input[type=number]{width:100%;padding:8px 10px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:2px}input:focus-visible{outline:2px solid var(--focus);outline-offset:1px}select{font:inherit;padding:7px 8px;border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:2px}select:focus-visible{outline:2px solid var(--focus);outline-offset:1px}label{display:block;font-size:13px;color:var(--ink-soft)}label input{margin-top:4px}.section-title{font-size:15px;font-weight:700;border-bottom:1px solid var(--rule);padding-bottom:6px;margin:0 0 14px}.actions{margin-top:22px;display:flex;align-items:center;gap:14px}.primary{background:var(--action);color:var(--action-ink);border:none;padding:10px 22px;font-weight:600;cursor:pointer;border-radius:2px}.primary:disabled{opacity:.45;cursor:default}.primary:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--rule);padding:9px 18px;cursor:pointer;border-radius:2px}.secondary:hover{border-color:var(--ink-soft)}.secondary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.link{background:none;border:none;color:var(--action);cursor:pointer;padding:0;text-decoration:underline}dialog.modal{border:0;padding:24px;border-radius:12px;width:min(440px,calc(100vw - 32px));background:var(--surface);color:var(--ink);box-shadow:0 24px 60px #0d1e1c47,0 2px 8px #0d1e1c1f;display:grid;grid-template-columns:auto 1fr;gap:14px 16px;animation:modal-in .16s ease-out}dialog.modal::backdrop{background:#0e1b198c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e4efed;color:var(--action)}.modal-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.modal-danger .modal-icon{background:var(--err-bg);color:var(--err-ink)}.modal-warn .modal-icon{background:#fbf1dc;color:#8a5a00}.modal-text h2{font-size:17px;font-weight:600;margin:8px 0 6px}.modal-text p{margin:0 0 8px;color:var(--ink-soft);font-size:14px;line-height:1.55;white-space:pre-line}.modal-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.modal-actions button{min-width:96px}.primary.danger{background:var(--err-ink);border-color:var(--err-ink)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){dialog.modal{animation:none}}@media print{dialog.modal{display:none}}.hint{color:var(--ink-soft);font-size:13px}.ledger{width:100%;border-collapse:collapse;background:var(--surface)}.ledger th{text-align:left;font-size:13px;font-weight:600;color:var(--ink-soft);padding:8px 12px;border-bottom:2px solid var(--ink)}.ledger td{padding:9px 12px;border-bottom:1px solid var(--rule)}.ledger .num{text-align:right;font-variant-numeric:tabular-nums}.ledger .empty,.empty{color:var(--ink-soft);padding:18px 12px}.ledger th .sort{border:none;background:none;font:inherit;color:inherit;padding:0;cursor:pointer;white-space:nowrap}.ledger th .sort:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.table-scroll{overflow-x:auto}.pager{display:flex;align-items:center;gap:14px;margin-top:14px;font-size:13px;color:var(--ink-soft)}.pager button{padding:6px 14px;border:1px solid var(--rule);background:var(--surface);cursor:pointer;border-radius:2px}.pager button:disabled{opacity:.45;cursor:default}.pager button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.query-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:32px}.query-filters{display:grid;gap:8px;margin-bottom:18px}.query-cat{border-bottom:1px solid var(--rule)}.query-cat>summary{display:flex;align-items:baseline;gap:8px;padding:6px 8px 6px 4px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink);list-style:none}.query-cat>summary::-webkit-details-marker{display:none}.query-cat>summary:before{content:"";flex:none;width:0;height:0;border-left:5px solid var(--ink-soft);border-top:4px solid transparent;border-bottom:4px solid transparent;transform:translateY(-1px)}.query-cat[open]>summary:before{transform:translateY(-1px) rotate(90deg)}.query-cat>summary:hover{background:var(--surface)}.query-cat>summary:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.query-cat-name{flex:1}.query-cat-count{font-size:12px;font-weight:400;color:var(--ink-soft);font-variant-numeric:tabular-nums}.query-cat-empty{margin:0;padding:2px 8px 8px 17px;font-size:13px;color:var(--ink-soft)}.query-cat ul{list-style:none;margin:0 0 6px;padding:0 0 0 9px}.query-item{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;border:none;background:none;padding:6px 8px;cursor:pointer;border-left:2px solid transparent;font-size:14px;color:var(--ink)}.query-item:hover{background:var(--bg)}.query-item.active{border-left-color:var(--action);font-weight:600;background:var(--bg)}.query-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.query-name{flex:1}.query-flag{font-size:11px;color:var(--ink-soft);white-space:nowrap;border:1px solid var(--rule);border-radius:2px;padding:0 5px}.query-flag.param{color:var(--action);border-color:var(--action)}.query-detail{min-width:0}.param-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:4px}.param{display:flex;align-items:flex-end;gap:6px}.param label{min-width:180px}.param select{margin-bottom:1px}.sql{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--rule);padding:12px 14px;overflow-x:auto;white-space:pre;margin:16px 0 0}.link-button{background:none;border:0;color:var(--action);cursor:pointer;padding:6px 0;font:inherit}.link-button:disabled{color:var(--muted);cursor:default}.result-meta{font-size:13px;color:var(--ink-soft);font-variant-numeric:tabular-nums;margin:22px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--rule)}.chart-panel{margin-bottom:26px}.chart-controls{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:14px}.chart-controls label{display:flex;flex-direction:column;gap:4px;font-size:12px}.chart{margin:0}.chart-plot{position:relative}.chart-legend{display:flex;flex-wrap:wrap;gap:16px;list-style:none;margin:0 0 10px;padding:0;font-size:13px;color:var(--ink-soft)}.chart-legend li{display:flex;align-items:center;gap:7px}.key-swatch{width:10px;height:10px;border-radius:2px}.key-line{width:14px;height:2px;border-radius:1px}.axis-text{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.mark-label{fill:var(--ink);font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.chart svg [tabindex]:hover{opacity:.82}.chart svg [tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:1px}.chart-tip{position:absolute;z-index:5;pointer-events:none;display:flex;flex-direction:column;gap:1px;padding:7px 10px;background:var(--surface);border:1px solid var(--ink);box-shadow:0 4px 12px #1d2a321f;font-size:12px;white-space:nowrap}.tip-value{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}.tip-meta{color:var(--ink-soft)}.chart-note{font-size:12px;color:var(--ink-soft);margin-top:8px}.stat-tile{padding:8px 0 18px}.stat-label{font-size:13px;color:var(--ink-soft)}.stat-value{font-size:48px;font-weight:600;line-height:1.1;letter-spacing:-.02em}@media (max-width: 860px){.query-layout{grid-template-columns:1fr;gap:20px}.shell{grid-template-columns:minmax(0,1fr);gap:0}.sidebar{display:flex;flex-wrap:wrap;gap:0 24px;padding-top:16px}.nav-group+.nav-group h3{margin-top:0}.nav-find{flex-basis:100%}}.report-filters{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:flex-end;padding:12px 0;margin-bottom:4px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.report-filters label{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--ink-soft)}.report-filters input,.report-filters select{font:inherit;font-size:.9rem;padding:5px 7px;border:1px solid var(--rule);border-radius:2px;background:var(--surface);color:var(--ink)}.report-filters input[type=text]{width:auto}.login{max-width:360px;margin:12vh auto 0}.login .brand-name{display:block;margin-bottom:4px}.login-form{display:grid;gap:14px;margin-top:22px;padding-top:18px;border-top:2px solid var(--ink)}.login-form .primary{justify-self:start}.user-menu{display:flex;align-items:baseline;gap:12px;font-size:13px;color:var(--ink-soft)}.user-menu .query-flag{margin-left:6px}.banner.ok{background:var(--surface);color:var(--ok-ink);border-color:var(--ok-ink)}.admin{display:flex;flex-direction:column;gap:14px}.admin .section-title{margin-bottom:0}.admin-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid var(--rule)}.admin-head .section-title{border-bottom:none}.admin-head .primary{margin-bottom:8px}.admin-form{background:var(--surface);border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding:16px 18px 18px}.admin-form h3,.subhead{font-size:15px;font-weight:700;margin:0 0 12px}.subhead{margin-top:18px;padding-bottom:6px;border-bottom:1px solid var(--rule)}.admin-form .actions{margin-top:16px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 18px}.checks{display:flex;flex-wrap:wrap;align-items:center;gap:8px 22px;margin-top:14px}.check{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--ink)}.check input{margin:0;accent-color:var(--action)}.role-picks{display:flex;flex-wrap:wrap;gap:8px 22px;border:none;border-top:1px solid var(--rule);margin:14px 0 0;padding:12px 0 0}.role-picks legend{font-size:13px;color:var(--ink-soft);padding:0 8px 0 0}tr.inactive td{color:var(--ink-soft)}tr.warn td:nth-child(3){color:var(--err-ink);font-weight:600}.nowrap{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.roles-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px}.role-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}.role-list li{border-bottom:1px solid var(--rule)}.role-new{display:flex;align-items:flex-end;gap:8px;margin-top:16px}.role-new label{flex:1}.grants-search{max-width:360px;margin-bottom:8px}.grant-cat>summary input{margin:0;accent-color:var(--action)}.grant-queries{list-style:none;margin:0 0 8px;padding:0 0 0 26px}.grant-queries li{display:flex;align-items:center;gap:12px;padding:3px 8px 3px 0;font-size:14px}.grant-queries li.off .query-name{color:var(--ink-soft)}.grant-queries select{font-size:13px;padding:3px 6px}@media (max-width: 860px){.roles-layout{grid-template-columns:1fr;gap:20px}}.brand{display:flex;align-items:center;flex-wrap:wrap;column-gap:0}.brand-logo{height:34px;width:auto;max-width:180px;object-fit:contain;margin-right:14px;padding-right:14px;border-right:1px solid var(--rule)}.login-logo{display:block;height:auto;width:auto;max-width:240px;max-height:90px;margin:0 auto 18px}.login>.brand-name,.login>.hint{text-align:center}.logo-preview{display:flex;align-items:center;gap:16px;padding:16px 18px;background:var(--surface);border-top:2px solid var(--ink);border-bottom:1px solid var(--rule)}.file-pick{position:relative;display:inline-block}.file-pick input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-pick:focus-within{outline:2px solid var(--focus);outline-offset:2px}.settings-block{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.settings-block .subhead{margin-top:10px}.settings-block .admin-head .subhead{border-bottom:none;margin-bottom:0}.settings-block code{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:12.5px}.settings-block .pairing-code{font-size:15px;font-weight:600;letter-spacing:.06em;-webkit-user-select:all;user-select:all}.form-section{font-size:13px;font-weight:600;color:var(--ink-soft);margin:18px 0 8px}.field-hint{display:block;margin-top:4px;font-size:12px;color:var(--ink-soft)}.env-tag{display:inline-block;margin-left:6px;padding:0 6px;border-radius:2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.env-test{background:#f7edd8;color:#6d5312}.env-production{background:var(--err-bg);color:var(--err-ink)}.row-actions{white-space:nowrap}.row-actions .link+.link{margin-left:12px}.test-results{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px;font-size:14px}.test-results li{padding:8px 12px;border-left:3px solid;background:var(--surface)}.test-results .pass{border-color:var(--ok-ink)}.test-results .pass strong{color:var(--ok-ink)}.test-results .fail{border-color:var(--err-ink);background:var(--err-bg);color:var(--err-ink)}.conn-db{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.conn-db:before{content:"·";margin-right:7px;color:var(--rule)}.company-picker select{font-size:13px;padding:3px 6px}.company-scope{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}.company-scope select{font-weight:600}.report table.ledger td.num{white-space:nowrap}.report table.ledger tfoot td{font-weight:600;border-top:2px solid var(--ink);border-bottom:none}.dashboard-detail .ledger td{white-space:nowrap}.report table.ledger .r+.r{padding-left:14px}.builder2{display:flex;flex-direction:column;gap:10px}.builder-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:10px 0;background:var(--bg);border-bottom:2px solid var(--ink)}.builder-bar input.builder-title{flex:1;min-width:0;width:auto;font-size:20px;font-weight:700;letter-spacing:-.01em;border:1px solid transparent;background:transparent;padding:4px 6px}.builder-bar input.builder-title:hover{border-color:var(--rule)}.builder-bar input.builder-title:focus{background:var(--surface);border-color:var(--rule)}.builder-status{font-size:13px;color:var(--ink-soft);white-space:nowrap}.builder-why{margin:0;font-size:13px;color:var(--ink-soft);text-align:right}.builder-grid{display:grid;grid-template-columns:minmax(360px,440px) minmax(0,1fr);gap:28px;align-items:start}.builder-config{position:sticky;top:64px;max-height:calc(100vh - 80px);overflow-y:auto;padding-right:6px;border-top:1px solid var(--rule)}.step{border-bottom:1px solid var(--rule)}.step>summary{display:flex;align-items:baseline;gap:10px;padding:12px 2px;cursor:pointer;list-style:none}.step>summary::-webkit-details-marker{display:none}.step>summary:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.step-n{flex:none;width:20px;height:20px;border-radius:50%;border:1px solid var(--ink-soft);font-size:11px;font-weight:600;text-align:center;line-height:18px;color:var(--ink-soft)}.step[open] .step-n{background:var(--ink);border-color:var(--ink);color:var(--surface)}.step-title{font-size:15px;font-weight:700}.step-meta{margin-left:auto;font-size:12px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.step-body{padding:0 2px 16px 30px;display:flex;flex-direction:column;gap:10px}.step-hint{margin:0;font-size:13px;color:var(--ink-soft)}.step-hint code{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:12px}.field{display:flex;flex-direction:column;gap:3px;min-width:0}.field.wide{grid-column:1 / -1}.field-label{font-size:12px;color:var(--ink-soft);margin:0}.field input,.field select,.field textarea{width:100%}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px}.inline-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.inline-fields select{width:auto}.source-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;border:1px solid var(--rule);background:var(--surface)}.source-list button{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:6px 10px;border:none;border-bottom:1px solid var(--grid);background:none;cursor:pointer;font-size:13px;color:var(--ink)}.source-list button:hover{background:var(--bg)}.source-list button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.source-kind{flex:none;width:58px;font-size:11px;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.source-kind.function{color:var(--action);font-weight:600}.source-args{margin-left:auto;font-size:11px;color:var(--ink-soft)}.param-table{display:grid;gap:6px}.param-head,.param-line{display:grid;grid-template-columns:1.3fr .8fr 1.3fr 28px;gap:6px;align-items:center}.param-head span{font-size:12px;color:var(--ink-soft)}.param-line input,.param-line select{width:100%;font-size:13px;padding:5px 6px}.param-default{display:flex;flex-direction:column;gap:4px}.advanced>summary{font-size:13px;color:var(--action);cursor:pointer;padding:2px 0}.advanced>summary:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.advanced[open]{display:flex;flex-direction:column;gap:8px}.builder-sql{resize:vertical;white-space:pre-wrap;margin:0}.run-line{display:flex;align-items:center;gap:12px;padding-top:4px}.item-list{display:flex;flex-direction:column}.item{border-top:1px solid var(--rule)}.item:last-of-type{border-bottom:1px solid var(--rule)}.item-head{display:flex;align-items:center}.item-summary{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;padding:8px 2px;border:none;background:none;cursor:pointer;text-align:left;font-size:14px;color:var(--ink)}.item-summary:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.item-caret{flex:none;width:10px;color:var(--ink-soft);font-size:11px}.item-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item.open .item-text{white-space:normal}.item-gap{color:var(--err-ink);font-size:13px}.item-tools{display:flex;gap:2px}.item-body{padding:4px 0 14px 18px;display:flex;flex-direction:column;gap:10px}.item-empty{margin:0 0 8px;font-size:13px;color:var(--ink-soft)}.icon-btn{width:28px;height:28px;border:1px solid transparent;border-radius:2px;background:none;color:var(--ink-soft);cursor:pointer;font-size:15px;line-height:1}.icon-btn:hover:not(:disabled){border-color:var(--rule);color:var(--ink);background:var(--surface)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.add-btn{align-self:flex-start;margin-top:8px;padding:5px 10px;border:1px dashed var(--rule);border-radius:2px;background:none;color:var(--action);font-size:13px;font-weight:600;cursor:pointer}.add-btn:hover{border-color:var(--action);background:var(--surface)}.add-btn:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.measure-sentence{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}.measure-sentence select{width:auto;font-size:13px;padding:5px 6px;color:var(--ink)}.series-line{display:grid;grid-template-columns:140px minmax(0,1fr) 28px;gap:10px;align-items:end}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:4px 9px;border:1px solid var(--rule);border-radius:2px;background:var(--surface);font-size:12px;color:var(--ink-soft);cursor:pointer}.chip.on{border-color:var(--action);color:var(--action);font-weight:600}.chip:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.danger-zone{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding-top:10px;border-top:1px solid var(--rule)}.link.danger{color:var(--err-ink);align-self:flex-start}.builder-canvas{min-width:0;background:var(--surface);border-top:2px solid var(--ink);padding:14px 20px 24px}.canvas-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.canvas-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.canvas-empty{padding:40px 0;max-width:420px}.canvas-empty p{margin:0 0 6px}@media (max-width: 1100px){.builder-grid{grid-template-columns:minmax(0,1fr)}.builder-config{position:static;max-height:none;overflow:visible}}.bookings .bk-section{display:flex;flex-direction:column;gap:10px}.bookings .bk-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}.bookings .bk-note{margin:0;font-size:13px}.bookings .bk-headline{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.bookings .bk-headline h3{margin:0}.bookings .bk-inline{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-soft)}.bookings .bk-inline input{width:140px}.bookings .up{color:var(--ok-ink)}.bookings .down{color:var(--err-ink)}@media (max-width: 1100px){.bookings .bk-pair{grid-template-columns:minmax(0,1fr)}}.chart-switch{display:flex;flex-direction:column;gap:8px;min-width:0}.seg{display:inline-flex;align-self:flex-end;border:1px solid var(--rule);border-radius:6px;overflow:hidden}.seg button{border:0;background:var(--surface);color:var(--ink-soft);font:inherit;font-size:12px;padding:4px 12px;cursor:pointer;border-left:1px solid var(--rule)}.seg button:first-child{border-left:0}.seg button[aria-pressed=true]{background:var(--action);color:#fff}.seg button:focus-visible{outline:2px solid var(--action);outline-offset:-2px}.pie-body{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px}.pie-rings{display:flex;gap:24px;flex-wrap:wrap}.pie-ring{display:flex;flex-direction:column;align-items:center;gap:4px}.pie-label{font-size:13px;font-weight:600;color:var(--ink)}.pie-total{fill:var(--ink);font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}.pie-legend{border-collapse:collapse;font-size:13px}.pie-legend th{font-weight:600;color:var(--ink-soft);font-size:12px;padding:0 0 4px 14px;text-align:right}.pie-legend td{padding:3px 0 3px 14px;border-bottom:1px solid var(--grid)}.pie-legend td:first-child,.pie-legend th:first-child{padding-left:0}.pie-legend td.num{text-align:right;font-variant-numeric:tabular-nums}.pie-legend tr.on td{background:var(--grid)}.pie-legend .key-swatch{display:inline-block}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.section-head h3{margin:0}.section-actions{display:inline-flex;align-items:baseline;gap:14px}.export-link{font-size:13px;padding:0}.report-tools{display:flex;gap:8px;justify-content:flex-end;margin-top:6px}.report-tools button{border:1px solid var(--action);background:var(--surface);color:var(--action);border-radius:6px;padding:5px 12px;font:inherit;font-size:13px;cursor:pointer}.report-tools button:hover{background:var(--action);color:#fff}.print-only{display:none}@media print{@page{size:A4 landscape;margin:12mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}body,.app{background:#fff}.sidebar,.no-print,.user-menu,.conn,.report-meta,.pager,.link-button{display:none!important}.shell{display:block}.content{padding:0;max-width:none}.print-only{display:block}.print-stamp{font-size:11px;color:var(--ink-soft);margin:4px 0 0}.report section,.kpis,.kpi,tr,.pie-ring{break-inside:avoid}.report h3{break-after:avoid}.chart svg{max-width:100%;height:auto}.table-scroll{overflow:visible}.report-filters input,.report-filters select{border:0;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;font-weight:600}.report-filters label:has(select option:checked[value=""]){display:none}}.results-tools{display:flex;justify-content:flex-end;margin:0 0 6px}.hint.warn{color:var(--err-ink)}.bookings .bk-stale summary{cursor:pointer;font-size:13px;color:var(--action);margin:4px 0}.bookings .bk-unapproved{color:var(--err-ink)}.temp-password{font-size:1.05rem;font-weight:600;letter-spacing:.06em;padding:1px 6px;background:var(--surface);border:1px solid var(--rule);border-radius:4px;-webkit-user-select:all;user-select:all}.icon-preview{display:flex;align-items:center;gap:18px;padding:12px 14px;border:1px solid var(--rule);border-radius:6px;background:var(--surface);margin:8px 0}.icon-tab{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid var(--rule);border-radius:6px 6px 0 0;font-size:.82rem;background:var(--bg)}.icon-phone{border-radius:14px;box-shadow:0 1px 3px #1d2a3233}.icon-picked{max-height:96px;max-width:160px}.nav-tag{margin-left:6px}.addon-card{background:var(--surface);border:1px solid var(--rule);padding:18px 20px;max-width:680px}.addon-card ul{margin:10px 0 14px;padding-left:20px}.addon-card li{margin:4px 0}.addon-ask{margin:0;font-weight:600}.explainer{position:relative;display:inline-flex;vertical-align:middle;margin-left:6px}.explainer-btn{width:18px;height:18px;padding:0;border-radius:50%;border:1px solid var(--rule);background:var(--surface);color:var(--ink-soft);font:italic 600 11px/16px IBM Plex Sans,sans-serif;cursor:pointer}.explainer-btn:hover,.explainer-btn[aria-expanded=true]{border-color:var(--action);color:var(--action)}.explainer-btn:focus-visible{outline:2px solid var(--focus);outline-offset:1px}.explainer-card{position:absolute;top:24px;left:-8px;z-index:40;width:min(340px,80vw);display:block;padding:12px 14px;text-align:left;background:var(--surface);border:1px solid var(--rule);border-top:3px solid var(--action);border-radius:6px;box-shadow:0 8px 22px #1d2a3224;font-size:.82rem;font-weight:400;font-style:normal;line-height:1.45;color:var(--ink);white-space:normal}.explainer-card .ex-what{display:block;font-weight:600;margin-bottom:6px}.explainer-card .ex-list{display:block;margin:0 0 6px}.explainer-card .ex-item{display:list-item;list-style:disc;margin-left:16px}.explainer-card .ex-source{display:block;color:var(--ink-soft);font-size:.78rem}.state-ok{color:var(--ok-ink)}.state-bad{color:var(--err-ink);font-weight:600}.sub-row td{font-size:13px;padding-top:0;border-top:0}.plain-list{margin:0;padding-left:18px}.sev{display:inline-block;font-size:11px;line-height:1.6;padding:0 6px;border-radius:4px;border:1px solid var(--rule);color:var(--ink-soft)}.sev.high{background:var(--err-bg);color:var(--err-ink);border-color:transparent;font-weight:600}.sev.medium{background:#fbf1dc;color:#8a5a00;border-color:transparent}.form-grid textarea{width:100%;font:inherit;font-variant-numeric:tabular-nums;padding:6px 8px;border:1px solid var(--rule);border-radius:4px}
