:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#eaf4f1;--muted:#94aaa5;--bg:#071116;--panel:#0d1a20;--panel-2:#12242a;--line:#bfdfd621;--green:#39d3a2;--green-2:#9bf2d5;--amber:#f0b85b;--red:#ff6f68;--gray:#81918e;--blue:#61b4ff;--radius:18px;--safe-bottom:env(safe-area-inset-bottom,0px);font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{box-sizing:border-box}html,body{height:100%}body{min-width:320px;color:var(--ink);background:var(--bg);margin:0;overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:3px solid #39d3a280}[hidden]{display:none!important}.app-shell{background:radial-gradient(circle at 50% -10%,#163139 0,#071116 48%);grid-template-rows:58px 28px minmax(0,1fr);height:100%;display:grid}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;background:#071116eb;grid-template-columns:minmax(200px,1fr) minmax(180px,360px) minmax(200px,1fr);align-items:center;gap:18px;padding:0 20px;display:grid}.brand{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.brand-mark{width:36px;height:36px;color:var(--green-2);letter-spacing:-1px;background:linear-gradient(145deg,#39d3a22e,#0000);border:1px solid #39d3a280;border-radius:11px;place-items:center;font-weight:900;display:grid}.brand-copy{flex-direction:column;line-height:1.1;display:flex}.brand-copy strong{font-size:14px}.brand-copy small{color:var(--muted);margin-top:3px;font-size:11px}.top-progress{color:var(--muted);grid-template-columns:auto 1fr;align-items:center;gap:10px;font-size:11px;display:grid}.progress-track{background:#ffffff14;border-radius:999px;height:5px;overflow:hidden}.progress-track i{background:linear-gradient(90deg, var(--green), var(--green-2));width:0;height:100%;transition:width .35s;display:block}.top-actions{justify-content:flex-end;gap:8px;display:flex}.icon-button,.course-toggle,.close-panel{border:1px solid var(--line);cursor:pointer;background:#ffffff0a;border-radius:11px;min-height:36px;padding:0 13px}.boundary-banner{color:#cbdad6;z-index:12;background:#152126;justify-content:center;align-items:center;gap:7px;min-height:28px;margin:0;padding:4px 14px;font-size:11px;display:flex}.boundary-banner span{color:var(--amber)}.training-layout{background:var(--line);grid-template-columns:minmax(240px,19vw) minmax(420px,1fr) minmax(300px,25vw);gap:1px;min-height:0;display:grid}.course-panel,.task-panel,.scene-workspace{background:var(--panel);min-height:0}.course-panel{flex-direction:column;display:flex;overflow:hidden}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:10px;padding:17px 16px 12px;display:flex}.eyebrow{color:var(--green);letter-spacing:.13em;text-transform:uppercase;font-size:10px;font-weight:800;display:block}.panel-heading h1,.dialog-heading h2,.task-header h2,.component-heading h2{margin:4px 0 0;line-height:1.25}.panel-heading h1{font-size:16px}.close-panel{min-width:36px;padding:0;font-size:22px;display:none}.course-summary{background:var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.course-summary div{text-align:center;background:var(--panel);padding:11px 6px}.course-summary strong,.course-summary span{display:block}.course-summary strong{color:var(--green-2);font-size:16px}.course-summary span{color:var(--muted);margin-top:2px;font-size:9px}.chapter-list{scrollbar-width:thin;flex:1;min-height:0;padding:8px;overflow-y:auto}.chapter{border:1px solid var(--line);background:#ffffff05;border-radius:13px;margin-bottom:7px;overflow:hidden}.chapter>button{width:100%;min-height:48px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.chapter-number{width:28px;height:28px;color:var(--muted);background:#ffffff0e;border-radius:9px;place-items:center;font-size:10px;font-weight:800;display:grid}.chapter-copy strong,.chapter-copy small{display:block}.chapter-copy strong{font-size:12px}.chapter-copy small{color:var(--muted);margin-top:2px;font-size:9px}.chapter-meter{color:var(--muted);font-size:10px}.chapter.open>button,.chapter.active>button{background:#39d3a212}.chapter.active .chapter-number{color:#051611;background:var(--green)}.activity-list{padding:3px 6px 8px;display:none}.chapter.open .activity-list{gap:4px;display:grid}.activity-button{width:100%;min-height:38px;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;padding:6px 8px;display:grid}.activity-button:hover,.activity-button.active{color:var(--ink);background:#ffffff0e}.activity-button.locked{opacity:.45;cursor:not-allowed}.activity-state{border:1px solid var(--line);border-radius:50%;place-items:center;width:20px;height:20px;font-size:9px;display:grid}.activity-button.complete .activity-state{border-color:var(--green);color:#061710;background:var(--green)}.activity-button.skipped .activity-state{border-color:var(--amber);color:var(--amber);background:#f0b85b14}.activity-button strong{font-size:10px;font-weight:600}.activity-button small{font-size:9px}.scene-workspace{background:#0b171c;grid-template-rows:60px minmax(200px,1fr) auto;display:grid;position:relative;overflow:hidden}.mission-strip{border-bottom:1px solid var(--line);background:#0d1a20f2;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;display:flex}.mission-strip>div{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 9px;min-width:0;display:grid}.mission-strip strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.mission-strip small{color:var(--muted);grid-column:2;font-size:10px}.stage-chip{min-width:62px;color:var(--green-2);background:#39d3a214;border:1px solid #39d3a247;border-radius:10px;grid-row:1/span 2;align-self:stretch;place-items:center;padding:3px 8px;font-size:10px;font-weight:700;display:grid}.course-toggle{display:none}.scene-frame{isolation:isolate;background:radial-gradient(at 50% 55%,#183039 0,#0a151a 58%,#071116 100%);min-height:0;position:relative;overflow:hidden}.scene-frame:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000,#03090c99);height:34%;position:absolute;inset:auto 0 0}.scene-container,.fallback-container{touch-action:none;position:absolute;inset:0}.scene-container{contain:strict}.scene-container canvas{display:block;width:100%!important;height:100%!important}.fallback-container{background:#0b171c;padding:64px 14px 20px;overflow:hidden}.fallback-container svg{width:100%;height:100%}.scene-status{border:1px solid var(--line);color:var(--muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#071116b3;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;font-size:9px;display:flex;position:absolute;top:10px;left:10px}.status-dot{background:var(--amber);border-radius:50%;width:6px;height:6px;box-shadow:0 0 8px}.scene-status.ready .status-dot{background:var(--green)}.scene-status.error .status-dot{background:var(--red)}.view-toolbar{flex-wrap:wrap;gap:5px;max-width:calc(100% - 94px);display:flex;position:absolute;bottom:10px;left:10px}.view-toolbar button,.view-filter,.camera-pad button{color:#c9d9d5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#071116c7;border:1px solid #bfdfd62e;border-radius:9px;min-width:42px;min-height:34px;font-size:9px}.view-toolbar button,.camera-pad button{cursor:pointer}.view-filter{align-items:center;gap:5px;padding:0 7px;display:flex}.view-filter span{color:var(--green-2);font-weight:800}.view-filter select{min-height:30px;color:inherit;cursor:pointer;background:0 0;border:0;padding:0 20px 0 0;font-size:9px}.view-filter select option{color:var(--ink);background:var(--panel)}.view-toolbar button.active{border-color:var(--green);color:var(--green-2);background:#39d3a221}.camera-pad{grid-template-columns:repeat(2,34px);gap:4px;display:grid;position:absolute;bottom:10px;right:10px}.camera-pad button{width:34px;min-width:34px;padding:0;font-size:15px}.component-sheet{border-top:1px solid var(--line);background:linear-gradient(#102127,#0d1a20);max-height:238px;padding:10px 14px 12px;overflow-y:auto}.sheet-grip{background:#fff3;border-radius:999px;width:38px;height:4px;margin:-3px auto 8px;display:none}.component-empty{min-height:52px;color:var(--muted);justify-content:center;align-items:center;gap:11px;display:flex}.component-empty strong,.component-empty small{display:block}.component-empty strong{color:var(--ink);font-size:12px}.component-empty small{margin-top:3px;font-size:9px}.scan-icon{color:var(--green);font-size:30px}.component-heading{justify-content:space-between;gap:10px;display:flex}.component-heading h2{font-size:16px}.condition-badge{color:#bac8c5;background:#81918e17;border:1px solid #81918e59;border-radius:999px;align-self:center;padding:4px 9px;font-size:9px}.component-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px;margin:11px 0;display:grid}.component-facts div{min-width:0}.component-facts dt{color:var(--muted);margin-bottom:2px;font-size:8px}.component-facts dd{margin:0;font-size:10px;line-height:1.45}.component-actions{flex-wrap:wrap;gap:7px;display:flex}.task-panel{grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.task-stage-rail{background:var(--line);grid-template-columns:repeat(4,1fr);gap:1px;display:grid}.stage-step{min-width:0;color:var(--muted);background:var(--panel);text-align:center;padding:9px 4px 8px;font-size:8px}.stage-step:before{content:attr(data-index);border:1px solid #ffffff26;border-radius:50%;place-items:center;width:17px;height:17px;margin:0 auto 4px;display:grid}.stage-step.active{color:var(--green-2);background:#39d3a20f}.stage-step.active:before{border-color:var(--green);color:#051611;background:var(--green)}.stage-step.done:before{content:"✓";border-color:var(--green);color:var(--green)}.task-scroll{min-height:0;padding:17px 16px;overflow-y:auto}.task-header{border-bottom:1px solid var(--line);padding-bottom:13px}.task-header h2{font-size:19px}.task-header p{color:#c2d0cd;margin:9px 0 0;font-size:11px;line-height:1.65}.task-meta{flex-wrap:wrap;gap:5px;margin-top:10px;display:flex}.task-meta span{color:var(--muted);background:#ffffff0b;border-radius:999px;padding:4px 7px;font-size:8px}.task-body{padding-top:14px}.task-section{margin-bottom:14px}.task-section h3{margin:0 0 7px;font-size:11px}.task-section p{color:var(--muted);margin:0;font-size:10px;line-height:1.6}.objective-list,.evidence-list,.option-list,.condition-list{gap:7px;margin:0;padding:0;list-style:none;display:grid}.objective-list li,.evidence-item,.condition-card{border:1px solid var(--line);color:#cbd8d5;background:#ffffff06;border-radius:11px;padding:9px 10px 9px 30px;font-size:10px;line-height:1.45;position:relative}.objective-list li:before{content:"";border:1px solid var(--muted);border-radius:50%;width:9px;height:9px;position:absolute;top:11px;left:10px}.objective-list li.done:before{border-color:var(--green);background:var(--green);box-shadow:inset 0 0 0 2px var(--panel)}.option-list button,.choice-card{border:1px solid var(--line);width:100%;min-height:48px;color:inherit;text-align:left;cursor:pointer;background:#ffffff06;border-radius:12px;padding:9px 11px}.option-list button:hover,.option-list button.selected,.choice-card.selected{background:#39d3a217;border-color:#39d3a299}.option-list strong,.option-list small,.choice-card strong,.choice-card small{display:block}.option-list strong,.choice-card strong{font-size:11px}.option-list small,.choice-card small{color:var(--muted);margin-top:3px;font-size:9px;line-height:1.45}.audit-grid{gap:8px;display:grid}.audit-card{border:1px solid var(--line);background:#ffffff06;border-radius:12px;padding:10px}.audit-card strong{margin-bottom:7px;font-size:10px;display:block}.audit-actions{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.audit-actions button{border:1px solid var(--line);min-height:32px;color:var(--muted);cursor:pointer;background:#ffffff06;border-radius:8px;padding:3px;font-size:8px}.audit-actions button.selected[data-value=green]{border-color:var(--green);color:var(--green);background:#39d3a21a}.audit-actions button.selected[data-value=yellow]{border-color:var(--amber);color:var(--amber);background:#f0b85b1a}.audit-actions button.selected[data-value=gray]{border-color:var(--gray);color:#d1d9d7;background:#81918e1f}.diagnosis-grid{gap:9px;display:grid}.diagnosis-card{border:1px solid var(--line);background:#ffffff06;border-radius:12px;padding:10px}.diagnosis-card>strong,.diagnosis-card>small{display:block}.diagnosis-card>small{color:var(--muted);margin:4px 0 8px}.diagnosis-choice-grid{gap:6px;display:grid}.diagnosis-choice-grid button{border:1px solid var(--line);color:#c8d7d3;text-align:left;cursor:pointer;background:#00000024;border-radius:9px;min-height:42px;padding:7px 9px}.diagnosis-choice-grid button span,.diagnosis-choice-grid button small{display:block}.diagnosis-choice-grid button small{color:var(--muted);margin-top:3px;line-height:1.4}.diagnosis-choice-grid button.selected{border-color:var(--green);color:var(--green-2);background:#39d3a21a}.diagnosis-choice-grid button.forbidden-choice.selected{border-color:var(--red);color:#ffaaa5;background:#ff6f681a}.build-board{gap:8px;display:grid}.part-library{flex-wrap:wrap;gap:6px;display:flex}.part-token{border:1px solid var(--line);color:#c8d7d3;cursor:pointer;background:#ffffff08;border-radius:9px;padding:6px 9px;font-size:9px}.part-token.selected{border-color:var(--green);color:var(--green-2);background:#39d3a21a}.build-slots{grid-template-columns:repeat(2,1fr);gap:7px;display:grid}.build-slot{min-height:58px;color:var(--muted);cursor:pointer;background:#0000001f;border:1px dashed #bfdfd640;border-radius:11px;padding:8px;font-size:9px}.build-slot.filled{color:var(--ink);background:#39d3a20f;border-style:solid;border-color:#39d3a273}.build-slot.invalid{background:#ff6f6814;border-color:#ff6f68b3}.slot-index{width:22px;height:22px;color:var(--green-2);background:#39d3a217;border-radius:7px;place-items:center;margin-right:5px;font-size:8px;display:inline-grid}.build-slot>strong,.build-slot>small{margin-top:5px;display:block}.placement-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin-top:7px;display:grid}.placement-controls button{border:1px solid var(--line);min-height:30px;color:var(--muted);cursor:pointer;background:#00000024;border-radius:7px;padding:3px 5px;font-size:7px}.part-token.dragging{opacity:.45}.comparison-panel{background:#61b4ff0f;border-color:#61b4ff59}.comparison-panel .task-meta span[data-count]:not([data-count="0"]){color:#ffaaa5;background:#ff6f681a}.build-tools{flex-wrap:wrap;gap:6px;display:flex}.build-tools button{border:1px solid var(--line);min-height:31px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;flex:78px;padding:4px 9px;font-size:8px}.task-feedback{border:1px solid var(--line);border-left:3px solid var(--gray);background:#ffffff08;border-radius:12px;margin-top:13px;padding:12px}.task-feedback[data-state=green]{border-left-color:var(--green);background:#39d3a212}.task-feedback[data-state=yellow]{border-left-color:var(--amber);background:#f0b85b12}.task-feedback[data-state=red]{border-left-color:var(--red);background:#ff6f6812}.task-feedback h3{margin:0 0 6px;font-size:12px}.task-feedback p{color:#c5d2cf;margin:4px 0;font-size:10px;line-height:1.55}.feedback-state{border-radius:999px;padding:4px 8px;font-size:8px;font-weight:800;display:inline-flex}.feedback-state.green{color:var(--green-2);background:#39d3a21f}.feedback-state.yellow{color:#ffd993;background:#f0b85b1f}.feedback-state.red{color:#ffaaa5;background:#ff6f681f}.feedback-state.gray{color:#d1d9d7;background:#81918e1f}.task-footer{padding:11px 14px calc(11px + var(--safe-bottom));border-top:1px solid var(--line);background:#09151af5;grid-template-columns:minmax(72px,.55fr) minmax(82px,.7fr) minmax(130px,1.4fr);gap:8px;display:grid}.skip-button{color:var(--amber);border-color:#f0b85b47}.primary-button,.secondary-button,.ghost-button,.danger-button{cursor:pointer;border-radius:11px;min-height:42px;padding:8px 13px;font-size:10px;font-weight:700}.primary-button{border:1px solid var(--green);color:#04130e;background:linear-gradient(135deg, var(--green), #76e6c2);box-shadow:0 7px 22px #39d3a229}.secondary-button{color:var(--green-2);background:#39d3a214;border:1px solid #39d3a266}.ghost-button{border:1px solid var(--line);color:#c3d2ce;background:#ffffff08}.danger-button{color:#ffaaa5;background:#ff6f6817;border:1px solid #ff6f6880}button:disabled{opacity:.38;cursor:not-allowed;box-shadow:none}.mobile-nav{display:none}.app-dialog{width:min(760px,100vw - 32px);max-height:min(760px,100vh - 32px);color:var(--ink);background:#0d1a20;border:1px solid #bfdfd62e;border-radius:20px;padding:0;overflow-y:auto;box-shadow:0 30px 90px #0009}.app-dialog::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02080bc2}.dialog-heading{z-index:2;border-bottom:1px solid var(--line);background:#0d1a20f5;justify-content:space-between;align-items:flex-start;gap:10px;padding:18px 20px 14px;display:flex;position:sticky;top:0}.dialog-heading h2{font-size:20px}.dialog-heading>button{border:1px solid var(--line);width:36px;height:36px;color:var(--muted);cursor:pointer;background:#ffffff0a;border-radius:11px;font-size:21px}.report-content,.data-dialog>p,.data-actions{margin:18px 20px}.data-dialog>p{color:var(--muted);font-size:12px;line-height:1.65}.data-actions{grid-template-columns:repeat(3,1fr);gap:9px;display:grid}.report-hero{border-bottom:1px solid var(--line);grid-template-columns:140px 1fr;align-items:center;gap:20px;padding-bottom:18px;display:grid}.score-ring{aspect-ratio:1;background:conic-gradient(var(--green) var(--score,0%), #ffffff12 0);border-radius:50%;place-items:center;width:132px;display:grid}.score-ring:before{content:"";aspect-ratio:1;background:var(--panel);border-radius:50%;grid-area:1/1;width:104px}.score-ring>span{z-index:1;text-align:center;grid-area:1/1}.score-ring strong,.score-ring small{display:block}.score-ring strong{font-size:30px}.score-ring small{color:var(--muted);font-size:9px}.report-hero h3{margin:0 0 7px;font-size:17px}.report-hero p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.report-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-top:16px;display:grid}.report-card{border:1px solid var(--line);background:#ffffff06;border-radius:13px;padding:12px}.report-card strong{font-size:11px;display:block}.report-card p{color:var(--muted);margin:5px 0 0;font-size:9px;line-height:1.55}.review-list{gap:7px;margin-top:9px;display:grid}.review-item{border:1px solid var(--line);border-radius:10px;justify-content:space-between;gap:8px;padding:9px;font-size:9px;display:flex}.review-item span{color:var(--amber)}.confirm-dialog{text-align:center;width:min(400px,100vw - 32px);padding:24px}.confirm-icon{color:#1b1002;background:var(--amber);border-radius:50%;place-items:center;width:42px;height:42px;margin:0 auto 12px;font-weight:900;display:grid}.confirm-dialog h2{margin:0;font-size:18px}.confirm-dialog p{color:var(--muted);font-size:11px;line-height:1.6}.confirm-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:17px;display:grid}.toast{left:50%;bottom:calc(22px + var(--safe-bottom));z-index:100;border:1px solid var(--line);max-width:calc(100vw - 32px);color:var(--ink);opacity:0;pointer-events:none;background:#071116f0;border-radius:999px;padding:9px 14px;font-size:10px;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,14px);box-shadow:0 16px 40px #00000073}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=1050px){.training-layout{grid-template-columns:minmax(210px,24vw) minmax(400px,1fr) minmax(270px,31vw)}.topbar{grid-template-columns:1fr minmax(180px,280px) 1fr}.component-facts{grid-template-columns:1fr}}@media (width<=900px){body{overflow:hidden}.app-shell{grid-template-rows:52px 24px minmax(0, 1fr) calc(56px + var(--safe-bottom))}.topbar{-webkit-backdrop-filter:none;backdrop-filter:none;background:#071116;grid-template-columns:1fr auto;gap:8px;padding:0 10px}.brand-mark{border-radius:9px;width:32px;height:32px;font-size:12px}.brand-copy strong{font-size:12px}.brand-copy small{font-size:9px}.top-progress{display:none}.top-actions .icon-button{min-height:32px;padding:0 10px;font-size:9px}.boundary-banner{white-space:nowrap;text-overflow:ellipsis;justify-content:flex-start;min-height:24px;padding:2px 9px;font-size:8px;overflow:hidden}.training-layout{background:var(--bg);min-height:0;display:block;position:relative}.scene-workspace{grid-template-rows:52px minmax(160px,1fr) minmax(72px,auto);height:100%}.mission-strip{padding:7px 9px}.mission-strip>div{gap:1px 7px}.stage-chip{min-width:54px;font-size:8px}.mission-strip strong{font-size:11px}.mission-strip small{font-size:8px}.course-toggle{display:none}.scene-status{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0b171c;top:7px;left:7px}.view-toolbar{gap:4px;max-width:calc(100% - 82px);bottom:7px;left:7px}.view-toolbar button,.view-filter,.camera-pad button{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0b171c}.view-toolbar button,.view-filter{min-width:38px;min-height:32px;font-size:8px}.view-filter select{min-height:28px;font-size:8px}.camera-pad{bottom:7px;right:7px}.component-sheet{max-height:34vh;padding:8px 10px 9px}.sheet-grip{display:block}.component-empty{min-height:45px}.component-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.course-panel,.task-panel{z-index:30;display:none;position:absolute;inset:0}.app-shell[data-mobile-tab=course] .course-panel{display:flex}.app-shell[data-mobile-tab=task] .task-panel{display:grid}.app-shell[data-mobile-tab=course] .scene-workspace,.app-shell[data-mobile-tab=task] .scene-workspace{visibility:hidden}.close-panel{display:block}.task-scroll{padding:15px 14px}.task-header h2{font-size:18px}.task-footer{padding-bottom:10px}.placement-controls button,.build-tools button,.audit-actions button,.diagnosis-choice-grid button,.view-toolbar button,.view-filter,.view-filter select,.component-actions button,.camera-pad button,.task-footer button,.top-actions .icon-button{min-height:44px}.mobile-nav{padding:4px 6px calc(4px + var(--safe-bottom));border-top:1px solid var(--line);z-index:40;background:#071116fa;grid-template-columns:repeat(4,1fr);display:grid}.mobile-nav button{min-height:47px;color:var(--muted);background:0 0;border:0;border-radius:10px;align-content:center;place-items:center;gap:1px;font-size:8px;display:grid}.mobile-nav button span{font-size:17px;line-height:1}.mobile-nav button.active{color:var(--green-2);background:#39d3a214}.app-dialog{border-radius:16px;width:calc(100vw - 16px);max-height:calc(100vh - 16px)}.report-content,.data-dialog>p,.data-actions{margin:14px}.data-actions{grid-template-columns:1fr}}@media (width<=900px) and (orientation:landscape){.app-shell{grid-template-rows:44px 21px minmax(0,1fr)}.topbar{margin-right:52px;padding:0 8px}.boundary-banner{margin-right:52px}.brand-copy{flex-direction:row;align-items:baseline;gap:6px}.brand-mark{width:28px;height:28px}.boundary-banner{min-height:21px}.training-layout{padding-right:52px}.scene-workspace{grid-template-rows:46px minmax(140px,1fr)}.component-sheet{z-index:5;border-top:0;border-left:1px solid var(--line);-webkit-backdrop-filter:none;backdrop-filter:none;background:#0d1a20;width:min(38%,280px);max-height:none;position:absolute;top:46px;bottom:0;right:0}.scene-frame{margin-right:min(38%,280px)}.component-facts{grid-template-columns:1fr}.component-actions{grid-template-columns:1fr;display:grid}.component-actions button{min-height:44px;padding:7px;font-size:9px}.mobile-nav{border-top:0;border-left:1px solid var(--line);grid-template-rows:repeat(4,1fr);grid-template-columns:1fr;width:52px;padding:3px;position:absolute;top:0;bottom:0;right:0}.mobile-nav button{min-height:0;padding:2px}.mobile-nav button span{font-size:14px}.course-panel,.task-panel{right:52px}.task-panel{grid-template-rows:1fr;grid-template-columns:70px minmax(0,1fr) minmax(132px,22vw)}.task-stage-rail{grid-template-rows:repeat(4,1fr);grid-template-columns:1fr}.stage-step{align-content:center;place-items:center;display:grid}.task-scroll{padding:11px 13px}.task-footer{border-top:0;border-left:1px solid var(--line);grid-template-columns:1fr;align-content:center;padding:10px}.task-footer button{min-height:44px}.report-hero{grid-template-columns:100px 1fr}.score-ring{width:94px}.score-ring:before{width:74px}}@media (width<=420px) and (orientation:portrait){.scene-workspace{grid-template-rows:52px minmax(190px,48vh) minmax(110px,1fr)}.view-toolbar{scrollbar-width:thin;flex-wrap:nowrap;width:calc(100% - 94px);max-width:none;padding:0 0 3px;bottom:7px;right:auto;overflow-x:auto}.view-toolbar>*{flex:none}.camera-pad{display:grid}.component-sheet{max-height:none}.component-facts{grid-template-columns:1fr}.report-hero{text-align:center;grid-template-columns:1fr;justify-items:center}.report-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
