/* Nebraska Esports training hub.
   Retro instant-messenger windows in Nebraska scarlet and cream.
   Player: Today + My Week (left), Ranks + Leaderboard (right). Coach: Roster + Leaderboard (left), Player + Settings (right).
   One committed light look. */
:root{
  color-scheme:light;
  --desk:#E9DFCB;
  --desk-hi:#F6F0E3;
  --cream:#F5F1E7;
  --paper:#FFFFFF;
  --scarlet:#D00000;
  --scarlet-dk:#A20000;
  --scarlet-deep:#6B0000;
  --scarlet-soft:#F8DED8;
  --ink:#1D1A16;
  --muted:#645C50;
  --bevel:#8A806F;
  --line:#D2C8B5;
  --ok:#2C7A30;
  --ok-soft:#DCEFD7;
  --warn:#8F5300;
  --warn-soft:#F8E7C6;
  --pace:#3B6FB6;
  --amber:#E0A100;
  --white:#FFFFFF;
  --t-unranked:#7F8899;
  --t-bronze:#9E6838;
  --t-silver:#7F8B9B;
  --t-gold:#B88A1E;
  --t-platinum:#2B95A3;
  --t-diamond:#3A74CF;
  --t-champion:#8452CF;
  --t-gc:#C63B44;
  --t-ssl:#4F4A86;
  --font-ui:Tahoma,Verdana,"Segoe UI",Geneva,sans-serif;
  --font-title:"Trebuchet MS","Lucida Grande",Tahoma,sans-serif;
  --font-mono:"Lucida Console","Courier New",ui-monospace,monospace;
  padding-top:env(safe-area-inset-top,0px);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--desk)}
body{margin:0;background:var(--desk);background-image:radial-gradient(130% 70% at 50% 0%,var(--desk-hi) 0%,var(--desk) 70%);background-attachment:fixed;color:var(--ink);font:13.5px/1.45 var(--font-ui);-webkit-text-size-adjust:100%}
h1,h2,h3,h4,p,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px dotted var(--scarlet-deep);outline-offset:2px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}

.desk{max-width:1180px;margin:0 auto;padding-inline:16px;padding-block:18px 84px;display:grid;gap:16px}
@media (min-width:640px){.desk{padding-inline:24px}}

