/* v11 accounts + dashboards. Built on the m16b styles (mockup.css, app.css, csp.css). No inline styles anywhere.
   Spacing scale: 4 / 8 / 12 / 16 / 20 / 24 / 32. Nothing touches a line, divider or screen edge (EDGE 8, GAP 3). */
:root{--v11-pad:18px;--v11-gap:16px;--v11-line:#d9cfb8}
@media(min-width:900px){:root{--v11-pad:24px;--v11-gap:24px}}

/* ---------- 1. Header: Sign in / account pill ---------- */
.top .hdr-r{display:flex;align-items:center;gap:12px}
.hdr-signin{font:500 13px 'DM Mono',monospace;letter-spacing:1px;text-transform:uppercase;text-decoration:none;color:var(--g);padding:10px 4px;border-bottom:0}
.acct{display:inline-flex;align-items:center;gap:8px;padding:4px 14px 4px 4px;border:2px solid var(--ink);border-radius:999px;background:var(--paper);font-weight:700;font-size:14px;text-decoration:none;color:var(--ink);min-height:44px}
.ini{width:32px;height:32px;border-radius:50%;background:var(--g);color:var(--y);display:inline-flex;align-items:center;justify-content:center;font:700 12px 'DM Mono',monospace;letter-spacing:.5px;flex:none}
@media(max-width:420px){.top .btn.sm .hx{display:none}.top .wrap{gap:8px}.top .hdr-r{gap:10px}.acct .an{display:none}.acct{padding:4px}}

/* ---------- 2. Green band (page title) ---------- */
.vband{background:var(--g);color:var(--r);position:relative;overflow:hidden;border-bottom:2px solid var(--ink);padding:24px 0 28px}
.vband:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 60px,transparent 60px 120px)}
.vband .wrap{position:relative;display:flex;flex-direction:column;gap:8px}
.vband .eyebrow{color:var(--y)}
.vband h1{color:var(--r);font-size:36px;margin:0;letter-spacing:-1px}
.vband p{margin:0;opacity:.9;font-size:15px;max-width:620px}
.vband .brow{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.vband .bact{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.vband .btn.ghost{color:var(--r);border-color:var(--r)}
@media(min-width:900px){.vband{padding:36px 0 40px}.vband h1{font-size:52px}.vband .brow{flex-wrap:nowrap}.vband .bact{margin-top:0}}

/* ---------- 3. Page body, cards, sections ---------- */
.pg{padding:24px 0 8px}
.pg .wrap{display:flex;flex-direction:column;gap:var(--v11-gap)}
@media(min-width:900px){.pg{padding:32px 0 16px}}
.vc{background:var(--paper);border:2px solid var(--ink);border-radius:18px;box-shadow:5px 5px 0 var(--g);padding:var(--v11-pad);display:flex;flex-direction:column;gap:14px;min-width:0}
.vc h2{font-size:26px;margin:0}
.vc h3{font-size:20px;margin:0}
.vc p{margin:0}
.vc .sub2{font-size:14px;color:#4b4b4b}
.vh{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.sec{display:flex;flex-direction:column;gap:12px}
.sech{display:flex;align-items:center;gap:10px;margin-top:8px}
.sech h2{font-size:24px;margin:0}
.sech .n{font:500 12px 'DM Mono',monospace;letter-spacing:1px;padding:3px 9px;border:1.5px solid var(--ink);border-radius:999px;background:#fff}
.mlabel{font:500 11px 'DM Mono',monospace;letter-spacing:2px;text-transform:uppercase;color:var(--red)}
.muted{color:#5a5a5a;font-size:14px}
.txtbtn{background:none;border:0;padding:10px 4px;font:700 14px Inter,sans-serif;color:var(--g);text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.txtbtn.red{color:var(--red)}
.btn.block{width:100%}
.btn.danger{background:var(--red);color:var(--r)}
.btn.ghost.dangerg{color:var(--red);border-color:var(--red)}
.btns{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.btns.col{flex-direction:column;align-items:stretch}

/* ---------- 4. Sign in ---------- */
.auth{display:grid;gap:var(--v11-gap)}
.auth-side{display:none}
@media(min-width:900px){
  .auth{grid-template-columns:1fr 460px;gap:40px;align-items:start;padding-top:8px}
  .auth-side{display:flex;flex-direction:column;gap:16px;padding:32px;background:var(--g);color:var(--r);border:2px solid var(--ink);border-radius:22px;box-shadow:6px 6px 0 var(--ink);position:relative;overflow:hidden}
  .auth-side h2{color:var(--r);font-size:40px;margin:0}
  .auth-side .eyebrow{color:var(--y)}
  .auth-side ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
  .auth-side li{display:flex;gap:12px;align-items:flex-start;font-size:16px}
  .auth-side li b{color:var(--y)}
  .auth-side .tick{flex:none;width:26px;height:26px;border-radius:50%;background:var(--y);color:var(--ink);border:2px solid var(--ink);display:inline-flex;align-items:center;justify-content:center;font:700 13px Inter,sans-serif}
  .auth-side .kim{align-self:flex-end;width:120px;height:120px}
}
.form1{display:flex;flex-direction:column;gap:14px}
.form1 .fld{margin:0}
.form1 .in{font-size:17px}
.note-play{display:flex;gap:12px;align-items:center;padding:12px 14px;border:2px dashed var(--g);border-radius:14px;background:#f4f8f2;font-size:14px}
.note-play b{color:var(--g)}
.note-play .ic{flex:none;font-size:20px}
.sentto{font-size:15px}
.sentto b{overflow-wrap:anywhere}
.code6{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.code6 input{width:100%;min-width:0;height:58px;text-align:center;font:700 26px 'DM Mono',monospace;border:2px solid var(--ink);border-radius:12px;background:#fffdf7;padding:0;color:var(--ink)}
.code6 input.f{border-color:var(--g);box-shadow:0 0 0 3px var(--m)}
.code6.bad input{border-color:var(--red);background:#fdf0ec}
.code6.dim input{opacity:.45}
@media(max-width:370px){.code6{gap:6px}.code6 input{height:52px;font-size:22px}}
.orlink{display:flex;align-items:center;gap:12px;font:500 12px 'DM Mono',monospace;letter-spacing:1px;color:#555;text-transform:uppercase}
.orlink:before,.orlink:after{content:"";flex:1;height:0;border-top:1.5px dashed var(--v11-line)}
.linkhint{display:flex;gap:12px;align-items:center;font-size:14px}
.linkhint .ic{flex:none;width:40px;height:40px;border-radius:12px;border:2px solid var(--ink);background:var(--y);display:inline-flex;align-items:center;justify-content:center;font-size:18px}
.resend{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
.resend .t{font:500 13px 'DM Mono',monospace;color:#555}
.msg-err,.msg-ok,.msg-warn{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:2px solid var(--red);background:#fdf0ec;font-size:14px}
.msg-err b,.msg-warn b{display:block}
.msg-ok{border-color:var(--g);background:#eaf4ec}
.msg-warn{border-color:#b98a12;background:#fff4d6}
.msg-err .ic,.msg-ok .ic,.msg-warn .ic{flex:none;font-size:16px;line-height:1.3}
.fine{font-size:12.5px;color:#5a5a5a}
.fine a{color:var(--g)}

/* ---------- 5. Event cards (host dashboard) ---------- */
.vdash{display:grid;gap:var(--v11-gap)}
.dash-main,.dash-side{display:flex;flex-direction:column;gap:var(--v11-gap);min-width:0}
@media(min-width:900px){.vdash{grid-template-columns:minmax(0,1fr) 360px;gap:32px;align-items:start}}
.evc{background:var(--paper);border:2px solid var(--ink);border-radius:18px;box-shadow:5px 5px 0 var(--g);padding:var(--v11-pad);display:flex;flex-direction:column;gap:12px}
.evc.livec{box-shadow:5px 5px 0 var(--red)}
.evc .top1{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.evc h3{font-size:22px;margin:0}
.evc .when{font:500 12px 'DM Mono',monospace;letter-spacing:1px;color:var(--red);text-transform:uppercase}
.evc .facts{display:flex;flex-wrap:wrap;gap:8px}
.fact{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:5px 10px;border-radius:10px;background:#efe7d4;border:1.5px solid transparent}
.fact b{font-weight:700}
.stc{display:inline-flex;align-items:center;gap:6px;font:500 11px 'DM Mono',monospace;letter-spacing:1.5px;padding:4px 10px;border-radius:999px;border:1.5px solid var(--ink);white-space:nowrap;flex:none}
.stc.lv{background:var(--red);color:var(--r)}
.stc.lv:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--y)}
.stc.up{background:var(--m)}
.stc.setup{background:#fff;border-style:dashed}
.stc.done{background:#e6dfcf}
.stc.arch{background:#fff4d6}
.evc .acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.evc .acts .btn{padding:9px 12px;font-size:14px;box-shadow:3px 3px 0 var(--ink);min-height:44px}
.evc .acts .btn.ghost{box-shadow:none;background:#fffdf7}
.evc .acts .wide{grid-column:1/-1}
.evc .foot2{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1.5px dashed var(--v11-line);padding-top:8px;flex-wrap:wrap}
.evc .progress{font-size:13px;color:#4b4b4b}
@media(min-width:900px){.evc .acts{display:flex;flex-wrap:wrap}.evc .acts .wide{grid-column:auto}}
.lst{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.lst li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1.5px dashed var(--v11-line)}
.lst li:first-child{border-top:0;padding-top:4px}
.lst .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.lst .grow b{font-size:16px}
.lst .grow span{font-size:13px;color:#555}
.lst .mini{display:flex;gap:8px;flex:none}
.lst .btn.sm{padding:7px 12px;font-size:13px;box-shadow:2px 2px 0 var(--ink);min-height:40px}
.lst .btn.sm.ghost{box-shadow:none;background:#fffdf7}
.cnt{flex:none;min-width:40px;height:40px;border-radius:12px;border:2px solid var(--ink);background:var(--y);display:inline-flex;align-items:center;justify-content:center;font:700 15px 'DM Mono',monospace}
.star{flex:none;width:40px;height:40px;border-radius:12px;border:2px solid var(--ink);background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px;color:#b98a12}
.empty{align-items:center;text-align:center;padding:32px var(--v11-pad)}
.empty .kim{width:96px;height:96px}
.empty h2{font-size:28px}
.empty p{max-width:420px}
.empty .vsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;text-align:left;width:100%;max-width:420px}
.empty .vsteps li{display:flex;gap:12px;align-items:center;font-size:15px}
.empty .vsteps i{flex:none;width:30px;height:30px;border-radius:50%;border:2px solid var(--ink);background:var(--y);font:700 13px 'DM Mono',monospace;font-style:normal;display:inline-flex;align-items:center;justify-content:center}
.ghostcard{border:2px dashed #b9ad92;border-radius:18px;padding:var(--v11-pad);display:flex;flex-direction:column;gap:8px;color:#555;font-size:14px}
.ghostcard b{color:var(--ink);font-size:16px}

/* ---------- 6. Sheets (confirm / run again) ---------- */
.scrim{position:fixed;inset:0;background:rgba(27,27,27,.55);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--r);border:2px solid var(--ink);border-bottom:0;border-radius:24px 24px 0 0;width:100%;max-height:92vh;overflow:auto;padding:12px 20px 24px;display:flex;flex-direction:column;gap:14px}
.sheet .grab{align-self:center;width:44px;height:5px;border-radius:999px;background:#b9ad92}
.sheet h2{font-size:28px;margin:0}
.sheet p{margin:0}
.sheet .btns.col .btn{width:100%}
@media(min-width:900px){.scrim{align-items:center}.sheet{max-width:520px;border-bottom:2px solid var(--ink);border-radius:22px;padding:28px;box-shadow:6px 6px 0 var(--ink)}.sheet .grab{display:none}.sheet .btns.col{flex-direction:row-reverse;justify-content:flex-start}.sheet .btns.col .btn{width:auto}}
.gone{list-style:none;margin:0;padding:12px 14px;display:flex;flex-direction:column;gap:8px;border:2px solid var(--red);border-radius:14px;background:#fdf0ec;font-size:14px}
.gone li{display:flex;gap:10px;align-items:flex-start}
.gone li i{font-style:normal;flex:none;color:var(--red);font-weight:700}
.copy{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.copy li{display:flex;gap:12px;align-items:center;padding:10px 12px;border:2px solid var(--ink);border-radius:12px;background:#fffdf7;font-size:14px}
.copy li .ck{flex:none;width:26px;height:26px;border-radius:8px;border:2px solid var(--ink);background:var(--y);display:inline-flex;align-items:center;justify-content:center;font:700 13px Inter,sans-serif}
.copy li .grow{flex:1;min-width:0;display:flex;flex-direction:column}
.copy li .grow span{color:#555;font-size:13px}
.copy li.no{background:transparent;border-style:dashed;color:#555}
.copy li.no .ck{background:#fff;border-style:dashed}
.row2{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}
.row2 .fld{margin:0}
.chk{display:flex;gap:12px;align-items:center;padding:12px 14px;border:2px solid var(--ink);border-radius:12px;background:#fffdf7;font-size:14px;min-height:48px}
.chk .bx{flex:none;width:24px;height:24px;border:2px solid var(--ink);border-radius:6px;background:var(--y);display:inline-flex;align-items:center;justify-content:center;font:700 13px Inter,sans-serif}

/* ---------- 7. Player dashboard ---------- */
.vstats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.vstat{background:var(--paper);border:2px solid var(--ink);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:4px;min-width:0}
.vstat .k{font:500 11px 'DM Mono',monospace;letter-spacing:1.5px;text-transform:uppercase;color:var(--red)}
.vstat .v{font:900 34px/1 Fraunces,Georgia,serif;color:var(--g);font-variation-settings:'SOFT' 100}
.vstat .v small{font:500 13px Inter,sans-serif;color:#555;margin-left:4px}
.vstat .s{font-size:12.5px;color:#555}
@media(max-width:899px){.vstat{padding:12px 10px}.vstat .v{font-size:28px}.vstat .k{font-size:10px;letter-spacing:1px}.vstat .s{font-size:11.5px}.vstat.hc{padding:14px}.vstat.hc .v{font-size:34px}}
.vstat.hc{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:4px 16px;align-items:center}
.vstat.hc .lbls{display:flex;flex-direction:column;gap:4px}
.spark{width:100%;height:64px;display:block}
.spark .ln{fill:none;stroke:var(--g);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.spark .ar{fill:var(--m);opacity:.45}
.spark .dt{fill:var(--y);stroke:var(--ink);stroke-width:2}
.spark .gd{stroke:#d9cfb8;stroke-width:1;stroke-dasharray:3 4}
.down{color:var(--g);font-weight:700}
@media(min-width:900px){.vstats{grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.6fr)}.vstat.hc{grid-column:auto}}
.rnd{display:flex;align-items:center;gap:14px;background:var(--paper);border:2px solid var(--ink);border-radius:16px;padding:14px;text-decoration:none;color:var(--ink)}
.rnd .sc2{flex:none;width:72px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border:2px solid var(--ink);border-radius:12px;background:#fff}
.rnd .sc2 b{font:900 28px/1 Fraunces,Georgia,serif;color:var(--g)}
.rnd .sc2 span{font:500 11px 'DM Mono',monospace;color:#555}
.rnd .mid2{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.rnd .mid2 h3{font-size:18px;margin:0}
.rnd .mid2 .when{font:500 11px 'DM Mono',monospace;letter-spacing:1px;color:var(--red);text-transform:uppercase}
.rnd .tags{display:flex;flex-wrap:wrap;gap:6px}
.vtag{display:inline-flex;align-items:center;gap:4px;font:500 11px 'DM Mono',monospace;letter-spacing:.5px;padding:3px 8px;border-radius:999px;border:1.5px solid var(--ink);background:#fff;white-space:nowrap}
.vtag.win{background:var(--m)}
.vtag.loss{background:#efe7d4}
.vtag.kp,.vtag.ld,.vtag.sk{background:var(--y)}
.vtag.fin{background:var(--ink);color:var(--r)}
.rnd .chev{flex:none;font:700 22px Inter,sans-serif;color:var(--g);padding:0 4px}
.upc{display:flex;flex-direction:column;gap:10px}
.upr{display:flex;gap:12px;align-items:center}
.cal{flex:none;width:56px;border:2px solid var(--ink);border-radius:12px;overflow:hidden;text-align:center;background:#fff}
.cal span{display:block;background:var(--red);color:var(--r);font:500 11px 'DM Mono',monospace;letter-spacing:1px;padding:3px 0}
.cal b{display:block;font:900 22px/1.3 Fraunces,Georgia,serif;color:var(--g);padding:2px 0 4px}
.upr .grow{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.upr .grow span{font-size:13px;color:#555}

/* ---------- 8. Finished round (player) ---------- */
.done-hero{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}
.bigsc{width:96px;height:96px;border-radius:50%;border:3px solid var(--ink);background:var(--y);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.bigsc b{font:900 38px/1 Fraunces,Georgia,serif;color:var(--g)}
.bigsc span{font:500 11px 'DM Mono',monospace;letter-spacing:1px}
.kv{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.kv div{border:2px solid var(--ink);border-radius:12px;padding:10px 12px;background:#fff;display:flex;flex-direction:column;gap:2px}
.kv span{font:500 11px 'DM Mono',monospace;letter-spacing:1px;color:var(--red);text-transform:uppercase}
.kv b{font-size:16px}
.savep{background:var(--y);border:2px solid var(--ink);border-radius:18px;box-shadow:5px 5px 0 var(--ink);padding:var(--v11-pad);display:flex;flex-direction:column;gap:12px}
.savep h2{font-size:24px;margin:0;color:var(--ink)}
.savep p{margin:0;font-size:14.5px}
.savep .in{background:#fff}
.savep .btn{background:var(--g);color:var(--r)}
.savep .txtbtn{color:var(--ink)}
.savep .em{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:900px){.savep .em{grid-template-columns:1fr auto}}
.two{display:grid;gap:var(--v11-gap)}
@media(min-width:900px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}}

/* ---------- 9. Host desk banner + retention notice ---------- */
.savebar{display:flex;flex-direction:column;gap:12px;padding:16px 18px;margin:0 0 20px;background:var(--y);border:2px solid var(--ink);border-radius:18px;box-shadow:4px 4px 0 var(--ink)}
.savebar .t1{display:flex;gap:12px;align-items:flex-start}
.savebar .t1 b{display:block}
.savebar .t1 .ic{flex:none;width:40px;height:40px;border-radius:12px;border:2px solid var(--ink);background:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:18px}
.savebar h2{font-size:20px;margin:0;color:var(--ink)}
.savebar p{margin:0;font-size:14px}
.savebar .btns .btn{background:var(--g);color:var(--r)}
.savebar .txtbtn{color:var(--ink)}
@media(min-width:900px){.savebar{flex-direction:row;align-items:center;justify-content:space-between;gap:24px}.savebar .btns{flex-wrap:nowrap;flex:none}}
.vkeep{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font:500 12px 'DM Mono',monospace;letter-spacing:.5px;padding:10px 14px;border:1.5px dashed var(--g);border-radius:12px;background:#f4f8f2;color:var(--g)}
.vkeep a{color:var(--g);font-weight:500}
.vkeep .ic{flex:none}
.hd .savebar{margin:16px 0 0}
.keepwrap{padding:12px 0 0}
.lb .keepwrap .vkeep{background:#f4f8f2}

/* ---------- 10. Account settings ---------- */
/* The settings page is styled in settings.css. These names stay quiet if that file is missing. */
.setgrid{display:block;min-width:0}
.setnav{position:static;overflow:visible}
.setcol{min-width:0}
body.page-live .wrap:has(#keep-it){margin-top:var(--rh-sec);margin-bottom:var(--rh-sec)}

/* ---------- 11. Data policy ---------- */
.pol{display:grid;gap:var(--v11-gap)}
@media(min-width:900px){.pol{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}
.polc{background:var(--paper);border:2px solid var(--ink);border-radius:18px;padding:var(--v11-pad);display:flex;flex-direction:column;gap:10px}
.polc .ph2{display:flex;gap:12px;align-items:center}
.polc .ic{flex:none;width:44px;height:44px;border-radius:12px;border:2px solid var(--ink);background:var(--y);display:inline-flex;align-items:center;justify-content:center;font-size:20px}
.polc h2{font-size:20px;margin:0}
.polc p{margin:0;font-size:15px}
.polc .rule{font:500 12px 'DM Mono',monospace;letter-spacing:.5px;color:var(--g);background:#eaf4ec;border-radius:10px;padding:8px 10px}
.tl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch}
.tl div{border:2px solid var(--ink);border-radius:12px;padding:10px;background:#fff;display:flex;flex-direction:column;gap:4px;font-size:13px}
.tl div b{font:500 11px 'DM Mono',monospace;letter-spacing:1px;text-transform:uppercase}
.tl .t1{background:var(--m)}
.tl .t2{background:#fff4d6}
.tl .t3{background:#efe7d4}
.polwide{grid-column:1/-1}
.sumline{font-size:16px;max-width:760px}

/* =====================================================================
   v11 part 2 · items 1-10, 12 (all new classes prefixed k-)
   ===================================================================== */
/* shared */
.k-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.k-flash{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border:2px solid var(--g);border-radius:12px;background:#e6f2ea;font-size:14px;margin:0 0 12px}
.k-flash .ic{flex:none}
.k-flash b{display:block}
.k-note{font-size:12.5px;color:#5a5a5a;margin:12px 0 0}
.k-badge{display:inline-flex;align-items:center;gap:4px;font:500 10.5px 'DM Mono',monospace;letter-spacing:1px;padding:2px 8px;border:1.5px solid var(--ink);border-radius:999px;background:var(--y)}
.k-qr{display:block;width:100%;height:100%}
.k-qr rect{fill:var(--ink)}
.k-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.k-list li{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.k-list li i{font-style:normal;flex:none;width:22px;height:22px;border-radius:7px;border:2px solid var(--ink);display:inline-flex;align-items:center;justify-content:center;font:700 12px Inter,sans-serif;background:var(--m)}
.k-list li i.x{background:#f3d2cb}
.k-list li i.i{background:var(--y)}

/* item 1 · event code on the desk */
.k-code{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:14px;border:2px solid var(--ink);border-radius:14px;background:#fffdf7;margin:0 0 14px}
.k-code-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.k-digits{font:900 40px/1 Fraunces,Georgia,serif;letter-spacing:6px;color:var(--g)}
.k-code-s{font-size:13px;color:#555}
.k-code-b{display:flex;gap:10px;flex-wrap:wrap}
.k-code.off{border-style:dashed;background:transparent}
.k-code.off .k-digits{color:#9a917c;text-decoration:line-through;text-decoration-thickness:3px}
.k-code.new{border-color:var(--g);box-shadow:3px 3px 0 var(--g)}
@media(min-width:900px){.k-code{grid-template-columns:minmax(0,1fr) auto;align-items:center}}

/* item 2 · who sees */
.k-seg3{margin:0 0 12px}
.k-vis-d{margin:0 0 12px;font-size:14px}
.k-priv{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:14px;border:2px solid var(--ink);border-radius:14px;background:#fffdf7}
.k-priv .qr{width:150px;height:150px;padding:10px;margin:0 auto;background:#fff;border:2px solid var(--ink);border-radius:12px}
.k-priv .lnk2{display:flex;flex-direction:column;gap:10px;min-width:0}
.k-priv .url{font:500 13px 'DM Mono',monospace;word-break:break-all;padding:10px 12px;border:2px solid var(--ink);border-radius:10px;background:var(--r)}
@media(min-width:900px){.k-priv{grid-template-columns:150px minmax(0,1fr);align-items:center}.k-priv .qr{margin:0}}
.k-gate{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.k-gate .lock{width:56px;height:56px;border-radius:16px;border:2px solid var(--ink);background:var(--y);display:inline-flex;align-items:center;justify-content:center;font-size:26px;box-shadow:3px 3px 0 var(--ink)}
.k-gate h2{margin:0;font-size:30px}
.k-gate p{margin:0}

/* item 3 · mulligans */
.k-mull{display:flex;flex-direction:column;gap:12px;padding:14px;border:2px solid var(--ink);border-radius:14px;background:#fffdf7;margin-top:12px}
.k-mull .opt{padding:0;border:0}
.k-mull .fld{margin:0}
.k-mull .k-sep{border-top:1.5px dashed var(--line,#d8d0bd)}
.k-step{display:inline-flex;align-items:center;gap:8px;flex:none}
.k-step button{width:44px;height:44px;border:2px solid var(--ink);border-radius:12px;background:var(--y);box-shadow:2px 2px 0 var(--ink);font:800 18px Inter,sans-serif;cursor:pointer}
.k-step button:first-child{background:#fffdf7}
.k-step .v{min-width:44px;text-align:center;font:900 20px Fraunces,Georgia,serif;color:var(--g)}
.tile .nm .k-mp{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:3px;height:24px;padding:0 7px;border:1.5px solid var(--ink);border-radius:999px;background:var(--y);font:600 11px 'DM Mono',monospace;color:var(--ink);cursor:pointer}
.tile .nm .k-mp.bb{background:var(--m)}
.tile .nm .k-mp.zero{background:transparent;border-style:dashed;color:#8a8270}
.tile .nm .k-mp+.k-mp{margin-left:0}
.k-toast{display:flex;align-items:center;gap:10px;margin:0 8px;padding:8px 12px;border:2px solid var(--ink);border-radius:12px;background:var(--ink);color:var(--r);font-size:13px}
.k-toast span{flex:1;min-width:0}
.k-toast button{flex:none;background:none;border:0;color:var(--y);font:700 13px Inter,sans-serif;text-decoration:underline;min-height:32px;padding:0 4px;cursor:pointer}
.k-mrows{display:flex;flex-direction:column}
.k-mr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-top:1.5px dashed var(--line,#d8d0bd)}
.k-mr:first-child{border-top:0;padding-top:0}
.k-mr .who{display:flex;flex-direction:column;gap:2px;min-width:0}
.k-mr .who b{display:flex;align-items:center;gap:8px;font-size:14.5px}
.k-mr .who small{font:500 11px 'DM Mono',monospace;color:#666}
.k-mr .left{font:900 22px Fraunces,Georgia,serif;color:var(--g);text-align:center;min-width:44px;display:flex;flex-direction:column;align-items:center;line-height:1}
.k-mr .left small{font:500 9.5px 'DM Mono',monospace;color:#666;letter-spacing:1px;margin-top:3px}
.k-extra{font:600 10.5px 'DM Mono',monospace;background:var(--y);border:1.5px solid var(--ink);border-radius:999px;padding:1px 6px}

/* items 4-6 · groups: reorder, gap, team colors */
.k-mv{display:inline-flex;gap:6px;flex:none}
.k-mv button{width:32px;height:32px;border:2px solid var(--ink);border-radius:9px;background:#fffdf7;font:700 12px Inter,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.k-mv button:disabled{opacity:.35;cursor:default}
.gcol .pl.k-lift{background:var(--y);box-shadow:inset 0 0 0 2px var(--ink)}
.gcol .k-drop{height:0;border-top:3px solid var(--g);margin:0 10px}
.gcol .pl .k-ord{font:600 11px 'DM Mono',monospace;color:#8a8270;width:14px;flex:none;text-align:right}
.k-bal{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:10px 12px;background:#f4efe4;border-top:1.5px solid var(--line,#d8d0bd)}
.k-tc{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1.5px solid var(--ink);border-radius:999px;font:600 11px 'DM Mono',monospace;letter-spacing:.5px;color:#fff}
.k-tc.soju{background:var(--soju,#3E7CB1)}.k-tc.mak{background:var(--mak,#D9822B)}
.k-tc .dot{width:9px;height:9px;border-width:1.5px;border-color:#fff}
.k-gap{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border:1.5px solid var(--ink);border-radius:999px;font:600 11px 'DM Mono',monospace;letter-spacing:.5px;background:#e6f2ea}
.k-gap.warn{background:#fbe3b2;border-color:#a8660b;color:#6b3f00}
.k-overall{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;padding:12px 14px;margin:0 0 14px;border:2px solid var(--ink);border-radius:14px;background:#fffdf7}
.k-overall .lbl{font:500 11px 'DM Mono',monospace;letter-spacing:1.5px;color:var(--red);flex-basis:100%}
.k-overall .k-tc{font-size:12.5px;padding:5px 11px}
.k-overall .k-gap{font-size:12.5px;padding:5px 11px}
.k-legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12.5px;color:#555;margin:0 0 12px}
.k-dgr .gr{grid-template-columns:64px minmax(0,1fr)}
.k-dg{display:flex;flex-direction:column;gap:10px;padding:12px 0;border-top:1.5px dashed var(--line,#d8d0bd)}
.k-dg:first-of-type{border-top:0;padding-top:0}
.k-dg h4{display:flex;justify-content:space-between;align-items:center;margin:0;font:800 15px Inter,sans-serif}
.k-dg h4 small{font:600 12px 'DM Mono',monospace;color:var(--red)}
.k-dpl{display:grid;grid-template-columns:18px 12px minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:14px;min-height:40px}
.k-dpl .o{font:600 11px 'DM Mono',monospace;color:#8a8270;text-align:right}
.k-dpl b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k-dpl .hc{font:600 12px 'DM Mono',monospace;color:#666}
.k-dg .k-bal{border:1.5px solid var(--line,#d8d0bd);border-radius:10px}

/* item 7 · sort + filter */
.k-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 12px}
.k-filter{position:relative;flex:1 1 200px;min-width:0}
.k-filter .in{width:100%;padding-left:38px}
.k-filter .ic{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:14px;pointer-events:none}
.k-sortsel{display:inline-flex;align-items:center;gap:8px;flex:none}
.k-sortsel span{font:500 11px 'DM Mono',monospace;letter-spacing:1px;color:#666}
.k-sortsel select{min-height:44px;border:2px solid var(--ink);border-radius:999px;padding:0 14px;background:#fffdf7;font:700 14px Inter,sans-serif}
.ro th .k-th{display:inline-flex;align-items:center;gap:4px;background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;min-height:28px}
.ro th .k-th.on{color:var(--g);text-decoration:underline;text-underline-offset:3px}
.ro th .k-th i{font-style:normal;font-size:10px}
.k-sortnote{font-size:12.5px;color:#555;margin:0 0 10px}
.k-count{font:500 11px 'DM Mono',monospace;letter-spacing:1px;color:#666}

/* item 8 · chat-setting editor */
.k-chx{display:flex;flex-direction:column;gap:12px;padding:12px;border:2px solid var(--ink);border-radius:14px;background:#fffdf7;margin:10px 0 0;color:var(--ink)}
.k-chx .lbl{font:500 11px 'DM Mono',monospace;letter-spacing:1.5px;color:var(--red)}
.k-chx .seg{width:100%}
.k-chx .hint{font-size:12.5px;color:#555;margin:0}
.k-chx .k-row .btn{flex:none}
.k-saved{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:2px solid var(--g);border-radius:999px;background:#e6f2ea;color:var(--g);font:700 14px Inter,sans-serif}
.k-deskchat{display:flex;flex-direction:column;gap:12px;padding:0 0 14px;margin:0 0 12px;border-bottom:1.5px dashed var(--line,#d8d0bd)}
.k-deskchat .seg{width:100%}

/* item 9 · inline roster edit */
.ro tr.k-edit td{background:#fff6dc;border-top:2px solid var(--ink)}
.ro tr.k-edit+tr td{border-top:2px solid var(--ink)}
.k-ef{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:6px 0;white-space:normal}
.k-ef .fld{margin:0;display:flex;flex-direction:column;gap:6px}
.k-ef .fld label,.k-ef .fld .lbl{font:500 11px 'DM Mono',monospace;letter-spacing:1px;color:#666}
.k-ef .in{width:100%}
.k-ef .seg{width:100%}
.k-ef .k-row{justify-content:flex-start}
@media(min-width:900px){.k-ef{grid-template-columns:minmax(0,1.4fr) 90px minmax(0,1.6fr)}.k-ef .w2{grid-column:span 1}.k-ef .full{grid-column:1/-1}}
.ro .k-pen{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 10px;border:2px solid var(--ink);border-radius:999px;background:#fffdf7;font:700 12.5px Inter,sans-serif;cursor:pointer}
.k-roster .ro td.nm{white-space:normal}
.k-roster .ro td.act{text-align:right}
.k-rlist{display:flex;flex-direction:column}
.k-rr{display:grid;grid-template-columns:12px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 0;border-top:1.5px dashed var(--line,#d8d0bd);min-height:52px}
.k-rr:first-child{border-top:0}
.k-rr .nm{display:flex;flex-direction:column;gap:2px;min-width:0;font-weight:700;font-size:14.5px}
.k-rr .nm small{font:500 11px 'DM Mono',monospace;color:#666;font-weight:500}
.k-rr .hc{font:600 13px 'DM Mono',monospace}
.k-rr.k-open{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:6px 0;padding:14px;border:2px solid var(--ink);border-radius:14px;background:#fff6dc}
.k-rr.k-open+.k-rr{border-top:0}
.k-rr.k-open .k-eh{display:flex;align-items:center;gap:10px;font:800 15px Inter,sans-serif}

/* item 10 · desktop fix-a-score grid */
.k-fix{display:flex;flex-direction:column;gap:14px}
.k-fixhd{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.k-fixhd .seg{width:auto}
.k-gridwrap{overflow-x:auto;border:2px solid var(--ink);border-radius:14px;background:#fffdf7}
table.k-sg{border-collapse:separate;border-spacing:0;width:100%;font:600 14px Inter,sans-serif;min-width:1100px}
.k-sg th,.k-sg td{padding:0;text-align:center;border-left:1.5px solid var(--line,#d8d0bd);border-top:1.5px solid var(--line,#d8d0bd);height:44px;min-width:42px}
.k-sg thead th{border-top:0;font:500 11px 'DM Mono',monospace;color:#555;height:34px;background:#f4efe4}
.k-sg thead tr.par th{height:28px;background:#fffdf7;font-size:11px}
.k-sg th.pn,.k-sg td.pn{text-align:left;padding:0 12px;border-left:0;min-width:170px;position:sticky;left:0;background:#fffdf7;z-index:1}
.k-sg td.pn b{display:flex;align-items:center;gap:8px}
.k-sg td.pn small{display:block;font:500 10.5px 'DM Mono',monospace;color:#666}
.k-sg td.k-tot{font:800 15px Inter,sans-serif;background:#f4efe4;min-width:56px}
.k-sg td.k-tot small{display:block;font:500 10px 'DM Mono',monospace;color:#666}
.k-sg td .c{display:flex;align-items:center;justify-content:center;width:100%;height:100%;position:relative;cursor:pointer}
.k-sg td .c.bd{color:var(--red)}
.k-sg td .c.bg{color:#555}
.k-sg td .c.fx{background:#fff3cc}
.k-sg td .c.mk:after{content:attr(data-m);position:absolute;top:3px;right:3px;font:600 8.5px 'DM Mono',monospace;color:var(--g)}
.k-sg td.sel{box-shadow:inset 0 0 0 3px var(--g);background:#e6f2ea}
.k-sg td.na .c{color:#b3aa95}
.k-pop{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding:14px;border:2px solid var(--ink);border-radius:14px;background:var(--y);box-shadow:3px 3px 0 var(--ink)}
.k-pop .t{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}
.k-pop .t b{font-size:15px}
.k-pop .t span{font:500 11.5px 'DM Mono',monospace}
.k-pop .k-step button{background:#fffdf7}
.k-pop .k-step .v{background:#fff;min-width:56px;height:40px;display:inline-flex;align-items:center;justify-content:center}
.k-pop .in{width:72px;text-align:center}
.k-audit{display:flex;flex-wrap:wrap;gap:8px 16px;font:500 11.5px 'DM Mono',monospace;color:#555}
.k-audit b{color:var(--ink)}
.k-fixfoot{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.k-phonefix{display:none}
@media(max-width:899px){.k-fixdesk{display:none}.k-phonefix{display:flex;flex-direction:column;gap:12px}}
/* item 10 · score screen on tall windows: pack tiles under the hole strip */
@media(min-height:880px){body.page-score .grid{align-content:start;row-gap:12px;padding-top:12px}}

/* item 12 · event info */
.k-evbar{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;background:var(--g);color:var(--r);border-bottom:1.5px solid rgba(255,255,255,.18)}
.k-evname{display:inline-flex;align-items:center;gap:8px;background:none;border:0;color:var(--r);font:800 15px Inter,sans-serif;min-height:32px;padding:0 4px;cursor:pointer;max-width:100%;min-width:0}
.k-evname span.t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.k-i{position:relative;flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--y);color:var(--y);display:inline-flex;align-items:center;justify-content:center;font:700 12px Georgia,serif;font-style:italic}
.k-i.dot:after{content:"";position:absolute;top:-5px;right:-5px;width:10px;height:10px;border-radius:50%;background:var(--red);border:2px solid var(--g)}
.k-notice{display:flex;align-items:center;gap:10px;margin:8px 8px 0;padding:8px 8px 8px 12px;border:2px solid var(--ink);border-radius:12px;background:#fffdf7;font-size:13.5px}
.k-notice .ic{flex:none}
.k-notice a{flex:1;min-width:0;color:var(--ink);text-decoration:none}
.k-notice a b{color:var(--red)}
.k-notice button{flex:none;width:32px;height:32px;border:2px solid var(--ink);border-radius:9px;background:var(--r);font:700 13px Inter,sans-serif;cursor:pointer}
.k-sheet{max-height:86vh}
.k-ihead{display:flex;flex-direction:column;gap:4px}
.k-ihead .mlabel{color:var(--red)}
.k-ihead h2{font-size:28px;margin:0}
.k-ihead p{margin:0;font-size:14px;color:#444}
.k-isec{display:flex;flex-direction:column;gap:8px;padding:14px;border:2px solid var(--ink);border-radius:14px;background:#fffdf7}
.k-isec h3{display:flex;align-items:center;gap:10px;margin:0;font:800 17px Inter,sans-serif}
.k-isec h3 .ic{width:32px;height:32px;flex:none;border-radius:10px;border:2px solid var(--ink);background:var(--y);display:inline-flex;align-items:center;justify-content:center;font-size:15px}
.k-isec p{margin:0;font-size:14px}
.k-dl{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px 12px;margin:0;font-size:14px}
.k-dl dt{font:500 11px 'DM Mono',monospace;letter-spacing:1px;color:#666;padding-top:2px}
.k-dl dd{margin:0;min-width:0}
.k-dl dd small{display:block;color:#555;font-size:12.5px}
.k-isec .k-row a{color:var(--g);font-weight:700}
.k-meal{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-top:1.5px dashed var(--line,#d8d0bd)}
.k-meal:first-of-type{border-top:0;padding-top:0}
.k-meal .mh{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.k-meal .mh b{font-size:15px}
.k-meal .mh span{font:500 11.5px 'DM Mono',monospace;color:var(--red);white-space:nowrap}
.k-meal p{font-size:13.5px;color:#444}
.k-rsvp{display:flex;flex-direction:column;gap:10px;padding:12px;border:2px solid var(--ink);border-radius:12px;background:var(--r)}
.k-rsvp .seg{width:100%}
.k-rsvp .in{width:100%}
.k-rsvp .lbl{font:500 11px 'DM Mono',monospace;letter-spacing:1px;color:#666}
.k-chips{display:flex;flex-wrap:wrap;gap:8px}
.k-chips .chip{display:inline-flex;align-items:center;gap:6px}
.k-mates{display:flex;flex-direction:column;gap:8px}
.k-mate{display:flex;align-items:center;gap:10px;font-size:14px}
.k-mate b{flex:1;min-width:0}
.k-mate .hc{font:600 12px 'DM Mono',monospace;color:#666}
.k-land{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.k-land .k-isec.hero{background:var(--y);box-shadow:4px 4px 0 var(--ink)}
.k-land .k-isec.hero .big{font:900 34px/1 Fraunces,Georgia,serif;color:var(--g)}
.k-cta{display:flex;flex-direction:column;gap:10px}
.k-cta .btn{width:100%}
@media(min-width:900px){.k-land{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.k-land .span2{grid-column:1/-1}.k-cta{flex-direction:row}.k-cta .btn{width:auto}}
.k-infoc{display:flex;flex-direction:column;gap:14px}
.vband .k-evname{font:900 36px/1.05 Fraunces,Georgia,serif;padding:0;color:var(--r);text-align:left;white-space:normal}
.vband .k-evname .k-i{width:28px;height:28px;font-size:15px}
.vband .k-evname .t{white-space:normal}
@media(max-width:899px){.vband .k-evname{font-size:30px}}
/* setup step · event info */
.k-step6{display:flex;flex-direction:column;gap:14px}
.k-is{display:flex;flex-direction:column;gap:12px}
.k-is .ph{margin:0}
.k-is .ph .k-st{font:500 10.5px 'DM Mono',monospace;letter-spacing:1px;padding:3px 9px;border:1.5px solid var(--ink);border-radius:999px;background:var(--m);white-space:nowrap}
.k-is .ph .k-st.off{background:transparent;border-style:dashed;color:#777}
.k-is .fld{margin:0}
.k-is .in{width:100%}
.k-is textarea.in{min-height:76px;padding:10px 12px;resize:vertical;font:500 14px Inter,sans-serif}
.k-g2{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
@media(min-width:900px){.k-g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.k-g2 .full{grid-column:1/-1}}
.k-is.collapsed .k-sum{font-size:13.5px;color:#555;margin:0}
.k-blank{font-size:12.5px;color:#777;margin:0}
/* desk notice composer */
.k-post{display:flex;flex-direction:column;gap:10px;padding:14px;margin-top:12px;border:2px solid var(--ink);border-radius:14px;background:#fffdf7}
.k-post .lbl{font:500 11px 'DM Mono',monospace;letter-spacing:1.5px;color:var(--red)}
.k-post .in{width:100%}
.k-post .now{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px dashed var(--g);border-radius:10px;background:#f4f8f2;font-size:13.5px}
.k-post .now span{flex:1;min-width:0}
/* score screen has no mockup.css: site button/chip basics for the sheets mocked there */
body.page-score .k-sheet .btn,body.page-score .k-toast .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--y);color:var(--ink);font:700 15px Inter,sans-serif;padding:10px 18px;min-height:48px;border-radius:999px;border:2px solid var(--ink);text-decoration:none;box-shadow:3px 3px 0 var(--ink);cursor:pointer}
body.page-score .k-sheet .btn.ghost{background:transparent;box-shadow:none}
body.page-score .k-sheet .mlabel{font:500 11px 'DM Mono',monospace;letter-spacing:2px;text-transform:uppercase;color:var(--red)}
body.page-score .k-sheet h2,body.page-score .k-sheet h3{font-family:Inter,sans-serif}
body.page-score .k-sheet .k-ihead h2{font:900 26px/1.1 Fraunces,Georgia,serif;color:var(--g)}
body.page-score .k-sheet .chip{display:inline-flex;align-items:center;gap:5px;font:500 11px 'DM Mono',monospace;letter-spacing:1px;padding:3px 9px;border-radius:999px;border:1.5px solid var(--ink);white-space:nowrap;background:#fffdf7}
body.page-score .scrim{z-index:80}
.btn.ghost-d{background:transparent;box-shadow:none;color:var(--ink);border-color:var(--ink)}

/* score-screen fit: compact evbar, toast and notice sit in the yellow-note slot */
.k-evbar{padding:2px 12px}
.k-evname{min-height:28px;font-size:14px}
.k-i{width:20px;height:20px;font-size:11px}
.k-toast{margin:6px 8px 0;padding:3px 6px 3px 10px;border-radius:10px;font-size:12px;min-height:30px}
.k-toast span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-toast button{min-height:24px;font-size:12px}
.k-notice{margin:6px 8px 0;padding:3px 4px 3px 8px;border-radius:10px;font-size:12px;min-height:30px;gap:6px}
.k-notice a{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-notice button{width:28px;height:24px;border-radius:7px;font-size:11px}
.tile .nm .k-mp{height:20px;padding:0 6px;font-size:10.5px}
/* item 12 on the score screen: the event name lives in the top bar's left column (no extra row) */
.abar .who.k-evwho{display:block;min-width:0;background:none;border:0;padding:0;margin:0;color:inherit;text-align:left;font:500 11px 'DM Mono',monospace;letter-spacing:1px;line-height:1.45;cursor:pointer}
.abar .k-evwho>span:not(.k-evt){display:block}
.k-evt{display:flex;align-items:center;gap:5px;min-width:0;padding:2px 6px 1px 0;font:800 13px/1.25 Inter,sans-serif;letter-spacing:0;color:var(--r)}
.k-evt .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.k-evt .k-i{width:17px;height:17px;border-width:1.5px;font-size:10px}
.k-evt .k-i.dot:after{top:-4px;right:-4px;width:8px;height:8px;border-width:1.5px}
.k-sg td.k-tot{min-width:76px;padding:0 10px}
@media(max-height:700px){.tile .nm .k-mp{height:18px;padding:0 5px;font-size:10px}}
/* item 8: on phones the Chat tab hid the chat header, so the host had no way to change the setting. Show it when the editor is present. */
body.page-live .lb.t-ch .chh:has(.k-chx){display:block}
.k-chx .seg,.k-deskchat .seg{display:flex}
.k-chx .seg label,.k-deskchat .seg label{flex:1 1 auto;white-space:nowrap;justify-content:center;text-align:center}
/* Phone host desk was overflowing to about 426px on a 390px screen. */
@media (max-width:640px){
  body.page-setup .hd,body.page-setup .ev,body.page-setup .card,body.page-setup .sumbar,body.page-setup .cols,body.page-setup .col{max-width:100%;min-width:0}
  body.page-setup .ev{flex-wrap:wrap}
  body.page-setup .ev .acts{flex:1 1 100%;flex-wrap:wrap}
  body.page-setup .teams{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  body.page-setup .teams .tm,body.page-setup .hd h1,body.page-setup .sumbar h1{min-width:0;overflow-wrap:anywhere}
  body.page-setup table.ro{display:block;width:100%;max-width:100%;overflow-x:auto}
}

/* m17 QA fixes */
/* f03b/f12c: the toast and the host notice take the yellow bar's slot instead of adding a row (tiles clipped at 360x640) */
body.page-score #yellow-bar:not(.announcing):has(~ #host-notice:not([hidden])),
body.page-score #yellow-bar:has(~ #mull-toast:not([hidden])),
body.page-score #host-notice:has(~ #mull-toast:not([hidden])),
body.page-score #yellow-bar.announcing ~ #host-notice{display:none}
/* f12d: "My scorecard" ghost button was cream-on-yellow */
.k-isec.hero .btn.ghost{color:var(--ink);border-color:var(--ink)}
/* f07b: desk roster fits a phone; Edit/Nudge no longer scroll off the right edge */
@media(max-width:480px){
  .k-roster{display:table;width:100%;table-layout:auto}
  .k-roster th,.k-roster td{padding-left:4px;padding-right:4px}
  .k-roster td.nm{white-space:normal;width:auto}
  .k-roster .claim-when,.k-roster th:nth-child(5),.k-roster td:nth-child(5){display:none}
  .k-roster td.act{white-space:nowrap}
}
.k-del{margin-top:10px}.k-del label{display:flex;gap:8px;align-items:center;margin:10px 0}
/* desk "Who sees" / chat Save no longer glued to the segmented pill */
.seg > .btn.sm{margin:4px;align-self:center}
/* Fit the fix-score grid on a 1280 screen without a sideways scroll. */
@media(min-width:1100px){table.k-sg{min-width:0;table-layout:fixed;width:100%}.k-gridwrap{overflow-x:hidden}.k-sg th,.k-sg td{min-width:0}.k-sg th.pn{width:170px}.k-sg th.k-tot{width:64px}}
/* Keep "net 3" off the bottom edge of a short phone. */
@media(max-height:700px){body.page-score .tile{padding-bottom:8px}body.page-score .tile .tp,body.page-score .tile .netmini{margin-bottom:0}body.page-score .tile .ctr{padding-top:0}}
#roster-table tr.k-miss{display:none}
/* Finished round: the save card sits above the tiles, so let the page scroll instead of squashing them. */
html:has(#save-round),body.page-score:has(#save-round){height:auto;min-height:100dvh;overflow:visible}body.page-score:has(#save-round) .app{flex:none;overflow:visible}body.page-score:has(#save-round) .grid,body.page-score:has(#save-round) .pls.tilegrid{flex:none;overflow:visible;grid-template-rows:auto auto}body.page-score .savep{flex:none;margin:8px 8px 0;padding:14px 16px;gap:6px}body.page-score .savep h2{font-size:20px}
/* JS autosaves the chat setting, so its Save button only shows without JS or after a failed save. */
form.k-chx button.k-auto{display:none}
/* m17c: sheets, roster rows, phone find/sort, fix-a-score header */
.scrim[hidden]{display:none !important}
.k-roster td.act{white-space:nowrap}
.k-roster td.act form{display:inline-flex;margin:0 0 0 6px;vertical-align:middle}
.k-roster td.act .k-pen{vertical-align:middle}
.k-eh{display:flex;align-items:center;gap:10px;font:800 15px Inter,sans-serif;grid-column:1/-1}
tr.k-edit td{overflow:visible}
.k-ef select.in{max-width:100%;min-width:0}
#phone-cards .pc.k-miss{display:none}
.k-fixhd .seg a{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:44px;padding:6px 12px;font-weight:700;border-left:2px solid var(--ink);text-decoration:none;white-space:nowrap;color:inherit}
.k-fixhd .seg a:first-child{border-left:0}
.k-fixhd .seg a.on{background:var(--g);color:var(--r)}
.k-sg td.k-tot{height:auto;min-height:44px;padding:4px 2px}
body.page-gate header.top,body.page-gate footer.ft{display:block}
/* m17c QA patch: score tiles at 760-819px tall clipped the "net N" line (the min-height:760 sizes in app.css need ~20px more). */
@media(min-height:760px) and (max-height:819px){body.page-score .tile{padding:9px 9px 8px}body.page-score .tile .info{margin-top:1px}body.page-score .tile .tp{font-size:20px;margin-top:1px}body.page-score .tile .ctr button{width:46px;height:46px;font-size:25px}body.page-score .tile .sc .v{font-size:40px}}
/* m17c QA patch: phone Fix-a-score group tabs scroll instead of clipping the last group. */
@media(max-width:700px){.k-fixhd .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.k-fixhd .seg a{flex:0 0 auto}}
