:root{color-scheme:dark;--bg:#0c121b;--panel:#111c29;--raised:#172535;--line:#263649;--text:#ecf2f9;--muted:#96a7bb;--gold:#dfbe7b;--blue:#6fcddd;--red:#ee909f;--radius:16px;font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 75% -5%,#1a30433b,transparent 55%),var(--bg);color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}button{border:0}[hidden]{display:none!important}.topbar{height:90px;padding:0 max(28px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#0b131ddb}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:750;letter-spacing:1px}.brand small{display:block;color:var(--gold);font-size:10px;letter-spacing:3px;margin-top:4px}.top-actions{display:flex;align-items:center;gap:26px}.season{font-size:14px;color:var(--muted)}.shell{max-width:1320px;margin:auto;padding:42px 28px 18px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{font-size:12px;letter-spacing:2px;color:var(--gold);font-weight:650}h1{font-size:40px;line-height:1.2;margin:13px 0 12px;letter-spacing:1px}p{color:var(--muted);line-height:1.75;margin:0}h2{font-size:21px;line-height:1.4;margin:0}h3{font-size:19px;margin:8px 0 10px}.balance-card{min-width:270px;border:1px solid #73614366;background:linear-gradient(120deg,#29271977,#17212c);border-radius:var(--radius);padding:22px 26px}.balance-card span{display:block;font-size:14px;color:#c7bea9}.balance-card strong{display:block;font-size:34px;color:var(--gold);font-variant-numeric:tabular-nums;margin:5px 0}.balance-card small{font-size:12px;color:var(--muted)}.rules-strip{margin:30px 0 24px;padding:19px 0;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:12px;background:#111c2955}.rules-strip>div{display:flex;gap:14px;align-items:center;padding:0 22px;border-right:1px solid var(--line)}.rules-strip>div:last-child{border:0}.rules-strip b{font-size:20px;white-space:nowrap}.rules-strip b i{font-size:13px;color:var(--muted);font-style:normal;margin:0 5px}.rules-strip b span{font-size:12px}.rules-strip>div>span{font-size:13px;color:var(--muted);line-height:1.6}.gold{color:var(--gold)}.tabs{display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line);margin-bottom:25px;min-height:55px}.tab{padding:14px 0;background:none;color:var(--muted);border-bottom:2px solid transparent;font-weight:600}.tab.active{color:var(--gold);border-color:var(--gold)}.sync{margin-left:auto;font-size:12px;color:var(--muted)}.lobby-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:24px}.rooms-panel,.match-panel,.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.rooms-panel{padding:21px 18px;align-self:start}.section-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.section-heading h2{font-size:17px}.section-heading h2 span{margin-left:6px;color:var(--muted);font-size:14px}.text-button{background:none;color:var(--blue);padding:6px 0;font-size:14px}.room-card{display:block;text-align:left;width:100%;background:#14212e;border:1px solid var(--line);border-radius:10px;margin-bottom:12px;padding:17px;color:var(--text);transition:.15s}.room-card:hover{background:#1a2c3d}.room-card.selected{border-color:#b3915066;background:linear-gradient(120deg,#302c2088,#162330);box-shadow:inset 3px 0 var(--gold)}.room-card h3{font-size:16px;overflow-wrap:anywhere;margin:11px 0 13px}.room-meta{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:5px;font-size:12px;color:var(--muted);background:#8da7c412;white-space:nowrap}.badge.open{color:var(--blue);background:#6fcddd12}.badge.running{color:var(--gold);background:#dfbe7b12}.badge.settled{color:#b2b4df;background:#b2b4df12}.badge.cancelled{color:var(--red)}.match-top{padding:25px 27px;display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line)}.match-top h2{margin-top:10px;overflow-wrap:anywhere}.team-preview{display:grid;grid-template-columns:1fr 40px 1fr;gap:15px;margin:27px 27px 0}.team-label{display:flex;justify-content:space-between;font-size:17px;font-weight:650}.team-label span{font-size:14px;opacity:.7}.blue{color:var(--blue)}.red{color:var(--red)}.versus{color:var(--gold);font-size:14px;letter-spacing:2px;display:flex;align-items:center;justify-content:center}.teams{display:grid;grid-template-columns:1fr 38px 1fr;gap:12px;padding:24px 27px}.team-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;font-weight:700}.team-head span{font-size:13px;opacity:.8}.slot{display:flex;align-items:center;min-height:62px;gap:12px;border:1px solid var(--line);border-radius:9px;margin-bottom:9px;padding:10px 12px;background:#0b151f55}.slot.vacant{border-style:dashed;color:#79899b}.slot.you{border-color:#dfbe7b80;background:#d8b6760b}.avatar{flex-shrink:0;display:flex;justify-content:center;align-items:center;width:32px;height:32px;background:#6fcddd15;color:var(--blue);border:1px solid #6fcddd25;border-radius:8px;font-weight:700}.red-team .avatar{color:var(--red);background:#ee909f15;border-color:#ee909f25}.player-name{flex:1;min-width:0;overflow-wrap:anywhere;font-size:14px}.player-name small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.slot .mini{background:none;font-size:12px;color:var(--muted);padding:4px}.join{width:100%;padding:12px;border-radius:8px;background:#6fcddd12;color:var(--blue);border:1px solid #6fcddd30}.red-team .join{background:#ee909f12;color:var(--red);border-color:#ee909f30}.empty{text-align:center;padding:38px 26px 45px}.empty-symbol{font-size:58px;line-height:1.2;color:#637080;margin:0 0 20px}.empty p{font-size:14px;max-width:440px;margin:0 auto 24px}.empty.compact{padding:25px 10px;font-size:14px;color:var(--muted)}.match-foot{padding:17px 24px;border-top:1px solid var(--line);color:var(--muted);font-size:13px;line-height:1.8}.match-controls{padding:0 27px 24px;display:flex;gap:10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 19px;border-radius:8px;background:var(--gold);color:#17202c;font-weight:700;font-size:14px;min-height:44px;transition:filter .15s}.button:hover{filter:brightness(1.1)}.button.secondary{border:1px solid var(--line);color:var(--text);background:#162332}.button.danger{background:#dd778416;color:#f0a3af;border:1px solid #dd778455}.button.blue-button{background:var(--blue)}.button.red-button{background:var(--red)}.full{width:100%}.banner{margin:0 27px 22px;padding:14px 17px;border-radius:8px;background:#dfbe7b10;border:1px solid #dfbe7b25;color:var(--gold);font-size:14px;line-height:1.8}.banner.error{color:var(--red);border-color:#ee909f33;background:#ee909f0b}.card{padding:26px;margin-bottom:22px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.toolbar p{margin-top:5px;font-size:14px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:14px}td,th{text-align:left;padding:16px 12px;border-bottom:1px solid var(--line)}th{font-size:12px;color:var(--muted);font-weight:500}td small{display:block;color:var(--muted);font-size:12px;margin-top:5px}td.notes{white-space:normal;min-width:180px;max-width:340px;overflow-wrap:anywhere}.positive{color:var(--blue)}.negative{color:var(--red)}.amount{font-variant-numeric:tabular-nums;font-weight:700}.admin-actions{display:flex;gap:10px;align-items:center}.filter{width:280px!important}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.stat{padding:21px 24px;border:1px solid var(--line);background:var(--panel);border-radius:12px}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;margin-top:9px;font-size:27px}footer{padding:32px 0 10px;color:#718298;font-size:12px;text-align:center;line-height:1.8}footer span{padding:0 8px}dialog{width:min(460px,calc(100vw - 30px));padding:28px;border:1px solid #3b4c5f;border-radius:18px;background:#121e2c;color:var(--text);box-shadow:0 24px 100px #0008;max-height:90vh;overflow-y:auto}dialog::backdrop{background:#030811b8;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:18px;margin-bottom:23px}.dialog-head h2{margin-top:6px;font-size:22px}.icon-button{background:none;color:var(--muted);font-size:25px;padding:0 5px}.segmented{display:flex;padding:4px;background:#0b1520;border-radius:8px;margin-bottom:24px}.segmented button{flex:1;padding:10px;background:none;color:var(--muted);border-radius:6px;font-size:14px}.segmented .active{background:#253447;color:var(--text)}label{display:block;color:#c1cedd;font-size:14px;margin:17px 0}input,select{width:100%;background:#0b1520;color:var(--text);padding:12px 13px;border:1px solid #314255;border-radius:7px;margin-top:9px;outline:none}input:focus,select:focus{border-color:var(--gold)}input::placeholder{color:#667c92;font-size:13px}.form-note{font-size:12px;line-height:1.8;margin-top:17px}.form-error{color:var(--red);font-size:14px;margin:12px 0}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:23px}.dialog-copy{font-size:15px;line-height:1.9}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 35px);padding:14px 22px;border:1px solid #5c785d;background:#192b25;color:#d1efdc;border-radius:10px;z-index:20;box-shadow:0 10px 50px #0005;font-size:14px}.toast.error{background:#3c202c;border-color:#8f5264;color:#ffdae3}.pagination{display:flex;justify-content:flex-end;gap:20px;align-items:center;margin-top:15px;font-size:14px}.muted{color:var(--muted)}
@media(max-width:1100px){.rules-strip>div{display:block;padding:0 17px}.rules-strip>div>span{display:block;margin-top:7px}.lobby-layout{grid-template-columns:280px minmax(0,1fr)}.teams{padding:20px;gap:8px}.slot{padding:9px;gap:8px}.slot .mini{font-size:11px}.match-top{padding:23px 20px}}@media(max-width:780px){.topbar{height:76px;padding:0 20px}.season{display:none}.shell{padding:27px 16px 12px}.page-heading{align-items:stretch;gap:15px}h1{font-size:29px}.page-heading>div>p{font-size:13px}.eyebrow{font-size:10px;letter-spacing:1.5px}.balance-card{min-width:0;padding:15px;max-width:180px}.balance-card strong{font-size:26px}.balance-card small{font-size:11px}.rules-strip{margin:22px 0 14px;padding:15px 0}.rules-strip>div{padding:0 10px}.rules-strip b{font-size:17px}.rules-strip>div>span{font-size:11px}.lobby-layout{grid-template-columns:1fr}.rooms-panel{padding:16px}.room-card{min-width:215px;width:215px;margin:0}.room-meta{gap:10px}#room-list{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.tabs{gap:23px}.sync{font-size:10px}.match-top .badge{font-size:10px}.team-head{font-size:15px}.teams{padding:18px 12px;grid-template-columns:1fr 22px 1fr;gap:7px}.slot{min-height:67px;gap:6px}.avatar{width:26px;height:29px;font-size:13px}.player-name{font-size:13px}.slot .mini{padding:2px}.toolbar{align-items:start;flex-wrap:wrap}.admin-actions{flex-wrap:wrap}.filter{width:100%!important}.stats{gap:8px}.stat{padding:15px}.stat strong{font-size:22px}.card{padding:20px 14px}.match-controls{padding:0 14px 20px}.match-controls>.button{flex:1}.banner{margin:0 14px 17px}.rules-strip>div:last-child b{font-size:14px}.top-actions{gap:0}.brand{font-size:18px}.brand img{width:36px;height:36px}}@media(max-width:410px){.page-heading{flex-direction:column}.balance-card{max-width:none;display:grid;grid-template-columns:1fr auto;align-items:center}.balance-card small{grid-column:1/-1}.balance-card strong{margin:0}.rules-strip{grid-template-columns:1fr 1fr;row-gap:17px}.rules-strip>div:nth-child(2){border:0}.rules-strip>div>span{font-size:12px}.slot .mini{display:none}.match-top{align-items:start}.match-top>.badge{white-space:normal;max-width:85px}.sync{max-width:88px;text-align:right}.tab{font-size:14px}}
@media(max-width:410px){.slot{flex-wrap:wrap}.slot .mini{display:inline-block;margin-left:auto;min-height:24px}.slot .player-name{min-width:58px}.tabs{gap:18px}}
.login-page{display:grid;place-items:center;padding:32px 18px}.login-card{width:min(460px,100%);padding:34px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(150deg,#192735,#101b28);box-shadow:0 24px 80px #0004}.login-heading{margin:34px 0 25px}.login-heading h1{font-size:28px;margin:12px 0}.login-heading p{font-size:14px}.login-card footer{border-top:1px solid var(--line);margin-top:26px;padding:20px 0 0}.session-status{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:30px;text-align:center}@media(max-width:410px){.login-card{padding:26px 22px}.login-heading h1{font-size:25px}}
.room-entry{position:relative;margin-bottom:12px}.room-entry .room-card{margin-bottom:0}.room-delete{position:absolute;top:10px;right:10px;min-width:44px;min-height:38px;padding:8px;color:var(--red);background:transparent;border:1px solid transparent;border-radius:7px;font-size:13px}.room-delete:hover{background:#ee909f15;border-color:#ee909f40}.rules-strip{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:780px){.room-entry{flex:0 0 215px;margin-bottom:0}.rules-strip>div:last-child b{font-size:17px}}@media(max-width:410px){.rules-strip>div:nth-child(2){border-right:1px solid var(--line)}}
