:root{--pink:#db3069;--dark:#2c3e50;--dark-2:#343a40;--text:#333;--bg:#fff;--soft:#f8f9fa;--border:#e9ecef;--shadow:0 2px 12px rgba(0,0,0,.05);--player-col:2fr;--q-col:1fr;--total-col:1.2fr;--qcols:1fr 1fr 1fr 1fr 1fr 1fr;--row-pad:16px 12px;--h2:2rem;--h2-sm:1.5rem;--score:2.5rem;--score-sm:2rem;--table-min:840px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:16px;line-height:1.6;min-height:100vh}h1,h2,h3,h4{color:#1a1a1a;font-weight:700}.hidden{display:none!important}.text-center{text-align:center}.mb-0{margin-bottom:0}.mt-4{margin-top:1rem}.netball-scorer-app{background:var(--bg);margin:0 auto;max-width:1000px;padding:24px 24px 64px}@media (max-width:768px){.netball-scorer-app{padding:160px 8px 34px}}.section-label{align-items:center;color:var(--pink);display:flex;font-size:.85rem;font-weight:700;gap:16px;letter-spacing:1.5px;margin-bottom:24px;text-transform:uppercase}.section-label:after{background:#e0e0e0;content:"";flex:1;height:1px}@media (max-width:768px){.section-label{font-size:.9rem}}.stats-table-wrap{margin-bottom:20px}.stats-table-wrap--scroll{overflow-x:auto;width:100%;-webkit-overflow-scrolling:touch}.stats-table{background:transparent;border:none;border-collapse:collapse;font-size:12px;table-layout:auto;width:100%}.stats-table thead tr{border-bottom:1px solid #f0f0f0}.stats-table th{background:transparent;border:none;color:#aaa;font-size:12px;font-weight:700;letter-spacing:.5px;padding:6px 3px;text-align:center;text-transform:uppercase;white-space:nowrap}.stats-table th.col-player{padding-left:6px;text-align:left}.stats-table td{background:transparent;border:none;font-size:12px;padding:6px 3px;text-align:center;vertical-align:middle;white-space:nowrap}.stats-table td.col-player{color:var(--dark);font-size:15px;font-weight:600;padding-left:6px;padding-right:12px;text-align:left;white-space:nowrap}.stats-table td.col-total{font-weight:700;padding-left:8px}.stats-table td.col-total .stat-ratio{color:var(--pink)}.stats-table tr.row-team-total td{background:rgba(219,48,105,.05);font-weight:600}.stats-table tr.row-team-total td.col-total .stat-ratio{color:var(--pink)}.stats-table tr.row-team-total .stat-pct.danger{color:#d9534f;font-weight:700}.stats-table tr.row-opponent-total td{background:rgba(44,62,80,.04);font-weight:600}.needs-percentage,.needs-team-percentage{align-items:center;display:inline-flex;flex-direction:column;white-space:nowrap}.stat-ratio{color:#444;font-size:14px;line-height:1.2}.stat-pct{color:#aaa;font-size:12px;margin-top:1px}.stat-dash{color:#ccc;font-size:13px}.stat-pct.danger{color:#d9534f;font-weight:700}.stats-table tr.row-team-total td:first-child{border-radius:6px 0 0 6px}.stats-table tr.row-team-total td:last-child{border-radius:0 6px 6px 0}.stats-table tr.row-opponent-total td:first-child{border-radius:6px 0 0 6px}.stats-table tr.row-opponent-total td:last-child{border-radius:0 6px 6px 0}.stats-legend{color:#d9534f;display:flex;font-size:12px;gap:16px;letter-spacing:.3px;margin-bottom:40px;margin-top:12px}.legend-item{align-items:center;display:flex;gap:4px}.legend-icon{border-radius:2px;flex-shrink:0;height:8px;width:8px}.legend-icon--red{background:#d9534f}.quarterly-annex{margin-top:48px}.qb-table{margin:0 auto;max-width:480px;width:100%}.qb-row{align-items:center;border-bottom:1px solid #f0f0f0;display:grid;gap:0;grid-template-columns:1fr 1.5fr 2fr;padding:12px 0;width:100%}.qb-row:last-child{border-bottom:none}.qb-row.hdr{border-bottom:1px solid #f0f0f0;color:#aaa;padding:4px 0 8px}.qb-hdr-team,.qb-row.hdr{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.qb-hdr-team.team{color:var(--pink)}.qb-hdr-team.opp{color:var(--dark)}.qb-q-col{display:flex}.qb-q-col,.qb-q-pill{align-items:center;justify-content:center}.qb-q-pill{background:rgba(219,48,105,.1);border-radius:10px;color:var(--pink);display:inline-flex;font-size:14px;font-weight:700;padding:3px 8px;white-space:nowrap}.qb-score-group{align-items:center;display:flex;gap:4px;justify-content:center}.qb-score-num{font-size:17px;font-weight:700}.qb-score-num.team{color:var(--pink)}.qb-score-num.opp{color:var(--dark)}.qb-dash{color:#bbb;font-size:15px}.qb-shooters{color:#555;font-size:16px}.qb-shooter{align-items:baseline;display:flex;gap:5px;line-height:1.7}.qb-shooter-stat{color:#333;font-size:13px}@media (max-width:768px){.quarterly-annex{margin-top:32px}}.annex-grid{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.annex-grid--4{grid-template-columns:repeat(4,1fr)}.annex-grid--5{grid-template-columns:repeat(6,1fr)}.annex-grid--5 .annex-card:nth-child(-n+3){grid-column:span 2}.annex-grid--5 .annex-card:nth-child(4){grid-column:2/span 2}.annex-grid--5 .annex-card:nth-child(5){grid-column:4/span 2}.annex-grid--8{grid-template-columns:repeat(4,1fr)}.annex-header-row{display:none}.annex-card{background:var(--bg);border:.5px solid var(--border);border-radius:12px;padding:14px 16px}.annex-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.annex-q-badge{background:rgba(219,48,105,.1);border-radius:20px;color:var(--pink);display:inline-block;font-size:14px;font-weight:600;padding:2px 8px}.annex-q-badge-inner{color:inherit;font-size:inherit;font-weight:inherit}.annex-card-score{font-size:21px;font-weight:600}.annex-score-t{color:var(--pink)}.annex-score-sep{color:var(--border);font-weight:400}.annex-score-o{color:var(--dark)}.annex-card-divider{background:var(--border);height:.5px;margin-bottom:10px}.annex-shooter-line{align-items:center;display:flex;font-size:16px;justify-content:space-between;padding:3px 0}.annex-shooter-name{color:var(--text)}.annex-shooter-stat{color:#888}@media (max-width:768px){.quarterly-annex{background:#fff;border-radius:0;margin-top:24px;padding:0}.annex-grid,.annex-grid--4,.annex-grid--5,.annex-grid--8{border:none;border-radius:0;border-top:1px solid #e9ecef;display:block;font-size:19px;margin-top:16px;overflow:visible;width:100%}.annex-header-row{background:transparent;border-bottom:1px solid #e9ecef;display:grid;grid-template-columns:minmax(70px,10%) minmax(140px,18%) 1fr;padding:10px 4%}.annex-header-q{display:block}.annex-header-score,.annex-header-shooters{color:#888;display:block;font-size:18px;font-weight:400;padding:0}.annex-header-score{text-align:center}.annex-header-shooters{padding-left:16px}.annex-card{align-items:start;background:none;border:none;border-bottom:1px solid #e9ecef;border-radius:0;display:grid;grid-template-columns:minmax(70px,10%) minmax(140px,18%) 1fr;padding:18px 16px}.annex-card:last-child{border-bottom:none}.annex-card .annex-q-badge{align-items:flex-end;background:transparent;border:none;border-radius:0;display:flex;justify-content:flex-end;padding:2px 0 0}.annex-q-badge-inner{background:rgba(219,48,105,.1);border-radius:20px;color:var(--pink);display:inline-block;font-size:16px;font-weight:600;padding:4px 12px}.annex-card .annex-card-score{align-items:flex-start;border:none;display:flex;font-size:23px;font-weight:700;justify-content:center;padding:0;white-space:nowrap}.annex-card .annex-shooter-lines-wrapper{border:none;display:block;max-width:none;padding:0 0 0 16px;width:auto}.annex-shooter-line{border:none;display:block;font-size:16px;padding:1px 0}.annex-shooter-name{color:#1a1a1a;font-size:16px;font-weight:400;white-space:normal}.annex-shooter-stat{color:#1a1a1a;font-size:16px;margin-left:4px}.annex-score-t{color:#db3069}.annex-score-sep{color:#bbb;font-size:18px;font-weight:400;margin:0 4px}.annex-score-o{color:#2c3e50}.annex-card-divider,.annex-card-header{display:none}}.match-detail{display:grid;gap:24px}@media (max-width:768px){.match-detail{gap:16px;padding:0}}@media (min-width:769px){.match-detail{gap:24px;grid-template-columns:repeat(auto-fit,minmax(480px,1fr))}}.quarter{background:var(--bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;transition:.2s}.quarter:hover{border-color:#ddd;box-shadow:0 4px 20px rgba(0,0,0,.08)}.quarter.quarter--saved{background:#fafafa;border-left:5px solid var(--pink)}.quarter h3{background:var(--dark-2);color:#fff;font-size:1.2rem;font-weight:600;margin:0;padding:16px 20px;text-align:center}@media (max-width:768px){.quarter h3{font-size:1.1rem;padding:12px 16px}}.quarter-content,.quarter-interactive-content{padding:24px}@media (max-width:768px){.quarter-content,.quarter-interactive-content{padding:16px}}.quarter-opponent-score-input{align-items:center;background:var(--soft);border:1px solid var(--border);border-radius:8px;display:flex;font-size:1rem;justify-content:space-between;margin-bottom:20px;padding:16px}.quarter-opponent-score-input label{color:var(--dark);font-weight:600}.counter{gap:12px}.counter,.counter button{align-items:center;display:flex}.counter button{background:var(--pink);border:none;border-radius:50%;color:#fff;cursor:pointer;font-size:1.5rem;font-weight:700;height:40px;justify-content:center;transition:.2s;width:40px}.counter button:hover{background:var(--dark);transform:scale(1.05)}.quarter-opponent-score-value{background:#fff;border:2px solid var(--pink);border-radius:6px;color:var(--pink);font-size:1.6rem;font-weight:700;min-width:40px;padding:8px 12px;text-align:center}@media (max-width:768px){.counter{gap:8px}.counter button{font-size:1.2rem;height:36px;width:36px}.quarter-opponent-score-input{font-size:.9rem;margin-bottom:16px;padding:12px}.quarter-opponent-score-value{font-size:1.3rem;min-width:36px;padding:6px 10px}}.shooter-list{display:grid;gap:12px}.shooter{background:#fff;border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:10px 16px;justify-content:space-between;padding:12px;position:relative}.shooter,.shooter-name-section{align-items:center;display:flex}.shooter-name-section{flex:1 1 auto;gap:8px;min-width:0;padding-right:30px}.shooter-name-display{color:var(--dark);font-size:1.1rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shooter input[type=text]{border:2px solid #ddd;border-radius:6px;flex:1;font-size:1rem;padding:8px 12px}.edit-shooter,.remove-shooter{background:none;border:none;border-radius:4px;color:var(--pink);cursor:pointer;font-size:1rem;padding:4px}.remove-shooter{color:#6c757d}.counter-group{display:grid;flex:1 1 100%;gap:12px;grid-template-columns:1fr 1fr}.counter-group .counter{background:var(--soft);border:1px solid var(--border);border-radius:8px;flex-direction:row;gap:8px;padding:8px 10px}.counter-group .counter label{color:var(--dark);font-size:.9rem;font-weight:600;margin-right:auto;text-transform:uppercase}.counter-group .controls{align-items:center;display:flex;gap:8px}.counter-group .controls span{color:var(--pink);font-size:1.2rem;font-weight:700;min-width:20px;text-align:center}.counter-group .controls button{border-radius:50%;font-size:1.1rem;height:32px;width:32px}@media (max-width:768px){.shooter-list{gap:8px}.shooter-name-display{font-size:.95rem}.counter-group{gap:8px}.shooter-name-section{padding-right:30px}.counter-group .counter{flex-direction:column;gap:2px;padding:4px 6px}.counter-group .counter label{color:#6c757d;font-size:.65rem;font-weight:700;letter-spacing:.5px;line-height:1;margin-right:0}.counter-group .controls button{font-size:1rem;height:28px;width:28px}.remove-shooter{position:absolute;right:8px;top:8px}}@media (min-width:769px){.counter-group{flex:0 1 auto}.shooter-name-section{padding-right:0}}.quarter-actions{display:grid;gap:16px;grid-template-columns:1fr 1fr;margin-top:24px}.add-shooter-btn,.save-quarter-btn{align-items:center;border:2px solid transparent;border-radius:8px;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;letter-spacing:.5px;padding:12px 16px;text-transform:uppercase;transition:.2s}.add-shooter-btn{background:var(--soft);border-color:var(--border);color:var(--dark)}.add-shooter-btn:hover{background:var(--border)}.save-quarter-btn{background:var(--pink);color:#fff}.save-quarter-btn:hover{opacity:.9;transform:translateY(-2px)}.save-quarter-btn:disabled{background:var(--border);border-color:var(--border);color:#adb5bd;cursor:not-allowed;transform:none}.add-quarter-btn{background:var(--soft);border:2px dashed var(--border);border-radius:10px;color:var(--dark);cursor:pointer;display:block;font-size:.9rem;font-weight:600;margin-top:16px;padding:12px;text-align:center;width:100%}.add-quarter-btn:hover{border-color:var(--pink);color:var(--pink)}.saved-quarter-display{padding:20px}.saved-quarter-header-bar{align-items:center;border-bottom:2px solid var(--pink);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.saved-quarter-summary-title{color:var(--pink);font-size:1.3rem;font-weight:700;margin:0}.edit-quarter-btn{background:var(--dark);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:8px 16px;text-transform:uppercase;transition:.2s}.edit-quarter-btn:hover{background:var(--pink)}.saved-quarter-scores{background:var(--soft);border:1px solid var(--border);border-radius:8px;margin-bottom:20px;padding:16px 20px}.saved-quarter-scores strong{color:var(--dark);font-weight:700}.quarter-saved-opponent-score,.quarter-saved-team-score{border-radius:4px;color:var(--pink);font-size:1.2rem;font-weight:700;padding:2px 8px}.saved-shooter-header,.saved-shooter-row{display:grid;font-size:.9rem;grid-template-columns:2fr 1fr 1fr;padding:12px 16px}.saved-shooter-header{background:var(--dark-2);border-radius:8px 8px 0 0;color:#fff;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.saved-shooter-data-rows{border:1px solid var(--border);border-radius:0 0 8px 8px;border-top:none}.saved-shooter-row{border-bottom:1px solid var(--border)}.saved-shooter-row:last-child{border-bottom:none}.saved-shooter-row:nth-child(2n){background:var(--soft)}@media (max-width:768px){.saved-quarter-header-bar{padding:0 0 8px}.saved-quarter-summary-title{font-size:1.1rem}.saved-quarter-scores{padding:12px 16px}.saved-quarter-scores p{font-size:.9rem}.saved-shooter-header,.saved-shooter-row{font-size:.85rem;padding:10px}}.needs-percentage{position:relative}.needs-percentage:after{color:#555;content:attr(data-percentage);display:block;font-size:.8em;font-weight:500}.modal{align-items:center;backdrop-filter:blur(5px);background-color:rgba(0,0,0,.5);display:flex;inset:0;justify-content:center;opacity:0;position:fixed;transition:opacity .3s,visibility .3s;visibility:hidden;z-index:2000}.modal:not(.hidden){opacity:1;visibility:visible}.modal-content{background:#fff;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.15);max-width:400px;padding:24px;text-align:center;transform:scale(.9);transition:transform .3s;width:90%}.modal:not(.hidden) .modal-content{transform:scale(1)}.modal-content h4{color:var(--pink);font-size:1.4rem;font-weight:700;margin-bottom:16px}.modal-content input[type=text]{border:2px solid var(--border);border-radius:8px;font-size:1rem;margin-bottom:20px;padding:12px 16px;transition:border-color .2s;width:100%}.modal-content input[type=text]:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(219,48,105,.1);outline:none}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.modal-actions button{border:2px solid;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:700;letter-spacing:.3px;padding:12px 24px;text-transform:uppercase;transition:.2s}#confirmYesBtn,#promptConfirmBtn{background:var(--pink);border-color:var(--pink);color:#fff}#confirmYesBtn:hover,#promptConfirmBtn:hover{background:#fff;color:var(--pink)}#confirmNoBtn,#promptCancelBtn{background:transparent;border-color:var(--border);color:var(--dark)}#confirmNoBtn:hover,#promptCancelBtn:hover{background:#fff;color:var(--dark)}.stats-table-row .quarter-stat.text-danger{color:#d9534f;font-weight:600}.stats-table-row .total-stat.team-highlight.text-danger{color:#ffffe0!important}.header-a{background:#fff;border-bottom:3px solid #e9ecef;box-shadow:0 4px 12px rgba(0,0,0,.05);margin-bottom:32px;padding:24px 24px 20px}.header-a--win{border-bottom-color:#db3069}.header-a--draw,.header-a--loss{border-bottom-color:#e9ecef}.ha-mobile-nav,.ha-mobile-spacer{display:none}@media (max-width:768px){.header-a{border-radius:0;box-shadow:0 2px 8px rgba(0,0,0,.08);inset:0 auto auto 0;margin:0;padding:0;position:fixed;width:100%;z-index:1000}.ha-mobile-nav{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;padding:10px 16px}.ha-mobile-nav-back{align-items:center;color:var(--pink);display:flex;font-size:13px;font-weight:500;gap:4px;text-decoration:none}.ha-mobile-nav-back svg{flex-shrink:0;height:11px;width:7px}.ha-mobile-nav-title{color:#1a1a1a;font-size:14px;font-weight:600}.ha-mobile-content{padding:12px 16px}.ha-mobile-nav-back,.ha-mobile-nav-back:active,.ha-mobile-nav-back:visited{color:var(--pink);text-decoration:none}.ha-mobile-nav-back:active{opacity:.6}.ha-mobile-spacer{display:block}}.ha-eyebrow{color:#bbb;font-size:11px;font-weight:600;letter-spacing:1.5px;margin-bottom:6px;text-transform:uppercase}.ha-title{color:#2c3e50;font-size:20px;font-weight:700;margin-bottom:20px}@media (max-width:768px){.ha-title{font-size:16px;margin-bottom:12px}}.ha-scores{align-items:center;display:flex}.ha-team{flex:1}.ha-team--right{text-align:right}.ha-tname{color:#bbb;font-size:10px;font-weight:600;letter-spacing:.8px;margin-bottom:3px;text-transform:uppercase}.ha-score{font-size:52px;font-weight:700;line-height:1}@media (max-width:768px){.ha-score{font-size:40px}}.ha-score--win{color:#db3069}.ha-score--loss{color:#ddd}.ha-score--opp{color:#ccc}.ha-score--opp-win{color:#2c3e50}.ha-vs{align-self:center;color:#ddd;font-size:13px;padding:0 16px}.ha-badge{border-radius:20px;display:inline-block;font-size:11px;font-weight:700;margin-top:8px;padding:3px 12px}.ha-badge--win{background:rgba(30,126,52,.12);color:#1e7e34}.ha-badge--loss{background:rgba(192,57,43,.1);color:#c0392b}.ha-badge--draw{background:rgba(0,0,0,.06);color:#555}@media (min-width:769px){.section-label{font-size:clamp(.75rem,1vw,1rem)}.stats-table th{font-size:clamp(11px,.8vw,13px)}.stat-ratio,.stats-table td{font-size:clamp(13px,1vw,15px)}.stat-pct{font-size:clamp(11px,.7vw,12px)}.stats-table td.col-player{font-size:clamp(13px,1.1vw,16px)}}@media (max-width:768px){.stats-table-wrap:not(.stats-table-wrap--scroll){margin-left:-8px;margin-right:-8px}.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table{table-layout:auto;width:100%}.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table td,.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table th{font-size:11px;padding:5px 2px}.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table td.col-player,.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table th.col-player{font-size:13px;font-weight:600;max-width:none;overflow:visible;padding-left:4px;padding-right:4px;text-overflow:unset;white-space:nowrap;width:auto}.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table td.col-quarter,.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table th.col-quarter{min-width:52px;white-space:nowrap;width:52px}.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table td.col-total,.stats-table-wrap:not(.stats-table-wrap--scroll) .stats-table th.col-total{font-size:11px;min-width:56px;padding-left:4px;white-space:nowrap;width:56px}.stats-table-wrap:not(.stats-table-wrap--scroll) .stat-ratio{font-size:13px}.stats-table-wrap:not(.stats-table-wrap--scroll) .stat-pct{font-size:12px}}