:root{
  --bg:#07101e; --card:#0f1b2d; --card2:#13233a; --text:#f7fbff; --muted:#94a8c3;
  --blue:#079cff; --blue-deep:#082a4b; --red:#f12b38; --red-deep:#6f0c15;
  --line:#203550; --danger:#ef5555; --ok:#25c27a; --ball:#ffd63d;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at top,#13243b 0,#07101e 48%,#040a13 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body{min-height:100vh}.app-shell{width:min(980px,100%);margin:auto;padding:18px 18px calc(22px + env(safe-area-inset-bottom))}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 2px 20px;gap:14px}.brand{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:900;letter-spacing:-.5px}.brand-icon{width:64px;height:auto;display:inline-block;filter:drop-shadow(0 6px 14px rgba(0,0,0,.28))}.version{font-size:12px;color:var(--muted);margin-top:2px;padding-left:4px}.screen{display:none}.screen.active{display:block}.card{background:linear-gradient(180deg,rgba(20,37,61,.96),rgba(12,25,42,.96));border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 18px 50px rgba(0,0,0,.24)}.hero{margin-bottom:18px}.hero h1,.result-card h1,.history-head h1{margin:6px 0 8px;font-size:clamp(29px,5vw,44px);line-height:1}.hero p{margin:0;color:var(--muted)}.eyebrow{font-size:11px;font-weight:900;letter-spacing:1.7px;color:#7fcfff}.grid.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.team-card h2{margin-top:0}.team-a{border-top:3px solid var(--blue)}.team-b{border-top:3px solid var(--red)}label{display:block;color:#b8c7da;font-size:13px;font-weight:700;margin:12px 0 0}.optional{font-weight:500;color:#7288a3;font-size:11px}input,select{width:100%;margin-top:7px;border:1px solid #29425f;background:#091422;color:white;border-radius:13px;padding:13px;font-size:16px;outline:none}input::placeholder{color:#5e7390}input:focus,select:focus{border-color:#5fbfff}.settings{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:16px 0}.primary,.secondary,.danger,.ghost{border:0;border-radius:15px;font-weight:900;cursor:pointer}.primary{background:linear-gradient(135deg,#0aa2ff,#2777ff);color:white}.big{width:100%;font-size:18px;padding:17px}.secondary{background:#152942;color:#eaf5ff;padding:14px 18px;border:1px solid #29415f}.danger{background:var(--danger);color:white;padding:14px 18px}.danger.outline{width:100%;margin-top:18px;background:transparent;border:1px solid #6c3339;color:#ff8c8c}.ghost{background:#102038;color:#cfe7ff;padding:10px 14px;border:1px solid #29415f}.hint{font-size:12px;color:#7690ad;text-align:center;line-height:1.5}.match-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.match-meta>div:first-child{display:flex;gap:12px;align-items:center}.match-meta span{font-size:13px;color:#9db1ca;font-weight:900}.match-meta strong{font-size:18px}.serve-legend{display:flex;align-items:center;gap:7px;color:#8095af;font-size:11px;font-weight:700}.scoreboard{display:grid;grid-template-columns:1fr 150px 1fr;gap:12px;align-items:stretch}.score-team{position:relative;min-height:440px;border:1px solid rgba(255,255,255,.12);border-radius:26px;color:white;padding:58px 20px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 18px 50px rgba(0,0,0,.22);touch-action:manipulation;overflow:hidden}.score-team:active{transform:scale(.988)}.score-team.a{background:radial-gradient(circle at top,#075c94 0,#0a3c67 42%,#071d32 100%)}.score-team.b{background:radial-gradient(circle at top,#ed3340 0,#b51624 38%,#650b14 100%)}.names{font-size:clamp(15px,2.4vw,21px);font-weight:850;text-align:center;min-height:48px}.point{font-size:clamp(86px,14vw,152px);font-weight:950;line-height:.95;margin:25px 0 18px;letter-spacing:-7px;text-shadow:0 3px 20px rgba(0,0,0,.22)}.score-row{display:flex;gap:10px;align-items:center;color:#d4e3f3}.score-row strong{font-size:34px;color:white}.tap{margin-top:28px;border-radius:14px;padding:12px 20px;font-weight:950;letter-spacing:.8px;box-shadow:0 8px 24px rgba(0,0,0,.18)}.a .tap{background:var(--blue)}.b .tap{background:var(--red)}
.serve-marker{position:absolute;top:14px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:rgba(6,12,20,.72);border:1px solid rgba(255,255,255,.25);box-shadow:0 5px 18px rgba(0,0,0,.25);opacity:0;visibility:hidden;transition:opacity .16s ease}.serve-marker.active{opacity:1;visibility:visible}.serve-marker>span:last-child{font-size:10px;letter-spacing:1px;font-weight:950;color:#fff}.serve-ball{display:inline-block;width:27px;height:27px;flex:0 0 auto;border-radius:50%;background-color:var(--ball);background-image:radial-gradient(circle,#6e5610 1.2px,transparent 1.6px);background-size:7px 7px;box-shadow:inset -4px -5px 7px rgba(161,112,0,.28),0 0 0 2px rgba(255,255,255,.08)}.serve-ball.mini{width:18px;height:18px;background-size:5px 5px}
.sets-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0b1727;border:1px solid var(--line);border-radius:22px;padding:13px 10px}.sets-title{font-size:13px;letter-spacing:1.7px;color:#87a0bd;font-weight:950;margin-bottom:16px}.sets{display:flex;flex-direction:column;gap:12px;width:100%}.set-row{background:#152b46;border:1px solid #203b5c;border-radius:14px;padding:13px 7px;text-align:center;font-weight:950;line-height:1.1;font-size:clamp(24px,3vw,34px);box-shadow:0 8px 20px rgba(0,0,0,.14)}.set-row small{display:block;color:#9eb4ce;font-size:9px;line-height:1.25;margin-bottom:7px;letter-spacing:.4px}.set-row.current{outline:2px solid rgba(74,174,255,.35)}.tiebreak-banner{text-align:center;margin:12px 0 0;padding:10px;border-radius:12px;background:#312615;border:1px solid #5d4724;color:#ffd17d;font-weight:950;letter-spacing:2px}.hidden{display:none}.actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:14px}.result-card{text-align:center;padding:42px 24px}.trophy{font-size:64px}.final-score{margin:26px auto 12px;font-size:26px;font-weight:900;line-height:1.6}.duration{color:var(--muted);margin-bottom:28px}.history-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:16px}.history-list{display:grid;gap:12px}.history-item{background:#0d1b2d;border:1px solid var(--line);border-radius:17px;padding:16px}.history-item .date{font-size:11px;color:#7189a6}.history-item .teams{font-weight:900;margin:6px 0}.history-item .score{color:#cfe5ff}.empty{padding:40px 20px;text-align:center;color:#7890aa;border:1px dashed #29415f;border-radius:18px}
@media(max-width:720px){.app-shell{padding:12px 12px 22px}.grid.two,.settings{grid-template-columns:1fr}.scoreboard{grid-template-columns:1fr 88px 1fr;gap:7px}.score-team{min-height:370px;padding:52px 8px 18px;border-radius:20px}.names{font-size:13px;min-height:44px}.point{font-size:72px;letter-spacing:-4px}.tap{font-size:12px;padding:11px 10px}.sets-panel{padding:8px 5px}.sets-title{font-size:10px;margin-bottom:10px}.set-row{font-size:21px;padding:10px 2px}.set-row small{font-size:7px;margin-bottom:5px}.actions{grid-template-columns:1fr 1fr}.actions .danger{grid-column:1/-1}.match-meta{align-items:flex-start;flex-direction:column}.serve-legend{align-self:flex-start}.serve-marker{top:11px;padding:5px 7px}.serve-marker>span:last-child{display:none}.serve-ball{width:25px;height:25px}}
@media(max-width:430px){.point{font-size:60px}.scoreboard{grid-template-columns:1fr 78px 1fr}.score-team{min-height:345px}.set-row{font-size:19px}.brand{font-size:19px}.brand-icon{width:52px}.serve-legend{display:none}}

/* v0.4 — sets corretos, set único otimizado e indicador de saque simplificado */
.scoreboard.single-set{grid-template-columns:1fr 1fr}
.sets-total{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;font-weight:950;line-height:1}
.sets-total strong{font-size:clamp(48px,6vw,72px);letter-spacing:-3px;color:#fff}
.sets-total span{font-size:clamp(24px,3vw,34px);color:#7f98b7;font-weight:800}
.serve-marker{top:14px;padding:0;background:transparent;border:0;box-shadow:none}
.serve-ball{position:relative;width:34px;height:34px;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 34% 24%,rgba(255,251,195,.95) 0 8%,rgba(255,251,195,0) 9%),radial-gradient(ellipse 38% 72% at 10% 50%, transparent 57%, rgba(255,255,255,.97) 58% 67%, transparent 68%),radial-gradient(ellipse 38% 72% at 90% 50%, transparent 57%, rgba(255,255,255,.97) 58% 67%, transparent 68%),linear-gradient(180deg,#ffe234 0%,#ffd31f 50%,#ef9b0d 82%,#e77a11 100%);box-shadow:inset -5px -6px 8px rgba(128,69,0,.26),0 3px 10px rgba(0,0,0,.35),0 0 0 1px rgba(255,255,255,.22)}
.serve-ball::before,.serve-ball::after{content:"";position:absolute;top:4px;bottom:4px;width:11px;border-radius:999px;background:linear-gradient(180deg,#ffbf3e 0%,#ff9521 55%,#ef6e11 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.serve-ball::before{left:2px}
.serve-ball::after{right:2px}
.serve-ball i,.serve-ball b{display:none}
.serve-ball{overflow:hidden}
.serve-ball:after,.serve-ball:before{}
.serve-ball::marker{display:none}
@media(max-width:720px){
  .scoreboard.single-set{grid-template-columns:1fr 1fr;gap:8px}
  .scoreboard.single-set .score-team{min-height:390px}
  .sets-total{gap:7px}
  .sets-total strong{font-size:42px;letter-spacing:-2px}
  .sets-total span{font-size:21px}
  .serve-ball{width:31px;height:31px}
}
@media(max-width:430px){
  .scoreboard.single-set{grid-template-columns:1fr 1fr;gap:6px}
  .scoreboard.single-set .score-team{min-height:365px;padding-left:6px;padding-right:6px}
  .sets-total strong{font-size:36px}
}
