/* TRACKED IT · coach page. Same look as the main page: black, terminal green, JetBrains Mono. */
@font-face{font-family:"JetBrains Mono";src:url(../assets/jetbrains-mono.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}
:root{--bg:#000;--g:rgb(118,252,156);--g2:rgba(118,252,156,.74);--g3:rgba(118,252,156,.42);--line:rgba(118,252,156,.22);--red:#ff6b5c;--amb:#ffc94a;
  --topbg:rgba(0,0,0,.92);--dockbg:rgba(0,0,0,.95);--inbg:#030703;--whybg:#0a0603;--curbg:#0b120b;--ph:rgba(118,252,156,.32);--scan:1;
  --pad:clamp(14px,4.5vw,40px);--max:860px;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
*{box-sizing:border-box}
html{background:var(--bg);color:var(--g);-webkit-text-size-adjust:100%}
body{margin:0;font-size:15px;line-height:1.55;min-height:100vh;overflow-x:hidden}
body::after{opacity:var(--scan);content:"";position:fixed;inset:0;pointer-events:none;z-index:50;
  background:repeating-linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,0) 2px,rgba(0,0,0,.22) 3px);mix-blend-mode:multiply}
a{color:var(--g);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{background:var(--g);color:var(--bg);text-decoration:none}
:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.dim{color:var(--g2)}
img{display:block;max-width:100%;height:auto}
.skip{position:absolute;left:-9999px;top:8px;background:var(--g);color:var(--bg);padding:6px 10px;z-index:100}
.skip:focus{left:8px}
.top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px var(--pad);padding-top:max(10px,env(safe-area-inset-top));background:var(--topbg);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;letter-spacing:.06em}
.brand img{width:28px;height:28px;border-radius:7px;border:1px solid var(--line)}
.top nav a{text-decoration:none;padding:4px 2px;font-size:14px}
.top nav a::before{content:"[";color:var(--g3)}.top nav a::after{content:"]";color:var(--g3)}
main{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.intro{padding:clamp(28px,6vw,56px) 0 8px}
.prompt{margin:0 0 6px;color:var(--g2);font-size:14px}
h1{margin:0;font-size:clamp(28px,8vw,52px);line-height:1.08;font-weight:800;letter-spacing:-.01em;text-transform:uppercase}
.cursor{display:inline-block;width:.5em;height:.8em;margin-left:.12em;background:var(--g);vertical-align:-.04em;animation:blink 1.1s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
.steps{margin:20px 0 0;padding-left:1.6em}
.steps li{margin:4px 0}.steps li::marker{color:var(--g3)}
.note{margin:16px 0 0;padding:10px 12px;border:1px solid var(--line);color:var(--g2);font-size:14px}
.card{border:1px solid var(--g3);margin:26px 0;padding:18px 12px 14px;position:relative}
.head{position:absolute;top:-.8em;left:10px;margin:0;padding:0 6px;background:var(--bg);font-size:14px;font-weight:700;letter-spacing:.06em}
.grid2{display:grid;grid-template-columns:1fr;gap:10px}
.f{display:flex;flex-direction:column;gap:3px;min-width:0}
.f>span{font-size:12px;color:var(--g2);letter-spacing:.04em;text-transform:uppercase}
input,select,textarea{font:inherit;font-size:16px;color:var(--g);background:var(--inbg);border:1px solid var(--g3);border-radius:0;padding:8px 8px;width:100%;min-width:0;-webkit-appearance:none;appearance:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--g2) 50%),linear-gradient(135deg,var(--g2) 50%,transparent 50%);background-position:calc(100% - 13px) 55%,calc(100% - 8px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:22px}
textarea{resize:vertical;min-height:2.6em}
input::placeholder,textarea::placeholder{color:var(--ph)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--g);box-shadow:0 0 0 1px var(--g)}
input[type=number]{-moz-appearance:textfield}
input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.bad{border-color:var(--red)!important;box-shadow:0 0 0 1px var(--red)!important}
.row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.btn{font:inherit;font-size:14px;font-weight:700;letter-spacing:.04em;color:var(--g);background:none;border:1px solid var(--g2);padding:10px 12px;min-height:42px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.btn:hover{background:var(--g);color:var(--bg)}
.btn.ghost{flex:1 1 180px}
.btn.add{width:100%;margin-top:10px;border-style:dashed}
.btn.go{flex:1 1 160px;background:var(--g);color:var(--bg);font-size:15px;min-height:48px}
.btn.go:hover{background:var(--bg);color:var(--g)}
.btn.x{border-color:var(--g3);color:var(--g2);padding:4px 10px;min-height:34px;font-weight:400}
.hint{margin:10px 0 0;color:var(--g2);font-size:13px}
.err{color:var(--red);margin:10px 0 0;font-weight:700}
.summary{margin:2px 0 0}
/* a workout / a meal */
.unit{border:1px dashed var(--g3);padding:12px 10px 10px;margin:14px 0 0}
.uhead{display:flex;gap:8px;align-items:flex-end}
.uhead .f{flex:1}
.ex,.it{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}
.exh{display:flex;gap:8px;align-items:flex-end}
.exh .f{flex:1}
.nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.nums.ex5{grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(0,1fr))}
.nums .f>span{font-size:11px}
.exn{margin-top:8px}
.tot{margin-top:8px;font-size:13px;color:var(--g2)}
.foot{max-width:var(--max);margin:30px auto 0;padding:28px var(--pad) max(36px,env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:14px}
.foot p{margin:0 0 8px}
/* upload a spreadsheet */
.up .lead{margin:0 0 4px}
.up.drag{border-color:var(--g);box-shadow:0 0 0 1px var(--g) inset}
.cols{margin:10px 0 0;padding:8px 10px;border:1px dashed var(--g3);font-size:12.5px;color:var(--g2)}
.cols p{margin:2px 0 6px}.cols p:last-child{margin-bottom:0}.cols b{color:var(--g);display:block;letter-spacing:.04em}
.xout{margin-top:14px;border-top:1px solid var(--line);padding-top:10px}
.xout .ok{margin:0;font-weight:700}
.xout .err{font-weight:700;margin:12px 0 0}
.lchk{color:var(--amb);margin:12px 0 0;font-weight:700}.probs.loose li::marker{color:var(--amb)}
.probs{margin:4px 0 0;padding-left:1.3em;color:var(--g);font-size:13.5px}.probs li{margin:3px 0}.probs li::marker{color:var(--red)}
.phead{margin:14px 0 0;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--g2)}
.preview{list-style:none;margin:4px 0 0;padding:8px 10px;border:1px solid var(--line);background:var(--inbg);font-size:13.5px;overflow-wrap:break-word}
.preview li{margin:3px 0}
.save .preview{margin-bottom:10px}
/* flags: red = must fix (saving waits), amber ⚠ = the page fixed it, please check */
input.chk,select.chk{border-color:var(--amb)!important;box-shadow:0 0 0 1px var(--amb)!important}
.flash{animation:flash 1.5s ease-out}
@keyframes flash{0%,30%{outline:3px solid var(--g);outline-offset:3px}100%{outline:3px solid transparent;outline-offset:3px}}
.whys:empty{display:none}
.why{margin:6px 0 0;padding:6px 8px;font-size:13px;line-height:1.45;border-left:3px solid;background:var(--whybg);display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.why.err{color:var(--red);border-color:var(--red)}
.why.chk{color:var(--amb);border-color:var(--amb)}
.wtag{font-weight:700;letter-spacing:.03em}
.btn.ok{min-height:30px;padding:2px 12px;font-size:13px;color:var(--amb);border-color:var(--amb);margin-left:auto}
.btn.ok:hover{background:var(--amb);color:var(--bg)}
.pf{border-bottom:1px dashed;cursor:pointer}
.pf.err{color:var(--red)}.pf.chk{color:var(--amb)}
.ptag{font-style:normal;font-weight:700;white-space:nowrap}
.fbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;padding:8px 10px;border:1px solid var(--g3)}
.fbar.haserr{border-color:var(--red)}.fbar.haschk{border-color:var(--amb)}
.fcount{margin:0;font-size:14px}
.fcount .nchk{color:var(--amb)}.fcount .nfix{color:var(--red)}
.fbar.clear .nchk,.fbar.clear .nfix{color:var(--g)}
.fok{color:var(--g)}
.btn.fnext{background:var(--g);color:var(--bg);min-height:40px;padding:8px 14px}
.btn.fnext:hover{background:var(--bg);color:var(--g)}
.flist{list-style:none;margin:10px 0 0;padding:0;font-size:13.5px}
.fi{margin:0 0 8px;padding:6px 8px;border-left:3px solid;display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px}
.fi.err{border-color:var(--red)}.fi.chk{border-color:var(--amb)}
.fi.cur{background:var(--curbg)}
.fgo{font:inherit;font-weight:700;background:none;border:0;padding:2px 0;color:var(--g);cursor:pointer;text-align:left}
.fwhere{text-decoration:underline;text-underline-offset:3px}
.fi.err .ftag{color:var(--red)}.fi.chk .ftag{color:var(--amb)}
.fwhy{flex-basis:100%;color:var(--g)}
.frow{color:var(--g2);font-size:12px}
.fdock{position:fixed;left:0;right:0;bottom:0;z-index:45;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px var(--pad);padding-bottom:max(8px,env(safe-area-inset-bottom));background:var(--dockbg);border-top:2px solid var(--g3);font-size:14px;font-weight:700}
.fdock[hidden]{display:none}
.fdock.haserr{border-color:var(--red)}.fdock.haschk{border-color:var(--amb)}
body.docked .foot{padding-bottom:90px}
@media (min-width:640px){
  .grid2{grid-template-columns:2fr 2fr 1fr}
  .nums{grid-template-columns:repeat(6,minmax(0,1fr))}
  .nums.ex5{grid-template-columns:minmax(0,1.6fr) repeat(4,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){.cursor{animation:none}}

/* daily targets (Mon–Sun) and a meal's own totals */
.amb{color:var(--amb)}
.dgrid{display:grid;grid-template-columns:44px repeat(4,minmax(0,1fr));column-gap:6px;row-gap:0;align-items:center;margin-top:4px}
.dgrid .dh{font-size:11px;color:var(--g2);letter-spacing:.04em;padding-bottom:3px}
.dgrid .dn{font-weight:700;font-size:14px;margin-bottom:6px}
.dgrid input{margin-bottom:6px;padding:7px 6px;text-align:right}
.dwhy{grid-column:1/-1;font-size:12px;margin:-2px 0 4px}
.dwhy .why{margin:2px 0 6px}
.trow{align-items:flex-end}
.tfrom{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.tfrom select{width:auto;min-width:86px}
.tog{display:flex;gap:10px;align-items:flex-start;margin:10px 0 0;padding:8px 10px;border:1px solid var(--line);cursor:pointer;font-size:13px;color:var(--g2)}
.tog b{color:var(--g);letter-spacing:.04em;margin-right:4px}
.tog input{width:20px;height:20px;flex:0 0 20px;margin:1px 0 0;padding:0;border:1px solid var(--g2);background:var(--inbg);position:relative}
.tog input:checked{background:var(--g)}
.tog input:checked::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid var(--bg);border-width:0 2px 2px 0;transform:rotate(45deg)}
.mtot{border-left:2px solid var(--g);padding:2px 0 2px 10px;margin-top:10px}
.nums.n4{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:4px}
.mth{margin-top:6px}

/* looks: CODE (default, the terminal green above) · LIGHT · DARK — the app's own LIGHT (white) and DARK (beige on black) schemes.
   Chosen with the switch in the top bar; kept in localStorage 'trackedit.coach.theme'. */
html[data-look=light]{--bg:#ffffff;--g:#111111;--g2:#6e6e6e;--g3:#8f8f8f;--line:#dddddd;--red:#c4111f;--amb:#9a5800;
  --topbg:rgba(255,255,255,.94);--dockbg:rgba(255,255,255,.96);--inbg:#ffffff;--whybg:#faf6ef;--curbg:#f0f0f0;--ph:#a8a8a8;--scan:0;color-scheme:light}
html[data-look=dark]{--bg:#000000;--g:#f5efe1;--g2:#958c7e;--g3:#6f685d;--line:#2b2822;--red:#ff6f61;--amb:#ffc56b;
  --topbg:rgba(0,0,0,.92);--dockbg:rgba(0,0,0,.95);--inbg:#000000;--whybg:#120d06;--curbg:#2b2721;--ph:#5f594f;--scan:0;color-scheme:dark}
html[data-look=code]{color-scheme:dark}
html[data-look=light] .why.err,html[data-look=light] .fi.err{background:#fdf1f2}
.tright{display:flex;align-items:center;gap:10px}
.look{display:inline-flex;border:1px solid var(--g3)}
.look button{font:inherit;font-size:11px;font-weight:700;letter-spacing:.04em;color:var(--g2);background:none;border:0;padding:0 7px;min-height:30px;min-width:40px;cursor:pointer}
.look button+button{border-left:1px solid var(--g3)}
.look button[aria-pressed=true]{background:var(--g);color:var(--bg)}
.look button:hover{color:var(--g)}.look button[aria-pressed=true]:hover{color:var(--bg)}
@media (max-width:360px){.look button{padding:0 5px;min-width:34px;font-size:10.5px}.tright{gap:7px}}
