:root{--c-bg:#0d0d0d;--c-surface:#1a1a1a;--c-surface2:#252525;--c-border:#333;--c-text:#f0f0f0;--c-muted:#888;--c-primary:#2563eb;--c-primary-hover:#1d4ed8;--c-success:#16a34a;--c-danger:#dc2626;--c-danger-hover:#b91c1c;--c-warning:#d97706;--c-on-ice:#1d4ed8;--c-on-ice-glow:#2563eb66;--radius:8px;--tap-min:44px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--c-bg);height:100%;color:var(--c-text);-webkit-tap-highlight-color:transparent;touch-action:manipulation;font-family:system-ui,-apple-system,sans-serif;font-size:16px}button{cursor:pointer;background:var(--c-surface2);color:var(--c-text);border-radius:var(--radius);min-height:var(--tap-min);border:none;padding:.5rem 1rem;font-size:1rem;transition:background .15s}button:active{opacity:.75}.btn-primary{background:var(--c-primary)}.btn-primary:hover{background:var(--c-primary-hover)}.btn-danger{background:var(--c-danger)}.btn-danger:hover{background:var(--c-danger-hover)}.btn-success{background:var(--c-success)}input,select,textarea{background:var(--c-surface2);border:1px solid var(--c-border);border-radius:var(--radius);color:var(--c-text);width:100%;min-height:var(--tap-min);padding:.5rem .75rem;font-size:1rem}label{color:var(--c-muted);margin-bottom:.25rem;font-size:.85rem;display:block}.page{max-width:600px;margin:0 auto;padding:1rem}.card{background:var(--c-surface);border-radius:var(--radius);margin-bottom:.75rem;padding:1rem}.row{align-items:center;gap:.5rem;display:flex}.col{flex-direction:column;gap:.5rem;display:flex}.grid2{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}h1{margin-bottom:1rem;font-size:1.4rem}h2{color:var(--c-muted);margin-bottom:.5rem;font-size:1.1rem}.selected-card{border:2px solid var(--c-primary)}.team-header-row{align-items:center;gap:.75rem;display:flex}.team-logo-thumb{object-fit:contain;border-radius:4px;flex-shrink:0;width:44px;height:44px}.team-logo-placeholder{color:#fff;text-shadow:0 1px 2px #00000080;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:.75rem;font-weight:700;display:flex}.team-header-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.team-abbr-chip{color:var(--c-muted);font-family:monospace;font-size:.75rem}.our-team-chip{background:var(--c-primary);color:#fff;border-radius:3px;width:fit-content;padding:1px 5px;font-size:.65rem;font-weight:700}.team-edit-form{border-top:1px solid var(--c-border);margin-top:1rem;padding-top:1rem}.edit-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.edit-grid label{color:var(--c-muted);margin-bottom:3px;font-size:.75rem;display:block}.edit-grid input{width:100%}.color-row{align-items:center;gap:.4rem;display:flex}.color-swatch{cursor:pointer;border-radius:4px;flex-shrink:0;width:40px;height:38px;padding:2px}.color-hex{flex:1;font-family:monospace;font-size:.85rem}.logo-section{margin-top:.75rem}.logo-section>label{color:var(--c-muted);margin-bottom:.4rem;font-size:.75rem;display:block}.logo-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.logo-preview{object-fit:contain;border:1px solid var(--c-border);background:#f0f0f0;border-radius:6px;width:72px;height:72px}.no-logo{color:var(--c-muted);font-size:.8rem}.logo-hint{color:var(--c-muted);margin:.25rem 0 0;font-size:.72rem}.roster-row{background:var(--c-bg-alt);border-radius:4px;justify-content:space-between;align-items:center;padding:.3rem .5rem;display:flex}.del-btn{color:var(--c-danger,#e53e3e);cursor:pointer;background:0 0;border:none;padding:0 .3rem;font-size:.9rem}.roster-edit-row{align-items:center;gap:.3rem;padding:.2rem 0;display:flex}.sm-btn{padding:.25rem .55rem;font-size:.8rem}.sm-btn.danger{background:var(--c-danger,#e53e3e);color:#fff}.mt1{margin-top:.75rem}.mt2{margin-top:1.25rem}.game-card{background:var(--c-surface);border-radius:var(--radius);cursor:pointer;margin-bottom:.5rem;padding:.75rem 1rem;transition:background .15s}.game-card:active{background:var(--c-surface2)}.game-card-score{align-items:center;gap:.75rem;margin-bottom:.25rem;font-size:1.1rem;display:flex}.game-card-sep{color:var(--c-muted)}.game-card-meta{color:var(--c-muted);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.status-badge{background:var(--c-surface2);text-transform:uppercase;border-radius:3px;padding:.1rem .4rem;font-size:.7rem}.status-badge.active{background:var(--c-success);color:#fff}.status-badge.final{background:var(--c-border)}.clock-bar{background:var(--c-surface);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;padding:.75rem 1rem;display:flex}.clock-display{align-items:center;gap:.6rem;display:flex}.period-label{color:var(--c-warning);font-size:.85rem;font-weight:700}.period-label.final{color:#a855f7;letter-spacing:.06em;font-size:1rem}.clickable{min-height:unset;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:.2rem .4rem;transition:border-color .15s}.clickable:hover,.clickable:focus{border-color:var(--c-border);outline:none}.clock-time{font-variant-numeric:tabular-nums;letter-spacing:.02em;color:var(--c-text);font-size:2rem;font-weight:700}.clock-inline-edit{align-items:center;gap:.3rem;display:flex}.period-edit-input{text-align:center;width:52px;min-height:unset;padding:.25rem;font-size:.95rem}.period-edit-select{min-height:unset;padding:.25rem .4rem;font-size:.95rem}.inline-ok,.inline-cancel{min-height:unset;padding:.2rem .5rem;font-size:.9rem}.inline-ok{color:var(--c-success)}.inline-cancel{color:var(--c-muted)}.clock-controls{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.clock-controls button{min-height:36px;padding:.4rem .7rem;font-size:.85rem}.btn-final{background:var(--c-surface2);border:1px solid var(--c-border);color:var(--c-muted)}.btn-final.active{color:#a855f7;cursor:default;background:#a855f726;border-color:#a855f7;font-weight:700}.stat-bar{background:var(--c-surface);border-radius:var(--radius);flex-direction:column;gap:.6rem;margin-bottom:.75rem;padding:.75rem 1rem;display:flex}.score-display{justify-content:center;align-items:center;gap:1rem;display:flex}.score-team{align-items:center;gap:.5rem;display:flex}.score-team.away{flex-direction:row-reverse}.team-col{flex-direction:column;align-items:center;gap:1px;display:flex}.team-abbr{color:var(--c-muted);text-transform:uppercase;font-size:.85rem;font-weight:600}.shots-total{color:var(--c-muted);font-variant-numeric:tabular-nums;font-size:.7rem}.score-num{font-size:2.2rem;font-weight:700;line-height:1}.score-sep{color:var(--c-muted);font-size:1.5rem}.score-btn{min-height:unset;background:0 0;border:2px solid #0000;border-radius:6px;padding:.1rem .3rem;transition:border-color .15s}.score-btn:hover,.score-btn:focus{border-color:var(--c-border);outline:none}.action-btns{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.btn-goal{background:var(--c-success);min-height:56px;font-size:1.1rem;font-weight:700}.btn-penalty{background:var(--c-warning);min-height:56px;font-size:1.1rem;font-weight:700}.shot-btns{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.shot-btns button{min-height:40px;font-size:.85rem}.player-card{background:var(--c-surface2);border:2px solid var(--c-border);border-radius:var(--radius);flex-direction:column;flex:72px;justify-content:center;align-items:center;gap:2px;min-width:72px;min-height:80px;padding:.4rem .3rem;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.player-card.pos-f{border-color:#2563eb}.player-card.pos-d{border-color:#b45309}.player-card.pos-g{border-color:#16a34a}.player-card.on-ice.pos-f{background:#2563eb8c;box-shadow:0 0 12px #2563eb99}.player-card.on-ice.pos-d{background:#b453098c;box-shadow:0 0 12px #b4530999}.player-card.on-ice.pos-g{background:#16a34a8c;box-shadow:0 0 12px #16a34a99}.player-card.penalized,.player-card.penalized.on-ice.pos-f,.player-card.penalized.on-ice.pos-d,.player-card.penalized.on-ice.pos-g{background:#dc262673;border-color:#dc2626;box-shadow:0 0 12px #dc262680}.player-card.disabled{opacity:.35;pointer-events:none}.player-card.dragging{opacity:.4;border-style:dashed}.player-card.drop-target{outline-offset:2px;outline:2px solid #fff}.player-card .jersey{font-size:1.2rem;font-weight:700;line-height:1}.player-card .name{color:var(--c-muted);text-transform:uppercase;letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;font-size:clamp(.6rem,2.2vw,.9rem);overflow:hidden}.player-grid{flex-direction:column;gap:.75rem;padding-bottom:1rem;display:flex}.card-grid{grid-template-columns:repeat(5,1fr);gap:.4rem;display:grid}.goalie-grid{grid-template-columns:repeat(2,1fr);gap:.4rem;margin-top:.4rem;display:grid}.clear-btn{width:100%;min-height:52px;margin-top:.5rem;padding:.75rem;font-size:1rem;font-weight:600}.suggestion-banner{background:var(--c-surface);border:1px solid var(--c-primary);border-radius:var(--radius);padding:.75rem}.suggestion-text{color:var(--c-muted);margin-bottom:.4rem;font-size:.8rem}.suggestion-players{flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem;display:flex}.suggestion-chip{background:var(--c-surface2);border:2px solid var(--c-border);border-radius:4px;padding:.2rem .5rem;font-size:.85rem}.suggestion-chip.pos-f{border-color:#2563eb}.suggestion-chip.pos-d{border-color:#b45309}.suggestion-chip.pos-g{border-color:#16a34a}.penalty-box{background:var(--c-surface);border:1px solid var(--c-warning);border-radius:var(--radius);margin-bottom:.75rem;padding:.6rem .75rem}.penalty-box-title{color:var(--c-warning);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.4rem;font-size:.75rem}.penalty-row{align-items:center;gap:.5rem;padding:.2rem 0;font-size:.85rem;display:flex}.pen-team{color:var(--c-muted);min-width:30px}.pen-player{flex:1}.pen-type{color:var(--c-muted);font-size:.75rem}.pen-time{color:var(--c-warning);text-align:right;min-width:40px;font-weight:600}.pen-end-btn{border:1px solid var(--c-border);color:var(--c-muted);min-height:unset;background:0 0;border-radius:4px;flex-shrink:0;padding:.15rem .4rem;font-size:.75rem}.modal-overlay{z-index:100;background:#000000b3;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--c-surface);border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:600px;max-height:90vh;padding:1rem;overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:1.1rem;font-weight:700;display:flex}.modal-close{min-height:unset;background:0 0;padding:.2rem .5rem;font-size:1.2rem}.step h2{margin-bottom:.75rem;font-size:1rem}.step-hint{color:var(--c-muted);font-size:.8rem;font-weight:400}.big-btn{flex-direction:column;gap:.25rem;min-height:80px;font-size:1rem;font-weight:700}.big-btn-sub{opacity:.7;font-size:.7rem;font-weight:400}.player-pick-grid{flex-direction:column;gap:.4rem;max-height:55vh;display:flex;overflow-y:auto}.pick-btn{text-align:left;background:var(--c-surface2);padding:.6rem .75rem;font-size:.95rem}.pick-btn.muted{color:var(--c-muted)}.flags-row{flex-wrap:wrap;gap:.5rem;display:flex}.flag-btn{background:var(--c-surface2);border:2px solid var(--c-border);min-width:56px}.flag-btn.active{border-color:var(--c-warning);color:var(--c-warning);background:#d9770633;font-weight:700}.clock-preview{color:var(--c-muted);font-size:.85rem}.goal-summary{color:var(--c-muted);font-size:.9rem}.goal-list{flex-direction:column;gap:.4rem;max-height:60vh;display:flex;overflow-y:auto}.goal-item{background:var(--c-surface2);border-radius:var(--radius);padding:.6rem .75rem}.goal-row{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.goal-row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.goal-time{color:var(--c-warning);font-size:.75rem;font-weight:600}.goal-scorer-text{font-size:.95rem;font-weight:600}.goal-assists-text{color:var(--c-muted);font-size:.8rem}.goal-flags{flex-wrap:wrap;gap:.3rem;margin-top:2px;display:flex}.goal-flags span{color:var(--c-warning);background:#d9770640;border-radius:3px;padding:1px 5px;font-size:.65rem;font-weight:700}.goal-row-actions{flex-shrink:0;gap:.3rem;display:flex}.action-btn{min-height:unset;background:var(--c-surface);padding:.25rem .6rem;font-size:.8rem}.action-btn.danger{color:var(--c-danger)}.goal-edit-form{flex-direction:column;gap:.5rem;display:flex}.settings-modal{max-height:85vh;overflow-y:auto}.settings-section{margin-bottom:1.25rem}.settings-section h2{text-transform:uppercase;letter-spacing:.06em;color:var(--c-muted);border-bottom:1px solid var(--c-border);margin-bottom:.6rem;padding-bottom:.3rem;font-size:.75rem}.settings-row{justify-content:space-between;align-items:center;gap:1rem;padding:.45rem 0;display:flex}.settings-row label{color:var(--c-text);flex:1;margin:0;font-size:.95rem}.settings-row input[type=checkbox]{width:20px;height:20px;min-height:unset;cursor:pointer}.game-page{max-width:600px;margin:0 auto;padding:.75rem .75rem 2rem}.game-header{align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.back-btn{color:var(--c-muted);min-height:unset;background:0 0;padding:.3rem 0;font-size:.9rem}.game-title{text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.95rem;font-weight:600;overflow:hidden}.learning-toggle{color:var(--c-muted);cursor:pointer;align-items:center;gap:.3rem;font-size:.75rem;display:flex}.learning-toggle input{width:16px;height:16px}.settings-btn{min-height:unset;color:var(--c-muted);background:0 0;border-radius:4px;padding:.3rem .4rem;font-size:1.1rem}.settings-btn:hover{color:var(--c-text)}body.overlay-mode{overflow:hidden;background:0 0!important}.overlay-scorebug-wrap{flex-direction:column;font-family:system-ui,sans-serif;display:inline-flex}.overlay-scorebug{color:#fff;white-space:nowrap;background:#0a0a0ad9;border:1px solid #ffffff26;border-radius:6px 6px 0 0;align-items:center;gap:.75rem;padding:.4rem 1rem;font-size:1.2rem;font-weight:700;display:inline-flex}.overlay-scorebug-wrap:not(:has(.scorebug-penalty-bar)) .overlay-scorebug{border-radius:6px}.scorebug-penalty-bar{background:#0a0a0ad1;border:1px solid #ffffff1f;border-top:none;border-radius:0 0 6px 6px;flex-direction:column;gap:2px;padding:.2rem .6rem;display:flex}.scorebug-penalty-row{color:#fff;white-space:nowrap;align-items:center;gap:.5rem;font-size:.72rem;display:flex}.sp-team{color:#fca5a5;min-width:28px;font-weight:700}.sp-player{color:#ffffffd9;flex:1}.sp-type{color:#ffffff80;font-size:.65rem}.sp-time{color:#fbbf24;font-variant-numeric:tabular-nums;text-align:right;min-width:32px;font-weight:700}.scorebug-score{text-align:center;min-width:1.5ch;font-size:1.5rem}.scorebug-sep{color:#fff6;font-size:.9rem}.scorebug-period{color:#fbbf24;font-size:.9rem}.scorebug-final{color:#a855f7;letter-spacing:.08em;font-size:.95rem;font-weight:700}.scorebug-team-ident{flex-direction:column;align-items:center;gap:2px;min-width:48px;display:flex}.scorebug-logo{object-fit:contain;width:32px;height:32px}.scorebug-abbr{letter-spacing:.05em;color:#ffffffd9;font-size:.7rem;font-weight:700}.overlay-goal-banner{color:#fff;background:#0f285aeb;border-left:4px solid #fbbf24;border-radius:0 6px 6px 0;padding:.6rem 1.2rem;font-family:system-ui,sans-serif;animation:.3s slide-in}@keyframes slide-in{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}.goal-label{color:#fbbf24;font-size:1.1rem;font-weight:700}.goal-scorer{font-size:1rem}.goal-assists{color:#ffffffb3;font-size:.85rem}.goal-meta{color:#ffffff80;font-size:.8rem}.overlay-penalty-list{flex-direction:column;gap:.4rem;font-family:system-ui,sans-serif;display:flex}.overlay-penalty-row{color:#fff;background:#781414e0;border-radius:4px;align-items:center;gap:.75rem;padding:.4rem .8rem;font-size:.9rem;display:flex}.overlay-period-end{color:#fff;background:#0a0a0aeb;border:1px solid #fff3;border-radius:8px;min-width:340px;padding:1rem 1.5rem;font-family:system-ui,sans-serif}.period-end-title{color:#fbbf24;margin-bottom:.75rem;font-size:1rem;font-weight:700}.period-end-table{border-collapse:collapse;width:100%;font-size:.85rem}.period-end-table th{color:#ffffff80;text-align:right;padding:.2rem .5rem;font-weight:500}.period-end-table th:first-child{text-align:left}.period-end-table td{text-align:right;padding:.2rem .5rem}.period-end-table td:first-child{text-align:left}.period-end-table .total-row td{border-top:1px solid #fff3;padding-top:.4rem;font-weight:700}
