@font-face{font-family:'KF Display';src:url('/fonts/kfserif-heavyitalic.woff2') format('woff2');font-weight:900;font-style:italic;font-display:swap}
@font-face{font-family:'KF Sans';src:url('/fonts/kfsans-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'KF Sans';src:url('/fonts/kfsans-light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'KF Text';src:url('/fonts/kfserif-light.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}

:root{
  --stage:#000000; --stage2:#0D0D0D; --stage3:#1C1C1C;
  --sheet:#FFFFFF; --ink:#F5002B; --held:#FF9B17; --go:#BFE036;
  --mute:#7F7F7F; --rule:#E6E6E6; --rule2:#F0F0F0; --char:#141414;
  --sans:'KF Sans','Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --disp:'KF Display',Georgia,'Times New Roman',serif;
  --text:'KF Text',Georgia,serif;
  --pad:22px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--stage);color:#fff;font-family:var(--sans);font-weight:400;
     font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
a{color:inherit}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.d{font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;line-height:1.08;text-wrap:balance}
.lab{font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:400}
.num{font-variant-numeric:tabular-nums}
.mute{color:var(--mute)}

/* ---------- chrome ---------- */
.top{position:sticky;top:0;z-index:60;background:var(--stage);border-bottom:1px solid #262626;
     display:flex;align-items:center;gap:26px;padding:0 var(--pad);height:54px}
.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.brand img{height:15px;width:auto;display:block}
.brand .mk{font-family:var(--disp);font-style:italic;font-weight:900;font-size:21px;letter-spacing:-.01em;
     border-left:1px solid #333;padding-left:12px;line-height:1}
.nav{display:flex;gap:2px;flex:1 1 auto}
.nav button{padding:6px 11px;color:#8A8A8A;border-radius:2px}
.nav button:hover{color:#fff}
.nav button[aria-current="true"]{color:#fff;background:var(--stage3)}
.nav .cnt{color:var(--held);margin-left:5px}
.who{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.who select{background:var(--stage3);color:#fff;border:1px solid #333;padding:5px 8px;border-radius:2px;
     font-family:var(--sans);font-size:12px;max-width:210px}
.clockbar{background:#141414;border-bottom:1px solid #262626;padding:5px var(--pad);color:#8C8C8C;
     font-size:11px;letter-spacing:.06em;text-transform:uppercase;display:flex;gap:14px;flex-wrap:wrap}
.clockbar b{color:#A8A8A8;font-weight:400}

main{padding:var(--pad);max-width:1420px;margin:0 auto}
.sheet{background:var(--sheet);color:var(--char);border-radius:0}
.sheet-p{padding:24px 26px}

/* ---------- the line ---------- */
.linehead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
    padding:24px 26px 16px;border-bottom:2px solid var(--char)}
.linehead h1{margin:0;font-size:40px}
.linehead .sub{font-size:13px;color:var(--mute);text-align:right;line-height:1.5}
.band{background:var(--char);color:#fff;padding:6px 26px;font-size:11px;letter-spacing:.11em;
    text-transform:uppercase;display:flex;justify-content:space-between}
.band.crit{background:var(--ink)}
.row{display:grid;grid-template-columns:112px 52px minmax(0,1fr) 108px 190px 74px;
    gap:18px;align-items:center;padding:14px 26px;border-bottom:1px solid var(--rule2);
    width:100%;text-align:left;transition:background .12s}
.row:hover{background:#FAFAFA}
.row:last-child{border-bottom:0}
.tm{font-family:var(--disp);font-style:italic;font-weight:900;font-size:33px;line-height:1;
    font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.tm.hot{color:var(--ink)}
.tm.none{font-size:15px;color:var(--mute);letter-spacing:.06em}
.tm.past{color:var(--mute);font-size:25px}
.tm.sm{font-size:25px}
.tm .ago{font-family:var(--sans);font-style:normal;font-weight:400;font-size:11px;
    letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.row .thumb{width:52px;height:52px;object-fit:cover;display:block;background:#EDEDED}
.rt{min-width:0}
.rt h3{margin:0;font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;
    font-size:17px;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt .meta{font-size:12.5px;color:var(--mute);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rt .flag{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--held);margin-top:4px}
.rt .flag.red{color:var(--ink)}
.mini{display:flex;gap:3px}
.mini i{width:10px;height:10px;display:block;border:1px solid #C9C9C9;background:#fff}
.mini i.on{background:var(--char);border-color:var(--char)}
.mini i.held{background:var(--held);border-color:var(--held)}
.mini i.bad{background:var(--ink);border-color:var(--ink)}
.wait{font-size:12px;line-height:1.35}
.wait b{font-weight:400;display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.wait .who2{color:var(--char)}
.wait .over{color:var(--held)}
.iss{text-align:right;font-size:12px;color:var(--mute)}
.iss b{display:block;font-family:var(--disp);font-style:italic;font-weight:900;font-size:20px;color:var(--char)}
.iss b.zero{color:#C9C9C9}

/* ---------- call sheet ---------- */
.back{padding:0 0 14px;color:#8A8A8A;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.back:hover{color:#fff}
.cs-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;padding:26px;align-items:start}
.cs-head h1{margin:0 0 12px;font-size:38px;max-width:22ch}
.metaline{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12.5px;color:#4A4A4A;align-items:center}
.metaline .k{color:var(--mute);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-right:5px}
.chip{border:1px solid var(--rule);padding:2px 8px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#4A4A4A}
.chip.re{border-color:var(--ink);color:var(--ink)}
.tmbig{text-align:right}
.tmbig .v{font-family:var(--disp);font-style:italic;font-weight:900;font-size:58px;line-height:.92;
    font-variant-numeric:tabular-nums}
.tmbig .v.hot{color:var(--ink)}
.tmbig .v.none{font-size:26px;color:var(--mute)}
.tmbig .n{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);margin-top:8px;max-width:24ch;margin-left:auto}
.tmbig .n.warn{color:var(--held)}
.tmbig .n.bad{color:var(--ink)}
.breachbar{background:var(--ink);color:#fff;padding:8px 26px;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase}
.breachbar.risk{background:var(--held);color:var(--char)}

.cs-grid{display:grid;grid-template-columns:236px minmax(0,1fr) 316px;gap:18px;margin-top:18px;align-items:start}
.ladder{position:sticky;top:72px;padding:16px 0}
.stop{display:block;width:100%;text-align:left;padding:11px 18px;border-left:3px solid transparent;position:relative}
.stop:hover{background:#FAFAFA}
.stop[aria-current="true"]{border-left-color:var(--char);background:#F6F6F6}
.stop .n{font-size:10.5px;letter-spacing:.1em;color:#B4B4B4;font-variant-numeric:tabular-nums}
.stop h4{margin:1px 0 3px;font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;
    font-size:14px;line-height:1.12}
.stop .st{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}
.stop.cleared .st{color:var(--ink)}
.stop.held{border-left-color:var(--held)}
.stop.held .st{color:var(--held)}
.stop.held h4{color:var(--char)}
.stop.locked h4,.stop.locked .n{color:#C4C4C4}
.stop.breach{border-left-color:var(--ink)}
.stop.breach .st{color:var(--ink)}
.stop.over .st{color:var(--held)}
.ladder .lockline{font-size:10.5px;color:#B4B4B4;letter-spacing:.05em;margin-top:2px;text-transform:none}

.work{padding:24px 26px;min-height:420px}
.work-h{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
    border-bottom:1px solid var(--rule);padding-bottom:12px;margin-bottom:18px}
.work-h h2{margin:0;font-size:26px}
.work-h .own{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);white-space:nowrap}

/* stamp */
.stamp{display:inline-flex;flex-direction:column;gap:1px;border:2px solid var(--ink);color:var(--ink);
    padding:7px 13px;transform:rotate(-3deg);transform-origin:left center;
    font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;
    font-size:15px;line-height:1.05;letter-spacing:.02em}
.stamp .t{font-family:var(--sans);font-style:normal;font-weight:400;font-size:10.5px;
    letter-spacing:.09em;text-transform:uppercase}
.stamp.risk{border-color:var(--held);color:var(--held)}
.stamp.pending{border-color:#D8D8D8;color:#C4C4C4;transform:none}
@keyframes ink{from{transform:rotate(-3deg) scale(1.16);opacity:.35}to{transform:rotate(-3deg) scale(1);opacity:1}}
.stamp.fresh{animation:ink .18s ease-out}

/* held panel */
.held-box{background:var(--char);color:#fff;padding:18px 20px;margin-bottom:20px}
.held-box .hh{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--held);margin-bottom:10px}
.held-box ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.held-box li{display:flex;justify-content:space-between;gap:14px;font-size:13.5px;
    border-bottom:1px solid #2A2A2A;padding-bottom:9px}
.held-box li:last-child{border-bottom:0;padding-bottom:0}
.held-box li .o{color:var(--held);font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}

/* brief slots */
.slots{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:4px 0 14px}
.slot{border:1px solid var(--char);background:var(--char);color:#fff;padding:9px 7px;min-height:66px;
    display:flex;flex-direction:column;justify-content:space-between;text-align:left}
.slot .sl{font-size:9.5px;letter-spacing:.07em;text-transform:uppercase;line-height:1.25}
.slot .sv{font-size:15px}
.slot.miss{background:#fff;border:1px dashed var(--held);color:var(--held)}
.slot.miss .sv{font-size:9.5px;letter-spacing:.07em}
.slot.miss:hover{background:#FFF8EE}
.briefsum{font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;font-size:17px;margin-bottom:8px}
.briefsum .m{color:var(--held)}

.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;margin-bottom:20px}
.f{padding:11px 0;border-bottom:1px solid var(--rule2)}
.f .k{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);margin-bottom:3px}
.f .v{font-size:14px;color:var(--char)}
.f .v.empty{color:var(--held);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.f.wide{grid-column:1/-1}
.f .v.serif{font-family:var(--text);font-size:15px;line-height:1.55}

table.tbl{width:100%;border-collapse:collapse;font-size:13.5px;color:var(--char)}
table.tbl td{color:var(--char)}
table.tbl th{text-align:left;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);
    font-weight:400;padding:0 12px 7px 0;border-bottom:1px solid var(--char)}
table.tbl td{padding:10px 12px 10px 0;border-bottom:1px solid var(--rule2);vertical-align:top}
table.tbl td.n{text-align:right;font-variant-numeric:tabular-nums;padding-right:0}
table.tbl .new{color:var(--ink);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
table.tbl .gap{color:var(--held);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.tblwrap{overflow-x:auto}

.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px;padding-top:18px;border-top:1px solid var(--rule)}
.btn{border:1px solid var(--char);background:var(--char);color:#fff;padding:11px 18px;
    font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;font-size:14px;letter-spacing:.02em}
.btn:hover{background:#2E2E2E}
.btn.ghost{background:none;color:var(--char)}
.btn.ghost:hover{background:#F2F2F2}
.btn.risk{border-color:var(--held);color:var(--held);background:none}
.btn.risk:hover{background:#FFF8EE}
.btn[disabled]{border-color:#DCDCDC;background:#F4F4F4;color:#BDBDBD;cursor:not-allowed}
.btn.sm{padding:7px 12px;font-size:12px}
.hint{font-size:11.5px;color:var(--mute);margin-top:10px;letter-spacing:.02em}

.readi{display:flex;flex-direction:column;gap:0}
.ri{display:grid;grid-template-columns:36px 44px minmax(0,1fr) auto;gap:12px;align-items:center;
    padding:11px 0;border-bottom:1px solid var(--rule2)}
.ri .tick{width:22px;height:22px;border:1px solid #CFCFCF;display:grid;place-items:center;font-size:13px;color:transparent}
.ri.ok .tick{background:var(--char);border-color:var(--char);color:var(--go)}
.ri img{width:44px;height:44px;object-fit:cover;background:#EDEDED}
.ri .lbl{font-size:13.5px}
.ri .lbl small{display:block;color:var(--mute);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}
.ri .by{font-size:11px;color:var(--mute);letter-spacing:.05em;text-align:right;white-space:nowrap}
.ri .by.pend{color:var(--held);letter-spacing:.08em;text-transform:uppercase}

/* ledger rail */
.rail{padding:0}
.rail h3{margin:0;padding:15px 18px;font-family:var(--disp);font-style:italic;font-weight:900;
    text-transform:uppercase;font-size:15px;border-bottom:1px solid var(--char);display:flex;
    justify-content:space-between;align-items:center}
.issue{padding:13px 18px;border-bottom:1px solid var(--rule2);font-size:13px}
.issue.done{color:#B8B8B8}
.issue.done .txt{text-decoration:line-through}
.issue .txt{line-height:1.4}
.issue .ft{display:flex;justify-content:space-between;gap:10px;margin-top:7px;
    font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--mute);align-items:center}
.issue .ft .due.over{color:var(--held)}
.issue .ft button{color:var(--mute);text-decoration:underline;text-underline-offset:2px;font-size:10.5px;
    letter-spacing:.07em;text-transform:uppercase}
.issue .ft button:hover{color:var(--char)}
.railpad{padding:14px 18px}
.feed{list-style:none;margin:0;padding:0}
.feed li{font-size:12px;color:#5A5A5A;padding:7px 0;border-bottom:1px solid var(--rule2);line-height:1.4}
.feed li:last-child{border-bottom:0}
.feed li time{display:block;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#B4B4B4;margin-top:2px}

.inp{width:100%;border:1px solid var(--rule);padding:9px 10px;font-family:var(--sans);font-size:13.5px;
    color:var(--char);background:#fff;border-radius:0}
.inp:focus{border-color:var(--char);outline:none}
label.fl{display:block;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);margin:11px 0 4px}

/* my actions / ledger pages */
.pagehead{padding:24px 26px 18px;border-bottom:2px solid var(--char)}
.pagehead h1{margin:0 0 6px;font-size:38px}
.pagehead p{margin:0;font-size:13.5px;color:var(--mute);max-width:62ch;font-family:var(--text)}
.arow{display:grid;grid-template-columns:96px minmax(0,1fr) 180px 150px;gap:18px;align-items:center;
    padding:15px 26px;border-bottom:1px solid var(--rule2);width:100%;text-align:left}
.arow:hover{background:#FAFAFA}
.arow .left{font-family:var(--disp);font-style:italic;font-weight:900;font-size:20px;font-variant-numeric:tabular-nums}
.arow .left.over{color:var(--held)}
.arow .left.hot{color:var(--ink)}
.arow .t{font-size:14px;line-height:1.35}
.arow .t small{display:block;color:var(--mute);font-size:11px;letter-spacing:.07em;text-transform:uppercase;margin-top:3px}
.arow .sh{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--mute)}
.empty{padding:60px 26px;text-align:center;color:var(--mute)}
.empty .d{font-size:24px;color:#D0D0D0;margin-bottom:8px}

/* mobile shoot day */
.dayfr{max-width:392px;margin:0 auto;background:#fff;color:var(--char);overflow:hidden}
.daybar{background:var(--char);color:#fff;padding:15px 18px}
.daybar .s1{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:#9A9A9A}
.daybar .s2{font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;font-size:23px;margin-top:3px}
.dayctx{padding:12px 18px;border-bottom:1px solid var(--rule);font-size:12.5px;color:#4A4A4A}
.dayrow{display:grid;grid-template-columns:46px minmax(0,1fr) 60px;gap:12px;align-items:center;
    min-height:74px;padding:10px 18px;border-bottom:1px solid var(--rule2);width:100%;text-align:left;
    position:relative;overflow:hidden}
.dayrow .ph{width:46px;height:46px;object-fit:cover;background:#EDEDED}
.dayrow .ph.na{display:grid;place-items:center;font-size:17px;color:#B4B4B4}
.dayrow .l{font-size:14.5px;line-height:1.25;position:relative;z-index:2}
.dayrow .l small{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-top:3px}
.dayrow .prob{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);
    text-align:right;position:relative;z-index:2}
.dayrow .fill{position:absolute;inset:0;background:var(--char);transform:scaleX(0);transform-origin:left;
    transition:transform .16s ease-out;z-index:1}
.dayrow.ok .fill{transform:scaleX(1)}
.dayrow.ok .l{color:#fff}
.dayrow.ok .l small{color:#9A9A9A}
.dayrow.ok .prob{color:var(--go);z-index:2}
.dayrow.bad{background:#FFF6EA}
.dayrow.bad .l small{color:var(--held)}
.daybtm{padding:16px 18px;display:flex;flex-direction:column;gap:9px;border-top:1px solid var(--rule)}
.daybtm .btn{width:100%;text-align:center}
.halfsheet{padding:16px 18px;background:#FFF6EA;border-top:2px solid var(--held)}
.halfsheet .hs{font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--held);margin-bottom:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.chips button{border:1px solid #E0C89E;padding:7px 11px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:#7A5A20}
.chips button[aria-pressed="true"]{background:var(--held);border-color:var(--held);color:var(--char)}

/* modal */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;z-index:100;padding:20px}
.modal{background:#fff;color:var(--char);max-width:470px;width:100%;padding:26px}
.modal h3{margin:0 0 8px;font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;font-size:24px}
.modal p{margin:0;font-size:13.5px;color:#4A4A4A;font-family:var(--text);line-height:1.55}

.footer{color:#767676;font-size:10.5px;letter-spacing:.05em;padding:26px var(--pad) 34px;
    max-width:1420px;margin:0 auto;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}

@media (max-width:1180px){
  .cs-grid{grid-template-columns:216px minmax(0,1fr)}
  .rail-col{grid-column:1/-1}
  .ladder{position:static}
}
@media (max-width:920px){
  .row{grid-template-columns:92px 44px minmax(0,1fr) 84px;gap:12px;padding:12px 18px}
  .row .wait,.row .iss{display:none}
  .arow{grid-template-columns:80px minmax(0,1fr);gap:12px}
  .arow .sh,.arow .due2{display:none}
  .slots{grid-template-columns:repeat(4,1fr)}
  .fields{grid-template-columns:1fr}
  .cs-head{grid-template-columns:1fr}
  .tmbig{text-align:left}
  .tmbig .n{margin-left:0}
}
@media (max-width:720px){
  :root{--pad:12px}
  .cs-grid{grid-template-columns:1fr}
  .ladder{display:flex;overflow-x:auto;padding:0}
  .stop{min-width:158px;border-left:0;border-bottom:3px solid transparent}
  .stop[aria-current="true"]{border-left:0;border-bottom-color:var(--char)}
  .stop.held{border-bottom-color:var(--held)}
  .stop.breach{border-bottom-color:var(--ink)}
  .linehead{flex-direction:column;align-items:flex-start;gap:10px}
  .linehead .sub{text-align:left}
  .linehead h1{font-size:30px}
  .pagehead h1,.cs-head h1{font-size:28px}
  .tmbig .v{font-size:44px}
  .nav button{padding:6px 7px;font-size:11px}
  .who select{max-width:130px}
}

/* ------------------------------------------------------- app additions */
.boot{padding:60px 24px;color:#7F7F7F;font-family:var(--sans);font-size:13px;letter-spacing:.06em;text-transform:uppercase}

/* sign in */
.signin{min-height:70vh;display:grid;place-items:center;padding:24px}
.signin .card{background:var(--sheet);color:var(--char);max-width:430px;width:100%;padding:34px}
.signin .mark{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.signin .mark .m48{font-family:var(--disp);font-style:italic;font-weight:900;font-size:38px;line-height:1}
.signin .mark .sub{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--mute);
    border-left:1px solid var(--rule);padding-left:12px;line-height:1.35}
.signin h1{margin:0 0 8px;font-size:26px}
.signin p{margin:0 0 18px;font-family:var(--text);font-size:14.5px;line-height:1.55;color:#4A4A4A}
.signin .btn{width:100%;text-align:center;margin-top:14px}
.notice{border-left:3px solid var(--char);background:#F6F6F6;padding:12px 14px;font-size:13px;margin-top:16px;line-height:1.5}
.notice.warn{border-left-color:var(--held);background:#FFF8EE}
.notice.err{border-left-color:var(--ink);background:#FFF2F4}

/* toast */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;z-index:200;background:var(--char);
    color:#fff;padding:12px 18px;font-size:13px;max-width:min(560px,92vw);box-shadow:0 8px 30px rgba(0,0,0,.4)}
.toast.err{background:var(--ink)}

/* editable fields */
.f.edit{cursor:text}
.f.edit:hover{background:#FAFAFA}
.f .editmark{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#C4C4C4;margin-left:8px}
textarea.inp{resize:vertical;min-height:70px;font-family:var(--sans)}
select.inp{appearance:none;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6'><path d='M0 0l5 6 5-6z' fill='%237F7F7F'/></svg>") no-repeat right 10px center}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.rowbtns{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}

/* editable tables */
table.tbl td input.cell{width:100%;border:1px solid transparent;padding:5px 6px;font-family:var(--sans);
    font-size:13.5px;background:transparent;color:var(--char)}
table.tbl td input.cell:hover{border-color:var(--rule)}
table.tbl td input.cell:focus{border-color:var(--char);outline:none;background:#fff}
table.tbl td input.cell.qty{text-align:right;font-variant-numeric:tabular-nums}
table.tbl td input.cell.gap{border-color:var(--held);background:#FFF8EE}
.tbl .x{color:#C4C4C4;font-size:15px;padding:0 4px}
.tbl .x:hover{color:var(--ink)}
.tickbox{width:18px;height:18px;border:1px solid #CFCFCF;display:inline-grid;place-items:center;
    font-size:11px;color:transparent;vertical-align:middle}
.tickbox.on{background:var(--char);border-color:var(--char);color:var(--go)}

/* uploader */
.drop{border:1px dashed var(--rule);padding:14px;text-align:center;font-size:12px;color:var(--mute);
    letter-spacing:.06em;text-transform:uppercase}
.drop:hover{border-color:var(--char);color:var(--char)}
.thumb44{width:44px;height:44px;object-fit:cover;background:#EDEDED;display:block}

/* admin */
.adminrow{display:grid;grid-template-columns:150px minmax(0,1fr) 130px 120px 90px;gap:14px;align-items:center;
    padding:11px 26px;border-bottom:1px solid var(--rule2);font-size:13.5px}
.adminrow .ph{color:var(--held);font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.adminrow input,.adminrow select{border:1px solid transparent;background:transparent;padding:5px 6px;
    font-family:var(--sans);font-size:13.5px;width:100%;color:var(--char)}
.adminrow input:hover,.adminrow select:hover{border-color:var(--rule)}
.adminrow input:focus,.adminrow select:focus{border-color:var(--char);outline:none;background:#fff}

.copyline{display:flex;gap:8px;align-items:center;margin-top:12px}
.copyline input{flex:1;border:1px solid var(--rule);padding:9px 10px;font-family:var(--sans);font-size:12px;color:var(--char)}

.linkbtn{text-decoration:underline;text-underline-offset:2px;font-size:11px;letter-spacing:.07em;
    text-transform:uppercase;color:var(--mute)}
.linkbtn:hover{color:var(--char)}

@media (max-width:920px){
  .grid2{grid-template-columns:1fr}
  .adminrow{grid-template-columns:1fr 1fr;gap:8px 14px}
}

/* links that behave as rows */
.nav a{padding:6px 11px;color:#8A8A8A;border-radius:2px;text-decoration:none;display:inline-block}
.nav a:hover{color:#fff}
.nav a[aria-current="true"]{color:#fff;background:var(--stage3)}
a.row,a.arow,a.back{text-decoration:none;color:inherit;display:grid}
a.back{display:inline-block}
a.row:visited,a.arow:visited{color:inherit}

/* ------------------------------------------------------------- v2 layout */
.cs2{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:18px;margin-top:18px;align-items:start}
.stack{display:flex;flex-direction:column;gap:10px;min-width:0}
@media (max-width:1100px){ .cs2{grid-template-columns:1fr} }

/* the handoff, made visible */
.nextstrip{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;padding:11px 26px;
    border-top:1px solid var(--rule);background:#F6F6F6}
.nextstrip .lab{color:var(--mute)}
.nextstrip.yours{background:var(--char);color:#fff}
.nextstrip.yours .lab{color:var(--go)}
.nextstrip .who3{font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;font-size:17px}
.nextstrip .what{font-size:13.5px}
.nextstrip .also{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--mute);margin-left:auto}
.nextstrip.yours .also{color:#9A9A9A}

/* collapsed stages */
.stagebar{display:grid;grid-template-columns:34px 128px 108px minmax(0,1fr);gap:14px;align-items:center;
    width:100%;text-align:left;padding:13px 26px;background:var(--sheet);color:var(--char);
    border-left:3px solid transparent}
.stagebar:hover{background:#FAFAFA}
.stagebar .num{font-size:10.5px;letter-spacing:.1em;color:#B4B4B4;font-variant-numeric:tabular-nums}
.stagebar .nm{font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;font-size:16px}
.stagebar .st{font-size:10.5px;letter-spacing:.09em;text-transform:uppercase}
.stagebar .sum{font-size:12px;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stagebar.done{border-left-color:var(--ink)}
.stagebar.done .st{color:var(--ink)}
.stagebar.locked{border-left-color:#DCDCDC;color:#B4B4B4}
.stagebar.locked .nm{color:#C4C4C4}

/* the open stage */
.stageopen{padding:22px 26px}
.stageopen.dim{opacity:.75}
.stagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
    border-bottom:1px solid var(--rule);padding-bottom:13px;margin-bottom:16px}
.stagehead h2{margin:0;font-size:25px}
.stagehead .blurb{font-size:12.5px;color:var(--mute);margin-top:3px}
.stagebadge{font-size:10px;letter-spacing:.11em;text-transform:uppercase;border:1px solid var(--char);
    padding:4px 9px;white-space:nowrap}
.stagebadge.complete{border-color:var(--ink);color:var(--ink)}
.stagebadge.locked{border-color:#DCDCDC;color:#C4C4C4}
.stagebadge.waived{border-color:var(--held);color:var(--held)}
.stagebadge.forced{border-color:var(--ink);color:#fff;background:var(--ink)}

/* requirements */
.reqs{display:flex;flex-direction:column}
.req{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:20px;align-items:start;
    padding:15px 0;border-bottom:1px solid var(--rule2)}
.req:last-child{border-bottom:0}
.reqlabel{font-size:15px;line-height:1.3}
.prot{font-size:8.5px;letter-spacing:.1em;border:1px solid var(--mute);color:var(--mute);
    padding:1px 5px;margin-left:8px;vertical-align:2px}
.reqhint{font-size:12.5px;color:var(--mute);margin-top:3px;font-family:var(--text)}
.reqowner{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-top:5px}
.miss{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.miss li{font-size:12.5px;color:var(--held);padding-left:13px;position:relative}
.miss li:before{content:'';position:absolute;left:0;top:7px;width:5px;height:5px;background:var(--held)}
.reqact{display:flex;flex-direction:column;align-items:flex-end;gap:7px}
.stampbtn{min-width:150px;text-align:center}
.reqnote,.reqreason{font-size:11px;color:var(--mute);text-align:right;max-width:220px;line-height:1.4}
.reqreason{font-family:var(--text);font-size:12px;color:#5A5A5A}
.ovr{display:flex;gap:12px}
.ovr .force{color:var(--ink)}
.stamp.forced{border-color:var(--ink);background:var(--ink);color:#fff}
.stamp.forced .t{color:#FFD9E0}
.stamp.inherit{border-color:var(--mute);color:var(--mute);transform:none}
@media (max-width:760px){ .req{grid-template-columns:1fr} .reqact{align-items:flex-start} .reqnote,.reqreason{text-align:left} }

/* inline editors */
.editor{margin-top:20px;padding-top:18px;border-top:1px solid var(--rule)}
.edhead{font-family:var(--disp);font-style:italic;font-weight:900;text-transform:uppercase;
    font-size:14px;color:var(--mute);margin-bottom:12px}
.edsep{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);
    border-top:1px solid var(--rule2);padding-top:12px;margin-top:6px}

/* bands and bars */
.band.quiet{background:#4A4A4A}
.breachbar.quiet{background:#4A4A4A;color:#fff}
.breachbar.demo{background:var(--go);color:var(--char)}
.mini i.now{background:#fff;border-color:var(--char);box-shadow:inset 0 0 0 2px var(--char)}
.fields{align-items:start}
.f{min-width:0}
.f .v.empty{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ------------------------------------------------------- guidance layer */
.miss li{list-style:none}
.fixit{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;text-align:left;
  border:1px solid transparent;border-left:0;padding:3px 6px 3px 0;font-size:12.5px;color:var(--held);cursor:pointer}
.fixit:hover{background:#FFF8EE;border-color:#F0DCC0;border-left:0}
.fixit .go{font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);
  border-bottom:1px solid var(--rule);white-space:nowrap;flex:0 0 auto}
.fixit:hover .go{color:var(--char);border-bottom-color:var(--char)}
.miss li:before{top:11px}

.lockhint{border-left:3px solid #DCDCDC;background:#F7F7F7;padding:13px 16px;margin-bottom:16px}
.lockhint .lh{font-size:13px;color:#5A5A5A;line-height:1.5}
.lockhint .lw{margin-top:9px;font-size:13.5px;color:var(--char);display:flex;align-items:center;
  gap:10px;flex-wrap:wrap}

@keyframes flashfield{0%{background:#FFF0D4;border-color:var(--held)}100%{background:#fff;border-color:var(--rule)}}
.flash{animation:flashfield 1.1s ease-out}
@media (prefers-reduced-motion:reduce){.flash{animation:none;border-color:var(--held)}}

/* the top bar has to survive a phone */
.top .nav{min-width:0;overflow-x:auto;scrollbar-width:none}
.top .nav::-webkit-scrollbar{display:none}
.who{min-width:0}
.who .whoname{white-space:nowrap}
@media (max-width:720px){
  .top{gap:10px;padding:0 12px}
  .whotitle{display:none}
  .brand .mk{font-size:18px;padding-left:9px}
  .who .lab{font-size:10px}
}

/* a write in flight must look like something is happening */
@keyframes prog48{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
body.busy::after{content:'';position:fixed;top:0;left:0;right:0;height:2px;z-index:300;
  background:linear-gradient(90deg,transparent,var(--ink),transparent);animation:prog48 .9s linear infinite}
body.busy .btn,body.busy .fixit,body.busy .stampbtn{opacity:.55;pointer-events:none}
body.busy{cursor:progress}
@media (prefers-reduced-motion:reduce){body.busy::after{animation:none;background:var(--ink)}}

/* A stamp whose evidence was edited away afterwards. It is not a failure and not an accusation —
   it says the record and the reality have drifted apart, and which way to close the gap. */
.stalenote{margin-top:7px;font-size:12px;line-height:1.45;color:#7A5A00;background:#FFF6E0;
  border-left:3px solid var(--held);padding:8px 11px;max-width:560px}
