.practice-app{background:var(--paper);border:1px solid var(--line);--surface-2:var(--surface);--accent-ink:#fff;border-radius:16px;margin-bottom:36px;scroll-margin-top:16px;overflow:hidden}.practice-app button{background:var(--paper);min-height:44px;font-size:.88rem;line-height:1.35}.practice-app button:hover{border-color:var(--accent);background:var(--accent-soft)}.practice-app button.app-primary,.practice-app button.round-button{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:650}.practice-app .game-setup,.practice-app .session-summary{padding:28px}.practice-app .setup-heading h2{margin:0 0 12px;font-size:1.65rem}.practice-app .setup-heading>p:not(.eyebrow){color:var(--muted);max-width:75ch;margin-bottom:20px;font-size:.94rem}.practice-app .config-form fieldset{border:0;min-width:0;margin:0;padding:0}.practice-app .config-form legend{margin-bottom:8px;font-size:.85rem;font-weight:650}.practice-app .skill-options{flex-wrap:wrap;gap:8px 18px;display:flex}.practice-app .skill-option{cursor:pointer;align-items:center;gap:8px;min-height:44px;display:inline-flex}.practice-app .skill-option input{width:18px;height:18px;accent-color:var(--accent);margin:0;display:inline-block}.practice-app .settings-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:16px 0 12px;display:grid}.practice-app .settings-row select{background:#fff;width:100%;min-height:44px}.practice-app .setup-actions,.practice-app .summary-actions,.practice-app .share-actions,.practice-app .practice-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.practice-app .setup-actions .app-primary{min-width:154px}.practice-app .setup-entry{border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:18px}.practice-app .setup-entry .setup-actions{margin:0 0 10px}.practice-app .setup-entry .field-note{margin:0}.practice-app.practice-compact .setup-heading>p:not(.eyebrow){margin-bottom:14px}.practice-app.practice-compact .game-setup{padding:22px}.practice-app .app-boundary{color:var(--muted);margin:18px 0 0;font-size:.79rem;line-height:1.6}.practice-app .app-notice{background:var(--accent-soft);border-left:3px solid var(--accent);overflow-wrap:anywhere;padding:14px 22px;font-size:.87rem}.practice-app .resume-banner{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.practice-app .resume-banner strong,.practice-app .resume-banner span{display:block}.practice-app .resume-banner span{color:var(--muted);max-width:65ch;font-size:.82rem}.practice-app .challenge-import{background:var(--surface);margin:22px 0 8px}.practice-app .challenge-import summary{font-size:.87rem}.practice-app .inline-field{align-items:stretch;gap:8px;margin-top:8px;display:flex}.practice-app .inline-field input{flex:1;width:auto;min-width:0;margin:0}.practice-app [data-config-error]:empty,.practice-app .app-status:empty{display:none}.practice-app .app-status{color:var(--accent);overflow-wrap:anywhere;margin:0;padding:0 24px 20px;font-size:.88rem}.practice-app .active-session{padding:22px}.practice-app .session-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.practice-app .session-toolbar .eyebrow{margin:0}.practice-app .session-toolbar strong{font-size:.94rem;display:block}.practice-app .session-progress{background:var(--line);border-radius:4px;height:4px;margin-bottom:22px;overflow:hidden}.practice-app .session-progress span{background:var(--accent);height:100%;transition:width .2s;display:block}.practice-app .round-stage{width:100%}.practice-app .round-caption{color:var(--accent);text-transform:uppercase;letter-spacing:.07em;margin-bottom:8px;font-size:.74rem;font-weight:650}.practice-app .round-heading{margin:0 0 12px;font-size:clamp(1.4rem,3vw,1.9rem)}.practice-app .round-note{color:var(--muted);max-width:75ch;margin-bottom:16px;font-size:.91rem}.practice-app .board-wrap{border:1px solid var(--line);background:var(--paper);border-radius:10px;width:100%;overflow:hidden}.practice-app .round-canvas{aspect-ratio:800/440;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.practice-app .round-stage[data-phase=answering] .round-canvas{cursor:crosshair}.practice-app .round-stage[data-phase=observing] .round-canvas{cursor:wait}.practice-app .round-status{color:var(--muted);min-height:1.5em;margin:12px 0;font-size:.87rem}.practice-app .round-toolbar,.practice-app .round-controls{flex-wrap:wrap;align-items:stretch;gap:12px;display:flex}.practice-app .round-toolbar>.round-controls{width:100%}.practice-app .round-answer-form{flex-wrap:wrap;align-items:end;gap:12px;width:100%;display:flex}.practice-app .round-input-label{color:var(--muted);flex-direction:column;gap:6px;font-size:.86rem;display:flex}.practice-app .round-number{width:145px;min-height:44px;margin:0}.practice-app .round-range-label{width:100%;color:var(--muted);flex-direction:column;gap:4px;font-size:.84rem;display:flex}.practice-app .round-range{width:100%;min-height:40px;accent-color:var(--accent);cursor:ew-resize;margin:0;padding:0}.practice-app .round-turns{width:100%;color:var(--muted);margin:0;font-size:.87rem}.practice-app .round-keyboard{background:var(--surface);width:100%;margin:0;font-size:.87rem}.practice-app .round-keyboard summary{padding:12px 0}.practice-app .round-error{color:#9e283c;font-size:.87rem}.practice-app .round-error:empty{display:none}.practice-app button.round-tap{touch-action:manipulation;width:100%;min-height:76px;font-size:1.35rem}.practice-app .round-tap.is-tapped{animation:.14s ease-out practice-tap}.practice-app .tempo-board .round-canvas{object-fit:contain;max-height:190px}.practice-app .result-topline{justify-content:space-between;align-items:center;gap:16px;display:flex}.practice-app .result-topline .eyebrow{margin:0}.practice-app .round-score{color:var(--accent);align-items:baseline;gap:8px;display:flex}.practice-app .round-score strong{font-variant-numeric:tabular-nums;font-size:3.2rem;line-height:1.2}.practice-app .round-score small{color:var(--muted);font-size:.86rem}.practice-app .round-result h3{max-width:75ch;margin:18px 0;font-size:1.25rem;line-height:1.4}.practice-app .result-details{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:0 16px;margin:0 0 22px;font-size:.87rem;display:grid}.practice-app .result-details dt,.practice-app .result-details dd{border-bottom:1px solid var(--line);overflow-wrap:anywhere;margin:0;padding:10px 0}.practice-app .result-details dt{color:var(--muted)}.practice-app .result-details dd{text-align:right}.practice-app .summary-score{font-variant-numeric:tabular-nums;align-items:baseline;gap:10px;display:flex}.practice-app .summary-score>strong{letter-spacing:-.06em;font-size:4.4rem;line-height:1.2}.practice-app .summary-score>span{color:var(--muted)}.practice-app .summary-score>b{color:var(--accent);margin-left:auto;font-size:2.7rem}.practice-app .summary-games{grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:16px;margin:24px 0;display:grid}.practice-app .summary-game{font-size:.86rem}.practice-app .summary-game>strong{float:right;font-variant-numeric:tabular-nums;font-size:1.1rem}.practice-app .summary-game>span{color:var(--muted)}.practice-app .score-bar{background:var(--line);border-radius:4px;height:5px;margin-top:8px;overflow:hidden}.practice-app .score-bar i{background:var(--accent);height:100%;display:block}.practice-app .summary-suggestion{background:var(--accent-soft);border-left:3px solid var(--accent);margin:24px 0 18px;padding:14px 18px;font-size:.94rem}.practice-app .review-round{border-top:1px solid var(--line);padding:16px 0}.practice-app .review-round h4{margin:0 0 8px;font-size:1rem}.practice-app .review-round p{overflow-wrap:anywhere;margin:8px 0;font-size:.88rem}.practice-app .share-section,.practice-app .friend-compare{border-top:1px solid var(--line);margin-top:24px;padding-top:20px}.practice-app .share-section h3,.practice-app .friend-compare h3{margin:0 0 14px;font-size:1.15rem}.practice-app .friend-compare textarea,.practice-app .share-fallback textarea{resize:vertical;width:100%;margin:8px 0 12px;font:.8rem/1.6 ui-monospace,monospace;display:block}.practice-app .comparison-result{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-top:16px;padding:18px}.practice-app .comparison-result .result-details{margin:14px 0 0}.practice-app .practice-history{background:var(--surface);margin:0 24px 24px}.practice-app .practice-history-entry{border-top:1px solid var(--line);padding:15px 0}.practice-app .practice-history-entry>p{margin:0 0 8px;font-size:.87rem}.practice-app .practice-history-entry .practice-actions{margin-bottom:0}.practice-app .share-fallback{border-top:1px solid var(--line);background:var(--surface);padding:22px}.practice-app .practice-actions a{font-size:.87rem;font-weight:600}@keyframes practice-tap{0%{filter:brightness(1.3);transform:scale(.985)}to{filter:brightness();transform:scale(1)}}@media (width<=700px){.practice-app .game-setup,.practice-app .session-summary{padding:20px}.practice-app .active-session{padding:16px}.practice-app .settings-row{gap:8px}.practice-app .settings-row label{font-size:.8rem}.practice-app .settings-row select{padding:9px 7px;font-size:.82rem}.practice-app .skill-options{gap:4px 14px}.practice-app .setup-heading h2{font-size:1.45rem}.practice-app .setup-heading>p:not(.eyebrow){font-size:.87rem}.practice-app .inline-field{flex-direction:column}.practice-app .session-toolbar{gap:10px}.practice-app .session-toolbar strong{font-size:.84rem}.practice-app .session-toolbar .eyebrow{font-size:.65rem}.practice-app .session-toolbar button{padding:9px;font-size:.78rem}.practice-app .summary-score>strong{font-size:3.8rem}.practice-app .summary-games{grid-template-columns:repeat(auto-fit,minmax(75px,1fr));gap:12px}.practice-app .result-details{gap:0 10px;font-size:.81rem}.practice-app .round-result h3{font-size:1.1rem}.practice-app .practice-history{margin:0 16px 20px}.practice-app .round-note{font-size:.85rem}.practice-app .round-status{font-size:.82rem}.practice-app .round-score strong{font-size:2.8rem}}@media (width<=420px){.practice-app .game-setup,.practice-app .session-summary{padding:16px}.practice-app .round-answer-form .round-input-label{flex:1}.practice-app .round-number{width:100%}.practice-app .round-answer-form .round-button{flex:1}.practice-app .share-actions button{flex:44%;font-size:.8rem}.practice-app .summary-actions button{flex:1;font-size:.8rem}.practice-app .skill-option{font-size:.83rem}}@media (width<=700px){.practice-app.practice-compact .game-setup{padding:16px}.practice-app.practice-compact .setup-heading h2{margin-bottom:8px}.practice-app.practice-compact .setup-heading .eyebrow{margin-bottom:5px}.practice-app.practice-compact .setup-entry{margin-bottom:14px;padding-bottom:14px}}@media (prefers-reduced-motion:reduce){.practice-app .session-progress>span{transition:none}.practice-app .round-tap.is-tapped{animation:none}}
