:root{--bg:#0b0810;--panel:#17101f;--panel2:#21162b;--line:#3f2a50;--purple:#8f45df;--purple2:#b46af0;--orange:#ff9c36;--text:#f7f2fa;--muted:#b8a9c2;--good:#5ee0a0;--danger:#ff6a6a;--shadow:0 18px 50px #0008}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% -20%,#2b1738 0,#0b0810 45%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}.muted{color:var(--muted)}.topbar{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 20px;border-bottom:1px solid #ffffff10;background:#0d0913e8;backdrop-filter:blur(16px);position:sticky;top:0;z-index:30}.brand{display:flex;gap:10px;align-items:center;min-width:0}.brandLogo{width:48px;height:48px;object-fit:contain}.wordmark{display:block;width:min(210px,33vw);height:25px;object-fit:contain;object-position:left center}.brand span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.topActions{display:flex;gap:9px;align-items:center}.statusDot{font-size:12px;color:var(--muted);white-space:nowrap}.feedbackBtn,.iconBtn,.btn{border:1px solid var(--line);background:#1b1124;color:var(--text);border-radius:10px;padding:9px 13px;font-weight:800}.feedbackBtn:hover,.btn:hover,.iconBtn:hover{border-color:#a76be2;background:#281735}.feedbackBtn{color:#f0dfff}.iconBtn{padding:9px 11px}.btn.primary{background:linear-gradient(135deg,#8740d5,#a75ee8);border-color:#bd7df0}.btn.ghost{background:#ffffff08}.btn.wide{width:100%;margin-top:9px}.btn:disabled{opacity:.4;cursor:not-allowed}.appShell{display:grid;grid-template-columns:205px minmax(0,1fr);min-height:calc(100vh - 72px)}.sidebar{border-right:1px solid #ffffff10;padding:14px 10px;background:#0e0a13;position:sticky;top:72px;height:calc(100vh - 72px);overflow:auto}.navBtn{width:100%;border:0;background:transparent;color:#ccbcd6;text-align:left;padding:11px 12px;border-radius:10px;margin:2px 0;font-weight:800}.navBtn:hover,.navBtn.active{background:#8f45df20;color:#fff}.navBtn.active{box-shadow:inset 3px 0 0 var(--purple2)}.main{padding:14px 16px 28px;min-width:0}.mobileNav{display:none}.card{border:1px solid #ffffff12;background:linear-gradient(180deg,#1a1221,#130e19);border-radius:15px;box-shadow:0 12px 30px #0004}.arenaPanel{padding:10px 12px;margin-bottom:14px}.scorebar{display:grid;grid-template-columns:1fr 170px 1fr;align-items:center;gap:10px;padding:4px 4px 10px}.team{display:flex;flex-direction:column;min-width:0}.team.p2{text-align:right}.team strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team small{color:var(--muted)}.teamTag{font-size:10px;letter-spacing:.08em;color:#c8b4d3}.p1 .teamTag{color:#c38cff}.p2 .teamTag{color:#ffbd79}.matchCenter{text-align:center}.score{font-weight:1000;font-size:27px;line-height:1}.score span{color:#7c6788;margin:0 7px}.clock{font-variant-numeric:tabular-nums;font-size:14px;color:#f9cc75;margin-top:4px}.phase{font-size:9px;letter-spacing:.16em;color:var(--muted);margin-top:2px}.fieldWrap{position:relative;width:100%;height:min(58vh,610px);min-height:330px;border-radius:12px;overflow:hidden;background:#080b0d;border:1px solid #ffffff14}.fieldWrap canvas{display:block;width:100%;height:100%}.fieldFooter{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding-top:9px}.fieldFooter>div{display:flex;justify-content:center;gap:8px;padding:6px 8px;border-radius:9px;background:#ffffff05;font-size:11px}.fieldFooter span{color:var(--muted)}.gameOverlay{position:absolute;inset:0;display:grid;place-items:center;background:#05030a52;pointer-events:none}.overlayBig{font-size:clamp(54px,8vw,110px);font-weight:1000;text-shadow:0 8px 30px #000}.overlayText{text-align:center;font-weight:900}.page{display:none}.page.active{display:block}.pageGrid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.8fr);gap:14px}.formCard,.infoCard,.roomCard,.tableCard,.bracketCard{padding:17px}.formCard h2,.tableCard h2,.card h2{margin:0 0 5px}.formCard p,.sectionHead p,.infoCard p{margin:0 0 14px;color:var(--muted);line-height:1.45}.profileGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.formCard label,.adminBox{font-size:11px;color:var(--muted);font-weight:800}.formCard input,.formCard select,.formCard textarea,.adminBox input,.joinBox input,.compactProfile input{width:100%;margin-top:5px;background:#0d0912;border:1px solid var(--line);color:#fff;border-radius:9px;padding:10px 11px;outline:none}.formCard input:focus,.formCard select:focus,.formCard textarea:focus,.adminBox input:focus{border-color:#a85ce9;box-shadow:0 0 0 3px #8f45df18}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:13px}.joinBox{display:flex;gap:7px;flex:1;min-width:210px}.joinBox input{text-transform:uppercase;letter-spacing:.2em;font-weight:1000}.roomCard h3{margin-top:0}.roomCode{display:flex;justify-content:space-between;align-items:center;border:1px dashed #7c5b90;border-radius:10px;padding:12px}.roomCode span{color:var(--muted);font-size:11px}.roomCode b{font-size:23px;letter-spacing:.14em;color:#ffd07b}.connectRows{margin:12px 0;display:grid;gap:7px}.connectRows div{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid #ffffff09}.connectRows b{color:var(--muted)}.connectRows b.ok{color:var(--good)}.selectLabel{display:block;margin-top:10px}.miniState{border-left:3px solid var(--purple);padding:10px 12px;background:#8f45df10}.miniState span{display:block;font-size:10px;color:var(--muted)}.miniState b{font-size:11px}.twoPlayers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.twoPlayers fieldset{border:1px solid var(--line);border-radius:12px;padding:12px}.twoPlayers legend{font-weight:900;color:#e5ccf4}.twoPlayers label{display:block;margin:8px 0}.trainingHeader{display:flex;justify-content:space-between;gap:15px;align-items:flex-end}.compactProfile{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:7px;min-width:min(600px,60%)}.trainingGrid,.learnGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:11px;margin-top:12px}.trainingCard,.learnCard{padding:14px;border:1px solid #ffffff11;border-radius:13px;background:#ffffff04}.trainingCard h3,.learnCard h3{margin:0 0 6px}.trainingCard p,.learnCard p{color:var(--muted);font-size:12px;line-height:1.45;min-height:52px}.trainingCard .meta{display:flex;justify-content:space-between;color:#c6b5cf;font-size:10px;margin:9px 0}.sectionHead{display:flex;justify-content:space-between;gap:12px;align-items:center}.adminActions{display:flex;gap:7px}.adminBox{display:grid;grid-template-columns:180px 180px auto auto auto auto 1fr;gap:7px;align-items:center;margin:12px 0;padding:10px;border:1px solid var(--line);border-radius:11px;background:#ffffff04}.adminBox input{margin:0}.tableScroll{overflow:auto}.tableCard table{width:100%;border-collapse:collapse;white-space:nowrap}.tableCard th,.tableCard td{padding:9px 8px;border-bottom:1px solid #ffffff0d;text-align:left;font-size:12px}.tableCard th{font-size:10px;color:var(--muted);position:sticky;top:0;background:#17101f}.rankNum{color:#ffc366;font-weight:1000}.editBtn{padding:5px 8px;border-radius:7px;border:1px solid #705282;background:#24152e;color:#fff}.bracket{display:flex;gap:16px;overflow:auto;min-height:300px}.bracketRound{min-width:190px;display:flex;flex-direction:column;gap:10px}.bracketRound h4{margin:0 0 5px;color:#c9b8d4}.bracketMatch{border:1px solid var(--line);border-radius:10px;overflow:hidden}.bracketMatch button{display:block;width:100%;border:0;border-bottom:1px solid #ffffff0e;background:#ffffff04;color:#fff;padding:9px;text-align:left}.bracketMatch button:last-child{border-bottom:0}.bracketMatch button:hover{background:#8f45df20}.qrGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.qrCard{text-align:center;border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff;color:#19101f}.qrCard img{width:min(260px,100%);height:auto}.qrCard b{display:block;margin-bottom:7px}.modal{position:fixed;inset:0;background:#07040ab8;z-index:80;display:grid;place-items:center;padding:18px}.modalCard{width:min(780px,100%);max-height:calc(100vh - 36px);overflow:auto;border:1px solid var(--line);background:#17101f;border-radius:16px;padding:18px;box-shadow:var(--shadow)}.welcome{position:fixed;inset:0;z-index:100;background:#08050be8;display:grid;place-items:center;padding:14px}.welcomeCard{width:min(900px,100%);max-height:calc(100vh - 28px);overflow:auto;background:linear-gradient(180deg,#21152b,#130d1a);border:1px solid #6f4c82;border-radius:18px;box-shadow:var(--shadow);padding:20px}.welcomeHead{display:flex;gap:15px;align-items:center}.welcomeHead img{width:82px;height:82px;object-fit:contain}.welcomeHead h1{font-size:clamp(26px,4vw,42px);margin:2px 0 3px}.welcomeHead p{margin:0;color:#d7c6df}.eyebrow{font-size:10px;letter-spacing:.14em;color:#d9a8ff}.welcomeBody{color:#e5dbe9;line-height:1.52;font-size:14px}.welcomeBody p{margin:11px 0}.welcomeCallout{display:flex;gap:12px;border:1px solid #8e55b0;background:#8f45df12;border-radius:12px;padding:12px}.welcomeCallout>span{font-size:25px}.welcomeActions{display:flex;justify-content:flex-end;gap:9px;margin-top:14px}.securityOverlay{position:fixed;inset:0;z-index:120;background:#07040bea;display:none;place-items:center;padding:20px}.securityOverlay.show{display:grid}.securityCard{width:min(460px,100%);text-align:center;border:1px solid #925ac0;border-radius:16px;background:#1a1122;padding:24px;box-shadow:var(--shadow)}.shield{font-size:48px}.securityCard h2{margin:5px 0}.securityCard p{color:var(--muted);line-height:1.45}.toast{position:fixed;right:16px;bottom:16px;z-index:150;display:none;max-width:min(440px,calc(100vw - 32px));border:1px solid var(--line);border-radius:10px;background:#24172e;padding:11px 13px;box-shadow:var(--shadow)}.toast.show{display:block}.printNotice{display:none}
@media(max-width:1080px){.appShell{grid-template-columns:1fr}.sidebar{display:none}.mobileNav{display:flex;overflow:auto;gap:7px;margin-bottom:10px}.mobileNav button{white-space:nowrap;border:1px solid var(--line);background:#17101f;color:#eee;border-radius:9px;padding:8px 10px}.pageGrid{grid-template-columns:1fr}.fieldWrap{height:min(54vh,520px)}.trainingHeader{align-items:stretch;flex-direction:column}.compactProfile{min-width:0;width:100%}.adminBox{grid-template-columns:1fr 1fr auto auto}.adminBox span{grid-column:1/-1}}@media(max-width:720px){.topbar{padding:8px 10px}.brand span{display:none}.brandLogo{width:40px;height:40px}.feedbackBtn{font-size:0;padding:9px}.feedbackBtn::before{content:'💬';font-size:16px}.statusDot{display:none}.main{padding:10px}.scorebar{grid-template-columns:1fr 100px 1fr}.fieldWrap{height:min(52vh,430px);min-height:280px}.fieldFooter{grid-template-columns:1fr 1fr}.profileGrid,.compactProfile,.twoPlayers{grid-template-columns:1fr}.welcomeCard{padding:15px}.welcomeHead{align-items:flex-start}.welcomeHead img{width:58px;height:58px}.welcomeBody{font-size:13px}.welcomeActions{position:sticky;bottom:-1px;background:#160e1e;padding-top:10px}.welcomeActions .btn{flex:1}.adminBox{grid-template-columns:1fr}.adminBox span{grid-column:auto}.sectionHead{align-items:flex-start;flex-direction:column}.topActions{gap:5px}}@media(max-height:780px) and (min-width:721px){.fieldWrap{height:min(50vh,430px)}.arenaPanel{padding:7px 9px}.scorebar{padding-bottom:6px}.fieldFooter{padding-top:6px}.main{padding-top:9px}.welcomeBody{font-size:12.5px;line-height:1.42}.welcomeHead img{width:64px;height:64px}}
@media print{body>*{display:none!important}.printNotice{display:block!important;color:#000;background:#fff;font-family:Arial,sans-serif;font-size:24px;padding:50px;position:static}}
.liveProgress{margin-top:10px;padding:8px 9px;border-radius:9px;background:#8f45df12;border:1px solid #8f45df38;color:#dec8eb;font-size:10px;line-height:1.4}
.roomJoinQr{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px;border:1px solid #ffffff10;border-radius:10px;background:#fff;color:#24162d}.roomJoinQr img{width:84px;height:84px}.roomJoinQr span{font-size:10px;font-weight:800;line-height:1.3}
.rankFilter{border:1px solid var(--line);background:#0d0912;color:#fff;border-radius:9px;padding:9px 10px;min-width:150px}.adminActions{flex-wrap:wrap}.adminActions .rankFilter:first-child{min-width:230px}@media(max-width:720px){.adminActions{width:100%}.adminActions .rankFilter{flex:1;min-width:0!important}}

/* V1.1 — controles de partido siempre visibles y pausa segura */
.matchControlBtn{min-width:122px;white-space:nowrap;box-shadow:0 8px 24px #8f45df28}
.gameOverlay.pausedOverlay{background:#05030a82;backdrop-filter:blur(1.5px)}
.gameOverlay.pausedOverlay .overlayBig{font-size:clamp(34px,5vw,68px);letter-spacing:.04em}
.gameOverlay.pausedOverlay .overlayText{margin-top:8px;color:#d9c8e4;font-size:13px}
@media(max-width:720px){.matchControlBtn{min-width:96px;padding:9px 10px;font-size:12px}.topActions{gap:6px}}

/* V1.0.2 — identidad visual, cancha y lectura de robots */
.brand{gap:12px}.brandLogo{width:50px;height:50px;object-fit:contain;object-position:center;opacity:.96;filter:drop-shadow(0 2px 5px rgba(0,0,0,.5));}.wordmark{height:27px;width:min(220px,34vw);object-fit:contain;object-position:left center;filter:drop-shadow(0 2px 4px rgba(0,0,0,.42));}.brand>div{display:grid;gap:2px;min-width:0}.brand span{color:#d8cbe0;letter-spacing:.01em}.fieldWrap{background:radial-gradient(circle at 50% 45%,#101918 0,#070a0c 68%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 12px 32px rgba(0,0,0,.22)}#field{image-rendering:auto}.arenaPanel{overflow:hidden}.scorebar{position:relative}.teamTag{font-weight:900;letter-spacing:.06em}.team.p1 .teamTag{color:#d49cff}.team.p2 .teamTag{color:#ffb36e}
@media(max-width:720px){.brandLogo{width:42px;height:42px}.wordmark{height:23px;width:min(178px,48vw)}}

/* V1.0.3 — branding real TRINCABOT */
.topbar{min-height:84px;padding:8px 20px 10px}.brand{gap:14px;align-items:center}.brandLogoFull{width:clamp(110px,15vw,175px);height:auto;max-height:64px;object-fit:contain;object-position:left center;filter:drop-shadow(0 2px 6px rgba(0,0,0,.42));}.brandCopy{display:flex;flex-direction:column;justify-content:center;min-width:0}.brandCopy span{display:block;font-size:11px;color:#e1d8e6;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wordmark{display:none}.fieldWrap{background:radial-gradient(circle at 50% 45%,#12201b 0,#070a0c 70%)}@media(max-width:720px){.topbar{min-height:74px;padding:8px 10px}.brandLogoFull{width:min(132px,44vw);max-height:52px}.brandCopy span{display:block;font-size:10px;white-space:normal;line-height:1.15}}
