
/* Booked's one design language ("Tandem": airy, lilac and midnight, tangerine accents; Geologica for
   headings, Onest for text). Tokens first; public booking pages swap --brand for the client's colour,
   and everything derived from it follows. Fonts are served from here: no third-party requests. */
@font-face{font-family:"Geologica";font-style:normal;font-weight:100 900;font-display:swap;src:url(/app/assets/fonts/geologica-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Geologica";font-style:normal;font-weight:100 900;font-display:swap;src:url(/app/assets/fonts/geologica-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(/app/assets/fonts/onest-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:100 900;font-display:swap;src:url(/app/assets/fonts/onest-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
:root{--bg:#f6f4fb;--panel:#fff;--ink:#221b3a;--muted:#5a5372;--line:#e7e2f3;--field:#9087b0;--brand:#6a5acd;--brand-ink:#fff;--mid:#221b3a;--mid-ink:#fff;--mid-muted:#b7b0ce;--accent:#ff8b3d;
  --warn:#8a4a06;--warn-bg:#ffecdc;--bad:#ab1f1f;--bad-bg:#fdecec;--ok:#0b6b4a;--ok-bg:#dff5ec;--danger:#b42318;
  --brand-soft:color-mix(in srgb,var(--brand) 13%,var(--panel));--brand-strong:color-mix(in srgb,var(--brand) 84%,#000);--focus:var(--brand-strong);
  --radius:14px;--radius-sm:9px;--shadow:0 18px 40px -28px rgba(34,27,58,.35);
  --font-display:"Geologica",system-ui,-apple-system,"Segoe UI",sans-serif;--font-body:"Onest",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font:16px/1.55 var(--font-body);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not(:has(body.light)){--bg:#15112a;--panel:#1f1938;--ink:#efecf9;--muted:#b3abcd;--line:#352d57;--field:#6f6795;--brand:#b0a3f7;--brand-ink:#15112a;--mid:#0f0c20;--mid-muted:#b3abcd;
  --warn:#ffc88a;--warn-bg:#3a2710;--bad:#ffa39b;--bad-bg:#3a1a1c;--ok:#7fe3bb;--ok-bg:#12322a;--danger:#d9382b;
  --brand-strong:color-mix(in srgb,var(--brand) 82%,#fff);--shadow:0 18px 40px -28px rgba(0,0,0,.7);color-scheme:dark}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.012em;line-height:1.2;color:var(--ink)}
h1{font-size:28px;margin:0 0 18px}h2{font-size:19px;margin:26px 0 10px}h3{font-size:16px;margin:14px 0 6px}
p{margin:0 0 12px}
a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--brand-strong)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--panel);padding:8px 12px;border-radius:var(--radius-sm);z-index:9}

/* Header: brand and account on the first row, navigation pills on the second. */
header.top{background:color-mix(in srgb,var(--panel) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.bar{max-width:1160px;margin:0 auto;padding:12px 20px 0;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.01em;text-decoration:none;color:var(--ink)}
.brand:hover{color:var(--ink)}.brand small{color:var(--muted);font-family:var(--font-body);font-weight:400;font-size:14px;letter-spacing:0}
.logo-mark{width:28px;height:28px;flex:none;border-radius:9px;background:var(--brand);display:grid;place-items:center}
.logo-mark svg{width:17px;height:17px;display:block;fill:none;stroke:var(--brand-ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.navrow{max-width:1160px;margin:0 auto;padding:8px 20px 10px}
nav.main{display:flex;gap:2px;flex-wrap:wrap}
nav.main a{padding:7px 12px;border-radius:var(--radius-sm);text-decoration:none;color:var(--muted);font-size:14.5px;font-weight:500;white-space:nowrap}
nav.main a:hover{color:var(--brand-strong);background:var(--brand-soft)}
nav.main a[aria-current=page]{background:var(--brand-soft);color:var(--brand-strong);font-weight:600}
.spacer{flex:1}.who{color:var(--muted);font-size:14px}
main{max-width:1160px;margin:0 auto;padding:28px 20px 72px}

/* Surfaces */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:16px}
.panel>h2:first-child,.panel>h3:first-child,.panel>form>h2:first-child{margin-top:0}
a.panel{display:block;text-decoration:none;color:var(--ink);transition:transform .15s,box-shadow .15s}a.panel:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--brand)}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
table{width:100%;border-collapse:separate;border-spacing:0;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12.5px;color:var(--muted);font-weight:600;letter-spacing:.04em;text-transform:uppercase;background:color-mix(in srgb,var(--bg) 60%,var(--panel))}
tr:last-child td{border-bottom:0}
.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.tabs a{padding:7px 14px;border:1px solid var(--line);border-radius:999px;text-decoration:none;color:var(--muted);background:var(--panel);font-weight:500;font-size:14.5px}
.tabs a:hover{border-color:var(--brand);color:var(--brand-strong)}
.tabs a[aria-current=page]{background:var(--brand);color:var(--brand-ink);border-color:var(--brand);font-weight:600}
.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:0;background:var(--bg);border:1px solid var(--line);color:var(--muted);vertical-align:middle}
.badge.pending,.badge.awaiting_payment{background:var(--warn-bg);color:var(--warn);border-color:transparent}.badge.confirmed,.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}.badge.declined,.badge.cancelled,.badge.revoked,.badge.error,.badge.expired{background:var(--bad-bg);color:var(--bad);border-color:transparent}
.alert{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:16px;border:1px solid;font-weight:500}.alert.ok{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 35%,transparent);color:var(--ok)}.alert.bad{background:var(--bad-bg);border-color:color-mix(in srgb,var(--bad) 35%,transparent);color:var(--bad)}.alert.warn{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 35%,transparent);color:var(--warn)}
.alert ul{margin:6px 0 0;padding-left:18px;font-weight:400}

