/* Oogubi Goobers app, Oogubi design system. Eye path per card: city and status, then venue and productions, then times, then team. Everything else lives in Details. */
@font-face{font-family:"Sofia Pro Soft";src:url("fonts/SofiaProSoftLight.woff2") format("woff2");font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:"Sofia Pro Soft";src:url("fonts/SofiaProSoftRegular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Sofia Pro Soft";src:url("fonts/SofiaProSoftMedium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Sofia Pro Soft";src:url("fonts/SofiaProSoftBold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{
  --white:#ffffff; --indigo:#1d194e; --linen:#fbf6f2; --cream:#f4e5d9; --sand:#edd4c0; --carbon:#111315; --slate:#424a54; --mist:#b3b7bb; --fog:#d9dbdd;
  --neon-lime:#e4fe52; --mint:#28df99; --lavender:#c9abe0; --violet:#3e10cc; --pink:#ea337a;
  --surface:var(--linen); --surface-alt:var(--cream); --surface-raised:var(--white);
  --ink:var(--indigo); --ink-muted:var(--slate); --title:var(--violet); --hairline:var(--fog); --field-border:var(--slate);
  --action:var(--indigo); --on-action:var(--white); --highlight:var(--sand); --focus:var(--violet);
  --success:var(--mint); --attention:var(--pink); --info:var(--lavender);
  --scrim:rgba(29,25,78,.5);
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px; --space-12:48px;
  --radius-sm:8px; --radius-md:16px; --radius-lg:32px; --radius-pill:999px;
  --font-sans:"Sofia Pro Soft", ui-rounded, system-ui, sans-serif;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --surface:var(--indigo); --surface-alt:var(--carbon); --surface-raised:#26224f;
  --ink:var(--linen); --ink-muted:var(--mist); --title:var(--neon-lime); --hairline:var(--slate); --field-border:var(--mist);
  --action:var(--neon-lime); --on-action:var(--indigo); --highlight:var(--violet); --focus:var(--neon-lime); --scrim:rgba(0,0,0,.6); color-scheme:dark }}
:root[data-theme="dark"]{
  --surface:var(--indigo); --surface-alt:var(--carbon); --surface-raised:#26224f;
  --ink:var(--linen); --ink-muted:var(--mist); --title:var(--neon-lime); --hairline:var(--slate); --field-border:var(--mist);
  --action:var(--neon-lime); --on-action:var(--indigo); --highlight:var(--violet); --focus:var(--neon-lime); --scrim:rgba(0,0,0,.6); color-scheme:dark }
*{box-sizing:border-box}
body{background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:24px;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--indigo)}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
a{color:inherit}
.eyebrow{font-size:12px;line-height:16px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0}
.hint{margin:0;color:var(--ink-muted);font-size:13px;line-height:18px;font-weight:400}

/* Header */
.previewbar{background:var(--neon-lime);color:var(--indigo);display:flex;justify-content:space-between;align-items:center;gap:12px;padding-block:8px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));font-weight:700;font-size:14px}
.previewbar .btn{background:var(--indigo);color:var(--white)}
.appbar{background:var(--indigo)}
.appbar-in{max-width:720px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:28px 16px;display:flex;flex-direction:column;align-items:center;gap:20px}
.logo{height:66px;width:auto;max-width:100%;display:block}
.navpills{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;max-width:100%}
.navpills button{border:0;background:none;color:var(--fog);height:36px;padding:0 16px;border-radius:var(--radius-pill);font-size:14px;font-weight:500;white-space:nowrap}
.navpills button[aria-current="page"]{background:var(--neon-lime);color:var(--indigo)}

.wrap{max-width:720px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:24px 64px}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 24px;border:0;border-radius:var(--radius-pill);font-size:15px;line-height:20px;font-weight:700;text-decoration:none;white-space:nowrap;background:var(--action);color:var(--on-action)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--field-border)}
.btn.small{height:36px;padding:0 16px;font-size:14px}
.textlink{background:none;border:0;padding:0;font-weight:500;font-size:14px;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.textlink.danger{color:var(--attention)}
.chip{height:36px;padding:0 16px;border-radius:var(--radius-pill);border:0;background:var(--surface-alt);color:var(--ink);font-size:14px;font-weight:500}
.chip[aria-pressed="true"]{background:var(--highlight);font-weight:700}

/* Badges */
.badge{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:700;line-height:16px;color:var(--carbon);white-space:nowrap;flex:none}
.badge.open{background:var(--attention);color:var(--white)}
.badge.full{background:var(--success)}
.badge.pending{background:var(--info);color:var(--indigo)}
.badge.neutral{background:var(--highlight);color:var(--ink)}

.announce{display:flex;flex-direction:column;gap:2px;padding:0 0 20px;margin-bottom:20px;border-bottom:1.5px solid var(--hairline)}
.announce .eyebrow{color:var(--title)}
.announce p{margin:0;color:var(--ink-muted);font-size:15px;line-height:22px;white-space:pre-line}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:20px}
.spacer{flex:1}

h2.month{font-size:28px;line-height:36px;font-weight:300;color:var(--title);margin:32px 0 12px}
main > h2.month:first-child, .guide h2.month, .announce + h2.month, .toolbar + h2.month{margin-top:0}
.list{display:flex;flex-direction:column;gap:12px}

