/* Paiva Care Blueprints — neo-brutalist brand system (matches /portal tokens).
   Square corners everywhere, 2px ink borders, hard offset shadows, teal accent. */
:root{
  --paper:#F8F1E4; --card:#FFFBF0; --ink:#1D2B26; --ink-soft:#3C4A44; --ink-dim:#5E6E66;
  --teal:#0F7E84; --teal-soft:#8FD6C4; --mint:#D9EBE7; --amber:#E8A33D; --attn:#B96A3F;
  --ok:#4C8C6B; --stop:#B0432F; --stop-bg:#FBE9E3;
  --display:'Bricolage Grotesque',sans-serif; --body:'Instrument Sans',sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{margin:0;padding:0;box-sizing:border-box;border-radius:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;min-height:100vh}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;text-align:inherit}
input,select,textarea{font:inherit;color:var(--ink)}
a{color:inherit}
:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.hidden{display:none!important}
.mono{font-family:var(--mono)}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}

/* ---------- chrome ---------- */
.top{position:sticky;top:0;z-index:40;background:var(--paper);border-bottom:2px solid var(--ink);padding-top:env(safe-area-inset-top,0px)}
.top-in{max-width:620px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{font-family:var(--display);font-weight:800;font-size:17px;letter-spacing:.03em;line-height:1.05}
.brand small{display:block;font-family:var(--mono);font-weight:500;font-size:9.5px;letter-spacing:.22em;color:var(--teal)}
.langsw{display:flex;border:2px solid var(--ink);background:var(--card)}
.langsw button{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;padding:6px 10px;min-height:34px}
.langsw button+button{border-left:2px solid var(--ink)}
.langsw button[aria-pressed="true"]{background:var(--ink);color:var(--card)}
.app{max-width:620px;margin:0 auto;padding:22px 16px calc(60px + env(safe-area-inset-bottom,0px))}

/* ---------- type ---------- */
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);font-weight:600;margin-bottom:8px}
.h1{font-family:var(--display);font-weight:800;font-size:clamp(32px,9vw,48px);line-height:.98;text-transform:uppercase;letter-spacing:-.01em;margin-bottom:12px}
.h2{font-family:var(--display);font-weight:800;font-size:clamp(22px,6vw,28px);line-height:1.05;text-transform:uppercase;margin-bottom:10px}
.h3{font-family:var(--display);font-weight:700;font-size:18px;line-height:1.2;margin-bottom:6px}
.lede{color:var(--ink-soft);font-size:16.5px;margin-bottom:18px;max-width:52ch}
.small{font-size:13.5px;color:var(--ink-soft)}
.tiny{font-size:12px;color:var(--ink-dim)}
.label{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--ink-dim)}
p+p{margin-top:8px}

