:root{--navy:#0c0c50;--mid:#1b1b9e;--blue:#2e6fd6;--orange:#f5871f;--ink:#11112e;--mist:#eef0fa;--line:#d8dcef;--white:#fff;--green:#168a5b;--red:#b53232;--radius:16px}*{box-sizing:border-box}html{background:#f6f7fc;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang HK","Microsoft JhengHei",Arial,sans-serif}body{margin:0;min-height:100vh}.topbar{height:66px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1120px)/2));position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;font-weight:800}.mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:9px;background:var(--orange);color:#fff;font-weight:900}.topbar nav{display:flex;gap:18px}.topbar nav a{color:#fff;text-decoration:none;font-size:14px}.shell{max-width:1120px;margin:auto;padding:34px 22px 70px}footer{text-align:center;padding:28px;color:#6e7088;font-size:12px}.hero{border-radius:24px;padding:42px;background:radial-gradient(circle at 85% 10%,#3434c8 0,transparent 36%),linear-gradient(135deg,var(--navy),#16167c);color:#fff;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.hero.compact{display:block;max-width:760px;margin:12px auto 24px}.hero h1{font:52px/1.02 Georgia,serif;margin:8px 0 15px}.hero h1 em{color:#ff9d3c;font-weight:normal}.hero p{max-width:620px}.eyebrow{color:var(--orange);font-size:12px;font-weight:800;letter-spacing:.15em;margin:0 0 7px;text-transform:uppercase}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 8px 28px rgba(12,12,80,.06);margin-bottom:24px}.panel.narrow{max-width:560px;margin:0 auto 24px}.panel h1,.panel h2,.panel h3{margin-top:0}.stack{display:grid;gap:15px}.stack label,.settings-grid label{display:grid;gap:7px;font-size:13px;font-weight:700}.stack input,.stack select,.settings-grid input,.participant-row input,.participant-row select{width:100%;border:1px solid #bfc5dc;border-radius:10px;padding:12px 13px;font:inherit;background:#fff;color:var(--ink)}button,.button-link{border:0;border-radius:10px;padding:11px 16px;font:700 14px inherit;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;background:var(--mist);color:var(--navy)}button.primary{background:var(--orange);color:#fff}button.secondary,.button-link{background:var(--blue);color:#fff}.text-button{background:transparent;color:#575a78;padding-left:0}.danger{color:var(--red)!important}.muted{color:#70748e}.small{font-size:12px}.flash{padding:14px 16px;border-radius:12px;margin-bottom:18px;font-weight:700}.flash.success{background:#dcf6eb;color:#126c49}.flash.error{background:#ffe4e3;color:#962e2e}.balance-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:18px;padding:20px 30px;text-align:center;min-width:180px}.balance-card span{display:block;font-size:11px;letter-spacing:.14em}.balance-card strong{display:block;font:56px Georgia,serif;color:#ffac58}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:24px}.team{padding:23px 28px;border-radius:16px;color:#fff;display:flex;align-items:center;justify-content:space-between}.team.a{background:linear-gradient(135deg,var(--mid),var(--blue))}.team.b{background:linear-gradient(135deg,#7d255d,#d24c71)}.team span{font-weight:800;letter-spacing:.12em}.team strong{font:44px Georgia,serif}.team-grid.large .team{padding:36px}.team-grid.large .team strong{font-size:68px}.two-col,.card-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:20px}.section-title h2{margin:0}.live-dot,.status{font-size:11px;font-weight:800;border-radius:999px;padding:6px 10px;background:#e7e8f2;color:#4c4f68;text-transform:uppercase}.live-dot,.status.open{background:#dcf6eb;color:#08704a}.status.closed{background:#fff0cc;color:#875a00}.status.settled{background:#e2ecff;color:#24559c}.status.void{background:#ffe4e3;color:#962e2e}.choice-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{position:relative;min-width:0}.choice input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.choice span{display:grid;place-items:center;min-height:58px;border:2px solid var(--line);border-radius:12px;padding:10px;text-align:center}.choice input:checked+span{border-color:var(--orange);background:#fff6eb;color:#9c4c00}.locked{background:#edf8f3;border-radius:10px;padding:14px;color:#126c49;font-weight:700}.leader-list{list-style:none;padding:0;margin:10px 0 0}.leader-list li{display:flex;align-items:center;justify-content:space-between;padding:11px 3px;border-bottom:1px solid var(--line)}.leader-list small{color:#767991}.leader-list.big li{font-size:20px;padding:16px 5px}.leader-list.big strong{font:30px Georgia,serif;color:var(--mid)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 9px;vertical-align:top}th{font-size:11px;letter-spacing:.08em;color:#70748e;text-transform:uppercase}.gain{color:var(--green);font-weight:800}.loss{color:var(--red);font-weight:800}.admin-actions,.downloads{display:flex;flex-wrap:wrap;gap:10px}.admin-grid .panel{height:max-content}.action-cell{display:flex;flex-wrap:wrap;gap:6px}.action-cell button{padding:7px 10px}.settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.participant-grid{display:grid;gap:7px}.participant-row{display:grid;grid-template-columns:48px minmax(180px,1fr) 70px 60px 70px;gap:9px;align-items:center}.participant-row button{padding:10px}.admin-login{margin-top:90px!important}.print-body{background:#fff;padding:18px}.print-toolbar{display:flex;gap:20px;align-items:center;margin:0 auto 18px;max-width:1000px}.cards{max-width:1000px;margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.player-card{page-break-inside:avoid;border:3px solid var(--mid);border-radius:14px;padding:14px;text-align:center;min-height:310px}.player-card.team-b{border-color:#c03b68}.card-top{display:flex;justify-content:space-between;align-items:center}.player-card img{width:150px;height:150px;margin:8px auto}.player-card h2{font-size:18px;margin:0}.player-card p{font-weight:900;color:var(--mid);margin:4px}.paper-head,.paper-section{max-width:1050px;margin:0 auto 24px}.paper-section table{font-size:11px}.paper-section td{height:28px;border:1px solid #888}.paper-section th{border:1px solid #888}.score-body{color:#000}
@media(max-width:760px){.topbar{padding:0 15px}.brand span:last-child{display:none}.shell{padding:20px 14px 60px}.hero{padding:28px 23px;display:block}.hero h1{font-size:40px}.player-head .balance-card{margin-top:20px}.team-grid,.two-col,.card-grid,.settings-grid{grid-template-columns:1fr}.team strong{font-size:36px}.team-grid.large .team{padding:24px 18px}.team-grid.large .team strong{font-size:46px}.choice-row{grid-template-columns:1fr}.participant-row{grid-template-columns:42px minmax(130px,1fr) 62px}.participant-row strong{display:none}.participant-row button{grid-column:2/4}.admin-actions{margin-top:18px}}
.participant-row{grid-template-columns:58px minmax(140px,1fr) 115px 105px minmax(150px,1fr) 55px 65px}.participant-row .competitor{display:flex;align-items:center;gap:7px;font-size:12px}.participant-row .competitor input{width:auto}@media(max-width:760px){.participant-row{grid-template-columns:55px 1fr}.participant-row>*{grid-column:auto}.participant-row button{grid-column:2}.participant-row strong{display:none}}
@media print{.print-toolbar{display:none}.print-body{padding:0}.cards{grid-template-columns:repeat(3,1fr);gap:7mm}.player-card{min-height:0;height:87mm;padding:5mm}.player-card img{width:34mm;height:34mm}.paper-section{page-break-after:always}.paper-head{margin-top:5mm}.score-body{padding:0 8mm}@page{size:A4;margin:8mm}}
.connection{font-size:13px;color:#126c49;padding:12px 16px;background:#e5f7ed;border-radius:10px}.connection.offline{background:#fff0cc;color:#875a00}.demo-banner{text-align:center;padding:12px;background:#ffdd8c;color:#592d00;font-weight:700}.waiting{padding:20px;background:#f6f7fc;border-radius:10px}.result{border-top:1px solid var(--line);padding-top:16px}summary{font-size:18px;font-weight:800;cursor:pointer}details[open]>summary{margin-bottom:24px}.player-management{border-bottom:1px solid var(--line);padding:16px 0}.participant-row{grid-template-columns:58px minmax(140px,1fr) 140px 60px 70px}button:disabled{opacity:.55;cursor:wait}.admin-actions form{margin:0}.choice input:focus-visible+span{outline:3px solid #2e6fd6}.panel form.stack{margin-top:16px}.hero h1{font-family:inherit;font-weight:800;line-height:1.2}.cards .demo-banner{grid-column:1/-1}@media(max-width:760px){.participant-row{grid-template-columns:52px 1fr}.participant-row strong{display:block}.participant-row button{grid-column:2}.choice-row{grid-template-columns:1fr 1fr}.hero h1{font-size:32px}.player-head .balance-card{padding:14px;min-width:0}.team-grid{grid-template-columns:1fr 1fr;gap:10px}.team{display:block;padding:18px 14px}.team span{display:block;letter-spacing:0;font-size:13px}.team strong{display:block;font-size:30px}.panel{padding:20px}}
.qr{width:150px;height:150px;margin:8px auto}.qr svg{display:block;width:100%;height:100%}.choice span{overflow-wrap:anywhere}.participant-row input,.participant-row select{min-width:0}@media print{.qr{width:34mm;height:34mm}}
.confirm-dialog{border:0;border-radius:18px;padding:26px;max-width:440px;width:calc(100% - 32px);color:var(--ink);box-shadow:0 12px 60px #0003}.confirm-dialog::backdrop{background:#101036aa}.confirm-dialog h2{margin-top:0}.confirm-dialog p{line-height:1.65}.confirm-dialog .admin-actions{justify-content:flex-end}