/* Event card */
.ev{background:var(--surface-alt);border-radius:var(--radius-md);padding:16px;display:grid;grid-template-columns:52px 1fr;gap:14px}
.ev.mine{box-shadow:inset 0 0 0 2px var(--highlight)}
.date{width:52px;height:52px;border-radius:50%;background:var(--indigo);color:var(--linen);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:none}
.date .dow{font-size:10px;line-height:12px;font-weight:700;letter-spacing:.12em;color:var(--neon-lime)}
.date .day{font-size:20px;line-height:22px;font-weight:700;font-variant-numeric:tabular-nums}
.evbody{min-width:0;display:flex;flex-direction:column;gap:12px}
.evinfo{display:flex;flex-direction:column;gap:10px}
.evtop{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}
.evcta{display:flex;flex-direction:column;align-items:center;gap:4px;flex:none;text-align:center}
.spotsleft{font-size:13px;line-height:16px;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.btn.join{height:38px;padding:0 18px;font-size:14px;background:var(--pink);color:var(--white);box-shadow:0 0 0 0 rgba(234,51,122,.6),0 0 14px 2px rgba(234,51,122,.45)}
@media (prefers-reduced-motion:no-preference){.btn.join{animation:glow 1.8s ease-in-out infinite}@keyframes glow{0%,100%{box-shadow:0 0 0 0 rgba(234,51,122,.6),0 0 10px 1px rgba(234,51,122,.35)}50%{box-shadow:0 0 0 8px rgba(234,51,122,0),0 0 22px 6px rgba(234,51,122,.6)}}}
.evtop h3{font-size:24px;line-height:30px;font-weight:700;margin:0;min-width:0;overflow-wrap:anywhere}
.venueline{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:-6px;font-size:15px;line-height:20px}
.venue{font-weight:500}
.evname{color:var(--ink-muted)}
.maplink{font-weight:500;font-size:14px;color:var(--title);text-underline-offset:3px}
.prods{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.prod{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:var(--radius-pill);background:var(--highlight);color:var(--ink);font-size:12px;font-weight:700}
.updated{font-size:12px;font-weight:700;color:var(--title)}
.times{display:flex;flex-wrap:wrap;gap:4px 20px;margin:0}
.times div{display:flex;flex-direction:column}
.times dt{font-size:11px;line-height:14px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.times dd{margin:0;font-weight:500;font-size:15px;line-height:20px;font-variant-numeric:tabular-nums}
.team{display:flex;flex-direction:column;gap:8px;background:var(--surface-raised);border-radius:var(--radius-sm);padding:12px 14px}
.team .slot{background:var(--surface-alt)}
.team .slot.me{background:var(--highlight)}
.reqs{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1.5px solid var(--hairline)}
.req{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.leads{display:flex;flex-wrap:wrap;gap:4px 20px;font-size:15px;line-height:20px}
.leads b{font-weight:700}
.lbl{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-right:4px}
.slots{display:flex;flex-wrap:wrap;gap:6px}
.slot{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:6px;background:var(--surface-raised);font-size:13px;line-height:16px;font-weight:500;white-space:nowrap}
.slot.me{background:var(--highlight);font-weight:700}
.count{font-size:12px;line-height:16px;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.more{padding-top:0}
.more summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:var(--ink-muted)}
.more summary::-webkit-details-marker{display:none}
.more summary::before{content:"+";display:inline-block;width:12px;font-weight:300;font-size:18px}
.more[open] summary::before{content:"\2212"}
.hasnote{font-size:12px;font-weight:700;color:var(--title)}
.morebody{display:flex;flex-direction:column;gap:12px;padding-top:10px}
.note{background:var(--surface-raised);border-radius:var(--radius-sm);padding:10px 14px;font-size:15px;line-height:22px;white-space:pre-line;display:flex;flex-direction:column;gap:2px}
.note .eyebrow{color:var(--title)}
.facts{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0;font-size:15px;line-height:22px}
.facts div{display:contents}
.facts dt{font-size:11px;line-height:22px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.facts dd{margin:0;min-width:0;overflow-wrap:anywhere}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.actions:empty{display:none}

.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px;padding:48px 24px;background:var(--surface-alt);border-radius:var(--radius-md)}
.empty img{width:140px;height:auto;display:block}
.empty p{margin:0;font-size:22px;line-height:30px;font-weight:500}
.pastbtn{margin-top:32px}

/* Guide */
.guide{display:flex;flex-direction:column;gap:10px}
.guide details{background:var(--surface-alt);border-radius:var(--radius-md);padding:0 20px}
.guide summary{font-size:18px;line-height:26px;font-weight:500;padding:14px 0;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.guide summary::-webkit-details-marker{display:none}
.guide summary::after{content:"+";color:var(--ink-muted);font-weight:300}
.guide details[open] summary::after{content:"\2212"}
.guide ul{margin:0 0 16px;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.guide li{overflow-wrap:anywhere}
.guide a{font-weight:500;color:var(--title)}
.beliefs{background:var(--indigo);color:var(--linen);border-radius:var(--radius-md);padding:24px 20px;margin-bottom:6px;display:flex;flex-direction:column;gap:14px}
.beliefs .eyebrow{color:var(--neon-lime)}
.bintro{margin:0;font-size:20px;line-height:28px;font-weight:300}
.beliefs ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px}
.beliefs li{display:flex;flex-direction:column;gap:2px}
.beliefs li b{font-size:17px;line-height:24px;font-weight:700}
.beliefs li span{font-size:15px;line-height:22px;color:var(--fog)}
.tagline{margin-top:48px;text-align:center;color:var(--ink-muted);font-size:14px}

/* Crew roster */
.roster{display:flex;flex-direction:column;background:var(--surface-alt);border-radius:var(--radius-md);overflow:hidden}
.rrow{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name count" "full count";align-items:center;gap:0 12px;text-align:left;border:0;background:none;padding:12px 16px;border-bottom:1.5px solid var(--surface)}
.rrow:last-child{border-bottom:0}
.rname{grid-area:name;font-weight:700}
.rfull{grid-area:full;font-size:13px;color:var(--ink-muted)}
.rcount{grid-area:count;font-size:13px;color:var(--ink-muted);font-variant-numeric:tabular-nums}
.shiftlist{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.shiftlist .lbl{margin-left:6px}

/* Forms */
.panel{background:var(--surface-alt);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:16px;margin-bottom:20px}
.panel h3{font-size:20px;line-height:28px;font-weight:500;margin:0}
.form{display:flex;flex-direction:column;gap:16px}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label,.flabel{font-size:14px;line-height:20px;font-weight:500;color:var(--ink)}
.field input,.field textarea,.field select{width:100%;min-height:44px;border:1.5px solid var(--field-border);background:var(--surface-raised);border-radius:var(--radius-sm);padding:9px 14px;font-size:16px;color:var(--ink)}
.field input:disabled{opacity:.6}
.field textarea{min-height:88px;resize:vertical;line-height:22px}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}
.check{display:flex;gap:8px;align-items:center;font-size:15px;font-weight:500}
.check input{width:20px;height:20px;accent-color:var(--violet)}
.pickrow{display:flex;flex-wrap:wrap;gap:6px}
.toggle{height:32px;padding:0 12px;border-radius:var(--radius-pill);border:0;background:var(--surface-raised);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--hairline);font-size:14px;font-weight:500}
.toggle[aria-pressed="true"]{background:var(--action);color:var(--on-action);box-shadow:none;font-weight:700}
.formmore summary{cursor:pointer;font-weight:500;font-size:15px;padding:4px 0 8px}
.venue-row{display:flex;flex-direction:column;gap:10px;padding-bottom:16px;border-bottom:1.5px solid var(--hairline)}
.autofill{font-size:13px;line-height:18px;color:var(--title);font-weight:500}

/* Sheets */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:20;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--surface);width:100%;max-width:600px;max-height:92%;overflow:auto;border-radius:var(--radius-md) var(--radius-md) 0 0;padding:24px max(16px,env(safe-area-inset-left,0px)) calc(24px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:16px}
@media (min-width:700px){.scrim{align-items:center}.sheet{border-radius:var(--radius-md);max-height:88%;padding-inline:32px}}
.sheet h3{font-size:22px;line-height:30px;font-weight:700;margin:0}
.sheet p{margin:0}
.sheethead{display:flex;justify-content:space-between;align-items:center;gap:12px}
.close{border:0;background:var(--surface-alt);color:var(--ink);border-radius:var(--radius-pill);width:36px;height:36px;font-size:20px;line-height:1;flex:none}
.msg{background:var(--surface-alt);border-radius:var(--radius-sm);padding:12px 16px;white-space:pre-wrap;font-size:15px;line-height:22px;user-select:all;overflow-wrap:anywhere}
.phone{font-weight:700;font-variant-numeric:tabular-nums;user-select:all}
.sheetfoot{display:flex;gap:8px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--indigo);color:var(--linen);padding:10px 20px;border-radius:var(--radius-pill);font-weight:500;z-index:30;max-width:calc(100% - 32px);text-align:center}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]) .toast{background:var(--neon-lime);color:var(--indigo)} }
:root[data-theme="dark"] .toast{background:var(--neon-lime);color:var(--indigo)}
@media (prefers-reduced-motion:no-preference){.sheet,.toast{animation:fade .25s ease-out}@keyframes fade{from{opacity:0}to{opacity:1}}}
@media (max-width:400px){.ev{grid-template-columns:44px 1fr;gap:10px;padding:14px}.date{width:44px;height:44px}.date .day{font-size:18px;line-height:20px}.btn.join{padding:0 14px}.evtop h3{font-size:22px;line-height:28px}.logo{height:56px}}

/* Sign-in */
.login{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;text-align:center;padding-block:32px}
.login h1{font-size:32px;line-height:40px;font-weight:700;margin:0}
.login p{margin:0;color:var(--ink-muted);max-width:360px}
.login form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px;text-align:left}
.login .btn{width:100%}
.codeinput{letter-spacing:.4em;font-size:22px!important;text-align:center;font-variant-numeric:tabular-nums}
.err{color:var(--attention);font-size:14px;font-weight:500}
.loading{padding:64px 0;text-align:center;color:var(--ink-muted)}
.signout{margin-top:8px}
.stats{display:flex;gap:24px;flex-wrap:wrap}
.stat b{display:block;font-size:32px;line-height:36px;font-weight:700;color:var(--title)}
.stat span{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted)}
.inline{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.inline .field{flex:1;min-width:160px}
.rtag{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--title);margin-left:6px}
.reqbadge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--pink);color:var(--white);font-size:11px;font-weight:700;margin-left:6px}

