:root{--font:system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-display:var(--font);--bg:#f6f7f9;--surface:#fff;--text:#1b1f24;--muted:#5f6b7a;--grid:#e3e7ec;--accent:#2563eb;--up:#047857;--down:#b91c1c;--sub:#eef2f7;--total:#e2e8f0;--active:#2563eb;--heat-lo:#dbeafe;--heat-hi:#1d4ed8;--on-series:#fff;--series-1:#2563eb;--series-2:#d97706;--series-3:#059669;--series-4:#7c3aed;--series-5:#db2777;--series-6:#0891b2;--radius:8px;--border-width:1px;--shadow:none;--card-padding:14px;--gap:12px;--heading-transform:none;--heading-spacing:0;--kpi-weight:600;--num:tabular-nums;--bg-image:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:14px/1.45 var(--font);margin:0}.dash{background-color:var(--bg);background-image:var(--bg-image);color:var(--text);font:14px/1.45 var(--font);background-size:24px 24px;min-height:calc(100vh - 58px)}h2{font:600 16px var(--font-display);text-transform:var(--heading-transform);letter-spacing:var(--heading-spacing);margin:28px 0 12px}h3{font:600 14px var(--font-display);text-transform:var(--heading-transform);letter-spacing:var(--heading-spacing);margin:0}code{background:var(--sub);border-radius:3px;padding:1px 4px;font-size:12px}.muted{color:var(--muted);font-size:12px}.note{color:var(--muted);max-width:900px;margin:0 0 16px}.top{background:var(--surface);border-bottom:var(--border-width) solid var(--grid);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 16px;display:flex}.brand{font:700 18px var(--font-display)}.top nav{gap:4px;display:flex}.top nav a{color:var(--muted);border-radius:var(--radius);padding:6px 10px;text-decoration:none}.top nav a[aria-current=page]{color:var(--text);background:var(--sub);font-weight:600}.theme{margin-left:auto}.top label{color:var(--muted)}select,button{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--grid);border-radius:var(--radius);padding:4px 8px}button{cursor:pointer}main{max-width:1400px;margin:0 auto;padding:16px}.kpis{gap:var(--gap);margin-bottom:var(--gap);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.grid{gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.card{background:var(--surface);border:var(--border-width) solid var(--grid);border-radius:var(--radius);box-shadow:var(--shadow);padding:var(--card-padding);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);min-width:0}.card.wide{grid-column:span 2}.card header{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.badge{color:var(--muted);border:1px dashed var(--muted);border-radius:10px;margin-left:auto;padding:1px 8px;font-size:11px}.chart{height:280px}.kpi-label{color:var(--muted);text-transform:var(--heading-transform);letter-spacing:var(--heading-spacing);font-size:12px}.kpi-value{font:var(--kpi-weight) 30px var(--font-display);font-variant-numeric:var(--num);margin:2px 0}.kpi-delta{font-size:12px}.kpi-delta.up{color:var(--up)}.kpi-delta.down{color:var(--down)}.kpi-delta.good,.kpi-target.good{color:var(--up)}.kpi-delta.bad,.kpi-target.bad{color:var(--down)}.kpi-target{margin-bottom:2px;font-size:12px}.tile-kpi{padding:18px 4px 8px}.tile-kpi .kpi-value{font-size:44px;line-height:1.1}.states .card{grid-column:span 1}.grid.states{grid-template-columns:repeat(4,minmax(0,1fr))}.state{height:120px;color:var(--muted);text-align:center;border-radius:var(--radius);place-items:center;padding:8px;display:grid}.state.loading{background:linear-gradient(90deg, var(--sub) 25%, var(--grid) 50%, var(--sub) 75%);background-size:200% 100%;animation:1.4s linear infinite shimmer}.state.error{color:var(--down)}@keyframes shimmer{to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.state.loading{animation:none}}@media (width<=900px){.grid,.grid.states{grid-template-columns:minmax(0,1fr)}.card.wide{grid-column:auto}}.toolbar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.matrix{background:var(--surface);border:var(--border-width) solid var(--grid);border-radius:var(--radius);height:calc(100vh - 230px);min-height:360px;box-shadow:var(--shadow);font-variant-numeric:var(--num);outline:none;overflow:auto}.matrix:focus-visible{box-shadow:0 0 0 2px var(--accent)}.m-head{z-index:2;background:var(--surface);position:sticky;top:0}.m-row{border-bottom:1px solid var(--grid);min-width:1030px;display:grid}.m-row[aria-level]{position:absolute;top:0;left:0;right:0}.m-cell{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;padding:6px 10px;display:flex;overflow:hidden}.m-cell.num{justify-content:flex-end}.m-head .m-cell{color:var(--muted);text-transform:var(--heading-transform);letter-spacing:var(--heading-spacing);font-size:12px;font-weight:600}.m-head .m-group{color:var(--text);border-bottom:1px solid var(--grid);justify-content:center}.m-cell:first-child{background:inherit;z-index:1;position:sticky;left:0}.m-row{background:var(--surface)}.m-row.leaf .m-cell:first-child{padding-left:34px}.m-row.sub{background:var(--sub);font-weight:600}.m-row.total{background:var(--total);font-weight:700}.m-cell.active{box-shadow:inset 0 0 0 2px var(--active)}.twisty{width:20px;color:var(--muted);background:0 0;border:0;padding:0 4px}.user{color:var(--muted)}button.primary,a.button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}a.button{border-radius:var(--radius);padding:6px 14px;text-decoration:none;display:inline-block}button:disabled{opacity:.6;cursor:default}.signin{text-align:center;max-width:520px;margin:48px auto;padding:28px}.signin h2{margin-top:0}.sql .toolbar{flex-wrap:wrap}.sql .status{margin-left:auto}.sql-input{resize:vertical;width:100%;min-height:200px;color:var(--text);background:var(--surface);border:var(--border-width) solid var(--grid);border-radius:var(--radius);tab-size:4;padding:10px 12px;font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.sql-input:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.sql-error{color:var(--down);margin-top:var(--gap);white-space:pre-wrap;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}.sql-out{gap:var(--gap);margin-top:var(--gap);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}@media (width<=1100px){.sql-out{grid-template-columns:minmax(0,1fr)}}.shape{background:var(--sub);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-start;gap:12px 24px;margin-bottom:10px;padding:10px 12px;display:flex}.shape>.field:first-child:not(:last-child){border-right:1px solid var(--grid);padding-right:24px}.seg{border:1px solid var(--grid);border-radius:6px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);border:0;border-radius:0;padding:5px 12px}.seg button+button{border-left:1px solid var(--grid)}.seg button[aria-pressed=true]{background:var(--accent);color:#fff}.builder{flex-wrap:wrap;align-items:flex-start;gap:10px 24px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field-label{color:var(--muted);font-size:12px}.field-controls{flex-wrap:wrap;align-items:center;gap:6px 10px;min-height:30px;display:flex}.field .level,.field .pick,.field .pick label{align-items:center;gap:4px;display:inline-flex}.field .x{padding:0 6px}.field select.add{color:var(--muted)}.sql .chart{height:320px}.sql-table{height:380px;min-height:0}.sql-table .m-row{min-width:0}.m-row.abs{position:absolute;top:0;left:0;right:0}.accounts{text-align:left;margin-top:24px}.accounts table{border-collapse:collapse;width:100%;font-size:13px}.accounts th{text-align:left;color:var(--muted);font-size:12px;font-weight:600}.accounts th,.accounts td{border-bottom:1px solid var(--grid);padding:6px 8px}.accounts a.button{border:1px solid var(--grid);color:var(--text);white-space:nowrap;padding:4px 10px}button.copy{padding:1px 6px;font-size:11px}.report-bar{flex-wrap:wrap}.report-bar input.title{font:600 16px var(--font-display);color:var(--text);background:var(--surface);border:1px solid var(--grid);border-radius:var(--radius);flex:0 420px;min-width:260px;padding:5px 10px}.report-bar .new,.reports .new{margin-left:auto}.reports table{border-collapse:collapse;width:100%}.reports th{text-align:left;color:var(--muted);font-size:12px;font-weight:600}.reports th,.reports td{border-bottom:1px solid var(--grid);padding:8px}.reports .actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.report .toolbar h2{margin:0 8px 0 0}.report .toolbar{flex-wrap:wrap;margin-bottom:4px}dialog.share{width:min(560px,100vw - 32px);color:var(--text);padding:18px}dialog.share::backdrop{background:#00000059}dialog.share header{align-items:center;display:flex}dialog.share .close{border:0;margin-left:auto;padding:0 6px;font-size:20px;line-height:1}dialog.share h3{margin-top:14px}.share-add{flex-wrap:wrap;gap:8px;display:flex}.share-add input{min-width:200px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--grid);border-radius:var(--radius);flex:1;padding:5px 8px}.share-found,.share-list{margin:8px 0;padding:0;list-style:none}.share-found li,.share-list li{border-bottom:1px solid var(--grid);align-items:center;gap:8px;padding:6px 0;display:flex}.share-found li>span:first-child,.share-list li>span:first-child{flex:1}.dash-grid{margin-top:var(--gap);grid-template-columns:repeat(2,minmax(0,1fr))}.tile header{flex-wrap:nowrap;align-items:center}.tile header h3{margin:0}.tile-title{min-width:0;font:600 14px var(--font-display);color:var(--text);border-radius:var(--radius);background:0 0;border:1px solid #0000;flex:1;padding:3px 6px}.tile-title:hover,.tile-title:focus{border-color:var(--grid)}.tile-tools{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.tile details{margin-bottom:8px}.tile summary{cursor:pointer;color:var(--muted);margin-bottom:6px}.tile .sql-input{min-height:140px}.tile .toolbar{flex-wrap:wrap;margin-top:6px}.tile .sql-error{margin-top:0}.tile .sql-table{height:300px}.add-tile{grid-column:1/-1;gap:12px;display:flex}.add-tile button{color:var(--muted);border-style:dashed;flex:1;padding:14px}.note.warn{color:var(--down);margin:8px 0 0}@media (width<=900px){.dash-grid{grid-template-columns:minmax(0,1fr)}.tile header{flex-wrap:wrap}}.signin:has(.accounts){max-width:1300px}.scroll-x{overflow-x:auto}.accounts .yes{color:var(--up);font-weight:600}.accounts h3{margin-top:24px}.accounts table.sample .num{text-align:right;font-variant-numeric:tabular-nums}.accounts table.sample tr.group td{border-top:2px solid var(--muted)}.accounts table.sample td:first-child{font-weight:600}.accounts td code{white-space:nowrap}.accounts ul.remarks{text-align:left;margin:0;padding-left:16px}.accounts ul.remarks li{margin:1px 0}.as-of{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;margin:6px 0 0;font-size:12px;display:flex}.as-of button{padding:2px 8px;font-size:12px}.stale{color:var(--down)}.tile.is-stale{outline:2px dashed var(--down);outline-offset:-2px}.filter-bar{flex-wrap:wrap;gap:8px 12px;margin-bottom:12px}.filter-bar .filter{border:1px solid var(--grid);border-radius:6px;align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.filter-bar .filter.on{border-color:var(--accent)}.filter-bar .filter button{padding:0 6px}.filter-pick{border:1px solid var(--grid);border-radius:6px;flex-wrap:wrap;gap:6px 14px;margin:0 0 12px;padding:6px 10px}.filter-pick legend{color:var(--muted);padding:0 4px}.unfiltered{margin:0 0 6px;font-size:12px}.drill{flex-wrap:wrap;align-items:center;gap:4px 8px;margin:0 0 6px;font-size:12px;display:flex}.drill button{padding:2px 8px;font-size:12px}.drill button.link{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.drill b{color:var(--text)}.drill button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.pivot .m-cell .link{color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-text-decoration:underline dotted var(--muted);text-decoration:underline dotted var(--muted);text-underline-offset:3px;background:0 0;border:0;padding:0}.pivot .m-cell .link:hover{color:var(--accent)}.pivot .m-row{position:static}.tile .pivot{height:auto;max-height:420px}.data-pick{padding:4px 0 10px}.data-pick .field-controls{max-width:100%}.embed main{max-width:none;padding:8px}.embed-signin{margin:24px auto}.embed-foot{text-align:right;margin:8px 0 0;font-size:12px}.pages{border-bottom:1px solid var(--grid);margin-top:var(--gap);scrollbar-width:thin;gap:2px;display:flex;overflow-x:auto}.pages button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:none;padding:8px 14px}.pages button[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.page-edit .pages{border-bottom:0;margin-top:0}.prose{max-width:78ch;font-size:14px;line-height:1.6}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h2{font:600 22px/1.25 var(--font-display);text-transform:var(--heading-transform);letter-spacing:var(--heading-spacing);margin:4px 0 8px}.prose h3{font:600 17px/1.3 var(--font-display);margin:14px 0 6px}.prose h4{font:600 14px/1.3 var(--font-display);color:var(--muted);margin:12px 0 4px}.prose p{margin:0 0 10px}.prose ul,.prose ol{margin:0 0 10px;padding-left:22px}.text-tile{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-color:#0000;padding-left:4px;padding-right:4px}.text-edit{gap:var(--gap);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.text-edit .sql-input{min-height:180px;margin-top:4px;font-family:inherit}.text-preview{border-left:2px solid var(--grid);padding-left:var(--gap)}@media (width<=900px){.text-edit{grid-template-columns:minmax(0,1fr)}}.print{width:182mm;max-width:100%;margin:0 auto}.print .grid.dash-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.print .card.wide{grid-column:span 2}.print .tile .pivot{max-height:none}.m-row.wrap .m-cell{white-space:normal;text-overflow:clip;overflow:visible}.print-head h1{font:600 26px/1.2 var(--font-display);margin:8px 0 4px}.print-page-name{font:600 18px var(--font-display);border-bottom:2px solid var(--text);margin:24px 0 0;padding-bottom:6px}.print .card{break-inside:avoid;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}@media print{@page{size:A4;margin:14mm}header.top,.no-print{display:none!important}body,.dash{background:#fff!important}main{padding:0}.print{max-width:none}.print-page+.print-page{break-before:page}}