/* ---------- blocks ---------- */
.card{background:var(--card);border:2px solid var(--ink);box-shadow:6px 6px 0 var(--ink);padding:18px;margin-bottom:18px}
.card.teal{box-shadow:6px 6px 0 var(--teal)}
.card.mint{background:var(--mint)}
.card.ink{background:var(--ink);color:var(--paper);box-shadow:6px 6px 0 var(--amber)}
.card.ink .small,.card.ink .tiny{color:#C9D6CF}
.card.ink .kicker{color:var(--teal-soft)}
.card.stop{background:var(--stop-bg);border-color:var(--stop);box-shadow:6px 6px 0 var(--stop)}
.card.flat{box-shadow:none}
.row{display:flex;gap:10px;align-items:center}
.row.wrap{flex-wrap:wrap}
.between{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stack>*+*{margin-top:10px}
.sep{border:0;border-top:2px solid var(--ink);margin:16px 0}
.sep.thin{border-top:1px solid rgba(29,43,38,.2)}
.tag{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;border:2px solid var(--ink);padding:3px 8px;background:var(--card)}
.tag.teal{background:var(--teal);color:var(--card);border-color:var(--teal)}
.tag.amber{background:var(--amber)}
.tag.attn{background:var(--attn);color:var(--card);border-color:var(--attn)}
.tag.ok{background:var(--ok);color:var(--card);border-color:var(--ok)}
.list{list-style:none}
.list li{position:relative;padding-left:22px;margin-top:8px}
.list li::before{content:'';position:absolute;left:0;top:.6em;width:10px;height:10px;background:var(--teal);border:2px solid var(--ink)}
.numlist{list-style:none;counter-reset:n}
.numlist li{counter-increment:n;position:relative;padding-left:34px;margin-top:10px}
.numlist li::before{content:counter(n,decimal-leading-zero);position:absolute;left:0;top:0;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--teal)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--display);font-weight:700;font-size:16px;border:2px solid var(--ink);padding:14px 22px;min-height:52px;background:var(--teal);color:var(--card);box-shadow:4px 4px 0 var(--ink);text-decoration:none;transition:transform .1s ease,box-shadow .1s ease;text-align:center}
.btn:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}
.btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
.btn.block{display:flex;width:100%}
.btn.amber{background:var(--amber);color:var(--ink)}
.btn.plain{background:var(--card);color:var(--ink)}
.btn.ink{background:var(--ink);color:var(--card)}
.btn.small{font-size:13.5px;padding:9px 14px;min-height:40px;box-shadow:3px 3px 0 var(--ink)}
.btn[disabled]{opacity:.4;pointer-events:none}
.link{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:8px 0;min-height:40px;display:inline-flex;align-items:center}
.btnrow{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.btnrow .btn{flex:1 1 160px}

/* ---------- progress ---------- */
.segs{display:flex;gap:4px;margin-bottom:18px}
.segs i{flex:1;height:6px;background:var(--teal-soft);border:0}
.segs i.on{background:var(--teal)}
.weekbar{display:grid;grid-template-columns:repeat(8,1fr);gap:4px}
.weekbar span{height:28px;border:2px solid var(--ink);background:var(--card);font-family:var(--mono);font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:600}
.weekbar span.done{background:var(--teal);color:var(--card)}
.weekbar span.now{background:var(--amber)}

/* ---------- quiz ---------- */
.choices{display:grid;gap:10px}
.choice{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;background:var(--card);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink);padding:16px;min-height:60px;text-align:left;transition:transform .1s ease,box-shadow .1s ease}
.choice:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}
.choice[aria-pressed="true"]{background:var(--ink);color:var(--card)}
.choice b{font-family:var(--display);font-size:17px;font-weight:700;display:block}
.choice small{display:block;font-size:13px;color:var(--ink-dim);margin-top:2px}
.choice[aria-pressed="true"] small{color:#C9D6CF}
.choice .arrow{font-family:var(--display);font-weight:800;font-size:20px}
.choice .soon{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;border:2px solid currentColor;padding:2px 6px;white-space:nowrap}

/* ---------- exercise screen ---------- */
.photo{position:relative;border:2px solid var(--ink);background:var(--mint);aspect-ratio:4/3;margin-bottom:16px;overflow:hidden}
.photo img{width:100%;height:100%;object-fit:cover;display:block}
.ph{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:14px;background:
  repeating-linear-gradient(135deg,rgba(15,126,132,.07) 0 12px,transparent 12px 24px),var(--mint)}
.ph .phname{font-family:var(--display);font-weight:800;font-size:clamp(20px,6vw,28px);line-height:1.02;text-transform:uppercase;max-width:15ch}
.ph .phfoot{display:flex;justify-content:space-between;align-items:flex-end;gap:8px}
.ph .phnote{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);font-weight:600}
.exchip{position:absolute;top:10px;right:10px;font-family:var(--mono);font-size:11px;font-weight:600;background:var(--ink);color:var(--paper);padding:3px 8px;z-index:2}
.dose{border:2px solid var(--ink);background:var(--card);padding:10px 12px;margin-bottom:14px}
.dose b{font-family:var(--mono);font-size:14.5px;font-weight:600;display:block;margin-top:2px}
.blk{margin-bottom:12px}
.blk .label{color:var(--teal);margin-bottom:3px}
.blk.err .label{color:var(--attn)}
.blk.err p{color:var(--attn)}
.why{border:2px solid var(--ink);background:var(--paper);padding:14px;margin:14px 0}
.why .label{color:var(--ink)}
.why .shot{font-family:var(--display);font-weight:700;font-size:16px;line-height:1.3;margin:6px 0 10px}
.why .ev{font-size:13.5px;color:var(--ink-soft);border-top:1px solid rgba(29,43,38,.2);padding-top:9px}
.why .refs{font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);margin-top:6px}
.donebar{display:flex;align-items:center;gap:12px;border-top:2px solid var(--ink);padding-top:14px;margin-top:6px}
.check{width:44px;height:44px;flex:0 0 44px;border:2px solid var(--ink);background:var(--card);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:22px}
.check[aria-pressed="true"]{background:var(--ok);border-color:var(--ink);color:var(--card)}
.loadnote{border:2px solid var(--attn);background:#F7E6D9;padding:10px 12px;margin-bottom:14px;font-size:14px}
.loadnote b{color:var(--attn)}

/* ---------- tools ---------- */
.tool{border:2px solid var(--ink);background:var(--ink);color:var(--paper);padding:14px;margin:12px 0;display:flex;align-items:center;justify-content:space-between;gap:12px}
.tool .big{font-family:var(--mono);font-size:34px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}
.tool .btn{box-shadow:3px 3px 0 var(--teal-soft);border-color:var(--paper)}
.cuebox{border:2px solid var(--ink);background:var(--card);height:160px;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:64px;margin:12px 0}
.cuebox.go{background:var(--amber)}

/* ---------- sliders ---------- */
.scale{margin:14px 0 20px}
.scale .row{justify-content:space-between}
.scale output{font-family:var(--mono);font-size:26px;font-weight:600;min-width:64px;text-align:right}
.scale input[type=range]{width:100%;margin-top:10px;accent-color:var(--teal);height:32px}
.scale .ends{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;color:var(--ink-dim);letter-spacing:.06em}
.zone{font-family:var(--mono);font-size:11px;letter-spacing:.06em;font-weight:600;padding:2px 6px;border:2px solid var(--ink)}
.zone.ok{background:var(--mint)}
.zone.hi{background:var(--attn);color:var(--card);border-color:var(--attn)}

/* ---------- inputs ---------- */
.field{display:block;margin-top:10px}
.field span{display:block;margin-bottom:4px}
.field input{width:100%;border:2px solid var(--ink);background:var(--card);padding:12px;font-size:18px;font-family:var(--mono);min-height:50px}
.field input[type=email],.field input[type=text]{font-family:var(--body);font-size:16px}
.chk{display:flex;gap:10px;align-items:flex-start;margin-top:12px;font-size:14px}
.chk input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--teal);margin-top:2px}

