:root{--bg-body:#020202;--bg-panel:#0a0f14;--bg-element:#11161d;--text-main:#fff;--text-muted:#64748b;--accent:#89bae4;--border:#1e293b;--success:#4ade80;--danger:#f87171;--penalty:#facc15;--font-main:"Inter",sans-serif;--font-mono:"JetBrains Mono",monospace}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-panel);border-left:1px solid var(--border);border-top:1px solid var(--border)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}body{font-family:var(--font-main);background:var(--bg-body);color:var(--text-main);flex-direction:column;height:100dvh;margin:0;padding:0;font-size:14px;display:flex;overflow:hidden}.mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:6px;font-size:.7rem;display:block}.nav-bar{background:var(--bg-body);border-bottom:1px solid var(--border);z-index:100;flex-shrink:0;align-items:center;gap:10px;height:60px;padding:0 20px;display:flex}.nav-logo{border-radius:4px;max-height:35px;margin-right:10px;display:none}.nav-title{font-family:var(--font-mono);color:var(--text-main);text-transform:uppercase;letter-spacing:1px;align-items:center;margin-right:auto;font-size:1.2rem;font-weight:700;display:flex}.nav-title span{color:var(--accent);margin-left:0;font-size:1.2rem}.global-team-wrap,.global-season-wrap{border-left:1px solid var(--border);align-items:center;gap:10px;height:100%;padding-left:15px;display:flex}.global-team-wrap{margin-left:auto}.global-season-wrap{margin-right:15px}.global-team-wrap .label,.global-season-wrap .label{align-items:center;margin-bottom:0;line-height:1;display:flex}.global-team-select,.global-season-select{border:1px solid var(--border);height:34px;color:var(--text-main);font-family:var(--font-mono);cursor:pointer;background:0 0;outline:none;margin-bottom:0;padding:0 10px;font-size:.8rem;font-weight:700;transition:all .2s}.global-season-select{border-color:var(--accent);color:var(--accent)}.global-team-select:hover{border-color:var(--accent)}.global-team-select option,.global-season-select option{background:var(--bg-panel);color:#fff}.nav-btn{color:var(--text-muted);cursor:pointer;font-family:var(--font-mono);text-transform:uppercase;background:0 0;border:1px solid #0000;padding:8px 12px;font-size:.8rem;transition:all .2s}.nav-btn.active{background:var(--accent);color:#000;font-weight:700}.view-section{flex:1;padding:20px;display:none;overflow-y:auto}.view-section.active{display:block}.plotter-grid{grid-template-columns:300px 1fr;gap:20px;height:100%;display:grid}.panel{background:var(--bg-panel);border:1px solid var(--border);flex-direction:column;padding:20px;display:flex;position:relative}.panel:after{content:"";border-top:1px solid var(--accent);border-left:1px solid var(--accent);width:10px;height:10px;position:absolute;top:-1px;left:-1px}.panel-header{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:10px;font-size:.75rem;display:flex}.header-tog-group{gap:10px;display:flex}.header-tog{cursor:pointer;color:var(--text-muted);border:1px solid #0000;padding:2px 6px;transition:all .2s}.header-tog.active{color:var(--accent);border-color:var(--accent);background:#89bae40d;font-weight:700}select,.btn-action,input[type=text],input[type=number],input[type=date],input[type=password],input[type=email],input[type=color],.select-trigger{background:var(--bg-element);border:1px solid var(--border);width:100%;height:42px;color:var(--text-main);font-family:var(--font-mono);text-align:center;border-radius:0;margin-bottom:12px;padding:0 12px;font-size:.85rem}.file-upload-wrapper{width:100%;margin-bottom:12px;display:inline-block;position:relative;overflow:hidden}.file-upload-btn{background:var(--bg-element);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;height:42px;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;padding:0 12px;font-size:.85rem;transition:all .2s;display:flex;overflow:hidden}.file-upload-btn:hover{border-color:var(--accent);background:var(--bg-panel);color:var(--text-main)}.file-upload-wrapper input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;left:0}input[type=color]{cursor:pointer;border:none;padding:0}.select-trigger{justify-content:space-between;align-items:center;margin-bottom:0;display:flex}.btn-action{letter-spacing:.05em;cursor:pointer;justify-content:center;align-items:center;font-weight:600;display:flex}select:focus,input:focus,.btn-action:hover{border-color:var(--accent);background:var(--bg-panel);outline:none}select{cursor:pointer}#last-log{font-family:var(--font-mono);color:var(--accent);border-left:2px solid var(--accent);margin-top:auto;padding-left:10px;font-size:.8rem}.multi-select{width:100%;font-family:var(--font-mono);margin-bottom:12px;position:relative}.select-trigger:after{content:"▼";color:var(--text-muted);font-size:.7em}.select-trigger:hover{border-color:var(--accent)}.game-list-container{border:1px solid var(--border);max-height:400px;margin-bottom:20px;overflow-y:auto}.game-list-item{background:var(--bg-panel);border-bottom:1px solid var(--border);cursor:pointer;align-items:center;padding:15px;display:flex}.game-list-item:hover{background:var(--bg-element)}.game-list-item input{width:20px;height:20px;accent-color:var(--accent);margin-right:15px}.game-list-text{font-family:var(--font-mono);color:var(--text-muted);font-size:.85rem}.game-list-item.selected .game-list-text{color:var(--text-main);font-weight:700}.timeline-bar{background:var(--bg-panel);border:1px solid var(--border);align-items:center;gap:15px;margin-bottom:20px;padding:10px 15px;display:flex}input[type=range]{-webkit-appearance:none;background:0 0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:16px;height:16px;margin-top:-6px}input[type=range]::-webkit-slider-runnable-track{cursor:pointer;background:var(--border);border-radius:2px;width:100%;height:4px}input[type=range]:focus{outline:none}.rink-wrapper{width:100%;max-width:900px;margin:0 auto;position:relative}.rink-container{aspect-ratio:748/347;cursor:crosshair;border:1px solid var(--border);background:#080c10;width:100%;position:relative;overflow:hidden}.rink-svg{opacity:.8;z-index:1;width:100%;height:100%;display:block;position:relative}.dots-layer,.heatmap-layer{pointer-events:none;width:100%;height:100%;transition:opacity .3s;position:absolute;top:0;left:0}.dots-layer{z-index:10}.heatmap-layer{z-index:5;opacity:0;mix-blend-mode:screen}.heatmap-layer.active{opacity:1}.dot{z-index:10;pointer-events:auto;width:22px;height:22px;font-family:var(--font-mono);color:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:9px;font-weight:800;transition:opacity .2s;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 5px #00000080}.dot.goal{background:var(--success);z-index:20;color:#000;border:2px solid #fff}.dot.save{background:var(--text-muted);color:#fff;border:1px solid #fff}.dot.shot{background:var(--accent);color:#000}.dot.hit{border:2px solid var(--danger);color:var(--danger);background:0 0;font-size:8px}.dot.turn{background:var(--danger);opacity:.9;color:#000}.dot.take{border:2px solid var(--success);color:var(--success);background:0 0}.dot.blk-def{color:#fff;background:#6366f1}.dot.blk-off{color:#000;background:#a5b4fc}.dot.penalty{background:var(--penalty);color:#000;z-index:15;border:1px solid #000}.dot:hover:after{content:attr(data-tooltip);background:var(--bg-body);color:var(--accent);font-family:var(--font-mono);white-space:nowrap;z-index:100;border:1px solid var(--accent);padding:4px 8px;font-size:10px;position:absolute;bottom:140%;left:50%;transform:translate(-50%)}.filter-bar{background:var(--bg-panel);border:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:15px;margin-bottom:10px;padding:15px;display:flex}.filter-group{flex-direction:column;flex:1;min-width:120px;display:flex}.filter-group select{margin-bottom:0}.zone-tog{background:var(--bg-body);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;font-family:var(--font-mono);flex:1;padding:8px;font-size:.75rem}.zone-tog.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.switch-wrap{font-family:var(--font-mono);color:var(--text-muted);border-left:1px solid var(--border);align-items:center;gap:10px;height:42px;padding-left:15px;font-size:.75rem;display:flex}.switch{width:40px;height:20px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:var(--bg-element);border:1px solid var(--border);transition:all .4s;position:absolute;inset:0}.slider:before{content:"";background-color:var(--text-muted);width:12px;height:12px;transition:all .4s;position:absolute;bottom:3px;left:3px}input:checked+.slider{border-color:var(--accent)}input:checked+.slider:before{background-color:var(--accent);transform:translate(20px)}.comp-btn{flex:1;margin-bottom:0}.stat-grid{background:var(--border);border:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;margin-bottom:20px;display:grid}.stat-card{background:var(--bg-panel);text-align:left;cursor:pointer;grid-template-rows:30px 1fr 45px;align-items:start;min-height:150px;padding:15px;transition:background .2s;display:grid;position:relative}.stat-card:hover{background:var(--bg-element)}.stat-card:before{content:"+";color:var(--border);font-family:var(--font-mono);grid-row:1;position:absolute;top:10px;right:10px}.stat-label{font-family:var(--font-mono);color:var(--accent);letter-spacing:.1em;grid-row:1;align-self:center;font-size:.65rem}.stat-val-wrapper{grid-row:2;align-self:start;padding-top:5px}.stat-val{font-family:var(--font-main);color:var(--text-main);letter-spacing:-.03em;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:800;line-height:1}.stat-footer{flex-direction:column;grid-row:3;justify-content:flex-end;gap:5px;height:100%;display:flex}.stat-sub{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;font-size:.65rem}.comp-box{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.comp-them{color:var(--text-muted);font-size:1.2rem;font-weight:400}.delta-box{font-family:var(--font-mono);background:var(--bg-body);border:1px solid var(--border);align-items:center;margin-top:5px;padding:2px 4px;font-size:.65rem;font-weight:700;display:inline-flex}.mini-tog{border:1px solid var(--border);width:fit-content;color:var(--text-muted);font-size:.6rem;font-family:var(--font-mono);text-transform:uppercase;cursor:pointer;background:0 0;padding:2px 6px}.legend-bar{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:center;gap:15px;margin-top:15px;padding-top:15px;display:flex}.legend-item{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:.7rem;transition:all .2s;display:flex}.legend-item.inactive{opacity:.3;filter:grayscale()}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.table-container{border:1px solid var(--border);width:100%;margin-bottom:40px;overflow-x:auto}.stats-table{border-collapse:collapse;background:var(--bg-panel);width:100%;font-size:.8rem;font-family:var(--font-mono);min-width:600px}.stats-table th,.stats-table td{text-align:center;border-bottom:1px solid var(--border);padding:10px}.stats-table th{background:var(--bg-element);color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:600}.stats-table th.active{color:var(--accent)}.stats-table th.active:after{content:attr(data-sort-icon);margin-left:5px;font-size:.8em}.stats-table td:first-child{text-align:left;color:var(--accent);background:var(--bg-panel);border-right:1px solid var(--border);font-weight:700;position:sticky;left:0}.action-icon{cursor:pointer;font-family:var(--font-mono);color:var(--accent);margin:0 5px;font-size:.7rem;font-weight:700}.action-icon.del{color:var(--danger)}.progress-container{background:var(--bg-element);border:1px solid var(--border);border-radius:4px;width:100%;height:10px;margin-bottom:12px;display:none;overflow:hidden}.progress-bar{background:var(--success);width:0%;height:100%;transition:width .2s}#statModal,#modal-overlay,#compare-modal,#trends-modal,#game-select-modal,#edit-player-modal,#edit-game-modal,#graph-modal,#custom-dialog-overlay,#duties-modal{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:2000;background:#000000e6;justify-content:center;align-items:center;width:100%;height:100%;display:none;position:fixed;top:0;left:0}#custom-dialog-overlay{z-index:99999}.modal-box{background:var(--bg-body);border:1px solid var(--accent);width:90%;max-width:700px;max-height:85vh;padding:30px;overflow-y:auto;box-shadow:0 20px 50px #000c}.modal-box h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);text-align:center;margin-top:0;margin-bottom:20px}#wiz-steps p{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;text-align:center;letter-spacing:.05em;margin-bottom:15px;font-size:.85rem}.grid-opts{flex-wrap:wrap;gap:10px;display:flex}.grid-opts>.btn-action{flex:1;min-width:45%;margin-bottom:0}.player-multiselect{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;margin-top:10px;display:grid}.player-check{background:var(--bg-element);border:1px solid var(--border);cursor:pointer;font-family:var(--font-mono);color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px;font-size:.75rem;display:flex}.player-check.checked{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.chart-wrapper{border:1px solid var(--border);background:var(--bg-element);width:100%;height:300px;margin-top:20px;padding:5px}.auth-toggle{font-family:var(--font-mono);color:var(--text-muted);cursor:pointer;margin-top:10px;font-size:.8rem;text-decoration:underline;display:inline-block}.auth-toggle:hover{color:var(--accent)}.mobile-nav-dropdown{display:none}.btn-access{font-family:var(--font-mono);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:4px 8px;font-size:.65rem;transition:all .2s}.btn-access:hover{border-color:var(--accent);color:var(--text-main)}.btn-access.active-player{background:var(--success);color:#000;border-color:var(--success);font-weight:700}.btn-access.active-tracker{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.invites-table th:first-child,.invites-table td:first-child{color:var(--text-main)!important;text-align:left!important;background:0 0!important;border-right:none!important;font-weight:400!important;position:static!important}.action-row{flex-wrap:wrap;align-items:stretch;gap:10px;margin-bottom:15px;display:flex}.action-row>*{flex:140px;min-width:0;margin-bottom:0!important}.action-row .btn-action{flex:0 auto;min-width:120px;padding:0 20px}.lu-roster-grid{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.lu-def-goal-grid{grid-template-columns:2fr 1fr;gap:10px;display:grid}.lu-defense-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.lu-goalie-grid{grid-template-columns:1fr;gap:8px;display:grid}.section-title,.split-header{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;margin-top:5px;margin-bottom:5px;font-size:1rem;font-weight:700}.split-header{align-items:center;gap:10px;width:100%;display:flex}.split-header>div:first-child{flex:2}.split-header>div:last-child{flex:1}.btn-add-slot{border:1px dashed var(--border);width:100%;color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;text-transform:uppercase;background:0 0;margin-top:8px;margin-bottom:15px;padding:6px;font-size:.7rem;transition:all .2s}.btn-add-slot:hover{border-color:var(--accent);color:var(--text-main)}.player-card{background:var(--bg-element);border:1px solid var(--border);align-items:center;min-height:60px;padding:8px;transition:all .2s;display:flex;position:relative}.player-card:hover{border-color:var(--accent)}.p-num{font-family:var(--font-mono);color:var(--border);text-align:center;width:40px;margin-right:8px;font-size:1.8rem;font-weight:800;line-height:1}.player-card.filled .p-num{color:var(--accent)}.p-details{flex-grow:1;overflow:hidden}.p-select{border:1px dashed var(--text-muted);width:100%;color:var(--text-main);font-family:var(--font-mono);cursor:pointer;background:0 0;outline:none;padding:4px;font-size:.8rem}.p-select:focus{border-color:var(--accent)}.p-name{text-transform:uppercase;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:800;font-family:var(--font-main);margin-bottom:2px;overflow:hidden}.p-bio{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;font-size:.6rem}.p-stats{font-family:var(--font-mono);color:var(--accent);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.7rem;font-weight:700;overflow:hidden}.card-actions{gap:4px;display:none;position:absolute;top:4px;right:4px}.player-card:hover .card-actions{display:flex}.btn-clear,.btn-remove{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;text-transform:uppercase;padding:2px 4px;font-size:.6rem;transition:all .2s}.btn-clear:hover{border-color:var(--accent);color:var(--accent)}.btn-remove:hover{border-color:var(--danger);color:var(--danger)}.lu-footer-grid{border-top:1px solid var(--border);grid-template-columns:1fr 1fr 1fr;gap:15px;padding-top:15px;display:grid}.footer-title{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border);margin-top:0;margin-bottom:8px;padding-bottom:4px;font-size:.75rem}textarea.app-input{background:var(--bg-panel);border:1px solid var(--border);width:100%;height:60px;color:var(--text-main);font-family:var(--font-main);resize:none;outline:none;padding:6px;font-size:.8rem}textarea.app-input:focus{border-color:var(--accent)}input.app-input{background:var(--bg-panel);border:1px solid var(--border);width:100%;color:var(--text-main);font-family:var(--font-main);outline:none;margin-bottom:4px;padding:4px;font-size:.75rem}input.app-input:focus{border-color:var(--accent)}.scratch-row{gap:5px;margin-bottom:4px;display:flex}.scratch-row select{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-main);font-family:var(--font-main);flex:2;font-size:.7rem}.scratch-row input{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-main);font-family:var(--font-main);flex:1;padding:3px;font-size:.7rem}.staff-row{font-family:var(--font-main);justify-content:space-between;margin-bottom:4px;font-size:.75rem;display:flex}.stat-toggles{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.stat-toggle-label{background:var(--bg-element);border:1px solid var(--border);cursor:pointer;font-family:var(--font-mono);color:var(--text-muted);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px;font-size:.75rem;display:flex}.stat-toggle-label.active{background:var(--accent);color:#000;border-color:var(--accent);font-weight:700}.stat-toggle-label input{display:none}@media (width<=1024px){body{height:100dvh}.nav-bar{flex-direction:column;align-items:center;gap:10px;height:auto;padding:15px 10px}.nav-title{text-align:center;justify-content:center;width:100%;margin:0;font-size:1.1rem}.desktop-nav{display:none!important}.mobile-nav-dropdown{background:var(--bg-element);border:1px solid var(--accent);width:100%;color:var(--accent);font-family:var(--font-mono);text-align:center;margin-top:5px;padding:10px;font-size:1rem;font-weight:700;display:block}.plotter-grid{flex-direction:column;gap:15px;height:auto;display:flex}.stat-grid{background:0 0;border:none;grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{border:1px solid var(--border);min-height:120px}.modal-box{width:95%;max-height:90vh;padding:20px}.action-row{flex-direction:column;gap:10px}.action-row>*{flex:none!important;width:100%!important;max-width:100%!important}.global-team-wrap{border:none;justify-content:center;width:100%;margin-left:0;padding:0}.global-season-wrap{border:none;margin-right:0;padding:0}}@media print{@page{size:letter portrait;margin:.25in}body{font-size:11px;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#fff!important;height:100vh!important;margin:0!important;padding:0!important;overflow:hidden!important}.nav-bar,.mobile-nav-dropdown,#plotter-view,#dashboard-view,#manage-view,#modal-overlay,#auth-overlay,#statModal,.no-print{display:none!important}#lineup-builder-view{height:100%!important;margin:0!important;padding:0!important;display:block!important;overflow:hidden!important}.sheet-container{flex-direction:column;display:flex;width:100%!important;max-width:100%!important;box-shadow:none!important;box-sizing:border-box!important;background:#fff!important;border:none!important;height:100%!important;max-height:100%!important;margin:0!important;padding:0!important;overflow:hidden!important}h1,h2,h3,.p-name,.record-box h3,.st-input,.staff-input{color:#000!important}.p-num{color:var(--accent)!important}.p-bio,.header-info p{color:#555!important}.p-stats{color:var(--accent)!important}.player-card,.footer-box{box-sizing:border-box!important;background:#fff!important;border:1px solid #ccc!important}.section-title,.split-header>div{color:#000!important;box-sizing:border-box!important;background:#f1f5f9!important;border:1px solid #ccc!important;margin:0 0 4px!important;padding:4px 6px!important;font-size:.85rem!important;font-weight:700!important}.split-header{margin:0!important}.sheet-header{align-items:center;display:flex;border-bottom:2px solid #000!important;flex-shrink:0!important;margin-bottom:6px!important;padding-bottom:6px!important}.lu-roster-grid{flex-shrink:0!important;grid-template-columns:repeat(3,1fr)!important;gap:4px!important;margin-bottom:6px!important;display:grid!important}.lu-def-goal-grid{flex-shrink:0!important;grid-template-columns:2fr 1fr!important;gap:6px!important;margin-bottom:6px!important;display:grid!important}.lu-defense-grid{grid-template-columns:repeat(2,1fr)!important;gap:4px!important;display:grid!important}.lu-goalie-grid{grid-template-columns:1fr!important;gap:4px!important;display:grid!important}.player-card{flex-direction:row!important;justify-content:flex-start!important;align-items:center!important;height:50px!important;min-height:50px!important;margin:0!important;padding:4px 6px!important;overflow:hidden!important}.p-num{text-align:center!important;flex:0 0 28px!important;margin-right:6px!important;font-size:1.6rem!important;line-height:1!important}.p-details{flex:auto!important;min-width:0!important;overflow:hidden!important}.p-name{white-space:nowrap!important;text-overflow:ellipsis!important;margin-bottom:2px!important;font-size:.8rem!important;font-weight:800!important;overflow:hidden!important}.p-bio{white-space:nowrap!important;text-overflow:ellipsis!important;font-size:.55rem!important;overflow:hidden!important}.p-stats{white-space:nowrap!important;text-overflow:ellipsis!important;margin-top:2px!important;font-size:.6rem!important;overflow:hidden!important}.lu-footer-grid{border-top:none!important;flex-shrink:1!important;grid-template-columns:1fr 1fr 1fr!important;gap:6px!important;min-height:0!important;margin-top:auto!important;padding-top:0!important;display:grid!important}.footer-box{flex-direction:column!important;padding:4px 6px!important;display:flex!important;overflow:hidden!important}.footer-title{border-bottom:1px solid #ccc!important;flex-shrink:0!important;margin-bottom:4px!important;padding-bottom:2px!important;font-size:.7rem!important}.footer-box>div{margin-bottom:2px!important}textarea.app-input{resize:none!important;flex-grow:1!important;height:40px!important;min-height:40px!important;padding:4px!important}textarea.app-input,input.app-input,.scratch-row select,.scratch-row input,.staff-input{color:#000!important;background:0 0!important;border:none!important;border-bottom:1px solid #ccc!important;height:16px!important;margin-bottom:0!important;padding:0 2px!important;font-size:.7rem!important}.p-select{display:none!important}.scratch-row select{appearance:none!important}}@media (width<=1024px) and (orientation:landscape){.nav-bar{overflow:hidden;flex-direction:row!important;height:40px!important;padding:5px 10px!important}.nav-logo{display:none!important}.nav-title{width:auto!important;margin-right:auto!important;font-size:1rem!important}.global-team-wrap,.global-season-wrap{display:none!important}.mobile-nav-dropdown{width:auto!important;height:28px!important;margin-top:0!important;padding:4px 8px!important;font-size:.8rem!important}.view-section{height:calc(100dvh - 40px)!important;padding:10px!important;overflow-y:auto!important}#plotter-view.view-section{overflow:hidden!important}.plotter-grid{flex-direction:row!important;grid-template-columns:220px 1fr!important;gap:10px!important;height:100%!important;display:grid!important}.plotter-grid>div:first-child{max-height:100%!important;padding-right:5px!important;overflow-y:auto!important}.panel{padding:10px!important}.rink-wrapper{justify-content:center;align-items:center;height:100%;display:flex}.rink-container{aspect-ratio:748/347!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:100%!important}select,.btn-action,input[type=text],input[type=number],input[type=date],input[type=password],input[type=email],input[type=color]{height:32px!important;margin-bottom:8px!important;font-size:.75rem!important}.label{margin-bottom:4px!important}.panel-header{margin-bottom:10px!important;padding-bottom:5px!important}}body.public-page{height:auto;font-size:16px;line-height:1.6;display:block;overflow:auto}.public-page .container{max-width:1100px;margin:0 auto;padding:0 20px}.public-page .nav-bar{border-bottom:1px solid var(--border);background:var(--bg-body);z-index:100;flex-direction:row;justify-content:space-between;height:80px;position:relative}.public-page .nav-title{width:auto;margin:0;font-size:1.5rem;text-decoration:none}.public-page a.btn-action,.public-page .btn-outline{justify-content:center;align-items:center;width:auto;height:48px;margin-bottom:0;padding:0 32px;text-decoration:none;display:inline-flex}.public-page .btn-outline{border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);text-transform:uppercase;background:0 0;font-size:.85rem;font-weight:700;transition:all .2s}.public-page .btn-outline:hover{border-color:var(--accent);color:var(--text-main);background:var(--bg-panel)}.public-page .panel{padding:30px;box-shadow:0 20px 40px #00000080}.public-page h1{letter-spacing:-.03em;margin-top:0;margin-bottom:20px;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:800;line-height:1.1}.dot{transition:transform .1s;box-shadow:0 0 10px #00000080}.dot:hover{transform:translate(-50%,-50%)scale(1.3);z-index:1000!important}.hero{text-align:center;padding:120px 0 80px;position:relative;overflow:hidden}.hero-bg-rink{opacity:.06;z-index:-2;pointer-events:none;width:120%;height:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hero-heatmap-overlay{z-index:-1;pointer-events:none;background:radial-gradient(circle at 75% 40%,#89bae426 0%,#02020200 50%),radial-gradient(circle at 25% 65%,#4ade8014 0%,#02020200 40%);width:100%;height:100%;position:absolute;top:0;left:0}.hero-content{z-index:10;position:relative}.highlight{color:var(--accent)}p.subtitle{color:var(--text-muted);max-width:650px;margin:0 auto 50px;font-size:1.25rem}.showcase-row{z-index:10;align-items:center;gap:60px;margin-bottom:100px;padding-top:20px;display:flex;position:relative}.showcase-row:nth-child(2n){flex-direction:row-reverse}.showcase-text{flex:1}.showcase-text h2{margin-top:0;margin-bottom:15px;font-size:2rem}.showcase-text p{color:var(--text-muted);margin-bottom:25px;font-size:1.1rem}.showcase-demo{flex:1.2;position:relative}.rink-svg-embedded{opacity:.8;width:100%;height:100%;display:block}.stat-grid-demo{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:20px;display:grid}.stat-card-demo{background:var(--bg-element);border:1px solid var(--border);border-left:3px solid var(--accent);flex-direction:column;justify-content:center;padding:15px;display:flex}.stat-label-demo{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;margin-bottom:5px;font-size:.7rem}.stat-val-demo{color:var(--text-main);font-size:2rem;font-weight:800;line-height:1}.table-container-demo{border:1px solid var(--border);background:var(--bg-element);width:100%;overflow-x:auto}.stats-table-demo{border-collapse:collapse;width:100%;font-size:.8rem;font-family:var(--font-mono);text-align:center}.stats-table-demo th{color:var(--text-muted);border-bottom:1px solid var(--border);background:#161b22;padding:10px;font-weight:600}.stats-table-demo td{border-bottom:1px solid var(--border);color:var(--text-main);padding:10px}.stats-table-demo td:first-child{text-align:left;color:var(--accent);font-weight:700}.lu-grid-demo{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:15px;display:grid}.lu-defense-grid-demo{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.lu-goalie-grid-demo{grid-template-columns:1fr;gap:6px;display:grid}.player-card-demo{background:var(--bg-element);border:1px solid var(--border);align-items:center;min-height:45px;padding:6px 8px;transition:all .2s;display:flex}.player-card-demo:hover{border-color:var(--accent)}.p-num-demo{font-family:var(--font-mono);color:var(--accent);text-align:center;width:28px;margin-right:8px;font-size:1.3rem;font-weight:800;line-height:1}.p-details-demo{flex-grow:1;overflow:hidden}.p-name-demo{text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;color:var(--text-main);margin-bottom:2px;font-size:.8rem;font-weight:800;line-height:1;overflow:hidden}.p-bio-demo{font-family:var(--font-mono);color:var(--text-muted);text-transform:uppercase;font-size:.6rem;line-height:1}.lu-split-demo{gap:10px;display:flex}.pricing{text-align:center;z-index:10;padding:60px 0 100px;position:relative}.pricing h2{margin-bottom:40px;font-size:2.5rem}.pricing-list{text-align:left;margin:0 0 40px;padding:0;list-style:none}.pricing-list li{color:var(--text-muted);align-items:center;gap:10px;margin-bottom:15px;font-size:1.1rem;display:flex}.pricing-list li:before{content:"✓";color:var(--accent);font-weight:700;font-family:var(--font-mono)}.page-header{text-align:center;border-bottom:1px solid var(--border);background:radial-gradient(circle at 50% 0,#89bae40d 0%,#02020200 70%);padding:80px 0 60px}.page-header h1{letter-spacing:-.03em;margin:0 0 15px;font-size:clamp(2rem,4vw,3.5rem);font-weight:800}.page-header p{color:var(--text-muted);max-width:600px;margin:0 auto;font-size:1.1rem}.glossary-section{padding:60px 0}.category-title{font-family:var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:30px;padding-bottom:10px;font-size:1.2rem;display:flex}.term-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px;margin-bottom:60px;display:grid}.term-card{background:var(--bg-panel);border:1px solid var(--border);flex-direction:column;padding:25px;display:flex;position:relative}.term-card:after{content:"";border-top:1px solid var(--accent);border-left:1px solid var(--accent);width:10px;height:10px;position:absolute;top:-1px;left:-1px}.term-name{font-family:var(--font-mono);color:var(--text-main);justify-content:space-between;align-items:center;margin:0 0 15px;font-size:1.1rem;font-weight:700;display:flex}.term-badge{background:var(--bg-element);border:1px solid var(--border);color:var(--text-muted);border-radius:4px;padding:3px 8px;font-size:.65rem}.term-desc{color:var(--text-muted);flex:1;margin:0 0 15px;font-size:.95rem}.term-rule{border-left:2px solid var(--accent);color:#e2e8f0;background:#89bae40d;margin:0;padding:15px;font-size:.85rem}.term-rule strong{color:var(--accent)}.anim-box{border:1px solid var(--border);background:#080c10;border-radius:4px;height:120px;margin-bottom:20px;position:relative;overflow:hidden}.anim-line-red{opacity:.3;background:#991b1b;width:2px;position:absolute;top:0;bottom:0}.anim-line-blue{opacity:.3;background:#1e40af;width:4px;position:absolute;top:0;bottom:0}.anim-net-right{border:2px solid #f87171;border-left:none;width:3%;height:30%;position:absolute;top:35%;right:12%}.anim-circle{opacity:.3;border:2px solid #f87171;border-radius:50%;width:40px;height:40px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.anim-dot{opacity:.5;background:#f87171;border-radius:50%;width:6px;height:6px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.actor{z-index:10;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%)}.actor-blue{background:var(--accent);border:2px solid #000}.actor-red{background:var(--danger);border:2px solid #000}.actor-goalie{background:var(--danger);z-index:10;border:2px solid #000;border-radius:2px;width:8px;height:24px;position:absolute;transform:translate(-50%,-50%)}.actor-puck{z-index:15;background:#fff;border-radius:50%;width:8px;height:8px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 5px #000}.popup{font-family:var(--font-mono);opacity:0;z-index:20;font-size:.75rem;font-weight:800;position:absolute;transform:translate(-50%)}.popup-plus{color:var(--success)}.popup-minus{color:var(--danger)}@keyframes a-goal-puck{0%,15%{opacity:1;top:50%;left:25%}35%,80%{opacity:1;top:50%;left:86%}85%,to{opacity:0;top:50%;left:86%}}#anim-goal .actor-puck{animation:3s ease-out infinite a-goal-puck}@keyframes a-ast-puck{0%,10%{opacity:1;top:20%;left:20%}25%,35%{opacity:1;top:80%;left:50%}50%,65%{opacity:1;top:50%;left:75%}80%,95%{opacity:1;top:50%;left:88%}98%,to{opacity:0;top:50%;left:88%}}#anim-assist .actor-puck{animation:4.5s linear infinite a-ast-puck}@keyframes a-pm-puck{0%,5%{opacity:1;top:50%;left:15%}15%,40%{opacity:1;top:50%;left:88%}43%,49%{opacity:0;top:50%;left:88%}50%,55%{opacity:1;top:50%;left:15%}65%,90%{opacity:1;top:50%;left:88%}93%,to{opacity:0;top:50%;left:88%}}@keyframes a-pm-red-pk{0%,48%{opacity:1}50%,to{opacity:.15}}@keyframes a-pm-pop-plus{0%,15%{opacity:0;transform:translate(-50%)}20%,35%{opacity:1;transform:translate(-50%,-15px)}40%,49%{opacity:0;transform:translate(-50%,-15px)}50%,65%{opacity:0;transform:translate(-50%)}70%,85%{opacity:1;transform:translate(-50%,-15px)}90%,to{opacity:0;transform:translate(-50%,-15px)}}@keyframes a-pm-pop-minus{0%,15%{opacity:0;transform:translate(-50%)}20%,35%{opacity:1;transform:translate(-50%,-15px)}40%,to{opacity:0;transform:translate(-50%,-15px)}}@keyframes a-pm-overlay{0%,48%{opacity:0}50%,90%{opacity:1}to{opacity:0}}#anim-pm .actor-puck{animation:8s ease-out infinite a-pm-puck}#anim-pm .red-pk{animation:8s linear infinite a-pm-red-pk}#anim-pm .popup-plus{animation:8s ease-out infinite a-pm-pop-plus}#anim-pm .popup-minus{animation:8s ease-out infinite a-pm-pop-minus}#anim-pm .popup-pp{animation:8s ease-out infinite a-pm-overlay}@keyframes a-save-puck{0%,20%{opacity:1;top:50%;left:25%}40%,50%{opacity:1;top:50%;left:82%}65%,80%{opacity:0;top:85%;left:75%}to{opacity:0}}#anim-save .actor-puck{animation:3.5s ease-out infinite a-save-puck}@keyframes a-miss-puck{0%,20%{opacity:1;top:50%;left:25%}40%,80%{opacity:1;top:15%;left:95%}85%,to{opacity:0;top:15%;left:95%}}#anim-miss .actor-puck{animation:3s ease-out infinite a-miss-puck}@keyframes a-oblk-puck{0%,20%{opacity:1;top:50%;left:25%}35%{opacity:1;top:50%;left:52%}55%,80%{opacity:0;top:20%;left:35%}to{opacity:0}}#anim-blk-off .actor-puck{animation:3.5s ease-out infinite a-oblk-puck}@keyframes a-dblk-puck{0%,20%{opacity:1;top:50%;left:75%}35%{opacity:1;top:50%;left:48%}55%,80%{opacity:0;top:90%;left:65%}to{opacity:0}}#anim-blk-def .actor-puck{animation:3.5s ease-out infinite a-dblk-puck}@keyframes a-fo-blue-c{0%,15%{top:50%;left:47%}20%,80%{top:50%;left:43%}to{top:50%;left:47%}}@keyframes a-fo-red-c{0%,15%{top:50%;left:53%}20%,80%{top:50%;left:57%}to{top:50%;left:53%}}@keyframes a-fo-puck{0%,15%{opacity:1;top:50%;left:50%}30%,80%{opacity:1;top:80%;left:20%}85%,to{opacity:0;top:80%;left:20%}}#anim-faceoff .actor-blue.center{animation:3s ease-out infinite a-fo-blue-c}#anim-faceoff .actor-red.center{animation:3s ease-out infinite a-fo-red-c}#anim-faceoff .actor-puck{animation:3s ease-out infinite a-fo-puck}@keyframes a-uto-blue{0%,15%{top:50%;left:25%}40%,80%{top:50%;left:55%}to{top:50%;left:25%}}@keyframes a-uto-puck{0%,15%{opacity:1;top:50%;left:25%}40%{opacity:1;top:50%;left:55%}60%,80%{opacity:0;top:85%;left:65%}to{opacity:0}}#anim-uto .actor-blue{animation:4s ease-out infinite a-uto-blue}#anim-uto .actor-puck{animation:4s ease-out infinite a-uto-puck}@keyframes a-fto-blue{0%,10%{top:50%;left:25%}30%,80%{top:50%;left:48%}to{top:50%;left:25%}}@keyframes a-fto-red{0%,10%{top:50%;left:75%}30%,80%{top:50%;left:52%}to{top:50%;left:75%}}@keyframes a-fto-puck{0%,10%{opacity:1;top:50%;left:25%}30%{opacity:1;top:50%;left:48%}50%,80%{opacity:0;top:85%;left:35%}to{opacity:0}}#anim-fto .actor-blue{animation:4s ease-out infinite a-fto-blue}#anim-fto .actor-red{animation:4s ease-out infinite a-fto-red}#anim-fto .actor-puck{animation:4s ease-out infinite a-fto-puck}@keyframes a-ta-red{0%,10%{top:50%;left:75%}35%,80%{top:50%;left:50%}to{top:50%;left:75%}}@keyframes a-ta-blue{0%,10%{top:85%;left:30%}35%{top:50%;left:48%}60%,80%{top:25%;left:20%}to{top:85%;left:30%}}@keyframes a-ta-puck{0%,10%{opacity:1;top:50%;left:75%}35%{opacity:1;top:50%;left:50%}60%,80%{opacity:1;top:25%;left:20%}85%,to{opacity:0}}#anim-ta .actor-red{animation:4s linear infinite a-ta-red}#anim-ta .actor-blue{animation:4s linear infinite a-ta-blue}#anim-ta .actor-puck{animation:4s linear infinite a-ta-puck}@media (width<=900px){.public-page .nav-bar{flex-direction:column;gap:15px;height:auto;padding-top:20px;padding-bottom:20px}.public-page .nav-bar>div{width:100%;display:flex;gap:10px!important}.public-page .nav-bar a.btn-action,.public-page .nav-bar .btn-outline{text-align:center;flex:1;padding:0 10px!important;font-size:.75rem!important}.hero{padding:80px 0 40px}.showcase-row,.showcase-row:nth-child(2n){text-align:center;flex-direction:column;gap:40px}.lu-split-demo{flex-direction:column}.lu-grid-demo,.lu-defense-grid-demo{grid-template-columns:repeat(2,1fr)}.pricing-list{max-width:300px;margin:0 auto 40px}}@media (width<=768px){.term-grid{grid-template-columns:1fr}.term-rule{grid-template-columns:1fr!important}.term-rule>div{border-top:1px solid var(--border);margin-top:15px;padding-top:15px;border-left:none!important;padding-left:0!important}.term-rule>div:first-child{border-top:none;margin-top:0;padding-top:0}}@media (width<=500px){.lu-grid-demo,.lu-defense-grid-demo{grid-template-columns:1fr}}
