/* Moonsheets — Luminous. Night-first; Day under prefers-color-scheme:light or data-theme="light".
   Violet runs the system. Amber means time and nothing else. The call sheet (sheet.css) stays black on white. */
:root{
  color-scheme:dark;
  --ground:#15171F;--ground-glow:rgba(139,124,255,.16);--surface:#1E2130;--surface-2:#262A3B;--surface-3:#2F3447;
  --line:#2A2E3F;--line-strong:#3A4056;
  --text:#EEF0F6;--text-muted:#9BA3B8;--text-dim:#6F7891;
  --violet:#8B7CFF;--violet-bright:#9D90FF;--violet-deep:#5E4FD8;--violet-text:#C9C1FF;--violet-soft:rgba(139,124,255,.18);--violet-ring:rgba(139,124,255,.4);--on-violet:#15171F;
  --amber:#FFB547;--amber-soft:rgba(255,181,71,.15);--on-amber:#15171F;
  --ok:#4ED39A;--ok-soft:rgba(78,211,154,.14);--danger:#FF7B7B;--danger-soft:rgba(255,107,107,.14);
  --shadow-card:inset 0 1px 0 rgba(255,255,255,.08),0 20px 50px rgba(0,0,0,.45);
  --shadow-raised:0 6px 18px rgba(0,0,0,.35);
  --glow-violet:inset 0 1px 0 rgba(255,255,255,.3),0 1px 2px rgba(0,0,0,.3),0 3px 8px -2px rgba(94,79,216,.4);
  --glow-violet-hover:inset 0 1px 0 rgba(255,255,255,.3),0 2px 4px rgba(0,0,0,.3),0 6px 14px -4px rgba(94,79,216,.5);
  --glow-moon:0 0 0 1px rgba(255,255,255,.12),0 10px 34px rgba(139,124,255,.55),0 2px 6px rgba(0,0,0,.4);
  --glow-amber:0 6px 18px rgba(255,181,71,.4);
  --glow-dot:0 0 10px rgba(139,124,255,.9);
  --scrim:rgba(21,23,31,.72);
  /* legacy aliases used throughout the markup */
  --ink:var(--text);--muted:var(--text-muted);--line-soft:var(--line);
  --accent:var(--violet);--accent-soft:var(--violet-soft);--accent-ink:var(--on-violet);
  --tape:var(--violet);--tape-ink:var(--on-violet);
  --shadow:var(--shadow-raised);
  --r-sm:9px;--r-md:12px;--r-lg:20px;--r-pill:999px;
  --display:"Manrope","Avenir Next","Segoe UI",system-ui,sans-serif;--body:"Manrope","Avenir Next","Segoe UI",system-ui,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:light){:root:not([data-theme="dark"]){
  color-scheme:light;
  --ground:#F4F5F9;--ground-glow:rgba(106,90,230,.08);--surface:#FFFFFF;--surface-2:#ECEEF5;--surface-3:#E1E4EE;
  --line:#D9DDE8;--line-strong:#B9C0D3;
  --text:#15171F;--text-muted:#5B6378;--text-dim:#7C849A;
  --violet:#6A5AE6;--violet-bright:#7B6CF0;--violet-deep:#4E3FCC;--violet-text:#4E3FCC;--violet-soft:rgba(106,90,230,.12);--violet-ring:rgba(106,90,230,.4);--on-violet:#FFFFFF;
  --amber:#F5A623;--amber-soft:rgba(245,166,35,.14);--on-amber:#15171F;
  --ok:#1F9D63;--ok-soft:rgba(31,157,99,.1);--danger:#D23B3B;--danger-soft:rgba(210,59,59,.1);
  --shadow-card:0 1px 2px rgba(20,25,40,.06),0 12px 32px rgba(20,25,40,.1);
  --shadow-raised:0 4px 12px rgba(20,25,40,.08);
  --glow-violet:inset 0 1px 0 rgba(255,255,255,.3),0 1px 2px rgba(20,25,40,.18),0 3px 8px -2px rgba(94,79,216,.35);
  --glow-violet-hover:inset 0 1px 0 rgba(255,255,255,.3),0 2px 4px rgba(20,25,40,.18),0 6px 14px -4px rgba(94,79,216,.45);
  --glow-moon:0 0 0 1px rgba(106,90,230,.12),0 10px 30px rgba(106,90,230,.4);
  --glow-amber:0 6px 16px rgba(245,166,35,.3);
  --glow-dot:0 0 8px rgba(106,90,230,.7);
  --scrim:rgba(21,23,31,.5);}}
:root[data-theme="light"]{
  color-scheme:light;
  --ground:#F4F5F9;--ground-glow:rgba(106,90,230,.08);--surface:#FFFFFF;--surface-2:#ECEEF5;--surface-3:#E1E4EE;
  --line:#D9DDE8;--line-strong:#B9C0D3;
  --text:#15171F;--text-muted:#5B6378;--text-dim:#7C849A;
  --violet:#6A5AE6;--violet-bright:#7B6CF0;--violet-deep:#4E3FCC;--violet-text:#4E3FCC;--violet-soft:rgba(106,90,230,.12);--violet-ring:rgba(106,90,230,.4);--on-violet:#FFFFFF;
  --amber:#F5A623;--amber-soft:rgba(245,166,35,.14);--on-amber:#15171F;
  --ok:#1F9D63;--ok-soft:rgba(31,157,99,.1);--danger:#D23B3B;--danger-soft:rgba(210,59,59,.1);
  --shadow-card:0 1px 2px rgba(20,25,40,.06),0 12px 32px rgba(20,25,40,.1);
  --shadow-raised:0 4px 12px rgba(20,25,40,.08);
  --glow-violet:inset 0 1px 0 rgba(255,255,255,.3),0 1px 2px rgba(20,25,40,.18),0 3px 8px -2px rgba(94,79,216,.35);
  --glow-violet-hover:inset 0 1px 0 rgba(255,255,255,.3),0 2px 4px rgba(20,25,40,.18),0 6px 14px -4px rgba(94,79,216,.45);
  --glow-moon:0 0 0 1px rgba(106,90,230,.12),0 10px 30px rgba(106,90,230,.4);
  --glow-amber:0 6px 16px rgba(245,166,35,.3);
  --glow-dot:0 0 8px rgba(106,90,230,.7);
  --scrim:rgba(21,23,31,.5);}