/* ---------- schedule ---------- */
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.day{border:2px solid var(--ink);background:var(--card);min-height:84px;padding:6px 2px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center}
.day .dn{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.06em}
.day .dt{font-family:var(--display);font-weight:800;font-size:15px;line-height:1}
.day .dl{font-family:var(--mono);font-size:8.5px;letter-spacing:.04em;text-transform:uppercase;line-height:1.15}
.day.practice{background:var(--mint)}
.day.match{background:var(--amber)}
.day.sess{background:var(--teal);color:var(--card)}
.day.today .dn{background:var(--ink);color:var(--paper);padding:1px 4px}
.day.sess.today .dn{background:var(--paper);color:var(--ink)}
.legend{display:flex;gap:12px;flex-wrap:wrap;margin-top:10px}
.legend span{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.legend i{width:14px;height:14px;border:2px solid var(--ink);display:inline-block}

/* ---------- phases ---------- */
.phase{border:2px solid var(--ink);background:var(--card);padding:14px;position:relative}
.phase+.phase{margin-top:10px}
.phase.now{box-shadow:5px 5px 0 var(--teal)}
.phase.done{background:var(--mint)}
.phase .pn{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.1em;color:var(--teal)}
.phase .pt{font-family:var(--display);font-weight:800;font-size:20px;text-transform:uppercase;line-height:1.1}

/* ---------- prove it ---------- */
.prove{display:grid;grid-template-columns:1fr auto auto auto;gap:6px 12px;align-items:center}
.prove .h{font-family:var(--mono);font-size:10px;letter-spacing:.1em;color:var(--ink-dim);text-transform:uppercase}
.prove .v{font-family:var(--mono);font-size:15px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.prove .d.up{color:var(--ok)}
.prove .d.down{color:var(--attn)}
.prove .n{font-family:var(--display);font-weight:700;font-size:15px}

/* ---------- lab ---------- */
.lab{border:2px solid var(--ink);background:var(--card);margin-bottom:12px}
.lab>button{display:flex;justify-content:space-between;gap:12px;width:100%;padding:14px;font-family:var(--display);font-weight:700;font-size:16.5px;line-height:1.25;text-align:left;min-height:56px}
.lab>button span{font-family:var(--mono);font-size:18px}
.lab .lb{padding:0 14px 14px}
.lab .lb .label{color:var(--teal);margin-top:12px;margin-bottom:3px}
.lab .lb .label.n{color:var(--attn)}
.ref{font-size:12.5px;color:var(--ink-soft);margin-top:8px;padding-left:12px;border-left:3px solid var(--teal-soft)}

/* ---------- share card (rendered at 540×675 → exported 1080×1350) ---------- */
.cardwrap{width:100%;max-width:540px;margin:0 auto 18px;aspect-ratio:4/5;overflow:hidden;border:2px solid var(--ink);box-shadow:6px 6px 0 var(--teal)}
.sharecard{width:540px;height:675px;transform-origin:0 0;background:var(--ink);color:var(--paper);padding:36px 36px 30px;display:flex;flex-direction:column;font-family:var(--body);position:relative}
.sc-top{display:flex;justify-content:space-between;align-items:baseline;border-bottom:2px solid rgba(248,241,228,.35);padding-bottom:14px}
.sc-brand{font-family:var(--display);font-weight:800;font-size:22px;letter-spacing:.05em}
.sc-sub{font-family:var(--mono);font-size:11px;letter-spacing:.2em;color:var(--teal-soft)}
.sc-sport{font-family:var(--display);font-weight:800;font-size:64px;line-height:.92;text-transform:uppercase;margin-top:28px}
.sc-sport span{color:var(--amber)}
.sc-name{font-family:var(--mono);font-size:13px;letter-spacing:.18em;color:#C9D6CF;margin-top:12px;text-transform:uppercase}
.sc-weeks{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin-top:26px}
.sc-weeks i{height:16px;border:2px solid var(--paper)}
.sc-weeks i.on{background:var(--teal-soft);border-color:var(--teal-soft)}
.sc-weeks i.now{background:var(--amber);border-color:var(--amber)}
.sc-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px}
.sc-stat small{line-height:1.35}
.sc-stat{border:2px solid var(--paper);padding:12px}
.sc-stat b{display:block;font-family:var(--mono);font-size:30px;font-weight:600;line-height:1}
.sc-stat small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#C9D6CF;margin-top:6px}
.sc-stat.hl{background:var(--teal);border-color:var(--teal)}
.sc-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:flex-end;font-family:var(--mono);font-size:11px;letter-spacing:.12em}
.sc-prove{font-family:var(--display);font-weight:800;font-size:26px;text-transform:uppercase;background:var(--amber);color:var(--ink);padding:4px 10px}

/* ---------- modal / toast ---------- */
.modal{position:fixed;inset:0;z-index:80;background:rgba(29,43,38,.55);display:flex;align-items:flex-end;justify-content:center;padding:16px}
.modal .card{width:100%;max-width:560px;margin:0;max-height:88vh;overflow:auto}
@media(min-width:640px){.modal{align-items:center}}
.toast{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:90;max-width:560px;margin:0 auto;background:var(--ink);color:var(--paper);border:2px solid var(--ink);box-shadow:4px 4px 0 var(--teal);padding:12px 14px;font-size:14.5px}

/* ---------- footer ---------- */
.foot{margin-top:30px;padding-top:16px;border-top:2px solid var(--ink);font-size:12px;color:var(--ink-dim)}
.foot a{text-decoration:underline}

@media (max-width:380px){
  .days{gap:3px}.day .dt{font-size:13px}.day .dl{font-size:7.5px}
  .card{padding:15px}
}

/* two-frame photos (start/end) that alternate, like the Paiva Care app */
.photo.swap{background:#fff}
.photo.swap img{object-fit:cover}
.photo.swap img.f2{position:absolute;inset:0;width:100%;height:100%;animation:pcSwap 1.6s ease-in-out infinite alternate}
@keyframes pcSwap{0%,35%{opacity:0}65%,100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.photo.swap img.f2{animation:none;opacity:0}}
.phcredit{position:absolute;right:8px;bottom:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.88);color:var(--ink);padding:2px 6px}

/* =====================================================================
   COURT MODERN layer (26/10/2026) — same markup, new skin.
   Tokens come from /assets/court-modern-v1.css (loaded first). Soft corners, 1.5px borders,
   one hard shadow per screen (the main button), sentence-case headings.
   ===================================================================== */
:root{
  --paper:var(--cm-paper); --card:var(--cm-card); --ink:var(--cm-ink); --ink-soft:var(--cm-ink-soft); --ink-dim:var(--cm-muted);
  --teal:var(--cm-teal); --mint:var(--cm-mint); --amber:var(--cm-sun); --attn:var(--cm-clay-deep);
  --display:var(--cm-display); --body:var(--cm-body); --mono:var(--cm-mono);
}
.top{border-bottom:1px solid var(--cm-hair);background:rgba(246,240,228,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.langsw{border:var(--cm-bw) solid var(--ink);border-radius:var(--cm-pill);overflow:hidden}
.langsw button+button{border-left:0}
.kicker{color:var(--cm-teal-deep)}
.h1{text-transform:none;letter-spacing:-.025em;line-height:.95}
.h2{text-transform:none;letter-spacing:-.015em}
.phase .pt,.ph .phname,.sc-sport,.sc-prove{text-transform:none}

.card{border:var(--cm-bw) solid var(--ink);border-radius:var(--cm-r);box-shadow:none}
.card.teal{background:var(--cm-hero);color:var(--cm-hero-ink);border-color:var(--cm-hero);box-shadow:none}
.card.teal:has(.btn:not(.plain)){box-shadow:var(--cm-shadow-clay)}
.card.teal [style*="ink-soft"],.card.teal [style*="--ink)"]{color:var(--cm-hero-soft)!important}
.card.teal .kicker{color:var(--cm-hero-kicker)}
.card.teal .small,.card.teal .tiny,.card.teal .label{color:var(--cm-hero-soft)}
.card.teal .h3,.card.teal .h2{color:var(--cm-hero-ink)}
.card.teal .tag{background:transparent;color:var(--cm-hero-soft);border-color:#43514B}
.card.teal .btn:not(.plain):not(.amber):not(.ink){background:var(--cm-clay);color:var(--cm-on-accent);border-color:var(--cm-clay);box-shadow:none}
.card.teal .btn.plain{border-color:var(--cm-card)}
.card.teal .link{color:var(--cm-hero-ink)}
.card.teal .loadnote{background:rgba(255,255,255,.08);color:var(--cm-hero-ink)}
.card.mint{background:var(--mint);border-color:transparent}
.card.ink{box-shadow:none;border-color:var(--ink)}
.card.stop{border-radius:var(--cm-r);box-shadow:none}
.card.flat{border-color:var(--cm-hair)}
.tag{border-radius:var(--cm-pill);border-width:var(--cm-bw);padding:3px 9px}
.list li::before{border-radius:50%;border-width:var(--cm-bw)}
.sep{border-top-width:1px;border-top-color:var(--cm-hair)}

.btn{border-radius:var(--cm-pill);border-width:var(--cm-bw);background:var(--cm-clay);color:var(--cm-on-accent);box-shadow:var(--cm-shadow);min-height:var(--cm-touch)}
.btn.plain,.btn.ink,.btn.amber,.btn.small{box-shadow:none}
.btn.amber{background:var(--cm-sun);color:var(--cm-ink)}
.btn.small{min-height:44px}

.segs i{border-radius:var(--cm-pill);background:var(--cm-track)}
.weekbar span{border-radius:10px;border-width:var(--cm-bw);border-color:var(--cm-hair);color:var(--ink-dim)}
.weekbar span.done{border-color:var(--teal)}
.weekbar span.now{background:var(--card);border-color:var(--ink);color:var(--ink)}

.choice{border-radius:var(--cm-r);border-width:var(--cm-bw);box-shadow:none}
.choice:hover{transform:none;box-shadow:none;border-color:var(--teal)}
.choice .soon{border-radius:var(--cm-pill);border-width:1.5px}

.photo{border:0;border-radius:var(--cm-r-lg)}
.exchip{border-radius:var(--cm-pill)}
.dose{border-radius:var(--cm-r-sm);border-width:var(--cm-bw)}
.why{border-radius:var(--cm-r);border-width:var(--cm-bw);background:var(--card)}
.donebar{border-top:1px solid var(--cm-hair)}
.check{border-radius:50%;border-width:var(--cm-bw)}
.loadnote{border-radius:var(--cm-r-sm);border-width:var(--cm-bw)}
.tool{border-radius:var(--cm-r);border:0}
.tool .btn{box-shadow:none}
.cuebox{border-radius:var(--cm-r);border-width:var(--cm-bw)}
.zone{border-radius:var(--cm-pill);border-width:var(--cm-bw)}
.field input{border-radius:var(--cm-r-sm);border-width:var(--cm-bw);background:var(--paper)}
.field input:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--mint)}
.day{border-radius:12px;border-width:var(--cm-bw);border-color:var(--cm-hair)}
.day.sess{border-color:var(--teal)}
.day.today .dn{border-radius:6px}
.legend i{border-radius:4px;border-width:var(--cm-bw)}
.phase{border-radius:var(--cm-r);border-width:var(--cm-bw);border-color:var(--cm-hair)}
.phase.now{border-color:var(--teal);box-shadow:0 0 0 3px var(--mint)}
.phase.done{border-color:transparent}
.lab{border-radius:var(--cm-r);border-width:var(--cm-bw)}
.ref{border-left-color:var(--mint)}
.cardwrap{border-radius:var(--cm-r);border-width:var(--cm-bw);box-shadow:none}
.modal .card{border-radius:var(--cm-r-lg)}
.toast{border-radius:var(--cm-r);box-shadow:none}
.foot{border-top:1px solid var(--cm-hair)}

/* coach: segmented tabs + photo slots */
.cmseg{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--cm-track);border-radius:var(--cm-pill);margin:0 0 16px}
.cmseg button{min-height:40px;border-radius:var(--cm-pill);font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:center;color:var(--ink-dim)}
.cmseg button[aria-selected="true"]{background:var(--card);color:var(--ink);box-shadow:0 1px 0 var(--cm-hair)}
.phslot{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;aspect-ratio:4/3;border:var(--cm-bw) dashed var(--cm-hair);border-radius:var(--cm-r-sm);background:var(--paper);overflow:hidden;cursor:pointer}
.phslot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phslot span{font-family:var(--display);font-size:28px;color:var(--teal)}
.phslot b{position:relative;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;background:var(--card);padding:2px 8px;border-radius:var(--cm-pill)}
.phslot input{position:absolute;inset:0;opacity:0;cursor:pointer}
