:root{color-scheme:light;--paper:#eee9dc;--ink:#202b27;--muted:#5b655e;--line:#c6c6b5;--green:#344c3d;--accent:#af481f;--card:#f9f6ec;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 system-ui,-apple-system,sans-serif}button,input,textarea,select{font:inherit}button{cursor:pointer;min-height:48px;border:1px solid var(--line);border-radius:3px;padding:10px 18px;color:var(--ink);background:var(--card)}button:disabled{opacity:.5;cursor:not-allowed}button:hover:not(:disabled){filter:brightness(.94)}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.masthead{background:var(--ink);color:var(--paper);padding:23px max(24px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:5px solid #879878}.brand{font-weight:900;font-size:29px;letter-spacing:.14em;color:inherit;text-decoration:none;line-height:1.15}.brand span{display:block;font:12px var(--mono);letter-spacing:.15em;margin-top:7px}.connection{font:12px var(--mono);letter-spacing:.06em;color:#c5d5b8}main{max-width:1120px;padding:48px 24px;margin:auto;min-height:78vh}.login{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}.cover{padding-top:28px}.eyebrow,.small,.tag{font:13px/1.5 var(--mono);letter-spacing:.035em}.eyebrow{color:var(--muted);margin:0 0 14px}.cover h1{font-family:Georgia,serif;font-size:clamp(42px,5vw,65px);line-height:1.06;letter-spacing:-.045em;margin:24px 0}.intro{color:var(--muted);margin:28px 0 44px}.stamp{border:2px solid var(--accent);color:var(--accent);font:13px var(--mono);letter-spacing:.12em;padding:10px 16px;display:inline-block;transform:rotate(-3deg)}.login-panel{border-top:3px solid var(--ink);padding-top:20px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}h2{font-size:24px;line-height:1.3;margin:0 0 20px}fieldset{border:0;padding:0;margin:0 0 22px}legend{font-size:14px;color:var(--muted);margin-bottom:12px}.players{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.player{padding:12px 5px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0}.player img{width:62px;height:62px;object-fit:cover;border-radius:50%;filter:saturate(.7)}.player strong{font:12px var(--mono);max-width:100%;overflow-wrap:anywhere}.player small{font:11px var(--mono);line-height:1.4}.player.selected{border:2px solid var(--green);background:#dce4d1;padding:11px 4px 7px}.credentials{display:grid;grid-template-columns:1fr 110px;gap:14px;margin:18px 0}label{display:block;font-size:14px}input,textarea,select{display:block;width:100%;border:1px solid #8c978b;background:var(--card);padding:12px;margin-top:6px;border-radius:3px;min-height:48px;color:var(--ink)}.primary{background:var(--green);color:white;border-color:var(--green);font-weight:650}.primary span{float:right;margin-left:30px}#join-form>.primary{width:100%}.secondary{background:transparent;font-size:14px}.identity{display:flex;align-items:center;justify-content:space-between;gap:16px}.identity-name{display:flex;align-items:center;gap:20px}.identity img{width:76px;height:76px;border:4px solid var(--card);object-fit:cover}.identity h1{font:700 32px var(--mono);margin:0;overflow-wrap:anywhere}.identity .eyebrow{margin-bottom:4px}.phase-line{margin:26px 0 0;border-top:1px solid var(--line);padding:14px 0;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font:14px var(--mono)}.tag{color:var(--accent);border:1px solid currentColor;padding:2px 8px}nav{display:flex;border-bottom:2px solid var(--ink);gap:8px;overflow-x:auto;margin-bottom:28px}nav button{border:0;border-radius:0;background:transparent;white-space:nowrap;font-size:15px}nav [aria-current=page]{background:var(--ink);color:var(--paper)}.grid{display:grid;grid-template-columns:1.5fr 1fr;gap:24px}.card{background:var(--card);border:1px solid var(--line);padding:24px;margin-bottom:16px}.card h3{margin:0 0 10px;font-size:19px}.card p{margin:10px 0}.card button{margin-top:14px}.empty{border:1px dashed #9ba392;padding:26px;color:var(--muted)}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:14px}.metric{padding:24px;background:var(--ink);color:var(--paper);text-align:left}.metric b{display:block;font:40px var(--mono);margin-bottom:8px}.roster{list-style:none;padding:0;margin:0}.roster li{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font:13px/1.6 var(--mono)}.roster small{color:var(--muted);text-align:right}.operations{border-top:1px solid var(--line);padding-top:18px;margin-top:38px}summary{cursor:pointer;min-height:44px;padding:8px 0;font-size:14px}.operations button{margin:5px 8px 5px 0}.operations input{max-width:520px}.operations details{margin-top:24px}#notice{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;background:var(--ink);color:white;padding:12px 22px;box-shadow:0 8px 30px #0003;z-index:10}#notice:empty{display:none}#login-error{color:#982913;font-size:14px}footer{border-top:1px solid var(--line);padding:20px 24px;max-width:1120px;margin:auto;display:flex;justify-content:space-between;color:var(--muted);font:12px var(--mono)}dialog{max-width:min(640px,calc(100vw - 28px));width:100%;max-height:85vh;overflow:auto;border:1px solid var(--ink);background:var(--paper);color:var(--ink);padding:28px}dialog::backdrop{background:#14231de0}.document-body{white-space:pre-wrap}.actions{display:flex;gap:12px;flex-wrap:wrap}time{font:12px var(--mono);color:var(--muted)}.field-banner{border-left:4px solid var(--accent);padding:14px 20px;margin-bottom:20px;background:var(--card)}.terminal-form{max-width:650px}.terminal-form input{font:22px var(--mono);text-transform:uppercase;margin-bottom:18px}.message-body{white-space:pre-wrap;overflow-wrap:anywhere}[hidden]{display:none!important}@media(max-width:760px){main{padding:28px 18px}.masthead{padding:18px}.login{grid-template-columns:1fr;gap:36px}.cover{padding-top:0}.cover h1{font-size:45px;margin:18px 0}.intro{margin:18px 0}.stamp{display:none}.grid{grid-template-columns:1fr}.identity-name{gap:12px}.identity h1{font-size:23px}.identity img{width:56px;height:56px}.identity .eyebrow{font-size:11px}.identity .secondary{padding:8px}.card{padding:18px}nav{gap:0}nav button{padding:10px 12px;font-size:14px}.connection{font-size:10px}.credentials{grid-template-columns:1fr 95px}.roster li{font-size:13px}footer{font-size:10px}.phase-line{font-size:13px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.section-gap{height:28px}

.help-link{color:var(--paper);font-size:14px;min-height:44px;display:inline-flex;align-items:center;padding:8px}.player-guide{max-width:780px}.player-guide a{color:var(--green)}.player-guide h1{font-size:2rem;line-height:1.2}.player-guide h2{margin-top:36px}.player-guide h3{margin-top:26px}.player-guide li{margin-bottom:10px}

/* Mobile interaction: readable fields, visible navigation and compact check-in. */
input,textarea,select{font-size:16px;min-width:0;scroll-margin-block:100px}
.document-body,.card,.identity-name{overflow-wrap:anywhere;min-width:0}
.identity img{flex-shrink:0}
dialog{max-height:85dvh;overscroll-behavior:contain;scroll-padding-block:20px}
#detail-title:focus{outline:none}
@media(max-width:760px){
  .masthead{flex-wrap:wrap;gap:8px;padding:12px 16px}
  .connection{font-size:12px}
  main{padding:20px 16px}
  .login{gap:20px}
  .cover h1{font-size:30px;margin:8px 0}
  .cover h1 br{display:none}
  .cover .intro{margin:8px 0;font-size:16px}
  .cover .eyebrow{font-size:12px;margin-bottom:8px}
  .login-panel{padding-top:14px}
  .player img{width:44px;height:44px}
  .player strong{font-size:13px}
  .player small{font-size:12px}
  .identity{flex-wrap:wrap;gap:12px}
  nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:4px}
  nav button{white-space:normal;padding:10px 6px;min-width:0;font-size:14px}
  .metrics{gap:10px}
  .metric{padding:16px;min-width:0;font-size:16px}
  dialog{padding:20px;max-height:calc(100dvh - 24px)}
  .operations>button{display:block;width:100%;margin:10px 0}
  footer{gap:12px;flex-wrap:wrap}
}

.push-settings{border-top:1px solid var(--line);margin-top:28px;padding-top:12px}.push-settings .actions{gap:12px}.push-settings p{max-width:680px}
