:root{--bg: #07152e;--bg-2: #0d2144;--bg-3: #16325f;--line: rgba(232, 180, 35, .28);--text: #f4f7fb;--muted: #b7c3d6;--gold: #e8b423;--orange: #f08a1a;--ink: #0b1c3f;--green: #9ddec0;--danger: #ff8d8d;--font: "Source Sans 3", "Segoe UI", sans-serif;--display: "Barlow Condensed", "Arial Narrow", sans-serif;color:var(--text);background:var(--bg);font-family:var(--font);font-size:17px;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-height:100vh;border-top:4px solid var(--gold);background:radial-gradient(900px 420px at 100% -10%,rgba(232,180,35,.16),transparent 55%),radial-gradient(700px 380px at -10% 0%,rgba(36,78,160,.45),transparent 50%),var(--bg)}a{color:inherit;text-decoration:none}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.shell{width:min(1120px,calc(100% - 1.5rem));margin:0 auto;padding-bottom:6rem;min-height:100vh;display:flex;flex-direction:column}.credit{align-self:flex-end;display:flex;align-items:center;gap:.4rem;margin:auto 0 .35rem;padding:.28rem .7rem .28rem .35rem;color:var(--muted);font-size:.78rem;letter-spacing:.01em;background:#07152eb8;border:1px solid rgba(232,180,35,.28);border-radius:999px}.credit-mark{width:22px;height:22px;flex:none;background:url(/promatik.png) center 42% / auto 54px no-repeat}.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 0 .4rem}.admin-top{position:sticky;top:0;z-index:8;background:var(--bg)}.tabs .tab-logout{margin-left:auto}.brand{display:flex;gap:.75rem;align-items:center}.brand img{width:74px;height:74px;border-radius:50%;object-fit:cover;background:#fff;border:2px solid var(--gold);box-shadow:0 0 0 3px var(--ink)}.login-logo{width:148px;height:148px;border-radius:50%;object-fit:cover;background:#fff;border:3px solid var(--gold);display:block;margin:1rem 0}.empty-mark{text-align:center;padding:1.2rem 0 .4rem}.empty-mark img{width:min(260px,72vw);height:min(260px,72vw);object-fit:cover;border-radius:50%;background:#fff;border:4px solid var(--gold)}.brand strong{font-family:var(--display);font-size:2rem;letter-spacing:.04em;line-height:.9;display:block}.brand span,.muted,.match-meta{color:var(--muted)}.text-link{color:var(--gold);font-weight:700}.nav{display:flex;gap:.4rem;flex-wrap:wrap;padding:.4rem 0 1rem}.nav a,.tabs button{border-radius:8px;padding:.45rem .85rem;color:var(--muted);background:transparent;border:0;font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:1.05rem}.nav a.active,.tabs button.active{background:var(--gold);color:var(--ink)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:space-around;background:#07152ef5;border-top:2px solid var(--gold);padding:.35rem .2rem calc(.35rem + env(safe-area-inset-bottom));z-index:5}.bottom-nav a{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;color:var(--muted);padding:.35rem;text-align:center}.bottom-nav a.active{color:var(--gold)}h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:.02em;margin:0 0 .6rem}h1{font-size:2.4rem;line-height:.95}h2{font-size:1.8rem}.section{margin:1.4rem 0}.grid{display:grid;gap:.8rem}.cards{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.panel,.team-card{background:linear-gradient(180deg,#12305c,#0c2244);border:1px solid var(--line);border-radius:16px;padding:.9rem 1rem;box-shadow:0 14px 32px #00000038}.panel{box-shadow:0 16px 40px #0000002e}.kicker{color:var(--gold);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.match-meta,.row,.spread{display:flex;flex-wrap:wrap;gap:.45rem .8rem;align-items:center}.spread{justify-content:space-between}.match-body{display:grid;grid-template-columns:1fr auto 1fr;gap:.7rem;align-items:center}.name{font-weight:700}.name.right{text-align:right}.scoreline{font-family:var(--display);font-size:2.4rem;letter-spacing:.04em;line-height:.9}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;background:var(--bg-2)}table{width:100%;border-collapse:collapse}th,td{padding:.65rem .7rem;text-align:left;border-bottom:1px solid var(--line)}th{color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}td.rank{font-family:var(--display);font-size:1.4rem;color:var(--gold);width:2.2rem}tr:last-child td{border-bottom:0}.note{color:var(--muted);font-size:.92rem}.fields{display:grid;gap:.7rem}label span,.label{display:block;margin-bottom:.25rem;color:var(--muted);font-size:.9rem}input,select{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:12px;min-height:46px;padding:.65rem .75rem}.actions,.tabs{display:flex;flex-wrap:wrap;gap:.5rem}button,.button{background:var(--gold);color:var(--ink);border:0;border-radius:6px;min-height:44px;padding:.65rem 1rem;font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:1.08rem;box-shadow:0 8px 18px #e8b42329}button.ghost,.button.ghost{background:transparent;color:var(--text);border:1px solid var(--line);box-shadow:none}button.quiet{background:transparent;color:var(--muted);border:1px solid transparent;box-shadow:none;min-height:0;padding:.15rem 0;font-size:.95rem;letter-spacing:.04em}button.quiet:hover{color:var(--text)}.league-switch{display:grid;justify-items:start;gap:.15rem;margin-top:.2rem}.league-switch label{width:100%}button.ghost,.button.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}button.danger{background:transparent;color:var(--danger);border:1px solid rgba(255,141,141,.45)}button:disabled{opacity:.55;cursor:wait}.error{background:#ff503c1f;color:#ffd0c8;border-radius:12px;padding:.7rem .8rem}.ok{color:var(--green)}.checks{max-height:240px;overflow:auto;display:grid;gap:.35rem;padding:.2rem}.checks label{display:flex;gap:.55rem;align-items:center}.checks input{width:auto;min-height:0}.score-form{display:grid;grid-template-columns:auto 1fr 1fr auto;gap:.4rem;align-items:center}.score-form input{text-align:center;font-family:var(--display);font-size:1.5rem}.team-list{display:grid;gap:.8rem}.team-card{display:flex;gap:.8rem;align-items:center;border-left:6px solid var(--gold)}.team-card-mark{width:auto;max-width:7.2rem;min-width:3rem;min-height:2.6rem;height:auto;padding:.35rem .5rem;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;color:#07152e;font-family:var(--display);font-size:1.05rem;font-weight:700;letter-spacing:.03em;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-hero{display:flex;gap:.9rem;align-items:center;border:1px solid var(--line);border-left-width:8px;border-radius:16px;padding:.9rem 1rem;background:linear-gradient(90deg,rgba(232,180,35,.08),transparent 55%),#0d2144;margin-bottom:1rem}.team-hero h1{margin:0}.players{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}.chip,button.chip{background:var(--bg-3);border-radius:999px;padding:.25rem .6rem;min-height:0;font-family:var(--font);letter-spacing:0;text-transform:none;font-size:.95rem;box-shadow:none;color:var(--text)}.group-grid{display:grid;gap:.8rem}.team-block{border:1px solid var(--line);border-radius:12px;padding:.75rem;background:#07152e59}details.fold>summary{cursor:pointer;font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:1.15rem}details.fold>:not(summary){margin-top:.8rem}.hint{display:flex;gap:.45rem;flex-wrap:wrap;margin:.4rem 0 .8rem}.hint span{border:1px solid var(--line);border-radius:999px;padding:.2rem .55rem;color:var(--muted)}.hint span.done{color:var(--green);border-color:#9ddec066}@media(min-width:800px){.split,.fields.two{grid-template-columns:1fr 1fr}.fields.two>h2,.fields.two>p,.fields.two>.actions,.fields.two>div{grid-column:1 / -1}.fields.three{grid-template-columns:1.4fr 1fr 1fr}.group-grid,.league-list{grid-template-columns:1fr 1fr}.bottom-nav{display:none}.shell{padding-bottom:2rem}}@media(max-width:799px){.shell{padding-bottom:2rem}.shell-league{padding-bottom:5.6rem}}@media(max-width:799px){.nav,.col-extra{display:none}h1{font-size:2rem}}.score-card{display:grid;gap:.28rem;background:linear-gradient(180deg,#14315f,#0b1c3a);border:1px solid rgba(232,180,35,.34);border-radius:14px;padding:.7rem .8rem .75rem;box-shadow:0 16px 34px #00000047}.score-card:hover{border-color:var(--gold);transform:translateY(-2px)}.score-status{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;color:var(--muted);font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;font-size:.92rem}.score-row{display:grid;grid-template-columns:minmax(2.6rem,max-content) minmax(0,1fr) auto;gap:.55rem;align-items:center;min-height:2.35rem}.abbr{display:inline-block;max-width:6.8rem;min-width:2.4rem;padding:.16rem .45rem;border-radius:7px;font-family:var(--display);font-weight:700;letter-spacing:.03em;font-size:1.15rem;line-height:1.15;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.score-row strong,.bug-side strong{font-family:var(--display);font-weight:700;letter-spacing:.03em}.score-row strong{font-size:2.15rem;font-variant-numeric:tabular-nums;line-height:1}.score-row .full{min-width:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-row.dim,.bug-side.dim{opacity:.55}.score-games{margin:.15rem 0 0;color:var(--muted);font-size:.85rem;letter-spacing:.04em}.team-cell{display:flex;align-items:center;gap:.45rem;min-width:0}.team-cell a{min-width:0;overflow-wrap:anywhere}.league-list{display:grid;gap:.8rem}.league-card{display:grid;gap:.3rem;background:linear-gradient(180deg,#12305c,#0c2244);border:1px solid var(--line);border-radius:16px;padding:1.05rem 1.1rem}.league-card strong{font-family:var(--display);font-size:clamp(1.7rem,4vw,2.3rem);letter-spacing:.02em;line-height:.95}.league-card:hover{border-color:var(--gold)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#040a18b8;display:grid;place-items:center;padding:1rem}.modal{width:min(560px,100%);max-height:min(88vh,820px);overflow:auto;background:#10284d;border:1px solid var(--line);border-radius:16px;padding:1rem 1rem 1.15rem;box-shadow:0 24px 60px #00000080}.modal h2{margin-bottom:.75rem}.group-quiet{border:1px solid var(--line);border-radius:12px;padding:.8rem}.group-quiet h3{margin:0}.roster{display:grid;gap:.45rem;margin-top:.7rem}button.roster-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.65rem;align-items:center;width:100%;text-align:left;background:#07152e73;color:var(--text);border:1px solid var(--line);box-shadow:none;text-transform:none;letter-spacing:0;font-family:var(--font);font-weight:600;font-size:1rem;min-height:0;padding:.55rem .7rem;border-radius:12px}button.roster-row .roster-name{min-width:0}button.roster-row .roster-name strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.roster-row .roster-edit{color:var(--gold);font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:.95rem}button.roster-row.schedule-row{grid-template-columns:minmax(0,1fr) auto auto}.roster-score{font-family:var(--display);font-size:1.45rem;letter-spacing:.04em;line-height:1;white-space:nowrap}.round-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.45rem .7rem;border:1px solid var(--line);border-radius:12px;padding:.45rem .7rem}.round-tools strong{font-size:1rem}.share-formats{display:flex;gap:.5rem}.share-formats button{flex:1}.poster-preview{width:min(280px,100%);max-height:min(62vh,520px);object-fit:contain;border-radius:16px;border:1px solid var(--line);background:#07152e;display:block;margin:.2rem auto}.dot{width:.7rem;height:.7rem;border-radius:50%;display:inline-block;flex:none}.status-live{color:#ffb4b4}.status-live:before{content:"";display:inline-block;width:.45rem;height:.45rem;margin-right:.35rem;border-radius:50%;background:#ff4d4d;box-shadow:0 0 #ff4d4db3;animation:live 1.4s infinite;vertical-align:.05rem}@keyframes live{70%{box-shadow:0 0 0 7px #ff4d4d00}to{box-shadow:0 0 #ff4d4d00}}.court-stage{position:relative;width:min(460px,100%);margin:.2rem auto 0}.court-svg{width:100%;height:auto;display:block;filter:drop-shadow(0 18px 28px rgba(0,0,0,.35))}.court-bug{position:absolute;left:8%;right:8%;bottom:7%;display:grid;grid-template-columns:1fr auto 1fr;gap:.35rem;align-items:center;background:#07152eeb;border:1px solid rgba(232,180,35,.55);border-radius:14px;padding:.55rem .7rem .65rem}.bug-side{display:grid;gap:.12rem;min-width:0;justify-items:start}.bug-side.right{justify-items:end;text-align:right}.bug-side strong{font-size:clamp(2.6rem,9vw,4.2rem);line-height:.85}.bug-abbr{font-size:.95rem;max-width:100%}.bug-name{max-width:100%;color:var(--muted);font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bug-mid{text-align:center;color:var(--gold);font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;font-size:.95rem}.bug-mid small{display:block;color:var(--muted)}.court-note{text-align:center}.game-list{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.game-list li{display:flex;justify-content:space-between;background:#0d2144;border:1px solid var(--line);border-radius:12px;padding:.65rem .8rem}.game-list strong{font-family:var(--display);font-size:1.6rem}.swatches{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}button.swatch{width:34px;height:34px;min-height:34px;padding:0;border-radius:50%;border:2px solid rgba(255,255,255,.35);box-shadow:none}button.swatch.on{border-color:#fff;box-shadow:0 0 0 2px var(--gold)}input[type=color]{width:52px;min-height:40px;padding:.2rem}.checks label .dot{margin-right:.15rem}@media(max-width:799px){.court-stage{width:min(330px,86vw)}}