/* Add to home screen tutorial */
.install{min-height:100vh;min-height:100dvh;background:var(--indigo);color:var(--linen);display:flex;justify-content:center;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));padding-block:calc(32px + env(safe-area-inset-top,0px)) calc(32px + env(safe-area-inset-bottom,0px))}
.install-in{width:100%;max-width:440px;display:flex;flex-direction:column;gap:20px}
.ilogo{height:40px;width:auto;align-self:flex-start;margin-bottom:8px}
.install .eyebrow{color:var(--neon-lime)}
.install h1{font-size:32px;line-height:38px;font-weight:700;margin:0;text-wrap:balance;color:var(--white)}
.isub{margin:0;font-size:17px;line-height:25px;color:var(--fog)}
.inote{margin:0;font-size:15px;line-height:22px;background:rgba(255,255,255,.08);border-radius:var(--radius-sm);padding:12px 14px;color:var(--white)}
.isteps{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.istep{display:grid;grid-template-columns:32px 1fr 44px;align-items:center;gap:14px;background:rgba(255,255,255,.06);border-radius:var(--radius-md);padding:14px 14px 14px 16px}
.inum{width:32px;height:32px;border-radius:50%;background:var(--neon-lime);color:var(--indigo);font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center}
.itext{display:flex;flex-direction:column;gap:2px;min-width:0}
.itext b{font-size:17px;line-height:23px;font-weight:700;color:var(--white)}
.itext span{font-size:14px;line-height:20px;color:var(--mist)}
.iicon{width:44px;height:44px;border-radius:12px;border:1.5px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center}
.iicon svg{width:24px;height:24px;fill:none;stroke:var(--white);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.iicon svg circle[r="1.2"]{fill:var(--white)}
.iactions{display:flex;flex-direction:column;align-items:stretch;gap:10px;margin-top:8px}
.iactions .btn{width:100%;height:50px;font-size:16px}
.install .btn.lime{background:var(--neon-lime);color:var(--indigo)}
#install-now{width:100%;height:50px;font-size:16px}
.ilink{background:none;border:0;color:var(--fog);font-size:15px;font-weight:500;padding:10px;cursor:pointer}
.itag{margin:auto 0 0;padding-top:24px;text-align:center;color:var(--mist);font-size:14px}

/* Brand bubble artwork has a white ground: multiply lets it sit on light surfaces without a box */
.empty img{mix-blend-mode:multiply}

/* ---------- v2: bottom tab bar ---------- */
.wrap{padding-bottom:calc(112px + env(safe-area-inset-bottom,0px))}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:15;background:var(--indigo);border-top:1px solid rgba(255,255,255,.08);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.tabbar-in{max-width:560px;margin:0 auto;display:flex}
.tabbar button{flex:1;min-width:0;border:0;background:none;color:var(--mist);display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 2px 8px;font-size:11px;line-height:14px;font-weight:500;-webkit-tap-highlight-color:transparent}
.tabbar button[aria-current="page"]{color:var(--neon-lime)}
.ticon{position:relative;width:28px;height:28px;display:flex;align-items:center;justify-content:center}
.ticon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tabbar button[aria-current="page"] .ticon svg{stroke-width:2.2}
.tlabel{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tbadge{position:absolute;top:-2px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--pink);color:var(--white);font-size:10px;line-height:16px;font-weight:700;text-align:center;box-shadow:0 0 0 2px var(--indigo)}
.tbadge:empty{min-width:10px;width:10px;height:10px;padding:0;top:0;right:-2px}
.toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
.appbar-in{padding-block:24px 20px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Welcome */
.welcome{display:flex;flex-direction:column;gap:10px;margin-bottom:28px}
.welcome h1{margin:0;font-size:30px;line-height:36px;font-weight:700;color:var(--title);text-wrap:balance}
.welcome > p{margin:0;font-size:16px;line-height:24px;color:var(--ink-muted)}
.wchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.wnote{display:flex;flex-direction:column;gap:2px;background:var(--surface-alt);border-radius:var(--radius-sm);padding:12px 14px;margin-top:4px}
.wnote .eyebrow{color:var(--title)}
.wnote p{margin:0;font-size:15px;line-height:22px;white-space:pre-line}

/* Segmented choice */
.seg{display:flex;background:var(--surface-raised);border-radius:var(--radius-pill);padding:4px;gap:4px;box-shadow:inset 0 0 0 1.5px var(--hairline)}
.seg button{flex:1;border:0;background:none;height:36px;border-radius:var(--radius-pill);font-size:14px;font-weight:500;color:var(--ink)}
.seg button[aria-pressed="true"]{background:var(--action);color:var(--on-action);font-weight:700}

/* Home screen notice on Profile */
.hsnotice{background:var(--indigo);color:var(--linen);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.hsnotice .eyebrow{color:var(--neon-lime)}
.hsnotice h3{margin:0;font-size:22px;line-height:28px;font-weight:700;color:var(--white)}
.hsnotice > p{margin:0;color:var(--fog);font-size:15px;line-height:22px}
.hsnotice .seg{background:rgba(255,255,255,.08);box-shadow:none}
.hsnotice .seg button{color:var(--fog)}
.hsnotice .seg button[aria-pressed="true"]{background:var(--neon-lime);color:var(--indigo)}
.btn.lime{background:var(--neon-lime);color:var(--indigo)}
.ministeps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ministeps li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start}
.ministeps .inum{width:28px;height:28px;font-size:14px}
.ministeps b{display:block;font-size:16px;line-height:22px;color:var(--white)}
.ministeps span:not(.inum){display:block;font-size:14px;line-height:20px;color:var(--mist)}
.hscheck{background:rgba(255,255,255,.08);border-radius:var(--radius-sm);padding:12px 14px;color:var(--white)}
.hscheck input{accent-color:var(--neon-lime)}

/* Feedback and inbox */
.fbintro{font-size:15px;line-height:22px}
.fblist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.fblist li{display:flex;flex-direction:column;gap:4px;padding-bottom:14px;border-bottom:1.5px solid var(--surface)}
.fblist li:last-child{border-bottom:0;padding-bottom:0}
.fblist p,.fbitem p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.fbmeta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px}
.fbkind{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--highlight);color:var(--ink)}
.fbkind.idea{background:var(--neon-lime);color:var(--indigo)}
.fbkind.question{background:var(--lavender);color:var(--indigo)}
.fbstatus{margin-left:auto;font-size:12px;font-weight:700;color:var(--ink-muted)}
.fbitem{background:var(--surface-alt);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:10px}
.fbitem.done{opacity:.7}

/* Roster search and invite link */
.searchbar{position:relative;margin-bottom:12px}
.searchbar input{width:100%;height:46px;border:1.5px solid var(--field-border);background:var(--surface-raised);border-radius:var(--radius-pill);padding:0 16px 0 44px;font-size:16px;color:var(--ink);-webkit-appearance:none;appearance:none}
.sicon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--ink-muted);pointer-events:none}
.sicon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.rrow[hidden]{display:none}
.rnone{margin:0;padding:16px;color:var(--ink-muted);text-align:center}
.rtag.minor{color:var(--pink)}
.linkbox{background:var(--surface-raised);border-radius:var(--radius-sm);padding:10px 14px;font-size:14px;line-height:20px;font-weight:500;overflow-wrap:anywhere;user-select:all}
.pdetails{background:var(--surface-alt);border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.pdetails .eyebrow{color:var(--title)}

/* Sign-up */
.pinkeye{color:var(--pink)}
.login form .row{grid-template-columns:1fr 1fr}

/* Date fields: stop iPhone Safari from widening them over the next field */
.field input[type="date"]{-webkit-appearance:none;appearance:none;display:block;min-width:0;max-width:100%;text-align:left;line-height:24px}
.field input[type="date"]::-webkit-date-and-time-value{text-align:left}
.row > *{min-width:0}

/* Finish your profile: one question at a time */
.onb{min-height:100vh;min-height:100dvh;background:var(--indigo);color:var(--linen);display:flex;justify-content:center;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));padding-block:calc(16px + env(safe-area-inset-top,0px)) calc(32px + env(safe-area-inset-bottom,0px))}
.onb-in{width:100%;max-width:520px;display:flex;flex-direction:column}
.onb-top{display:grid;grid-template-columns:40px 1fr 52px;align-items:center;gap:12px;height:48px}
.onb-back{width:40px;height:40px;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:var(--white);display:flex;align-items:center;justify-content:center}
.onb-back[hidden]{display:flex!important;visibility:hidden}
.onb-back svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.onb-bar{height:6px;border-radius:999px;background:rgba(255,255,255,.14);overflow:hidden}
.onb-bar span{display:block;height:100%;background:var(--neon-lime);border-radius:999px;transition:width .45s cubic-bezier(.2,.8,.2,1)}
.onb-count{font-size:13px;font-weight:500;color:var(--mist);text-align:right;font-variant-numeric:tabular-nums}
.onb-q{flex:1;display:flex;flex-direction:column;justify-content:center;gap:16px;padding-block:32px 15vh}
.onb-q form{display:flex;flex-direction:column;gap:16px}
.onb-logo{height:44px;width:auto;align-self:flex-start;margin-bottom:12px}
.onb .eyebrow{color:var(--neon-lime)}
.onb h1,.onb-label{margin:0;font-size:32px;line-height:40px;font-weight:700;color:var(--white);text-wrap:balance}
.onb-sub{margin:0;font-size:17px;line-height:25px;color:var(--fog)}
.onb-input{width:100%;background:transparent;border:0;border-bottom:2px solid rgba(255,255,255,.35);border-radius:0;color:var(--white);font-size:26px;line-height:34px;padding:10px 0;margin-top:8px;-webkit-appearance:none;appearance:none;min-width:0;color-scheme:dark}
.onb-input::placeholder{color:rgba(255,255,255,.3)}
.onb-input:focus{outline:none;border-bottom-color:var(--neon-lime)}
.onb-input[type="date"]{min-height:56px;text-align:left}
.onb-input::-webkit-date-and-time-value{text-align:left}
.onb-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}
.onb-choices button{height:56px;border-radius:var(--radius-md);border:1.5px solid rgba(255,255,255,.3);background:transparent;color:var(--white);font-size:18px;font-weight:700}
.onb-choices button[aria-pressed="true"]{background:var(--neon-lime);border-color:var(--neon-lime);color:var(--indigo)}
.onb-actions{display:flex;gap:12px;align-items:center;margin-top:8px}
.btn.big{height:52px;padding:0 32px;font-size:17px}
.onb .err{color:#ff8fb8}
@media (prefers-reduced-motion:no-preference){
  .onb-q.fwd{animation:qin .42s cubic-bezier(.2,.8,.2,1) both}
  .onb-q.back{animation:qback .42s cubic-bezier(.2,.8,.2,1) both}
  @keyframes qin{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
  @keyframes qback{from{opacity:0;transform:translateY(-28px)}to{opacity:1;transform:none}}
  .welcome{animation:fade .4s ease-out}
}

/* ---------- v2.1: waitlist, Today's Event, hours, surveys, who's online, venue search ---------- */
.textlink.small{font-size:13px}
.standby{display:inline-flex;align-items:center;gap:6px;margin-top:2px}
.infobtn{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--ink-muted);background:none;color:var(--ink-muted);font-size:12px;line-height:1;font-weight:700;font-style:italic;font-family:Georgia,serif;display:inline-flex;align-items:center;justify-content:center;padding:0}
.btn.wait{height:38px;padding:0 18px;font-size:14px;background:var(--lavender);color:var(--indigo)}
.rkind{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:999px;margin-left:6px;background:var(--lavender);color:var(--indigo);vertical-align:2px}
.rkind.oncall{background:var(--neon-lime)}
.due{color:var(--pink)}
.myshift,.hoursline{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px;line-height:20px;color:var(--ink-muted)}
.myshift{background:var(--surface-raised);border-radius:var(--radius-sm);padding:10px 12px}
.hoursline{padding-top:8px;border-top:1.5px solid var(--hairline)}

/* Floating "Today's Event" pill */
.todo-pill{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:16;display:inline-flex;align-items:center;gap:8px;height:48px;padding:0 22px 0 18px;border:0;border-radius:999px;background:var(--pink);color:var(--white);font-size:16px;font-weight:700;white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;box-shadow:0 0 0 0 rgba(234,51,122,.6),0 6px 22px rgba(234,51,122,.45)}
.todo-pill span:first-of-type{overflow:hidden;text-overflow:ellipsis}
.todo-pill svg{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.tcount{flex:none;min-width:22px;height:22px;border-radius:999px;background:var(--white);color:var(--pink);font-size:12px;display:inline-flex;align-items:center;justify-content:center;padding:0 6px}
@media (prefers-reduced-motion:no-preference){.todo-pill{animation:pillglow 1.8s ease-in-out infinite}@keyframes pillglow{0%,100%{box-shadow:0 0 0 0 rgba(234,51,122,.55),0 6px 18px rgba(234,51,122,.4)}50%{box-shadow:0 0 0 10px rgba(234,51,122,0),0 6px 30px rgba(234,51,122,.7)}}}
.todo-pill ~ .tabbar{}
body:has(.todo-pill) .wrap{padding-bottom:calc(176px + env(safe-area-inset-bottom,0px))}
body:has(.todo-pill) .toast{bottom:calc(136px + env(safe-area-inset-bottom,0px))}

/* Shift screen */
.backlink{display:inline-flex;align-items:center;gap:4px;border:0;background:none;padding:4px 0;margin-bottom:12px;font-size:15px;font-weight:500;color:var(--ink)}
.backlink svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.shifthead{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.shifthead .eyebrow{color:var(--pink)}
.shifthead h1{margin:0;font-size:34px;line-height:40px;font-weight:700;color:var(--title)}
.shiftsub{margin:0;color:var(--ink-muted)}
.shiftsub a{color:var(--title);font-weight:500}
.shiftlead{margin:0;font-size:15px}
.clockrow{display:grid;grid-template-columns:auto minmax(118px,1fr) auto;gap:10px;align-items:center}
.clockrow label{font-size:14px;font-weight:500}
.clockrow input{width:100%;min-width:0;min-height:44px;border:1.5px solid var(--field-border);background:var(--surface-raised);border-radius:var(--radius-sm);padding:8px 12px;font-size:17px;color:var(--ink);-webkit-appearance:none;appearance:none}
.clockrow .btn{min-width:0;padding:0 16px}
.clockrow label{white-space:nowrap}
.clockline{margin:0;font-size:17px}
.okline{margin:0;font-weight:700;color:#14915f}
.recapcard .btn.join{animation:none}
.btn:disabled{opacity:.45}

/* Survey runner extras (reuses the onboarding screen) */
.sv-opts{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.sv-opts.two{flex-direction:row}
.sv-opts.two button{flex:1}
.sv-opts button{min-height:56px;padding:12px 18px;border-radius:var(--radius-md);border:1.5px solid rgba(255,255,255,.3);background:transparent;color:var(--white);font-size:17px;font-weight:500;text-align:left;line-height:22px}
.sv-opts.two button{text-align:center;font-weight:700}
.sv-opts button[aria-pressed="true"]{background:var(--neon-lime);border-color:var(--neon-lime);color:var(--indigo);font-weight:700}
.sv-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:8px}
.sv-scale button{height:60px;border-radius:var(--radius-md);border:1.5px solid rgba(255,255,255,.3);background:transparent;color:var(--white);font-size:22px;font-weight:700}
.sv-scale button[aria-pressed="true"]{background:var(--neon-lime);border-color:var(--neon-lime);color:var(--indigo)}
.onb-area{font-size:19px;line-height:28px;resize:none;border:2px solid rgba(255,255,255,.25);border-radius:var(--radius-md);padding:12px 14px}
.onb-area:focus{border-color:var(--neon-lime)}
.onb-sub.small{font-size:14px}
.opt{font-weight:400;font-size:18px;color:var(--mist)}

/* Inbox */
.ihead{display:flex;align-items:center;gap:8px;font-size:18px;line-height:26px;font-weight:700;margin:8px 0 10px}
.icount{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--pink);color:var(--white);font-size:12px;display:inline-flex;align-items:center;justify-content:center}
.ilist{margin-bottom:28px}
.fbkind.recap{background:var(--mint);color:var(--indigo)}
.answers{margin:0;display:flex;flex-direction:column;gap:8px}
.answers div{display:flex;flex-direction:column}
.answers dt{font-size:13px;line-height:18px;color:var(--ink-muted)}
.answers dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}

/* Survey builder and results */
.svlist{display:flex;flex-direction:column;gap:12px}
.svrow{display:flex;flex-direction:column;gap:8px;padding-bottom:12px;border-bottom:1.5px solid var(--surface)}
.svrow > div:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.svrow .hint{flex-basis:100%}
.qcard{background:var(--surface-alt);border-radius:var(--radius-md);padding:14px;display:flex;flex-direction:column;gap:12px}
.qhead{display:flex;justify-content:space-between;align-items:center}
.qtools{display:flex;gap:6px}
.iconbtn{width:34px;height:34px;border-radius:50%;border:0;background:var(--surface-raised);color:var(--ink);font-size:16px;font-weight:700}
.iconbtn:disabled{opacity:.35}
.iconbtn.danger{color:var(--pink)}
.tally{display:flex;flex-direction:column;gap:6px;background:var(--surface-alt);border-radius:var(--radius-sm);padding:12px 14px}
.trow{display:grid;grid-template-columns:minmax(0,1.3fr) 2fr 28px;gap:10px;align-items:center;font-size:14px}
.tlab{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbar{height:10px;border-radius:999px;background:var(--surface-raised);overflow:hidden}
.tbar i{display:block;height:100%;background:var(--violet);border-radius:999px}
.tnum{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.hrow{display:flex;flex-direction:column;gap:8px;padding-bottom:14px;border-bottom:1.5px solid var(--hairline)}
.hname{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hrow input[type=time]{-webkit-appearance:none;appearance:none;min-width:0}

/* Who's online, activity */
.onlinebar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;min-height:28px}
.olabel{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-right:2px}
.opill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;background:var(--surface-alt);font-size:13px;font-weight:700}
.otab{font-weight:400;color:var(--ink-muted)}
.odot{width:8px;height:8px;border-radius:50%;background:#1fc77e;display:inline-block;box-shadow:0 0 0 3px rgba(31,199,126,.2)}
.rrow .odot{display:none;margin-right:6px;vertical-align:1px}
.rrow.on .odot{display:inline-block}
.rrow{grid-template-areas:"name count" "full count" "seen count"}
.rseen{grid-area:seen;font-size:12px;line-height:16px;color:var(--ink-muted)}
.rrow.on .rseen{color:#14915f;font-weight:500}
.sortbar{margin-bottom:12px}
.live{color:#14915f}

/* Venue search */
.vwrap{position:relative}
.suggbox{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--surface-raised);border-radius:var(--radius-sm);box-shadow:0 8px 28px rgba(29,25,78,.18),inset 0 0 0 1.5px var(--hairline);overflow:hidden;max-height:300px;overflow-y:auto}
.sugg{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;border:0;background:none;text-align:left;padding:10px 14px;border-bottom:1px solid var(--hairline)}
.sugg:last-child{border-bottom:0}
.sugg b{font-size:15px;font-weight:700}
.sugg span{font-size:13px;color:var(--ink-muted)}
.savedtag{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--title)}
.pastlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.pastlist button{width:100%;text-align:left;border:0;background:none;padding:10px 0;border-bottom:1.5px solid var(--surface);display:flex;flex-direction:column;gap:2px;color:var(--ink)}
.pastlist li:last-child button{border-bottom:0}
.pl-sub{font-size:13px;color:var(--ink-muted)}

/* Google usage alert */
.gbanner{background:#fff4d6;color:var(--indigo);border-radius:var(--radius-sm);padding:12px 14px;font-size:14px;line-height:20px;margin-bottom:16px;box-shadow:inset 0 0 0 1.5px #e8a400}
.gbanner.hot{background:#ffe3ee;box-shadow:inset 0 0 0 1.5px var(--pink)}

/* Crew changes */
.flagged{text-decoration:line-through;text-decoration-color:var(--pink);text-decoration-thickness:2px}
.slot.flagged{box-shadow:inset 0 0 0 1.5px var(--pink)}
.cants{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1.5px solid var(--hairline)}
.cant{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:14px;line-height:20px}
.cant b{color:var(--pink)}
.cants.mine{font-size:14px;line-height:20px;color:var(--pink);font-weight:500}
.fbkind.cant{background:var(--pink);color:var(--white)}
.fbkind.left{background:var(--lavender);color:var(--indigo)}

/* Date wheel: scroll month, day, year */
.dwheel{position:relative;display:grid;grid-template-columns:1.5fr .8fr 1.1fr;height:200px;border-radius:var(--radius-md);background:var(--surface-raised);box-shadow:inset 0 0 0 1.5px var(--field-border);overflow:hidden;user-select:none;-webkit-user-select:none;max-width:420px}
.dwband{position:absolute;left:8px;right:8px;top:80px;height:40px;border-radius:10px;background:var(--surface-alt);pointer-events:none}
.dwcol{position:relative;z-index:1;height:200px;overflow-y:scroll;scroll-snap-type:y mandatory;padding:80px 0;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent);mask-image:linear-gradient(transparent,#000 30%,#000 70%,transparent)}
.dwcol::-webkit-scrollbar{display:none}
.dwcol:focus-visible{outline:none}
.dwi{height:40px;line-height:40px;text-align:center;scroll-snap-align:center;font-size:18px;color:var(--ink-muted);cursor:pointer;white-space:nowrap;font-variant-numeric:tabular-nums}
.dwi.on{color:var(--ink);font-weight:700}
.dwi.off{opacity:.25}
.dwheel.blank .dwi.on{color:var(--ink-muted);font-weight:400}
.dwnote{display:block;font-size:13px;color:var(--ink-muted);margin-top:6px}
.onb-wheel{margin-top:12px}
.onb .dwheel{background:rgba(255,255,255,.06);box-shadow:none;max-width:none}
.onb .dwband{background:rgba(255,255,255,.12)}
.onb .dwi{color:rgba(255,255,255,.4)}
.onb .dwi.on{color:var(--white)}
.onb .dwheel.blank .dwi.on{color:rgba(255,255,255,.55)}
.onb .dwnote{color:var(--mist)}

/* Pay */
.paybox{display:flex;flex-direction:column;gap:8px;background:var(--surface-alt);border-radius:var(--radius-sm);padding:12px 14px}
.row.three{grid-template-columns:1fr 1fr .8fr}
.adj summary{cursor:pointer;font-size:14px;font-weight:500;color:var(--ink-muted);padding:2px 0}
.adj .row{margin-top:8px}
.paycalc{margin:0;font-size:15px;line-height:21px}
.paycalc b{font-size:18px;margin-right:4px}
.paytotal{margin:8px 0 0;font-size:16px;text-align:right}
.payline{margin:6px 0 0;font-size:15px}
.paidtag{color:#14915f}
.paysum{background:var(--indigo);color:var(--linen);border-radius:var(--radius-md);padding:18px 20px;display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.paysum .eyebrow{color:var(--neon-lime)}
.paysum .hint{color:var(--fog)}
.paysum .btn.ghost{color:var(--white);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.4);align-self:flex-start;margin-top:6px}
.paysum .textlink.due{color:#ff8fb8}
.paybig{margin:0;font-size:40px;line-height:46px;font-weight:700;color:var(--white)}
.payrange{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.payperson{background:var(--surface-alt);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:10px}
.pphead{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.ppamt{display:flex;flex-direction:column;align-items:flex-end}
.ppamt b{font-size:20px}
.pplines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.pplines li{display:flex;justify-content:space-between;gap:10px;font-size:14px;line-height:20px;padding-top:8px;border-top:1.5px solid var(--surface)}
.ppl{display:flex;flex-direction:column;align-items:flex-end;font-weight:700;white-space:nowrap}
.yearrep{margin-top:28px}
.yrlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.yrlist li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1.5px solid var(--surface)}
.rtag.due{color:var(--pink)}
.rtag.needs{color:var(--pink)}
.seg.wrap{flex-wrap:wrap;border-radius:var(--radius-md)}
.seg.wrap button{flex:1 0 30%}
.toggle.needs{box-shadow:inset 0 0 0 1.5px var(--pink)}
.toggle i{font-style:normal;color:var(--pink);font-weight:700}
.toggle[aria-pressed="true"] i{color:var(--neon-lime)}

/* Apply */
.filepick{display:flex;align-items:center;justify-content:center;min-height:72px;border:2px dashed rgba(255,255,255,.35);border-radius:var(--radius-md);color:var(--white);font-size:17px;font-weight:500;cursor:pointer;margin-top:8px;padding:12px}
.filepick input{position:absolute;opacity:0;width:1px;height:1px}
.onb-input + .onb-input{margin-top:4px}
.applicant .actions{align-items:center}

/* Moving Goobers off a crew */
.crewbtn{border:0;font:inherit;color:inherit;cursor:pointer}
.crewbtn.lead{background:none;padding:0;font-weight:700;text-decoration:underline;text-decoration-color:var(--hairline);text-underline-offset:3px}
.slot.crewbtn{background:var(--surface-alt)}
.crewhint{font-size:12px}
.menulist{display:flex;flex-direction:column;gap:8px}
.menuitem{display:flex;flex-direction:column;gap:2px;text-align:left;border:0;background:var(--surface-alt);border-radius:var(--radius-sm);padding:12px 14px;color:var(--ink);text-decoration:none;font:inherit;cursor:pointer}
.menuitem b{font-size:16px}
.menuitem span{font-size:13px;color:var(--ink-muted)}
.bumplead{font-weight:700}
.bumplist{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:15px;line-height:22px}
.carebox{background:#ffe3ee;color:var(--indigo);border-radius:var(--radius-sm);padding:12px 14px;font-size:15px;line-height:22px}
.btn.danger{background:var(--pink);color:var(--white)}
.noticemsg{white-space:pre-line;font-size:16px;line-height:24px}

/* Consent */
.consentlist{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:22px}
.onb-consent{background:rgba(255,255,255,.06);border-radius:var(--radius-md);padding:14px 16px}
.onb-consent .consentlist{color:var(--fog)}
.onb-consent .hint{color:var(--mist)}

/* ---------- Growth: the six attributes and the web ---------- */
.growhero{background:var(--indigo);color:var(--linen);border-radius:var(--radius-md);padding:22px 18px;display:flex;flex-direction:column;gap:12px;margin-bottom:20px}
.growhero .eyebrow{color:var(--neon-lime)}
.growhero h1{margin:0;font-size:30px;line-height:36px;font-weight:700;color:var(--white);text-wrap:balance}
.growhero > p{margin:0;color:var(--fog);font-size:16px;line-height:24px}
.growhero .radar{align-self:center}
.growhero .lbl{color:var(--mist);margin:4px 0 -4px}
.ghead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.infobtn.light{border-color:var(--fog);color:var(--fog);width:26px;height:26px;font-size:14px;flex:none}
.gchips{display:flex;flex-wrap:wrap;gap:6px}
.gchips span{font-size:14px;font-weight:700;padding:5px 12px;border-radius:999px;background:rgba(228,254,82,.16);color:var(--neon-lime)}
.panel .gchips span,.gabout .gchips span{background:var(--surface-raised);color:var(--ink)}
.gchips.good span{box-shadow:inset 0 0 0 1.5px var(--mint)}
.gchips.grow span{box-shadow:inset 0 0 0 1.5px var(--pink)}
.gabout{gap:10px}
.gabout .lbl{margin:0}
.ghow{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:22px;color:var(--fog)}
.ghow b{color:var(--white)}
.ghow.dark{color:var(--ink)}
.ghow.dark b{color:var(--ink)}
.growcta{background:var(--pink);color:var(--white);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.growcta h3{margin:0;font-size:22px;line-height:28px}
.growcta p{margin:0;font-size:15px;line-height:22px}
.growcta .btn{align-self:flex-start;margin-top:4px}
.radar{width:100%;max-width:320px;height:auto;display:block}
.radar .rg{fill:none;stroke:rgba(255,255,255,.14);stroke-width:1}
.radar .rs{stroke:rgba(255,255,255,.14);stroke-width:1}
.radar .rp-now{fill:rgba(228,254,82,.22);stroke:var(--neon-lime);stroke-width:2.5;stroke-linejoin:round}
.radar .rp-start{fill:rgba(201,171,224,.14);stroke:var(--lavender);stroke-width:2;stroke-linejoin:round}
.radar .rp-self{fill:rgba(234,51,122,.16);stroke:var(--pink);stroke-width:2;stroke-linejoin:round}
.radar .rl{fill:var(--fog);font-size:12px;font-weight:700;letter-spacing:.08em;font-family:var(--font-sans)}
.radar .rv{fill:var(--neon-lime);font-size:16px;font-weight:700;font-family:var(--font-sans)}
@media (prefers-reduced-motion:no-preference){.radar .rp-now{animation:webin .7s cubic-bezier(.2,.8,.2,1) both;transform-origin:160px 160px}@keyframes webin{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}}
.rlegend{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;font-size:12px;color:var(--fog)}
.lg{display:inline-flex;align-items:center;gap:6px}
.lg::before{content:"";width:12px;height:12px;border-radius:3px;background:rgba(228,254,82,.3);box-shadow:inset 0 0 0 2px var(--neon-lime)}
.lg.start::before{background:rgba(201,171,224,.25);box-shadow:inset 0 0 0 2px var(--lavender)}
.lg.self::before{background:rgba(234,51,122,.25);box-shadow:inset 0 0 0 2px var(--pink)}
.legendlist{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}
.legendlist li{display:flex;gap:10px;align-items:flex-start}
.sw{flex:none;width:18px;height:18px;border-radius:4px;margin-top:3px}
.sw.now{background:rgba(228,254,82,.5);box-shadow:inset 0 0 0 2px #9db800}
.sw.start{background:rgba(201,171,224,.4);box-shadow:inset 0 0 0 2px var(--lavender)}
.sw.self{background:rgba(234,51,122,.3);box-shadow:inset 0 0 0 2px var(--pink)}
.gnote{margin:0;text-align:center;color:var(--mist);font-size:13px;line-height:18px}
.gfocus .eyebrow{color:var(--pink)}
.gfocus h3{margin-top:-8px}
.gfocus > .hint{margin-top:-8px}
.gnext,.gtip{background:var(--surface-raised);border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.gnext p,.gtip p{margin:0;font-size:16px;line-height:23px;font-weight:500}
.gtip{background:var(--indigo);color:var(--linen)}
.gtip .lbl{color:var(--neon-lime)}
.gtip.alt{background:var(--surface-raised);color:var(--ink)}
.gtip.alt .lbl{color:var(--ink-muted)}
.ihead{margin:24px 0 10px}
.glist,.gpicks{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.gpicks{margin:0}
.grow-row{display:flex;align-items:center;gap:14px;text-align:left;border:0;background:var(--surface-alt);border-radius:var(--radius-md);padding:14px 16px;color:var(--ink);font:inherit;cursor:pointer;width:100%}
.grow-row[aria-pressed="true"]{box-shadow:inset 0 0 0 2px var(--action)}
.gr-score{flex:none;width:48px;height:48px;border-radius:12px;background:var(--indigo);color:var(--neon-lime);font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.gr-score.none{color:var(--mist)}
.gr-text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.gr-text b{font-size:17px}
.gr-text span{font-size:14px;line-height:20px;color:var(--ink-muted)}
.gacc{background:var(--surface-alt);border-radius:var(--radius-md)}
.gacc > summary{display:flex;align-items:center;gap:14px;padding:14px 16px;cursor:pointer;list-style:none}
.gacc > summary::-webkit-details-marker,.gq > summary::-webkit-details-marker,.beliefs > summary::-webkit-details-marker{display:none}
.gacc > summary::after{content:"";flex:none;width:9px;height:9px;border-right:2px solid var(--ink-muted);border-bottom:2px solid var(--ink-muted);transform:rotate(45deg);margin:0 4px 4px 0;transition:transform .2s}
.gacc[open] > summary::after{transform:rotate(-135deg);margin-bottom:-4px}
.gacc-body{padding:0 12px 12px;display:flex;flex-direction:column;gap:8px}
.gq{background:var(--surface-raised);border-radius:var(--radius-sm)}
.gq > summary{list-style:none;cursor:pointer;padding:12px 14px;font-weight:700;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--title)}
.gq > summary::after{content:"+";font-size:20px;line-height:1;font-weight:500}
.gq[open] > summary::after{content:"–"}
.gq-body{padding:0 14px 12px}
.gq-body .lbl{display:block;margin:4px 0 6px}
@media (prefers-reduced-motion:no-preference){.gacc[open] .gacc-body,.gq[open] .gq-body{animation:fade .25s ease-out}}
.gfoot{display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:12px}
.gtips,.gsigs,.gread{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:8px}
.gtips li{background:var(--surface-alt);border-radius:var(--radius-sm);padding:10px 12px;font-size:15px;line-height:22px}
.gsigs li{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;font-size:15px;line-height:21px;padding-bottom:8px;border-bottom:1.5px solid var(--hairline)}
.gsigs li:last-child{border-bottom:0}
.gsigs li span{display:flex;flex-direction:column;gap:2px}
.gsigs i{font-style:normal;font-size:13px;color:var(--ink-muted)}
.mk{flex:none;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--mint);color:var(--indigo)}
.mk.not_yet{background:var(--lavender)}
.gread li{display:flex;flex-direction:column;gap:2px;font-size:15px;line-height:21px;padding-bottom:8px;border-bottom:1.5px solid var(--hairline)}
.sheet .growhero{margin-bottom:16px}
/* the review runner and "tell us about yourself" */
.gr-mean{margin-top:-8px}
.grlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}
.grlist li{display:flex;flex-direction:column;gap:8px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.12)}
.grlist p{margin:0;color:var(--white);font-size:17px;line-height:24px;font-weight:500}
.grhere{font-size:13px;color:var(--mist);margin-top:-4px}
.grseg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.grseg.three{grid-template-columns:1fr 1fr 1.25fr}
.grseg button{min-height:44px;padding:0 6px;border-radius:999px;border:1.5px solid rgba(255,255,255,.3);background:transparent;color:var(--white);font-size:15px;font-weight:700;line-height:18px}
.grseg button[data-v="met"][aria-pressed="true"]{background:var(--neon-lime);border-color:var(--neon-lime);color:var(--indigo)}
.grseg button[data-v="not_yet"][aria-pressed="true"]{background:var(--lavender);border-color:var(--lavender);color:var(--indigo)}
.grseg button[data-v="skip"][aria-pressed="true"]{background:var(--white);border-color:var(--white);color:var(--indigo)}
.btn.waiting{opacity:.45}
.onb-q:has(.grlist),.onb-q:has(.onb-chips){justify-content:flex-start;padding-bottom:48px}
.onb .sv-opts button,.onb-chips button{border-radius:var(--radius-md);border:1.5px solid rgba(255,255,255,.3);background:transparent;color:var(--white);font-size:17px;font-weight:700}
.onb .sv-opts button{min-height:56px;text-align:left;padding:0 18px}
.onb .sv-opts button[aria-pressed="true"],.onb-chips button[aria-pressed="true"]{background:var(--neon-lime);border-color:var(--neon-lime);color:var(--indigo)}
.onb-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.onb-chips button{border-radius:999px;padding:10px 16px;font-size:16px}
.onb-terms{margin:4px 0 0;color:var(--mist);font-size:14px}
.onb-terms .textlink{color:var(--white);font-size:14px}
/* captains */
.crewrev{display:flex;flex-direction:column}
.crow{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1.5px solid var(--surface)}
.crow .actions{align-items:center}
/* admins */
.ideas,.vlog{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ideas li{background:var(--surface-raised);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.ideas p{margin:0}
.vlog li{font-size:14px;line-height:20px}
.sigblock{border:1.5px solid var(--hairline);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.sighead{display:flex;align-items:baseline;gap:6px}
/* terms */
.terms h4{margin:16px 0 4px;font-size:16px}
.terms p{margin:0;font-size:15px;line-height:22px}
/* What we believe, collapsible */
details.beliefs{display:block}
details.beliefs > summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center}
details.beliefs > summary::after{content:"+";font-size:22px;font-weight:500;letter-spacing:0}
details.beliefs[open] > summary::after{content:"–"}
details.beliefs[open] ol{margin-top:14px}
/* What we believe stays deep purple even though it now opens and closes */
.guide details.beliefs{background:var(--indigo);color:var(--linen);padding:20px}
.guide details.beliefs > summary{padding:0;font-size:12px;line-height:16px;font-weight:700;color:var(--neon-lime)}
.guide details.beliefs > summary::after{color:var(--neon-lime);font-size:22px;font-weight:400}
.guide details.beliefs ol{padding-left:0}
.guide details.beliefs li span{color:var(--fog)}
/* Growth: we're on your team */
.gcommit{margin:0;font-size:15px;line-height:22px;font-weight:700;color:var(--neon-lime)}
.growhero .gcommit{color:var(--neon-lime)}
.vbox{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1.5px solid var(--hairline)}
/* Settings menu, like a phone's settings list */
.setmenu{display:flex;flex-direction:column;background:var(--surface-alt);border-radius:var(--radius-md);overflow:hidden;margin-bottom:20px}
.setrow{display:flex;align-items:center;gap:12px;border:0;background:none;text-align:left;padding:16px 18px;color:var(--ink);font:inherit;cursor:pointer;border-bottom:1.5px solid var(--surface)}
.setrow:last-child{border-bottom:0}
.setrow > span:first-child{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
.setrow b{font-size:17px;font-weight:700}
.setrow > span:first-child span{font-size:14px;line-height:20px;color:var(--ink-muted)}
.chev{flex:none;width:9px;height:9px;border-right:2px solid var(--ink-muted);border-bottom:2px solid var(--ink-muted);transform:rotate(-45deg)}
/* Test the Goober app */
.testbar{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--neon-lime);color:var(--indigo);padding:calc(8px + env(safe-area-inset-top,0px)) 14px 8px;font-size:14px;line-height:18px;box-shadow:0 2px 12px rgba(0,0,0,.25)}
.testbar i{font-style:normal;opacity:.7;margin-left:4px}
.testbar button{flex:none;border:0;border-radius:999px;background:var(--indigo);color:var(--white);font-weight:700;font-size:14px;padding:8px 14px}
body.testing{padding-top:48px}
.tprogress{height:8px;border-radius:999px;background:var(--surface-raised);overflow:hidden}
.tprogress span{display:block;height:100%;background:var(--mint);border-radius:999px}
.tready{margin:0;font-weight:700}
.tready.yes{color:#14915f}
.tlist{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.tflow{background:var(--surface-alt);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:8px;border-left:5px solid var(--hairline)}
.tflow.approved{border-left-color:var(--mint)}
.tflow.changes{border-left-color:var(--pink)}
.tf-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.tf-top b{font-size:17px}
.tchip{flex:none;font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 9px;border-radius:999px;background:var(--surface-raised);color:var(--ink-muted);white-space:nowrap}
.tchip.approved{background:var(--mint);color:var(--indigo)}
.tchip.changes{background:var(--pink);color:var(--white)}
.tjust{font-size:20px;font-weight:700;margin:0 0 6px}
.tnotes{list-style:none;margin:12px 0;padding:0;display:flex;flex-direction:column;gap:10px}
.tnotes li{background:var(--surface-alt);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.tnotes li p{margin:0}
.tnotes li.fixed{opacity:.6}
.tn-meta{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.tkind{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 8px;border-radius:999px;background:var(--surface-raised)}
.tkind.approve{background:var(--mint);color:var(--indigo)}
.tkind.change{background:var(--pink);color:var(--white)}
/* Pay: tap a shift to edit it; notes log */
.ppedit{display:flex;justify-content:space-between;gap:12px;width:100%;border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}
.ppedit-l{display:block;font-size:12px;font-weight:700;color:var(--title);text-decoration:underline;text-underline-offset:3px;margin-top:2px}
.ppnote{display:block;margin-top:4px;font-size:13px;line-height:18px;background:var(--surface-raised);border-radius:8px;padding:4px 8px;color:var(--ink)}
.ppnote i{font-style:normal;color:var(--ink-muted)}
.snotes{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.snotes li{background:var(--surface-raised);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.snotes li.auto{background:transparent;box-shadow:inset 0 0 0 1.5px var(--hairline)}
.snotes li p{margin:0;font-size:14px;line-height:20px}
.snotes li.more{background:none;padding:0 2px}
.notebox{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;border-top:1.5px solid var(--hairline)}
.notebox .chip{font-size:13px}
.paidbox{background:#e6f9f0;color:var(--indigo);border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.paidbox p{margin:0}
.paidbox .hint{color:var(--slate)}
.paidbox .btn{align-self:flex-start}
.ev.flash{animation:flash 1.6s ease-out}
@keyframes flash{0%,40%{box-shadow:0 0 0 4px var(--pink)}100%{box-shadow:0 0 0 0 transparent}}
/* Point of contact (admins and that event's captains) */
.evcontact{background:var(--surface-raised);border-radius:var(--radius-sm);padding:12px 14px;display:flex;flex-direction:column;gap:6px;margin-bottom:12px;box-shadow:inset 0 0 0 1.5px var(--lavender)}
.evcontact p{margin:0;font-size:15px;line-height:22px}
.evcontact .eyebrow{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;color:var(--title)}
.evcontact a{font-weight:700;color:var(--title)}
.evc-note .lbl{display:block}
.lockt{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:none;color:var(--ink-muted);background:var(--surface-alt);padding:1px 8px;border-radius:999px}
.evcbox .flabel{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.evcbox textarea{min-height:72px}

/* ---------- San Francisco Forest School (flow.sfforest.school) ----------
   Same family as Oogubi, quieter: white canvas, charcoal type, panels and buttons,
   Faustina headings over Sofia Pro Soft, chartreuse once or twice and only on dark. */
:root[data-brand="sffs"]{
  --charcoal:#111315; --cream-sffs:#fbf6f2; --frame:#424a54; /* charcoal grey: header, tab bar, setup */
  --surface:var(--white); --surface-alt:var(--cream-sffs); --surface-raised:var(--white);
  --ink:var(--charcoal); --ink-muted:var(--slate); --title:var(--charcoal); --hairline:var(--fog); --field-border:var(--slate);
  --action:var(--charcoal); --on-action:var(--white); --highlight:var(--neon-lime); --focus:var(--charcoal);
  --scrim:rgba(17,19,21,.5);
  --font-display:"Faustina", Georgia, "Times New Roman", serif;
}
@media (prefers-color-scheme: dark){ :root[data-brand="sffs"]:not([data-theme="light"]){
  --surface:#424a54; --surface-alt:#4b545f; --surface-raised:#545e6a; --frame:#353b43;
  --ink:var(--cream-sffs); --ink-muted:var(--mist); --title:var(--white); --hairline:var(--slate); --field-border:var(--mist);
  --action:var(--neon-lime); --on-action:var(--charcoal); --highlight:var(--neon-lime); --focus:var(--neon-lime); --scrim:rgba(0,0,0,.6); color-scheme:dark }}
:root[data-brand="sffs"][data-theme="dark"]{
  --surface:#424a54; --surface-alt:#4b545f; --surface-raised:#545e6a; --frame:#353b43;
  --ink:var(--cream-sffs); --ink-muted:var(--mist); --title:var(--white); --hairline:var(--slate); --field-border:var(--mist);
  --action:var(--neon-lime); --on-action:var(--charcoal); --highlight:var(--neon-lime); --focus:var(--neon-lime); --scrim:rgba(0,0,0,.6); color-scheme:dark }
[data-brand="sffs"] body::before,
[data-brand="sffs"] .appbar,
[data-brand="sffs"] .install,
[data-brand="sffs"] .growhero{background:var(--frame)}
[data-brand="sffs"] .install{color:var(--cream-sffs)}
[data-brand="sffs"] .logo{height:40px}
[data-brand="sffs"] .ilogo{height:40px;width:auto;align-self:flex-start}
[data-brand="sffs"] h1,[data-brand="sffs"] h2,[data-brand="sffs"] h3,[data-brand="sffs"] .month{font-family:var(--font-display);font-weight:700;letter-spacing:0}
[data-brand="sffs"] .login h1,[data-brand="sffs"] .growhero h1{font-weight:800}
[data-brand="sffs"] .pinkeye{color:var(--ink-muted)}
/* Chartreuse buttons only on dark; on light they become charcoal. */
[data-brand="sffs"] .btn.lime{background:var(--action);color:var(--on-action)}
[data-brand="sffs"] .growhero .btn.lime,[data-brand="sffs"] .install .btn.lime{background:var(--neon-lime);color:var(--charcoal)}
/* The call to action is a quiet panel, not a pink block. */
[data-brand="sffs"] .growcta{background:var(--surface-alt);color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline)}
/* Left-aligned by default (brand guide: asymmetry over centring). */
[data-brand="sffs"] .login{align-items:stretch;text-align:left;max-width:360px;margin-inline:auto}
[data-brand="sffs"] .login p{max-width:none}
[data-brand="sffs"] .tagline{text-align:left;max-width:360px;margin-inline:auto}
/* Chartreuse once: the main button. Step numbers stay quiet. */
[data-brand="sffs"] .inum{background:var(--cream-sffs);color:var(--charcoal)}

/* Header and tab bar: one charcoal grey frame, the wordmark centred. */
[data-brand="sffs"] .tabbar{background:var(--frame);border-top-color:rgba(255,255,255,.1)}
[data-brand="sffs"] .tabbar button{color:var(--mist)}
[data-brand="sffs"] .previewbar .btn{background:var(--charcoal)}
[data-brand="sffs"] .previewbar{color:var(--charcoal)}
/* The emblem, drawn in the text colour so it shows in light and dark. */
.lmark,.emark,.hbmark,.onbmark{-webkit-mask:url(/brand/sffs/emblem.png) center/contain no-repeat;mask:url(/brand/sffs/emblem.png) center/contain no-repeat;background:var(--ink);flex-shrink:0}
.lmark{width:min(300px,72vw);height:min(300px,72vw);align-self:center;margin:8px 0 28px}
.emark{width:150px;height:150px;opacity:.9}
[data-brand="sffs"] .login{justify-content:flex-start;min-height:0;padding-top:44px}
/* Today */
.dayhead{display:flex;align-items:center;gap:8px;margin-bottom:16px}
.daytitle{flex:1;min-width:0}
.daytitle .month{margin:0}
.daynav{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--hairline);background:var(--surface-raised);color:var(--ink);display:grid;place-items:center;flex-shrink:0}
.daynav svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.daynav.next svg{transform:scaleX(-1)}
.dayme{margin-bottom:16px}
.dmine{margin:4px 0 0;font-size:17px;line-height:26px}
.dmine span{color:var(--ink-muted);font-size:15px}
.duties{list-style:none;margin:0 0 20px;padding:0;border-top:1px solid var(--hairline)}
.duty{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:baseline;padding:14px 4px;border-bottom:1px solid var(--hairline)}
.duty.mine{background:var(--surface-alt);margin-inline:-12px;padding-inline:16px;border-radius:var(--radius-sm)}
.dtime{color:var(--ink-muted);font-size:14px;font-variant-numeric:tabular-nums}
.dwhat{font-weight:700;font-size:17px;line-height:24px}
.dwho{text-align:right;font-size:15px}
.dwho i{font-style:normal;font-size:12px;font-weight:700;background:var(--highlight);color:var(--charcoal);padding:1px 8px;border-radius:999px;margin-left:4px}
.dwho i.open{background:none;color:var(--ink-muted);font-weight:500;font-size:15px;padding:0}
@media (max-width:420px){.duty{grid-template-columns:56px 1fr;}.dwho{grid-column:2;text-align:left;color:var(--ink-muted)}}
.usual{background:var(--surface-alt);border-radius:var(--radius-md);padding:0 18px;margin-bottom:12px}
.usual summary{padding:14px 0;font-weight:500;cursor:pointer}
.usual ol{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.usual li{display:grid;grid-template-columns:110px 1fr;gap:10px;font-size:15px;line-height:22px}
.usual li span{color:var(--ink-muted)}
.dprows{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.dprow{display:grid;grid-template-columns:72px 1fr 36px;gap:6px;align-items:center}
.dprow select{grid-column:1/3}
.dprow .dpx{grid-row:1;grid-column:3;width:36px;height:36px;border-radius:50%;border:0;background:var(--surface-alt);color:var(--ink);font-size:20px}
.dprow input,.dprow select{min-width:0}
.dprow + .dprow{border-top:1px solid var(--hairline);padding-top:8px}
/* Reps for leads */
.repseg{margin-bottom:20px}
.teamhint{margin:-4px 0 12px}
/* Handbook: chapters fold, sections fold inside them. */
.hb .hbch{padding:0 18px}
.hb .hbch > summary{font-family:var(--font-display,inherit);font-weight:700;font-size:19px;justify-content:flex-start;align-items:baseline}
.hb .hbch > summary::after{margin-left:auto}
.hbn{font-family:var(--font-body,inherit);font-size:13px;font-weight:700;color:var(--ink-muted);min-width:22px}
.hbbody{padding-bottom:12px;font-size:16px;line-height:25px}
.hbbody p{margin:0 0 10px}
.hb .hbsec{background:var(--surface-raised);border-radius:var(--radius-sm);padding:0 14px;margin:8px 0;box-shadow:inset 0 0 0 1px var(--hairline)}
.hb .hbsec > summary{font-size:16px;font-weight:700;padding:12px 0}
.hbbox{background:var(--surface-raised);border-left:3px solid var(--ink);padding:10px 14px;margin:0 0 12px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.hbsec .hbbox{background:var(--surface-alt)}
.hbbox ol,.hbbox ul,.hbbody ol,.hbbody ul{margin:0 0 6px;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.hbtable{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.hbrow{background:var(--surface-raised);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px;box-shadow:inset 0 0 0 1px var(--hairline)}
.hbsec .hbrow{background:var(--surface-alt);box-shadow:none}
.hbrow > div{display:flex;flex-direction:column}
.hbrow .lbl{font-size:12px;letter-spacing:.04em;color:var(--ink-muted)}
.dprow input,.dprow select{width:100%;min-height:44px;border:1.5px solid var(--field-border);background:var(--surface-raised);border-radius:var(--radius-sm);padding:9px 12px;font-size:16px;color:var(--ink)}
.dprow .dpt{padding-inline:10px}
/* Oogubi's indigo is charcoal at the school, everywhere it appears (setup, toasts, scores). */
:root[data-brand="sffs"]{--indigo:var(--frame)}
[data-brand="sffs"] .onb .btn.lime,[data-brand="sffs"] .hsnotice .btn.lime{background:var(--neon-lime);color:var(--charcoal)}

.dayempty p{font-size:15px;white-space:nowrap}
@media (max-width:360px){.dayempty p{white-space:normal}}
.hbmark{width:140px;height:140px;align-self:center;margin:8px 0 4px}
.hb .hbtitle{text-align:center}
/* The daily log button: always one tap away, above the tab bar. */
.logfab{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:17;display:inline-flex;align-items:center;gap:8px;height:56px;padding:0 22px 0 18px;border:0;border-radius:999px;background:var(--neon-lime);color:#111315;font-size:17px;font-weight:700;box-shadow:0 0 0 0 rgba(228,254,82,.6),0 6px 22px rgba(17,19,21,.35)}
.logfab svg,.micbtn svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
@media (prefers-reduced-motion:no-preference){.logfab{animation:logglow 2.2s ease-in-out infinite}@keyframes logglow{0%,100%{box-shadow:0 0 0 0 rgba(228,254,82,.7),0 6px 18px rgba(17,19,21,.3)}50%{box-shadow:0 0 0 12px rgba(228,254,82,0),0 6px 26px rgba(17,19,21,.4)}}}
.logfab ~ .tabbar{}
[data-brand="sffs"] .todo-pill{bottom:calc(144px + env(safe-area-inset-bottom,0px))}
[data-brand="sffs"] main.wrap{padding-bottom:180px}
.logform{display:flex;flex-direction:column;gap:12px}
.logform textarea{width:100%;min-height:110px;border:1.5px solid var(--field-border);background:var(--surface-raised);border-radius:var(--radius-sm);padding:12px 14px;font-size:17px;line-height:24px;color:var(--ink)}
.logtalk{display:flex;align-items:center;gap:14px}
.micbtn{width:72px;height:72px;border-radius:50%;border:0;background:var(--action);color:var(--on-action);display:grid;place-items:center;flex:none}
.micbtn svg{width:30px;height:30px}
.micbtn.on{background:#d92d20;color:#fff;animation:micpulse 1.2s ease-in-out infinite}
@keyframes micpulse{0%,100%{box-shadow:0 0 0 0 rgba(217,45,32,.5)}50%{box-shadow:0 0 0 14px rgba(217,45,32,0)}}
.lgkinds{display:flex;flex-wrap:wrap;gap:8px}
.urgentchk{font-weight:700;color:#b42318}
.reportbox{background:#fef3f2;color:#111315;border-left:4px solid #d92d20;border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:12px 14px;display:flex;flex-direction:column;gap:8px;font-size:15px;line-height:22px}
.reportbox p{margin:0}
.reportbox .hint{color:#424a54}
.btn.danger{background:#d92d20;color:#fff}
.urgentbar{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;border:0;text-align:left;background:#d92d20;color:#fff;border-radius:var(--radius-md);padding:14px 16px;margin-bottom:16px;font-size:15px}
.urgentbar b{font-size:17px}
.logpanel{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:0;background:var(--surface-alt);color:var(--ink);border-radius:var(--radius-md);padding:14px 18px;margin-bottom:16px}
.logpanel > span{display:flex;flex-direction:column;gap:2px}
.logpanel > span > span{color:var(--ink-muted);font-size:14px}
.loglist{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.logitem{background:var(--surface-alt);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.logitem.urgent{box-shadow:inset 4px 0 0 #d92d20}
.logitem p{margin:0;white-space:pre-line}
.logitem input,.logitem textarea,.logitem select{width:100%;min-height:44px;border:1.5px solid var(--field-border);background:var(--surface-raised);border-radius:var(--radius-sm);padding:9px 12px;font-size:16px;color:var(--ink)}
.logitem select{width:auto}
.logrow{display:flex;justify-content:space-between;align-items:center}
.urgtag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:#d92d20;color:#fff;padding:2px 8px;border-radius:999px}
.logactions{flex-wrap:wrap;gap:10px;margin-bottom:8px}
.logperson{background:var(--surface-alt);border-radius:var(--radius-md);padding:0 16px;margin-bottom:10px}
.logperson summary{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 0;cursor:pointer}
.logperson .logitem{background:var(--surface-raised)}
.logperson .actions{padding-bottom:14px}
.dayhead.small .daynav{width:36px;height:36px}
.dayhead.small{margin:4px 0 12px}
.trainbox h3{margin:2px 0 8px}
.trainbar{height:8px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--hairline);overflow:hidden;margin-bottom:8px}
.trainbar span{display:block;height:100%;background:var(--action);border-radius:999px}
.gboth{margin-top:8px}
.onbmark{width:min(300px,72vw);height:min(300px,72vw);background:#fff;margin:0 auto 28px}
.pinfo summary{display:flex;justify-content:space-between;align-items:center;cursor:pointer;list-style:none}
.pinfo summary h3{margin:0}
.pinfo summary::after{content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-right:4px}
.pinfo[open] summary::after{transform:rotate(-135deg)}
.pinfo form{margin-top:14px;display:flex;flex-direction:column;gap:14px}
[data-brand="sffs"] .todo-pill{background:var(--frame);color:#fff;box-shadow:0 6px 22px rgba(17,19,21,.3)}
