:root{--bg:#05111e;--bg2:#081a2b;--panel:#0b2035;--panel2:#0e2944;--line:#173c5f;--text:#f5f8fc;--muted:#91a8be;--blue:#1476ff;--green:#26c46f;--gold:#ffbe2e;--danger:#ff5a63}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(circle at 50% -10%,#123859 0,#061321 42%,#030a12 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;min-height:100%}a{color:inherit;text-decoration:none}.app-shell{max-width:560px;min-height:100vh;margin:auto;background:linear-gradient(180deg,rgba(6,19,33,.95),rgba(4,13,23,.98));position:relative}.login-screen{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:28px;background:radial-gradient(circle at 50% 20%,#173c5f 0,#061321 38%,#030a12 100%)}.brand-mark{font-size:45px;transform:rotate(180deg);opacity:.9}.brand-title{font-size:27px;letter-spacing:3px;font-weight:800}.brand-sub{letter-spacing:8px;font-size:11px;color:#c5d5e4;margin:5px 0 34px}.login-card{width:min(390px,100%);display:grid;gap:14px}.input{width:100%;border:1px solid var(--line);background:#071827;color:#fff;border-radius:12px;padding:14px 15px;font-size:16px;outline:none}.input:focus{border-color:#3b8dff;box-shadow:0 0 0 3px rgba(20,118,255,.15)}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:11px;padding:14px 18px;font-weight:800;color:white;cursor:pointer;width:100%}.primary{background:linear-gradient(180deg,#1680ff,#0c5fd6)}.secondary{background:#102b46;border:1px solid var(--line)}.muted{color:var(--muted);font-size:13px}.center{text-align:center}.alert{padding:11px;border-radius:10px}.danger{background:#3a1720;color:#ffb8bd}.topbar{min-height:88px;padding:22px 18px 13px;display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.05);position:sticky;top:0;background:rgba(5,17,30,.92);backdrop-filter:blur(14px);z-index:10}.topbar h1{font-size:20px;margin:3px 0}.eyebrow,.section-kicker{font-size:10px;letter-spacing:1.5px;color:#9db2c7}.grow{flex:1}.icon-btn{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#0d2236;border:1px solid var(--line)}.content{padding:16px}.pb-nav{padding-bottom:90px}.summary-card,.info-card,.versus-card,.locked-card{background:linear-gradient(160deg,#0d2842,#081a2c);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 18px 50px rgba(0,0,0,.18)}.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:13px}.stats div{text-align:center;border-right:1px solid var(--line)}.stats div:last-child{border:0}.stats b{display:block;font-size:24px}.stats span{font-size:11px;color:var(--muted)}.section-title,.round-title{font-size:12px;letter-spacing:.8px;margin:24px 2px 10px;color:#c6d7e6}.tournament-card,.match-card{background:linear-gradient(160deg,#0b2137,#091a2b);border:1px solid var(--line);border-radius:15px;padding:15px;margin-bottom:11px;display:flex;align-items:center;justify-content:space-between;gap:14px}.tournament-card h3{font-size:17px;margin:8px 0 2px}.tournament-card p{margin:0;color:var(--muted);font-size:12px}.pill{font-size:9px;padding:4px 7px;border-radius:7px;font-weight:800}.pill.live,.status.live{background:#113b25;color:#52e995}.score-box{text-align:right}.score-box b{font-size:24px}.score-box span{display:block;color:var(--muted);font-size:11px}.info-card{margin-top:18px}.info-card p{color:#bbcad8;line-height:1.5}.bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(560px,100%);height:70px;background:rgba(5,17,30,.95);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding-bottom:env(safe-area-inset-bottom);backdrop-filter:blur(16px);z-index:20}.bottom-nav a{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:18px}.bottom-nav span{font-size:10px;color:#a8bbcd}.tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:14px}.tab{background:none;border:0;color:#7f98af;padding:12px;font-weight:800}.tab.active{color:white;border-bottom:2px solid #3a8cff}.hidden{display:none!important}.empty{text-align:center;padding:45px 18px;color:var(--muted)}.empty div{font-size:45px}.empty h3{color:white}.match-card{display:block}.match-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;margin-bottom:11px}.status{padding:3px 7px;border-radius:6px}.status.scheduled{background:#132b43;color:#c4d5e5}.status.finished{background:#272d35;color:#adb9c4}.player-line{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.player-line span{color:var(--muted);font-size:12px}.your-pick{margin-top:10px;font-size:11px;color:#70b1ff}.versus-card{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;gap:12px;margin-top:10px}.person{display:grid;gap:5px}.person span{font-size:11px;color:var(--muted)}.avatar{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:#13324f;margin:auto;font-size:30px;border:1px solid #28557c}.vs{font-weight:900;color:#6d8499}.match-detail{display:flex;justify-content:space-between;padding:14px 4px;color:var(--muted);font-size:11px}.pick-form h3{font-size:12px;margin:22px 0 10px}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sets-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.choice input{display:none}.choice span{display:block;text-align:center;border:1px solid var(--line);border-radius:11px;background:#091d31;padding:13px 8px;font-size:12px}.choice input:checked+span{border-color:#3f92ff;background:#0d57a6;box-shadow:0 0 0 2px rgba(63,146,255,.15)}.locked-card{text-align:center;margin-top:15px}.saved-pick{margin-top:16px;background:#071827;padding:12px;border-radius:10px}.ranking-list{background:#091d31;border:1px solid var(--line);border-radius:15px;overflow:hidden}.rank-row{display:grid;grid-template-columns:42px 1fr auto;align-items:center;padding:15px;border-bottom:1px solid var(--line)}.rank-row:last-child{border:0}.rank-row strong{color:#ffd36a}.rank-pos{font-size:18px}.admin-layout{min-height:100vh;display:grid;grid-template-columns:230px 1fr;background:#061321}.admin-side{padding:28px 18px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.admin-side h2{margin:0;font-size:17px}.admin-side small{color:var(--muted);letter-spacing:2px;margin-bottom:25px}.admin-side a{padding:11px;border-radius:9px;color:#a9bfd2}.admin-side a.active,.admin-side a:hover{background:#0f2d48;color:white}.admin-main{padding:30px}.admin-stats{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.admin-stats div,.admin-panel{background:#0a2035;border:1px solid var(--line);border-radius:14px;padding:18px}.admin-stats small{display:block;color:var(--muted)}.admin-stats b{font-size:28px}.admin-panel{margin-top:20px;overflow:auto}.admin-panel table{width:100%;border-collapse:collapse}.admin-panel th,.admin-panel td{text-align:left;padding:11px;border-bottom:1px solid var(--line);white-space:nowrap}.form-row{display:flex;gap:10px}.ok{color:#5be596}@media(max-width:760px){.admin-layout{display:block}.admin-side{position:sticky;top:0;z-index:10;flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:10px}.admin-side h2,.admin-side small{display:none}.admin-side a{white-space:nowrap}.admin-main{padding:16px}.admin-stats{grid-template-columns:1fr 1fr}.form-row{display:grid}.sets-grid{grid-template-columns:repeat(3,1fr)}}
/* Build 2: identidad Pomona + invitaciones WhatsApp */
.success{background:#0d3825;color:#8ff0b9;border:1px solid #1c6543}.admin-help{margin-top:-5px}.player-create-form{display:grid;gap:14px}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid-2 label{display:grid;gap:7px}.form-grid-2 label>span,.admin-checks>span{font-size:12px;color:#b8cada;font-weight:700}.admin-checks{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-check{display:flex;align-items:center;gap:8px;background:#071827;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:12px}.admin-check input{accent-color:#1476ff}.admin-create-btn{max-width:260px}.admin-panel-title{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.admin-panel-title h2{margin:0}.admin-panel-title p{margin:5px 0 0}.count-badge{min-width:36px;height:36px;padding:0 10px;border-radius:18px;background:#102e4a;display:grid;place-items:center;font-weight:900}.users-table td:first-child small{display:block;color:var(--muted);margin-top:3px}.wrap-cell{white-space:normal!important;min-width:250px}.whatsapp-btn{background:#159447!important;width:auto!important;padding:9px 12px!important;white-space:nowrap}.whatsapp-btn:hover{filter:brightness(1.08)}.invite-date{display:block;color:var(--muted);margin-top:6px;font-size:10px}.empty.compact{padding:25px}.empty.compact div{font-size:30px}.table-wrap{overflow-x:auto}
.splash-active{overflow:hidden}.splash-screen{position:fixed;inset:0;z-index:9999;background:url('/assets/images/pomona-city.jpg') center center/cover no-repeat;display:flex;align-items:flex-end;justify-content:center;padding:0 24px calc(72px + env(safe-area-inset-bottom));opacity:1;transition:opacity .6s ease}.splash-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,12,21,.03) 15%,rgba(2,12,21,.18) 43%,rgba(2,12,21,.94) 100%)}.splash-brand{position:relative;text-align:center;width:min(360px,100%)}.splash-loader{height:4px;background:rgba(255,255,255,.14);border-radius:99px;overflow:hidden;margin:28px auto 0;width:70%}.splash-loader i{display:block;height:100%;width:42%;background:#2b8cff;border-radius:99px;animation:pomonaLoad 2.4s ease forwards}.splash-hide{opacity:0;pointer-events:none}@keyframes pomonaLoad{from{width:0}to{width:100%}}
.pomona-login{position:relative;overflow:hidden;background:#061321}.login-bg{position:absolute;inset:0;background:url('/assets/images/pomona-city.jpg') center center/cover no-repeat;filter:saturate(.9)}.login-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(1,10,18,.45),rgba(1,10,18,.88) 46%,rgba(1,10,18,.98))}.login-content{position:relative;z-index:2;width:min(390px,100%);display:flex;flex-direction:column;align-items:center}.pomona-login .login-card{background:rgba(4,18,31,.68);border:1px solid rgba(104,168,223,.22);border-radius:18px;padding:18px;backdrop-filter:blur(10px);box-shadow:0 20px 60px rgba(0,0,0,.32)}
.invite-screen{min-height:100vh;position:relative;display:flex;align-items:flex-end;justify-content:center;padding:28px 20px 55px;overflow:hidden}.invite-photo{position:absolute;inset:0;background:url('/assets/images/pomona-city.jpg') center/cover no-repeat}.invite-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(2,12,21,.22),rgba(2,12,21,.93) 58%,#030c15 100%)}.invite-content{position:relative;z-index:2;width:min(420px,100%);text-align:center}.invite-card{margin-top:20px;padding:22px;background:rgba(7,24,39,.82);border:1px solid var(--line);border-radius:18px;backdrop-filter:blur(12px);box-shadow:0 20px 60px rgba(0,0,0,.35)}.invite-card h1{margin:7px 0;font-size:24px}.invite-card p{line-height:1.5}.invite-icon{font-size:34px}.invite-games{display:grid;gap:7px;margin:16px 0}.invite-games span{background:#0b2a45;border:1px solid #174267;border-radius:10px;padding:9px;font-size:12px}
@media(max-width:760px){.form-grid-2{grid-template-columns:1fr}.admin-create-btn{max-width:none}.admin-panel-title{align-items:center}.users-table{min-width:900px}.admin-checks{display:grid;grid-template-columns:1fr}.admin-checks>span{margin-bottom:-3px}}
/* Build 3: cuenta global + inscripción voluntaria + bloqueos por quiniela */
.pill.off{background:#4b2026;color:#ff9ea9}.pill.neutral{background:#17314a;color:#c6d8e8}.mini-stat{display:block;font-size:11px;color:#a9bfd2}.danger-text{color:#ff9ea9}.action-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.action-row form{margin:0}.compact-btn{width:auto!important;padding:9px 11px!important;font-size:11px}.danger-btn{background:#8f2430!important;color:#fff!important;width:auto!important}.admin-heading-row{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.admin-heading-row h1{margin-bottom:4px}.inline-block-form{display:flex;gap:6px;align-items:center}.tiny-input{min-width:150px;padding:9px 10px!important}.datetime-input{min-width:195px}.deadline-form{display:flex;gap:7px;align-items:center}.join-card form{margin:0}.join-btn{width:auto!important;min-width:104px;padding:10px 13px!important}.disabled-card{opacity:.66}.small-empty{padding:24px 18px}.small-empty div{font-size:30px}.tournament-card small{display:block;margin-top:6px}.admin-panel td small{display:block;color:var(--muted);margin-top:4px}
@media(max-width:760px){.admin-heading-row{display:grid}.inline-block-form,.deadline-form{min-width:360px}.join-card{align-items:center}.join-btn{min-width:92px}.users-table{min-width:980px}}
/* Build 4: dashboard limpio + instalación PWA segura */
.section-title-row{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.section-title-row .section-title{margin:0 2px 10px}.section-title-row>a{font-size:11px;color:#68aaf5;margin-bottom:10px}.my-games-empty{background:linear-gradient(160deg,#0b2137,#091a2b);border:1px solid var(--line);border-radius:15px;padding:30px 18px}.my-games-empty p{max-width:330px;margin:8px auto 18px}.empty-action{max-width:320px;margin:0 auto}.tournament-topbar h1{font-size:17px;line-height:1.15}.topbar-spacer{width:38px;height:38px}.tournament-info h3{margin:9px 0 3px;font-size:20px}.info-list{display:grid;gap:0;margin-top:16px;border:1px solid var(--line);border-radius:13px;overflow:hidden}.info-list>div{display:flex;justify-content:space-between;gap:16px;padding:13px;background:rgba(5,20,34,.55);border-bottom:1px solid var(--line);font-size:12px}.info-list>div:last-child{border-bottom:0}.info-list span{color:#aabed0}.info-list b{text-align:right}.info-note{margin-bottom:0!important;font-size:12px}
.pwa-browser-notice{position:fixed;z-index:10000;left:50%;bottom:18px;transform:translateX(-50%);width:min(520px,calc(100% - 24px));background:rgba(8,29,48,.98);border:1px solid #28587e;border-radius:18px;padding:15px 15px 14px;box-shadow:0 24px 70px rgba(0,0,0,.5);backdrop-filter:blur(18px);display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center}.pwa-browser-notice.is-hidden{display:none}.pwa-notice-icon{font-size:28px}.pwa-notice-copy{display:grid;gap:3px;padding-right:24px}.pwa-notice-copy b{font-size:14px}.pwa-notice-copy span{font-size:11px;line-height:1.4;color:#a9bfd2}.pwa-notice-close{position:absolute;right:10px;top:7px;border:0;background:transparent;color:#b7cadb;font-size:25px;cursor:pointer}.pwa-chrome-btn{grid-column:1/-1;padding:11px}.pwa-install-button{position:fixed;z-index:90;right:14px;bottom:84px;width:auto!important;border-radius:999px!important;padding:11px 15px!important;box-shadow:0 14px 34px rgba(0,0,0,.35)}
/* Build 5: multidporte + admin por quiniela */
.page-intro{margin:2px 2px 16px;line-height:1.5}.card-meta-row{display:flex;gap:10px;flex-wrap:wrap;color:#7f9bb4;font-size:10px;margin-bottom:8px}.available-strip{margin-top:18px;border:1px dashed #28557c;background:#081d31;border-radius:13px;padding:13px 14px;display:flex;justify-content:space-between;align-items:center;font-size:12px}.available-strip b{color:#68aaf5;font-size:11px}.admin-page-lead{max-width:760px;line-height:1.5}.field-block{display:grid;gap:7px}.field-block>span{font-size:12px;color:#b8cada;font-weight:700}.textarea{min-height:96px;resize:vertical}.tennis-only.is-hidden,[data-lock-minutes-wrap].is-hidden{display:none}.toggle-field{display:flex!important;align-items:center;gap:10px;background:#071827;border:1px solid var(--line);border-radius:12px;padding:13px}.toggle-field input{width:18px;height:18px;accent-color:#1476ff}.toggle-field span{margin:0!important}.quinielas-admin-table{min-width:1050px}.admin-tabs{display:flex;gap:8px;overflow:auto;margin:20px 0 0;padding-bottom:2px}.admin-tabs a{white-space:nowrap;padding:10px 14px;border:1px solid var(--line);border-radius:10px;color:#9eb4c7;background:#081a2b}.admin-tabs a.active{background:#0e3b64;color:#fff;border-color:#286594}.quiniela-stats{grid-template-columns:repeat(5,minmax(110px,1fr));margin-top:18px}.add-member-bar{display:grid;grid-template-columns:minmax(220px,420px) auto;gap:8px;align-items:center;margin:16px 0}.admin-ranking{display:grid;border:1px solid var(--line);border-radius:13px;overflow:hidden}.admin-rank-row{display:grid;grid-template-columns:46px 1fr 150px 90px;gap:10px;align-items:center;padding:13px;border-bottom:1px solid var(--line)}.admin-rank-row:last-child{border-bottom:0}.admin-rank-row small{color:var(--muted)}.admin-rank-row strong{text-align:right;color:#ffd36a}.pill:empty{display:none}
@media(max-width:760px){.quiniela-stats{grid-template-columns:1fr 1fr}.add-member-bar{grid-template-columns:1fr}.admin-rank-row{grid-template-columns:38px 1fr auto}.admin-rank-row small{display:none}.admin-tabs{margin-top:14px}.admin-main h1{font-size:24px}}
@media(max-width:420px){.stats span{font-size:10px}.tournament-topbar h1{font-size:15px}.info-list>div{display:grid;gap:4px}.info-list b{text-align:left}}
/* Build 6: biometría / passkeys */
.passkey-login-box{width:min(390px,100%);margin:0 auto 14px}.biometric-btn{background:linear-gradient(180deg,#173b58,#0d2940);border:1px solid #3b6c93;box-shadow:0 10px 30px rgba(0,0,0,.18)}.biometric-btn:disabled,.btn:disabled{opacity:.55;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:10px;margin:12px 0 0;color:#8da5b9;font-size:10px;text-transform:uppercase;letter-spacing:.8px}.login-divider:before,.login-divider:after{content:"";height:1px;flex:1;background:#23425d}.passkey-message{margin:0 0 10px;line-height:1.4;font-size:12px}.passkey-info{background:#0b2942;color:#b7d8f4;border:1px solid #28587e}.account-card{margin-top:0}.account-row{display:flex;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.account-row:last-child{border-bottom:0}.account-row span{color:var(--muted)}.account-row b{text-align:right}.biometric-card h2{font-size:19px;margin:3px 0 0}.biometric-head{display:flex;align-items:center;gap:12px}.biometric-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#0b3558;border:1px solid #286594;font-size:22px}.biometric-privacy{font-size:11px!important;color:#89a8c2!important;background:#071827;border-radius:10px;padding:11px}.passkey-list{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}.passkey-device-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}.passkey-device-row:last-child{border-bottom:0}.passkey-device-row b{display:block;font-size:12px}.passkey-device-row small{display:block;color:var(--muted);margin-top:4px;font-size:10px;line-height:1.4}.mini-danger{border:1px solid #713744;background:#321720;color:#ffabb2;border-radius:9px;padding:8px 10px;font-weight:800;font-size:10px;cursor:pointer}.mini-danger:disabled{opacity:.55}@media(max-width:420px){.account-row{display:grid;gap:4px}.account-row b{text-align:left}.passkey-device-row{align-items:flex-start}}