/* Masthead */
.masthead{display:flex;align-items:flex-end;justify-content:space-between;gap:6px 16px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.logo{flex:none;width:clamp(40px,8vw,56px);height:auto}
.masthead h1{font:700 clamp(28px,6vw,44px)/1.04 var(--font-title);color:var(--scarlet);letter-spacing:-.01em;text-shadow:1px 1px 0 var(--white),2px 2px 0 rgba(107,0,0,.2);text-wrap:balance;overflow-wrap:anywhere}
.conn{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.conn:empty{display:none}
.conn::before{content:"";width:9px;height:9px;border-radius:2px;background:var(--bevel);box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.conn[data-state="saved"]::before{background:var(--ok)}
.conn[data-state="saving"]::before{background:var(--amber)}
.conn[data-state="error"]{color:var(--scarlet-dk)}
.conn[data-state="error"]::before{background:var(--scarlet)}

.view{display:grid;gap:16px;min-width:0}
.cols{display:grid;gap:16px}
@media (min-width:980px){.cols{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);align-items:start}}
.col{display:grid;gap:16px;min-width:0}

/* Windows */
.win{background:var(--cream);border:1px solid var(--scarlet-deep);border-radius:8px 8px 4px 4px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),3px 4px 0 rgba(70,25,10,.16);overflow:hidden;min-width:0}
.tbar{display:flex;align-items:center;gap:8px;padding:5px 5px 5px 9px;min-height:32px;background:linear-gradient(180deg,#F2685C 0%,#DA1F14 7%,#C40000 45%,#A60000 88%,#860000 100%);color:var(--white);border-bottom:1px solid var(--scarlet-deep)}
.ticon{flex:none;width:14px;height:14px;border-radius:3px;background:linear-gradient(135deg,var(--cream),#E6D9BE);box-shadow:inset 0 0 0 1px rgba(107,0,0,.6)}
.ttl{flex:1;min-width:0;font:700 13.5px var(--font-title);text-shadow:1px 1px 0 rgba(0,0,0,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tmin{flex:none;width:22px;height:21px;padding:0;border:1px solid rgba(255,255,255,.9);border-radius:3px;background:linear-gradient(180deg,#EE6B5E,#B81010);color:var(--white);font:700 12px/1 var(--font-ui)}
.tmin:hover{filter:brightness(1.12)}
.wbody{padding:12px 14px 14px;display:grid;gap:12px;min-width:0}
.win.min .wbody{display:none}
.signon,.account{width:100%;max-width:400px;justify-self:center}

/* Controls */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:4px 12px;font:12.5px var(--font-ui);color:var(--ink);border:1px solid #786D5C;border-radius:3px;background:linear-gradient(180deg,#FFFFFF 0%,#F5F0E4 55%,#E2D7C2 100%);box-shadow:inset 0 1px 0 var(--white);white-space:nowrap}
.btn:hover:not(:disabled){border-color:var(--scarlet);box-shadow:inset 0 0 0 1px #F3A79E}
.btn:active:not(:disabled){background:linear-gradient(180deg,#E2D7C2,#F5F0E4)}
.btn:disabled{color:#9C9488;cursor:default}
.btn.primary{border-color:var(--scarlet-deep);background:linear-gradient(180deg,#EC5247 0%,#D00000 55%,#A40000 100%);color:var(--white);font-weight:700;text-shadow:0 1px 0 rgba(0,0,0,.3);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.btn.primary:hover:not(:disabled){filter:brightness(1.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.btn.primary:disabled{opacity:.6;color:var(--white)}
.btn.danger{color:var(--scarlet-dk)}
.btn.win-btn{min-width:68px;min-height:38px;font-weight:700;border-color:#1F5B22;background:linear-gradient(180deg,#5DBB61 0%,#2E8B33 55%,#226C27 100%);color:var(--white);text-shadow:0 1px 0 rgba(0,0,0,.3)}
.btn.loss-btn{min-width:68px;min-height:38px;font-weight:700;color:var(--scarlet-dk)}
.btn.sm{min-height:24px;padding:2px 9px;font-size:12px}
.push{margin-left:auto}
.linkbtn{background:none;border:0;padding:0;color:var(--scarlet-dk);text-decoration:underline;font-size:12px}
input[type="text"],input[type="password"],input[type="url"],input[type="number"],input[type="time"],select,textarea{width:100%;background:var(--paper);border:1px solid #8C8270;border-radius:0;padding:5px 7px;font-size:14px;line-height:1.4}
textarea{resize:vertical;min-height:50px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--scarlet);box-shadow:0 0 0 2px var(--scarlet-soft)}
.lbl{font-size:12px;font-weight:700;color:var(--scarlet-dk)}
.fld{display:grid;gap:4px;min-width:0}
.chk{display:inline-flex;align-items:center;gap:7px;justify-self:start;cursor:pointer}
.chk input{width:15px;height:15px;margin:0;accent-color:var(--scarlet)}
.fine{font-size:12px;color:var(--muted)}
.fine:empty{display:none}
.status{font-size:12.5px}
.status:empty{display:none}
.status.err{color:var(--scarlet-dk)}
.status.ok{color:var(--ok)}
.empty{font-size:13px;color:var(--muted);padding:12px;border:1px dashed var(--bevel);background:var(--paper)}
.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.row.end{justify-content:flex-end}
.spread{display:flex;align-items:baseline;justify-content:space-between;gap:6px 10px;flex-wrap:wrap}
.big-date{font:700 18px var(--font-title)}

/* Session cards */
.stack{display:grid;gap:10px}
.stack:empty{display:none}
.card{background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:10px 12px;display:grid;gap:9px;min-width:0}
.card.live{border:2px solid var(--scarlet);background:#FFFDF8;box-shadow:0 0 0 3px var(--scarlet-soft)}
.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px 10px;flex-wrap:wrap}
.ctype{font:700 15px var(--font-title)}
.live .ctype::before{content:"● ";color:var(--scarlet)}
.ctime{font-size:15px;color:var(--scarlet-dk)}
.cmeta{font-size:12.5px;color:var(--muted)}
.counts-hint{font-size:12px;color:var(--warn)}
.counts-hint.ok{color:var(--ok);font-weight:700}
.nc{font-size:12px;color:var(--warn)}
.nc:empty{display:none}
.csum{font-size:12.5px;overflow-wrap:anywhere}
.card-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.warnbox{display:grid;gap:8px;padding:9px 10px;background:var(--warn-soft);border:1px solid #D9B676;color:var(--warn);font-size:12.5px}
.warnbox input{width:96px}
.refl{display:grid;gap:8px;padding-top:8px;border-top:1px dotted var(--line)}
.checkins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ci{display:grid;gap:2px;justify-items:start;padding:10px 14px;text-align:left;border:1px solid var(--scarlet-deep);border-radius:4px;background:linear-gradient(180deg,#EC5247 0%,#D00000 55%,#A40000 100%);color:var(--white);box-shadow:inset 0 1px 0 rgba(255,255,255,.35);text-shadow:0 1px 0 rgba(0,0,0,.3)}
.ci:hover{filter:brightness(1.08)}
.ci-k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.ci-t{font:700 16px var(--font-title)}

/* Counters */
.ctrs{display:grid;gap:8px}
.ctr{display:grid;gap:6px;padding:8px 10px;background:var(--cream);border:1px solid var(--line)}
.ctr-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.ctr-name{font-weight:700}
.ctr-goal{font-size:11.5px;color:var(--muted)}
.ctr-goal.hit{color:var(--ok);font-weight:700}
.segs{display:flex;gap:2px;padding:2px;border:1px solid var(--bevel);background:var(--paper)}
.segs i{flex:1;height:9px;background:transparent}
.segs i.stretch{background:repeating-linear-gradient(90deg,var(--line) 0 2px,transparent 2px 4px)}
.segs i.on{background:var(--scarlet)}
.segs.hit i.on{background:var(--ok)}
.ctr-main{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap}
.ctr-count{font:700 30px/1 var(--font-title);min-width:1.4ch;font-variant-numeric:tabular-nums}
.ctr-wl{font-family:var(--font-mono);font-size:12px}
.ctr-wl .w{color:var(--ok)}
.ctr-wl .l{color:var(--scarlet-dk)}
.ctr-btns{margin-left:auto;display:flex;gap:6px}

/* Focus chips */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{padding:3px 10px;font-size:12px;border:1px solid var(--bevel);border-radius:10px;background:var(--paper)}
.chip:hover{border-color:var(--scarlet)}
.chip[aria-pressed="true"]{background:var(--scarlet);border-color:var(--scarlet-deep);color:var(--white)}
.addf{display:flex;gap:6px;max-width:320px}
.addf input{padding:3px 7px;font-size:13px}

/* Week */
.weeknav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.wk-label{font:700 14px var(--font-title);min-width:118px;text-align:center}
.reqs{display:grid;gap:9px;padding:10px 12px;background:var(--paper);border:1px solid var(--line)}
.reqs:empty{display:none}
.req{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px}
.req-name{font-weight:700}
.pips{display:flex;gap:4px}
.pips i{width:18px;height:18px;border:1px solid var(--bevel);border-radius:3px;background:var(--paper)}
.pips i.on{background:var(--scarlet);border-color:var(--scarlet-deep)}
.req.met .pips i.on{background:var(--ok);border-color:#1F5B22}
.req-nums{min-width:40px;text-align:right;font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.req.met .req-nums{color:var(--ok);font-weight:700}
.verdict{font-size:13px;padding:7px 10px;border:1px solid}
.verdict.good{color:var(--ok);background:var(--ok-soft);border-color:#9CC898}
.verdict.short{color:var(--warn);background:var(--warn-soft);border-color:#D9B676}
.verdict:empty{display:none}
.wlog{display:grid;gap:8px}
.wl-day{display:grid;gap:3px;padding:8px 10px;background:var(--paper);border:1px solid var(--line)}
.wl-day.is-today{box-shadow:inset 3px 0 0 var(--scarlet)}
.wl-date{font-weight:700;font-size:12.5px}
.wl-line{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;font-size:12.5px;color:var(--ok)}
.wl-line.live{color:var(--scarlet-dk)}
.wl-sum{color:var(--muted)}
.wl-line.nc{color:var(--muted)}
.wl-nc{color:var(--warn)}
.wl-note{font-size:12px;padding:4px 8px;background:var(--scarlet-soft);border-left:3px solid var(--scarlet);white-space:pre-wrap;overflow-wrap:anywhere}
.wl-note b{color:var(--scarlet-dk)}
.wl-line .rm{margin-left:auto;font-size:11.5px}

/* Ranks */
.rank-list{display:grid}
.rank{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 0;border-bottom:1px dotted var(--bevel)}
.rank:last-child{border-bottom:0}
.badge{width:34px;height:40px;background:var(--tier,var(--t-unranked));clip-path:polygon(50% 0,100% 22%,100% 72%,50% 100%,0 72%,0 22%);display:grid;place-items:center;color:var(--white);font:700 12px var(--font-title)}
.rank-pl{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.rank-tier{font:700 15px var(--font-title)}
.rank-tier .div{font:12px var(--font-ui);color:var(--muted);margin-left:5px}
.rank-tier.unset{color:var(--muted)}
.rank-nums{display:grid;justify-items:end;text-align:right}
.mmr{font-family:var(--font-mono);font-weight:700}
.mmr .unit{font-size:10.5px;color:var(--muted);margin-left:3px;font-weight:400}
.wk{font-family:var(--font-mono);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}
.wk.up{color:var(--ok)}
.wk.down{color:var(--scarlet-dk)}
.wk.flat{color:var(--muted);font-weight:400}
.spark{display:block;width:120px;height:24px;margin-top:4px;overflow:visible}
.spark path{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark .old{stroke:var(--bevel)}
.spark .now{stroke:var(--scarlet)}
.spark circle{fill:var(--scarlet);stroke:var(--paper);stroke-width:1.5}
.gm{font-size:11.5px;color:var(--muted)}

/* Forms in windows */
.sub{display:grid;gap:10px;padding:12px;background:var(--paper);border:1px solid var(--bevel)}
.sub h3{font:700 14px var(--font-title);color:var(--scarlet-dk)}
.add-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}
.add-grid .wide{grid-column:1 / -1}
@media (max-width:480px){.add-grid{grid-template-columns:minmax(0,1fr)}}
.pw-row{display:flex;gap:6px}
.pw-row input{font-family:var(--font-mono)}
.ef{border:0;padding:0;margin:0;min-width:0}
.ef legend{font-weight:700;padding:0;margin-bottom:6px}
.ef-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ef-grid label{display:grid;gap:3px;font-size:11.5px;color:var(--muted);min-width:0}
.grp{display:grid;gap:8px;padding:10px 12px;border:1px solid var(--line);background:var(--paper)}
.grp h3{font:700 13px var(--font-title);color:var(--scarlet-dk)}
.set-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.set-grid label{display:grid;gap:3px;font-size:12px;color:var(--muted);min-width:0}
@media (min-width:640px){.set-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.copybox{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:var(--ok-soft);border:1px solid #9CC898;font-size:13px}
.copybox code{font-family:var(--font-mono);font-size:13px;overflow-wrap:anywhere}

/* Roster */
.rrow{display:grid;grid-template-columns:minmax(0,1fr) 64px 70px 84px;align-items:center;gap:10px;width:100%;padding:8px 10px;text-align:left;background:transparent;border:0;border-bottom:1px dotted var(--line);font:inherit;color:inherit}
.rrow:last-child{border-bottom:0}
button.rrow:hover{background:var(--scarlet-soft)}
.rrow[aria-current="true"]{background:var(--scarlet-soft);box-shadow:inset 3px 0 0 var(--scarlet)}
.rrow.rh{padding-block:5px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:linear-gradient(180deg,#FCF9F2,#EDE4D1);border-bottom:1px solid var(--line)}
.rname{font-weight:700;overflow-wrap:anywhere}
.pill{justify-self:start;padding:2px 8px;border-radius:9px;border:1px solid transparent;font-size:11px;font-weight:700;white-space:nowrap}
.pill.live{background:var(--scarlet);color:var(--white)}
.rc{font-size:13px;font-variant-numeric:tabular-nums}
.rc.met{color:var(--ok);font-weight:700}
.pill.open{background:var(--warn-soft);color:var(--warn);border-color:#D9B676}
.pill.done{background:var(--ok-soft);color:var(--ok);border-color:#9CC898}
.pill.notyet{background:var(--paper);color:var(--muted);border-color:var(--line)}
.pill.missed{background:#ECE7DD;color:var(--muted)}
@media (max-width:420px){.rrow{grid-template-columns:minmax(0,1fr) 52px 60px 74px;gap:6px}.rrow.rh{font-size:10px;letter-spacing:.02em}}

/* Leaderboard */
.board{display:grid;background:var(--paper);border:1px solid var(--bevel)}
.board li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 10px;border-bottom:1px dotted var(--line)}
.board li:last-child{border-bottom:0}
.board .bn{overflow-wrap:anywhere}
.board .bg{font-family:var(--font-mono);font-weight:700;font-variant-numeric:tabular-nums}
.board li.me{background:var(--scarlet-soft);font-weight:700}
.board li.none{color:var(--muted);justify-content:center}
.pd-team{display:flex;align-items:center;gap:8px}
.pd-team select{width:auto;min-width:120px}
.pd-sess .row .danger{margin-left:auto}
.pd-sess.nc{border-left-color:var(--amber)}
.pd-refl.cn{padding:4px 8px;background:var(--scarlet-soft);border-left:3px solid var(--scarlet)}
.note-ed{display:grid;gap:6px}
.ro{display:grid;gap:3px}
.roster{background:var(--paper);border:1px solid var(--bevel);min-width:0}
.bteam{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-left:6px}

/* Player detail */
.pd-day{display:grid;gap:4px;padding:8px 10px;background:var(--paper);border:1px solid var(--line)}
.pd-day h4{font:700 13px var(--font-title)}
.pd-line{font-size:12.5px;overflow-wrap:anywhere}
.pd-line.muted{color:var(--muted)}
.pd-sess{display:grid;gap:2px;padding:6px 8px;background:var(--cream);border-left:3px solid var(--ok)}
.pd-sess.live{border-left-color:var(--scarlet)}
.pd-refl{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}
.pd-refl b{color:var(--scarlet-dk)}

/* Taskbar */
.taskbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;align-items:center;gap:6px;padding:5px 8px calc(5px + env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,#C22A20 0%,#A60000 12%,#930000 88%,#700000 100%);border-top:1px solid #E86A5F}
.tasks{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;flex:1}
.task{flex:none;padding:5px 12px;font:12px var(--font-ui);color:var(--white);border:1px solid rgba(255,255,255,.3);border-radius:3px;background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.04))}
.task:hover{background:rgba(255,255,255,.22)}
.task[aria-pressed="true"]{background:rgba(0,0,0,.28);box-shadow:inset 1px 1px 3px rgba(0,0,0,.45)}
.task.view{font-weight:700}
.task.acct{margin-left:auto}
.tsep{flex:none;width:1px;height:20px;background:rgba(255,255,255,.3);margin:0 4px}
.clock{flex:none;padding:4px 10px;font:12px var(--font-ui);color:var(--white);border-left:1px solid rgba(255,255,255,.3)}
@media (max-width:560px){.task.sec,.tsep{display:none}}


