/* Shared MVLscope instrument palette, matched to DualBeam Lab. */
:root{font-family:Inter,'Segoe UI',sans-serif;color:#d7e1e9;background:#0b1119;color-scheme:dark;--purple:#70d5c4;--ink:#e4edf2;--muted:#9aaebd;--border:#2b3947;--soft:#192330;--green:#70d5c4}
.topbar{background:#111a25;height:auto;min-height:82px;flex-wrap:wrap;padding:16px 30px}.brand strong,h1,.hero-value,.metrics dd,dialog h2{font-family:Inter,'Segoe UI',sans-serif}.brandmark{color:#0b2424;border-radius:7px}.brand-caption{font-size:12px}.top-actions{gap:8px;flex-wrap:wrap}.button,.button.dark{background:#1b2734;border-color:#2c3a48;color:#d8e5ed}.button.primary{background:#70d5c4;color:#092726;border-color:#70d5c4;box-shadow:none}.button.quiet{border:1px solid #2c3a48}.button:hover:not(:disabled){background:#2a3b49;filter:none}.button.primary:hover:not(:disabled){background:#8be5d5}.button.danger{color:#ffb8b5;border-color:#805251}.button.small,.two-buttons .button{font-size:14px}.two-buttons{flex-wrap:wrap}.panel{background:#111a25;border-radius:8px;box-shadow:none}.panel-title,.panel-toolbar{background:#15202c}.version,.view.active,.objective.active{background:#17302f;color:#80d8c8}.objective-options{background:#0c141e}.objective,.view{color:#aabcc9}.section-label,.eyebrow,.small-index,.sample-id{color:#93aabb}.section-label>span{font-size:12px}.heading-note,.simulation-tag{color:#9aaebd}.thin-divider,.brand-divider{background:#2b3947}label,label span{color:#b5c6d2}select,input[type=number],input[type=password],textarea{background:#0c141e;border:1px solid #344454;color:#e4edf2;border-radius:6px;padding:8px;font:inherit}select,input[type=number]{height:39px}.spec-row strong,.metrics dt,.metrics dd,.quality-heading{color:#d7e1e9}.muted,.compact,.scan-estimate,.processing-label,.profile-caption,.map-caption,.trace-note,.signal-footer,.analysis-foot p,.acquire-section p,.sample-visual small,.spec-row,.instrument-foot,.page-footer{color:#9aaebd}.mount-status,.quality-heading strong{color:#80d8c8}.scene{background:radial-gradient(ellipse at 50% 65%,#283b49,#101923)}.scene-label,.scene-hint{color:#b0c3d0}.scene-badge{background:#111a25e8;border-color:#3c4c5a;color:#e4edf2}.scene-badge span{color:#adc0cd}.map-wrap,.chart-empty{background:#0b131e;border-color:#283947}.chart-empty,.chart-empty strong,.signal-empty{color:#9eb2c1}.chart-empty span{font-size:14px}.chart-empty .empty-surface{color:#658d93}.signal-key{color:#afc2cf}.signal-key i,.live-dot{background:#70d5c4}.guide-strip{background:#142a2c;border-color:#315751}.guide-strip strong,.guide-strip .eyebrow{color:#99e5d6}.guide-strip p{color:#b5d0d0}.guide-strip .button{background:#1d3839;border-color:#416565;color:#d3ede7}.guide-number{color:#99e5d6;border-color:#416565}.metrics>div{border-color:#283947}.quality-bar,.progress-track{background:#263a41}.quality-bar>div{background:#70d5c4}.analysis-foot{background:#14202b}.hero-value small,.result-header .section-label{color:#a6bac8}#reset-session{color:#a6c6cc;font-size:12px}.toast{background:#213640;border:1px solid #55707a}.error-box{color:#ffc2b9}dialog{background:#14202c;border-color:#405364;color:#e4edf2;width:calc(100% - 32px);padding:28px;border-radius:10px}dialog h2{color:#e4edf2}dialog p{color:#b9cbd7}dialog::backdrop{background:#030911bb}.dialog-close{color:#c4d6e1;min-width:40px;min-height:40px}dialog a{font-size:14px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #8ee9d9;outline-offset:3px}.learn-nav{display:flex;align-items:center;gap:8px;padding:10px 30px;border-bottom:1px solid var(--border);background:#0f1924;flex-wrap:wrap}.learn-nav .button{font-size:14px;min-height:36px}.learn-nav>span{font-size:12px;color:#9aaebd;margin-right:auto}.learn-nav .jana-button{border-color:#416b67;color:#9be6d7}.workspace{grid-template-columns:270px minmax(400px,1fr) 270px;gap:18px}.top-actions #export{white-space:normal}.button[hidden],[hidden]{display:none!important}
@media(max-width:1200px){.workspace{grid-template-columns:240px minmax(330px,1fr)}.analysis{grid-column:2;display:grid;grid-template-columns:1fr 1fr}.analysis>.panel-title,.analysis-foot{grid-column:1/-1}.controls{grid-row:1/3}.brand-caption{display:none}}
@media(max-width:760px){.workspace{display:flex}.topbar{padding:12px 16px}.learn-nav{padding:10px 16px}.learn-nav>span{width:100%}.top-actions{width:auto;margin-left:auto}.top-actions .simulation-tag{display:none}.top-actions .button{font-size:14px}.analysis{display:grid}.guide-strip .button{margin-left:0}.button.small{font-size:14px}}
@media(max-width:420px){.analysis{grid-template-columns:1fr}.top-actions{width:100%;justify-content:flex-start}.learn-nav .button{flex:1;padding:8px}.learn-nav>span{display:none}}
.chapter-tabs,.learning-actions,.tip-actions,.jana-status-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.chapter-tabs .button[aria-pressed=true]{background:#244b49;border-color:#70d5c4;color:#a8f1e2}.learning-actions .primary{width:auto;flex:1}.learning-actions{margin-top:20px}.optics-diagram{border:1px solid #365263;background:#0c1722;border-radius:8px;padding:16px;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:14px;color:#bee5e1}.optics-diagram>div{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;text-align:center}.optics-diagram>div>span{border:1px solid #47646e;padding:10px;border-radius:5px}.optics-diagram b{font-weight:500;color:#edc97e}.diagram-arrow{color:#70d5c4}.illustration{background:#0b151f;border:1px solid #2b4454;padding:16px;margin-top:16px;border-radius:8px}.lesson-caption,.learning-note{font-size:12px!important;line-height:1.6}.lesson-caption{color:#9aafbd;letter-spacing:.7px}.illustration canvas{display:block;width:100%;height:auto}.illustration p{font-size:14px;min-height:44px}.try-note{background:#173333;border-left:3px solid #70d5c4;padding:14px;color:#c4e8e0!important;font-size:16px;line-height:1.65}.learning-highlight{outline:3px solid #70d5c4;outline-offset:5px;scroll-margin:100px}.tour-card{position:fixed;bottom:20px;right:20px;width:min(440px,calc(100vw - 32px));z-index:15;background:#173039;border:1px solid #73c6bb;border-radius:10px;padding:20px;box-shadow:0 15px 50px #0008}.tour-card strong{display:block;font-size:18px;margin-top:8px}.tour-card p{font-size:16px;line-height:1.6;color:#c3d7df}.tour-card .learning-actions{margin-top:10px}.jana-status-row{padding:12px;background:#0c1822;border:1px solid #345063;border-radius:6px;font-size:14px}.jana-status-row>span{margin-right:auto}#jana-message{font-size:14px;margin:12px 0}#jana-settings{border:1px solid #344c5c;border-radius:8px;padding:14px;margin-top:16px}#jana-settings summary{cursor:pointer;font-size:16px;color:#9de3d5}#jana-key,#jana-question{width:100%}.offline-tag{display:inline-block;font-size:12px;font-weight:400;color:#9ec2be;margin-left:6px}.tip-actions .button{flex:1;white-space:normal}.jana-transcript{max-height:260px;min-height:80px;overflow:auto;background:#0a151e;border:1px solid #2d4353;border-radius:6px;padding:12px;overflow-wrap:anywhere}.jana-transcript p{font-size:16px;margin:0 0 12px}.jana-transcript strong{color:#95dfd3}#jana-question-form .primary{margin-top:10px}#how-dialog{max-width:760px}#jana-dialog{max-width:660px}.learning-note{color:#9eb4c3!important}.learning-actions .button{white-space:normal}.illustration input{min-height:20px}
@media(max-width:600px){dialog{padding:20px}.optics-diagram>div{gap:7px}.optics-diagram>div>span{padding:7px}.learning-actions .button{font-size:14px;padding:8px}.tour-card{bottom:12px;right:16px;max-height:48vh;overflow:auto}}
#how-dialog{max-width:1240px;width:calc(100% - 24px);max-height:94vh;padding:22px}#how-dialog h2{margin:8px 0 18px;font-size:26px}.optics-workspace{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:20px;margin-top:16px}.optics-view-panel{min-width:0}.optics-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:10px;background:#1a2a37;border:1px solid #345063;border-radius:8px 8px 0 0}.optics-toolbar>span{margin-right:auto;font-size:14px}.optics-toolbar .button{font-size:12px}.optics-3d{height:465px;position:relative;overflow:hidden;border:1px solid #345063;border-top:0;background:#0a141f}.optics-3d>canvas{display:block;width:100%;height:100%;touch-action:none}.optics-label{position:absolute;transform:translate(-50%,-50%);padding:5px 7px;max-width:160px;border:1px solid #496779;border-radius:5px;background:#11212ded;color:#dcecf3;font:12px 'Segoe UI',sans-serif;cursor:pointer}.optics-label.selected{border-color:#8ce4d1;background:#173b3a;color:#b7f6e6}.optics-legend{display:flex;gap:16px;flex-wrap:wrap;padding:12px 0;font-size:12px;color:#a3bac8}.sample-ray{color:#72efd1}.reference-ray{color:#ffd187}.optics-part{font-size:14px!important;min-height:82px;margin:0!important;padding:12px;background:#193039;border-left:3px solid #70d5c4}.optics-parts{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.optics-parts .button{font-size:12px}.optics-parts .button[aria-pressed=true]{background:#28514a;color:#c4f6e5}.optics-explanation{min-width:0}.optics-explanation h3{margin:0!important;font-size:20px}.optics-explanation>p{font-size:16px;line-height:1.65}.optics-explanation .illustration{padding:12px;margin-top:12px}.optics-explanation .illustration canvas{height:auto}.optics-explanation .try-note{font-size:14px}.camera-demo{display:flex;gap:12px;align-items:center;margin-top:14px}.camera-demo canvas{width:128px;height:96px;border:1px solid #587082;border-radius:4px}.camera-demo strong{font-size:14px}.camera-demo p{font-size:12px;margin:5px 0;line-height:1.6}.optics-3d #optics-loading{position:absolute;left:20px;top:20px;max-width:80%;font-size:14px;z-index:2}#how-dialog .learning-actions{border-top:1px solid #345063;padding-top:14px;margin-top:16px}
@media(max-width:900px){.optics-workspace{grid-template-columns:1fr}.optics-3d{height:420px}.optics-part{min-height:0}.optics-explanation{border-top:1px solid #345063;padding-top:16px}}
@media(max-width:480px){#how-dialog{padding:14px;width:calc(100% - 16px)}#how-dialog h2{font-size:22px}.optics-3d{height:330px}.optics-label{font-size:10px;padding:4px;max-width:115px}.optics-toolbar>span{width:100%}.optics-legend{gap:8px}.camera-demo{flex-wrap:wrap}.optics-legend span:last-child{width:100%}}
.optics-toolbar .primary{width:auto;min-height:32px}.optics-scrub{padding:8px 0 12px;font-size:14px}.optics-scrub input{display:block;min-height:20px;margin:10px 0 0}.optics-scrub output{color:#9feddb}
/* One training entry point; the original starter checklist is superseded. */
.guide-strip{display:none}#training-dialog{max-width:1120px;width:calc(100% - 24px);max-height:93vh}#training-dialog h2{margin:8px 0}#training-dialog>p{margin:10px 0}.training-modes,.training-actions{display:flex;gap:8px;flex-wrap:wrap}.training-modes{margin:20px 0}.training-modes .button{flex:1}.training-modes [aria-pressed=true],.lesson-choice[aria-pressed=true]{background:#1e4944;border-color:#70d5c4;color:#c3f4e9}.training-overview{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(0,1.4fr);gap:24px}.lesson-list{display:flex;flex-direction:column;gap:7px}.lesson-choice{white-space:normal;text-align:left;justify-content:flex-start;padding:12px}.lesson-choice>span{color:#7ccfbf;font-size:12px}.lesson-choice strong{font-size:14px;font-weight:500;flex:1}.lesson-choice small{font-size:12px;color:#afc2ce}.training-overview h3{font-size:22px;margin-top:0}.training-overview p{font-size:16px;line-height:1.6}.training-overview ol{font-size:14px;line-height:1.9;padding-left:22px;color:#bdcfd8}.training-actions .primary{width:auto;flex:1;min-height:38px}.training-record{margin-top:26px;border-top:1px solid #3c5362;padding-top:12px}.training-record table{border-collapse:collapse;width:100%;font-size:14px;margin-bottom:16px}.training-record th,.training-record td{text-align:left;border-bottom:1px solid #314553;padding:10px 6px}.training-record th{color:#a3dacd}.training-record a{text-decoration:none}#training-storage{font-size:14px!important;color:#a3d7ca}#training-banner{position:sticky;top:0;z-index:12;display:flex;justify-content:center;gap:20px;align-items:center;padding:10px 18px;background:#1b4742;border-bottom:1px solid #65b6a8;font-size:14px}#training-coach{position:fixed;right:20px;bottom:18px;z-index:30;width:min(410px,calc(100vw - 32px));max-height:64vh;overflow:auto;background:#142e36;border:1px solid #70bdaf;border-radius:10px;padding:18px;box-shadow:0 12px 45px #0008}#training-coach.coach-left{right:auto;left:20px}.coach-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}#coach-title{font-size:19px;line-height:1.4;display:block}#coach-instruction{font-size:16px;line-height:1.6;margin:10px 0}.coach-why{font-size:14px;line-height:1.5;color:#b5ccd5}#coach-feedback{font-size:14px;line-height:1.5;color:#ffe0a6;margin:10px 0}#coach-counter{display:block;font-size:12px;color:#a9c7ce;margin-top:12px}#training-coach .button{font-size:14px;white-space:normal}#coach-hint{font-size:14px;line-height:1.5}.coach-answers{padding:10px 0;border-top:1px solid #3e5c65;margin-top:10px}.coach-answers legend{font-size:16px;line-height:1.5;margin-bottom:8px}.coach-answers label{display:flex;gap:9px;align-items:flex-start;font-size:14px;line-height:1.5;color:#d3e5e9}.coach-answers input{margin-top:4px;accent-color:#70d5c4}.quiz-review{font-size:14px;line-height:1.5;color:#c4dedf}#coach-pointer{position:fixed;z-index:29;background:#a9f0d9;color:#0e302e;font-size:13px;font-weight:700;border-radius:5px;padding:5px 10px;pointer-events:none}.coach-target{outline:3px solid #9aefd6!important;outline-offset:5px;scroll-margin:150px}.training-active main{padding-bottom:300px}#training-report-download{margin:8px}
@media(max-width:760px){.training-overview{grid-template-columns:1fr}.lesson-list{display:grid;grid-template-columns:1fr 1fr}.lesson-choice{padding:9px;gap:5px}.lesson-choice small{display:none}.training-modes .button{flex:1 1 40%;font-size:14px}.training-record{overflow:auto}#training-coach{bottom:10px;right:12px;max-height:44vh;padding:14px}#training-banner{position:fixed;top:0;left:0;right:0;flex-wrap:wrap;gap:6px;font-size:12px}#training-banner .button{font-size:12px}.training-active .topbar{margin-top:80px}}