/* Forms */
label{display:block;font-weight:600;font-size:14.5px;margin:12px 0 5px}.hint{color:var(--muted);font-size:14px;margin:2px 0 6px;font-weight:400}
input[type=text],input[type=email],input[type=url],input[type=tel],input[type=number],input[type=time],input[type=date],input[type=password],select,textarea{width:100%;max-width:520px;padding:10px 12px;border:1px solid var(--field);border-radius:var(--radius-sm);background:var(--panel);color:var(--ink);font:inherit}
input:hover,select:hover,textarea:hover{border-color:var(--brand)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}
textarea{font:13px/1.45 ui-monospace,Menlo,monospace;min-height:90px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row input[type=time]{width:auto}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:var(--radius-sm);border:1px solid var(--brand);background:var(--brand);color:var(--brand-ink);font:inherit;font-weight:600;font-size:14.5px;line-height:1.3;cursor:pointer;text-decoration:none;transition:background .15s,border-color .15s,color .15s}
button:hover,.button:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:var(--brand-ink)}
button.link{background:none;border:0;color:var(--brand);padding:6px 4px;font-weight:600;text-decoration:underline;text-underline-offset:2px}button.link:hover{background:none;color:var(--brand-strong)}
.count{display:inline-block;min-width:1.6em;padding:0 6px;border-radius:999px;background:var(--bg);color:var(--ink);font-size:12px;text-align:center}
.tabs a[aria-current=page] .count{background:var(--brand-ink);color:var(--brand)}
button.secondary,.button.secondary{background:var(--panel);color:var(--ink);border-color:var(--field)}button.secondary:hover,.button.secondary:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-strong)}
button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.danger:hover{background:color-mix(in srgb,var(--danger) 85%,#000);border-color:color-mix(in srgb,var(--danger) 85%,#000);color:#fff}
form.inline{display:inline}dl.kv{display:grid;grid-template-columns:max-content 1fr;gap:8px 18px;margin:0}dl.kv dt{color:var(--muted)}dl.kv dd{margin:0}
.setting{border-top:1px solid var(--line);padding:14px 0}.setting:first-of-type{border-top:0}.source{font-size:13px;color:var(--muted)}
.muted{color:var(--muted)}.small{font-size:14px}.empty{color:var(--muted);padding:36px 24px;text-align:center;background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius)}
pre.code{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;overflow-x:auto;font:13px/1.45 ui-monospace,Menlo,monospace;white-space:pre-wrap;word-break:break-all}
code{font:.92em ui-monospace,Menlo,monospace;background:var(--bg);border-radius:5px;padding:1px 5px}
.badge.test{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
details>summary{cursor:pointer;font-weight:600;color:var(--brand);margin:8px 0}details>summary:hover{color:var(--brand-strong)}

/* Sign-in, and other pages people see before they're in: one card on a time-grid backdrop. */
body.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);background:var(--panel)}
.auth-side{background:var(--mid);color:var(--mid-ink);padding:44px 48px;display:flex;flex-direction:column;justify-content:space-between;gap:36px;position:relative;overflow:hidden;
  background-image:linear-gradient(color-mix(in srgb,#fff 6%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,#fff 6%,transparent) 1px,transparent 1px);background-size:56px 56px}
.auth-side .brand{color:var(--mid-ink);font-size:21px}.auth-side .brand:hover{color:var(--mid-ink)}
.auth-side h2{font-size:clamp(26px,2.6vw,36px);font-weight:700;line-height:1.12;color:var(--mid-ink);margin:0 0 12px;max-width:16ch}
.auth-side p{color:var(--mid-muted);max-width:42ch;margin:0}.auth-side .foot{font-size:13px}
.slot-card{align-self:flex-start;background:var(--panel);color:var(--ink);border-radius:var(--radius);padding:18px;width:min(100%,330px);box-shadow:0 34px 64px -34px rgba(0,0,0,.6)}
.slot-card .when{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-weight:600;font-size:14.5px}
.slot-card .dot{width:34px;height:34px;border-radius:50%;background:var(--brand-soft);color:var(--brand-strong);display:grid;place-items:center;font-family:var(--font-display);font-weight:700}
.slot-card .slots{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.slot-card .slots span{border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 0;text-align:center;font-size:13px;font-weight:600;color:var(--muted)}
.slot-card .slots .sel{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.slot-card .tz{margin:12px 0 0;font-size:12px;color:var(--muted)}.slot-card .tz b{color:var(--ok)}
body.auth .auth-main{max-width:none;margin:0;display:flex;flex-direction:column;justify-content:center;padding:44px clamp(20px,6vw,80px);background:var(--panel)}
.login{width:100%;max-width:400px;margin:0 auto}.login.panel{border:0;padding:0;background:none}
.eyebrow{margin:0 0 8px;font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--brand-strong)}
.login h1{font-size:30px;margin-bottom:6px}.login .lead{color:var(--muted);margin-bottom:22px}
.login input[type=email]{max-width:none}.login button,.login .button{width:100%}.login form p{margin:14px 0 0}
.login .or{display:flex;align-items:center;gap:12px;color:var(--muted);font-size:13px;margin:22px 0 14px}.login .or::before,.login .or::after{content:"";flex:1;height:1px;background:var(--line)}
.login .providers{display:grid;gap:10px}.login .providers p{margin:0}.login details{margin-top:18px}
.not-you{margin-top:30px;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg);font-size:14.5px}
.not-you h2{font-size:16px;margin:0 0 6px}.not-you p{margin:0 0 8px;color:var(--muted)}.not-you ul{margin:0 0 10px;padding-left:18px}.not-you li{margin:3px 0}.not-you p.small{margin:0;font-size:13.5px}
.login .alert{margin-bottom:18px}.auth-main .foot{max-width:400px;width:100%;margin:28px auto 0;color:var(--muted);font-size:13px}
.auth-main .mobile-brand{display:none;margin-bottom:28px}
@media (max-width:860px){body.auth{grid-template-columns:1fr}.auth-side{display:none}body.auth .auth-main{justify-content:flex-start;padding-top:36px}.auth-main .mobile-brand{display:flex;max-width:400px;width:100%;margin:0 auto 28px}}
/* A single message or button (sign-in link, invitation, connection result, approve/decline). */
body.simple{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:clamp(24px,8vh,84px) 20px 40px;
  background-image:linear-gradient(color-mix(in srgb,var(--line) 55%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 55%,transparent) 1px,transparent 1px);background-size:56px 56px;background-position:center top}
body.simple .brand{margin-bottom:22px}
.simple-card{width:100%;max-width:480px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:30px 30px 26px;box-shadow:var(--shadow)}
.simple-card h1{font-size:24px;margin-bottom:12px}.simple-card p:last-child{margin-bottom:0}.simple-card textarea{font:inherit;max-width:none}.simple-card form{margin-top:16px}
.simple-card .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.simple-foot{margin-top:18px;color:var(--muted);font-size:13px}

/* Setup wizard and checklist */
.checklist progress{width:100%;max-width:520px;height:8px;accent-color:var(--brand)}.checklist h2{margin:0}
ul.checks{list-style:none;padding:0;margin:10px 0}ul.checks li{padding:4px 0;display:flex;gap:8px;align-items:baseline}
ul.checks .tick{display:inline-block;width:1.3em;height:1.3em;border:2px solid var(--line);border-radius:50%;text-align:center;font-size:12px;line-height:1.1em;flex:none}
ul.checks li.done .tick{background:var(--ok);border-color:var(--ok);color:var(--panel)}ul.checks li.done{color:var(--muted)}
ol.steps{list-style:none;padding:0;margin:0 0 18px;display:flex;gap:6px;flex-wrap:wrap;counter-reset:s}
ol.steps a{display:flex;gap:7px;align-items:center;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);text-decoration:none;font-weight:500;font-size:14.5px}
ol.steps .num{display:inline-block;width:1.5em;height:1.5em;border-radius:50%;background:var(--bg);text-align:center;font-size:13px;line-height:1.5em;font-weight:700;color:var(--ink)}
ol.steps li.done .num{background:var(--ok);color:var(--panel)}ol.steps a[aria-current=step]{border-color:var(--brand);color:var(--brand-strong);font-weight:600;box-shadow:inset 0 0 0 1px var(--brand)}
fieldset{border:0;padding:0;margin:0}legend{font-weight:600;font-size:14.5px;padding:0;margin:12px 0 5px}legend h2{margin-top:0}
label.choice{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:16px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);margin:8px 0;max-width:640px;cursor:pointer;background:var(--panel)}
label.choice:hover{border-color:var(--brand)}
label.choice:has(input:checked){border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand);background:var(--brand-soft)}label.choice input{margin-top:5px;accent-color:var(--brand)}label.choice.disabled{opacity:.6;cursor:not-allowed}
.choice-extra{margin:-2px 0 8px 34px}.wizard-nav{margin-top:18px}input[type=color]{width:64px;height:42px;padding:3px;border:1px solid var(--field);border-radius:var(--radius-sm);background:var(--panel)}
input[type=checkbox],input[type=radio]{accent-color:var(--brand);width:1.05em;height:1.05em}
textarea.prose{font:inherit;min-height:110px}.grow{flex:1 1 220px;margin:0}td progress{width:140px;accent-color:var(--brand)}textarea.prose.short{min-height:70px}
ol.rows{list-style:none;padding:0;margin:0 0 10px}ol.rows>li{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;margin:8px 0;background:var(--panel)}
.q-grid{display:grid;gap:0 12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.loc-row .row{margin-top:6px}.loc-row input,.loc-row select{width:auto;flex:1 1 200px}
.drag-handle{float:right;cursor:grab;font-size:20px;line-height:1;color:var(--muted);padding:0 4px;user-select:none}li.dragging{opacity:.5}
.week .ev[draggable=true]{cursor:grab}
button.danger-link{color:var(--bad)}button.danger-link:hover{color:var(--bad)}fieldset.dest .row{margin:4px 0}fieldset.dest select,fieldset.dest input[type=url],fieldset.dest input[type=text]{width:auto;flex:1 1 180px}
.sticky-save{position:sticky;bottom:0;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(6px);padding:12px 0;border-top:1px solid var(--line)}label.check{display:flex;gap:8px;align-items:center;font-weight:400;font-size:16px}
.editor-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start}
iframe.email-preview{width:100%;height:560px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;margin:10px 0}

