.app{min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) 12px max(16px,env(safe-area-inset-bottom));background:#0d1117;color:#e6edf3;display:flex;flex-direction:column;gap:12px}.app a{color:#8ab4ff}.message{align-items:center;justify-content:center;text-align:center;font-size:18px}.narrow{padding-inline:max(12px,calc((100vw - 560px)/2))}.app h1{font-size:22px;margin:4px 0}.stack{display:flex;flex-direction:column;gap:14px}.muted{color:#8b949e;font-size:14px;margin:0;overflow-wrap:anywhere}.card{background:#161b22;border:1px solid #30363d;border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px}.card summary{cursor:pointer}details.card[open] summary{margin-bottom:10px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.badge{font-size:12px;font-weight:700;color:#3fb950;border:1px solid #3fb950;border-radius:999px;padding:2px 8px;white-space:nowrap}.card-score{display:grid;grid-template-columns:1fr auto auto auto 1fr;align-items:center;gap:8px;font-weight:700}.card-team{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-team:first-child{text-align:right}.card-sets{color:#ffc83d}.card-points{font-size:22px;font-variant-numeric:tabular-nums;white-space:nowrap}.card-actions{display:flex;flex-wrap:wrap;gap:8px}.card-actions .btn{min-height:44px}.btn-control{background:#238636;display:inline-flex;align-items:center;padding:0 18px;text-decoration:none}.app a.btn-control{color:#fff}.editors{border-top:1px solid #30363d;padding-top:8px;font-size:14px}.editors summary{cursor:pointer;color:#8b949e}.editor-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;overflow-wrap:anywhere}.editor-row .btn-copy{min-height:40px}.control-top{display:flex;justify-content:space-between;align-items:center;font-size:15px}.status{display:inline-flex;align-items:center;gap:8px;font-weight:600}.status-dot{width:12px;height:12px;border-radius:50%;background:currentColor}.status--ok{color:#3fb950}.status--busy{color:#d29922}.status--bad{color:#f85149}.alert{background:#3d1418;border:1px solid #f85149;color:#ffd7d5;border-radius:10px;padding:10px 12px;font-size:15px}.teams{display:grid;grid-template-columns:1fr 1fr;gap:10px}.team{display:flex;flex-direction:column;gap:8px;padding:10px;background:#161b22;border:1px solid #30363d;border-top:5px solid #30363d;border-radius:14px;min-width:0}.team-label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#8b949e;text-transform:uppercase;letter-spacing:.04em}.team-name{width:100%;font-size:17px;font-weight:700;padding:10px;border-radius:8px;border:1px solid #30363d;background:#0d1117;color:#e6edf3}.control-links{display:flex;gap:16px}.app a.btn-link{display:inline-flex;align-items:center;padding:0 16px;color:#fff;text-decoration:none}.vista-preview{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;border:1px solid #30363d;background:linear-gradient(90deg,transparent 49.6%,rgba(255,255,255,.7) 49.6% 50.4%,transparent 50.4%),linear-gradient(160deg,#c98a4e,#a5683a)}.vista-preview iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;background:transparent}.vista-controls{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}.anchor-grid{display:grid;grid-template-columns:repeat(3,52px);gap:6px;margin-top:6px}.anchor-btn{height:52px;border-radius:10px;border:1px solid #30363d;background:#161b22;color:#e6edf3;font-size:22px;cursor:pointer;touch-action:manipulation}.anchor-btn.is-selected{background:#1f6feb;border-color:#8ab4ff}.vista-steppers{display:flex;flex-direction:column;gap:12px}.stepper{display:grid;grid-template-columns:52px 1fr 52px;gap:6px;margin-top:6px}.stepper .btn{min-height:48px;font-size:24px}.stepper-value{display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.team-identity{position:relative;display:flex;flex-direction:column;gap:4px}.team-identity-row{display:flex;gap:6px}.team-identity-row .team-name{flex:1;min-width:0}.team-name--static{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-options-btn{flex:0 0 auto;padding:0 10px;border-radius:8px;border:1px solid #8ab4ff;background:#0d1117;color:#8ab4ff;font:inherit;font-size:14px;font-weight:700;cursor:pointer}.team-options-btn[aria-expanded=true]{background:#1f3a64;color:#fff}.team-popover{position:absolute;top:100%;left:-4px;right:-4px;z-index:20;margin-top:6px;padding:10px;display:flex;flex-direction:column;gap:8px;max-height:70dvh;overflow-y:auto;background:#1c2128;border:1px solid #8ab4ff;border-radius:12px;box-shadow:0 10px 30px #0009}.team-popover-done{justify-content:center;min-height:44px}.color-swatch{width:32px;height:32px;border-radius:8px;border:1px solid #8b949e;flex:0 0 auto}.color-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.color-option{aspect-ratio:1;border-radius:6px;border:2px solid rgba(255,255,255,.15);cursor:pointer;padding:0}.color-title{margin:4px 0;font-size:12px;color:#8b949e;text-transform:uppercase;letter-spacing:.04em}.color .btn-copy{min-height:40px}.color-option.is-selected{border-color:#fff;box-shadow:0 0 0 2px #3fb950}.color-exact{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px}.color-exact input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.crest-current{width:100%;display:flex;align-items:center;gap:10px;padding:6px 10px;min-height:52px;border-radius:8px;border:1px dashed #30363d;background:transparent;color:#8b949e;font:inherit;font-size:14px;cursor:pointer}.crest-current img{width:40px;height:40px;object-fit:contain}.crest-edit{margin-left:auto;color:#8ab4ff;font-weight:700}.crest-panel{display:flex;flex-direction:column;gap:8px;margin-top:8px}.crest-upload{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px}.crest-upload input{position:absolute;inset:0;opacity:0;cursor:pointer}.crest-upload.is-busy{opacity:.6}.crest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;max-height:180px;overflow-y:auto}.crest-option{aspect-ratio:1;padding:4px;border-radius:8px;border:2px solid #30363d;background:#0d1117;cursor:pointer}.crest-option.is-selected{border-color:#3fb950}.crest-option img{width:100%;height:100%;object-fit:contain}.team-points{font-size:72px;font-weight:800;text-align:center;line-height:1;font-variant-numeric:tabular-nums}.team-sets{text-align:center;font-size:16px;color:#ffc83d}.team-sets strong{font-size:22px}.team-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.team-status{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:34px}.serve-btn{font:inherit;font-size:13px;font-weight:700;padding:6px 10px;border-radius:999px;border:1px solid #30363d;background:transparent;color:#8b949e;cursor:pointer;touch-action:manipulation}.serve-btn.is-serving{background:#ffc83d;border-color:#ffc83d;border-radius:6px;color:#0b0f17;font-size:11px;font-weight:800;letter-spacing:.04em;padding:4px 6px}.team-points.is-serving{position:relative;isolation:isolate}.team-points.is-serving:before{content:"";position:absolute;left:50%;top:50%;width:84px;height:84px;transform:translate(-50%,-50%);z-index:-1;background:url(/serve-ball.png) center / contain no-repeat;opacity:.35}.point-badge{font-size:11px;font-weight:800;letter-spacing:.04em;color:#0b0f17;background:#ff7b72;border-radius:6px;padding:4px 6px;white-space:nowrap}.timeout-live{font:inherit;font-size:12px;white-space:nowrap;font-weight:800;color:#fff;background:#8957e5;border:0;border-radius:6px;padding:5px 8px;cursor:pointer;font-variant-numeric:tabular-nums}.team-row--3{grid-template-columns:1fr 1fr 1fr}.btn-timeout{background:#3b2a63;font-size:14px;min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.btn-timeout small{font-size:11px;opacity:.85}.match-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#1f2a3a;border:1px solid #ffc83d;border-radius:10px;padding:8px 10px;font-size:15px;font-weight:700}.match-banner .btn{min-height:40px;padding:0 12px;font-size:14px;background:#30363d}.match-banner--over{border-color:#3fb950}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:16px}.modal{width:min(420px,100%);background:#161b22;border:1px solid #30363d;border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:14px;text-align:center}.modal h2{margin:0;font-size:20px}.modal p{margin:0;font-size:17px}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions .btn{min-height:56px;font-size:17px}.clock-bar{position:relative;display:flex;align-items:center;gap:8px;background:#161b22;border:1px solid #30363d;border-radius:10px;padding:6px 8px}.clock-time{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;min-width:70px}.clock-mode{font-size:12px;color:#8b949e}.clock-bar .btn{min-height:40px;min-width:44px;padding:0 10px;font-size:16px;background:#30363d}.clock-bar .clock-spacer{flex:1}.clock-settings{position:absolute;top:100%;right:0;z-index:20;margin-top:6px;width:min(300px,calc(100vw - 32px));background:#1c2128;border:1px solid #8ab4ff;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 10px 30px #0009}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:6px}.segmented .btn.is-selected{background:#1f6feb}.presets{display:flex;flex-wrap:wrap;gap:6px}.presets .btn{flex:1 0 auto}.check-row{display:flex;align-items:center;gap:8px;font-size:15px}.check-row input{width:22px;height:22px}.rules{border-top:1px solid #30363d;padding-top:12px}.rules summary{cursor:pointer;color:#8b949e;font-size:14px}.rules-grid{display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:center;margin-top:10px;font-size:15px}.rules-grid input{width:72px;font-size:17px;padding:6px 8px;border-radius:8px;border:1px solid #30363d;background:#0d1117;color:#e6edf3;text-align:center}.btn{font:inherit;font-weight:700;border:0;border-radius:12px;color:#fff;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.btn:active:not(:disabled){transform:scale(.97);filter:brightness(1.2)}.btn:disabled{opacity:.35}.btn-add{background:#238636;font-size:32px;min-height:88px}.btn-sub{background:#6e2c2c;font-size:20px;min-height:52px}.btn-set{background:#5a4a12;font-size:17px;min-height:52px}.btn-undo{background:#1f6feb;font-size:20px;min-height:60px}.control-resets{display:grid;grid-template-columns:1fr 1fr;gap:10px}.btn-reset{background:#30363d;font-size:15px;min-height:48px;padding:6px 8px}.btn-reset--armed{background:#b62324;font-size:13px}.links{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding-top:12px;border-top:1px solid #30363d}.link{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#8b949e}.link-row{display:flex;gap:6px}.link-row input{flex:1;min-width:0;font-size:16px;padding:8px;border-radius:8px;border:1px solid #30363d;background:#0d1117;color:#e6edf3}.btn-copy{background:#30363d;padding:0 14px;font-size:15px}.sb{--sb-height: 8vw;--sb-radius: .7vw;--sb-panel: rgba(8, 12, 20, .85);--sb-sets-bg: rgba(20, 28, 42, .92);--sb-sets-text: #ffc83d;--sb-points-bg: #f4f6f8;--sb-points-text: #0b0f17;--sb-name-text: #ffffff;display:flex;gap:.5vw;width:100vw;padding:.5vw;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.sb-side{flex:1 1 0;min-width:0;display:flex;height:var(--sb-height);border-radius:var(--sb-radius);overflow:hidden;background:var(--sb-panel)}.sb-name{flex:1 1 auto;min-width:0;display:flex;align-items:center;padding:0 1.6vw;color:var(--sb-name-text);font-size:3.4vw;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 .12vw .5vw rgba(0,0,0,.75)}.sb-side--home .sb-name{justify-content:flex-end}.sb-name-text{display:inline-block;white-space:nowrap;line-height:1}.sb-crest{flex:0 0 auto;width:var(--sb-height);display:flex;align-items:center;justify-content:center}.sb-crest img{max-width:78%;max-height:78%;object-fit:contain}.sb-sets,.sb-points{flex:0 0 auto;display:flex;align-items:center;justify-content:center}.sb-sets{width:6vw;background:var(--sb-sets-bg);color:var(--sb-sets-text);font-size:4vw}.sb-points{width:10vw;background:var(--sb-points-bg);color:var(--sb-points-text);font-size:5.8vw}.sb-points.is-serving{position:relative;isolation:isolate}.sb-points.is-serving:before{content:"";position:absolute;inset:6%;z-index:-1;background:url(/serve-ball.png) center / contain no-repeat;opacity:.4}.styles-page{min-height:100vh;padding:1vw 0 3vw;background:linear-gradient(160deg,#c98a4e,#a5683a);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.styles-page h2{margin:2vw 1vw .5vw;color:#fff;font-size:max(16px,1.6vw);text-shadow:0 1px 3px rgba(0,0,0,.6)}.styles-page h2 span{font-weight:400;opacity:.85}.sb--exterior .sb-side--home.sb-side--colored{background:linear-gradient(90deg,var(--team-color) 0 .8vw,transparent .8vw),linear-gradient(90deg,var(--team-color) 0%,transparent 70%),var(--sb-panel)}.sb--exterior .sb-side--away.sb-side--colored{background:linear-gradient(270deg,var(--team-color) 0 .8vw,transparent .8vw),linear-gradient(270deg,var(--team-color) 0%,transparent 70%),var(--sb-panel)}.sb--interior .sb-side--home.sb-side--colored{background:linear-gradient(270deg,var(--team-color) 45%,transparent 100%),var(--sb-panel)}.sb--interior .sb-side--away.sb-side--colored{background:linear-gradient(90deg,var(--team-color) 45%,transparent 100%),var(--sb-panel)}.sb--diagonal .sb-side--home.sb-side--colored{background:linear-gradient(110deg,var(--team-color) 0 30%,transparent calc(30% + 1px)),var(--sb-panel)}.sb--diagonal .sb-side--away.sb-side--colored{background:linear-gradient(250deg,var(--team-color) 0 30%,transparent calc(30% + 1px)),var(--sb-panel)}.sb--brillo .sb-side--home.sb-side--colored{background:linear-gradient(120deg,var(--team-color) 0%,transparent 65%),var(--sb-panel)}.sb--brillo .sb-side--away.sb-side--colored{background:linear-gradient(240deg,var(--team-color) 0%,transparent 65%),var(--sb-panel)}.sb--solido .sb-side--colored{background:linear-gradient(#00000047,#00000047),var(--team-color)}.sb--franja .sb-side--colored{box-shadow:inset 0 -.6vw 0 var(--team-color)}.sb--franja .sb-side--home.sb-side--colored{background:linear-gradient(90deg,var(--team-color) 0 1.2vw,transparent 1.2vw),var(--sb-panel)}.sb--franja .sb-side--away.sb-side--colored{background:linear-gradient(270deg,var(--team-color) 0 1.2vw,transparent 1.2vw),var(--sb-panel)}.ex{display:grid;align-items:center;width:100vw;padding:0 .5vw;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.ex--top{grid-template-columns:1fr 9.6vw 1fr;height:3.6vw;margin-bottom:.4vw}.ex--bottom{grid-template-columns:1fr 10vw .5vw 10vw 1fr;height:3vw;margin-top:.4vw}.ex-badges{display:flex;align-items:center;gap:.5vw;height:100%}.ex-badges--home{justify-content:flex-end}.ex-badges--away{justify-content:flex-start}.ex-badge{padding:.6vw 1vw;border-radius:.5vw;font-size:1.5vw;letter-spacing:.06em;white-space:nowrap}.ex-badge--serve{background:#ffc83d;color:#0b0f17}.ex-badge--point{background:#ff3b30;color:#fff}.ex-clock-slot{display:flex;justify-content:center}.ex-clock{padding:.6vw 1.4vw;border-radius:.5vw;background:#080c14d9;color:#fff;font-size:2.2vw}.ex-dots-slot{display:flex;justify-content:center}.ex-timeouts{display:flex;gap:.5vw;padding:.5vw .8vw;border-radius:999px;background:#080c14d9}.ex-dot{width:1.1vw;height:1.1vw;border-radius:50%;border:.18vw solid #ffc83d}.ex-dot.is-used{background:#ffc83d}.ex-live{display:flex;padding:0 .6vw}.ex-live--home{justify-content:flex-end}.ex-live--away{justify-content:flex-start}.ex-timeout-live{padding:.6vw 1vw;border-radius:.5vw;background:#8957e5;color:#fff;font-size:1.6vw;white-space:nowrap}.stage{position:fixed;inset:0;overflow:hidden;pointer-events:none}.stage-item{position:absolute;width:100vw}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:transparent}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}
