:root{color:#172136;font-synthesis:none;text-rendering:optimizelegibility;--bg:#eef2f7;--surface:#fff;--surface-2:#f6f8fc;--text:#172136;--muted:#6b778b;--border:#dde5f0;--accent:#4e68e8;--accent-dark:#3e54c8;--accent-soft:#edf1ff;--green:#14795b;--green-soft:#e9f7f1;--orange:#d66b3f;--orange-soft:#fff0e8;--red:#b94252;--red-soft:#fff0f2;--shadow:0 12px 34px #23314e17;background:#eef2f7;font-family:Microsoft YaHei,PingFang SC,Inter,system-ui,sans-serif}*{box-sizing:border-box}html{background:var(--bg);min-width:320px}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}button:not(:disabled){cursor:pointer}button:focus-visible,input:focus-visible,[tabindex="0"]:focus-visible{outline-offset:2px;outline:3px solid #4e68e859}.app-shell{min-height:100vh;padding-bottom:calc(74px + env(safe-area-inset-bottom));color:var(--text)}.app-header{z-index:20;min-height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffeb;grid-template-columns:46px minmax(0,1fr) 46px;align-items:center;display:grid;position:sticky;top:0}.brand-mark,.profile-button{background:var(--accent);color:#fff;border:0;border-radius:12px;place-items:center;width:38px;height:38px;font-size:20px;display:grid}.profile-button{background:var(--accent);color:#fff;border-radius:19px;justify-self:end;width:auto;min-width:38px;max-width:96px;padding:0 10px;font-size:12px;font-weight:600}.profile-button span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.icon-button{width:44px;height:44px;color:var(--text);background:0 0;border:0;border-radius:12px;place-items:center;padding:0;display:grid}.icon-button svg{width:20px}.header-title{text-align:center;min-width:0}.header-title b,.header-title span{display:block}.header-title b{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;overflow:hidden}.header-title span{color:var(--muted);margin-top:2px;font-size:10px}.page{width:min(1180px,100%);margin:0 auto;padding:18px 14px 28px}h1,h2,p{margin-top:0}h1{margin-bottom:7px;font-size:clamp(21px,4vw,30px);line-height:1.25}h2{font-size:17px}.eyebrow{color:var(--accent);letter-spacing:.05em;margin-bottom:5px;font-size:11px;font-weight:600;display:block}.primary-button,.secondary-button{border-radius:11px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:0 15px;font-weight:600;display:inline-flex}.primary-button{background:var(--accent);color:#fff;border:0}.primary-button:hover:not(:disabled){background:var(--accent-dark)}.primary-button:disabled{opacity:.48}.secondary-button{border:1px solid var(--border);background:var(--surface);color:var(--text)}.primary-button svg,.secondary-button svg{width:17px}.full{width:100%}.welcome-card{color:#fff;box-shadow:var(--shadow);background:linear-gradient(135deg,#304cc7,#6f7ff0);border-radius:20px;gap:18px;padding:22px;display:grid;overflow:hidden}.welcome-card .eyebrow{color:#dfe5ff}.welcome-card h1{max-width:580px}.welcome-card p{color:#e8ebff;max-width:620px;margin-bottom:18px;font-size:13px;line-height:1.7}.welcome-card .primary-button{color:#324cc2;background:#fff}.chapter-progress{justify-self:center;place-items:center;width:132px;height:132px;display:grid;position:relative}.chapter-progress svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.chapter-progress circle{fill:none;stroke-width:10px}.progress-track{stroke:#fff3}.progress-value{stroke:#fff;stroke-dasharray:38 62;stroke-linecap:round}.chapter-progress strong,.chapter-progress span{z-index:1;white-space:nowrap;position:absolute;left:50%;transform:translate(-50%)}.chapter-progress strong{font-size:24px;top:43px}.chapter-progress span{color:#e5e9ff;font-size:10px;top:76px}.home-grid{gap:15px;margin-top:15px;display:grid}.lesson-map-panel,.today-panel,.practice-card,.mistake-card,.mistake-summary{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:17px;padding:18px}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-heading h2{margin:0}.section-heading>svg{color:var(--accent)}.count-badge,.topic-chip{background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:5px 8px;font-size:10px}.lesson-list{gap:6px;display:grid}.lesson-row{width:100%;min-height:58px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:11px;grid-template-columns:34px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:8px 6px;display:grid}.lesson-row:not(:disabled):hover{background:var(--surface-2)}.lesson-row.current{background:var(--accent-soft)}.lesson-row.locked{opacity:.55}.lesson-index{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border-radius:50%;place-items:center;font-size:11px;display:grid}.lesson-row.done .lesson-index,.lesson-row.current .lesson-index{background:var(--accent);color:#fff}.lesson-index svg{width:15px}.lesson-copy b,.lesson-copy small{display:block}.lesson-copy b{font-size:13px;font-weight:600}.lesson-copy small{color:var(--muted);margin-top:3px;font-size:10px}.row-arrow{width:15px;color:var(--muted)}.task-list{gap:4px;margin-bottom:16px;display:grid}.task{grid-template-columns:34px 1fr;align-items:center;gap:9px;padding:8px 0;display:grid}.task>span{background:var(--surface-2);width:32px;height:32px;color:var(--muted);border-radius:50%;place-items:center;display:grid}.task>span svg{width:15px}.task.done>span{background:var(--green-soft);color:var(--green)}.task.current>span{background:var(--accent-soft);color:var(--accent)}.task p{margin:0}.task b,.task small{display:block}.task b{font-size:12px}.task small{color:var(--muted);margin-top:3px;font-size:10px}.lesson-page{gap:15px;display:grid}.lesson-hero,.lesson-concept-card,.lesson-example-card{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:17px}.lesson-hero{background:linear-gradient(135deg, var(--surface), var(--accent-soft));padding:22px}.lesson-hero h1{margin-bottom:8px}.lesson-hero p{max-width:720px;color:var(--muted);margin:0;font-size:13px;line-height:1.7}.lesson-content-grid{gap:15px;display:grid}.lesson-concept-card,.lesson-example-card{padding:18px}.lesson-concept-card .section-heading>svg{width:24px}.concept-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.concept-list li{background:var(--surface-2);border-radius:11px;grid-template-columns:28px 1fr;align-items:center;gap:10px;min-height:44px;padding:7px 9px;display:grid}.concept-list li>span{background:var(--accent-soft);width:27px;height:27px;color:var(--accent);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.concept-list p{margin:0;font-size:12px;line-height:1.5}.lesson-example-card>p{min-height:58px;color:var(--muted);font-size:12px;line-height:1.65}.lesson-example-card .primary-button+.secondary-button{margin-top:9px}.lab-page{padding-left:0;padding-right:0}.lab-heading{justify-content:space-between;align-items:flex-start;gap:12px;padding:0 14px;display:flex}.lab-heading p{color:var(--muted);margin-bottom:0;font-size:12px;line-height:1.55}.lab-heading .secondary-button{flex:none;min-width:44px;padding:0 10px;font-size:0}.lab-heading .secondary-button svg{margin:0}.mode-tabs{background:#e5eaf2;border-radius:12px;grid-template-columns:repeat(2,1fr);margin:15px 14px 12px;padding:4px;display:grid}.mode-tabs button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:9px;padding:0 4px;font-size:12px}.mode-tabs button.active{background:var(--surface);color:var(--accent);font-weight:600;box-shadow:0 3px 12px #23314e1a}.mode-tabs.three-tabs{grid-template-columns:repeat(3,1fr)}.case-route{color:var(--muted);align-items:center;gap:7px;margin:12px 14px;font-size:10px;display:flex}.case-route strong{background:var(--accent-soft);color:var(--accent);border-radius:8px;padding:6px 9px}.case-route svg{width:13px}.lab-layout{display:block}.stage-panel{background:var(--surface);min-width:0;overflow:hidden}.stage-workspace{min-width:0;display:grid}.diagram-area{min-width:0}.triangle-canvas-wrap{background:var(--surface-2);position:relative;overflow:hidden}.triangle-canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:clamp(270px,44vh,380px);max-height:62vh;display:block}.grid-path{fill:none;stroke:var(--border);stroke-width:1px;opacity:.7}.triangle-shape{fill:#4e68e821;stroke:var(--accent);stroke-width:4px;stroke-linejoin:round}.side-label,.angle-label,.diagram-labels text{paint-order:stroke;stroke:var(--surface-2);stroke-width:5px;font-size:13px;font-weight:600}.side-label,.diagram-labels text{fill:var(--text)}.angle-label{fill:var(--accent)}.drag-point{color:var(--accent)}.drag-point .touch-target{fill:#4e68e824;pointer-events:all}.drag-point .point-dot{fill:var(--accent);stroke:var(--surface);stroke-width:3px}.drag-point text{fill:var(--text);pointer-events:none;font-size:15px;font-weight:600}.construction-overlay line{stroke:var(--orange);stroke-width:4px;stroke-linecap:round}.construction-overlay circle{fill:var(--orange);stroke:var(--surface);stroke-width:3px}.construction-overlay text{fill:var(--orange);paint-order:stroke;stroke:var(--surface-2);stroke-width:5px;font-size:15px;font-weight:600}.construction-overlay.altitude path{fill:none;stroke:var(--orange);stroke-width:2px}.construction-overlay .equal-mark{stroke-width:2px}.canvas-tip,.shape-badge,.diagram-legend{z-index:2;box-shadow:var(--shadow);color:var(--muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-radius:9px;align-items:center;gap:5px;padding:7px 9px;font-size:10px;display:flex;position:absolute}.canvas-tip{bottom:10px;left:10px}.shape-badge{color:var(--accent);top:10px;right:10px}.diagram-controls{z-index:4;border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff0;border-radius:11px;align-items:center;display:flex;position:absolute;top:10px;left:10px;overflow:hidden}.diagram-controls button{width:42px;height:42px;color:var(--text);background:0 0;border:0;place-items:center;padding:0;display:grid}.diagram-controls button:hover{background:var(--accent-soft);color:var(--accent)}.diagram-controls button+button{border-left:1px solid var(--border)}.diagram-controls span{min-width:46px;color:var(--muted);text-align:center;font-size:10px}.diagram-controls svg{width:17px}.finding-bar{background:var(--accent-soft);color:var(--accent);border-radius:11px;align-items:center;gap:9px;margin:10px 12px 12px;padding:11px;display:flex}.finding-bar>svg{flex:none;width:18px}.finding-bar p{margin:0}.finding-bar b,.finding-bar span{display:block}.finding-bar b{font-size:10px}.finding-bar span{color:var(--text);margin-top:2px;font-size:11px;line-height:1.45}.construction-ray{stroke:var(--muted);stroke-width:2px}.construction-ray.soft,.height-line{stroke-dasharray:6 6;opacity:.6}.construction-circle{fill:none;stroke:var(--muted);stroke-width:2px;stroke-dasharray:7 7;opacity:.6}.height-line{stroke:var(--muted);stroke-width:2px}.ssa-triangle{stroke-width:4px;stroke-linejoin:round}.ssa-triangle.solution-1{fill:#4e68e81f;stroke:var(--accent)}.ssa-triangle.solution-2{fill:#d66b3f1c;stroke:var(--orange)}.fixed-point{fill:var(--text);stroke:var(--surface-2);stroke-width:3px}.solution-point.solution-1{fill:var(--accent)}.solution-point.solution-2{fill:var(--orange)}.solution-point{stroke:var(--surface-2);stroke-width:3px}.diagram-legend{flex-wrap:wrap;bottom:10px;left:10px}.diagram-legend span{align-items:center;gap:4px;display:flex}.diagram-legend i{background:var(--accent);width:15px;height:3px;display:inline-block}.diagram-legend .legend-two{background:var(--orange)}.diagram-legend .legend-dash{border-top:2px dashed var(--muted);background:0 0;height:0}.control-panel{z-index:1;border:1px solid var(--border);background:var(--surface);box-shadow:none;border-radius:15px;margin:10px 12px 0;position:static;overflow:hidden}.sheet-handle{background:var(--surface);border:0;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;min-height:51px;padding:0 14px;display:grid}.sheet-handle .handle-line{background:var(--border);border-radius:99px;grid-column:2;align-self:start;width:36px;height:4px;margin-top:7px}.sheet-handle b{grid-column:2;font-size:12px}.sheet-handle svg{width:17px;color:var(--muted);grid-area:1/3;justify-self:end;transition:transform .2s}.control-panel.closed .control-content{display:none}.control-panel.closed .sheet-handle svg{transform:rotate(180deg)}.control-content{overscroll-behavior:contain;max-height:42vh;padding:0 15px 16px;overflow-y:auto}.control-content h2{margin:0 0 12px;font-size:15px}.control-intro{color:var(--muted);margin:-5px 0 13px;font-size:11px;line-height:1.5}.measure-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:repeat(3,1fr);display:grid}.measure-grid>div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-width:0;padding:9px 6px}.measure-grid span,.measure-grid b,.measure-grid small{display:block}.measure-grid span,.measure-grid small{color:var(--muted);font-size:9px}.measure-grid b{margin:3px 0;font-size:14px}.editable-measures>div{gap:5px;display:grid}.measure-field{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:5px;display:grid}.measure-field input{border:1px solid var(--border);background:var(--surface-2);width:100%;min-width:0;height:30px;color:var(--text);text-align:right;border-radius:7px;padding:0 5px;font-size:13px;font-weight:600}.measure-field input:focus{border-color:var(--accent);background:var(--surface)}.summary-row{color:var(--muted);justify-content:space-between;padding:10px 1px;font-size:10px;display:flex}.summary-row b{color:var(--text)}.check-row{min-height:40px;color:var(--muted);align-items:center;gap:9px;font-size:11px;display:flex}.check-row input{width:19px;height:19px;accent-color:var(--accent)}.challenge-box,.concept-box{background:var(--accent-soft);color:var(--accent);border-radius:10px;align-items:center;gap:9px;margin-top:10px;padding:11px;display:flex}.challenge-box svg,.concept-box svg{flex:none;width:17px}.challenge-box p,.concept-box p{margin:0}.challenge-box b,.challenge-box span,.concept-box b,.concept-box span{display:block}.challenge-box b,.concept-box b{font-size:10px}.challenge-box span,.concept-box span{color:var(--text);margin-top:2px;font-size:10px;line-height:1.4}.side-inputs{gap:8px;margin-bottom:12px;display:grid}.side-inputs label{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.side-inputs input{border:1px solid var(--border);background:var(--surface-2);width:105px;min-height:44px;color:var(--text);border-radius:10px;padding:0 10px;font-size:16px}.validation-message{background:var(--green-soft);min-height:40px;color:var(--green);border-radius:9px;margin:10px 0 0;padding:9px;font-size:10px;line-height:1.5}.validation-message.error{background:var(--red-soft);color:var(--red)}.range-heading{color:var(--muted);justify-content:space-between;align-items:center;font-size:11px;display:flex}.range-heading b{color:var(--accent);font-size:17px}.range-input{width:100%;min-height:44px;accent-color:var(--accent);margin:5px 0 0}.threshold-row{color:var(--muted);justify-content:space-between;font-size:10px;display:flex}.threshold-row b{color:var(--text)}.solution-card{background:var(--orange-soft);color:var(--orange);border-radius:10px;margin-top:13px;padding:12px}.solution-card.count-0{background:var(--red-soft);color:var(--red)}.solution-card.count-1{background:var(--green-soft);color:var(--green)}.solution-card strong,.solution-card span{display:block}.solution-card strong{font-size:13px}.solution-card span{margin-top:4px;font-size:10px;line-height:1.45}.case-intervals{grid-template-columns:repeat(3,1fr);gap:5px;margin-top:11px;display:grid}.case-intervals div{background:var(--surface-2);text-align:center;border-radius:8px;padding:7px 3px}.case-intervals div.active{background:var(--accent-soft);color:var(--accent)}.case-intervals span,.case-intervals b{font-size:9px;display:block}.case-intervals b{margin-top:2px}.segment-selector{background:var(--surface-2);border-radius:11px;grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:12px;padding:4px;display:grid}.segment-selector button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:8px;padding:0 4px;font-size:11px}.segment-selector button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow);font-weight:600}.segment-definition{background:var(--orange-soft);border-radius:11px;padding:12px}.segment-definition span,.segment-definition strong{display:block}.segment-definition span{color:var(--orange);font-size:10px}.segment-definition strong{margin-top:3px;font-size:14px}.segment-definition p{color:var(--text);margin:6px 0 0;font-size:11px;line-height:1.55}.segment-facts{gap:6px;margin-top:12px;display:grid}.segment-facts span{border-left:3px solid var(--accent);background:var(--surface-2);color:var(--muted);padding:8px 10px;font-size:10px}.practice-page{place-items:start center;display:grid}.practice-card{width:min(680px,100%)}.practice-top{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.practice-top h1{font-size:21px}.question-number{color:var(--muted);flex:none;font-size:11px}.practice-progress{background:var(--border);border-radius:99px;height:6px;margin:10px 0 22px;overflow:hidden}.practice-progress span{border-radius:inherit;background:var(--accent);height:100%;transition:width .25s;display:block}.question-text{min-height:58px;margin-bottom:16px;font-size:15px;line-height:1.75}.answer-list{gap:9px;display:grid}.answer-button{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:11px;align-items:center;gap:10px;width:100%;min-height:50px;padding:8px 11px;display:flex}.answer-button>span{background:var(--surface-2);width:29px;height:29px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:11px;display:grid}.answer-button.correct{border-color:var(--green);background:var(--green-soft);color:var(--green)}.answer-button.wrong{border-color:var(--red);background:var(--red-soft);color:var(--red)}.answer-explanation{border-radius:10px;margin:13px 0;padding:11px}.answer-explanation.correct{background:var(--green-soft);color:var(--green)}.answer-explanation.wrong{background:var(--red-soft);color:var(--red)}.answer-explanation b,.answer-explanation span{display:block}.answer-explanation b{font-size:12px}.answer-explanation span{margin-top:3px;font-size:11px;line-height:1.5}.score-note{color:var(--muted);text-align:center;margin:10px 0 0;font-size:10px}.mistakes-page{gap:14px;display:grid}.mistake-summary{justify-content:space-between;align-items:center;gap:16px;display:flex}.mistake-summary h1{margin-bottom:0;font-size:21px}.mistake-summary>svg{width:40px;height:40px;color:var(--accent)}.mistake-card h2{margin:14px 0 8px}.mistake-card>p{color:var(--muted);font-size:12px;line-height:1.6}.mistake-actions{gap:8px;margin-top:15px;display:flex}.toast{z-index:40;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));color:#fff;width:max-content;max-width:calc(100% - 28px);box-shadow:var(--shadow);background:#172136;border-radius:12px;align-items:center;gap:8px;padding:11px 15px;font-size:12px;display:flex;position:fixed;transform:translate(-50%)}.toast svg{width:16px}.profile-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f141c7a;align-items:end;padding:14px;display:grid;position:fixed;inset:0}.profile-dialog{border:1px solid var(--border);background:var(--surface);border-radius:20px;width:min(520px,100%);max-height:calc(100dvh - 28px);margin:0 auto;padding:18px;overflow-y:auto;box-shadow:0 22px 70px #0f141c47}.profile-dialog-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.profile-dialog-heading h2{margin:0}.profile-dialog-heading .icon-button{border:1px solid var(--border);background:var(--surface-2);font-size:22px}.profile-list{gap:10px;margin-top:16px;display:grid}.profile-card{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;grid-template-columns:46px minmax(0,1fr) auto;align-items:end;gap:10px;padding:11px;display:grid}.profile-card.active{border-color:var(--accent);background:var(--accent-soft)}.profile-avatar{color:#fff;border-radius:50%;place-items:center;width:44px;height:44px;font-size:17px;font-weight:700;display:grid}.profile-card label span{color:var(--muted);margin-bottom:4px;font-size:10px;display:block}.profile-card input{border:1px solid var(--border);background:var(--surface);width:100%;height:38px;color:var(--text);border-radius:9px;padding:0 9px}.profile-card button{min-width:76px;min-height:38px;padding:0 10px;font-size:11px}.profile-dialog-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:13px;display:flex}.profile-note{color:var(--muted);margin:0;font-size:10px;line-height:1.5}.danger-button{background:var(--red-soft);min-height:38px;color:var(--red);border:1px solid #b9425247;border-radius:9px;flex:none;padding:0 11px;font-size:11px;font-weight:600}.bottom-nav{z-index:30;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff2;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:64px;color:var(--muted);background:0 0;border:0;align-content:center;place-items:center;gap:3px;font-size:10px;display:grid}.bottom-nav button.active{color:var(--accent)}.bottom-nav svg{width:21px}@media (width>=600px){.page{padding:24px 22px 32px}.welcome-card{grid-template-columns:1fr auto;align-items:center;padding:28px 34px}.home-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,.75fr)}.mistakes-page{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.lesson-content-grid{grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr)}.profile-overlay{place-items:center}}@media (width<=420px){.profile-dialog-footer{flex-direction:column;align-items:stretch}.danger-button{width:100%}}@media (width<=759px){.side-label,.angle-label,.diagram-labels text{font-size:17px}.lab-shell{height:100dvh;min-height:0;padding-bottom:0;overflow:hidden}.lab-shell .app-header{min-height:calc(50px + env(safe-area-inset-top))}.lab-shell .header-title span{display:none}.lab-shell .brand-mark{width:34px;height:34px}.lab-shell .profile-button{width:auto;min-width:34px;max-width:88px;height:34px;padding:0 8px}.lab-shell .bottom-nav button{min-height:56px}.lab-shell .lab-page{height:calc(100dvh - 50px - 56px - env(safe-area-inset-top) - env(safe-area-inset-bottom));flex-direction:column;min-height:0;padding-top:7px;padding-bottom:6px;display:flex;overflow:hidden}.lab-heading{flex:none;align-items:center;padding:0 10px}.lab-heading .eyebrow{margin-bottom:1px;font-size:9px}.lab-heading h1{margin:0;font-size:clamp(16px,4.6vw,19px);line-height:1.22}.lab-heading p{display:none}.lab-heading .secondary-button{min-height:38px}.mode-tabs{grid-template-columns:repeat(4,minmax(0,1fr));margin:7px 8px;padding:3px}.mode-tabs.three-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-tabs button{min-height:38px;padding:0 2px;font-size:10px;line-height:1.15}.lab-layout{flex:auto;min-height:0}.stage-panel{grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:0;display:grid}.stage-workspace{grid-template-rows:minmax(205px,48%) minmax(0,1fr);min-height:0}.stage-workspace:has(.control-panel.closed){grid-template-rows:minmax(0,1fr) auto}.diagram-area,.triangle-canvas-wrap{height:100%;min-height:0}.triangle-canvas{height:100%;min-height:0;max-height:none}.diagram-controls{top:7px;left:7px}.diagram-controls button{width:38px;height:38px}.canvas-tip,.diagram-legend{padding:6px 7px;bottom:7px;left:7px}.shape-badge{top:7px;right:7px}.control-panel{border-radius:12px;flex-direction:column;min-height:0;margin:6px 8px 0;display:flex}.sheet-handle{min-height:39px;padding:0 11px}.sheet-handle .handle-line{width:30px;height:3px;margin-top:5px}.sheet-handle b{font-size:11px}.control-content{flex:auto;min-height:0;max-height:none;padding:0 11px 9px}.control-content h2{margin-bottom:6px;font-size:13px}.control-intro{margin:-2px 0 6px;font-size:10px}.edit-hint{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.measure-grid>div{padding:5px 6px}.measure-grid b{margin:1px 0;font-size:13px}.measure-field input{height:27px;font-size:12px}.summary-row{padding:6px 1px}.check-row{min-height:31px}.check-row input{width:17px;height:17px}.challenge-box,.concept-box{margin-top:5px;padding:7px 8px}.side-inputs{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:7px}.side-inputs label{display:block}.side-inputs label span{margin-bottom:3px;display:block}.side-inputs input{width:100%;min-height:38px}.control-content .primary-button{min-height:39px}.validation-message{min-height:0;margin-top:6px;padding:6px 8px}.range-input{min-height:34px;margin-top:0}.solution-card{margin-top:6px;padding:8px}.solution-card span{margin-top:2px}.case-intervals{margin-top:6px}.case-intervals div{padding:5px 2px}.segment-selector{margin-bottom:6px}.segment-selector button{min-height:36px}.segment-definition{padding:8px}.segment-definition p{margin-top:3px;line-height:1.35}.segment-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:6px}.segment-facts span{border-left-width:2px;padding:5px;line-height:1.3}.finding-bar{margin:5px 8px 7px;padding:7px 8px}.finding-bar>svg{width:15px}.finding-bar b{display:none}.finding-bar span{margin-top:0;font-size:10px;line-height:1.3}.case-route{flex:none;justify-content:center;margin:6px 8px}}@media (width<=380px){.control-panel.mode-free .challenge-box,.control-panel.mode-sss .control-intro,.control-panel.mode-sss .concept-box,.control-panel.mode-segments .segment-facts{display:none}}@media (width<=599px){.control-panel.mode-free .edit-hint{display:none}}@media (width<=759px) and (height<=720px){.lab-shell .app-header{min-height:calc(46px + env(safe-area-inset-top))}.lab-shell .lab-page{height:calc(100dvh - 46px - 52px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.lab-shell .bottom-nav button{min-height:52px}.lab-heading .eyebrow,.finding-bar{display:none}.lab-heading h1{font-size:16px}.mode-tabs{margin-top:5px;margin-bottom:5px}.mode-tabs button{min-height:35px}.stage-workspace{grid-template-rows:minmax(190px,44%) minmax(0,1fr)}.sheet-handle{min-height:35px}.control-content{padding-bottom:6px}.control-panel.mode-free .challenge-box,.control-panel.mode-segments .segment-facts,.control-panel.mode-sss .concept-box,.solution-card span,.control-panel.mode-free .edit-hint{display:none}}@media (width>=760px){.app-shell{padding-bottom:78px}.app-header{grid-template-columns:52px minmax(0,1fr) 52px;padding-left:22px;padding-right:22px}.lab-page{height:calc(100dvh - 58px - 78px - env(safe-area-inset-top));flex-direction:column;min-height:0;padding:18px 22px 14px;display:flex;overflow:hidden}.lab-heading{padding:0}.lab-heading .secondary-button{font-size:12px}.mode-tabs{width:min(540px,100%);margin:12px 0 10px}.case-route{margin:10px 0}.mode-tabs{grid-template-columns:repeat(4,1fr)}.lab-layout{flex:auto;min-height:0}.stage-panel{border:1px solid var(--border);height:100%;min-height:0;box-shadow:var(--shadow);border-radius:17px;grid-template-rows:minmax(0,1fr) auto;display:grid}.stage-workspace{grid-template-columns:minmax(0,1.55fr) minmax(270px,.72fr);min-height:0}.diagram-area,.triangle-canvas-wrap{height:100%;min-height:0}.diagram-area{border-right:1px solid var(--border)}.control-panel{border:0;border-radius:0;min-height:0;margin:0;position:static;overflow-y:auto}.sheet-handle{display:none}.control-panel.closed .control-content{display:block}.control-content{max-height:none;padding:18px;overflow:visible}.measure-grid{grid-template-columns:repeat(2,1fr)}.triangle-canvas{height:100%;min-height:0;max-height:none}.bottom-nav{border:1px solid var(--border);width:min(620px,100% - 28px);box-shadow:var(--shadow);border-radius:17px;bottom:10px;left:50%;right:auto;overflow:hidden;transform:translate(-50%)}.bottom-nav button{min-height:58px}}@media (width>=1020px){.stage-workspace{grid-template-columns:minmax(0,1.7fr) 310px}.measure-grid{grid-template-columns:repeat(3,1fr)}}@media (prefers-color-scheme:dark){:root{color:#eef3fa;--bg:#0f141c;--surface:#18212d;--surface-2:#202b39;--text:#eef3fa;--muted:#a7b2c2;--border:#344254;--accent:#8293ff;--accent-dark:#6f82f0;--accent-soft:#252f58;--green:#58d1aa;--green-soft:#183b33;--orange:#f29a76;--orange-soft:#442b25;--red:#ff919d;--red-soft:#43252d;--shadow:0 14px 36px #0000003d;background:#0f141c}.app-header,.bottom-nav,.canvas-tip,.shape-badge,.diagram-legend{background:#18212deb}.diagram-controls{background:#18212df0}.mode-tabs{background:#111823}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
