:root{color-scheme:dark;font-family:Trebuchet MS,Segoe UI,sans-serif;background:radial-gradient(circle at top,rgba(66,192,200,.22),transparent 30%),radial-gradient(circle at bottom left,rgba(242,171,60,.18),transparent 24%),#061428}*{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;touch-action:none}body{display:grid;place-items:center}canvas{display:block;max-width:100%;max-height:100%;outline:none}.player-name-overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:24px;background:#020b18c2}.player-name-dialog{display:grid;width:min(560px,100%);gap:16px;padding:32px;border:1px solid rgba(73,211,209,.6);border-radius:16px;color:#f7fbff;background:#0a203b;box-shadow:0 24px 90px #00000080}.player-name-dialog h2,.player-name-dialog p{margin:0}.player-name-dialog h2{font-size:34px}.player-name-dialog p,.player-name-error{color:#9cc6dd}.player-name-input{width:100%;min-height:64px;padding:0 18px;border:1px solid rgba(73,211,209,.48);border-radius:12px;outline:none;color:#f7fbff;background:#06172d;font-size:24px;-webkit-user-select:text;user-select:text}.player-name-input:focus{border-color:#f2ab3c;box-shadow:0 0 0 4px #f2ab3c29}.player-name-error{min-height:20px;color:#ff8b7a;font-size:14px;font-weight:700}.player-name-actions{display:flex;justify-content:flex-end}.player-name-start{min-height:58px;padding:0 22px;border:1px solid #f2ab3c;border-radius:12px;color:#061428;background:#f2ab3c;font-weight:800;cursor:pointer}button,input{font:inherit}.is-admin{display:block;overflow-y:auto;padding:32px;color:#f7fbff;background:#020b18f5;touch-action:pan-y;user-select:text;-webkit-user-select:text}.is-admin #app{width:100%;height:auto;min-height:100%;overflow:visible;touch-action:pan-y}.dashboard-panel{width:min(1180px,100%);margin:0 auto;padding:32px;border:1px solid rgba(73,211,209,.58);border-radius:18px;background:#0a203b;box-shadow:0 24px 80px #0000006b}.dashboard-panel h2{margin:34px 0 0}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.dashboard-header h1,.dashboard-panel h2,.dashboard-header p{margin:0}.dashboard-header h1{margin-top:6px;font-size:clamp(30px,4vw,48px)}.dashboard-header p{max-width:760px;margin-top:10px;color:#9cc6dd;line-height:1.5}.dashboard-eyebrow{color:#49d3d1;font-size:13px;font-weight:700;letter-spacing:.14em}.dashboard-close,.dashboard-button,.dashboard-select{border:1px solid #49d3d1;border-radius:10px;color:#f7fbff;background:#13355e;cursor:pointer}.dashboard-close{min-width:120px;padding:14px 18px}.dashboard-settings{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:20px;margin-bottom:34px}.dashboard-settings label{display:grid;gap:8px;color:#9cc6dd;font-size:14px;font-weight:700}.dashboard-settings input{width:100%;min-height:52px;padding:0 15px;border:1px solid rgba(73,211,209,.42);border-radius:10px;outline:none;color:#f7fbff;background:#06172d;-webkit-user-select:text;user-select:text}.dashboard-settings input:focus{border-color:#f2ab3c;box-shadow:0 0 0 3px #f2ab3c26}.dashboard-hint{margin:8px 0 20px;color:#9cc6dd}.dashboard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dashboard-card{display:grid;gap:10px;padding:12px;border:1px solid rgba(73,211,209,.2);border-radius:12px;background:#05162cb8}.dashboard-card.is-card-back{border-color:#f2ab3cb3}.dashboard-grid-card-back{grid-template-columns:minmax(220px,280px);margin-bottom:22px}.dashboard-pairs-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.dashboard-pair-group{display:grid;gap:12px;padding-top:16px;border-top:1px solid rgba(73,211,209,.24)}.dashboard-pair-title{margin:0;color:#49d3d1;font-size:16px}.dashboard-pair-slots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-preview{display:grid;min-height:142px;overflow:hidden;place-items:center;border-radius:8px;color:#9cc6dd;background:#031226}.dashboard-preview img{width:100%;height:142px;object-fit:cover}.dashboard-preview.is-contain img{padding:16px;object-fit:contain}.dashboard-preview.is-fill img{object-fit:fill}.dashboard-placeholder{padding:20px;text-align:center}.dashboard-select{min-height:42px;padding:9px 12px;font-size:12px;font-weight:700}.dashboard-select:hover,.dashboard-close:hover{border-color:#f2ab3c}.dashboard-status{min-height:24px;margin:22px 0 10px;color:#9cc6dd}.dashboard-status.is-error{color:#ff8b7a}.dashboard-footer{display:flex;justify-content:flex-end;gap:14px;padding-top:12px}.dashboard-button{min-height:54px;padding:0 22px;font-weight:700}.dashboard-button.primary{border-color:#f2ab3c;background:#9b6418}.dashboard-button.secondary{border-color:#9cc6dd7a;background:transparent}.dashboard-shell{display:grid;grid-template-columns:284px minmax(0,1fr);min-height:100vh;background:radial-gradient(circle at 86% 8%,rgba(73,211,209,.13),transparent 28%),#061428}.dashboard-sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100vh;padding:24px;border-right:1px solid rgba(73,211,209,.2);background:#041021f0}.dashboard-sidebar-header{display:flex;align-items:center;gap:12px}.dashboard-sidebar-mark{display:grid;width:46px;height:46px;place-items:center;border:1px solid rgba(73,211,209,.58);border-radius:12px;color:#49d3d1;background:#49d3d11f;font-weight:800}.dashboard-sidebar-title{display:grid;gap:3px}.dashboard-sidebar-title strong{color:#f7fbff}.dashboard-sidebar-title span{color:#9cc6dd;font-size:13px}.dashboard-menu{display:grid;gap:8px;margin-top:34px}.dashboard-menu button{min-height:46px;padding:0 14px;border:1px solid transparent;border-radius:10px;color:#9cc6dd;background:transparent;text-align:left;cursor:pointer}.dashboard-menu button:hover,.dashboard-menu button.is-active{border-color:#49d3d170;color:#f7fbff;background:#49d3d11a}.dashboard-sidebar-actions{display:grid;gap:12px;margin-top:auto}.dashboard-sidebar .dashboard-close{width:100%;min-width:0}.dashboard-panel{width:100%;margin:0;padding:32px;border:0;border-radius:0;background:transparent;box-shadow:none}.dashboard-panel h2{margin:0}.dashboard-header,.dashboard-section{border:1px solid rgba(73,211,209,.18);border-radius:16px;background:#0a203bbd;box-shadow:0 18px 52px #0003}.dashboard-header{padding:26px}.dashboard-section{margin-top:18px;padding:24px;scroll-margin-top:24px}.dashboard-section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:20px}.dashboard-section-header .dashboard-hint{max-width:720px;margin:0}.dashboard-settings{margin-bottom:0}.dashboard-grid-card-back{margin-bottom:24px}.dashboard-pairs-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-pair-group{padding:16px;border:1px solid rgba(73,211,209,.24);border-radius:14px;background:#031226ad}.dashboard-pair-title{display:inline-flex;width:fit-content;padding:7px 10px;border:1px solid rgba(73,211,209,.3);border-radius:999px;background:#49d3d114;font-size:14px}.dashboard-pair-slots{margin-top:12px}.dashboard-pair-slots .dashboard-card{background:#06172de6}button:disabled{cursor:wait;opacity:.55}.startup-error{max-width:820px;margin:32px;padding:24px;border:1px solid #ff7b54;border-radius:12px;color:#fff7f3;background:#321812;white-space:pre-wrap}@media(max-width:820px){.is-admin,.dashboard-panel{padding:18px}.dashboard-header,.dashboard-footer{flex-direction:column}.dashboard-settings{grid-template-columns:1fr}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid-card-back,.dashboard-pairs-grid,.dashboard-pair-slots{grid-template-columns:1fr}.dashboard-close,.dashboard-button{width:100%}}@media(max-width:1100px){.dashboard-shell{grid-template-columns:1fr}.dashboard-sidebar{position:static;height:auto;padding:18px;border-right:0;border-bottom:1px solid rgba(73,211,209,.2)}.dashboard-menu{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.dashboard-menu button{text-align:center}.dashboard-sidebar-actions{margin-top:16px}}@media(max-width:640px){.dashboard-section-header,.dashboard-menu{grid-template-columns:1fr}.dashboard-section-header{display:grid}}.is-admin{padding:0}