/* Week calendar */
.week-nav{margin-bottom:12px}.key{display:inline-block;padding:0 8px;border-radius:5px;margin-left:6px;font-size:12px}
.key.confirmed,.ev.confirmed,.ev.completed{background:var(--ok-bg);border-left:3px solid var(--ok);color:var(--ink)}
.key.pending,.ev.pending{background:var(--warn-bg);border-left:3px dashed var(--warn);color:var(--ink)}
.week{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:16px}
.week-head,.week-body{display:grid;grid-template-columns:3.5em repeat(7,minmax(0,1fr))}
.week-head span{padding:9px 4px;font-size:13px;font-weight:600;border-bottom:1px solid var(--line);text-align:center;color:var(--muted)}.week-head .today{color:var(--brand-strong)}
.week .times,.week .day{display:grid;grid-auto-rows:16px}.week .times span{font-size:11px;color:var(--muted);text-align:right;padding-right:6px}
.week .day{border-left:1px solid var(--line);background-image:linear-gradient(var(--line) 1px,transparent 1px);background-size:100% 64px;column-gap:2px;padding:0 2px}
.week .day.today{background-color:var(--brand-soft)}
.ev{display:block;overflow:hidden;font-size:12px;line-height:1.3;padding:2px 5px;border-radius:5px;text-decoration:none;margin:1px 0}
.ev .what{display:block;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filler{visibility:hidden}
.week-list{display:none}.week-list ul{list-style:none;padding:0;margin:0}.week-list li{margin:6px 0}.week-list .ev{font-size:15px;padding:9px 12px}.week-list h2.today{color:var(--brand-strong)}
.week .r-1{grid-row-start:1}.week .s-1{grid-row-end:span 1}.week .r-2{grid-row-start:2}.week .s-2{grid-row-end:span 2}.week .r-3{grid-row-start:3}.week .s-3{grid-row-end:span 3}.week .r-4{grid-row-start:4}.week .s-4{grid-row-end:span 4}.week .r-5{grid-row-start:5}.week .s-5{grid-row-end:span 5}.week .r-6{grid-row-start:6}.week .s-6{grid-row-end:span 6}.week .r-7{grid-row-start:7}.week .s-7{grid-row-end:span 7}.week .r-8{grid-row-start:8}.week .s-8{grid-row-end:span 8}.week .r-9{grid-row-start:9}.week .s-9{grid-row-end:span 9}.week .r-10{grid-row-start:10}.week .s-10{grid-row-end:span 10}.week .r-11{grid-row-start:11}.week .s-11{grid-row-end:span 11}.week .r-12{grid-row-start:12}.week .s-12{grid-row-end:span 12}.week .r-13{grid-row-start:13}.week .s-13{grid-row-end:span 13}.week .r-14{grid-row-start:14}.week .s-14{grid-row-end:span 14}.week .r-15{grid-row-start:15}.week .s-15{grid-row-end:span 15}.week .r-16{grid-row-start:16}.week .s-16{grid-row-end:span 16}.week .r-17{grid-row-start:17}.week .s-17{grid-row-end:span 17}.week .r-18{grid-row-start:18}.week .s-18{grid-row-end:span 18}.week .r-19{grid-row-start:19}.week .s-19{grid-row-end:span 19}.week .r-20{grid-row-start:20}.week .s-20{grid-row-end:span 20}.week .r-21{grid-row-start:21}.week .s-21{grid-row-end:span 21}.week .r-22{grid-row-start:22}.week .s-22{grid-row-end:span 22}.week .r-23{grid-row-start:23}.week .s-23{grid-row-end:span 23}.week .r-24{grid-row-start:24}.week .s-24{grid-row-end:span 24}.week .r-25{grid-row-start:25}.week .s-25{grid-row-end:span 25}.week .r-26{grid-row-start:26}.week .s-26{grid-row-end:span 26}.week .r-27{grid-row-start:27}.week .s-27{grid-row-end:span 27}.week .r-28{grid-row-start:28}.week .s-28{grid-row-end:span 28}.week .r-29{grid-row-start:29}.week .s-29{grid-row-end:span 29}.week .r-30{grid-row-start:30}.week .s-30{grid-row-end:span 30}.week .r-31{grid-row-start:31}.week .s-31{grid-row-end:span 31}.week .r-32{grid-row-start:32}.week .s-32{grid-row-end:span 32}.week .r-33{grid-row-start:33}.week .s-33{grid-row-end:span 33}.week .r-34{grid-row-start:34}.week .s-34{grid-row-end:span 34}.week .r-35{grid-row-start:35}.week .s-35{grid-row-end:span 35}.week .r-36{grid-row-start:36}.week .s-36{grid-row-end:span 36}.week .r-37{grid-row-start:37}.week .s-37{grid-row-end:span 37}.week .r-38{grid-row-start:38}.week .s-38{grid-row-end:span 38}.week .r-39{grid-row-start:39}.week .s-39{grid-row-end:span 39}.week .r-40{grid-row-start:40}.week .s-40{grid-row-end:span 40}.week .r-41{grid-row-start:41}.week .s-41{grid-row-end:span 41}.week .r-42{grid-row-start:42}.week .s-42{grid-row-end:span 42}.week .r-43{grid-row-start:43}.week .s-43{grid-row-end:span 43}.week .r-44{grid-row-start:44}.week .s-44{grid-row-end:span 44}.week .r-45{grid-row-start:45}.week .s-45{grid-row-end:span 45}.week .r-46{grid-row-start:46}.week .s-46{grid-row-end:span 46}.week .r-47{grid-row-start:47}.week .s-47{grid-row-end:span 47}.week .r-48{grid-row-start:48}.week .s-48{grid-row-end:span 48}.week .r-49{grid-row-start:49}.week .s-49{grid-row-end:span 49}.week .r-50{grid-row-start:50}.week .s-50{grid-row-end:span 50}.week .r-51{grid-row-start:51}.week .s-51{grid-row-end:span 51}.week .r-52{grid-row-start:52}.week .s-52{grid-row-end:span 52}.week .r-53{grid-row-start:53}.week .s-53{grid-row-end:span 53}.week .r-54{grid-row-start:54}.week .s-54{grid-row-end:span 54}.week .r-55{grid-row-start:55}.week .s-55{grid-row-end:span 55}.week .r-56{grid-row-start:56}.week .s-56{grid-row-end:span 56}.week .r-57{grid-row-start:57}.week .s-57{grid-row-end:span 57}.week .r-58{grid-row-start:58}.week .s-58{grid-row-end:span 58}.week .r-59{grid-row-start:59}.week .s-59{grid-row-end:span 59}.week .r-60{grid-row-start:60}.week .s-60{grid-row-end:span 60}.week .r-61{grid-row-start:61}.week .s-61{grid-row-end:span 61}.week .r-62{grid-row-start:62}.week .s-62{grid-row-end:span 62}.week .r-63{grid-row-start:63}.week .s-63{grid-row-end:span 63}.week .r-64{grid-row-start:64}.week .s-64{grid-row-end:span 64}.week .r-65{grid-row-start:65}.week .s-65{grid-row-end:span 65}.week .r-66{grid-row-start:66}.week .s-66{grid-row-end:span 66}.week .r-67{grid-row-start:67}.week .s-67{grid-row-end:span 67}.week .r-68{grid-row-start:68}.week .s-68{grid-row-end:span 68}.week .r-69{grid-row-start:69}.week .s-69{grid-row-end:span 69}.week .r-70{grid-row-start:70}.week .s-70{grid-row-end:span 70}.week .r-71{grid-row-start:71}.week .s-71{grid-row-end:span 71}.week .r-72{grid-row-start:72}.week .s-72{grid-row-end:span 72}.week .r-73{grid-row-start:73}.week .s-73{grid-row-end:span 73}.week .r-74{grid-row-start:74}.week .s-74{grid-row-end:span 74}.week .r-75{grid-row-start:75}.week .s-75{grid-row-end:span 75}.week .r-76{grid-row-start:76}.week .s-76{grid-row-end:span 76}.week .r-77{grid-row-start:77}.week .s-77{grid-row-end:span 77}.week .r-78{grid-row-start:78}.week .s-78{grid-row-end:span 78}.week .r-79{grid-row-start:79}.week .s-79{grid-row-end:span 79}.week .r-80{grid-row-start:80}.week .s-80{grid-row-end:span 80}.week .r-81{grid-row-start:81}.week .s-81{grid-row-end:span 81}.week .r-82{grid-row-start:82}.week .s-82{grid-row-end:span 82}.week .r-83{grid-row-start:83}.week .s-83{grid-row-end:span 83}.week .r-84{grid-row-start:84}.week .s-84{grid-row-end:span 84}.week .r-85{grid-row-start:85}.week .s-85{grid-row-end:span 85}.week .r-86{grid-row-start:86}.week .s-86{grid-row-end:span 86}.week .r-87{grid-row-start:87}.week .s-87{grid-row-end:span 87}.week .r-88{grid-row-start:88}.week .s-88{grid-row-end:span 88}.week .r-89{grid-row-start:89}.week .s-89{grid-row-end:span 89}.week .r-90{grid-row-start:90}.week .s-90{grid-row-end:span 90}.week .r-91{grid-row-start:91}.week .s-91{grid-row-end:span 91}.week .r-92{grid-row-start:92}.week .s-92{grid-row-end:span 92}.week .r-93{grid-row-start:93}.week .s-93{grid-row-end:span 93}.week .r-94{grid-row-start:94}.week .s-94{grid-row-end:span 94}.week .r-95{grid-row-start:95}.week .s-95{grid-row-end:span 95}.week .r-96{grid-row-start:96}.week .s-96{grid-row-end:span 96}.week .lane-1{grid-column:1}.week .lanes-1{grid-template-columns:repeat(1,minmax(0,1fr))}.week .lane-2{grid-column:2}.week .lanes-2{grid-template-columns:repeat(2,minmax(0,1fr))}.week .lane-3{grid-column:3}.week .lanes-3{grid-template-columns:repeat(3,minmax(0,1fr))}.week .lane-4{grid-column:4}.week .lanes-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:720px){.week{display:none}.week-list{display:block}}
@media (max-width:900px){.who{display:none}}
@media (max-width:640px){th.hide-sm,td.hide-sm{display:none}h1{font-size:24px}.brand small{display:none}
  nav.main{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -20px;padding:0 20px}nav.main::-webkit-scrollbar{display:none}
  table{display:block;overflow-x:auto}
  table.list{display:block;border:0;background:none;overflow:visible}table.list thead{display:none}table.list tbody{display:block}
  table.list tr{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:10px;padding:8px 0}
  table.list td{display:block;border:0;padding:4px 16px}}