*{box-sizing:border-box}
[hidden]{display:none!important}
img{max-width:100%}
html,body{margin:0;height:100%}
body{background:var(--ground);color:var(--text);font-family:var(--body);font-size:14px;line-height:1.5;font-weight:500;padding-inline:clamp(20px,3vw,40px);padding-block:0 48px;-webkit-font-smoothing:antialiased}
a{color:var(--violet-text)}
h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:800;letter-spacing:-.03em;text-wrap:balance}
button,input,select,textarea{font:inherit;color:inherit}
/* space-glove pointer on everything clickable */
a[href],select,summary,label[for],input[type=checkbox],input[type=radio],input[type=color],input[type=file],[role=button],[data-act]:not(input):not(textarea),[data-tab]{cursor:var(--glove-point)}
button{cursor:var(--glove-point);border:1px solid var(--line);background:var(--surface);color:var(--text);padding:8px 14px;border-radius:var(--r-md);line-height:1.2;white-space:nowrap;font-weight:600;box-shadow:var(--shadow-raised);transition:background .16s,box-shadow .16s,border-color .16s,color .16s}
button:hover{background:var(--surface-2);border-color:var(--line-strong)}
button.primary{background:linear-gradient(180deg,var(--violet-bright),var(--violet));color:var(--on-violet);border-color:transparent;font-weight:800;box-shadow:var(--glow-violet)}
button.primary:hover{box-shadow:var(--glow-violet-hover);background:linear-gradient(180deg,var(--violet-bright),var(--violet-bright))}
button.primary:active{background:var(--violet-deep);box-shadow:none}
/* .tape / .slate / .sys: system-tinted secondary (violet). Never amber — amber is time. */
button.tape,button.slate,button.sys{background:var(--violet-soft);color:var(--violet-text);border-color:var(--violet-ring);font-weight:700;box-shadow:none}
button.tape:hover,button.slate:hover,button.sys:hover,button.slate:focus-visible{background:var(--violet);color:var(--on-violet);border-color:transparent;box-shadow:var(--glow-violet)}
button.cta{font-weight:800;font-size:14px;padding:9px 16px}
button.ghost{background:transparent;border-color:transparent;color:var(--text-muted);box-shadow:none}
button.ghost:hover{color:var(--text);background:var(--surface-2);border-color:transparent}
button.danger{background:var(--surface);color:var(--danger);border-color:var(--line);font-weight:700}
button.danger:hover{background:var(--danger-soft);border-color:transparent}
button.sm{padding:5px 10px;font-size:12px;border-radius:var(--r-sm)}
button.on{box-shadow:inset 0 0 0 2px var(--violet-ring);color:var(--violet-text);background:var(--violet-soft);border-color:transparent}
button:disabled{opacity:.5;cursor:default;box-shadow:none}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible,a:focus-visible{outline:2px solid var(--violet-ring);outline-offset:2px}
input,select,textarea{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px;width:100%;min-width:0;transition:border-color .16s,box-shadow .16s}
input:hover,select:hover,textarea:hover{border-color:var(--line-strong)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--violet);box-shadow:0 0 0 2px var(--violet-ring)}
.card input,.card select,.card textarea,fieldset input,fieldset select,fieldset textarea,.modal input,.modal select,.modal textarea,.splash-card input{background:var(--ground)}
input::placeholder,textarea::placeholder{color:var(--text-dim);opacity:1}
textarea{resize:vertical;min-height:70px}
label{display:block}
.lbl{display:block;font-size:12px;color:var(--text-muted);font-weight:600;margin-bottom:6px}
.wrap{max-width:1220px;margin:0 auto}
/* ---------- top bar ---------- */
.topbar{display:flex;align-items:center;gap:20px;padding:14px 0;min-height:60px;line-height:1.2;border-bottom:1px solid var(--line);flex-wrap:wrap}
.topbar .brand{font-family:var(--display);font-size:21px;letter-spacing:-.04em;font-weight:800;display:flex;align-items:center;gap:10px;line-height:1}
/* The mark: the Lit Disc — a sphere lit from upper-left with a violet glow. */
.topbar .brand i,.splash-card .brand.big i,.moon{display:inline-block;position:relative;overflow:hidden;width:24px;height:24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#FFFFFF 0%,var(--violet-text) 30%,var(--violet) 70%,var(--violet-deep) 100%);box-shadow:var(--glow-moon);transform:none;flex:none}
.nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:var(--surface);padding:4px;border-radius:var(--r-md)}
.nav button,.nav a{border:0;border-radius:var(--r-sm);background:transparent;font-family:var(--body);font-size:14px;letter-spacing:0;text-transform:none;font-weight:600;padding:7px 14px;color:var(--text-muted);box-shadow:none;text-decoration:none;display:inline-flex;align-items:center;line-height:1.3}
.nav button.on,.nav a.on{color:var(--text);background:var(--surface-2);box-shadow:var(--shadow-raised)}
.nav button:hover,.nav a:hover{color:var(--text);background:var(--surface-2)}
.storage{margin-left:auto;font-size:12px;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:8px;line-height:1}
.storage .dot{width:8px;height:8px;border-radius:50%;background:var(--text-dim)}
.storage .dot.ok{background:var(--violet);box-shadow:var(--glow-dot)}.storage .dot.warn{background:var(--text-dim);box-shadow:inset 0 0 0 2px var(--line-strong);background:transparent}
.me{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);line-height:1}
.me button{padding:5px 12px;font-size:13px;border-radius:var(--r-sm)}
/* ---------- banners / notices ---------- */
.banner{margin-top:14px;padding:12px 16px;border:0;background:var(--surface);border-radius:var(--r-md);display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px;box-shadow:var(--shadow-raised),inset 3px 0 0 var(--violet)}
.banner.warn{box-shadow:var(--shadow-raised),inset 3px 0 0 var(--danger)}
.banner.example{box-shadow:var(--shadow-raised),inset 3px 0 0 var(--violet)}
.banner.ok{box-shadow:var(--shadow-raised),inset 3px 0 0 var(--ok)}
.banner .grow{flex:1}
.banner button{box-shadow:none}
.page{padding-top:24px}
.pagehead{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.pagehead h2{font-size:30px;line-height:1.1}
.pagehead .sub{color:var(--text-muted);font-size:13px;margin-top:4px}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pagehead-tools{justify-content:flex-end;margin-bottom:10px}
.card{background:var(--surface);border:0;border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
.list{display:grid;gap:0}
.list .jobrow:first-child{border-radius:var(--r-lg) var(--r-lg) 0 0}
.list .jobrow:last-child{border-radius:0 0 var(--r-lg) var(--r-lg)}
.jobrow{display:grid;grid-template-columns:110px 1fr auto;gap:16px;align-items:center;padding:20px 26px;border-bottom:1px solid var(--line);cursor:var(--glove-point);transition:background .16s}
.jobrow:last-child{border-bottom:0}
.jobrow:hover{background:var(--surface-2)}
.jobrow .date{font-family:var(--display);font-weight:800;font-size:18px;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.jobrow .date small{display:block;font-family:var(--body);font-size:12px;color:var(--text-muted);font-weight:500;letter-spacing:0;margin-top:3px}
.jobrow .title{font-weight:700;font-size:15px}
.jobrow .meta{color:var(--text-muted);font-size:13px;margin-top:3px;display:flex;gap:8px;flex-wrap:wrap}
.jobrow .by{color:var(--text-dim);font-size:11px}
/* ---------- chips: neutral · system (violet) · time (amber) · ok ---------- */
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;padding:4px 10px;border:1px solid var(--line);border-radius:var(--r-pill);color:var(--text-muted);background:var(--surface);white-space:nowrap;line-height:1.2}
.chip.ok{color:var(--ok);border-color:transparent;background:var(--ok-soft)}
.chip.tape,.chip.sys{background:var(--violet-soft);color:var(--violet-text);border-color:var(--violet-ring)}
.chip.time{background:var(--amber);color:var(--on-amber);border-color:transparent;font-weight:800;font-variant-numeric:tabular-nums;box-shadow:var(--glow-amber)}
.empty{padding:56px 28px;text-align:center;color:var(--text-muted)}
.empty b{display:block;color:var(--text);font-family:var(--display);font-size:26px;font-weight:800;margin-bottom:6px}
/* ---------- job header + tabs ---------- */
.jobhead{display:grid;grid-template-columns:1fr;gap:14px;align-items:center;margin-bottom:8px;margin-top:16px}
.jobhead input.title{font-family:var(--display);font-size:30px;font-weight:800;letter-spacing:-.035em;padding:4px 10px 6px;border-color:transparent;background:transparent;line-height:1.35;height:auto;overflow:visible;box-shadow:none}
.jobhead input.title:hover{border-color:var(--line);background:var(--surface)}
.jobhead input.title:focus{border-color:var(--violet);background:var(--surface)}
.jobhead .titlerow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.jobhead .titlerow input.title{width:auto;min-width:160px;max-width:100%;flex:0 1 auto}
.tabs .meta{display:flex;gap:8px;align-items:center;margin-left:auto;align-self:center;padding-bottom:2px;flex:none;white-space:nowrap}
.tabs.stuck .meta{margin-left:0}
.tabs .meta .share{display:inline-flex;align-items:center;gap:6px;padding:6px 13px 6px 11px;font-size:13px;font-weight:800;line-height:1;border-radius:var(--r-pill);margin-right:6px;
  background:linear-gradient(180deg,var(--violet-bright),var(--violet));color:var(--on-violet);border:0;border-bottom:0;box-shadow:var(--glow-violet)}
.tabs .meta .share:hover{background:linear-gradient(180deg,var(--violet-bright),var(--violet-bright));color:var(--on-violet);box-shadow:var(--glow-violet-hover)}
.tabs .meta .share:active{background:var(--violet-deep);box-shadow:none}
.tabs .meta .share svg{width:14px;height:14px;flex:none}
.tabs .meta .share b{font-weight:800;color:inherit;opacity:.75;margin-left:1px}
.tabs .meta .share.ro{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow-raised)}
.tabs .meta .share.ro:hover{background:var(--surface-2);color:var(--text);box-shadow:var(--shadow-raised)}
.mlist{display:flex;flex-direction:column;border-radius:var(--r-md);background:var(--surface-2);padding:4px 12px;margin-bottom:14px}
.mrow{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.mrow:last-child{border-bottom:0}
.mrow .mwho{flex:1;min-width:0}
.mrow .mwho b{display:block;font-size:14px}
.mrow .mwho small{display:block;color:var(--text-muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mrow .you{font-size:11px;font-weight:700;color:var(--violet-text);background:var(--violet-soft);padding:1px 7px;border-radius:var(--r-pill);margin-left:4px;vertical-align:middle}
.mrow select.sm{width:auto;padding:5px 28px 5px 9px;font-size:13px}
.minvite .row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}
.minvite .row select{width:auto}
.help.err{color:var(--danger)}
.rlist.ro .rrow{grid-template-columns:minmax(150px,1.3fr) 40px 132px minmax(150px,1fr)}
.rlist.ro .rrow .ck{display:none}
@media (max-width:700px){.jobhead .titlerow{flex-direction:column;align-items:flex-start;gap:4px}.tabs .meta .chip{display:none}}
.tabs{display:flex;gap:4px;border-bottom:0;margin-bottom:16px;overflow-x:auto;position:sticky;top:0;z-index:20;background:var(--ground);padding-top:6px;align-items:flex-end}
.tabs button{border:0;border-radius:var(--r-md) var(--r-md) 0 0;background:transparent;font-family:var(--body);font-size:14px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--text-muted);padding:9px 16px;position:relative;box-shadow:none;border-bottom:2px solid transparent}
.tabs button:hover{background:var(--surface-2);color:var(--text)}
.tabs button.on{color:var(--text);background:var(--surface);border-bottom-color:var(--violet)}
.tabs button.on::after{content:none}
.tabs button .n{font-family:var(--body);font-size:13px;font-weight:700;background:transparent;padding:0;margin-left:6px;color:var(--violet-text);letter-spacing:0;text-transform:none}
.tabs .jobname{display:none;margin-left:auto;align-self:center;font-family:var(--display);font-size:15px;font-weight:800;letter-spacing:-.02em;color:var(--text);padding:8px 4px 8px 14px;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabs.stuck{box-shadow:0 1px 0 var(--line),0 10px 20px -12px rgba(0,0,0,.5)}
.tabs.stuck .jobname{display:block}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}.c6{grid-column:span 6}.c8{grid-column:span 8}.c12{grid-column:span 12}
@media (max-width:820px){.c2{grid-column:span 4}.c3{grid-column:span 6}.c4{grid-column:span 6}}
@media (max-width:560px){.c2,.c3,.c4,.c6,.c8{grid-column:span 12}.jobhead{grid-template-columns:1fr}.jobrow{grid-template-columns:1fr}}
/* ---------- details forms ---------- */
fieldset{border:0;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:18px 20px 20px;margin:0 0 16px;min-width:0}
legend{font-family:var(--display);font-size:16px;letter-spacing:-.02em;text-transform:none;font-weight:800;padding:0;float:left;width:100%;margin-bottom:12px}
legend + *{clear:both}
.rows{display:grid;gap:8px}
.row{display:grid;gap:8px;align-items:center}
.row.kc{grid-template-columns:1.1fr .9fr 1.3fr 1fr auto}
.row.cl{grid-template-columns:2fr 130px auto auto}
.row.vd{grid-template-columns:1.2fr 1.2fr 1fr 1.3fr .8fr 1fr auto}
@media (max-width:820px){.row.vd{grid-template-columns:1fr 1fr 1fr;}.row.vd button{grid-column:3}}
@media (max-width:560px){.row.kc{grid-template-columns:1fr 1fr}.row.kc button{grid-column:2;justify-self:end}.row.cl{grid-template-columns:1fr 1fr}}
.cos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:900px){.cos{grid-template-columns:minmax(0,1fr)}}
.co,.locrow{border:0;padding:14px;background:var(--surface-2);border-radius:var(--r-md)}
.co input,.co select,.co textarea,.locrow input,.locrow select,.locrow textarea{background:var(--ground)}
.locrow{margin-bottom:10px}
.co .head{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}
.co .head .lbl{margin:0}
.co .head select.role{width:auto;font-weight:800;font-size:14px;letter-spacing:-.01em;text-transform:none;padding:6px 10px;flex:0 0 auto}
.co .head select.copreset{width:auto;flex:1 1 0;min-width:0;padding:4px 8px;font-size:12px}
.co .head button.x{padding:4px 8px;color:var(--text-muted)}
.co .head button.x:hover{color:var(--danger)}
.co .head button{white-space:nowrap}
.sub-fs .lochead,.locrow .lochead{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.sub-fs .lochead .lbl,.locrow .lochead .lbl{margin:0}
.locrow .lochead .lbl{font-weight:700;color:var(--text)}
.locrow .lochead-l{display:flex;align-items:center;gap:8px}
.grip{display:inline-grid;grid-template-columns:4px 4px;gap:3px 3px;padding:6px 5px;cursor:var(--glove-open);border-radius:var(--r-sm);color:var(--text-dim);touch-action:none}
.grip i{display:block;width:4px;height:4px;background:currentColor;border-radius:50%}
.grip:hover,.grip:focus-visible{background:var(--surface-3);color:var(--text);outline:none}
.grip:active{cursor:var(--glove-fist)}
.locrow.dragging{opacity:.45}
.locrow.drop-before{box-shadow:0 -3px 0 0 var(--violet)}
.locrow.drop-after{box-shadow:0 3px 0 0 var(--violet)}
.hosp-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto}
.hosp{display:grid;grid-template-columns:1fr auto;grid-template-areas:"nm dr" "ad dr";gap:2px 12px;text-align:left;padding:12px 14px;white-space:normal;box-shadow:none}
.hosp:hover{border-color:var(--violet-ring);background:var(--violet-soft)}
.hosp .nm{grid-area:nm;font-weight:700}
.hosp .ad{grid-area:ad;color:var(--text-muted);font-size:12px;white-space:pre-line;font-weight:500}
.hosp .dr{grid-area:dr;align-self:center;font-weight:800;font-size:14px;letter-spacing:-.01em;color:var(--violet-text)}
.ctarow{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:2px 0 12px}
/* ---------- combo / autocomplete ---------- */
.combo{position:fixed;z-index:60;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:4px}
.combo .hd{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-weight:700;padding:8px 10px 3px;position:sticky;top:0;background:var(--surface)}
.combo .hd small{letter-spacing:0;text-transform:none;font-weight:500;opacity:.9}
.combo .opt{display:block;width:100%;text-align:left;border:0;background:transparent;border-radius:var(--r-sm);padding:7px 10px;font-size:13px;color:var(--text);white-space:normal;box-shadow:none;font-weight:500}
.combo .opt:hover{background:var(--surface-2)}
.combo .opt.on{background:var(--violet-soft);box-shadow:none;color:var(--text)}
.combo .opt.cur{font-weight:700}
.combo .none{padding:10px;font-size:12px;color:var(--text-muted)}
.combo.addr .opt{display:flex;flex-direction:column;gap:1px;padding:7px 10px}
.combo.addr .opt b{font-weight:700}
.combo.addr .opt small{color:var(--text-muted);font-size:12px}
.imtable{width:100%;border-collapse:collapse;font-size:12.5px}
.imtable th{text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);padding:6px 8px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);font-weight:700}
.imtable td{padding:5px 8px;border-bottom:1px solid var(--line)}
.addco{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.addco .lbl{margin:0}
.co .logo{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.co .logo .thumb{width:120px;height:56px;border:1px dashed var(--line-strong);display:flex;align-items:center;justify-content:center;background:var(--ground);overflow:hidden;border-radius:var(--r-sm)}
.co .logo .thumb:has(img){background:#fff;border-style:solid;border-color:var(--line)}
.co .logo .thumb img{max-width:100%;max-height:100%;object-fit:contain}
.co .logo .thumb span{color:var(--text-dim);font-size:12px}
.co textarea{min-height:52px}
.daypills{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.daypills .pill{display:inline-flex;flex-direction:column;align-items:flex-start;gap:0;padding:6px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-weight:700;font-size:14px;letter-spacing:-.01em;text-transform:none;line-height:1.15;color:var(--text-muted);box-shadow:none}
.daypills .pill small{font-size:11px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--text-muted)}
.daypills .pill.on{color:var(--text);border-color:var(--violet-ring);background:var(--violet-soft);box-shadow:none}
.daypills .pill.on small{color:var(--violet-text)}
.dayset{box-shadow:var(--shadow-card),inset 0 0 0 1px var(--violet-ring)}
.dayhead{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.sub-fs{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.sub-fs > .lbl{margin-bottom:8px;color:var(--text);font-weight:700;font-size:13px}
/* ---------- crew table ---------- */
table.edit th.dayth span{display:block}
table.edit th.dayth small{display:block;font-size:10px;letter-spacing:0;text-transform:none;font-weight:500;color:var(--text-dim)}
table.edit td.call.off{background:color-mix(in srgb,var(--text-muted) 10%,transparent)}
table.edit td.call input.isoff{color:var(--text-muted);text-decoration:line-through;font-weight:600}
table.edit tr.defaultrow td{background:var(--surface-2);border-bottom:0}
.crewtools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.crewtools .hint{color:var(--text-muted);font-size:12px;margin-left:auto}
.tablewrap{overflow-x:auto;background:var(--surface);border:0;border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
.tablewrap table tbody tr:last-child td{border-bottom:0}
table.edit{border-collapse:collapse;width:100%;min-width:1180px}
table.edit th{text-align:left;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-weight:700;padding:12px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
table.edit td{padding:5px 6px;border-bottom:1px solid var(--line);vertical-align:middle}
table.edit th:first-child,table.edit td:first-child{padding-left:16px}
table.edit th:last-child,table.edit td:last-child{padding-right:16px}
table.edit tr.deptrow td{background:var(--surface-2);color:var(--text);font-weight:800;letter-spacing:-.01em;text-transform:none;font-size:13px;padding:7px 12px;border-bottom:1px solid var(--line)}
table.edit tr.deptrow td span{color:var(--text-muted);margin-left:8px;letter-spacing:0;text-transform:none;font-weight:500;font-size:12px;opacity:1}
table.edit tr.deptrow td .side{float:right;color:var(--text-dim);font-size:11px;letter-spacing:0;font-weight:600}
table.edit td input,table.edit td select{padding:7px 8px;border-color:transparent;background:transparent;border-radius:var(--r-sm)}
table.edit td input:hover,table.edit td select:hover{border-color:var(--line)}
table.edit td input:focus,table.edit td select:focus{border-color:var(--violet);background:var(--surface);box-shadow:0 0 0 2px var(--violet-ring)}
table.edit td.call input{font-weight:800;font-size:15px;font-variant-numeric:tabular-nums}
table.edit td.call input.own{background:var(--amber-soft);color:var(--text)}
table.edit td.call input::placeholder{color:var(--text-dim);opacity:1;font-weight:500}
table.edit td.onset{text-align:center}
table.edit td.onset input{width:16px;height:16px;padding:0;accent-color:var(--violet)}
table.edit td .known{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--violet);box-shadow:var(--glow-dot);margin-left:4px;vertical-align:middle}
table.edit td.rowbtns{white-space:nowrap;text-align:right;position:sticky;right:0;background:var(--surface);box-shadow:-10px 0 12px -10px rgba(0,0,0,.25)}
table.edit td.rowbtns button{padding:4px 8px;border-color:transparent;color:var(--text-muted);box-shadow:none;background:transparent;font-size:15px}
table.edit td.rowbtns button[data-act="row-del"]:hover{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent)}
/* drag handle */
table.edit th.gripth,table.edit td.rowgrip{width:26px;padding-left:10px!important;padding-right:0}
table.edit td.rowgrip span{display:inline-flex;align-items:center;justify-content:center;width:18px;height:28px;border-radius:6px;color:var(--text-dim);cursor:var(--glove-open)}
table.edit td.rowgrip span:hover{color:var(--text);background:var(--surface-2)}
table.edit td.rowgrip span:active{cursor:var(--glove-fist)}
table.edit td.rowgrip span{touch-action:none;user-select:none;-webkit-user-select:none}
table.edit tr.shifting{transition:transform .18s cubic-bezier(.2,.8,.2,1)}
table.edit tr.lifted{position:relative;z-index:6;transition:none}
table.edit tr.lifted td{background:var(--surface);box-shadow:0 14px 28px -10px rgba(30,20,80,.45),inset 0 1px 0 color-mix(in srgb,var(--violet) 55%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--violet) 55%,transparent)}
table.edit tr.lifted td:first-child{box-shadow:0 14px 28px -10px rgba(30,20,80,.45),inset 3px 0 0 var(--violet),inset 0 1px 0 color-mix(in srgb,var(--violet) 55%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--violet) 55%,transparent)}
table.edit tr.lifted.landing{transition:transform .17s cubic-bezier(.2,.8,.2,1)}
body.rowdragging,body.rowdragging *{cursor:var(--glove-fist)!important;user-select:none;-webkit-user-select:none}
.toast .toastbtn{margin-left:12px;padding:3px 10px;font-size:12px;border-radius:8px;font-weight:800;color:var(--violet-text);background:var(--violet-soft);border:1px solid var(--violet-ring);box-shadow:none}
table.edit td.rowbtns button:hover{color:var(--text);background:var(--surface-2)}
.crewfoot{display:flex;gap:8px;padding:12px 16px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--line);background:var(--surface)}
.crewfoot button{box-shadow:none}
/* ---------- sheet tab ---------- */
.sheetbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.sheetbar .note{color:var(--text-muted);font-size:12px;margin-left:auto}
.sheetwrap{background:transparent;padding:0 0 24px;border:0;box-shadow:none;margin-left:auto;margin-right:auto}
/* the sheet sits straight on the page like paper on a desk */
.sheetwrap .cs{border-color:rgba(16,19,24,.10);box-shadow:0 1px 2px rgba(16,19,24,.06),0 12px 32px -8px rgba(16,19,24,.18)}
/* ---- Send flow ---- */
.sendflow{display:flex;flex-direction:column;gap:16px}
.sendstep{display:grid;grid-template-columns:36px 1fr;gap:14px;padding:22px 24px 22px 20px}
.sendstep .stepno{width:28px;height:28px;border-radius:50%;background:var(--violet-soft);color:var(--violet-text);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.sendstep .stepbody{min-width:0}
.stephead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.stephead h3{font-size:20px;margin:0;flex:1 1 auto}
.sendstats{font-size:13px;color:var(--text-muted)}.sendstats b{color:var(--text)}
.sendrow{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:16px 28px;align-items:start;margin:14px 0 6px}
.sendas{display:block;max-width:460px}
.sendas select{width:100%;display:block}
.sendas .help{display:block}
.channels{display:flex;flex-direction:column;gap:6px}
.channels .lbl{margin-bottom:2px}
.tog{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;cursor:var(--glove-point)}
.tog input{width:18px;height:18px;margin:0;accent-color:var(--violet)}
.tog small{color:var(--text-muted);font-weight:500;font-size:12px}
.tog.off{color:var(--text-muted);cursor:default}
.rtools{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:14px 0 6px;padding-top:12px;border-top:1px solid var(--line)}
.rtools .ck{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);cursor:var(--glove-point)}
.rtools .ck input{width:18px;height:18px;margin:0;accent-color:var(--violet)}
.rtools .help{flex:1;display:inline}
.seg{display:inline-flex;gap:2px;background:var(--surface-2);padding:3px;border-radius:var(--r-md);margin-left:auto}
.seg button{border:0;background:transparent;box-shadow:none;padding:5px 11px;font-size:12.5px;color:var(--text-muted);border-radius:var(--r-sm)}
.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-raised)}
.rlist{border-radius:var(--r-md);overflow:hidden}
.rrow{display:grid;grid-template-columns:34px minmax(150px,1.3fr) 40px 132px minmax(150px,1fr);gap:10px;align-items:center;padding:9px 6px;border-bottom:1px solid var(--line)}
.rrow:last-child{border-bottom:0}
.rrow.sel{background:color-mix(in srgb,var(--violet-soft) 45%,transparent)}
.rrow .ck{display:flex;align-items:center;justify-content:center}
.rrow .ck input{width:18px;height:18px;margin:0;accent-color:var(--violet);cursor:var(--glove-point)}
.rrow .who b{display:block;font-weight:700;font-size:14px}
.rrow .who small{display:block;color:var(--text-muted);font-size:12px}
.rrow .how{display:flex;gap:10px;justify-content:center;align-items:center;color:var(--violet-text)}
.rrow .how svg{width:16px;height:16px;display:block;flex:none}
.rrow .how .no{color:var(--text-dim);opacity:.45}
.rrow .calltime{font-weight:800;font-size:13px;font-variant-numeric:tabular-nums;background:var(--amber);color:var(--on-amber);padding:4px 10px;border-radius:var(--r-pill);box-shadow:var(--glow-amber);justify-self:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rrow .status{font-size:12.5px;color:var(--text-muted)}
.rrow .st.ok{color:var(--ok);font-weight:700}
.rrow .st.dim{color:var(--text-dim)}
.bad{color:var(--danger)}
.btn-link.quiet{background:var(--surface);color:var(--text);border:1px solid var(--line)}
.btn-link.quiet.sm{padding:4px 9px}
.msgbox{margin-top:14px}
.msgedit{margin-top:10px;padding:16px;border-radius:var(--r-md);background:var(--surface-2)}
.msgedit textarea,.msgedit input{font-size:13px}
.preview{display:grid;grid-template-columns:1fr;max-width:640px;gap:14px;margin-top:6px;align-items:start}
.preview .pv{background:var(--surface);border-radius:var(--r-md);padding:12px;box-shadow:var(--shadow-card);min-width:0}
.preview .pvsub{font-size:12px;color:var(--text-muted);margin-bottom:8px}
.preview .pvbody{background:#fff;color:#15171F;border-radius:10px;overflow:hidden;transform-origin:top left;font-size:13px}
.preview .pvbody>div{padding:18px!important}
.sendgo{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px}
button.primary.big{padding:12px 22px;font-size:16px;border-radius:var(--r-md)}
button.primary.big small{display:block;font-size:11.5px;font-weight:600;opacity:.8;margin-top:2px}
button.primary.big:disabled{opacity:.5;box-shadow:none;cursor:default}
.progress{flex:1 1 100%;display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted)}
.progress .track{flex:1;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.progress .bar{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--violet-bright),var(--violet));box-shadow:var(--glow-dot);transition:width .25s ease}
.fallback{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.fallback summary{cursor:var(--glove-point);font-size:13px;color:var(--text-muted);font-weight:600;list-style:none}
.fallback summary::before{content:"\25B8";display:inline-block;margin-right:6px;transition:transform .15s}
.fallback[open] summary::before{transform:rotate(90deg)}
.fallback .actions{margin-top:10px}
.sendlog{display:flex;flex-direction:column;gap:6px;font-size:13px}
.logrow{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:6px 0;border-bottom:1px solid var(--line)}
.logrow:last-child{border-bottom:0}
.logrow .when{color:var(--text-muted);font-variant-numeric:tabular-nums}
@media (max-width:820px){.sendrow{grid-template-columns:1fr}.rrow{grid-template-columns:34px 1fr auto;grid-auto-rows:auto}.rrow .how{display:none}.rrow .status{grid-column:2/-1}.preview{grid-template-columns:1fr}.sendstep{grid-template-columns:1fr;padding:18px}.sendstep .stepno{display:none}}
.linkbox{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.linkbox code{font-family:var(--mono);font-size:12px;background:var(--surface-2);padding:8px 10px;border-radius:var(--r-sm);word-break:break-all;flex:1;min-width:200px}
.btn-link{display:inline-block;padding:5px 12px;border-radius:var(--r-sm);background:var(--violet);color:var(--on-violet);text-decoration:none;font-weight:700;font-size:12px;line-height:1.4}
.status{font-size:13px;color:var(--text-muted)}.status.err{color:var(--danger)}.status.ok{color:var(--ok)}
.peopletools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.peopletools input[type=search]{max-width:280px}
.ptable{min-width:700px}
.ptable th,.ptable td{padding:14px 16px}
.ptable th:first-child,.ptable td:first-child{padding-left:28px}
.ptable th:last-child,.ptable td:last-child{padding-right:28px}
.ptable thead th{padding-top:16px;padding-bottom:14px}
.ptable tbody tr:last-child td{padding-bottom:19px}
.ptable .nm{font-weight:700}
.ptable .sub{color:var(--text-muted);font-size:12px}
/* ---------- modals / toast ---------- */
.modal-bg{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal{background:var(--surface);border:0;border-radius:var(--r-lg);box-shadow:var(--shadow-card);max-width:720px;width:100%;max-height:90vh;overflow:auto;padding:24px}
.modal h3{font-size:22px;margin-bottom:8px}
.modal .foot{display:flex;gap:8px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.picklist{max-height:50vh;overflow:auto;border:1px solid var(--line);border-radius:var(--r-md)}
.pick{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid var(--line);cursor:var(--glove-point)}
.pick:last-child{border-bottom:0}
.pick:hover{background:var(--surface-2)}
.pick input{width:auto;accent-color:var(--violet)}
.pick .sub{color:var(--text-muted);font-size:12px}
.pick.added{opacity:.5}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:var(--surface-2);color:var(--text);padding:10px 16px;border-radius:var(--r-md);font-size:13px;font-weight:600;z-index:60;box-shadow:var(--shadow-card);max-width:90vw}
.help{color:var(--text-dim);font-size:12px;margin-top:4px;font-weight:500}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px}
.hidden-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
@media print{
  body{background:#fff;color:#000;padding:0}
  .topbar,.banner,.jobhead,.tabs,.sheetbar,.toast,#modal-root{display:none!important}
  .sheetwrap{padding:0;border:0;background:#fff;box-shadow:none;max-width:none!important}
  .sheetwrap .cs{box-shadow:none!important}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* ---------- sign-in splash ---------- */
.splash{position:fixed;inset:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:24px 16px 56px;background:var(--ground);color:var(--text)}
.splash::before,.splash::after{content:"";position:fixed;border-radius:50%;pointer-events:none;filter:blur(40px)}
.splash::before{left:50%;top:50%;transform:translate(-50%,-50%);width:70vw;height:70vw;max-width:820px;max-height:820px;background:radial-gradient(circle,var(--ground-glow),transparent 65%)}
.splash::after{right:-14vw;bottom:-30vh;width:50vw;height:50vw;max-width:600px;max-height:600px;background:radial-gradient(circle,rgba(255,181,71,.1),transparent 65%)}
.splash-card{position:relative;z-index:1;width:min(400px,calc(100vw - 32px));background:var(--surface);color:var(--text);padding:32px;border-radius:var(--r-lg);box-shadow:var(--shadow-card);margin:24px auto}
.splash-card .brand.big{font-size:26px;font-family:var(--display);letter-spacing:-.04em;text-transform:none;font-weight:800;display:flex;align-items:center;gap:10px}
.splash-card .brand.big i{width:30px;height:30px;top:2px}
/* optical: a lowercase wordmark's mass is its x-height, which sits below the line-box center — the disc follows it */
.topbar .brand i{top:2px}
.splash-card .tag{color:var(--text-muted);margin:6px 0 20px;font-size:14px}
.splash-card label{margin-bottom:14px}
.splash-card .lbl{margin-bottom:6px}
.splash-card input{height:48px}
.splash-card .wide{width:100%;height:50px;padding:0 14px;font-size:16px;font-weight:800;margin-top:6px}
.switch{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;color:var(--text-muted);text-align:center}
.linkbtn{background:none;border:0;padding:0;color:var(--violet-text);font-weight:700;cursor:var(--glove-point);text-decoration:none;box-shadow:none}
.linkbtn:hover{text-decoration:underline;text-underline-offset:3px;background:none}
.row-between{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:10px}
.splash-foot{position:fixed;left:0;right:0;bottom:16px;text-align:center;color:var(--text-dim);font-size:12px;letter-spacing:0;text-transform:none;font-weight:600;pointer-events:none;z-index:1}
.topbar a.brand{color:inherit;text-decoration:none}
.pubbox{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}
@media (max-width:640px){.pubbox{grid-template-columns:1fr}}
.pubbox .big{font-family:var(--mono);font-size:14px;word-break:break-all}
.team li{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}

/* ---------- welcome (no jobs yet) ---------- */
.welcome{max-width:900px;margin:24px auto 0}
.welcome-head h2{font-size:38px;line-height:1;letter-spacing:-.04em}
.welcome-head p{color:var(--text-muted);margin:10px 0 24px;max-width:60ch;font-size:15px}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:700px){.choices{grid-template-columns:1fr}}
.choice{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:24px 24px 26px;border:0;border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-card);white-space:normal;line-height:1.35;transition:transform .16s,box-shadow .16s,background .16s}
.choice:hover{transform:translateY(-2px);background:var(--surface-2);border-color:transparent}
.choice .eyebrow{font-size:12px;letter-spacing:0;text-transform:none;color:var(--text-muted);font-weight:600}
.choice .big{font-family:var(--display);font-size:30px;font-weight:800;letter-spacing:-.035em;line-height:1}
.choice .desc{color:var(--text-muted);font-size:14px;margin-top:4px;font-weight:500}
.choice.primary{background:linear-gradient(180deg,var(--violet-bright),var(--violet));color:var(--on-violet);border-color:transparent;box-shadow:var(--glow-violet)}
.choice.primary .eyebrow,.choice.primary .desc{color:var(--on-violet);opacity:.8}
.choice.primary .big{color:var(--on-violet)}
.choice.primary:hover{box-shadow:var(--glow-violet-hover);background:linear-gradient(180deg,var(--violet-bright),var(--violet-bright))}

/* ---------- job switcher in the top bar ---------- */
.switch-wrap{position:relative;display:inline-flex;align-items:center;align-self:stretch}
.nav button.switcher{border:0;border-radius:var(--r-sm);background:transparent;font-family:var(--body);font-size:14px;letter-spacing:0;text-transform:none;font-weight:600;padding:7px 14px;color:var(--text-muted);display:inline-flex;align-items:center;gap:6px;max-width:300px;box-shadow:none;line-height:1.3}
.nav button.switcher .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav button.switcher .caret{font-size:10px;opacity:.7}
.nav button.switcher.on{color:var(--text);background:var(--surface-2);box-shadow:var(--shadow-raised)}
.nav button.switcher:hover{color:var(--text);background:var(--surface-2)}
.switch-menu{position:absolute;left:0;top:calc(100% + 8px);min-width:280px;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:6px;z-index:40}
.nav .switch-menu a,.nav .switch-menu button{display:flex;width:100%;align-items:center;gap:10px;text-align:left;border:0;background:transparent;border-radius:var(--r-sm);padding:9px 10px;color:var(--text);text-decoration:none;font-family:var(--body);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;white-space:normal;box-shadow:none}
.switch-menu a:hover,.switch-menu button:hover{background:var(--surface-2)}
.nav .switch-menu a.all{font-weight:800;letter-spacing:-.01em}
.switch-menu .hd{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-weight:700;padding:8px 10px 4px;border-top:1px solid var(--line);margin-top:4px}
.switch-menu .scroll{max-height:min(60vh,520px);overflow-y:auto;overscroll-behavior:contain;padding-right:2px}
.switch-menu .hd .n{font-weight:600;letter-spacing:0;color:var(--violet-text)}
.switch-menu .row{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.2}
.switch-menu .row small{color:var(--text-muted);font-size:12px}
.switch-menu .cur{color:var(--text-muted);cursor:default}
.switch-menu .cur:hover{background:transparent}
.nav .switch-menu button.new{color:var(--violet-text);font-weight:700}

/* ---------- new job: size picker ---------- */
.sizes{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
@media (max-width:640px){.sizes{grid-template-columns:1fr}}
.sizecard{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);white-space:normal;line-height:1.35;box-shadow:none}
.sizecard:hover{border-color:var(--violet-ring);background:var(--violet-soft);transform:translateY(-1px)}
.sizecard .big{font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:-.03em;line-height:1}
.sizecard .who{font-size:11px;letter-spacing:0;text-transform:none;color:var(--violet-text);background:var(--violet-soft);border:1px solid var(--violet-ring);padding:2px 8px;border-radius:var(--r-pill);font-weight:600}
.sizecard .desc{color:var(--text-muted);font-size:13px;margin-top:2px;font-weight:500}

/* ---------- crew sharing ---------- */
.peopletools{align-items:center}
.selbar{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 14px;background:var(--violet-soft);border:1px solid var(--violet-ring);border-radius:var(--r-md);margin-left:auto}
.selbar .n{font-weight:700;color:var(--violet-text);font-size:13px}
.selbar button{box-shadow:none}
.ptable th.ck,.ptable td.ck{width:44px;padding-right:0}
.ptable th.ck{padding-left:24px}.ptable td.ck{padding-left:24px}
.ptable th.ck+th,.ptable td.ck+td{padding-left:12px}
.ptable input[type=checkbox]{width:18px;height:18px;margin:0;accent-color:var(--violet);cursor:var(--glove-point);vertical-align:middle}
.ptable tr.sel td{background:var(--violet-soft)}
.inbox{display:grid;gap:12px;margin-bottom:18px}
.card.share{padding:18px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-card),inset 0 0 0 1px var(--violet-ring)}
.card.share .who{display:flex;align-items:center;gap:12px;font-size:14px}
.card.share .who .dim{color:var(--text-muted);font-weight:500}
.card.share .note{color:var(--text-muted);font-size:13px;margin-top:2px}
.card.share .names,.modal .names{display:flex;gap:6px;flex-wrap:wrap}
.card.share .foot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.card.share .foot .actions{margin-left:auto}
.moon.sm{width:20px;height:20px}
@media (max-width:700px){.selbar{margin-left:0;width:100%;justify-content:space-between}}

/* ---------- the mark knows what night it is ---------- */
.topbar .brand i::after{content:"";position:absolute;inset:0;border-radius:50%;background:rgba(21,23,31,.72);transform:translateX(var(--moon-shade,100%));transition:transform 1.2s cubic-bezier(.45,0,.25,1)}
.topbar .brand i.saving{animation:breathe 2.6s ease-in-out infinite}
/* click the mark: the shadow slides off to a full moon, glows, then slides back to tonight's phase */
.topbar .brand i.lit{animation:breathe 2.4s ease-in-out 1}
@media (prefers-reduced-motion:reduce){.topbar .brand i.saving{animation:none;opacity:.7}.topbar .brand i.lit{animation:none}}
.moonline{display:flex;align-items:center;gap:8px;color:var(--text-muted);font-size:12.5px;font-weight:500;margin-top:2px}
.moonline .moonglyph{color:var(--violet-text);flex:none}
.daypills .pill .lab{display:inline-flex;align-items:center;gap:6px}
.daypills .pill .night{display:inline-flex;align-items:center;color:var(--violet-text)}
.daypills .pill .night .moonglyph{width:10px;height:10px}

/* sign-in card: thank-you after the confirmation email */
.splash-note{display:flex;gap:10px;align-items:flex-start;margin:-6px 0 18px;padding:12px 14px;border-radius:var(--r-md);background:var(--violet-soft);border:1px solid var(--violet-ring);color:var(--text)}
.splash-note svg{color:var(--violet-text);flex:none;margin-top:1px}
.splash-note b{display:block;font-weight:800;font-size:15px;letter-spacing:-.01em}
.splash-note span{display:block;font-size:13.5px;color:var(--text-muted);margin-top:1px}
.splash-note[hidden]{display:none}


/* space-glove cursor on drag handles */
:root{--glove-point:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 32 32'><rect x='8.6' y='1.2' width='4.6' height='15' rx='2.3' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='13' y='9.6' width='4.4' height='7' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='17.3' y='10.2' width='4.4' height='7' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='21.6' y='11.2' width='4.4' height='7' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='3.6' y='14' width='4.4' height='8' rx='2.2' transform='rotate%28-32 5.8 18%29' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='7.4' y='13' width='18.2' height='13' rx='6' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><path d='M11.5 20q4.8 2 9.6 0' fill='none' stroke='%23B9B3D9' stroke-width='1.1' stroke-linecap='round'/><rect x='8.6' y='24.2' width='15.8' height='7' rx='2.2' fill='%237E6EF5' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><path d='M9.4 27.1h14.2' stroke='%23C9C1FF' stroke-width='1.1'/><circle cx='21.2' cy='29.3' r='0.9' fill='%23fff'/></svg>") 9 2,pointer;--glove-open:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 32 32'><rect x='8' y='4.7' width='4.4' height='12.3' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='12.3' y='3.5' width='4.4' height='13.5' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='16.6' y='3.9' width='4.4' height='13.1' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='20.9' y='5.5' width='4.4' height='11.5' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='2.6' y='13' width='4.4' height='9' rx='2.2' transform='rotate%28-38 4.8 17.5%29' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='7.4' y='12' width='18.2' height='14' rx='6' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><path d='M11 19.5q5 2.2 10 0' fill='none' stroke='%23B9B3D9' stroke-width='1.1' stroke-linecap='round'/><rect x='8.6' y='24.2' width='15.8' height='7' rx='2.2' fill='%237E6EF5' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><path d='M9.4 27.1h14.2' stroke='%23C9C1FF' stroke-width='1.1'/><circle cx='21.2' cy='29.3' r='0.9' fill='%23fff'/></svg>") 13 12,grab;--glove-fist:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 32 32'><rect x='8' y='11.2' width='4.4' height='5.8' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='12.3' y='10' width='4.4' height='7' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='16.6' y='10.4' width='4.4' height='6.6' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='20.9' y='12' width='4.4' height='5' rx='2.2' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='4.4' y='14' width='4.4' height='7' rx='2.2' transform='rotate%28-20 6.6 17.5%29' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><rect x='7.4' y='12' width='18.2' height='14' rx='6' fill='%23F6F5FC' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><path d='M11 19.5q5 2.2 10 0' fill='none' stroke='%23B9B3D9' stroke-width='1.1' stroke-linecap='round'/><rect x='8.6' y='24.2' width='15.8' height='7' rx='2.2' fill='%237E6EF5' stroke='%231B1530' stroke-width='1.3' stroke-linejoin='round'/><path d='M9.4 27.1h14.2' stroke='%23C9C1FF' stroke-width='1.1'/><circle cx='21.2' cy='29.3' r='0.9' fill='%23fff'/></svg>") 13 12,grabbing}

/* wide crew table: "more this way" hint */
.scrollx{position:relative}
.scrollrail{position:absolute;top:0;bottom:0;width:44px;pointer-events:none;z-index:4}
.scrollrail.r{right:-52px}
.scrollrail.l{left:-52px}
.scrollx.tight .scrollrail.r{right:-18px;width:34px}
.scrollx.tight .scrollrail.l{left:-18px;width:34px}
.scrollx.tight .scrollhint{width:32px;height:32px}
.scrollhint{position:sticky;top:calc(50vh - 22px);margin-top:4px;pointer-events:auto;width:40px;height:40px;padding:0;border-radius:999px;display:grid;place-items:center;
  background:linear-gradient(135deg,#7E6EF5,#5A4AD6);color:#fff;border:0;box-shadow:0 6px 18px -4px rgba(90,74,214,.55),0 0 0 4px color-mix(in srgb,var(--violet) 18%,transparent);
  opacity:0;transform:scale(.6);transition:opacity .2s,transform .2s;visibility:hidden}
.scrollhint:hover{filter:brightness(1.08)}
.scrollx.more-right .scrollrail.r .scrollhint,.scrollx.more-left:not(.more-right) .scrollrail.l .scrollhint{opacity:1;transform:none;visibility:visible}
.scrollx.more-right .scrollrail.r .scrollhint svg{animation:nudgeR 1.6s ease-in-out 3}
@keyframes nudgeR{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
.scrollx.more-right table.edit td.rowbtns{box-shadow:-22px 0 18px -14px rgba(30,20,80,.38)}
.scrollx.more-left .tablewrap{box-shadow:var(--shadow-card),inset 14px 0 14px -12px rgba(30,20,80,.3)}
@media (prefers-reduced-motion:reduce){.scrollx.more-right .scrollrail.r .scrollhint svg{animation:none}}

/* always-visible horizontal scrollbar for the wide crew table; sticks to the bottom of the window while the table runs past it */
.scrollx .tablewrap{scrollbar-width:none}
.scrollx .tablewrap::-webkit-scrollbar{display:none}
.hbar{display:none;position:sticky;bottom:12px;z-index:5;height:12px;margin:10px 18px 0;border-radius:999px;background:color-mix(in srgb,var(--surface) 70%,transparent);
  box-shadow:inset 0 0 0 1px var(--line),0 4px 14px -6px rgba(30,20,80,.25);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:var(--glove-point)}
.scrollx.scrolls .hbar{display:block}
.hthumb{position:absolute;top:2px;left:0;height:8px;border-radius:999px;background:linear-gradient(90deg,#7E6EF5,#5A4AD6);cursor:var(--glove-open)}
.hbar:hover .hthumb,.hbar.drag .hthumb{filter:brightness(1.1);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet) 22%,transparent)}
.hbar.drag,.hbar.drag .hthumb{cursor:var(--glove-fist)}

/* send tab: email composer + attachments */
.compose{margin-top:18px;padding:18px 18px 14px;border-radius:var(--r-md);background:var(--surface-2)}
.compose .lbl{display:block}
.compose textarea.msgbody{min-height:330px;font-size:14px;line-height:1.55;resize:vertical}
.inschips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 8px}
.inschips>span{font-size:12px;color:var(--text-muted);margin-right:2px}
.chipbtn{padding:3px 10px;font-size:12px;font-weight:600;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:none;color:var(--violet-text)}
.chipbtn:hover{border-color:var(--violet);background:color-mix(in srgb,var(--violet) 8%,var(--surface))}
.dropzone{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px;border:1.5px dashed var(--line-strong);border-radius:var(--r-md);background:var(--surface);transition:border-color .15s,background .15s}
.dropzone.over{border-color:var(--violet);background:color-mix(in srgb,var(--violet) 9%,var(--surface))}
.dropzone .files{display:flex;flex-wrap:wrap;gap:8px;width:100%}
.dropzone .file{display:inline-flex;align-items:center;gap:7px;padding:6px 8px 6px 10px;border-radius:10px;background:var(--surface-2);font-size:13px;font-weight:600;max-width:100%}
.dropzone .file small{font-weight:500;color:var(--text-muted);font-size:12px}
.dropzone .file.locked{color:var(--text-muted)}
.dropzone .file .x{padding:2px 6px;border:0;background:transparent;box-shadow:none;color:var(--text-muted);font-size:13px}
.dropzone .file .x:hover{color:var(--danger)}
.attachbtn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-2);font-weight:600;font-size:14px;cursor:var(--glove-point)}
.attachbtn:hover{border-color:var(--violet);color:var(--violet-text)}
.compose .subtools{margin-top:12px}
.preview .pvatt{margin-top:8px;font-size:12px;color:var(--text-muted)}

