*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#0b0d11;color:#f5f5f5;font-family:Arial,Helvetica,sans-serif}button,input,select{font:inherit}.screen{display:none;min-height:100vh;padding:clamp(10px,2vw,24px);padding-bottom:80px}.screen.active{display:block}.topbar,header{display:flex;align-items:center;gap:12px;min-height:58px;border-bottom:1px solid #2a2d34}.topbar{justify-content:space-between}.top-actions{display:flex;gap:8px}.brand{font-weight:900;font-size:clamp(18px,3vw,28px)}header h2{flex:1;margin:0}button{border:1px solid #353a44;background:#15181e;color:#fff;border-radius:10px;padding:12px 16px;cursor:pointer;font-weight:700}.primary,.plus{background:#f3f3f3;color:#101114}.home-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:1000px;margin:6vh auto}.big{min-height:135px;text-align:left;padding:24px;display:flex;flex-direction:column;justify-content:center}.big-title{font-size:clamp(24px,4vw,40px)}.big-sub{opacity:.6;margin-top:8px}.panel{max-width:1100px;margin:20px auto;background:#12151b;border:1px solid #2d323c;border-radius:16px;padding:20px}.filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}label span{display:block;margin-bottom:7px;opacity:.75}input,select{width:100%;padding:12px;border:1px solid #373d48;background:#0b0e13;color:#fff;border-radius:9px}.bottom-actions{display:flex;justify-content:center;margin:18px}.flow-preview{text-align:center;margin-top:20px;font-weight:900;letter-spacing:.06em;opacity:.7}.mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:1100px;margin:20px auto}.mode-card{display:flex;align-items:flex-start;gap:12px;background:#12151b;border:1px solid #2d323c;border-radius:14px;padding:18px;cursor:pointer}.mode-card input{width:auto;margin-top:6px}.mode-card h3{margin:0 0 6px}.mode-card p{margin:0;opacity:.65}.mode-card.disabled{opacity:.4}.score-head{justify-content:space-between}.match-meta{display:flex;flex-direction:column;align-items:center}.score-layout{display:grid;grid-template-columns:1fr .75fr 1fr;gap:16px;margin-top:16px}.team-card,.center{background:#12151b;border:1px solid #2d323c;border-radius:18px;padding:18px;text-align:center}.team-name{font-size:clamp(24px,3vw,40px);font-weight:900}.score{font-size:clamp(90px,16vw,220px);line-height:.95;font-weight:900}.score-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.score-buttons button{font-size:30px}.center{display:flex;flex-direction:column;justify-content:center}.center #clock{font-size:clamp(58px,9vw,118px);font-weight:900}.center-actions{display:grid;gap:8px;margin-top:12px}.bottom-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin-top:16px}.ad-slot{position:relative;margin:18px auto 0;min-height:50px;max-width:1100px;border:1px dashed #3b404b;border-radius:10px;display:grid;place-items:center;font-size:12px;letter-spacing:.12em;opacity:.5}.quick-score-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center;max-width:1100px;margin:18px auto}.quick-side{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:center;background:#12151b;border:1px solid #2d323c;border-radius:14px;padding:10px}.quick-side strong{display:block;font-size:clamp(42px,8vw,90px)}.quick-clock{text-align:center}.quick-clock span{display:block;font-size:clamp(32px,5vw,56px);font-weight:900}.quick-clock small{opacity:.6}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:950px;margin:18px auto}.quick-grid button{min-height:80px;font-size:20px}.analysis-toolbar{display:grid;grid-template-columns:1fr 1fr auto auto;gap:10px;max-width:1100px;margin:16px auto}.analysis-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;max-width:1300px;margin:auto}.court-wrap svg{width:100%;height:auto;border:1px solid #343944;border-radius:16px;background:#11151b;touch-action:manipulation}.goal-panel{background:#12151b;border:1px solid #2d323c;border-radius:16px;padding:16px}.goal-target{position:relative;aspect-ratio:1.6;border:5px solid currentColor;border-bottom-width:7px;cursor:crosshair;overflow:hidden}.goal-lines{position:absolute;inset:0;background:linear-gradient(to right,transparent 32.8%,rgba(255,255,255,.2) 33%,rgba(255,255,255,.2) 33.5%,transparent 33.7%,transparent 66%,rgba(255,255,255,.2) 66.2%,rgba(255,255,255,.2) 66.7%,transparent 66.9%),linear-gradient(to bottom,transparent 32.8%,rgba(255,255,255,.2) 33%,rgba(255,255,255,.2) 33.5%,transparent 33.7%,transparent 66%,rgba(255,255,255,.2) 66.2%,rgba(255,255,255,.2) 66.7%,transparent 66.9%)}.target-dot{position:absolute;width:14px;height:14px;border-radius:50%;background:currentColor;transform:translate(-50%,-50%)}.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}.result-grid button:last-child{grid-column:1/-1}.lineup-team-switch,.lineup-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:14px}.lineup-status{text-align:center;font-weight:800;opacity:.8}.lineup-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1100px;margin:auto}.lineup-grid>div{background:#12151b;border:1px solid #2d323c;border-radius:16px;padding:16px}.player-chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.player-chip{min-height:64px}.player-chip.selected{outline:3px solid #fff}.shootout-score{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:800px;margin:30px auto}.shootout-score>div{background:#12151b;border:1px solid #2d323c;border-radius:16px;padding:24px;text-align:center}.shootout-score span{display:block;font-size:80px;font-weight:900}.shootout-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;max-width:800px;margin:auto}.stat-grid{max-width:1000px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-team{background:#12151b;border:1px solid #2d323c;border-radius:14px;padding:16px}.stat-row{display:flex;justify-content:space-between;padding:9px;border-bottom:1px solid #2c3038}.help-grid{max-width:900px;margin:30px auto;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.help-grid button{min-height:90px}.switchline{display:flex;gap:10px;align-items:center}.switchline input{width:auto}.help-overlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.72);pointer-events:auto}.help-overlay.hidden{display:none}.help-spotlight{position:fixed;border:3px solid #fff;border-radius:14px;box-shadow:0 0 0 9999px rgba(0,0,0,.78),0 0 24px rgba(255,255,255,.7);transition:.35s ease;pointer-events:none}.help-bubble{position:fixed;max-width:390px;background:#fff;color:#111;border-radius:16px;padding:16px;box-shadow:0 10px 40px rgba(0,0,0,.4);z-index:1002}.help-title{font-weight:900;font-size:18px;margin-bottom:6px}.help-actions{display:flex;gap:8px;align-items:center;margin-top:14px}.help-actions span{margin:auto}.help-actions button{background:#111;color:#fff;padding:8px 10px}.tap-pulse{position:fixed;width:26px;height:26px;border:3px solid #fff;border-radius:50%;z-index:1003;pointer-events:none;animation:pulse 1.2s infinite;display:none}@keyframes pulse{0%{transform:scale(.7);opacity:1}100%{transform:scale(1.8);opacity:0}}#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#fff;color:#111;padding:10px 18px;border-radius:9px;opacity:0;pointer-events:none;transition:.2s;z-index:1100}#toast.show{opacity:1}
@media(max-width:900px){.score-layout{grid-template-columns:1fr 1fr}.center{grid-column:1/-1;grid-row:1}.filter-grid{grid-template-columns:repeat(2,1fr)}.mode-grid{grid-template-columns:1fr}.analysis-grid{grid-template-columns:1fr}.analysis-toolbar{grid-template-columns:1fr 1fr}.analysis-toolbar button{grid-column:auto}.lineup-grid{grid-template-columns:1fr}.quick-score-strip{grid-template-columns:1fr}.quick-clock{grid-row:1}.quick-side{grid-row:2}}
@media(max-width:620px){.screen{padding:10px;padding-bottom:76px}.home-grid{grid-template-columns:1fr;margin:28px auto}.big{min-height:105px}.filter-grid,.stat-grid,.help-grid{grid-template-columns:1fr}.score-layout{gap:8px}.team-card,.center{padding:10px}.score{font-size:78px}.team-name{font-size:20px}.center #clock{font-size:56px}.bottom-nav{position:sticky;bottom:0;background:#0b0d11;padding:8px 0}.quick-grid{grid-template-columns:1fr}.shootout-actions{grid-template-columns:1fr}.analysis-toolbar{grid-template-columns:1fr}.help-bubble{left:10px!important;right:10px!important;max-width:none}}

.analysis-flow{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;max-width:1300px;margin:auto}
.perspective-stage,.goal-stage{background:#12151b;border:1px solid #2d323c;border-radius:16px;padding:16px}
.perspective-court{position:relative;height:min(58vw,560px);min-height:360px;overflow:hidden;border-radius:16px;cursor:crosshair;background:linear-gradient(to bottom,#111820 0%,#171c24 100%);perspective:900px;touch-action:manipulation}
.perspective-court:before{content:"";position:absolute;left:7%;right:7%;top:8%;bottom:5%;clip-path:polygon(35% 0,65% 0,100% 100%,0 100%);border:3px solid currentColor;opacity:.9}
.court-goal-back{position:absolute;left:39%;top:3%;width:22%;height:15%;border:5px solid currentColor;border-bottom-width:6px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);z-index:2;background:rgba(255,255,255,.02)}
.court-goal-back div{border:1px solid rgba(255,255,255,.16)}
.court-line{position:absolute;left:50%;transform:translateX(-50%);border-top:3px solid currentColor;opacity:.7}
.line-mid{bottom:8%;width:86%}
.line-nine{top:40%;width:53%;border-top-style:dashed}
.line-six{top:25%;width:36%}
.court-center-mark{position:absolute;left:50%;bottom:8%;transform:translate(-50%,50%);width:54px;height:18px;border-top:3px solid currentColor;border-radius:50%}
.court-caption{position:absolute;bottom:1.5%;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.14em;opacity:.45}
.perspective-dots{position:absolute;inset:0;z-index:5}
.shot-number-dot{position:absolute;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#f3f3f3;color:#111;font-weight:900;font-size:13px;transform:translate(-50%,-50%);border:2px solid #111;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.goal-target .shot-number-dot{position:absolute}
@media(max-width:900px){.analysis-flow{grid-template-columns:1fr}.perspective-court{height:min(70vw,520px)}}

.image-court{position:relative;height:auto;min-height:0;background:#111;overflow:hidden}
.image-court img{display:block;width:100%;height:auto;user-select:none;pointer-events:none}
.image-court .perspective-dots{position:absolute;inset:0;z-index:5}
.image-court .shot-number-dot{width:32px;height:32px;font-size:13px}
.goal-target .shot-number-dot{width:32px;height:32px;font-size:13px}
@media(max-width:620px){
  .image-court .shot-number-dot,.goal-target .shot-number-dot{width:28px;height:28px;font-size:12px}
}

/* v0.8.1 - Handball visual identity */
html,body{
  background:
    radial-gradient(circle at 12% 18%, rgba(34,104,166,.22) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 78%, rgba(255,255,255,.05) 0 2px, transparent 3px),
    linear-gradient(135deg,#07111d 0%,#0b1725 42%,#10151d 100%);
  background-attachment:fixed;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    linear-gradient(118deg,transparent 0 46%,rgba(65,137,201,.055) 46.2% 46.7%,transparent 46.9%),
    linear-gradient(62deg,transparent 0 72%,rgba(255,255,255,.025) 72.2% 72.5%,transparent 72.7%);
}
body::after{
  content:"";
  position:fixed;
  right:-105px;
  bottom:-120px;
  width:420px;
  height:420px;
  border-radius:50%;
  z-index:-1;
  pointer-events:none;
  opacity:.16;
  background:
    radial-gradient(circle at center,transparent 0 31%,rgba(255,255,255,.65) 31.5% 32.5%,transparent 33%),
    repeating-conic-gradient(from 12deg,rgba(255,255,255,.42) 0deg 9deg,transparent 9deg 25deg);
  transform:rotate(-18deg);
}
.screen{
  background:linear-gradient(180deg,rgba(5,10,17,.12),rgba(5,10,17,.34));
}
.topbar,header{
  background:rgba(8,15,24,.52);
  backdrop-filter:blur(8px);
  border-radius:14px;
  padding-left:12px;
  padding-right:12px;
}
.panel,.team-card,.center,.mode-card,.quick-side,.lineup-grid>div,.perspective-stage,.goal-stage,.stat-team{
  background:rgba(14,21,31,.88);
  backdrop-filter:blur(8px);
}
.big{
  background:linear-gradient(145deg,rgba(20,31,45,.94),rgba(10,17,27,.94));
  border-color:rgba(107,155,198,.28);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.big:hover,.mode-card:hover{
  border-color:rgba(126,184,235,.55);
  transform:translateY(-1px);
}
.brand::before{
  content:"◉ ";
  opacity:.72;
}
.ad-slot{
  background:rgba(6,11,18,.48);
}

/* v0.8.2 shot analysis result colors */
.map-layer{position:absolute;inset:0;pointer-events:none;z-index:5}
.shot-number-dot{
  position:absolute;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;
  transform:translate(-50%,-50%);font-weight:900;font-size:13px;border:2px solid rgba(0,0,0,.72);
  box-shadow:0 2px 9px rgba(0,0,0,.5)
}
.shot-origin-dot{background:#f5f1b8;color:#111}
.shot-goal-dot{background:#25b84a;color:#06140a}
.shot-save-dot{background:#df3c3c;color:#fff}
.shot-post-dot{background:#f0a12c;color:#1b1102}
.shot-miss-dot{background:#e7e9ed;color:#111}
.shot-block-dot{background:#9157d9;color:#fff}
.shot-pending-dot{background:#ffd84d;color:#111;animation:shotPulse 1s infinite}
@keyframes shotPulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.18)}}
.legend-dot{display:inline-block;width:14px;height:14px;border-radius:50%;vertical-align:-2px;margin-right:5px}
.legend-dot.origin{background:#f5f1b8}.legend-dot.goal{background:#25b84a}.legend-dot.save{background:#df3c3c}
.legend-dot.post{background:#f0a12c}.legend-dot.miss{background:#e7e9ed}.legend-dot.block{background:#9157d9}
#allPlayersBtn.active{outline:2px solid #fff}

/* v0.8.3 Quick Stats clock control */
.quick-clock{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  justify-self:center;
  min-width:190px;
}
.quick-clock-button{
  margin-top:9px;
  min-width:120px;
}
@media(max-width:900px){
  .quick-score-strip{
    grid-template-columns:1fr;
    justify-items:stretch;
  }
  .quick-clock{
    grid-row:1;
    width:100%;
    justify-self:center;
    align-self:center;
    text-align:center;
    margin-left:auto;
    margin-right:auto;
  }
  .quick-side{grid-row:auto}
}
@media(max-width:620px){
  .quick-score-strip{
    display:flex;
    flex-direction:column;
    align-items:stretch;
  }
  .quick-clock{
    order:-1;
    width:100%;
    min-width:0;
    text-align:center;
  }
  .quick-clock span,
  .quick-clock small,
  .quick-clock button{
    margin-left:auto;
    margin-right:auto;
  }
}

/* v0.8.4 Quick Stats clock trigger + compact controls */
.quick-clock-trigger{
  position:relative;
  cursor:pointer;
  user-select:none;
  min-height:118px;
}
.quick-clock-trigger:focus{outline:2px solid rgba(255,255,255,.7);outline-offset:4px}
.quick-clock-overlay{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  font-size:clamp(42px,6vw,72px);
  font-weight:900;
  background:rgba(5,10,17,.34);
  border-radius:16px;
  opacity:.88;
  transition:.18s ease;
  pointer-events:none;
}
.quick-clock-trigger:hover .quick-clock-overlay{background:rgba(5,10,17,.22);opacity:1}
.quick-clock-trigger span{font-size:clamp(40px,6vw,72px)}
.quick-side strong{font-size:clamp(64px,11vw,128px);line-height:.9}
.quick-side button{
  padding:8px 10px;
  min-width:42px;
  font-size:18px;
}
.quick-grid{
  gap:8px;
  max-width:820px;
}
.quick-grid button{
  min-height:56px;
  padding:10px 12px;
  font-size:16px;
}
@media(max-width:620px){
  .quick-score-strip{gap:8px}
  .quick-clock-trigger{min-height:100px}
  .quick-clock-trigger span{font-size:52px}
  .quick-clock-overlay{font-size:54px}
  .quick-side{padding:8px}
  .quick-side strong{font-size:84px}
  .quick-side button{padding:7px 9px;font-size:17px}
  .quick-grid{grid-template-columns:1fr 1fr;gap:7px}
  .quick-grid button{min-height:48px;font-size:14px;padding:8px}
}

/* v0.8.5 Quick Stats + Shot Analysis zoom */
.quick-clock-overlay{
  opacity:0;
  visibility:hidden;
  transition:opacity .14s ease, visibility .14s ease;
  background:rgba(5,10,17,.26);
}
.quick-clock-overlay.show{
  opacity:.9;
  visibility:visible;
}
.quick-clock-overlay.flash{
  opacity:.95!important;
  visibility:visible!important;
}
.quick-score-strip{
  grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
  align-items:center;
}
.quick-side strong{
  font-size:clamp(72px,12vw,140px);
}
.analysis-zoom-controls{
  display:flex;
  justify-content:center;
  gap:8px;
  margin:8px 0 12px;
}
.analysis-zoom-controls button{
  min-width:64px;
}
.unified-shot-map{
  overflow:hidden;
  touch-action:none;
}
.unified-shot-map img,
.unified-shot-map .map-layer{
  will-change:transform;
  transition:transform .08s linear;
}
@media(max-width:900px){
  .quick-score-strip{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    gap:8px;
  }
  .quick-clock{
    grid-column:1/-1;
    grid-row:1;
  }
  .quick-side:first-child{grid-column:1;grid-row:2}
  .quick-side:last-child{grid-column:3;grid-row:2}
}
@media(max-width:620px){
  .quick-score-strip{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    align-items:end;
  }
  .quick-clock{
    grid-column:1/-1;
    grid-row:1;
    width:100%;
  }
  .quick-side:first-child{grid-column:1;grid-row:2}
  .quick-side:last-child{grid-column:2;grid-row:2}
  .quick-side{
    min-width:0;
    grid-template-columns:auto 1fr auto;
  }
  .quick-side strong{
    font-size:clamp(66px,22vw,96px);
  }
  .quick-side button{
    min-width:34px;
    padding:6px 7px;
  }
}

/* v0.8.6 shot position correction */
#editShotBtn{white-space:nowrap}
.shot-edit-hint{opacity:.78}
@media(max-width:900px){
  .analysis-toolbar{grid-template-columns:1fr 1fr}
  #editShotBtn{grid-column:1/-1}
}

/* v0.8.7 zoom-safe shot picking */
.unified-shot-map{cursor:crosshair}

.time-edit-btn{margin-top:8px;padding:7px 10px;font-size:13px;opacity:.78}
.quick-edit-time{position:absolute;right:6px;bottom:6px;padding:5px 8px;font-size:11px;z-index:2}
.report-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:14px}
.report-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1300px;margin:auto}
.report-card{background:rgba(14,21,31,.88);border:1px solid #2d323c;border-radius:16px;padding:16px}
.report-card canvas{width:100%;height:auto;background:#0b0f15;border-radius:12px}
.time-editor-panel{max-width:480px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.time-editor-panel .bottom-actions{grid-column:1/-1}
.player-minute-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:8px;border-bottom:1px solid #2c3038}
.report-event-row{display:grid;grid-template-columns:100px 1fr;gap:10px;padding:7px;border-bottom:1px solid #2c3038}
@media(max-width:900px){.report-grid{grid-template-columns:1fr}}

/* v0.10 Control Hub */
.hub-scoreboard{
  display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;
  max-width:1200px;margin:16px auto;
}
.hub-team-score,.hub-clock{
  background:rgba(14,21,31,.9);border:1px solid #2d323c;border-radius:18px;padding:14px;text-align:center
}
.hub-team-name{font-size:clamp(18px,2.5vw,30px);font-weight:900}
.hub-score{font-size:clamp(64px,10vw,120px);font-weight:900;line-height:.95}
.hub-score-correct{display:flex;justify-content:center;gap:8px;margin-top:8px}
.hub-score-correct button{padding:7px 14px}
.hub-clock{cursor:pointer;min-width:190px}
.hub-clock>div:first-child{font-size:clamp(44px,6vw,72px);font-weight:900}
.hub-clock small{opacity:.5}
.hub-teams{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:1300px;margin:auto}
.hub-team-panel{background:rgba(14,21,31,.9);border:1px solid #2d323c;border-radius:18px;padding:14px}
.hub-team-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hub-count{font-weight:900;padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.08)}
.hub-player-list{display:grid;gap:7px}
.hub-player-row{
  display:grid;grid-template-columns:58px 1fr 72px 110px 78px;gap:8px;align-items:center;
  border:1px solid #2c323b;border-radius:12px;padding:7px 9px;background:rgba(6,10,16,.38)
}
.hub-player-id{font-weight:900;font-size:17px}
.hub-player-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-player-stat{text-align:center;font-weight:900}
.hub-actions{display:flex;gap:4px;justify-content:flex-start}
.action-dot{width:15px;height:15px;border-radius:50%;display:inline-block;border:1px solid rgba(255,255,255,.4)}
.action-goal{background:#25b84a}.action-save{background:#df3c3c}.action-block{background:#9157d9}
.action-post{background:#f0a12c}.action-miss{background:#e7e9ed}.action-turnover{background:#737b86}
.hub-switch-wrap{display:flex;justify-content:flex-end}
.hub-switch{
  width:58px;height:30px;border-radius:18px;border:0;padding:3px;position:relative;background:#7f2828
}
.hub-switch.on{background:#2b9b50}
.hub-switch span{display:block;width:24px;height:24px;border-radius:50%;background:#fff;transition:.15s}
.hub-switch.on span{transform:translateX(28px)}
.hub-penalty-btn{font-size:11px;padding:6px 7px}
.hub-penalty-btn.active{outline:2px solid #f0a12c}
.hub-warnings{max-width:1300px;margin:8px auto;display:grid;gap:6px}
.hub-warning{padding:10px 14px;border-radius:11px;font-weight:800;background:rgba(170,55,55,.32);border:1px solid rgba(255,110,110,.5)}
.hub-warning.ok{background:rgba(42,135,76,.22);border-color:rgba(88,210,124,.4)}
/* v0.10 complete statistics */
.stats-toolbar{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:12px}
.complete-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:1400px;margin:auto}
.complete-team-stats{background:rgba(14,21,31,.9);border:1px solid #2d323c;border-radius:16px;padding:14px;overflow:auto}
.complete-team-stats table{width:100%;border-collapse:collapse;min-width:860px}
.complete-team-stats th,.complete-team-stats td{padding:8px;border-bottom:1px solid #29303a;text-align:center}
.complete-team-stats th:nth-child(2),.complete-team-stats td:nth-child(2){text-align:left}
.mini-actions{display:flex;gap:3px;justify-content:center}
.stat-section-title{display:flex;align-items:center;justify-content:space-between}
.stat-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}
.stat-kpi{background:rgba(255,255,255,.05);padding:10px;border-radius:10px;text-align:center}
.stat-kpi b{display:block;font-size:24px}
@media(max-width:1000px){
 .hub-player-row{grid-template-columns:52px 1fr 64px 92px 70px}
 .complete-stats-grid{grid-template-columns:1fr}
}
@media(max-width:760px){
 .hub-scoreboard{grid-template-columns:1fr 1fr}
 .hub-clock{grid-column:1/-1;grid-row:1}
 .hub-teams{grid-template-columns:1fr}
 .hub-player-row{grid-template-columns:48px minmax(90px,1fr) 58px 86px 65px;font-size:12px}
 .hub-player-stat{font-size:13px}
 .action-dot{width:12px;height:12px}
 .hub-switch{width:50px;height:27px}.hub-switch span{width:21px;height:21px}.hub-switch.on span{transform:translateX(23px)}
}

/* v0.11 Hub fast actions + analysis drill-down */
.hub-player-row.home-row{
  grid-template-columns:52px minmax(110px,1fr) 64px 130px 260px 64px;
}
.hub-player-row.away-row{
  grid-template-columns:52px minmax(110px,1fr) 64px 130px 260px;
}
.hub-fast-actions{
  display:grid;
  grid-template-columns:repeat(4,minmax(48px,1fr)) 38px;
  gap:5px;
}
.hub-fast-actions button{
  padding:7px 6px;
  font-size:11px;
  min-width:0;
}
.hub-fast-actions .detail-shot-btn{
  font-size:18px;
  padding:5px;
}
@media(max-width:1050px){
  .hub-player-row.home-row,.hub-player-row.away-row{
    grid-template-columns:48px minmax(90px,1fr) 56px 90px 1fr;
  }
  .hub-player-row.home-row .hub-switch-wrap{grid-column:1/-1}
}
@media(max-width:760px){
  .hub-player-row.home-row,.hub-player-row.away-row{
    grid-template-columns:42px minmax(80px,1fr) 52px;
  }
  .hub-actions{grid-column:1/-1}
  .hub-fast-actions{grid-column:1/-1}
  .hub-switch-wrap{grid-column:1/-1;justify-content:flex-start}
}

/* v0.12 Undo + direct Hub player analysis + turnover/error map */
.global-undo{margin:8px;padding:8px 14px}
.hub-player-name{cursor:pointer}
.hub-player-name:hover{text-decoration:underline}
.error-dot{background:#ffcf3f;color:#111;border:2px solid #111}
.error-dot.bm{background:#ff6b35;color:#111}
#errorResultPanel{max-width:520px}

/* v0.13 Team Setup */
.team-setup-tabs{display:flex;gap:8px;justify-content:center;margin:14px}
.team-setup-tabs button.active{background:#f3f3f3;color:#111}
.team-setup-list{max-width:900px;margin:16px auto;display:grid;gap:8px}
.team-setup-row{
  display:grid;
  grid-template-columns:90px 1fr 46px;
  gap:8px;
  align-items:center;
  background:rgba(14,21,31,.9);
  border:1px solid #2d323c;
  border-radius:12px;
  padding:9px;
}
.team-setup-row input{margin:0}
.team-setup-row button{padding:8px}
@media(max-width:620px){
  .team-setup-row{grid-template-columns:74px 1fr 42px}
}

/* v0.14 Team Library */
.team-library-top{max-width:900px}
.team-library-select{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:end}
.team-library-select label{margin:0}
.team-library-select button{white-space:nowrap}
@media(max-width:700px){.team-library-select{grid-template-columns:1fr}}

/* v0.16 Branding */
.app-brand-hero{
  display:flex;
  align-items:center;
  gap:18px;
  max-width:980px;
  margin:14px auto 22px;
  padding:14px 18px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  background:rgba(5,15,28,.72);
  box-shadow:0 14px 35px rgba(0,0,0,.24);
  backdrop-filter:blur(10px);
}
.app-brand-hero img{
  width:112px;
  height:112px;
  border-radius:24px;
  object-fit:cover;
  flex:0 0 auto;
  box-shadow:0 8px 24px rgba(0,0,0,.38);
}
.app-brand-title{
  font-size:clamp(1.25rem,3vw,2rem);
  font-weight:800;
  letter-spacing:.01em;
}
.app-brand-tagline{
  margin-top:5px;
  font-size:.95rem;
  opacity:.72;
  letter-spacing:.08em;
  text-transform:uppercase;
}
@media(max-width:620px){
  .app-brand-hero{
    margin:10px 12px 16px;
    gap:12px;
    padding:10px 12px;
  }
  .app-brand-hero img{
    width:78px;
    height:78px;
    border-radius:18px;
  }
  .app-brand-copy{min-width:0}
  .app-brand-title{font-size:1.08rem}
  .app-brand-tagline{font-size:.72rem;letter-spacing:.05em}
}

/* v0.17 vertical arena home */
#home{
  min-height:100dvh;
  background:
    linear-gradient(180deg,rgba(3,13,26,.38),rgba(3,13,26,.64)),
    url("assets/home_arena_wallpaper.jpg") center top/cover fixed no-repeat;
  position:relative;
  overflow-x:hidden;
}
#home::before{
  content:"";
  position:absolute;inset:0;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(1,9,19,.18),transparent 25%,transparent 75%,rgba(1,9,19,.18));
}
#home > *{position:relative;z-index:1}
.home-compact-brand{
  width:min(92%,720px);
  margin:12px auto 16px;
  display:flex;align-items:center;justify-content:center;gap:13px;
  padding:10px 14px;
  border-radius:18px;
  background:rgba(3,15,30,.66);
  border:1px solid rgba(130,195,255,.26);
  backdrop-filter:blur(9px);
  box-shadow:0 10px 30px rgba(0,0,0,.24);
}
.home-compact-brand img{
  width:68px;height:68px;object-fit:cover;border-radius:15px;
}
.home-compact-brand strong{display:block;font-size:clamp(15px,3.5vw,22px);font-style:normal}
.home-compact-brand em{font-style:normal;color:#39a7ff}
.home-compact-brand span{display:block;margin-top:3px;font-size:10px;letter-spacing:.17em;opacity:.72}
#home .home-grid,#home .menu-grid,#home .grid{
  width:min(92%,720px);
  margin-left:auto;margin-right:auto;
}
#home .big{
  background:linear-gradient(100deg,rgba(5,27,52,.88),rgba(7,20,38,.82));
  border:1px solid rgba(117,185,245,.36);
  backdrop-filter:blur(8px);
  box-shadow:0 8px 24px rgba(0,0,0,.25);
}
#home .big:hover{transform:translateY(-1px)}
@media(max-width:620px){
  #home{background-attachment:scroll;background-position:center top}
  .home-compact-brand{margin-top:8px;margin-bottom:12px}
  .home-compact-brand img{width:54px;height:54px;border-radius:12px}
}

/* v0.18 graphical Home menu cards */
#home .big{
  min-height:150px;
  position:relative;
  overflow:hidden;
  justify-content:flex-end;
  align-items:flex-start;
  text-align:left;
  padding:22px 24px;
  border-width:2px;
  background-size:cover;
  background-position:center;
  isolation:isolate;
}
#home .big::before{
  content:"";
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(2,10,22,.92) 0%,rgba(2,10,22,.68) 50%,rgba(2,10,22,.20) 100%);
}
#home .big-title{
  font-size:clamp(1.05rem,3.5vw,1.45rem);
  font-weight:900;
  text-shadow:0 2px 8px rgba(0,0,0,.75);
}
#home .big-sub{
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-shadow:0 2px 7px rgba(0,0,0,.8);
}
#home .tile-match{background-image:url("assets/menu_match.jpg");border-color:#1ca3ff}
#home .tile-team{background-image:url("assets/menu_team.jpg");border-color:#26df61}
#home .tile-shot{background-image:url("assets/menu_shot.jpg");border-color:#ff2448}
#home .tile-stats{background-image:url("assets/menu_stats.jpg");border-color:#a13cff}
#home .tile-history{background-image:url("assets/menu_history.jpg");border-color:#ffa31a}
#home .tile-settings{background-image:url("assets/menu_settings.jpg");border-color:#b7c8dc}
@media(min-width:760px){
  #home .home-grid,#home .menu-grid,#home .grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
  }
}
@media(max-width:759px){
  #home .big{min-height:128px;margin-bottom:12px}
}

/* v0.19 clean home + single-field match setup */
#home{
  min-height:100dvh;
  background:
    linear-gradient(180deg,rgba(2,11,23,.34),rgba(2,11,23,.76)),
    url("assets/home_clean_court.jpg") center/cover fixed no-repeat !important;
}
#home::before{display:none !important}
.home-topbar{
  background:rgba(3,13,25,.64);
  backdrop-filter:blur(8px);
}
.home-topbar .brand span{color:#32a8ff}
.home-logo{
  width:min(92%,680px);
  margin:14px auto 18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
}
.home-logo img{
  width:112px;height:112px;
  border-radius:24px;
  box-shadow:0 12px 34px rgba(0,0,0,.38);
}
.home-tagline{
  font-size:.72rem;
  letter-spacing:.18em;
  opacity:.78;
}
#home .graphical-menu{
  width:min(92%,760px);
  margin:0 auto 30px;
  display:grid;
  grid-template-columns:1fr;
  gap:12px;
}
#home .menu-card{
  min-height:118px;
  width:100%;
  display:flex;
  flex-direction:row;
  justify-content:space-between;
  align-items:flex-end;
  padding:18px 20px;
  position:relative;
  overflow:hidden;
  border-radius:18px;
  background-size:cover !important;
  background-position:center !important;
  border:2px solid rgba(120,190,255,.36);
  isolation:isolate;
}
#home .menu-card::before{
  content:"";
  display:block !important;
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(2,10,22,.94),rgba(2,10,22,.57) 62%,rgba(2,10,22,.18));
}
.menu-card-copy{display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.menu-arrow{font-size:2rem;line-height:1;opacity:.9}
#home .card-matches{background-image:url("assets/card_matches.jpg") !important;border-color:#1ca3ff}
#home .card-new{background-image:url("assets/card_new.jpg") !important;border-color:#35b7ff}
#home .card-continue{background-image:url("assets/card_continue.jpg") !important;border-color:#26df61}
#home .card-stats{background-image:url("assets/card_stats.jpg") !important;border-color:#a13cff}
#home .card-teams{background-image:url("assets/card_teams.jpg") !important;border-color:#27df67}
#home .card-help{background-image:url("assets/card_help.jpg") !important;border-color:#b7c8dc}

#setup .filter-grid label select{
  width:100%;
}
@media(min-width:850px){
  #home .graphical-menu{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  #home{background-attachment:scroll !important}
  .home-logo img{width:86px;height:86px;border-radius:19px}
  #home .menu-card{min-height:106px}
}

/* v0.20 - global handball arena theme */

:root{
  --arena-bg: url("assets/home_clean_court.jpg");
  --glass: rgba(5,18,34,.82);
  --glass-strong: rgba(4,14,28,.93);
  --glass-soft: rgba(8,27,48,.66);
  --line: rgba(123,190,245,.28);
  --line-strong: rgba(139,206,255,.44);
  --text-main: #f5f8fc;
  --text-soft: rgba(225,235,245,.72);
  --blue-accent: #22a7ff;
}

/* Every app page uses the same arena/court atmosphere */
.screen{
  min-height:100dvh;
  background:
    linear-gradient(180deg,rgba(2,10,21,.42),rgba(2,10,21,.78)),
    var(--arena-bg) center/cover fixed no-repeat;
  color:var(--text-main);
  position:relative;
}
.screen::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 10%,rgba(45,146,224,.08),transparent 32%),
    linear-gradient(90deg,rgba(0,6,15,.16),transparent 25%,transparent 75%,rgba(0,6,15,.16));
  z-index:0;
}
.screen > *{
  position:relative;
  z-index:1;
}

/* Shared header */
header,.topbar{
  background:rgba(3,13,25,.76) !important;
  border-bottom:1px solid rgba(124,184,230,.22);
  backdrop-filter:blur(12px);
  box-shadow:0 5px 20px rgba(0,0,0,.18);
}
header h2,.topbar .brand{
  text-shadow:0 2px 10px rgba(0,0,0,.45);
}
header button,.topbar button{
  background:rgba(7,20,36,.74);
  border:1px solid rgba(180,214,240,.24);
}

/* Glass panels/cards throughout the application */
.panel,
.setup-card,
.stat-card,
.mode-card,
.report-card,
.player-card,
.hub-panel,
.filter-grid,
.team-library-top,
.shot-panel,
.match-panel{
  background:var(--glass) !important;
  border:1px solid var(--line) !important;
  box-shadow:
    0 16px 38px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.025);
  backdrop-filter:blur(11px);
  border-radius:18px;
}

/* Form controls */
input,select,textarea{
  background:rgba(3,12,23,.90) !important;
  color:var(--text-main) !important;
  border:1px solid rgba(158,194,224,.28) !important;
  border-radius:10px;
}
input:focus,select:focus,textarea:focus{
  border-color:rgba(52,169,255,.78) !important;
  box-shadow:0 0 0 3px rgba(30,151,240,.12);
  outline:none;
}

/* General buttons */
button{
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;
}
button:hover{
  filter:brightness(1.08);
}
button:active{
  transform:scale(.985);
}
button.primary,
.primary{
  background:linear-gradient(180deg,#1ea9ff,#0879d5) !important;
  color:#fff !important;
  border:1px solid rgba(117,200,255,.68) !important;
  box-shadow:0 7px 20px rgba(0,116,207,.25);
}

/* Match setup */
#setup .filter-grid{
  background:rgba(5,18,34,.82) !important;
  padding:20px;
}
#setup .bottom-actions{
  background:transparent;
}
#setup .bottom-actions button{
  min-height:48px;
  border-radius:11px;
}

/* Match control / scoreboard */
#hub .panel,
#quick .panel,
#scoreboard .panel{
  background:rgba(3,14,28,.90) !important;
}
.score,
.score-value,
.big-score{
  text-shadow:0 0 18px rgba(63,163,235,.18);
}

/* Live action color semantics - consistent across themes */
.goal-btn,.action-goal,[data-action="goal"]{
  background:linear-gradient(180deg,rgba(0,150,75,.92),rgba(0,93,48,.95)) !important;
  border-color:rgba(65,243,136,.75) !important;
}
.miss-btn,.action-miss,[data-action="miss"]{
  background:linear-gradient(180deg,rgba(143,25,49,.92),rgba(79,12,26,.95)) !important;
  border-color:rgba(255,64,94,.72) !important;
}
.block-btn,.action-block,[data-action="block"]{
  background:linear-gradient(180deg,rgba(98,41,152,.92),rgba(53,20,93,.96)) !important;
  border-color:rgba(177,87,255,.72) !important;
}
.post-btn,.action-post,[data-action="post"]{
  background:linear-gradient(180deg,rgba(170,97,13,.94),rgba(102,51,6,.96)) !important;
  border-color:rgba(255,169,46,.76) !important;
}

/* Team library */
#teamSetup .team-setup-row{
  background:rgba(4,16,31,.86) !important;
  border:1px solid rgba(137,190,230,.20) !important;
  box-shadow:0 5px 16px rgba(0,0,0,.15);
}
#teamSetup .team-setup-tabs button.active{
  background:linear-gradient(180deg,#1da6ff,#0874cb) !important;
  color:#fff !important;
}

/* Statistics */
#stats .stat-kpi,
#stats .stat-card{
  background:rgba(4,16,31,.84) !important;
  border:1px solid rgba(143,194,234,.22) !important;
}
#stats table,
#matchReport table{
  background:rgba(3,13,25,.74);
  border-radius:12px;
  overflow:hidden;
}
#stats th,
#matchReport th{
  background:rgba(15,44,72,.85);
}
#stats tr:nth-child(even),
#matchReport tr:nth-child(even){
  background:rgba(255,255,255,.025);
}