/* Insights */
.cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}
.card .label{margin:0;color:var(--muted);font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.card .big{margin:6px 0 0;font-family:var(--font-display);font-size:32px;font-weight:700;letter-spacing:-.02em;color:var(--brand-strong)}.card .hint{margin:2px 0 0}
.filters{margin-bottom:16px}.filters select{width:auto}
svg.chart{width:100%;height:auto;display:block}svg.chart .bar{fill:var(--brand)}svg.chart .bar.cancelled{fill:var(--accent)}svg.chart .axis{fill:var(--muted);font-size:11px}svg.chart .base{stroke:var(--line)}
.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--brand);margin:0 4px 0 8px}.swatch.cancelled{background:var(--accent)}
.scroll-x{overflow-x:auto}table.heatmap th,table.heatmap td{padding:5px 6px;text-align:center;font-size:12px;min-width:28px;text-transform:none;letter-spacing:0}
td.heat.h1{background:color-mix(in srgb,var(--brand) 18%,transparent)}td.heat.h2{background:color-mix(in srgb,var(--brand) 38%,transparent)}td.heat.h3{background:color-mix(in srgb,var(--brand) 62%,transparent);color:var(--brand-ink)}td.heat.h4{background:var(--brand);color:var(--brand-ink)}
ol.funnel{display:flex;gap:10px;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 12px}ol.funnel li{flex:1 1 140px;background:var(--brand-soft);border-radius:var(--radius-sm);padding:12px 14px}ol.funnel li strong{display:block;font-family:var(--font-display);font-size:24px;color:var(--brand-strong)}
