/* Taipei 2026: high-contrast technology sports theme. */
:root{color-scheme:dark;--ink:#eef3ff;--muted:#abb8d1;--lime:#66e8f1;--line:#303d5d;--teal:#6ae9f1;background:#080c1b;color:var(--ink)}
body{background:radial-gradient(ellipse at 85% 0%,#35245d66,transparent 40%),linear-gradient(90deg,#91a5ff06 1px,transparent 1px),linear-gradient(#91a5ff06 1px,transparent 1px),#080c1b;background-size:auto,48px 48px,48px 48px,auto}
button{background:#172139;border-color:#41516f;color:#edf3ff;border-radius:6px;transition:background .15s,border-color .15s}
button:hover{background:#273657;border-color:#a68bff}
button:disabled{opacity:.5}
button.primary,button.accent{background:#7551ce;border-color:#b99aff;color:#fff;box-shadow:0 0 18px #9a67ff20}
button.primary:hover,button.accent:hover{background:#8863df;border-color:#d2bdff}
button.danger{background:#381d31;color:#ffc6d4;border-color:#ab526f}
input,textarea,select{background:#0b1427;color:#f2f6ff;border-color:#4a5978;color-scheme:dark}
input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible{outline-color:#79e7f5}
.masthead{background:#090e21;border-bottom:1px solid #64528e;box-shadow:0 2px 22px #9b6eff12}
.mast-inner{padding-top:17px;padding-bottom:17px}
.brand-icon{color:#83e8f6;text-shadow:0 0 18px #59cced66}
.brand b{color:#bda5ff}.brand small{color:#a6b5d1}
.header-links a:first-child{color:#7cebf4}
.hero{position:relative;padding:30px 0 28px;min-height:252px;gap:22px;border-bottom-color:#354164}
.hero>div:first-child{position:relative;z-index:1;min-width:0}
.hero::after{content:"";position:absolute;bottom:-1px;left:0;width:92px;height:3px;background:#61e3f0;box-shadow:0 0 16px #61e3f066}
.eyebrow{color:#8ceaf1;font-size:12px;letter-spacing:2px}
h1{font-size:48px;letter-spacing:1px;margin:14px 0;line-height:1.3;color:#f0f4ff;text-shadow:0 3px 18px #879fff18}
h1 span{color:#bd9eff;font-weight:750}
.hero p{color:#bcc8e3;letter-spacing:3px;margin:10px 0 20px}
.event-meta{color:#d1d9ed;letter-spacing:.3px}.event-meta span+span{border-color:#4c5672}
.hero-mark{width:340px;height:220px;flex-shrink:0;display:block;color:#7698d5}
.hero-mark svg{width:100%;height:100%;overflow:visible}
.division-tabs{padding:20px 0;gap:9px;scrollbar-width:thin;scrollbar-color:#5b4683 #10162c}
.division-tabs button{border:1px solid #354163;background:#111a30;padding:12px 18px}
.division-tabs button.active{background:linear-gradient(115deg,#7143bd,#4b3891);border-color:#bb9cff;box-shadow:inset 0 1px 0 #d7baff33,0 0 20px #8d57ef20;color:#fff}
.division-tabs .count{opacity:1;color:#bdc9e2}.division-tabs button.active .count{color:#e7d9ff}
.workspace{background:#0e1528;border:1px solid #49456e;border-radius:11px;box-shadow:0 0 0 1px #9c74ec0a,0 14px 40px #0004}
.workspace-head{background:linear-gradient(110deg,#211d3b,#111c32);border-top:2px solid #9d7bec;padding:22px 25px 17px}
h2{font-size:25px;letter-spacing:.5px;color:#eef3ff}
.view-tabs{gap:25px;background:#10162c;border-color:#35405d;padding:0 25px}
.view-tabs button{color:#b4c1db;font-weight:650}
.view-tabs button:hover{color:#eee4ff}
.view-tabs button.active{color:#87edf3;border-bottom-color:#75e7f0;text-shadow:0 0 12px #5fe5f044}
.view-tools button{background:#17253e;border-color:#526183}
#toolbar{padding-left:25px;padding-right:25px;color:#b6c4df}
#content{padding:22px 25px 30px}
.schedule-grid{gap:16px}
.venue-head{background:#192b42;color:#a2f0f3;border:1px solid #3b6276;border-left:3px solid #70e5ee;border-radius:6px;font-size:16px;letter-spacing:1px}
.schedule-grid>section:nth-child(2) .venue-head{color:#d9c9ff;border-color:#655087;border-left-color:#b79aff;background:#291f43}
.schedule-grid>section:nth-child(3) .venue-head{color:#bad3ff;border-color:#42638b;border-left-color:#79aeff;background:#192946}
.schedule-grid>section:nth-child(4) .venue-head{color:#ffd4a8;border-color:#785a46;border-left-color:#edb479;background:#30263a}
.venue-head small{font-size:11px;letter-spacing:0;color:#becae0}
.schedule-card{background:#121c31;border-color:#344360;border-radius:7px;padding:14px}
.schedule-card .time{color:#c3cee3;font-variant-numeric:tabular-nums;letter-spacing:.8px;margin-bottom:5px}
.schedule-card .code{color:#8eebf3;font-size:15px}
.schedule-card .versus{color:#edf2ff;font-size:14px}.schedule-card .versus b{color:#b099d9;letter-spacing:2px;margin:3px 0}
.notice{background:#191c33;color:#b2bfd8;border-left-color:#6b628f;border-radius:0 5px 5px 0}.notice strong{font-weight:600;color:#d3dced}
.match-card,.group-card{background:#121b30;border-color:#3d486b}
.group-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.group-card>.muted{padding:0 14px}
.match-head{background:linear-gradient(110deg,#26213f,#1b2844);border-bottom:1px solid #3f4c6d}
.match-head strong{color:#a6f2f4}.team-line.winner .team-name{color:#85ecdc}.team-line b{color:#f3f7ff;font-variant-numeric:tabular-nums}
.score-row input{background:#091223;border-color:#596786;font-weight:750;font-size:18px;color:#d8ffff}
.tag{background:#24354f;color:#d2e0f7;border:1px solid #415c7c;padding:2px 6px}
.tag.warning{background:#402f1c;color:#ffdb97;border-color:#8a6c39}.tag.good{background:#163a3c;color:#9ff5df;border-color:#337b75}
.warning-box{background:#332a20;border-color:#d2a259;color:#f2d9b2}
th,td{border-color:#303e59}th{background:#1d2740;color:#c0cee7}tbody tr:nth-child(even){background:#a5b6ef05}
td b{color:#8ee6ed}.group-card h3{background:#241e3b;border-bottom:1px solid #4f426e;color:#e6dbff;margin-bottom:10px}
.group-card .group-slots{color:#c8d6ef;line-height:1.9}.pool-diagram text{fill:#e4ecff}.pool-diagram line{stroke:#9b7ae3;stroke-width:2.5}.pool-diagram circle{fill:#1c2b4d;stroke:#7fe0ef;stroke-width:1.5}
.stat{background:#1d2541;border:1px solid #414b6a}.stat b{color:#c3a8ff}
.admin-bar{background:#1b2340;border-color:#645a8e;color:#dae4f6}.admin-bar .grow{color:#bbcbe4}
.login-box{background:#121b31;border-color:#65538e;box-shadow:0 0 35px #8255dc12}
.ruling-card{background:#1e2135;border-color:#8a7047}
.bracket-scroll{border-color:#424f70;scrollbar-color:#775caa #111a2d}
.bracket-canvas{background:linear-gradient(90deg,#718bdc0b 1px,transparent 1px),linear-gradient(#718bdc0b 1px,transparent 1px),#0d1427;background-size:26px 26px}
.bracket-node{background:#1b2540;border-color:#6a6195;box-shadow:0 2px 12px #0003}
.bracket-node strong{color:#92e8f2}.bracket-node small{color:#c5bedb}.node-team{color:#e1e9fb}.node-team b{color:#aaf0e7}
.bracket-canvas path{stroke:#9685cf}.bracket-canvas path[stroke-dasharray]{stroke:#d4aa71}
.award-card{background:#1d2840;border:1px solid #52627e;border-top:3px solid #b290e8}.award-card h3{color:#d1b7fc}.award-card p{color:#e8efff}
.award-card.first{background:linear-gradient(135deg,#392b2f,#242339);border-color:#b98f55}.award-card.first h3{color:#ffda92}
footer{color:#a6b7d2}
#notification:not(:empty){background:#253d55;color:#d8ffff;border-bottom:1px solid #68d5e6;box-shadow:0 3px 18px #0005}
#toast{background:#263455;color:#f0f6ff;border:1px solid #8c79c0;box-shadow:0 5px 30px #0007}
dialog{background:#101b31;border-color:#8c73b9;color:#eaf0ff;box-shadow:0 0 50px #0008}dialog::backdrop{background:#030615bf}
dialog a{color:#91eaf4;text-decoration:underline}.modal-close{border-color:#5b6d8e}
:fullscreen{background:#080c1b}
@media(max-width:1000px){.hero-mark{display:none}.hero{min-height:220px}h1{font-size:40px}.workspace-head{padding:20px 22px 15px}}
@media(max-width:600px){.mast-inner{padding:14px}.header-links{gap:10px}.hero{padding:25px 5px;min-height:0}h1{font-size:32px;letter-spacing:0}h1 span{margin-left:8px}.hero p{font-size:12px;letter-spacing:2px}.event-meta{font-size:10px;gap:9px}.eyebrow{font-size:10px;letter-spacing:1px}.division-tabs{padding:17px 0;gap:7px}.division-tabs button{padding:11px 13px}.workspace-head{padding:18px 14px 12px}.view-tabs{padding:0 14px;gap:23px}#toolbar{padding-left:14px;padding-right:14px}#content{padding:18px 13px 25px}.workspace-head h2{font-size:21px}.venue-head{font-size:15px}.schedule-card .versus{font-size:14px}.admin-bar{background:#1b2340}.score-row input{font-size:17px}.group-grid{grid-template-columns:1fr}}
@media print{:root{color-scheme:light;--ink:#111;--muted:#333;--teal:#174b68;--line:#aaa}body,.workspace,.workspace-head,.schedule-card,.match-card,.group-card,.match-head,.bracket-canvas,.bracket-node,.award-card,.award-card.first,.stat,th{background:#fff!important;color:#111!important;box-shadow:none!important}h2,h3,.team-line b,.team-name,.versus,.venue-head,.time,.group-slots,.node-team,.node-team b,.award-card p{color:#111!important}.notice,.tag{background:#eee!important;color:#111!important}.pool-diagram text{fill:#111}.pool-diagram circle{fill:#fff;stroke:#333}.pool-diagram line,.bracket-canvas path{stroke:#555}}
.settings-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.settings-fields label{display:flex;flex-direction:column;gap:8px}#settings-form input,#settings-form select{max-width:100%}#settings-error{color:#ffc38c}#team-details-form fieldset{margin:12px 0;border:1px solid #536080}#team-details-form label{display:block;margin:8px 0}

.score-save-bar{position:sticky;top:8px;z-index:15;display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#1b2340;border:1px solid #6eddd8;border-radius:10px;padding:12px 16px;margin-bottom:18px;box-shadow:0 5px 18px #0005}.score-save-bar small{flex-basis:100%;color:#bbcbe4}.score-save-bar span{flex:1}.score-save-bar button{min-height:44px}.match-actions button[data-action="save"]{font-size:13px;padding:10px 14px;min-height:44px}@media print{.score-save-bar{display:none!important}}

.workspace[data-navigation="division"]{display:grid;grid-template-columns:190px minmax(0,1fr);grid-template-areas:"head head" "nav toolbar" "nav content";align-items:start}.workspace[data-navigation="division"] .workspace-head{grid-area:head}.workspace[data-navigation="division"] #view-tabs{grid-area:nav;display:flex;flex-direction:column;border-bottom:0;padding:14px;gap:6px;min-width:0}.workspace[data-navigation="division"] #view-tabs button{text-align:left;white-space:normal}.workspace[data-navigation="division"] #toolbar{grid-area:toolbar;min-width:0}.workspace[data-navigation="division"] #content{grid-area:content;min-width:0}.stage-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.stage-tabs button{padding:9px 12px;min-height:44px}.stage-tabs small{display:block;color:#bccbe0;font-size:11px}.stage-tabs button.active{background:#653da8;border-color:#b58be9;color:white}@media(max-width:760px){.workspace[data-navigation="division"]{display:block}.workspace[data-navigation="division"] #view-tabs{flex-direction:row;overflow-x:auto;flex-wrap:nowrap}.workspace[data-navigation="division"] #view-tabs button{flex:0 0 auto;white-space:nowrap}.stage-tabs{gap:6px}.stage-tabs button{padding:8px 10px}}

/* Match adjudication form: readable on staff phones as well as desktop. */
#match-ruling-form{display:grid;gap:14px}
#match-ruling-form>label{display:grid;gap:6px;min-width:0}
#match-ruling-form select,#match-ruling-form input:not([type=checkbox]),#match-ruling-form textarea{width:100%;box-sizing:border-box;min-width:0}
#match-ruling-form textarea{min-height:90px}
#match-ruling-form>label:has(input[type=checkbox]){display:flex;align-items:flex-start;gap:8px}
.zero-filter{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:12px;border:1px solid #425175;border-radius:8px}
