/* 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}
button{cursor:pointer;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:pointer;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;border-color:transparent;background:transparent;line-height:1.1;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) 64px 132px minmax(150px,1.2fr) 112px}
.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:1fr 1fr 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}.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: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;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:1}
.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:grab;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:grabbing}
.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}
table.edit td.rowbtns button{padding:4px 7px;border-color:transparent;color:var(--text-dim);box-shadow:none;background:transparent}
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:var(--surface);padding:16px;border:0;border-radius:var(--r-lg);box-shadow:var(--shadow-card)}
/* ---- 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:pointer}
.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:pointer}
.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) 64px 132px minmax(150px,1.2fr) 112px;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:pointer}
.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)}
.rrow .quick{display:flex;gap:4px;justify-content:flex-end}
.rrow .quick .sm{padding:4px 9px;font-size:12px}
.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:1.4fr 1fr;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}
.preview .bubble{background:var(--violet);color:var(--on-violet);border-radius:18px 18px 4px 18px;padding:10px 14px;font-size:14px;line-height:1.4;max-width:320px;margin-left:auto;word-break:break-word}
.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:pointer;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,.rrow .quick{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:pointer}
.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}
}
@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:pointer;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:pointer;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 .6s ease}
.topbar .brand i.saving{animation:breathe 1.6s ease-in-out infinite}
@keyframes breathe{0%,100%{box-shadow:var(--glow-moon);transform:scale(1)}50%{box-shadow:0 0 0 1px rgba(255,255,255,.18),0 12px 40px rgba(139,124,255,.85),0 2px 6px rgba(0,0,0,.4);transform:scale(1.08)}}
@media (prefers-reduced-motion:reduce){.topbar .brand i.saving{animation:none;opacity:.7}}
.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}
