:root{color-scheme:light;--ink:#142c2b;--muted:#637674;--paper:#f2f5f5;--line:#dfe7e6;--green:#137665;--green-light:#d7eee6;--blue:#4277c5;--blue-light:#e3ecfb;--dark:#082e2b;--radius:15px;font-family:Inter,'PingFang SC','Microsoft YaHei',system-ui,sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e5a632;outline-offset:3px}button{border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.topbar{background:var(--dark);color:#fff;min-height:88px;padding:18px max(24px,calc((100vw - 1320px)/2));display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:14px;font-weight:650;font-size:19px}.brand-mark{border:1px solid #689087;border-radius:10px;padding:9px 7px;color:#d5e8b9;font-family:'Songti SC',serif;letter-spacing:2px}.brand small{display:block;font-size:11px;font-weight:400;letter-spacing:2px;color:#9bbab4;margin-top:6px}.edition{font-size:13px;color:#b9d1cb;display:flex;align-items:center;gap:16px}.edition span{font:24px Georgia,serif;color:#d5e8b9}main{max-width:1320px;margin:auto;padding:34px 24px 20px}.heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{font-size:13px;letter-spacing:2px;color:var(--green);font-weight:650;margin:0 0 10px}h1{font-size:clamp(24px,2.4vw,32px);letter-spacing:-.8px;margin:0;font-weight:650}h2{font-size:18px;margin:0;font-weight:650}h3{margin:0}.scope-note{color:var(--muted);font-size:13px;line-height:1.8;margin:0;text-align:right}.tabs{display:flex;align-items:center;border-bottom:1px solid var(--line);gap:28px;margin-bottom:22px}.tab{padding:0 3px 15px;font-weight:550;position:relative;color:var(--muted)}.tab.active{color:var(--green)}.tab.active:after{content:'';position:absolute;height:3px;bottom:-1px;background:var(--green);left:0;right:0;border-radius:3px}.tabs>span{font-size:12px;color:var(--muted);margin-left:auto;padding-bottom:15px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 3px 12px #173e3303}.board-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px;padding:20px 24px}.label{color:var(--muted);font-size:13px;margin:0 0 12px}.board{display:flex;gap:9px}.card{background:#fff;border:1px solid #d1dddb;box-shadow:0 3px 0 #eff3f2;width:53px;height:69px;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font-size:24px;font-weight:650;line-height:1.2}.card small{font-size:21px}.card.red,.red{color:#c84852}.card.empty{background:#f5f7f7;color:#a6b4b1;border:1px dashed #cbd7d4;box-shadow:none;font-weight:400;font-size:22px}.card.empty small{font-size:11px;margin-top:5px}.board-presets{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}.board-presets button{border:1px solid var(--line);padding:9px 11px;border-radius:7px;font-size:13px;background:#fafbfb}.board-presets button:hover,.quiet:hover{background:#edf4f1}.texture{display:flex;gap:7px;margin-top:14px;justify-content:flex-end;flex-wrap:wrap}.texture span{color:var(--muted);font-size:12px}.texture span+span:before{content:'·';margin-right:7px}.workspace{display:grid;grid-template-columns:minmax(0,1.28fr) minmax(320px,1fr);gap:22px;align-items:start}.matrix-panel{padding:23px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.player-switch{display:flex;background:#edf1f0;border-radius:8px;padding:3px}.player-switch button{padding:7px 12px;font-size:13px;font-weight:600;border-radius:6px;color:var(--muted)}.player-switch button.active{background:var(--green);color:#fff}#switch-b.active{background:var(--blue)}.range-controls{display:flex;gap:8px;align-items:center}.range-controls select{flex:1;min-width:0;border:1px solid var(--line);padding:10px 9px;border-radius:7px;background:white;color:var(--ink);font-size:14px}.quiet{font-size:13px;padding:9px 10px;border-radius:6px;white-space:nowrap}.matrix-meta{display:flex;justify-content:space-between;gap:12px;font-size:13px;margin:19px 0 12px;color:var(--muted)}.matrix-meta strong{font-weight:500;color:var(--ink)}.matrix{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:3px}.cell{min-width:0;aspect-ratio:1.08;border-radius:4px;border:1px solid #e7eceb;background:#f3f6f5;font:600 clamp(12px,1vw,14px) 'SFMono-Regular',Consolas,monospace;color:#778885;position:relative;padding:0;transition:background .12s;overflow:hidden}.cell.included{background:linear-gradient(to right,var(--cell-color) 0 var(--percent),#e8efed var(--percent) 100%);border-color:transparent;color:#123e34}.matrix.b-mode .cell.included{color:#233c68}.cell.pair:not(.included){border-color:#c3d5d0}.cell.selected{outline:2px solid var(--ink);outline-offset:1px;z-index:1}.cell:hover{filter:brightness(.94)}.cell.zero{opacity:.6}.matrix-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:14px 0 20px}.matrix-legend span{display:flex;align-items:center;gap:5px}.swatch{width:10px;height:10px;background:#91d3b5;border-radius:2px}.swatch.partial{background:linear-gradient(90deg,#91d3b5 50%,#e8efed 50%)}.hand-detail{background:#f7f9f8;border-radius:10px;border:1px solid #e6ecea;padding:16px}.hand-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.hand-detail h3{font:700 26px Consolas,monospace}.hand-detail-head>span{font-size:13px;color:var(--muted)}.weight-label{display:flex;justify-content:space-between;font-size:13px;margin:15px 0 7px}#weight{width:100%;accent-color:var(--green);margin:5px 0 14px}.hand-combos{display:flex;gap:7px;flex-wrap:wrap}.combo{background:#fff;border:1px solid #dfe7e4;border-radius:6px;padding:6px 8px;font-size:14px;font-weight:600;white-space:nowrap}.combo.blocked{opacity:.35;text-decoration:line-through}.muted{font-size:12px;color:var(--muted);line-height:1.8;margin:13px 0 0}.analysis-column{display:grid;gap:18px}.mini-label{font-size:12px;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.summary-item{padding-right:14px}.summary-item+.summary-item{border-left:1px solid var(--line);padding-left:20px}.summary-item strong{font-size:13px;font-weight:600}.a-text{color:var(--green)}.b-text{color:var(--blue)}.combo-number{display:block;font:500 39px Georgia,serif;letter-spacing:-1px;margin:10px 0 4px}.summary-item p{margin:0;font-size:12px;color:var(--muted);line-height:1.8}.summary-item em{font-style:normal;color:#bc7151}.equity-panel{background:var(--dark);color:white;border-color:var(--dark)}.equity-panel .mini-label{color:#9bbab4}.equity-panel .muted{color:#a6c2b9}.equity-result>p{color:#c5d8d1;font-size:14px;line-height:1.8;margin:0 0 20px}.primary{width:100%;display:flex;justify-content:space-between;align-items:center;padding:13px 16px;font-weight:600;border-radius:8px;font-size:14px;background:#c7e6a3;color:#19342c}.primary:hover{filter:brightness(.96)}.equity-numbers{display:flex;justify-content:space-between;margin:7px 0 14px;font-size:13px;color:#bfd6ce}.equity-numbers strong{display:block;color:white;font:36px Georgia,serif;margin-top:5px}.equity-numbers>div:last-child{text-align:right}.equity-bar{height:10px;border-radius:8px;overflow:hidden;background:#7696e2;margin-bottom:12px}.equity-bar span{display:block;height:100%;background:#90cfa6}.equity-meta{font-size:12px;color:#bfd6ce;margin:0 0 18px;line-height:1.8}.color-legend{display:flex;gap:15px;font-size:13px;font-weight:700}.dist-row{display:grid;grid-template-columns:50px 1fr 70px;gap:10px;align-items:center;margin:11px 0;font-size:12px}.dist-label{color:var(--muted)}.dist-bars{display:grid;gap:4px}.dist-track{height:6px;background:#f0f3f2;border-radius:4px;overflow:hidden}.dist-fill{height:100%;background:var(--green);min-width:0}.dist-fill.blue{background:var(--blue)}.dist-values{font-variant-numeric:tabular-nums;text-align:right;display:flex;justify-content:flex-end;gap:7px;font-size:11px}.practice-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:22px}.quiz-panel{padding:36px}.quiz-panel h2{font-size:27px;margin-bottom:26px}.quiz-question{font-size:20px;line-height:1.8;margin:30px 0 22px}.quiz-question strong{font-family:Consolas,monospace}.quiz-panel form{display:flex;gap:10px}.quiz-panel form input{width:55%;min-width:0;padding:13px 15px;border:1px solid var(--line);border-radius:8px;font-size:16px}.quiz-panel form .primary{width:45%;justify-content:center}.practice-guide{padding:30px}.practice-guide h2{margin-bottom:20px}.practice-guide>div{display:flex;gap:17px;border-top:1px solid var(--line);padding:17px 0}.practice-guide>div strong{font:24px Georgia,serif;color:#91aba2}.practice-guide>div p{font-size:14px;line-height:1.8;margin:0}.feedback{padding:17px;background:#edf5ee;border-radius:8px;margin-top:22px;font-size:15px;line-height:1.8}.feedback.wrong{background:#fff0e7}.feedback p{margin:8px 0}.next{margin-top:17px;color:var(--green)}footer{display:flex;justify-content:space-between;align-items:center;margin-top:30px;padding:20px 0;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}footer button{font-size:12px;text-decoration:underline;text-underline-offset:4px}dialog{border:1px solid var(--line);border-radius:16px;max-width:min(670px,calc(100vw - 28px));padding:25px;color:var(--ink);box-shadow:0 30px 100px #102c3040}dialog::backdrop{background:#061e2966;backdrop-filter:blur(3px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:25px}.close{font-size:28px;line-height:1;padding:6px}.deck{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:6px;margin:20px 0}.deck .card{width:100%;height:55px;min-width:31px;font-size:18px;box-shadow:none}.deck .card small{font-size:16px}#about-dialog{max-width:620px}#about-dialog p{font-size:15px;line-height:1.9;margin:18px 0}#remove-card{margin-top:5px}
@media(min-width:1500px){.cell{font-size:14px}}
@media(max-width:1000px){.workspace{grid-template-columns:1.15fr 1fr;gap:16px}.panel{padding:19px}.matrix-panel{padding:17px}.board-presets{max-width:280px}.board-side{max-width:50%}.cell{font-size:12px}.range-controls{gap:4px}.quiet{padding:9px 6px}.summary-item+.summary-item{padding-left:12px}.combo-number{font-size:33px}}
@media(max-width:780px){.topbar{min-height:76px;padding:15px 19px}.brand{font-size:16px}.brand small{font-size:10px}.edition{font-size:12px;gap:8px}.heading{align-items:start}.scope-note{display:none}main{padding:26px 15px 10px}.heading{margin-bottom:24px}h1{font-size:25px;line-height:1.4}.tabs{gap:22px}.tabs>span{max-width:130px;text-align:right;font-size:11px;line-height:1.6;padding-bottom:10px}.workspace{grid-template-columns:1fr}.matrix-panel{padding:19px}.cell{font-size:clamp(12px,2.3vw,17px)}.analysis-column{grid-template-columns:1fr 1fr;align-items:start}.distribution{grid-column:1/-1}.board-panel{gap:16px}.board-side{max-width:none}.board-presets{max-width:210px}.board-presets button{font-size:11px;padding:7px 8px}.texture{font-size:11px}.texture span{font-size:11px}.card{width:43px;height:59px;font-size:22px}.card small{font-size:19px}.board{gap:6px}.practice-layout{grid-template-columns:1fr}.quiz-panel{padding:25px}.quiz-panel h2{font-size:24px}}
@media(max-width:500px){.brand-mark{font-size:16px;padding:9px 6px}.brand small{letter-spacing:1px}.edition span{display:none}.board-panel{align-items:start;flex-direction:column;padding:17px}.board-side{width:100%}.board-presets{max-width:none;justify-content:flex-start}.board-presets button{font-size:12px}.texture{justify-content:flex-start;margin-top:10px}.board .card{width:49px;height:63px}.board{gap:8px}.analysis-column{grid-template-columns:1fr}.distribution{grid-column:auto}.panel-heading{margin-bottom:17px}h2{font-size:17px}.matrix{gap:2px}.matrix-panel{padding:14px}.cell{font-size:12px;border-radius:3px;aspect-ratio:.86}.matrix-meta{font-size:12px}.matrix-legend{font-size:11px;gap:9px}.hand-detail{padding:12px}.hand-detail-head>span{font-size:12px}.deck{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.deck .card{min-width:30px;height:51px}.quiz-question{font-size:18px}.quiz-panel{padding:22px 18px}.quiz-panel form{flex-direction:column}.quiz-panel form input,.quiz-panel form .primary{width:100%}.practice-guide{padding:24px}footer{font-size:11px;gap:20px;align-items:start;line-height:1.8}.scope-note{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Compact workspace: keep related controls close, reveal detail on demand. */
.topbar{min-height:58px;padding:9px max(20px,calc((100vw - 1260px)/2));height:58px}.brand{font-size:16px;gap:10px}.brand-mark{padding:5px 6px;font-size:17px}.brand small{display:none}.header-help{font-size:13px;color:#d1e3dc;padding:8px}main{max-width:1300px;padding:12px 20px 14px}.tabs{margin-bottom:12px;gap:28px;height:36px}.tab{padding-bottom:10px;font-size:14px}.tabs>span{padding-bottom:10px;font-size:12px}.mobile-analysis{display:none}.board-panel{padding:11px 16px;margin-bottom:12px;border-radius:11px;min-height:78px}.board-main{display:flex;align-items:center;gap:15px}.board-main>.label{margin:0;white-space:nowrap}.board .card{width:39px;height:50px;font-size:20px;gap:0}.board .card small{font-size:17px}.board .card.empty{font-size:18px}.board .card.empty small{font-size:10px}.board{gap:6px}.board-presets button{padding:6px 9px;font-size:12px}.texture{margin-top:7px}.workspace{gap:14px;grid-template-columns:minmax(390px,1.15fr) minmax(330px,1fr);align-items:stretch}.matrix-panel{padding:14px 17px}.panel-heading{margin-bottom:10px}h2{font-size:16px}.player-switch button{padding:5px 12px;font-size:12px}.range-controls select{padding:7px 9px;font-size:13px}.range-controls .quiet{padding:7px 10px}.matrix-meta{margin:9px 0;font-size:12px}.matrix-wrap{max-width:min(100%,calc(100dvh - 362px),480px);margin:0 auto}.matrix{gap:3px}.cell{aspect-ratio:1;font-size:12px}.matrix-legend{margin:9px 0;justify-content:center;font-size:11px}.hand-detail{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 11px}.hand-detail-head{gap:8px}.hand-detail h3{font-size:20px}.hand-detail-head .quiet{font-size:12px;padding:4px 2px}.weight-row{display:flex;align-items:center;gap:8px;min-width:0;flex:1;max-width:235px}.weight-label{display:flex;gap:6px;font-size:12px;margin:0;white-space:nowrap}#weight{width:100%;min-width:50px;margin:0}.analysis-column{gap:10px;display:flex;flex-direction:column}.overview{padding:14px 18px}.summary-grid{gap:12px}.summary-item{padding-right:8px}.summary-item+.summary-item{padding-left:15px}.combo-number{font-size:31px;margin:5px 0 3px}.summary-item p{line-height:1.55;font-size:11px}.overview .muted{font-size:11px;line-height:1.5;margin-top:8px}.analysis-tabs{display:flex;padding:4px;border:1px solid var(--line);background:#e9eeec;border-radius:9px;gap:4px}.analysis-tabs button{font-size:13px;padding:7px;flex:1;border-radius:6px}.analysis-tabs button.active{background:white;color:var(--green);box-shadow:0 1px 3px #102e2412;font-weight:600}.equity-panel,.distribution{padding:17px 18px;flex:1}.equity-result>p{margin:5px 0 17px}.equity-numbers{margin:6px 0 12px}.equity-numbers strong{font-size:34px}.equity-meta{margin-bottom:13px;font-size:11px}.equity-panel .muted,.distribution .muted{font-size:11px;line-height:1.6;margin-top:10px}.primary{padding:11px 14px}.dist-row{margin:6px 0;line-height:1.45}.dist-track{height:5px}.dist-bars{gap:3px}.distribution .panel-heading{margin-bottom:12px}.mobile-dock{display:none}.practice-layout{gap:14px}.quiz-panel{padding:25px}.quiz-panel h2{font-size:23px;margin-bottom:18px}.quiz-question{margin:20px 0 18px}.practice-guide{padding:24px}.practice-guide>div{padding:12px 0}.practice-guide>div p{font-size:14px}#combos-dialog .hand-combos{margin-top:20px;max-width:440px}
@media(min-width:781px) and (max-height:720px){.matrix-wrap{max-width:min(100%,calc(100dvh - 440px))}.topbar{height:50px;min-height:50px}.board-panel{min-height:66px;padding:8px 14px}.board .card{height:44px;width:35px;font-size:18px}.board .card small{font-size:15px}.overview{padding:10px 15px}.overview .muted{display:none}.combo-number{font-size:27px}.equity-panel,.distribution{padding:13px 15px}.dist-row{margin:4px 0}.matrix-panel{padding:11px 15px}.hand-detail{padding:5px 8px}}
@media(max-width:780px){.topbar{height:48px;min-height:48px;padding:8px 13px}.brand{font-size:15px}.brand-mark{font-size:15px;padding:4px 5px}.header-help{font-size:12px;padding:6px}main{padding:9px 10px 78px}.tabs{height:34px;margin-bottom:9px;gap:27px}.tab{font-size:14px;padding:0 4px 10px}.tabs>span{max-width:none;font-size:10px;line-height:1.5;padding-bottom:10px}.mobile-analysis{display:block}.board-panel{padding:9px 11px;margin-bottom:9px;min-height:0;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}.board-main{gap:8px}.board-main>.label{font-size:11px}.board .card{width:34px;height:43px;font-size:18px;border-radius:6px}.board .card small{font-size:15px}.board{gap:5px}.board-side{max-width:none;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%}.board-presets{max-width:none;gap:5px;justify-content:flex-start}.board-presets button{font-size:11px;padding:4px 7px}.texture{display:none}.workspace{display:block}.matrix-panel{padding:11px 12px;border-radius:11px}.matrix-panel .panel-heading{margin-bottom:8px}.matrix-panel .panel-heading h2{font-size:14px}.range-controls select{font-size:12px;padding:6px 8px}.range-controls .quiet{font-size:12px;padding:6px 7px}.matrix-meta{font-size:11px;margin:7px 0}.matrix-wrap{max-width:min(100%,420px);margin:auto}.matrix{gap:2px}.cell{aspect-ratio:1.08;font-size:12px;border-radius:3px}.matrix-legend{margin:7px 0;font-size:10px;gap:12px}.hand-detail{padding:6px 8px;gap:8px;border-radius:7px}.hand-detail h3{font-size:18px}.hand-detail-head{gap:7px}.hand-detail-head .quiet{font-size:11px}.weight-row{gap:5px;max-width:160px}.weight-label{font-size:11px;gap:4px}.analysis-column{display:none;gap:9px}body[data-view="analysis"] .matrix-panel{display:none}body[data-view="analysis"] .analysis-column{display:flex}.overview{padding:13px 16px}.overview .panel-heading{margin-bottom:7px}.overview .muted{font-size:11px}.summary-grid{gap:12px}.combo-number{font-size:30px}.equity-panel,.distribution{padding:17px}.analysis-tabs button{padding:8px}.equity-numbers strong{font-size:36px}.dist-row{margin:9px 0;font-size:13px}.dist-track{height:6px}.distribution{flex:none}.mobile-dock{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:9px;padding:10px 13px max(10px,env(safe-area-inset-bottom));background:#082e2bf5;color:white;border-top:1px solid #376454;z-index:10;box-shadow:0 -3px 16px #102e2410}.mobile-dock>span{font-size:11px;display:flex;gap:12px;align-items:center;line-height:1.5}.mobile-dock strong{font-size:16px;display:block;font-weight:550}.mobile-dock button{background:#c7e6a3;color:var(--dark);font-size:13px;font-weight:600;padding:11px 15px;border-radius:7px;white-space:nowrap}.practice-layout{display:block}.quiz-panel{padding:22px 17px}.quiz-panel h2{font-size:21px}.practice-guide{margin-top:10px;padding:18px}.practice-guide>div p{font-size:13px}.quiz-question{font-size:18px}.quiz-panel form{flex-direction:row}.quiz-panel form input{width:55%}.quiz-panel form .primary{width:45%}.deck{grid-template-columns:repeat(7,minmax(0,1fr))}.deck .card{height:48px}.dialog-heading h2{font-size:17px}dialog{padding:20px}}
@media(max-width:380px){.tabs{gap:20px}.tabs>span{font-size:9px}.matrix-panel{padding:9px}.matrix .cell{font-size:11px}.range-controls{gap:3px}.weight-row{max-width:137px}.weight-label{font-size:10px}.hand-detail-head .quiet{font-size:10px}}

.training-controls{display:flex;align-items:end;gap:16px;padding:14px 18px;margin-bottom:12px}.training-controls label,.training-question form label{display:flex;flex-direction:column;gap:6px;font-size:14px}.training-controls select,.training-question input,.training-question select{background:white;border:1px solid var(--line);border-radius:7px;padding:10px;font:inherit;max-width:100%}.training-controls>span{font-size:13px;margin-left:auto;color:#637971}.training-question{max-width:1000px;margin:auto;padding:22px}.training-question h2{font-size:20px;line-height:1.5;margin:16px 0 8px}.training-question p{font-size:14px;line-height:1.7;margin:10px 0}.training-question form{display:flex;gap:12px;align-items:end;margin:16px 0}.training-question form label{flex:1;min-width:0}.training-question form input{width:100%;box-sizing:border-box}.training-question details{font-size:14px;line-height:1.7;margin-top:12px}.training-question summary{cursor:pointer;color:#1c6d5c;padding:8px 0}.lesson-board{display:flex;gap:7px;margin:10px 0}.lesson-card{display:inline-block;background:white;border:1px solid #d3dfdb;border-radius:6px;padding:8px 10px;font-weight:650;font-size:19px}.lesson-card.red{color:#bc4e59}.lesson-range{background:#f0f5f2;padding:10px 12px;border-radius:8px}.board-comparison{display:flex;gap:24px}.lesson-table-wrap{overflow-x:auto;margin:12px 0}.lesson-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}.lesson-table th,.lesson-table td{padding:8px 6px;border-bottom:1px solid #cddbd5;white-space:nowrap}.combo-explanation{padding:10px 0;border-bottom:1px solid #cddbd5}.combo-explanation .combo{display:inline-block;font-size:13px;margin:3px;padding:4px 6px}.training-help{border-top:1px solid var(--line)}.training-question .feedback{margin-top:14px;padding:16px}.training-question .next{margin-top:12px}body[data-view="practice"] main{padding-bottom:18px}
@media(max-width:780px){.training-controls{flex-wrap:wrap;gap:10px;padding:12px}.training-controls label{flex:1;min-width:130px}.training-controls>span{width:100%;margin:0}.training-question{padding:16px}.training-question h2{font-size:18px}.training-question form{flex-wrap:wrap;gap:9px}.training-question form label{min-width:110px}.training-question form .primary{width:100%}.board-comparison{gap:14px;flex-wrap:wrap}.lesson-card{padding:7px 8px;font-size:18px}.training-question .feedback{padding:12px}.lesson-table{font-size:12px}.lesson-table th,.lesson-table td{padding:7px 4px}}
.training-question form .primary{width:auto;flex:0 0 auto;min-width:140px}.training-question form select{width:100%}.training-question #comparison-label{min-width:220px}
@media(max-width:780px){.training-question form .primary{width:100%}.training-question #comparison-label{min-width:0;width:100%}}

/* Playable lessons and a compact skill route. */
.quest-nav{display:flex;gap:8px;margin:0 0 12px}.quest-nav button{padding:9px 15px;border-radius:20px;font-size:14px}.quest-nav button.active{background:#0b4039;color:#fff}.skill-road{padding:22px;border-radius:18px;background:#092f2a;color:#eaf4ee;max-width:1000px;margin:auto}.road-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.road-heading .eyebrow{color:#b5cf75;margin:0 0 8px}.road-heading h2{font-size:24px;margin:0}.road-heading>strong{font-size:30px;color:#d1ee70;white-space:nowrap}.road-rule,.road-save{font-size:14px;line-height:1.7;color:#b8cfc7}.road-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}.skill-node{display:flex;align-items:center;text-align:left;gap:12px;padding:16px 13px;border:1px solid #41635a;border-radius:12px;color:#dcebe4;background:#1b4239;min-height:94px}.skill-node.available{border-color:#c7e75f;background:#d0ee79;color:#0b3529;box-shadow:0 4px 0 #7da42f}.skill-node.passed{background:#226348;border-color:#4c9c6d}.skill-node.locked{opacity:.65}.node-number{display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:700;width:38px;height:38px;border:1px solid currentColor;border-radius:50%;flex-shrink:0}.node-copy{min-width:0}.node-copy strong{display:block;font-size:16px}.node-copy small{display:block;font-size:12px;margin-top:6px;line-height:1.5}.node-arrow{margin-left:auto;font-size:13px}.skill-lesson,.quest-result{max-width:860px;margin:auto;padding:24px}.lesson-kicker{font-size:13px;color:#427868;margin:14px 0 7px}.skill-lesson h2{font-size:24px;margin:0}.scene-instruction{font-size:16px;line-height:1.7}.interactive-scene{background:#edf4ee;border-radius:13px;padding:18px}.known-cards{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:14px;margin-bottom:15px}.known-cards button{padding:4px;border-radius:8px;border:2px solid transparent}.known-cards button.active{background:#cedf75;border-color:#6b8c24}.mini-playing-card{display:inline-flex;align-items:center;justify-content:center;background:white;border:1px solid #c8d8ce;border-radius:5px;min-width:36px;min-height:48px;padding:4px;font-size:19px;font-weight:700;box-shadow:0 2px 0 #cfdbd5}.mini-playing-card.red{color:#bb4555}.combo-playground,.pick-combos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.play-combo{background:#d6e5d8;border-radius:8px;padding:9px;display:flex;justify-content:center;gap:5px;flex-wrap:wrap;transition:opacity .25s,transform .25s}.play-combo>span:last-child{font-size:12px;text-align:center;width:100%}.play-combo.removed{opacity:.35;transform:scale(.92);background:#edcac1;text-decoration:line-through}.lesson-equation,.density-result{display:flex;align-items:center;justify-content:center;gap:20px;margin:22px 0 4px}.lesson-equation span,.density-result strong{font-size:30px;text-align:center}.lesson-equation small,.density-result small{display:block;font-size:12px;font-weight:400;margin-top:4px}.answer-glow{color:#326b12}.lesson-toggle{display:flex;gap:8px;margin:10px 0}.lesson-toggle button{padding:9px 12px;border:1px solid #adc3b3;border-radius:8px;font-size:14px}.lesson-toggle .active{background:#124637;color:white}.lesson-insight{padding:12px 14px;border-left:4px solid #85a83b;background:#f1f6df;font-size:16px;line-height:1.7}.enter-challenge{max-width:100%;margin-top:4px}.scene-note{font-size:13px;line-height:1.6;color:#60786b}.range-buckets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:16px 0}.range-buckets>div{display:flex;flex-direction:column;align-items:center;gap:7px;background:#fff;padding:12px 5px;border-radius:9px;font-size:13px}.range-buckets strong{font-size:17px}.range-buckets b{font-size:24px;color:#306044}.lesson-action{padding:10px 14px;border-radius:8px;background:#124637;color:white;font-size:14px}.lesson-total{display:flex;align-items:baseline;justify-content:center;gap:12px;margin:18px 0 4px;font-size:14px}.lesson-total strong{font-size:38px;color:#326b12}.density-pieces{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.density-piece{padding:8px;border-radius:5px;background:#d6dfd9;color:#607169;font-size:14px}.density-piece.hit{background:#c1df5b;color:#193918;border:1px solid #81a533}.duel-ranges{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:14px 0}.duel-ranges>div{padding:14px;background:white;border-radius:9px}.duel-ranges strong,.duel-ranges span{display:block;font-size:13px}.duel-ranges b{font-size:28px;color:#306044}.density-meter{height:12px;background:#e8eee9;border-radius:4px;margin:14px 0;overflow:hidden}.density-meter i{display:block;height:100%;background:#89b943;transition:width .3s}.quest-session{max-width:1000px;margin:0 auto 12px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.quest-session p{font-size:13px;margin:0}.quest-session #quest-error{width:100%;color:#973e3e}.quest-dots{display:flex;gap:5px;margin-left:auto}.quest-dot{display:grid;place-items:center;width:26px;height:26px;border:1px solid #a6bab0;border-radius:50%;font-size:12px}.quest-dot.current{background:#edf5d2;border:2px solid #82a83b}.quest-dot.right{background:#27674a;color:white}.quest-dot.miss{background:#f0d1bf;color:#783929}.combo-pick{padding:9px 4px;border-radius:9px;border:2px solid #d3dfd6;display:flex;justify-content:center;gap:5px}.combo-pick.selected{background:#e5f5a6;border-color:#799f31;transform:translateY(-2px)}.combo-pick.expected{border-color:#2f8e5c}.combo-pick.invalid-pick{border-color:#bd5265;background:#f8e1e6}.quest-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.quest-options button{display:flex;align-items:center;gap:10px;padding:14px;border:2px solid #d6e1d9;border-radius:10px;font-size:16px;text-align:left}.quest-options button>span{display:grid;place-items:center;width:27px;height:27px;background:#e5eee8;border-radius:50%;font-size:13px;flex-shrink:0}.quest-options button.selected{border-color:#76a233;background:#e5f3b8}.quest-submit{margin:12px 0;width:100%;text-align:center}.quest-result{text-align:center;padding:32px}.result-emblem{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;font-size:38px;background:#ebeddd;color:#6c7a46}.result-emblem.success{background:#d3ed75;color:#315d17;animation:skill-pop .5s ease-out}.result-score{font-size:64px;font-weight:650;color:#35652b;margin:12px 0}.result-score small{font-size:24px;color:#668276}.quest-result p{font-size:16px;line-height:1.7}.quest-result .quiet{display:block;margin:12px auto}.road-save{margin-bottom:0}.skill-road #road-status:empty{display:none}
@keyframes skill-pop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}
@media(max-width:780px){.skill-road{padding:16px}.road-heading h2{font-size:20px}.road-heading>strong{font-size:24px}.road-grid{gap:9px}.skill-node{min-height:96px;padding:11px 9px;gap:8px;align-items:flex-start}.node-number{width:28px;height:28px;font-size:15px}.node-copy strong{font-size:14px;line-height:1.5}.node-copy small{font-size:12px}.node-arrow{display:none}.road-rule{font-size:13px}.skill-lesson{padding:15px}.interactive-scene{padding:12px}.combo-playground,.pick-combos{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.mini-playing-card{min-width:30px;min-height:40px;font-size:17px}.play-combo{padding:8px 3px;gap:4px}.lesson-equation,.density-result{gap:12px}.lesson-equation span,.density-result strong{font-size:25px}.skill-lesson h2{font-size:21px}.scene-instruction,.lesson-insight{font-size:15px}.quest-options{grid-template-columns:1fr}.quest-options button{font-size:15px;padding:12px}.quest-session{gap:7px}.quest-session>strong{font-size:14px}.quest-session p{width:100%}.quest-dots{gap:4px}.quest-dot{width:23px;height:23px}.range-buckets{grid-template-columns:repeat(2,1fr)}.duel-ranges{gap:8px}.duel-ranges>div{padding:10px}.lesson-toggle button{font-size:13px;padding:8px 10px}}
@media(prefers-reduced-motion:reduce){.result-emblem.success{animation:none}}
.quest-feedback{margin-top:12px;padding:14px;border-radius:12px;background:#eef5dc;border:1px solid #ccdfa0}.quest-feedback.miss{background:#fff1e7;border-color:#ead0b7}.quest-feedback .lesson-equation,.quest-feedback .density-result{margin:15px 0}.quest-feedback .density-result strong{font-size:27px}
/* Student accounts */
.header-actions{display:flex;align-items:center;gap:12px}.account-button{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #95b8ad;background:#d5f57a;color:#102c29;border-radius:999px;padding:10px 17px;font-size:14px;font-weight:750;cursor:pointer}.account-dialog{width:min(480px,calc(100vw - 28px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow:auto;padding:24px;border-radius:22px}.account-dialog .dialog-heading{align-items:flex-start;margin-bottom:14px}.account-dialog h2{font-size:25px;margin:4px 0 0}.account-dialog .eyebrow{margin:0}.account-form{display:grid;gap:15px}.account-field{display:grid;gap:6px;color:#183f38;font-size:15px;font-weight:650}.account-field input{font:inherit;font-weight:400;font-size:16px;width:100%;box-sizing:border-box;border:1px solid #b7c9c5;border-radius:10px;background:#fff;color:#132f2b;padding:12px;min-height:46px}.account-field input:focus{outline:3px solid #c9e990;outline-offset:1px}.account-field small{font-size:13px;line-height:1.45;color:#596f6a;font-weight:400}.account-note{color:#526b65;font-size:14px;line-height:1.65;margin:10px 0 18px}.show-password{display:flex;gap:8px;align-items:center;font-size:14px;color:#47635a}.show-password input{width:18px;height:18px;accent-color:#235e48}.account-error{margin:0;padding:10px 12px;background:#ffede5;border-radius:10px;color:#9f3822;font-size:14px;line-height:1.5}.account-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;margin:14px 0}.account-dialog .primary{width:100%;min-height:47px;justify-content:center;margin:0}.account-dialog>.quiet{width:100%;text-align:left}.recovery-card{background:#123d33;color:#f7fff7;border-radius:14px;padding:20px;margin:20px 0;display:grid;gap:14px}.recovery-card code{font:600 18px/1.7 ui-monospace,monospace;letter-spacing:.04em;color:#d4f778;overflow-wrap:anywhere;user-select:all}.account-continue{display:block;width:100%;margin-top:16px}.learner-profile{display:grid;grid-template-columns:54px 1fr;column-gap:12px;align-items:center;padding:14px;background:#edf4ed;border-radius:12px}.learner-profile strong{font-size:19px}.learner-profile p{grid-column:2;margin:3px 0;font-size:14px}.profile-mark{grid-row:span 2;width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:#c8ee7b;color:#234336;font-size:22px;font-weight:800}.logout-button{display:block;margin-top:20px;color:#8f4533}.learner-gate{display:grid;grid-template-columns:46px 1fr auto;gap:10px 14px;align-items:center;background:#153f34;color:white;border-radius:16px;padding:18px;margin:16px 0}.gate-icon{display:grid;place-items:center;background:#d7f57d;color:#193a2c;border-radius:12px;width:44px;height:52px;font-size:33px}.learner-gate strong{font-size:18px}.learner-gate p{margin:5px 0 0;font-size:14px;color:#d7e6dd}.learner-gate .primary{font-size:15px;margin:0}.learner-gate .quiet{grid-column:3;color:#e3efdd;font-size:14px}.learner-gate[hidden]{display:none}
@media(max-width:600px){.header-actions{gap:6px}.account-button{padding:9px 12px;max-width:102px;font-size:14px}.topbar .header-help{font-size:13px;padding:5px}.brand small{display:none}.brand>span:last-child{font-size:16px}.account-dialog{padding:20px 18px}.account-dialog h2{font-size:23px}.learner-gate{grid-template-columns:40px 1fr;padding:15px}.learner-gate .gate-icon{width:38px;height:46px}.learner-gate .primary{grid-column:1/-1;width:100%;justify-content:center}.learner-gate .quiet{grid-column:1/-1;justify-self:center}.account-field small{font-size:13px}}

/* Phone verification extends the existing learner dialog. */
.phone-send{justify-self:start;min-height:44px;border:1px solid var(--line,#d9e4e1);border-radius:10px;padding:10px 16px;color:var(--green,#287362);background:#fff;font-size:1rem;cursor:pointer}
.phone-send:disabled{opacity:.65;cursor:default}
.phone-captcha{max-width:100%;overflow-x:auto;padding:8px 0}.phone-captcha[hidden]{display:none}.phone-captcha>div{min-height:230px}
.phone-form [name=code]{font-size:1.25rem;letter-spacing:.25em;font-variant-numeric:tabular-nums}
.phone-form [role=status]:empty{display:none}
