:root{--bg: #f3f6f5;--panel: #ffffff;--ink: #13201d;--muted: #5d6e69;--line: #e1e8e5;--line-strong: #c9d4d0;--hover: #edf3f1;--accent: #0f766e;--accent-ink: #ffffff;--accent-soft: #dff2ef;--chart-2: #7c5cbf;--chart-3: #2f7fb5;--chart-muted: #a9b6b2;--good: #1d7a3a;--good-soft: #e3f3e7;--warn: #9a5b06;--warn-soft: #fbf0dc;--bad: #c2362f;--bad-soft: #fbe6e4;--focus: #0f766e;--font: "Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius: 10px;--radius-sm: 6px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0d1513;--panel: #14201d;--ink: #e4ece9;--muted: #93a5a0;--line: #22302c;--line-strong: #31423d;--hover: #1a2825;--accent: #2cc7b5;--accent-ink: #062a26;--accent-soft: #123a35;--chart-2: #a78bfa;--chart-3: #5fb0e8;--chart-muted: #56665f;--good: #5cc983;--good-soft: #15301f;--warn: #e6a94a;--warn-soft: #33270f;--bad: #f07067;--bad-soft: #3a1a18;--focus: #2cc7b5;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--font);font-feature-settings:"tnum" 1;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}h1,h2,h3{margin:0;text-wrap:balance}.muted{color:var(--muted)}.small{font-size:13px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:28px;padding:24px 16px 20px;border-right:1px solid var(--line);background:var(--panel)}.brand{display:flex;align-items:baseline;gap:8px;padding:0 10px}.brand-name{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--accent)}.brand-sub{font-size:14px;color:var(--muted)}.nav{display:flex;flex-direction:column;gap:2px}.nav-link{display:block;padding:8px 10px;border-radius:var(--radius-sm);color:var(--ink);font-weight:500}.nav-link:hover{background:var(--hover);text-decoration:none}.nav-link.is-active{background:var(--accent-soft);color:var(--accent)}.who{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:12px 10px 0;border-top:1px solid var(--line)}.who-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who-role{display:flex;gap:6px;flex-wrap:wrap}.main{padding:32px clamp(16px,4vw,48px) 64px;max-width:1320px;width:100%}@media (max-width: 860px){.shell{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;align-content:start}.side{position:sticky;top:0;z-index:20;height:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand who" "nav nav";gap:6px 12px;padding:10px 16px 0;padding-top:max(10px,env(safe-area-inset-top));border-right:0;border-bottom:1px solid var(--line)}.brand{grid-area:brand;padding:0;align-self:center}.brand-name{font-size:20px}.who{grid-area:who;margin:0;padding:0;border:0;flex-direction:row;align-items:center;gap:6px}.who-name{display:none}.who .btn-small{align-self:center}.nav{grid-area:nav;flex-direction:row;flex-wrap:nowrap;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 -16px;padding:4px 16px 8px;scroll-padding-inline:16px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 12px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 12px,#000 calc(100% - 20px),transparent 100%)}.nav::-webkit-scrollbar{display:none}.nav:after{content:"";flex:0 0 8px}.nav-link{flex:none;white-space:nowrap;padding:8px 12px}.main{padding:20px 16px 48px;padding-bottom:max(48px,env(safe-area-inset-bottom))}.page-head h1{font-size:26px}.page-head{margin-bottom:18px}}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-head h1{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.15}.page-lede{margin-top:6px;max-width:72ch;color:var(--muted)}.page-lede b{color:var(--ink);font-weight:600}.section-title{font-size:19px;font-weight:600;margin:40px 0 4px;letter-spacing:-.01em}.section-note{margin:0 0 14px;color:var(--muted);font-size:13px}.section-title+.tiles{margin-top:14px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin-bottom:16px}.tile{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:flex;flex-direction:column;gap:2px;min-width:0}.tile-label{font-size:13px;color:var(--muted)}.tile-value{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.2}.tile-value a{color:inherit}.tile-context{font-size:13px;color:var(--muted)}.tile-warn .tile-value{color:var(--warn)}.tile-bad .tile-value{color:var(--bad)}.tile-good .tile-value{color:var(--good)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start}.grid-detail{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr)}.grid-detail>.card-wide{grid-column:1 / 2}.grid-detail>.card:last-child{grid-column:1 / -1}@media (max-width: 1100px){.grid-detail{grid-template-columns:1fr}.grid-detail>.card-wide{grid-column:auto}}.stack{display:flex;flex-direction:column;gap:16px;min-width:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px 20px;min-width:0;display:flex;flex-direction:column;gap:12px}.card-wide{grid-column:1 / -1}.card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.card-title{font-size:16px;font-weight:600}.card-note{margin:2px 0 0;font-size:13px;color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:999px;font-size:12.5px;font-weight:500;background:var(--hover);color:var(--muted);white-space:nowrap}.pill-accent{background:var(--accent-soft);color:var(--accent)}.pill-good{background:var(--good-soft);color:var(--good)}.pill-warn{background:var(--warn-soft);color:var(--warn)}.pill-bad{background:var(--bad-soft);color:var(--bad)}.btn{font:inherit;font-weight:500;font-size:14px;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);cursor:pointer}.btn:hover:not(:disabled){background:var(--hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.btn-danger{background:var(--bad);border-color:var(--bad);color:#fff}.btn-danger:hover:not(:disabled){background:var(--bad);filter:brightness(1.08)}.btn-quiet{border-color:transparent;background:transparent;color:var(--muted)}.btn-small{padding:4px 10px;font-size:13px;align-self:flex-start}.toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.search input{font:inherit;width:100%;max-width:480px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--panel);color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.toolbar .chips{margin-bottom:0}.chip{font:inherit;font-size:13px;padding:4px 12px;border-radius:999px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);cursor:pointer}.chip:hover{background:var(--hover)}.chip.is-on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.table-wrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:500;font-size:12.5px;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:0}.table .num{text-align:right}.table-wrap .table th:first-child,.table-wrap .table td:first-child{padding-left:16px}.table-click tbody tr{cursor:pointer}.table-click tbody tr:hover td{background:var(--hover)}.user-cell{display:flex;flex-direction:column;color:var(--ink)}.user-cell:hover{text-decoration:none}.user-cell:hover .user-name{text-decoration:underline;text-underline-offset:3px}.user-name{font-weight:600}.user-id{font-size:12.5px;color:var(--muted)}.more{display:flex;justify-content:center;margin-top:16px}.hbars{display:flex;flex-direction:column;gap:8px}.hbar{display:grid;grid-template-columns:minmax(0,11rem) minmax(40px,1fr) 3.5rem;align-items:center;gap:12px;font-size:14px}.hbar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hbar-track{height:8px;border-radius:4px;background:var(--hover);overflow:hidden}.hbar-fill{height:100%;border-radius:4px;background:var(--accent)}.hbar-muted{background:var(--chart-muted)}.hbar-value{text-align:right;color:var(--muted);font-size:13px}.funnel{display:flex;flex-direction:column;gap:12px}.funnel-step{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}.funnel-label{font-size:14px}.funnel-num{font-size:14px;text-align:right}.funnel-track{grid-column:1 / -1;height:12px;border-radius:6px;background:var(--hover);overflow:hidden}.funnel-fill{height:100%;border-radius:6px;background:var(--accent)}.funnel-late{background:var(--chart-2)}.chart{width:100%}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted)}.legend>span{display:inline-flex;align-items:center;gap:6px}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.swatch-line{height:3px;width:14px;border-radius:2px}.chart-tip{background:var(--panel);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px;box-shadow:0 6px 24px #0000001f}.chart-tip-title{color:var(--muted);margin-bottom:4px}.chart-tip-row{display:flex;align-items:center;gap:8px}.chart-tip-row b{margin-left:auto;padding-left:12px;font-weight:600}.events{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.events li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.events li:last-child{border-bottom:0}.events-product{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.events-at{font-size:13px}.back{display:inline-block;margin-bottom:14px;font-size:14px;color:var(--muted)}.back:before{content:"‹";margin-right:6px}.person{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-end;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--line)}.person-main{display:flex;flex-direction:column;gap:8px;min-width:0}.person-name{font-size:40px;font-weight:700;letter-spacing:-.03em;line-height:1.05;overflow-wrap:anywhere}.person-tags{display:flex;flex-wrap:wrap;gap:6px}.person-facts{display:flex;gap:28px;margin:0;flex-wrap:wrap}.person-facts dt{font-size:12.5px;color:var(--muted)}.person-facts dd{margin:0;font-weight:500}.copy{font:inherit;display:inline-flex;gap:8px;align-items:baseline;padding:0;border:0;background:none;color:var(--muted);cursor:pointer;font-size:13.5px}.copy-hint{font-size:12px;color:var(--accent);opacity:0;transition:opacity .15s}.copy:hover .copy-hint,.copy:focus-visible .copy-hint{opacity:1}.setlist{list-style:none;margin:0;padding:0;max-height:560px;overflow-y:auto}.setlist-row{display:grid;grid-template-columns:6.5rem minmax(0,1fr) auto;gap:14px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line)}.setlist-row:last-child{border-bottom:0}.setlist-when{font-size:13px;color:var(--muted)}.setlist-song{display:flex;flex-direction:column;min-width:0;font-size:16px;font-weight:600;letter-spacing:-.01em;overflow-wrap:anywhere}.setlist-song a{color:var(--ink)}.setlist-artist{font-size:13.5px;font-weight:400;color:var(--muted);letter-spacing:0}@media (max-width: 520px){.setlist-row{grid-template-columns:minmax(0,1fr) auto}.setlist-when{grid-column:1 / -1}}.facts{display:grid;grid-template-columns:1fr;margin:0}.fact{display:grid;grid-template-columns:minmax(0,11rem) minmax(0,1fr);gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}.fact:last-child{border-bottom:0}.fact dt{color:var(--muted)}.fact dd{margin:0;overflow-wrap:anywhere}.action-form{display:flex;flex-direction:column;gap:14px}.seg{display:flex;flex-wrap:wrap;gap:4px;padding:3px;background:var(--hover);border-radius:var(--radius-sm);align-self:flex-start}.seg-btn{font:inherit;font-size:13px;padding:5px 12px;border:0;border-radius:4px;background:transparent;color:var(--muted);cursor:pointer}.seg-btn.is-on{background:var(--panel);color:var(--ink);box-shadow:0 1px 2px #00000014}.field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.field input{font:inherit;font-size:15px;color:var(--ink);padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--panel)}.field-help{margin:0;font-size:14px;color:var(--muted)}.field-error{margin:0;font-size:13px;color:var(--bad)}.confirm-line{margin:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);font-weight:500;font-size:14px}.ok-line{margin:0;color:var(--good);font-weight:500;font-size:14px}.action-row{display:flex;gap:8px}.state{padding:20px;border-radius:var(--radius);color:var(--muted);font-size:14px;background:var(--hover)}.card .state{background:transparent;padding:8px 0}.state-loading{animation:none}.state-error{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;background:var(--bad-soft);color:var(--bad)}.state-error strong{font-weight:600}.state-code{font-size:12px;opacity:.8}.splash{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:24px clamp(16px,8vw,120px);gap:12px;max-width:760px}.splash-mark{font-size:22px;font-weight:700;color:var(--accent);letter-spacing:-.02em}.splash h1{font-size:30px;font-weight:700;letter-spacing:-.02em}.splash-body{color:var(--muted);max-width:60ch}.splash-body p{display:flex;gap:8px;margin-top:16px}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.scroll-x{overflow-x:auto;margin:0 -4px;padding:0 4px}.scroll-x .table{min-width:420px}.scroll-x .table-cards{min-width:0}@media (max-width: 520px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tile{padding:12px 14px}.tile-value{font-size:24px}.person-name{font-size:32px}.setlist{max-height:none}}.refresh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.refresh-btn{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.refresh .btn-small,.first-run .btn-small{align-self:center}.stale{color:var(--warn)}.error-text{color:var(--bad)}.first-run{display:flex;flex-direction:column;align-items:flex-start;gap:12px;color:var(--ink)}.first-run strong{font-weight:600}.nav-link{display:flex;align-items:center;justify-content:space-between;gap:8px}.nav-badge{font-size:12px;font-weight:600;min-width:22px;padding:0 7px;border-radius:999px;background:var(--bad-soft);color:var(--bad);text-align:center}.text-bad{color:var(--bad);font-weight:600}.toolbar-row{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media (max-width: 640px){.table-cards{min-width:0}.table-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.table-cards tbody{display:block}.table-cards tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;padding:14px 16px;border-bottom:1px solid var(--line)}.scroll-x .table-cards tr{padding-left:0;padding-right:0}.table-cards tr:last-child{border-bottom:0}.table-cards td,.table-wrap .table-cards td:first-child{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}.table-cards td[data-label]:before{content:attr(data-label);display:block;margin-bottom:1px;font-size:12px;color:var(--muted)}.table-cards .cell-head,.table-cards .cell-wide{grid-column:1 / -1}.table-cards .cell-head{font-weight:600}.table-cards .num{text-align:left}.table-click tbody tr:hover td{background:none}.table-click tbody tr:active{background:var(--hover)}.user-name{font-size:16px}.seg{flex-wrap:wrap}.seg-btn{flex:1 1 auto}}@media (pointer: coarse){.btn{min-height:42px;padding-block:9px}.btn-small{min-height:36px}.chip{min-height:38px;padding:7px 14px;font-size:14px}.chips{gap:8px}.seg-btn{min-height:38px;padding:8px 14px;font-size:14px}.nav-link{min-height:40px}.search input,.field input,input,select,textarea{font-size:16px}.table-click tbody tr{-webkit-tap-highlight-color:transparent}.back,.copy{display:inline-flex;align-items:center;min-height:36px}}