/* send tab: recipient list shows 5 at a time with an always-visible purple scrollbar */
.vscroll{position:relative}
.vscroll .rlist{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
.vscroll .rlist::-webkit-scrollbar{display:none}
.vscroll.scrolls .rlist{padding-right:18px}
.vbar{display:none;position:absolute;top:6px;bottom:6px;right:3px;width:10px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);cursor:var(--glove-point)}
.vscroll.scrolls .vbar{display:block}
.vthumb{position:absolute;left:2px;top:0;width:6px;border-radius:999px;background:linear-gradient(180deg,#7E6EF5,#5A4AD6);cursor:var(--glove-open)}
.vbar:hover .vthumb,.vbar.drag .vthumb{filter:brightness(1.1);box-shadow:0 0 0 3px color-mix(in srgb,var(--violet) 22%,transparent)}
.vbar.drag,.vbar.drag .vthumb{cursor:var(--glove-fist)}

/* sign-in splash: Sign in / Create account switch */
.authtabs{position:relative;display:grid;grid-template-columns:1fr 1fr;padding:4px;margin:18px 0 18px;border-radius:999px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}
.authtabs button{position:relative;z-index:1;border:0;background:transparent;box-shadow:none;padding:10px 12px;border-radius:999px;font-weight:700;font-size:14px;color:var(--text-muted);transition:color .2s}
.authtabs button.on{color:#fff}
.authtabs button:not(.on):hover{color:var(--text)}
.authtabs .pill{position:absolute;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:linear-gradient(135deg,#7E6EF5,#5A4AD6);box-shadow:0 6px 16px -6px rgba(90,74,214,.6);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.authtabs.signup .pill{transform:translateX(100%)}
@media (prefers-reduced-motion:reduce){.authtabs .pill{transition:none}}

/* site owner: Users */
.chip.bad{color:var(--danger);border-color:transparent;background:var(--danger-soft)}
.utable td{vertical-align:middle}
.utable td .sub{font-size:12px;color:var(--text-muted);margin-top:2px}
.utable .chips{display:flex;flex-wrap:wrap;gap:4px}
.utable td.uacts{text-align:right;white-space:nowrap}
.utable td.uacts .sm+.sm{margin-left:6px}
.utable tr.dim td:not(.uacts){opacity:.55}
.crumbs{font-size:13px;color:var(--text-muted);margin-bottom:2px}
.crumbs a{color:var(--violet-text);text-decoration:none}
.ujobs{display:grid;gap:8px}
.ujob{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2);color:var(--text);text-decoration:none}
.ujob:hover{box-shadow:inset 0 0 0 1.5px var(--violet)}
.ujob span{font-size:13px;color:var(--text-muted)}
.dayspick{display:inline-flex;gap:6px;margin-left:auto}
.utable th{text-align:left}
.ucard{padding:18px 20px}
.ucard h3 .n{color:var(--text-muted);font-weight:600;margin-left:4px}
.ucard .ptable th{text-align:left}
.archive{margin-top:18px}
.archhead{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;box-shadow:none;padding:6px 4px;font-weight:700;font-size:15px;color:var(--text)}
.archhead .caret{width:14px;color:var(--text-muted)}
.archhead .n{color:var(--text-muted);font-weight:600}
.archive .tablewrap{margin-top:8px}
