:root{--navy-900:#0d1b23;--navy-800:#142b38;--navy-700:#19394b;--navy-600:#22485d;--teal:#287e9d;--teal-light:#5fb4df;--orange:#f06431;--orange-light:#ff8350;--orange-dark:#ef4e26;--green:#2c9871;--cream:#f4efe4;--cream-line:#d8cfbb;--paper:#faf8f3;--panel:#fff;--ink:#152530;--ink-soft:#5b6b74;--border:#e4e0d6;--radius:10px;--mono:"DM Mono", ui-monospace, monospace;--sans:"Manrope", system-ui, sans-serif}*{box-sizing:border-box}html,body{height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;margin:0}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}.hidden{display:none!important}.app-shell{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.topbar{background:linear-gradient(180deg,var(--navy-800),var(--navy-900));color:#fff;border-bottom:3px solid var(--orange);flex-wrap:wrap;align-items:center;gap:20px;padding:10px 18px;display:flex}.brand{letter-spacing:.03em;white-space:nowrap;align-items:center;gap:9px;font-size:15px;font-weight:800;display:flex}.brand-mark svg{width:30px;height:30px;display:block}.brand-mark .seam{fill:none;stroke:#ffffff47;stroke-width:1.4px}.brand-mark .letter-h,.brand-mark .letter-v{fill:none;stroke:url(#cv-gradient);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round}.brand-accent{color:var(--orange-light)}.play-name-wrap{flex-direction:column;flex:1;gap:2px;min-width:160px;max-width:280px;display:flex}.play-name-wrap label{letter-spacing:.09em;color:#ffffff8c;font-size:10px;font-weight:700}#play-name{color:#fff;letter-spacing:.02em;background:#ffffff14;border:1px solid #ffffff29;border-radius:7px;padding:6px 10px;font-size:13.5px;font-weight:700}#play-name:focus{outline:2px solid var(--orange-light);background:#ffffff24}.top-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.top-actions button{border:1px solid #0000;border-radius:7px;padding:8px 13px;font-size:12.5px;font-weight:700;transition:transform 80ms,background .15s}.top-actions button:active{transform:translateY(1px)}.ghost{color:#fff;background:#ffffff0f;border:1px solid #ffffff2e!important}.ghost:hover{background:#ffffff24}.help-button{width:32px;font-weight:800;border-radius:50%!important;padding:8px 0!important}.run-play{background:var(--green);color:#fff}.run-play:hover{background:#25835f}.run-play.running{background:#b34d47}.playback-button:disabled{opacity:.35;cursor:not-allowed}.primary{background:linear-gradient(135deg,var(--orange-light),var(--orange-dark));color:#fff;box-shadow:0 3px 10px #f0643159}.primary:hover{filter:brightness(1.06)}.workspace{background:var(--paper);flex:1;grid-template-columns:250px 1fr 280px;min-height:0;display:grid}.left-panel,.right-panel{background:var(--panel);border-right:1px solid var(--border);padding:14px 14px 22px;overflow-y:auto}.right-panel{border-right:none;border-left:1px solid var(--border)}.section-heading{justify-content:space-between;align-items:center;margin:16px 0 6px;display:flex}.section-heading:first-child{margin-top:2px}.section-heading span:first-child{letter-spacing:.09em;color:var(--ink-soft);font-size:11px;font-weight:800}.mini{background:var(--cream);border:1px solid var(--border);width:24px;height:24px;color:var(--navy-700);border-radius:6px;font-size:13px;line-height:1}.mini:hover{background:var(--orange-light);color:#fff;border-color:var(--orange-light)}.helper{color:var(--ink-soft);margin:0 0 8px;font-size:11.5px;line-height:1.5}.sidebar-handle{z-index:40;background:var(--orange);color:#fff;border:none;border-radius:50%;width:46px;height:46px;font-size:19px;display:none;position:fixed;bottom:16px;left:16px;box-shadow:0 4px 14px #00000040}.board-area{background:var(--cream);flex-direction:column;min-width:0;display:flex;position:relative}.board-toolbar{background:var(--panel);border-bottom:1px solid var(--border);z-index:5;flex-wrap:wrap;align-items:center;gap:6px;padding:9px 12px;display:flex;position:sticky;top:0}.toolbar-divider{background:var(--border);align-self:stretch;width:1px;margin:0 3px}.court-wrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:20px;display:flex;position:relative;overflow:auto}.court-wrap.full-court #court{max-width:min(1000px,100%)}#court{background:var(--paper);touch-action:none;border-radius:14px;width:100%;max-width:560px;height:auto;box-shadow:0 6px 24px #142b3824}.court-lines{fill:none;stroke:var(--navy-700);stroke-width:2.2px}.court-lines .rim-board{fill:var(--navy-700);stroke:none}.court-lines .rim{fill:none;stroke:var(--orange);stroke-width:3.5px}.court-footer{color:var(--ink-soft);background:var(--panel);border-top:1px solid var(--border);letter-spacing:.03em;justify-content:space-between;padding:8px 16px;font-size:11px;display:flex}.court-footer b{color:var(--navy-800);font-weight:800}.practice-controls{background:var(--navy-800);color:#fff;justify-content:space-between;align-items:center;padding:10px 16px;font-size:12.5px;font-weight:700;display:flex}.practice-controls div{gap:8px;display:flex}.practice-controls .ghost{background:#ffffff1a;padding:6px 12px;font-size:11.5px;border-color:#fff3!important}.practice-controls .run-play{padding:6px 14px;font-size:11.5px}.practice-launch{border:1px solid var(--orange);color:var(--orange-dark);letter-spacing:.03em;background:#fff5ef;border-radius:9px;margin:10px 16px 14px;padding:10px;font-size:12.5px;font-weight:800}.practice-launch:hover{background:var(--orange);color:#fff}.presenter{background:var(--navy-900);z-index:100;color:#fff;flex-direction:column;justify-content:center;align-items:center;padding:30px;display:flex;position:fixed;inset:0}.presenter #present-title{letter-spacing:.03em;margin-bottom:14px;font-size:20px;font-weight:800}.presenter #present-court svg{background:var(--paper);border-radius:16px;width:min(80vw,640px);height:auto}.presenter p{color:#ffffff80;margin-top:14px;font-size:11.5px}#close-present{color:#fff;background:#ffffff1a;border:none;border-radius:50%;width:36px;height:36px;font-size:18px;position:absolute;top:20px;right:24px}#close-present:hover{background:#fff3}.roster{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.roster-card{background:var(--paper);border:1px solid var(--border);cursor:grab;touch-action:none;border-radius:8px;align-items:center;gap:9px;padding:7px 8px;display:flex}.roster-card:active{cursor:grabbing}.roster-drag-ghost{color:#fff;width:34px;height:34px;font-size:13px;font-weight:800;font-family:var(--mono);pointer-events:none;z-index:200;opacity:.92;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 4px 14px #0000004d}.token-swatch{color:#fff;width:28px;height:28px;font-size:12px;font-weight:800;font-family:var(--mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.roster-card>div:nth-child(2){flex-direction:column;gap:1px;min-width:0;display:flex}.roster-card b{font-size:12.5px}.roster-card span{color:var(--ink-soft);font-size:10.5px}.player-name{color:var(--ink);background:0 0;border:none;width:100%;padding:1px 0;font-size:12.5px;font-weight:700}.player-name:focus{border-bottom:1px solid var(--orange);outline:none}.defense-toggle{border:1px dashed var(--teal);width:100%;color:var(--teal);background:#eaf4f8;border-radius:8px;margin:4px 0 2px;padding:9px;font-size:12px;font-weight:700}.defense-toggle:hover{background:var(--teal);color:#fff}.templates{flex-direction:column;gap:6px;margin-bottom:4px;display:flex}.templates button{text-align:left;border:1px solid var(--border);background:var(--paper);color:var(--ink);border-radius:8px;padding:8px 10px;font-size:12.5px;font-weight:600}.templates button:hover{border-color:var(--orange);color:var(--orange-dark);background:#fff5ef}.defense-templates button:hover{border-color:var(--teal);color:var(--teal);background:#eaf4f8}.category-row{gap:5px;margin:0 0 8px;display:flex}.category-btn{border:1px solid var(--border);background:var(--paper);color:var(--ink-soft);border-radius:6px;flex:1;padding:5px 0;font-size:10.5px;font-weight:700}.category-btn:hover{border-color:var(--orange);color:var(--orange-dark)}.category-btn.active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}.save-play-btn{border:1px solid var(--orange);width:100%;color:var(--orange-dark);text-align:center;background:#fff5ef;border-radius:8px;margin:0 0 10px;padding:9px;font-size:12px;font-weight:700}.save-play-btn:hover{background:var(--orange);color:#fff}.save-play-btn:disabled{opacity:.6;cursor:default}.saved-group{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.saved-group:first-child{border-top:none;padding-top:0}.saved-group-label{letter-spacing:.08em;color:var(--navy-800);align-items:center;gap:6px;font-size:10.5px;font-weight:800;display:flex}.saved-group-label .dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.saved-group-count{background:var(--cream);color:var(--ink-soft);border-radius:10px;margin-left:auto;padding:1px 7px;font-size:9.5px;font-weight:700}.saved-plays{flex-direction:column;gap:6px;display:flex}.saved-play{border:1px solid var(--border);background:var(--paper);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:12.5px;font-weight:700;display:flex}.saved-play:hover{border-color:var(--orange)}.saved-play small{color:var(--ink-soft);font-size:10.5px;font-weight:500;display:block}.delete-saved{color:var(--ink-soft);background:0 0;border:none;font-size:15px}.delete-saved:hover{color:#b34d47}.court-switch{background:var(--cream);border:1px solid var(--border);border-radius:7px;padding:2px;display:flex}.court-mode{color:var(--ink-soft);background:0 0;border:none;border-radius:5px;padding:6px 12px;font-size:11.5px;font-weight:700}.court-mode.active{background:var(--navy-800);color:#fff}.tool{color:var(--ink-soft);background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:5px;padding:7px 10px;font-size:12px;font-weight:600;display:flex}.tool-symbol{font-size:14px}.tool:hover{background:var(--cream);color:var(--ink)}.tool.active{background:var(--navy-800);color:#fff}.defense-shortcut{color:var(--teal);font-weight:700}#undo,#clear-lines{font-weight:700}.cue-banner{background:var(--navy-800);color:#fff;text-align:center;opacity:0;pointer-events:none;border-radius:24px;max-width:80%;padding:10px 18px;font-size:12.5px;font-weight:700;transition:all .25s;position:absolute;bottom:16px;left:50%;transform:translate(-50%)translateY(140%);box-shadow:0 6px 18px #00000040}.cue-banner.active{opacity:1;transform:translate(-50%)translateY(0)}.player-token{cursor:grab}.player-token .token-hit{fill:#0000;stroke:none;pointer-events:all}.player-token .token-circle{stroke:#fff;stroke-width:2.5px;filter:drop-shadow(0 2px 3px #00000040)}.player-token .token-number{fill:#fff;font-family:var(--mono);text-anchor:middle;font-size:14px;font-weight:700}.player-token.selected .token-circle{stroke:var(--orange);stroke-width:3.5px}.player-token.defender .token-circle{opacity:.9}.player-token.ball .ball-circle{fill:var(--orange);stroke:#7a3413;stroke-width:1.5px}.player-token.ball line{stroke:#7a3413;stroke-width:1.2px}.player-token.pass-target-player .token-circle{stroke:var(--green);stroke-width:4px}.mark-cut,.mark-dribble,.mark-shot{fill:none;stroke:var(--orange);stroke-width:2.6px;marker-end:url(#arrow-orange)}.mark-dribble{stroke-dasharray:1 7;stroke-linecap:round;stroke:var(--teal-light);marker-end:url(#arrow-blue)}.mark-pass{fill:none;stroke:var(--green);stroke-width:2.6px;stroke-dasharray:6 5;marker-end:url(#arrow-green)}.mark-screen{stroke:var(--navy-700);stroke-width:4px;stroke-linecap:round}.mark-selected{filter:drop-shadow(0 0 0 3px #f0643166)}#markings .mark-selected{stroke-width:3.6px}.edit-handle{fill:#fff;stroke:var(--orange);stroke-width:2px;cursor:pointer}.edit-handle.curve,.edit-handle.end{fill:var(--orange);stroke:#fff}.steps{counter-reset:step;flex-direction:column;gap:6px;margin:0 0 6px;padding:0;list-style:none;display:flex}.steps li{counter-increment:step;background:var(--paper);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:6px 8px;display:flex;position:relative}.steps li:before{content:counter(step);background:var(--cream-line);width:18px;height:18px;color:var(--navy-800);font-size:10px;font-weight:800;font-family:var(--mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.steps li.active{border-color:var(--orange);background:#fff5ef}.steps li.active:before{background:var(--orange);color:#fff}.sequence-step{color:var(--ink);background:0 0;border:none;flex:1;min-width:0;padding:2px 0;font-size:12px}.sequence-step:focus{outline:none}.remove-step{color:var(--ink-soft);background:0 0;border:none;flex-shrink:0;font-size:14px}.remove-step:hover{color:#b34d47}.timing{margin-top:10px}.timing .section-heading{flex-wrap:wrap;gap:8px}.timing-toggle{border:1px solid var(--border);background:var(--paper);color:var(--ink-soft);border-radius:6px;padding:4px 9px;font-size:10.5px;font-weight:700}.timing-toggle.active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}#play-length{font-family:var(--mono);color:var(--orange-dark);letter-spacing:.05em;margin-left:auto;font-size:10.5px;font-weight:700}.speed-row{align-items:center;gap:8px;margin:2px 0 10px;display:flex}.speed-row .beat-rail-label{flex-shrink:0;margin-bottom:0}.speed-controls{flex:1;gap:5px;display:flex}.speed-button{border:1px solid var(--border);background:var(--paper);color:var(--ink-soft);border-radius:6px;flex:1;padding:5px 0;font-size:10.5px;font-weight:700}.speed-button:hover{border-color:var(--orange);color:var(--orange-dark)}.speed-button.active{background:var(--navy-800);color:#fff;border-color:var(--navy-800)}.beat-rail-label{letter-spacing:.1em;color:var(--ink-soft);margin-bottom:5px;font-size:9.5px;font-weight:800}.beat-rail{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.beat-node{border:1px solid var(--border);background:var(--paper);text-align:center;font-family:var(--mono);border-radius:7px;min-width:40px;padding:5px 8px}.beat-node b{color:var(--navy-800);font-size:12px;display:block}.beat-node small{color:var(--ink-soft);letter-spacing:.02em;font-size:8px;display:block}.beat-node.together{border-color:var(--orange);background:#fff5ef}.beat-node.together b{color:var(--orange-dark)}.timing-empty{color:var(--ink-soft);background:var(--paper);border:1px dashed var(--border);text-align:center;border-radius:8px;padding:14px;font-size:11.5px}.timing-list{flex-direction:column;gap:5px;display:flex}.timing-row{background:var(--paper);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.timing-row.selected-action{border-color:var(--orange)}.timing-badge{color:#fff;width:20px;height:20px;font-size:10px;font-weight:800;font-family:var(--mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.timing-badge.cut{background:var(--orange)}.timing-badge.dribble{background:var(--teal-light)}.timing-badge.pass{background:var(--green)}.timing-badge.shot{background:var(--orange-dark)}.timing-badge.screen{background:var(--navy-700)}.timing-copy{flex:1;min-width:0;font-size:11.5px;font-weight:700}.timing-copy small{color:var(--ink-soft);font-size:10px;font-weight:500;display:block}.beat-summary{border:1px solid var(--border);color:var(--navy-800);white-space:nowrap;background:#fff;border-radius:6px;padding:4px 8px;font-size:10px;font-weight:700}.beat-controls{font-family:var(--mono);color:var(--navy-800);white-space:nowrap;align-items:center;gap:6px;font-size:10.5px;display:flex}.beat-controls button{border:1px solid var(--border);background:#fff;border-radius:5px;width:20px;height:20px;font-size:12px}.delete-action{color:var(--ink-soft);background:0 0;border:none;flex-shrink:0;font-size:14px}.delete-action:hover{color:#b34d47}.cue-editor,.notes{flex-direction:column;gap:5px;margin-top:16px;display:flex}.cue-editor label,.notes label{letter-spacing:.08em;color:var(--ink-soft);font-size:10.5px;font-weight:800}#cue-player{color:var(--orange-dark)}.cue-editor textarea,.notes textarea{border:1px solid var(--border);resize:vertical;background:var(--paper);min-height:56px;color:var(--ink);border-radius:8px;padding:9px 10px;font-size:12px}.cue-editor textarea:focus,.notes textarea:focus{border-color:var(--orange);outline:none}.export{background:var(--navy-800);color:#fff;letter-spacing:.03em;border:none;border-radius:9px;width:100%;margin-top:16px;padding:11px;font-size:12.5px;font-weight:800}.export:hover{background:var(--navy-700)}.export:disabled{opacity:.6;cursor:default}.tutorial{z-index:200;background:#0d1b23b8;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.tutorial-card{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:26px 26px 22px;box-shadow:0 20px 60px #0000004d}.tutorial-progress{background:#e7eceb;border-radius:2px;height:4px;margin-bottom:16px}.tutorial-kicker{letter-spacing:.12em;color:var(--orange-dark);font-size:10px;font-weight:800}.tutorial-card h2{color:var(--navy-900);margin:8px 0;font-size:19px}.tutorial-card p{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.55}.tutorial-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.tutorial-actions .ghost{color:var(--ink-soft);background:0 0;border:1px solid var(--border)!important}.tutorial-actions .ghost:hover{background:var(--cream)}.tutorial-actions .run-play{padding:9px 16px}.confirm-message{color:var(--ink);margin:0;font-size:14px;line-height:1.55}.confirm-danger{color:#fff;background:#b34d47;border:none;border-radius:8px;padding:9px 16px;font-size:12.5px;font-weight:700}.confirm-danger:hover{background:#9c433e}.tutorial-legend{gap:7px;max-height:46vh;margin-top:12px;display:grid;overflow-y:auto}.tutorial-legend:empty{display:none}.legend-row{color:var(--ink-soft);align-items:center;gap:10px;font-size:12.5px;line-height:1.35;display:flex}.legend-row b{color:var(--navy-900)}.legend-symbol{background:var(--cream);border:1px solid var(--border);min-width:38px;height:30px;color:var(--navy-800);border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:16px;display:flex}.install-box{border-top:1px solid var(--border);margin-top:18px;padding-top:12px}.install-box button{text-align:left;border:1px dashed var(--border);width:100%;color:var(--navy-800);background:#fff;border-radius:9px;padding:10px 12px;font-size:12.5px;font-weight:700}.install-box button:hover{border-color:var(--orange);color:var(--orange-dark);background:#fff5ef}.install-steps{color:var(--ink-soft);margin:10px 0 0;padding-left:20px;font-size:13px;line-height:1.55}.install-steps li{margin-bottom:6px}.account-chip{align-items:center;gap:6px;display:flex}.account-chip button{color:#fff;text-overflow:ellipsis;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff2e;border-radius:7px;max-width:180px;padding:6px 10px;font-size:11.5px;font-weight:700;overflow:hidden}.account-chip button:hover:not(:disabled){background:#ffffff29}.account-chip button:disabled{cursor:default;opacity:.85}#program-switch{border-color:var(--orange-light)}.player-mode #save-play,.player-mode #save-play-top,.player-mode .category-row,.player-mode #import-play,.player-mode .delete-saved{display:none!important}.auth-root{z-index:300;background:linear-gradient(180deg,var(--navy-800),var(--navy-900));justify-content:center;align-items:flex-start;padding:24px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.auth-card{background:var(--panel);width:100%;max-width:400px;color:var(--ink);border-radius:16px;margin:auto;padding:28px 26px 22px;box-shadow:0 20px 60px #00000059}.auth-card.wide{max-width:560px}.auth-brand{letter-spacing:.03em;color:var(--navy-800);margin-bottom:14px;font-size:15px;font-weight:800}.auth-brand span{color:var(--orange-dark)}.auth-card h1{color:var(--navy-900);text-wrap:balance;margin:0 0 6px;font-size:22px;line-height:1.2}.auth-card h2{letter-spacing:.09em;color:var(--ink-soft);text-transform:uppercase;margin:18px 0 8px;font-size:11px;font-weight:800}.auth-sub{color:var(--ink-soft);margin:0 0 14px;font-size:13px;line-height:1.55}.auth-notice{color:var(--navy-700);word-break:break-word;background:#eaf4f8;border:1px solid #cfe5ee;border-radius:8px;margin:0 0 12px;padding:9px 11px;font-size:12.5px;line-height:1.5}.auth-error{color:#8a2f2a;background:#fbeceb;border:1px solid #efc7c4;border-radius:8px;margin:0;padding:9px 11px;font-size:12.5px;line-height:1.5}.auth-form{flex-direction:column;gap:12px;margin-top:14px;display:flex}.auth-form.inline{margin-top:0}.auth-field{flex-direction:column;gap:5px;display:flex}.auth-field span{letter-spacing:.07em;color:var(--ink-soft);font-size:11px;font-weight:800}.auth-field input,.auth-field select{border:1px solid var(--border);background:var(--paper);color:var(--ink);border-radius:8px;padding:10px 11px;font-family:inherit;font-size:14px}.auth-field input:focus,.auth-field select:focus{outline:2px solid var(--orange-light);outline-offset:0;border-color:var(--orange)}.auth-primary{color:#fff;background:linear-gradient(135deg,var(--orange-light),var(--orange-dark));border:none;border-radius:9px;padding:11px 14px;font-size:13.5px;font-weight:800;box-shadow:0 3px 10px #f064314d}.auth-primary:hover:not(:disabled){filter:brightness(1.06)}.auth-primary:disabled{opacity:.6;cursor:default}.auth-seg{background:var(--cream);border:1px solid var(--border);border-radius:10px;gap:4px;padding:3px;display:flex}.auth-seg-btn{color:var(--ink-soft);background:0 0;border:none;border-radius:8px;flex:1;padding:9px 6px;font-size:13px;font-weight:700}.auth-seg-btn.active{background:var(--navy-800);color:#fff}.auth-linkbox{border:1px solid var(--border);background:var(--paper);width:100%;color:var(--ink);font-size:12.5px;font-family:var(--mono);border-radius:8px;margin-bottom:10px;padding:10px 11px}.auth-btnrow{gap:8px;margin-bottom:10px;display:flex}.auth-btnrow .auth-primary{flex:1}.auth-secondary{border:1px solid var(--navy-700);color:var(--navy-800);background:0 0;border-radius:9px;padding:11px 16px;font-size:13.5px;font-weight:800}.auth-secondary:hover{background:var(--cream)}.auth-row b small{color:var(--ink-soft);margin-top:2px;font-size:11px;font-weight:500;display:block}.auth-chips{flex-wrap:wrap;gap:6px;display:flex}.auth-chip{border:1px solid var(--border);background:var(--paper);color:var(--ink-soft);border-radius:999px;padding:8px 12px;font-size:12.5px;font-weight:700}.auth-chip.active{background:var(--navy-800);border-color:var(--navy-800);color:#fff}.auth-link{color:var(--teal);text-align:left;background:0 0;border:none;padding:10px 0 0;font-size:12.5px;font-weight:700}.auth-link:hover{text-decoration:underline}.auth-list{flex-direction:column;gap:6px;margin-top:6px;display:flex}.auth-row{text-align:left;border:1px solid var(--border);background:var(--paper);width:100%;color:var(--ink);border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;font-size:13.5px;display:flex}button.auth-row:hover{border-color:var(--orange);background:#fff5ef}.auth-row b{overflow-wrap:anywhere;min-width:0}.auth-row span{color:var(--ink-soft);text-align:right;max-width:55%;font-size:11px;font-weight:700}.auth-root{overflow-x:hidden}.auth-row.static{cursor:default}.team-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.team-head .auth-link{padding-top:6px}:focus-visible{outline:2px solid var(--orange-light);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.player-token .me-halo{fill:none;stroke:#ffc933;stroke-width:5px;opacity:.9;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite me-pulse}.player-token.is-me .token-circle{stroke:#ffc933;stroke-width:4px}.player-token .me-label{fill:#8a5a00;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;pointer-events:none;font:800 13px system-ui,sans-serif}.roster-card.is-me{outline-offset:-3px;outline:3px solid #ffc933}.you-note{color:#8a5a00;font-weight:700}@keyframes me-pulse{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.35;transform:scale(1.18)}}@media (prefers-reduced-motion:reduce){.player-token .me-halo{animation:none}}.status-bar{z-index:40;text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;padding:8px 14px;font-size:12.5px;font-weight:700;display:flex;position:sticky;top:0}.status-bar.demo{color:#7a3410;background:#ffe9d6}.status-bar.trial{color:#164a58;background:#e3f1f4}.status-bar button{background:var(--orange);color:#fff;border:none;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:800}.status-bar button:disabled{opacity:.6}.auth-demo{width:100%;margin-top:10px}.auth-hint{color:var(--ink-soft);margin:-4px 0 0;font-size:11.5px;line-height:1.45}.auth-forgot{margin-top:-4px;padding-top:0}@media (width<=1080px){.workspace{grid-template-columns:1fr}.left-panel{z-index:30;width:270px;padding-top:60px;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 0 30px #00000040}.left-panel.panel-open{transform:translate(0)}.right-panel{border-left:none;border-top:1px solid var(--border)}.sidebar-handle{justify-content:center;align-items:center;display:flex}.topbar{gap:10px}.play-name-wrap{flex-basis:100%;order:3;max-width:none}.mini{width:32px;height:32px;font-size:15px}.remove-step,.delete-action,.delete-saved{padding:6px}.beat-controls button{width:26px;height:26px}}@media (width>=701px) and (width<=1080px){.workspace{grid-template-columns:1fr 280px}.right-panel{border-left:1px solid var(--border);border-top:none}}@media (width<=700px){.app-shell{height:auto;min-height:100dvh;overflow:hidden auto}.workspace{display:block}.board-area{overflow:visible}#court-wrap{flex:none;overflow:visible}.right-panel{height:auto;overflow:visible}}@media (width<=640px){.top-actions button span{display:none}.top-actions{gap:6px}.board-toolbar{gap:3px}.tool{padding:6px 8px;font-size:0}.tool .tool-symbol{font-size:15px}.court-switch .court-mode{padding:6px 8px}.board-toolbar{justify-content:center;gap:4px}.tool{flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:46px;padding:5px 4px;font-size:10px;font-weight:700;line-height:1.1;display:flex}.tool .tool-symbol{font-size:17px;line-height:1}.defense-shortcut{flex-direction:column}#undo,#clear-lines{padding:5px 4px;font-size:10px}.toolbar-divider{display:none}}@media (width<=1080px){.left-panel{padding-bottom:96px}}