/* Match history / lists */
#matches .panel,
#matchHistory .panel{
  background:rgba(3,14,28,.87) !important;
}

/* Shot analysis */
#shotAnalysis .shot-stage,
#shotAnalysis .panel{
  background:rgba(3,14,28,.84) !important;
}
#shotAnalysis .shot-image-wrap{
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 12px 34px rgba(0,0,0,.32);
}
#shotAnalysis img{
  display:block;
}

/* Help and settings */
#help .panel,
#settings .panel{
  background:rgba(4,16,31,.85) !important;
}

/* Keep home neutral - no club or season identity */
#home .home-topbar::before,
#home .home-topbar::after{
  content:none !important;
}

/* Mobile */
@media(max-width:700px){
  .screen{
    background-attachment:scroll;
    background-position:center top;
  }
  .panel,
  .setup-card,
  .stat-card,
  .hub-panel,
  .filter-grid{
    border-radius:15px;
  }
}

/* Desktop: keep content readable over full-width wallpaper */
@media(min-width:1000px){
  .screen > main,
  .screen > .content,
  .screen > .panel,
  .screen > .filter-grid{
    max-width:1200px;
    margin-left:auto;
    margin-right:auto;
  }
}

/* v0.21 weekend-test fixes */
.hub-group-label{
  margin:8px 0 2px;padding:7px 10px;border-radius:9px;
  font-size:11px;font-weight:900;letter-spacing:.12em;
  background:rgba(255,255,255,.07);color:rgba(255,255,255,.7)
}
.hub-group-label.active{background:rgba(32,155,86,.18);color:#9af0bb;border:1px solid rgba(58,207,116,.25)}
.hub-group-label.penalty{background:rgba(224,139,29,.17);color:#ffd08c;border:1px solid rgba(240,161,44,.28)}
.hub-player-row.is-active{border-color:rgba(58,207,116,.35);background:rgba(20,93,52,.18)}
.hub-player-row.is-bench{opacity:.88}
.hub-player-row.is-penalty{border-color:rgba(240,161,44,.45)}
.duplicate-number{border-color:#ff5c70!important;box-shadow:0 0 0 3px rgba(255,65,90,.16)!important}
.settings-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.settings-note{opacity:.72;line-height:1.45}
.sportlink-status{margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.06);font-size:13px}

/* Score boxes never resize because of team-name length */
.score-layout{grid-template-columns:minmax(0,1fr) minmax(160px,.75fr) minmax(0,1fr)}
.team-card{min-width:0}
.team-name,.hub-team-name{
  width:100%;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;
  font-size:clamp(15px,4.5vw,28px)
}
.score,.hub-score{
  font-variant-numeric:tabular-nums;
  font-feature-settings:"tnum";
  line-height:.92
}
.hub-team-score{min-width:0}
.hub-scoreboard{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}

@media(max-width:620px){
  .score-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .team-card{width:100%;min-height:190px;display:flex;flex-direction:column;justify-content:space-between}
  .team-name{height:24px;line-height:24px;font-size:clamp(12px,4vw,18px)}
  .score{font-size:76px!important;height:74px;line-height:74px}
  .hub-scoreboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .hub-team-score{width:100%;min-height:150px;padding:10px}
  .hub-team-name{height:22px;line-height:22px;font-size:clamp(11px,3.7vw,16px)}
  .hub-score{font-size:64px!important;height:62px;line-height:62px}
  .hub-clock{grid-column:1/-1;grid-row:1;min-width:0}
}

/* v0.22 mobile-first information architecture + compact Hub */
.app-main-nav{position:sticky;bottom:max(0px,env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;max-width:760px;margin:20px auto 0;padding:7px;background:rgba(5,13,24,.94);backdrop-filter:blur(16px);border:1px solid rgba(124,184,230,.2);border-radius:18px}.app-main-nav button{background:transparent;border:0;min-width:0;padding:7px 2px;font-size:20px}.app-main-nav button span{display:block;font-size:10px;margin-top:3px}.app-main-nav button.active{background:rgba(71,151,221,.18)}
.hub-player-row.home-row,.hub-player-row.away-row{display:block;padding:9px 10px}.hub-player-main{display:grid;grid-template-columns:44px minmax(0,1fr) 58px 58px;gap:7px;align-items:center;min-height:42px}.hub-player-name{font-size:17px;font-weight:850}.hub-player-name small{display:block;font-size:10px;font-weight:500;opacity:.55;margin-top:1px}.hub-player-stat{font-size:15px}.hub-player-stat .hub-actions{margin-top:3px;justify-content:center}.hub-fast-actions{display:grid;grid-template-columns:1fr 1fr 1.35fr 44px;gap:6px;margin-top:7px}.hub-fast-actions button{min-height:40px;font-size:12px;font-weight:850;padding:7px 4px}.hub-fast-actions .detail-shot-btn{font-size:21px}.hub-switch-wrap{justify-content:flex-end!important}.hub-bottom-actions{position:sticky;bottom:max(0px,env(safe-area-inset-bottom));z-index:20;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-width:760px;margin:14px auto 0;padding:8px;background:rgba(5,13,24,.94);backdrop-filter:blur(14px);border-radius:16px}.hub-bottom-actions button{min-height:44px;padding:7px;font-size:12px}.report-card canvas{width:100%;height:auto}
@media(max-width:760px){#controlHub.screen{padding-left:7px;padding-right:7px}.hub-scoreboard{position:sticky;top:0;z-index:15;background:rgba(5,13,24,.9);backdrop-filter:blur(12px);padding:6px;border-radius:14px}.hub-clock>div:first-child{font-size:42px}.hub-team-name{font-size:13px}.hub-score{font-size:48px}.hub-team-panel{padding:8px}.hub-player-list{gap:6px}.hub-player-main{grid-template-columns:40px minmax(0,1fr) 52px 52px}.hub-player-name{font-size:16px}.hub-fast-actions{grid-template-columns:1fr 1fr 1.35fr 42px}.hub-fast-actions button{min-height:42px}.hub-group-label{position:sticky;top:116px;z-index:5}.app-main-nav{border-radius:15px 15px 0 0;margin-bottom:calc(-1 * env(safe-area-inset-bottom))}}
.timeline-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.timeline-card-head h3{margin:0}.timeline-expand{min-width:44px;min-height:44px;font-size:22px}.timeline-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;opacity:.85}.turnover-legend{color:#ff9f43}.matches-actions .bottom-actions{flex-wrap:wrap}.timeline-event{display:grid;grid-template-columns:70px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.12)}.timeline-event:last-child{border-bottom:0}.timeline-event.turnover{border-left:4px solid #ff9f43;padding-left:10px}.timeline-event.goal-home{border-left:4px solid #35d06f;padding-left:10px}.timeline-event.goal-away{border-left:4px solid #ff5252;padding-left:10px}.saved-match-row{display:grid;grid-template-columns:90px 1fr auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.12)}.saved-match-row button{min-height:44px}.settings-actions{display:flex;gap:10px;flex-wrap:wrap}

/* v0.24 Hub team tabs - mobile-first, one roster at a time */
.hub-team-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-width:760px;margin:8px auto 10px;padding:5px;background:rgba(5,13,24,.9);border:1px solid rgba(124,184,230,.2);border-radius:15px;backdrop-filter:blur(12px)}
.hub-team-tab{min-width:0;min-height:48px;padding:7px 9px;border:1px solid transparent;border-radius:11px;background:transparent;font-weight:900;overflow:hidden}
.hub-team-tab span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px}
.hub-team-tab small{display:block;margin-top:2px;font-size:9px;letter-spacing:.08em;opacity:.62}
.hub-team-tab.active{background:rgba(71,151,221,.22);border-color:rgba(111,190,255,.55);box-shadow:inset 0 0 0 1px rgba(111,190,255,.08)}
.hub-teams{display:block;max-width:760px}
.hub-team-panel[hidden]{display:none!important}
.hub-team-panel.active{display:block}
@media(max-width:760px){.hub-team-tabs{position:sticky;top:111px;z-index:14;margin-top:6px}.hub-group-label{top:169px!important}.hub-team-tab{min-height:46px}.hub-team-tab span{font-size:13px}}
/* v0.25 - tile-only Home and Match Actions drawer */
#home .home-continue-wrap{width:min(92%,760px);margin:8px auto 12px}
#home .home-continue-wrap .menu-card{width:100%}
#home .card-settings{background-image:url("assets/menu_settings.jpg") !important;border-color:#9bb4c9}
#home .home-ad-slot{margin-top:6px;margin-bottom:max(14px,env(safe-area-inset-bottom))}
#home .graphical-menu{grid-template-columns:repeat(2,minmax(0,1fr));}
#home .graphical-menu .card-settings{grid-column:1/-1}
.hub-actions-tab{position:fixed;right:0;top:46%;z-index:40;border-radius:14px 0 0 14px;padding:14px 8px;writing-mode:vertical-rl;letter-spacing:.08em;background:rgba(8,29,52,.96);border-color:rgba(84,177,255,.65)}
.match-actions-backdrop{position:fixed;inset:0;z-index:49;background:rgba(0,0,0,.55)}
.match-actions-drawer{position:fixed;z-index:50;top:0;right:0;height:100dvh;width:min(82vw,390px);padding:calc(14px + env(safe-area-inset-top)) 14px calc(14px + env(safe-area-inset-bottom));background:rgba(4,14,28,.98);border-left:1px solid rgba(124,184,230,.3);transform:translateX(102%);transition:transform .22s ease;overflow:auto}
.match-actions-drawer.open{transform:translateX(0)}
.match-actions-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.match-actions-head h3{margin:2px 0 0}.match-actions-head small{opacity:.6}.match-actions-head button{font-size:24px;padding:7px 12px}
.match-actions-grid{display:grid;gap:10px}.match-actions-grid button{min-height:68px;display:flex;align-items:center;gap:14px;text-align:left}.match-actions-grid b{font-size:21px;min-width:54px}.match-actions-grid span{opacity:.72}
.match-action-players{display:grid;gap:8px}.match-action-players h4{margin:4px 0 8px}.match-action-players button{display:flex;justify-content:flex-start;gap:10px;min-height:52px}.match-action-players .back-action{justify-content:center;margin-bottom:6px}
@media(max-width:620px){#home .graphical-menu{grid-template-columns:1fr 1fr;gap:10px;margin:16px auto}#home .menu-card{min-height:122px;padding:14px}#home .big-title{font-size:22px}#home .big-sub{font-size:12px}#home .graphical-menu .card-settings{grid-column:1/-1;min-height:92px}.hub-actions-tab{font-size:11px}}

/* v0.26 - one-screen active lineup + sticky compact score */
.hub-group-label.goalkeeper{background:rgba(55,135,205,.18);color:#b9ddff;border:1px solid rgba(90,175,245,.28)}
.hub-group-label.disqualified{background:rgba(150,40,55,.2);color:#ffb7c0;border:1px solid rgba(235,75,95,.3)}
.hub-player-row.is-disqualified{opacity:.48;filter:saturate(.45)}
.hub-frozen-note{font-size:11px;text-align:center;opacity:.7;padding:5px 0 1px}
.hub-player-row.is-goalkeeper{border-color:rgba(90,175,245,.32)}
@media(max-width:760px){
 #controlHub>header{display:none}
 #controlHub .hub-scoreboard{top:0;margin:0 auto 4px;padding:3px 5px;border-radius:0 0 11px 11px;grid-template-columns:minmax(0,1fr) 92px minmax(0,1fr);gap:4px;min-height:62px}
 #controlHub .hub-team-score{min-height:0!important;padding:2px 4px!important;background:transparent;border:0}
 #controlHub .hub-team-name{height:14px;line-height:14px;font-size:10px!important}
 #controlHub .hub-score{height:31px;line-height:31px;font-size:32px!important}
 #controlHub .hub-score-correct{margin-top:1px;gap:3px}
 #controlHub .hub-score-correct button{min-height:24px;padding:1px 9px;font-size:15px}
 #controlHub .hub-clock{grid-column:auto;grid-row:auto;min-width:0!important;padding:2px!important;background:transparent;border:0}
 #controlHub .hub-clock>div:first-child{font-size:22px!important;line-height:25px}
 #controlHub .hub-clock #hubPhase{font-size:9px}
 #controlHub .hub-clock small{display:none}
 #controlHub .hub-warnings{display:none}
 #controlHub .hub-team-tabs{top:66px;margin:3px auto 4px;padding:3px;gap:4px;border-radius:10px}
 #controlHub .hub-team-tab{min-height:34px;padding:3px 6px}
 #controlHub .hub-team-tab span{font-size:11px}
 #controlHub .hub-team-panel{padding:4px 5px}
 #controlHub .hub-team-header{min-height:22px}
 #controlHub .hub-team-header h3{font-size:12px;margin:0}
 #controlHub .hub-count{font-size:9px;padding:3px 6px}
 #controlHub .hub-group-label{position:static!important;margin:3px 0 1px;padding:3px 7px;font-size:8px}
 #controlHub .hub-player-list{gap:3px}
 #controlHub .hub-player-row.home-row,#controlHub .hub-player-row.away-row{padding:4px 6px;border-radius:9px}
 #controlHub .hub-player-main{grid-template-columns:44px minmax(0,1fr) 42px 42px;gap:4px;min-height:29px}
 #controlHub .hub-player-id{font-size:12px}
 #controlHub .hub-player-name{font-size:12px;line-height:13px}
 #controlHub .hub-player-name small{font-size:8px;line-height:9px}
 #controlHub .hub-player-stat{font-size:11px}
 #controlHub .hub-switch{width:38px;height:23px;padding:2px}
 #controlHub .hub-switch span{width:17px;height:17px}
 #controlHub .hub-switch.on span{transform:translateX(15px)}
 #controlHub .hub-fast-actions{grid-template-columns:1fr 1fr 1.25fr 36px;gap:3px;margin-top:3px}
 #controlHub .hub-fast-actions button{min-height:31px;font-size:9px;padding:3px 2px;border-radius:7px}
 #controlHub .hub-fast-actions .detail-shot-btn{font-size:17px}
 #controlHub .hub-bottom-actions{margin-top:6px;padding:5px;gap:3px}
 #controlHub .hub-bottom-actions button{min-height:36px;font-size:9px;padding:4px 2px}
 .hub-actions-tab{top:43%;padding:10px 5px;font-size:9px}
}

/* iPhone player cards: readable names and compact substitutions */
.hub-keepers{margin-top:12px;border:1px solid #355677;border-radius:12px;background:rgba(15,35,55,.85)}
.hub-keepers summary{padding:13px;font-weight:800;cursor:pointer;min-height:44px}
.hub-keeper-list{display:grid;gap:6px;padding:6px}
@media(max-width:760px){
 #controlHub .hub-player-row.home-row,#controlHub .hub-player-row.away-row{padding:8px;border-radius:12px}
 #controlHub .hub-player-main{grid-template-columns:36px minmax(0,1fr) 36px 44px;align-items:center;min-height:44px}
 #controlHub .hub-player-name{font-size:19px;line-height:22px;overflow-wrap:anywhere;min-width:0}
 #controlHub .hub-player-name small{font-size:11px;line-height:14px;margin-top:2px}
 #controlHub .hub-player-id{font-size:14px}
 #controlHub .hub-player-stat{font-size:12px}
 #controlHub .hub-switch-wrap{grid-column:4;grid-row:1;align-self:center}
 #controlHub .hub-fast-actions{margin-top:6px}
 #controlHub .hub-fast-actions button{min-height:40px;font-size:11px}
 #controlHub .hub-player-list{gap:6px}
}
@media(display-mode:standalone){.screen{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(80px,env(safe-area-inset-bottom))}}

#setupHomeName,#setupAwayName{margin-top:8px}
#controlHub .hub-team-tabs{grid-template-columns:minmax(0,1fr) auto}
.hub-team-tab-buttons{display:grid;grid-template-columns:1fr 1fr;gap:4px;min-width:0}
.hub-menu-button{min-height:44px;padding:6px 10px;font-size:13px;white-space:nowrap}
@media(max-width:760px){#controlHub .hub-team-tab{min-height:44px}}

[data-shot-write][hidden]{display:none!important}
