:root{--bg: #0D0D0D;--surface: #141414;--surface-2: #1A1A1A;--surface-3: #242424;--border: #2A2A2A;--border-strong: #3A3A3A;--text: #FFFFFF;--text-label: #FB9730;--text-muted: #A0A0A0;--text-soft: #808080;--text-faint: #4A4A4A;--series-1: #FB9730;--series-2: #3987E5;--series-3: #199E70;--series-4: #9085E9;--series-5: #D55181;--text-on-series: #0D0D0D;--accent: #FB9730;--brand-ink: #2A2A2A;--brand-orange: #FB9730;--brand-blue: #5C91AB;--success: #7ABF8E;--warning: #FFE5A0;--danger: #D74E51;--tint-strength: 14%;--heat-strength: 40%;--bar-strength: 30%;--row-stripe: #181818;--map-land: #262626;--map-below: var(--series-2);--map-edge: .7px;--map-river: 2.5px;--map-outline: 1.5px;--map-ring: 1px;--map-halo: .25em;--map-legend-bar: 120px;--map-legend-half: 70px;--map-legend-thick: 8px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius-sm: 4px;--radius: 8px;--font: "Tomorrow", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--fs-xs: 11px;--fs-sm: 13px;--fs-md: 15px;--fs-lg: 20px;--fs-xl: 28px;--fs-2xl: 40px;--fs-3xl: 56px}[data-palette=blue]{--text-label: #5CA8FF;--accent: #5CA8FF;--series-1: #5CA8FF;--series-2: #D55181;--series-3: #9085E9;--series-4: #199E70;--series-5: #FB9730;--map-below: var(--series-5)}[data-palette=violet]{--text-label: #9085E9;--accent: #9085E9;--series-1: #9085E9;--series-2: #199E70;--series-3: #FB9730;--series-4: #3987E5;--series-5: #D55181;--map-below: var(--series-3)}[data-palette=rose]{--text-label: #D55181;--accent: #D55181;--series-1: #D55181;--series-2: #3987E5;--series-3: #FB9730;--series-4: #9085E9;--series-5: #199E70;--map-below: var(--series-2)}[data-palette=green]{--text-label: #5CFFA8;--accent: #5CFFA8;--series-1: #5CFFA8;--series-2: #3987E5;--series-3: #FB9730;--series-4: #9085E9;--series-5: #D55181;--map-below: var(--series-4)}[data-palette=gold]{--text-label: #B89C2E;--accent: #B89C2E;--series-1: #B89C2E;--series-2: #3987E5;--series-3: #D55181;--series-4: #9085E9;--series-5: #199E70;--map-below: var(--series-2)}[data-palette=amber]{--text-label: #FFB25C;--accent: #FFB25C;--series-1: #FFB25C;--series-2: #3987E5;--series-3: #D55181;--series-4: #9085E9;--series-5: #199E70;--map-below: var(--series-2)}[data-palette=cyan]{--text-label: #6FD3E8;--accent: #6FD3E8;--series-1: #6FD3E8;--series-2: #199E70;--series-3: #FB9730;--series-4: #9085E9;--series-5: #D55181;--map-below: var(--series-3)}*,*:before,*:after{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}@keyframes shimmer{0%,to{opacity:.4}50%{opacity:.8}}.skeleton{background:var(--surface-3);border-radius:var(--radius-sm);animation:shimmer 1.6s ease-in-out infinite}.skeleton-figure{height:28px;width:60%}.skeleton-line{height:12px;width:35%}.shell{min-height:100vh;display:flex;flex-direction:column}.shell-header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--surface-2);border-bottom:1px solid var(--border)}.shell-brand{display:flex;align-items:center;gap:var(--space-3)}.shell-mark{display:grid;grid-template-columns:repeat(4,6px);grid-template-rows:repeat(4,6px);gap:2px}.shell-mark span{border-radius:1px}.shell-title{font-size:var(--fs-md);font-weight:600;letter-spacing:-.01em}.shell-nav{display:flex;gap:var(--space-1);margin-left:var(--space-5)}.shell-nav button{background:none;border:0;cursor:pointer;font-family:var(--font);font-size:var(--fs-sm);color:var(--text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.shell-nav button:hover,.shell-nav button[aria-current=page]{color:var(--text);background:var(--surface-3)}.shell-end{margin-left:auto;display:flex;align-items:center;gap:var(--space-4)}.shell-user{font-size:var(--fs-sm);color:var(--text-muted)}.shell-main{padding:var(--space-5);flex:1}.shell-logout{font-size:var(--fs-sm);color:var(--text-muted);text-decoration:none;padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap}.shell-logout:hover{color:var(--text);background:var(--surface-3);border-color:var(--border-strong)}.client-switcher{background:var(--surface-3);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font);font-size:var(--fs-sm);padding:var(--space-1) var(--space-2)}.client-switcher:hover{border-color:var(--border-strong)}.data-status{display:flex;align-items:center;gap:var(--space-3);font-size:var(--fs-sm);white-space:nowrap}.data-status-time{color:var(--text-muted);font-variant-numeric:tabular-nums}.data-status-error{color:var(--danger)}.data-status-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--success);animation:data-status-pulse 2s ease-in-out infinite}.data-status-dot.is-stale{background:var(--text-faint);animation:none}@keyframes data-status-pulse{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion: reduce){.data-status-dot{animation:none}}.data-status-refresh{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font);font-size:var(--fs-sm);color:var(--text);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);cursor:pointer}.data-status-refresh:hover:not(:disabled){border-color:var(--accent)}.data-status-refresh:disabled{cursor:default;color:var(--text-muted)}.spinner{width:10px;height:10px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation:none;border-top-color:var(--border-strong)}}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:var(--space-4)}.grid+.grid{margin-top:var(--space-4)}.span-1{grid-column:span 1}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:span 4}.span-5{grid-column:span 5}.span-6{grid-column:span 6}.span-7{grid-column:span 7}.span-8{grid-column:span 8}.span-9{grid-column:span 9}.span-10{grid-column:span 10}.span-11{grid-column:span 11}.span-12{grid-column:span 12}.spacer{min-height:0}.stack{display:grid;gap:var(--space-4)}.stack>.grid{margin-top:0}.heading{padding-top:var(--space-3);align-self:end}.heading-title{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.01em;margin:0}.heading-subtitle{font-size:var(--fs-sm);color:var(--text-muted);margin:4px 0 0}.heading p:not(.heading-subtitle){font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;margin:var(--space-2) 0 0;max-width:80ch;white-space:pre-line}.heading.is-center p:not(.heading-subtitle){text-align:center;margin-inline:auto}.heading.is-right p:not(.heading-subtitle){text-align:right;margin-left:auto}.heading.is-title-center .heading-title,.heading.is-title-center .heading-subtitle{text-align:center}.heading.is-title-right .heading-title,.heading.is-title-right .heading-subtitle{text-align:right}.heading.is-top{align-self:start}.heading.is-middle{align-self:center}.card-body p{font-size:var(--fs-sm);color:var(--text-muted);line-height:1.5;margin:0 0 var(--space-2);white-space:pre-line}.card-body p:last-child{margin-bottom:0}@media (max-width: 900px){.grid:not(.inner){grid-template-columns:repeat(6,1fr)}.grid:not(.inner)>.span-1,.grid:not(.inner)>.span-2{grid-column:span 2}.grid:not(.inner)>.span-3,.grid:not(.inner)>.span-4{grid-column:span 3}.grid:not(.inner)>.span-5,.grid:not(.inner)>.span-6,.grid:not(.inner)>.span-7,.grid:not(.inner)>.span-8,.grid:not(.inner)>.span-9,.grid:not(.inner)>.span-10,.grid:not(.inner)>.span-11,.grid:not(.inner)>.span-12{grid-column:span 6}.grid:not(.inner)>.spacer{display:none}.shell-main{padding:var(--space-4) var(--space-3)}}@media (max-width: 560px){.grid:not(.inner){grid-template-columns:repeat(2,1fr)}.grid:not(.inner)>.span-1,.grid:not(.inner)>.span-2,.grid:not(.inner)>.span-3,.grid:not(.inner)>.span-4{grid-column:span 1}.grid:not(.inner)>.span-5,.grid:not(.inner)>.span-6,.grid:not(.inner)>.span-7,.grid:not(.inner)>.span-8,.grid:not(.inner)>.span-9,.grid:not(.inner)>.span-10,.grid:not(.inner)>.span-11,.grid:not(.inner)>.span-12{grid-column:span 2}.grid:not(.inner)>.card:has(.chart-plot),.grid:not(.inner)>.stack:has(.chart-plot),.grid:not(.inner)>.card:has(.map-svg),.grid:not(.inner)>.stack:has(.map-svg){grid-column:span 2}}@media (max-width: 560px){.inner>.spacer{display:none}.inner>.card{grid-column:1 / -1}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-4);display:flex;flex-direction:column;min-height:108px;container-type:inline-size}.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3);text-align:left}.card.is-center{text-align:center}.card.is-center .kpi-row,.card.is-center .kpi-figure{justify-content:center}.card.is-right{text-align:right}.card.is-right .kpi-row,.card.is-right .kpi-figure{justify-content:flex-end}.card.is-title-center .card-head{text-align:center;justify-content:center}.card.is-title-right .card-head{text-align:right;justify-content:flex-end}.card-heading{min-width:0}.card-title{font-size:var(--fs-sm);font-weight:600;color:var(--text-label);text-transform:uppercase;letter-spacing:.06em;margin:0}.card-subtitle{font-size:var(--fs-xs);font-weight:400;color:var(--text-muted);margin:2px 0 0}.card-actions{display:flex;align-items:center;gap:var(--space-2);flex:none;font-size:var(--fs-xs)}.card-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);text-align:center;padding:var(--space-4) 0}.card-state-msg{font-size:var(--fs-sm);color:var(--text-muted)}.card-state-hint{font-size:var(--fs-xs);color:var(--text-faint);max-width:48ch;overflow-wrap:anywhere}.card-state-icon{font-size:var(--fs-lg);line-height:1}.card-state-icon.is-error{color:var(--danger)}.card.is-figure-small{--figure-size: var(--fs-lg)}.card.is-figure-large{--figure-size: var(--fs-2xl)}.card.is-figure-x-large{--figure-size: var(--fs-3xl)}.kpi-value{font-size:min(var(--figure-size, var(--fs-xl)),calc(100cqi / (.6 * var(--chars, 11) + .9)));font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--text);white-space:nowrap}.card>.kpi-value,.card>.kpi-figure,.card>.kpi-pair,.card>.kpi-gauge,.card>.kpi-ledger{margin-top:auto}.card.is-top>.kpi-value,.card.is-top>.kpi-figure,.card.is-top>.kpi-pair,.card.is-top>.kpi-gauge,.card.is-top>.kpi-ledger{margin-top:0}.card.is-top .kpi-progress{margin-top:0}.card.is-middle>.kpi-value,.card.is-middle>.kpi-figure,.card.is-middle>.kpi-pair,.card.is-middle>.kpi-gauge,.card.is-middle>.kpi-ledger,.card.is-middle>.card-body{margin-top:auto}.card.is-middle>:last-child{margin-bottom:auto}.card.is-middle .kpi-progress{margin-top:0}.card.is-bottom>.card-body{margin-top:auto}.kpi-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:var(--fs-sm)}.kpi-badge{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);font-weight:600;line-height:1.4;padding:1px var(--space-2);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-badge.is-positive{color:var(--success);background:color-mix(in srgb,var(--success) 14%,transparent)}.kpi-badge.is-negative{color:var(--danger);background:color-mix(in srgb,var(--danger) 14%,transparent)}.kpi-badge.is-neutral{color:var(--text-muted);background:var(--surface-3)}.kpi-note{color:var(--text-muted);font-variant-numeric:tabular-nums}.kpi-note-label{color:var(--text-soft)}.kpi-figure{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2)}.kpi-of{font-size:var(--fs-sm);color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-progress{margin-top:auto;padding-top:var(--space-3)}.kpi-bar{display:flex;position:relative;height:16px;background:var(--surface-3);border-radius:8px;overflow:hidden}.kpi-bar-fill{background:var(--series-1)}.kpi-bar-over{background:var(--success);margin-left:1px}.kpi-bar-over.is-negative{background:var(--danger)}.kpi-bar-share{position:absolute;top:0;bottom:0;left:0;display:flex;align-items:center;padding:0 var(--space-2);font-size:10px;font-weight:700;line-height:1;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-bar-share.is-inside{justify-content:flex-end;color:var(--bg)}.kpi-bar-share.is-negative:not(.is-inside){color:var(--danger)}.kpi-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.kpi-foot .is-positive{color:var(--success)}.kpi-foot .is-negative{color:var(--danger)}.kpi-share{margin-left:auto;font-size:var(--fs-md);font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums}.kpi-pace{position:relative}.kpi-pace.has-mark{padding-top:calc(var(--fs-xs) + var(--space-2))}.kpi-pace-label{position:absolute;top:0;font-size:var(--fs-xs);line-height:1;color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-pace-label.is-middle{transform:translate(-50%)}.kpi-pace-label.is-end{transform:translate(-100%)}.kpi-pace-tick{position:absolute;bottom:-3px;width:2px;height:22px;margin-left:-1px;background:var(--text);border-radius:1px}.kpi-bar-fill.is-positive{background:var(--success)}.kpi-bar-fill.is-negative{background:var(--danger)}.kpi-bar-projected{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--series-1) 55%,transparent) 0,color-mix(in srgb,var(--series-1) 55%,transparent) 3px,transparent 3px,transparent 7px)}.kpi-gauge{display:flex;flex-direction:column;align-items:center;text-align:center}.card .kpi-gauge{text-align:center}.kpi-gauge svg{display:block;width:100%;max-width:240px;height:auto}.kpi-gauge-track{stroke:var(--surface-3)}.kpi-gauge-fill{stroke:var(--series-1)}.kpi-gauge-fill.is-positive{stroke:var(--success)}.kpi-gauge-fill.is-negative{stroke:var(--danger)}.kpi-gauge-projected{stroke:color-mix(in srgb,var(--series-1) 35%,transparent)}.kpi-gauge-tick{stroke:var(--text)}.kpi-gauge-text{fill:var(--text-muted);font-size:10px;font-family:var(--font);font-variant-numeric:tabular-nums}.kpi-gauge-figure{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);margin-top:var(--space-2)}.kpi-gauge>.kpi-foot{width:100%}.kpi-ledger{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;color:var(--text-muted)}.kpi-ledger th,.kpi-ledger td{padding:var(--space-1) 0 var(--space-1) var(--space-3);text-align:right;font-weight:400;white-space:nowrap}.kpi-ledger th:first-child{text-align:left;padding-left:0;white-space:normal}.kpi-ledger thead th{font-size:var(--fs-xs);color:var(--text-soft);border-bottom:1px solid var(--border-strong)}.kpi-ledger tbody tr{border-bottom:1px solid var(--border)}.kpi-ledger tbody tr:last-child{border-bottom:0}.kpi-ledger tr.is-strong{color:var(--text);font-weight:600}.kpi-ledger tr.is-strong th{font-weight:600}.kpi-ledger tr.is-positive{color:var(--success)}.kpi-ledger tr.is-negative{color:var(--danger)}.kpi-pair{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);gap:var(--space-3);align-items:start}.kpi-pair-divider{background:var(--border);align-self:stretch}.kpi-pair-label{font-size:var(--fs-sm);color:var(--text-muted);margin-top:var(--space-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-pair-value{font-size:min(var(--figure-size, var(--fs-xl)),calc((50cqi - 13px) / (.6 * var(--chars, 11) + .9)));font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums;white-space:nowrap}.kpi-split{display:flex;height:6px;border-radius:3px;overflow:hidden;margin-top:var(--space-3);background:var(--surface-3)}.kpi-split-value{background:var(--series-1)}.kpi-split-prior{background:var(--border-strong)}.kpi-trend{display:block;width:100%;height:28px;margin-top:var(--space-2)}.kpi-trend-area{fill:color-mix(in srgb,var(--series-1) 16%,transparent)}.kpi-trend-line{stroke:var(--series-1);stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.kpi-trend-dot{fill:var(--series-1)}.kpi-trend-tips{width:100%}.kpi-trend-mark{fill:var(--series-1);stroke:var(--surface);stroke-width:1.5px}.badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--fs-xs);font-weight:500;padding:3px var(--space-2);border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);white-space:nowrap}.badge-dot{width:6px;height:6px;border-radius:50%;flex:none;background:var(--tone, var(--text-muted))}.table-scroll{overflow-x:auto}@media (max-width: 560px){.has-more{-webkit-mask-image:linear-gradient(to right,var(--text) 78%,transparent);mask-image:linear-gradient(to right,var(--text) 78%,transparent)}}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}table.data th{text-align:left;font-weight:500;font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);white-space:nowrap}table.data td{padding:var(--space-3);border-bottom:1px solid var(--border);color:var(--text);white-space:nowrap}table.data tbody tr:hover{background:var(--surface-2)}table.data.is-striped tbody tr:nth-child(2n):not(:hover){background:var(--row-stripe)}table.data tr.table-pad:hover{background:transparent}table.data tr.table-pad td{border-bottom-color:transparent}table.data .align-left{text-align:left}table.data .align-center{text-align:center}table.data .align-right{text-align:right}table.data td.num{font-variant-numeric:tabular-nums}.tone-good{--tone: var(--success)}.tone-bad{--tone: var(--danger)}.tone-warning{--tone: var(--warning)}.tone-muted{--tone: var(--text-muted)}.tone-accent{--tone: var(--accent)}table.data td.draw-text{color:var(--tone)}table.data td.draw-tint{background:color-mix(in srgb,var(--tone) var(--tint-strength),transparent)}table.data td.is-bold{font-weight:600}table.data td.has-back,.cell-text{position:relative}.cell-pill{display:inline-flex;align-items:center;padding:1px var(--space-2);border-radius:var(--radius-sm);color:var(--tone);background:color-mix(in srgb,var(--tone) var(--tint-strength),transparent)}.cell-heat{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--tone) calc(var(--heat) * var(--heat-strength)),transparent)}.cell-bar{position:absolute;top:22%;bottom:22%;left:calc(var(--space-3) + var(--bar-start) * (100% - 2 * var(--space-3)));width:calc(var(--bar-size) * (100% - 2 * var(--space-3)));border-radius:var(--radius-sm);background:color-mix(in srgb,var(--tone) var(--bar-strength),transparent)}.cell-arrow{font-size:.75em;margin-right:var(--space-1)}.th-sort{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;display:inline-flex;align-items:center;gap:var(--space-1)}.th-sort:hover{color:var(--text)}.sort-arrow{opacity:0;transition:opacity .1s}.th-sort:hover .sort-arrow{opacity:.5}table.data th.is-sorted{color:var(--text)}table.data th.is-sorted .sort-arrow{opacity:1;color:var(--accent)}table.data td.table-none{text-align:center;color:var(--text-muted);white-space:normal;padding:var(--space-5) var(--space-3)}.table-filter-toggle{font-family:var(--font);font-size:var(--fs-xs);color:var(--text-muted);background:none;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:3px var(--space-2);cursor:pointer;white-space:nowrap}.table-filter-toggle:hover,.table-filter-toggle[aria-expanded=true]{color:var(--text);background:var(--surface-3)}.table-filter-toggle.is-active{color:var(--text);border-color:var(--accent)}.table-link{background:none;border:0;padding:0;cursor:pointer;font-family:var(--font);font-size:var(--fs-xs);color:var(--text-muted);text-decoration:underline;text-underline-offset:2px}.table-link:hover{color:var(--text)}.table-chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-xs);color:var(--text);padding:2px var(--space-1) 2px var(--space-2);border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);white-space:nowrap}.chip-clear{background:none;border:0;cursor:pointer;font-family:var(--font);font-size:var(--fs-sm);line-height:1;color:var(--text-muted);padding:0 var(--space-1);border-radius:999px}.chip-clear:hover{color:var(--text);background:var(--surface-3)}.table-chips .table-link{margin-left:var(--space-1)}.filter-panel{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm)}.filter-row{display:flex;align-items:center;gap:var(--space-3);min-height:28px}.filter-row-label{flex:none;width:96px;font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-row-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);min-width:0}.filter-join{font-size:var(--fs-xs);color:var(--text-muted)}.filter-panel select,.filter-panel input{font-family:var(--font);font-size:var(--fs-sm);background:var(--surface-3);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color-scheme:dark}.filter-panel select:hover,.filter-panel input:hover{border-color:var(--text-faint)}.filter-panel select:focus,.filter-panel input:focus{outline:none;border-color:var(--accent)}.filter-number,.filter-days{width:110px}.filter-days{width:72px}.filter-search{width:140px}.checklist-tools{display:inline-flex;align-items:center;gap:var(--space-2);margin-right:var(--space-1)}.checklist{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-3)}.checklist-item{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-sm);color:var(--text);cursor:pointer;white-space:nowrap}.checklist-item input{margin:0;accent-color:var(--accent)}.checklist-none{font-size:var(--fs-xs);color:var(--text-faint)}.table-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-top:var(--space-3);font-size:var(--fs-xs);color:var(--text-faint)}.table-count{font-variant-numeric:tabular-nums}.table-pager{display:flex;align-items:center;gap:var(--space-2);margin-left:auto}.table-page-size{display:inline-flex;align-items:center;gap:var(--space-2);margin-right:var(--space-2)}.table-page-size select{font-family:var(--font);font-size:var(--fs-xs);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px var(--space-1)}.table-page-size select:hover{border-color:var(--border-strong);color:var(--text)}.table-page{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.pager-btn{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-family:var(--font);font-size:var(--fs-md);line-height:1;cursor:pointer;padding:0}.pager-btn:hover:not(:disabled){border-color:var(--accent)}.pager-btn:disabled{color:var(--text-faint);border-color:var(--border);cursor:default}.filterbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}.filter{display:flex;flex-direction:column;gap:var(--space-1)}.filter label{font-size:var(--fs-xs);color:var(--text-muted)}.filter select{font-family:var(--font);font-size:var(--fs-sm);background:var(--surface-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.chart-tip{background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--fs-sm)}.chart-tip-label{color:var(--text-muted);font-size:var(--fs-xs);margin-bottom:2px}.chart-tip-value{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.chart-tip-row{display:flex;align-items:center;gap:var(--space-2);margin-top:2px}.chart-tip-name{color:var(--text-muted);flex:1}.chart-tip-row .chart-tip-value{margin-left:var(--space-3)}.hover-area{position:relative}.hover-tip{position:absolute;z-index:1;pointer-events:none;width:max-content}.chart-leader{stroke:var(--text-soft);stroke-width:1px}.chart-legend{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3);font-size:var(--fs-xs);color:var(--text-muted)}.chart-legend-item{display:inline-flex;align-items:center;gap:6px}.chart-legend-swatch{width:10px;height:10px;border-radius:2px;flex:none}.chart-legend-swatch.is-line{height:3px;width:14px}.chart-legend-swatch.is-dashed{background-image:repeating-linear-gradient(45deg,var(--swatch) 0 2px,transparent 2px 4px)}.chart-legend-swatch.is-line.is-dashed{background-image:none;height:0;border-top:2px dashed var(--swatch)}.chart-plot{flex:1;position:relative}.chart-plot-fill{position:absolute;top:0;right:0;bottom:0;left:0}.donut{display:flex;align-items:center;gap:var(--space-4)}.donut-ring{position:relative;flex:none}.donut-centre{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:1fr auto 1fr;grid-template-columns:minmax(0,var(--hole, 100%));justify-content:center;justify-items:center;text-align:center;pointer-events:none}.donut-centre-value{grid-row:2;font-size:var(--fs-lg);font-weight:600;color:var(--text);font-variant-numeric:tabular-nums;line-height:1;text-box:trim-both cap alphabetic}.donut-centre-caption{grid-row:3;align-self:start;max-width:100%;margin-top:var(--space-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);color:var(--text-muted)}.donut-legend{list-style:none;margin:0;padding:0;min-width:0;font-size:var(--fs-xs);color:var(--text-muted)}.donut-legend.is-side{display:flex;flex-direction:column;gap:var(--space-2)}.donut-legend.is-under{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-3)}.donut-legend-item{display:flex;align-items:center;gap:6px}.donut-legend-label{max-width:12em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-legend-share{color:var(--text-soft);font-variant-numeric:tabular-nums}.funnel{display:block;overflow:visible}.funnel-stage{fill:var(--series-1);stroke:var(--surface);stroke-width:2;stroke-linejoin:round}.funnel-label{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;pointer-events:none}.funnel-name{fill:var(--text);font-weight:600}.funnel-figure{fill:var(--text-muted)}.funnel-label.is-inside .funnel-name,.funnel-label.is-inside .funnel-figure{fill:var(--text-on-series)}.funnel-label.is-inside.is-light .funnel-name,.funnel-label.is-inside.is-light .funnel-figure{fill:var(--text)}.progress-list{display:flex;flex-direction:column;gap:var(--space-3);list-style:none;margin:0;padding:0}.progress-bullets{display:grid;grid-template-columns:fit-content(40%) minmax(48px,1fr) auto;gap:var(--space-3);font-size:var(--fs-sm)}.progress-row{grid-column:1 / -1;display:grid;align-items:center;column-gap:var(--space-3);grid-template-columns:minmax(0,30%) minmax(48px,1fr) auto;grid-template-columns:subgrid}.progress-row .progress-figure{text-align:right}@container (max-width: 340px){.progress-bullets{grid-template-columns:minmax(0,1fr) auto}.progress-row{row-gap:var(--space-1);grid-template-columns:minmax(0,1fr) auto;grid-template-columns:subgrid}.progress-track{grid-column:1 / -1;grid-row:2}}.progress-label{min-width:0;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress-track{position:relative;height:10px;background:var(--surface-3);border-radius:5px}.progress-bar{height:100%;border-radius:5px;background:var(--accent)}.progress-bar.is-positive{background:var(--success)}.progress-bar.is-negative{background:var(--danger)}.progress-tick{position:absolute;top:-2px;bottom:-2px;width:2px;margin-left:-1px;background:var(--text);border-radius:1px}.progress-figure{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}.progress-share{color:var(--text-muted);font-size:var(--fs-xs)}.progress-list-row{display:flex;flex-direction:column;gap:var(--space-1)}.progress-list-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.progress-list-track{position:relative;height:6px;background:var(--surface-3);border-radius:3px;overflow:hidden}.progress-list-fill{height:100%;border-radius:3px;background:var(--tone, var(--accent))}.progress-rings-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4)}.progress-rings{width:100%;max-width:240px;height:auto;flex:none}@media (max-width: 560px){.progress-rings-wrap{justify-content:center}}.progress-ring-track{stroke:var(--surface-3)}.progress-rings-list{flex:1;min-width:140px;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.progress-rings-item{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;column-gap:var(--space-2);font-size:var(--fs-sm)}.progress-rings-dot{width:8px;height:8px;border-radius:50%}.progress-rings-item .progress-share{font-size:var(--fs-sm);color:var(--text);text-align:right;font-variant-numeric:tabular-nums}.progress-rings-caption{grid-row:2;grid-column:2 / -1;text-align:right;font-size:var(--fs-xs);color:var(--text-soft);font-variant-numeric:tabular-nums}.leaderboard{--leaderboard-lead: 1.4em;display:grid;grid-template-columns:var(--leaderboard-lead) fit-content(40%) minmax(48px,1fr) auto;gap:var(--space-2);list-style:none;margin:0;padding:0;font-size:var(--fs-sm)}.leaderboard.has-initials{--leaderboard-lead: 1.4em 22px}.leaderboard-row{grid-column:1 / -1;display:grid;align-items:center;column-gap:var(--space-2);grid-template-columns:var(--leaderboard-lead) minmax(0,30%) minmax(48px,1fr) auto;grid-template-columns:subgrid}.leaderboard-rank{text-align:right;color:var(--text-soft);font-variant-numeric:tabular-nums}.leaderboard-row.is-first .leaderboard-rank{color:var(--accent);font-weight:700}.leaderboard-initials{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--surface-3);color:var(--text-muted);font-size:10px;font-weight:600}.leaderboard-row.is-first .leaderboard-initials{background:var(--accent);color:var(--bg)}.leaderboard-name{min-width:0;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-row.is-first .leaderboard-name{color:var(--text);font-weight:600}.leaderboard-bar{height:6px;margin-left:var(--space-1);border-radius:3px;background:var(--surface-3);overflow:hidden}.leaderboard-bar-fill{height:100%;border-radius:3px;background:var(--text-muted)}.leaderboard-row.is-first .leaderboard-bar-fill{background:var(--accent)}.leaderboard-value{min-width:3.5em;text-align:right;font-variant-numeric:tabular-nums;color:var(--text-muted)}.leaderboard-row.is-first .leaderboard-value{color:var(--text);font-weight:600}@container (max-width: 340px){.leaderboard{grid-template-columns:var(--leaderboard-lead) minmax(0,1fr) auto;row-gap:var(--space-3)}.leaderboard-row{row-gap:var(--space-1);grid-template-columns:var(--leaderboard-lead) minmax(0,1fr) auto;grid-template-columns:subgrid}.leaderboard-value{grid-row:1;grid-column:-2}.leaderboard-bar{grid-row:2;grid-column:-3 / -1;margin-left:0}}.tiles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-5)}.tile{display:flex;flex-direction:column;gap:var(--space-1)}@media (max-width: 560px){:is(.span-5,.span-6,.span-7,.span-8,.span-9,.span-10,.span-11,.span-12) .tiles-grid{grid-template-columns:repeat(2,minmax(0,1fr))}:is(.span-5,.span-6,.span-7,.span-8,.span-9,.span-10,.span-11,.span-12) .tile:last-child:nth-child(odd){grid-column:1 / -1}}.tile-label{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}.tile-value{font-size:var(--fs-xl);font-weight:600;font-variant-numeric:tabular-nums}.tile-change{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.tile-change.is-positive{color:var(--success)}.tile-change.is-negative{color:var(--danger)}.tile-change.is-neutral{color:var(--text-muted)}.tile-spark{width:100%;height:var(--space-5);margin-top:var(--space-1);overflow:visible}.tile-spark path{fill:none;stroke:currentColor;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}.tile-spark-guide{stroke:var(--border-strong);stroke-width:1px;vector-effect:non-scaling-stroke}.tile-spark.is-positive{color:var(--success)}.tile-spark.is-negative{color:var(--danger)}.tile-spark.is-neutral{color:var(--text-soft)}.heatmap-grid{display:grid;grid-template-columns:auto repeat(var(--heatmap-cols),1fr);gap:var(--space-1);align-items:stretch;overflow-x:auto}.heatmap-corner{min-width:var(--space-3)}.heatmap-col-head{font-size:var(--fs-xs);color:var(--text-muted);text-align:center;white-space:nowrap;align-self:end;padding-bottom:var(--space-1)}.heatmap-row-head{display:flex;align-items:center;justify-content:flex-end;font-size:var(--fs-xs);color:var(--text-muted);padding-right:var(--space-2);white-space:nowrap}.heatmap-cell{position:relative;min-height:var(--space-5);border-radius:var(--radius-sm);background:var(--surface-2);overflow:hidden}.heatmap-cell-text{position:relative;display:flex;align-items:center;justify-content:center;height:100%;font-size:var(--fs-xs);color:var(--text);font-variant-numeric:tabular-nums}.calendar-cell{fill:var(--surface-2)}.calendar-cell.is-empty{fill:var(--surface);stroke:var(--border);stroke-width:1}.calendar-cell-heat{fill:var(--accent);pointer-events:none}.calendar-weekday-label,.calendar-month-label,.calendar-legend-label{font-size:var(--fs-xs);fill:var(--text-muted);font-family:var(--font)}.map-frame{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center}.map-svg{width:100%;height:auto;display:block}.map-area,.map-context{fill:var(--map-land);stroke:var(--surface);stroke-width:var(--map-edge);stroke-linejoin:round;vector-effect:non-scaling-stroke}.map-context{pointer-events:none}.map-river{fill:none;stroke:var(--surface);stroke-width:var(--map-river);stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.map-hover{fill:none;stroke:var(--text);stroke-width:var(--map-outline);stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.map-marker{stroke:var(--surface);stroke-width:var(--map-ring);vector-effect:non-scaling-stroke}.map-marker.is-active{stroke:var(--text)}.map-dot{fill:var(--text);stroke:var(--surface);stroke-width:var(--map-ring);vector-effect:non-scaling-stroke;pointer-events:none}.map-leader{stroke:var(--text-soft);stroke-width:var(--map-ring);vector-effect:non-scaling-stroke;pointer-events:none}.map-labels{fill:var(--text);font-family:var(--font);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--surface);stroke-width:var(--map-halo);stroke-linejoin:round;pointer-events:none}.map-written{opacity:var(--map-build, 1)}.map-label-name{fill:var(--text-muted)}.map-label-figure{font-weight:600}.map-legend{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);margin-top:var(--space-3);font-size:var(--fs-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.map-legend-bar{width:var(--map-legend-bar);height:var(--map-legend-thick);border-radius:calc(var(--map-legend-thick) / 2);flex:none}.map-legend-bar.is-below,.map-legend-bar.is-above{width:var(--map-legend-half)}.map-legend-bar.is-below{border-radius:calc(var(--map-legend-thick) / 2) 0 0 calc(var(--map-legend-thick) / 2)}.map-legend-bar.is-above{border-radius:0 calc(var(--map-legend-thick) / 2) calc(var(--map-legend-thick) / 2) 0}.map-legend-item{margin-right:var(--space-1)}.map-legend-none{margin-left:auto;margin-right:0}.map-legend-none .chart-legend-swatch{background:var(--map-land);border:1px solid var(--border-strong)}.map-unknown{margin:var(--space-3) 0 0;font-size:var(--fs-sm);color:var(--text-muted)}.map-source{margin:var(--space-2) 0 0;font-size:var(--fs-xs);color:var(--text-soft);line-height:1.3}.card-not-drawn{color:var(--text-soft);font-size:var(--fs-sm);padding:var(--space-4) 0}.chart-not-drawn{fill:var(--text-soft);font-size:var(--fs-sm);font-family:var(--font)}.gallery-section{margin-bottom:var(--space-6)}.gallery-heading{font-size:var(--fs-lg);font-weight:600;margin:0 0 var(--space-2);letter-spacing:-.01em}.gallery-note{font-size:var(--fs-sm);color:var(--text-muted);margin:0 0 var(--space-4);max-width:70ch;line-height:1.5}.gallery-label{font-size:var(--fs-xs);color:var(--text-faint);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.06em}.gallery-swatches{display:flex;flex-wrap:wrap;gap:var(--space-3)}.gallery-swatch{width:92px}.gallery-swatch-colour{height:44px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);margin-bottom:6px}.gallery-badges{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-5)}.grid>*,.stack>*,.card{min-width:0}.shell-user{max-width:32ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 900px){.shell-header{flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.shell-title{font-size:var(--fs-sm);white-space:nowrap}.shell-nav,.shell-end{margin-left:0;width:100%}.shell-user{display:none}.filter-row{flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.filter-row-label{width:100%}}.notice{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-2);border:1px solid var(--border-strong);border-left:3px solid var(--warning);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--text-muted)}.notice code{color:var(--text);font-size:var(--fs-xs)}.retry{margin-top:var(--space-2);font-family:var(--font);font-size:var(--fs-sm);color:var(--text);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-4);cursor:pointer}.retry:hover{background:var(--border)}
