@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Outfit:wght@400;500;600;700;800;900&display=swap');
:root{color-scheme:dark;--bg:#071622;--panel:#102331;--panel2:#0c1e2a;--line:#28414d;--sub:#a7bac1;--white:#f5fafb;--aqua:#2fe1cc;--orange:#faa775;--red:#ef9393;--max:1240px;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:'DM Sans',system-ui,-apple-system,Arial,sans-serif;line-height:1.48}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit}input,select{min-width:0}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--aqua);outline-offset:3px}.container{max-width:var(--max);padding:0 25px;margin:auto}.site-header{background:#091925;border-bottom:1px solid #1a3440;position:sticky;top:0;z-index:50;backdrop-filter:blur(20px)}.header-inner{min-height:82px;display:flex;gap:26px;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap}.brand img{width:48px;height:48px;object-fit:contain}.brand strong{font:800 24px 'Outfit',sans-serif;letter-spacing:.025em}.brand em{font-style:normal;color:var(--aqua)}.brand small{display:block;color:#aac5ca;font-size:9px;letter-spacing:.21em;font-weight:800}.desktop-nav{display:flex;align-items:center;gap:5px}.desktop-nav button,.section-tabs button{border:0;background:none;color:#b5c9cd;padding:11px 13px;border-radius:9px;font-size:13px;font-weight:700}.desktop-nav button.active,.desktop-nav button:hover{color:var(--aqua);background:#14323d}.header-actions{display:flex;align-items:center;gap:10px}.live-indicator{display:flex;align-items:center;gap:8px;color:#9bbac0;font-size:10px;letter-spacing:.12em;font-weight:800}.live-indicator i,.eyebrow span{display:inline-block;width:7px;height:7px;background:var(--aqua);border-radius:50%;box-shadow:0 0 0 4px rgba(47,225,204,.08)}.header-install{border:1px solid var(--aqua);background:transparent;color:var(--aqua);border-radius:8px;padding:8px 10px;font-size:12px;font-weight:800}.hero{margin:28px 0 62px;border-radius:20px;min-height:466px;overflow:hidden;display:grid;grid-template-columns:1fr .87fr;background:radial-gradient(circle at 80% 22%,#134d54 0,transparent 45%),linear-gradient(112deg,#0d2937,#0a1d2c 64%,#102f38);border:1px solid #2b535c}.hero-text{padding:62px 52px;z-index:2}.eyebrow{display:flex;align-items:center;gap:11px;font-weight:800;font-size:11px;letter-spacing:.17em;color:var(--aqua)}.eyebrow.plain{display:block;font-size:10px}.hero h1{font:800 clamp(43px,5.2vw,74px)/.99 'Outfit',sans-serif;letter-spacing:-.045em;margin:21px 0}.hero h1 span{color:var(--aqua)}.hero p{max-width:460px;color:#c2d6db;font-size:15px;line-height:1.75}.hero-buttons{display:flex;align-items:center;gap:12px;margin-top:30px;flex-wrap:wrap}.btn{border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:12px 18px;font-size:13px;font-weight:800;border:1px solid transparent;text-decoration:none;min-height:42px}.btn-primary{background:var(--aqua);color:#06232a}.btn-primary:hover{background:#9afaf0}.btn-ghost{border-color:#4b6670;color:#e1eef0;background:#102b35}.btn-ghost:hover{background:#1b3b45}.btn-danger{border:1px solid #a86164;color:#ffb8ba;background:#411e26}.btn-small{padding:9px 12px;min-height:34px;font-size:12px}.hero-foot{display:flex;gap:20px;flex-wrap:wrap;margin-top:43px;color:#8caeb6;letter-spacing:.08em;font-size:10px;font-weight:800}.hero-art{position:relative;min-height:400px;overflow:hidden}.sports-watermark{position:absolute;top:-35px;right:-35px;color:#ffffff08;font:900 150px 'Outfit',sans-serif;letter-spacing:-.09em;transform:rotate(-12deg)}.court{position:absolute;width:310px;height:235px;right:45px;top:65px;border:3px solid rgba(124,235,215,.75);transform:rotate(-22deg) skew(10deg,5deg);box-shadow:16px 23px 0 #05272d,16px 23px 30px #0006;background:repeating-linear-gradient(90deg,#12535a,#12535a 2px,#155a60 4px);opacity:.85}.court:before{content:'';position:absolute;inset:11px;border:1px solid #8be4ce77}.court-line{position:absolute;background:#acecde}.court-line.length{height:2px;left:0;right:0;top:50%}.court-line.divider{width:2px;top:0;bottom:0;left:50%}.court-line.width-a,.court-line.width-b{height:2px;left:0;right:0;top:25%}.court-line.width-b{top:75%}.net{position:absolute;left:-5px;right:-5px;top:48.5%;height:8px;background:#072c36;box-shadow:0 1px #b5e9df}.ball{position:absolute;top:37%;right:25%;border-radius:50%;width:14px;height:14px;background:#f5c75b;box-shadow:0 0 17px #f5c75b}.art-tag{position:absolute;bottom:30px;right:33px;background:#061f2ccf;border:1px solid #367b80;border-radius:14px;padding:17px 22px;min-width:175px}.art-tag>span{font-size:9px;color:var(--aqua);font-weight:800;letter-spacing:.13em}.art-tag strong{display:block;font:900 38px/.86 'Outfit',sans-serif;margin-top:8px;letter-spacing:-.06em}.art-tag strong span{color:var(--orange)}.section-heading{display:flex;gap:20px;align-items:end;justify-content:space-between;margin-bottom:25px;scroll-margin-top:120px}.section-heading h2{font:800 clamp(26px,3vw,38px) 'Outfit',sans-serif;margin:8px 0 5px;letter-spacing:-.035em}.section-heading p{color:var(--sub);margin:0;font-size:13px}.session-selector{min-width:290px}.session-selector label{font-size:10px;letter-spacing:.15em;font-weight:800;color:var(--aqua)}.selector-row{display:flex;gap:8px;margin-top:7px}.selector-row select{flex:1}.selector-row select,.control select,.field,.branding input,.modal input,.slot-select,.filter-row select{background:#102938;border:1px solid #36505d;color:white;border-radius:9px;padding:10px 12px}.round-plus{border:1px solid var(--aqua);background:#154044;color:var(--aqua);border-radius:9px;width:43px;font-size:22px}.quick-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:22px}.stat{background:var(--panel);border:1px solid #233f4a;border-radius:14px;padding:17px 21px}.stat strong{font:700 37px 'Outfit';display:block;margin:4px 0 0}.stat small{display:block;color:#9db9c0;font-size:11px}.stat-label{color:var(--aqua);font-size:10px;font-weight:800;letter-spacing:.15em}.section-tabs{background:#10232f;padding:7px;display:flex;border:1px solid var(--line);border-radius:12px;gap:8px;margin-bottom:20px;overflow:auto}.section-tabs button{white-space:nowrap;flex:1;border-radius:9px}.section-tabs button span{font-size:17px;margin-right:6px}.section-tabs button.active{background:var(--aqua);color:#092b31}.panel{padding:24px;border-radius:var(--radius);border:1px solid #254351;background:#0d202d;margin-bottom:17px}.grid2{display:grid;grid-template-columns:1.15fr .85fr;gap:17px}.panel h3,.panel h2{font:700 23px 'Outfit';margin:0 0 7px}.panel p{color:#afc4cc;font-size:13px;margin:0 0 20px}.between{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.muted-tag{font-size:11px;background:#183544;color:#a0c4c8;padding:7px 10px;border-radius:15px;font-weight:800}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.control{display:grid;gap:7px}.control label{font-size:11px;font-weight:800;color:#a5c2c9}.notice{color:#a8cbd0;font-size:12px;border-radius:10px;padding:13px 15px;background:#102e38;border:1px solid #27515d;margin:14px 0}.notice.warn{background:#30291d;color:#f1cda9;border-color:#6b4d35}.notice b{color:#d9f9f2}.action-row{display:flex;gap:9px;flex-wrap:wrap;margin:13px 0}.match-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:12px}.match-card{border:1px solid #2b5660;background:#12313d;border-radius:14px;padding:17px}.match-top{display:flex;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.13em;color:var(--aqua)}.match-teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;text-align:center;gap:7px;min-height:110px}.team-names{font:700 16px 'Outfit';overflow-wrap:anywhere}.team-names small{display:block;font:700 10px 'DM Sans';color:#93b4bd;letter-spacing:.08em;margin-bottom:8px}.versus{color:#90aeb5;font-weight:800;font-size:11px}.match-editor{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:12px 0;border-top:1px solid #315662;padding-top:12px}.match-editor label{font-size:10px;color:#bcd7dd}.slot-select{width:100%;font-size:12px;padding:7px;margin-top:4px}.score-controls{border-top:1px solid #2d5159;padding-top:12px;margin-top:9px;display:grid;gap:8px}.score-controls label{color:#b9d2d7;font-size:11px}.score-controls select{width:100%;background:#0b2431;border:1px solid #3b5f6b;color:white;padding:10px;border-radius:8px}.bench{font-size:12px;color:#abc3c8;padding:12px 0}.ranking-wrap{overflow-x:auto}.rank-table{width:100%;border-collapse:collapse;min-width:540px;text-align:left}.rank-table th{font-size:10px;letter-spacing:.09em;color:#8baab2;border-bottom:1px solid #34515d;padding:11px 9px}.rank-table td{border-bottom:1px solid #263e49;padding:13px 9px;font-size:13px}.rank-table tr:first-child td{color:#defef8}.rank-table td:first-child{font:700 17px 'Outfit';color:var(--aqua)}.rank-table td.points{font:800 21px 'Outfit';color:var(--aqua)}.rank-table .player-name{font-weight:800}.winner-label{color:var(--aqua);font-size:9px;padding:2px 7px;border-radius:8px;border:1px solid #35836f;margin-left:7px}.filters,.filter-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.filter-row{margin:15px 0}.filter-row label{font-size:12px;color:#c4d9df;font-weight:700}.filter-row select{min-width:175px}.rank-mini{display:grid;gap:7px}.rank-mini-row{display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;padding:12px 10px;background:#12303c;border-radius:10px}.rank-mini-row b{color:var(--aqua);font:800 21px 'Outfit'}.rank-mini-row span{font-weight:700}.rank-mini-row strong{font:800 23px 'Outfit';color:var(--aqua)}.rank-mini-row strong small{font-size:10px;color:#9db6bd}.empty{text-align:center;padding:34px;color:#a6c3cc;background:#112734;border:1px dashed #32505e;border-radius:12px;font-size:13px}.history-item{display:grid;grid-template-columns:80px 1fr auto auto;align-items:center;gap:15px;border-bottom:1px solid #234350;padding:15px 0}.history-item:last-child{border:0}.history-no{font-size:10px;color:var(--aqua);font-weight:800}.history-no b{display:block;color:white;font:700 19px 'Outfit'}.history-item .teams b{font-size:13px;display:block}.history-item .teams small{font-size:11px;color:#aac2ca}.history-item .result{font:700 17px 'Outfit';white-space:nowrap}.icon-btn{border:1px solid #35525f;background:#1b3542;color:#bfd5db;border-radius:8px;padding:7px 9px}.player-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:19px}.player-card{background:#122d39;border:1px solid #34505b;border-radius:12px;padding:15px;display:flex;align-items:center;gap:10px}.player-card.off{opacity:.53}.avatar{height:38px;width:38px;display:grid;place-items:center;border-radius:10px;color:#09313a;background:var(--aqua);font:800 14px 'Outfit';flex-shrink:0}.player-card .name{font-size:13px;font-weight:800;flex:1;overflow-wrap:anywhere}.player-card .player-actions{display:flex;gap:4px}.player-card button{padding:5px 6px;border:0;background:#20404c;border-radius:6px;color:white;font-size:12px}.add-player{display:flex;gap:9px;margin-top:18px;flex-wrap:wrap}.add-player input{flex:1;min-width:180px}.branding{display:grid;grid-template-columns:1fr 1fr;gap:16px}.upload-label{display:flex;align-items:center;gap:8px;padding:15px;border:1px dashed #52727b;border-radius:11px;cursor:pointer;font-size:13px}.upload-label input{max-width:100%;font-size:11px}.brand-preview{display:flex;align-items:center;gap:15px;min-height:90px}.brand-preview img{max-width:110px;max-height:72px;object-fit:contain}.export-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.export-card{border:1px solid #36535e;border-radius:13px;background:#14303b;padding:21px}.export-card h4{font:700 21px 'Outfit';margin:0 0 8px}.export-card p{font-size:12px}.export-card .btn{margin-top:8px}.muted{color:#a6c1c8;font-size:12px}.statement{margin:65px 0 45px;position:relative;overflow:hidden;border-radius:16px;padding:36px 45px;background:linear-gradient(105deg,#13333f,#0a1d2a);border:1px solid #284753;display:flex;align-items:center;justify-content:space-between}.statement h2{font:800 47px/.98 'Outfit';margin:12px 0}.statement p{color:#bad0d4}.statement img{width:170px;height:170px;object-fit:contain;opacity:.55}.footer-inner{border-top:1px solid #263d49;padding-top:25px;padding-bottom:35px;display:flex;justify-content:space-between;color:#9cb9c0}.footer-inner b{color:white;font:800 21px 'Outfit'}.footer-inner b span{color:var(--aqua)}.footer-inner p{font-size:12px}.footer-small{text-align:right;font-size:11px;line-height:1.9}.footer-small a{color:var(--aqua);text-decoration:none}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:150;max-width:90vw;padding:13px 22px;background:var(--aqua);color:#082831;font-weight:800;border-radius:12px;box-shadow:0 14px 30px #0007;font-size:13px}#toast[hidden]{display:none}.modal{border:1px solid #375966;border-radius:18px;background:#0e2633;color:white;max-width:min(460px,94vw);width:100%;padding:28px;box-shadow:0 30px 85px #000a}.modal::backdrop{background:#000a;backdrop-filter:blur(4px)}.modal h2{font:700 27px 'Outfit';margin:10px 0 22px}.modal form{display:grid;gap:9px}.modal label{font-size:12px;font-weight:700;color:#b0c9ce}.modal input{margin-bottom:10px}.modal-head{display:flex;justify-content:space-between;align-items:center}.close{border:0;background:none;color:#bfd5d8;font-size:30px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.hidden{display:none!important}.detail-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.month-pills{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.month-pill{border-radius:9px;background:#183745;border:1px solid #345967;color:#cde2e6;padding:9px 13px}.month-pill.active{background:var(--aqua);color:#083039;border-color:var(--aqua);font-weight:800}.session-list{display:grid;gap:10px}.session-item{border:1px solid #35535f;border-radius:12px;padding:15px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;background:#122c38}.session-item b{font-size:14px}.session-item p{font-size:11px;margin:3px 0 0}.print-hint{color:#8fa9b2;font-size:11px}.helper-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nowrap{white-space:nowrap}
@media(max-width:1020px){.desktop-nav{display:none}.hero-text{padding:45px 32px}.court{transform:scale(.8) rotate(-22deg) skew(10deg,5deg);right:-6px}.hero-foot{gap:12px}.grid2{grid-template-columns:1fr}.header-actions .live-indicator{display:none}}
@media(max-width:680px){.container{padding:0 14px}.header-inner{min-height:68px}.brand img{width:41px;height:41px}.brand strong{font-size:19px}.brand small{font-size:8px}.hero{grid-template-columns:1fr;margin:16px 0 40px}.hero-text{padding:33px 24px 24px}.hero h1{font-size:52px}.hero-art{min-height:230px}.court{width:240px;height:155px;top:24px;right:37px;transform:rotate(-22deg) skew(10deg,5deg)}.art-tag{bottom:11px;right:11px;padding:9px 13px;min-width:125px}.art-tag strong{font-size:26px}.hero-foot{margin-top:25px;font-size:8px}.section-heading{align-items:stretch;flex-direction:column}.session-selector{min-width:0}.quick-stats{grid-template-columns:repeat(2,1fr)}.stat{padding:13px}.stat strong{font-size:29px}.section-tabs{margin-left:-14px;margin-right:-14px;border-radius:0;position:sticky;top:68px;z-index:20}.section-tabs button{font-size:11px;padding:9px}.section-tabs button span{display:none}.panel{padding:17px}.control-grid,.branding,.export-cards{grid-template-columns:1fr}.history-item{grid-template-columns:52px 1fr auto;gap:8px}.history-item .result{grid-column:3}.history-item .icon-btn{grid-column:3;justify-self:end}.statement{padding:24px}.statement h2{font-size:37px}.statement img{width:95px;height:95px}.footer-inner{flex-direction:column;gap:12px}.footer-small{text-align:left}.modal{padding:20px}.match-grid{grid-template-columns:1fr}}

/* CORAL Sports v3 — Calendario cerrado / Fair Play */
.brand small{letter-spacing:.045em;color:#c5e6e7;font-size:10px;font-weight:700}
.control-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.control select:disabled{opacity:.62;cursor:not-allowed}
.round-progress{height:9px;background:#173542;border-radius:100px;overflow:hidden;margin:16px 0 20px;border:1px solid #2d4d5b}
.round-progress span{height:100%;display:block;background:linear-gradient(90deg,#24b4ca,#2fe1cc);transition:width .3s}
.fair-card{background:linear-gradient(110deg,#08342f,#122d38);border:1px solid #1e716c;color:#e2f6f2;padding:14px 15px;border-radius:12px;display:grid;gap:5px;font-size:13px;margin-bottom:17px}
.fair-card strong{color:#48f4d1;font:800 16px 'Outfit',sans-serif}
.fair-card small{color:#aad0cf;font-size:11px}
.finish-box{text-align:center;border:1px solid #2d746c;background:#0c3635;padding:27px 16px;border-radius:14px;margin-top:19px}
.finish-box h3{font:800 29px 'Outfit';margin:11px 0}
.finish-box p{max-width:480px;margin:0 auto 18px}
@media(max-width:680px){.control-grid.three{grid-template-columns:1fr}}

/* CORAL Sports 4.0 · configuración inteligente y sugerencias */
.control-grid.four{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.control-grid.four .control label{font-size:10px;letter-spacing:.07em}
.control-grid.four .control select{width:100%;font-size:12px;padding:11px 8px}
.suggestion-card{border:1px solid #168e89;background:linear-gradient(115deg,#073a3c,#0d2938);border-radius:14px;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:15px;box-shadow:inset 0 0 24px #15d1c006;margin-bottom:14px}
.suggestion-card>div:first-child{display:grid;gap:7px}
.suggestion-eyebrow{color:#48ffe0;font-size:10px;font-weight:900;letter-spacing:.12em}
.suggestion-card strong{font-size:16px;line-height:1.35;color:#f4ffff}
.suggestion-card strong span{color:#38cbbf;margin:0 3px}
.suggestion-card small,.tiny-guide{color:#b7d4d7;font-size:11px;line-height:1.55}
.suggestion-count{min-width:100px;text-align:center;padding:8px 13px;background:#062b35;border-radius:11px}
.suggestion-count b{display:block;font:900 31px 'Outfit',sans-serif;color:#49ffe2;line-height:1.1}
.suggestion-count span{font-size:9px;letter-spacing:.08em;color:#bcdee0;font-weight:800}
.tiny-guide{margin-bottom:13px;padding:0 3px}
@media(max-width:960px){.control-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.control-grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.suggestion-card{padding:13px;gap:10px}.suggestion-card strong{font-size:13px}.suggestion-count{min-width:80px;padding:8px}.suggestion-count b{font-size:26px}.hero h1{font-size:44px}}

/* CORAL Sports v5 · Identidad oficial elegida */
.hero-art{isolation:isolate;display:grid;place-items:center}
.hero-logo-panel{z-index:4;position:relative;width:min(82%,390px);padding:17px 19px 12px;border:1px solid rgba(216,250,252,.85);border-radius:23px;background:linear-gradient(160deg,#ffffff 2%,#eefaff 76%,#ddf3f4 100%);box-shadow:0 28px 75px #0008,0 0 45px #39e0d129;transform:translateY(2px)}
.hero-logo-panel img{display:block;width:100%;height:auto;object-fit:contain;filter:contrast(1.08)}
.hero-art .court{opacity:.20;filter:blur(1px)}
.hero-art .sports-watermark{opacity:.55}
.statement img{opacity:.9;filter:drop-shadow(0 3px 15px #2fe1cc3a)}
.brand-preview>img{object-fit:contain}
@media(max-width:1020px){.hero-logo-panel{width:min(87%,350px)}}
@media(max-width:680px){.hero-art{min-height:290px}.hero-logo-panel{width:min(74%,300px);padding:12px 15px 8px}.hero-art .court{right:35px;top:52px;opacity:.13}}
