
:root{color-scheme:dark;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Pretendard","Malgun Gothic",sans-serif;background:#060b19;color:#e9eefc;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px;line-height:1.6}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #8c94ff;outline-offset:3px} .visually-hidden{position:absolute;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px}
.background-glow{position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 550px 430px at 79% 10%,#2834734d,transparent 72%),radial-gradient(ellipse 550px 420px at 7% 42%,#122c5040,transparent 77%);}
.shell{max-width:1376px;margin:auto;padding:0 54px}.site-header{height:91px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #27304a96}.brand{display:flex;align-items:center;gap:11px;font-size:23px;font-weight:800;letter-spacing:-1px}.brand-emblem{width:34px;height:34px;display:grid;place-items:center;background:#786cf3;border-radius:10px;color:white;box-shadow:0 0 30px #6351ff30}.brand-accent{color:#aa9cff}.header-right{display:flex;align-items:center;gap:32px}.header-meta,.online-dot{font-size:10px;letter-spacing:1.7px;color:#8692af;font-weight:700}.online-dot{display:flex;align-items:center;gap:9px;color:#83d8c1}.online-dot span{width:7px;height:7px;background:#6ce1bc;border-radius:50%;box-shadow:0 0 10px #48dbac}
.intro{position:relative;padding:66px 0 42px;overflow:hidden}.eyebrow,.section-kicker,.formula-kicker{font-size:11px;font-weight:800;letter-spacing:2px;color:#a99afb}.eyebrow{display:flex;align-items:center;gap:14px}.eyebrow-line{height:1px;width:29px;background:#a18cff}.intro-layout{display:flex;align-items:center;justify-content:space-between}.intro h1{font-size:clamp(38px,4vw,59px);font-weight:800;line-height:1.28;letter-spacing:-3.2px;margin:20px 0 18px}.intro h1 em{font-style:normal;background:linear-gradient(105deg,#b5a5ff,#7bc4e8);-webkit-background-clip:text;background-clip:text;color:transparent}.intro p{font-size:14px;color:#96a3bd;line-height:1.9;margin:0}.orbit-decoration{position:relative;width:215px;height:192px;flex-shrink:0;margin-right:70px}.decor-ring{position:absolute;left:50%;top:50%;border:1px solid #5c6ba358;border-radius:50%;transform:translate(-50%,-50%) rotate(-24deg)}.r1{width:240px;height:105px}.r2{width:270px;height:165px;border-color:#7389c329}.decor-star{position:absolute;top:50%;left:50%;height:68px;width:68px;transform:translate(-50%,-50%);background:radial-gradient(circle at 35% 35%,#fff5c6,#ffca68 38%,#dd8647 73%);border-radius:50%;box-shadow:0 0 40px #e7ab5f70,0 0 94px #e7ab5f30}.decor-planet{position:absolute;top:16%;right:4%;height:23px;width:23px;border-radius:50%;background:radial-gradient(circle at 20% 20%,#bdb3ff,#685bc5 60%,#342568);box-shadow:0 0 20px #aa8ef15c}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;border-bottom:1px solid #29334d;padding-bottom:0;margin:18px 0 34px}.tab{display:flex;gap:14px;align-items:center;min-width:0;text-align:left;padding:17px 20px 20px;background:transparent;color:#8390ac;border:0;border-bottom:2px solid transparent;font-weight:700;font-size:14px}.tab.active{color:#d7d8ff;border-bottom-color:#9188ff;background:linear-gradient(180deg,transparent,#49416f19)}.tab:hover{color:#fff}.tab-idx{font-size:11px;color:#737b9b;font-weight:800}.tab-arrow{margin-left:auto;color:#7c86a5}.tab.active .tab-idx,.tab.active .tab-arrow{color:#a39fff}
.workspace{animation:appear .2s ease}@keyframes appear{from{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}[hidden]{display:none!important}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 23px}.section-heading h2{font-size:24px;line-height:1.35;letter-spacing:-1.1px;margin:6px 0}.subtle-heading{color:#7e89a3;font-weight:400}.section-heading p{font-size:13px;color:#8d9ab3;margin:7px 0 0}.tag{border:1px solid #364160;color:#a8b2cf;border-radius:6px;font-size:10px;font-weight:750;letter-spacing:0.4px;padding:7px 11px;white-space:nowrap}
.scanner-grid,.transit-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(295px,.92fr);gap:16px}.panel{background:#10182cbd;border:1px solid #27334fa6;border-radius:13px;overflow:hidden;min-width:0}.panel-top{min-height:57px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #28334c94}.panel-title{color:#dbe4f8;font-weight:750;font-size:13px;display:flex;align-items:center;gap:9px}.small-led{width:7px;height:7px;border-radius:50%;background:#62d1c1;box-shadow:0 0 12px #65ddcc6a}.small-led.purple{background:#a68eff;box-shadow:0 0 12px #ac89ff87}.mini-label{font-size:10px;letter-spacing:.8px;color:#697c9e;font-weight:700}.panel-actions{display:flex;gap:19px;align-items:center}.text-button{padding:4px 0;background:transparent;border:0;color:#b5aaff;font-size:11px;font-weight:750}.text-button:hover{color:#e3ddff}.canvas-wrap{background:radial-gradient(circle at center,#131f3e,#080e1e);position:relative;margin:16px 16px 0;overflow:hidden;border:1px solid #35436282;border-radius:7px;aspect-ratio:8/5}.canvas-wrap canvas{display:block;width:100%;height:100%}.view-label{position:absolute;left:15px;top:15px;color:#e0eafa;background:#070d1ec7;border:1px solid #53608175;border-radius:4px;font-size:9px;letter-spacing:1.5px;font-weight:800;padding:8px 10px;display:flex;align-items:center;gap:8px;pointer-events:none}.live-pulse{width:5px;height:5px;background:#7ee7cf;border-radius:50%}.image-footer{min-height:53px;padding:10px 18px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:11px;color:#8a98b4}.image-footer>span:last-child{white-space:nowrap;color:#6e80a4}.control-body{padding:23px 21px 20px}.control-group{margin-bottom:25px}.control-group>label,.nasa-controls label{display:flex;justify-content:space-between;color:#cdd7eb;font-weight:750;font-size:12px;margin-bottom:13px;gap:7px}.control-group output{color:#b1a3ff;font-weight:850;font-variant-numeric:tabular-nums}input[type=range]{accent-color:#8e83fa;width:100%;height:5px;cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:10px;color:#6f819f;gap:12px;margin-top:7px}.switch-label{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#cdd7eb;font-size:12px;font-weight:750;cursor:pointer}.switch-label small{display:block;color:#7586a6;font-size:10px;font-weight:450}.switch-label input{position:absolute;opacity:0}.switch-track{width:40px;height:23px;border-radius:24px;background:#38425e;position:relative;flex-shrink:0;transition:background .2s}.switch-track:before{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;background:#d3dcf1;border-radius:50%;transition:transform .2s}.switch-label input:checked + .switch-track{background:#7567d3}.switch-label input:checked + .switch-track:before{transform:translateX(17px);background:white}.switch-label:has(input:focus-visible) .switch-track{outline:2px solid #afa5ff;outline-offset:3px}.divider-line{height:1px;background:#29334b;margin:25px 0 20px}.btn{width:100%;border-radius:7px;display:flex;justify-content:center;align-items:center;gap:10px;min-height:42px;padding:8px 14px;font-size:12px;font-weight:800;transition:.2s;border:1px solid transparent}.btn:hover{filter:brightness(1.13)}.btn:disabled{opacity:.45;cursor:wait}.btn-primary{background:#8174f3;color:white}.btn-secondary{background:#202b45;color:#d5dcf2;border-color:#384667;margin-top:9px}.btn-outline{background:#171f37;color:#b8adff;border-color:#554c88;margin-top:10px}.btn.short{margin-top:10px;min-height:35px}.nasa-controls{margin-top:20px}.nasa-controls label{font-size:11px;margin-bottom:8px;color:#8f9eb8}input[type=date],select{background:#151e34;color:#ecedff;border:1px solid #35425e;border-radius:6px;padding:11px 12px;width:100%;font-size:12px;min-width:0}input[type=date]{color-scheme:dark}.helper{color:#7d8da9;font-size:10px;line-height:1.7;margin:10px 0 0}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:16px 0}.metric-card{background:#111b30a8;border:1px solid #273651ab;border-radius:10px;padding:17px 19px}.metric-card>span{color:#8798b6;font-size:11px}.metric-card>div{display:flex;align-items:baseline;gap:7px;margin-top:5px}.metric-card strong{font-size:29px;color:#f0f3ff;font-weight:800;letter-spacing:-1px;font-variant-numeric:tabular-nums}.metric-card small{font-size:12px;color:#8896b4}.result-panel .panel-top{min-height:54px}.lighter{color:#8290ae;font-weight:400}.coordinate-list{padding:12px 20px;min-height:62px;display:flex;flex-wrap:wrap;gap:9px}.coordinate-chip{display:flex;align-items:center;gap:10px;background:#1b2640;color:#c6d3ec;border:1px solid #2d3958;border-radius:6px;padding:9px 12px;font-size:11px;font-variant-numeric:tabular-nums}.coordinate-chip b{color:#b0a4ff}.empty-results{font-size:12px;color:#8999b3}
.chart-wrap{height:302px;position:relative;padding:17px 19px 0}.chart-wrap canvas{height:100%!important;width:100%!important}.chart-caption{display:flex;justify-content:space-between;color:#6d7d9c;font-size:9px;font-weight:800;letter-spacing:1px;padding:0 23px 14px}.orbit-view{position:relative;height:165px;border-top:1px solid #28334c;border-bottom:1px solid #28334c;overflow:hidden;background:radial-gradient(ellipse at center,#283b604a,transparent 70%),#0d1728}.orbit-view canvas{display:block;width:100%;height:100%}.orbit-help{position:absolute;bottom:11px;left:18px;color:#7183a3;font-size:10px}.playback{display:flex;align-items:center;gap:14px;padding:15px 20px;color:#a3aec7;font-size:11px}.round-play{border:1px solid #645fa8;color:#b8afff;border-radius:50%;background:#25264c;width:31px;height:31px;flex-shrink:0;font-weight:800}.playback>input{flex:1;min-width:50px}.playback>span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}.model-note{border:1px solid #363b61;border-radius:7px;padding:14px 15px;color:#a3acc8;background:#24284478;font-size:11px;line-height:1.8}.formula-box{display:flex;justify-content:space-between;gap:25px;align-items:center;border:1px solid #3d3e60;border-radius:10px;padding:25px 28px;margin-top:16px;background:linear-gradient(100deg,#1d2240a8,#141e33a4)}.formula-box h3{font-size:16px;letter-spacing:-.4px;margin:8px 0}.formula-box p{color:#9fabc6;font-size:12px;line-height:1.8;margin:0;max-width:800px}.formula-box code{color:#cbbeff}.formula-symbol{color:#555d94;font-size:54px;font-style:italic;font-weight:200;white-space:nowrap}
footer{border-top:1px solid #25304a;margin:45px 0 0;padding:25px 0 33px;display:flex;justify-content:space-between;gap:20px;color:#6e80a0;font-size:11px}footer a:hover{color:#abb4ff}
@media(max-width:1000px){.shell{padding:0 28px}.scanner-grid,.transit-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr)}.orbit-decoration{margin-right:20px;transform:scale(.8)}.header-meta{display:none}.metric-card{padding:14px}.metric-card strong{font-size:25px}}
@media(max-width:760px){.shell{padding:0 18px}.site-header{height:68px}.brand{font-size:20px}.online-dot{font-size:8px}.intro{padding:42px 0 29px}.intro h1{letter-spacing:-2px;font-size:38px}.intro p{font-size:12px}.orbit-decoration{display:none}.desktop-br{display:none}.tabs{margin:8px 0 30px;gap:3px}.tab{padding:13px 7px 15px;font-size:11px;gap:5px}.tab-idx{display:none}.tab-arrow{display:none}.section-heading{align-items:flex-start}.section-heading h2{font-size:21px}.section-heading p{font-size:12px}.section-heading .tag{display:none}.scanner-grid,.transit-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr);gap:10px}.metric-card strong{font-size:27px}.chart-wrap{height:260px}.formula-box{padding:18px}.formula-symbol{display:none}.playback{gap:8px}.playback>span:nth-child(2){display:none}footer{flex-direction:column;gap:7px}.panel-top{padding:0 14px}.panel-actions{gap:9px}.mini-label{font-size:9px}.image-footer{flex-wrap:wrap}.chart-caption{font-size:8px}}
@media(max-width:400px){.intro h1{font-size:34px}.tab{font-size:10px}.metric-card{padding:11px}.metric-card strong{font-size:23px}.tab-arrow{display:none}.view-label{font-size:7px;padding:5px 7px}}

/* Star-hunt challenge and browser-local star notebook */
.tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.tab{padding:17px 11px 19px;gap:8px;font-size:12px;white-space:normal}
.mission-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.mission-card{background:#101c34;border:1px solid #33405c;border-radius:11px;padding:18px;cursor:pointer;text-align:left;color:#dce7fb;display:flex;flex-direction:column;gap:8px;min-height:115px}
.mission-card:hover,.mission-card:focus-visible{border-color:#8e87ef;outline:none}
.mission-card.active{border-color:#a196ff;background:linear-gradient(150deg,#2a2c59,#141e35)}
.mission-card .mission-number{font-size:10px;color:#92a4c5;font-weight:800;letter-spacing:1px}
.mission-card strong{font-size:15px;letter-spacing:-.4px}
.mission-card small{color:#9aaac9;font-size:11px;line-height:1.5}
.mission-card .cleared{color:#80e9b7;font-size:11px;font-weight:850}
.mission-description{font-size:12px;line-height:1.85;color:#b3c3dc;margin:0 0 26px}
.mission-canvas-wrap{aspect-ratio:12/7}#mission-canvas{touch-action:none}
.mission-result{padding:18px 22px 20px;color:#b9c7df;font-size:12px;line-height:1.85}
.mission-result>p{margin:0 0 12px}
.mission-actions{display:flex;gap:10px;align-items:center}
.mission-actions .btn{flex:1;margin:0;width:auto}
.gallery-intro{display:flex;justify-content:space-between;gap:22px;align-items:center;background:#111b30;border:1px solid #303e5d;border-radius:10px;padding:20px 23px;margin-bottom:18px}
.gallery-intro strong{font-size:22px;color:#f2f4ff}
.gallery-intro p{font-size:12px;max-width:700px;line-height:1.75;color:#8e9db8;margin:6px 0 0}
.gallery-actions{display:flex;gap:10px;min-width:255px}
.gallery-actions .btn{margin:0;flex:1;min-height:37px;padding:7px 10px}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-height:140px}
.gallery-card{background:linear-gradient(135deg,#1a2945,#111b32);border:1px solid #374663;border-radius:11px;padding:20px;min-width:0}
.gallery-card-heading{display:flex;justify-content:space-between;gap:5px;align-items:start;margin-bottom:11px}
.gallery-star{font-size:26px;color:#ffdd9c;text-shadow:0 0 17px #ffc57766}
.gallery-card strong{font-size:15px;color:#e7edff}
.gallery-card small,.gallery-card p{display:block;color:#94a4c1;font-size:11px;line-height:1.7;margin:5px 0 0;overflow-wrap:anywhere}
.gallery-card .gallery-coord{font-size:14px;color:#d4c8ff;letter-spacing:.2px;font-variant-numeric:tabular-nums;margin-top:9px}
.gallery-remove{color:#adb7cf;background:transparent;border:1px solid #46536e;padding:5px 9px;font-size:10px;border-radius:5px;white-space:nowrap}
.gallery-remove:hover{color:#fff;border-color:#a3a9cf}
.coordinate-chip{gap:7px}
.coordinate-chip .star-save{background:#323154;border:1px solid #655caa;border-radius:5px;padding:5px 7px;color:#e6d6ff;font-size:10px;font-weight:800;margin-left:2px}
.coordinate-chip .star-save:hover{background:#4a467b}
@media(max-width:1000px){.tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.tab{font-size:12px;min-height:50px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.mission-picker{grid-template-columns:1fr}.mission-card{min-height:0;padding:15px}.mission-actions{flex-direction:column}.mission-actions .btn{width:100%}.gallery-intro{flex-direction:column;align-items:stretch}.gallery-grid{grid-template-columns:1fr}.gallery-actions{min-width:0}.tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.tab{font-size:11px}}

/* Purpose-first research flow and visible mission feedback */
.research-question{background:linear-gradient(115deg,#222a51,#111d37);border:1px solid #4a5284;border-radius:14px;padding:20px 24px;margin:0 0 13px}
.research-question .research-badge{display:inline-block;color:#bdb2ff;font-size:11px;font-weight:800;letter-spacing:.5px;margin-right:12px}
.research-question strong{color:#f3f5ff;font-size:15px}
.research-question p{color:#a8b8d4;font-size:12px;margin:7px 0 0}
.research-question em{font-style:normal;color:#d2c4ff}
.journey{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin-bottom:12px}
.journey-step{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:16px 18px;border:1px solid #303f62;border-radius:11px;background:#111c34;color:#f3f4ff;transition:border-color .15s,transform .15s}
.journey-step:hover{border-color:#938af7;transform:translateY(-2px)}
.journey-step span{color:#b1a3ff;font-size:10px;font-weight:800}
.journey-step strong{font-size:14px}
.journey-step small{font-size:11px;color:#a2b2cf}
.mission-instructions{background:#1a2842;border:1px solid #3c4d72;border-radius:10px;padding:15px;margin-bottom:19px}
.mission-instructions>strong{color:#e6dcff;font-size:12px}
.mission-instructions .mission-description{margin:6px 0 10px;font-size:12px}
.mission-tips{display:flex;gap:7px;flex-wrap:wrap}
.mission-tips span{font-size:10px;background:#283a57;color:#c0d1eb;border-radius:5px;padding:5px 8px}
.mission-legend{display:flex;gap:16px;flex-wrap:wrap;padding:10px 18px;background:#0d172a;border-top:1px solid #283b5a;color:#bdcbe2;font-size:11px}
.legend-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.legend-correct{background:#73edcb}.legend-false{background:#ff8e99}.legend-missed{background:#ffcf77}
.mask-section{background:#0b1528;padding:14px 17px 12px;border-top:1px solid #283b5a}
.mask-header{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px}
.mask-header strong{font-size:12px;color:#e6edff}
.mask-header span{font-size:11px;color:#83dfc9;font-variant-numeric:tabular-nums}
.mask-section canvas{display:block;width:100%;height:auto;max-height:155px;object-fit:contain;image-rendering:pixelated;background:#071021;border:1px solid #2b405e;border-radius:7px}
.mask-section p{font-size:10px;color:#9bb0cf;line-height:1.6;margin:8px 0 0}
.mission-learning{margin:16px 0 0;padding:13px 16px;border-left:3px solid #9d93ff;background:#171f3c;color:#d1d9ee;font-size:12px;border-radius:6px}
.mission-auto-note{margin:0 0 12px!important;color:#9fdfcc!important}
.score-track{height:8px;border-radius:8px;background:#293550;overflow:hidden;margin-bottom:13px}
.score-track-fill{height:100%;width:0;background:linear-gradient(90deg,#7568e9,#69e1bf);transition:width .25s}
@media(max-width:760px){.journey{grid-template-columns:1fr}.research-question{padding:16px}.research-question strong{display:block;margin-top:7px}.mission-legend{gap:10px;font-size:10px}.mask-header{flex-direction:column;align-items:flex-start}}


/* CosmoCode / Observatory edition — quiet monochrome research UI */
:root{color-scheme:dark;background:#090a0b;color:#e6e6e3;--accent:#9bb7ad;--edge:#2c3031;--muted:#959b9b}
body{background:#090a0b;color:#e6e6e3;letter-spacing:-.012em}
.background-glow,.orbit-decoration{display:none!important}
.shell{max-width:1440px;padding:0 42px}
.site-header{height:76px;border-color:#27292a}.brand{font-size:21px;font-weight:750;letter-spacing:-.9px}
.brand-emblem{background:#252a29;box-shadow:none;border:1px solid #47524f;color:#d7e8e1;border-radius:5px;width:32px;height:32px}
.brand-accent,.intro h1 em{color:#c6d7d0!important;background:none!important;-webkit-text-fill-color:initial!important}
.header-meta,.online-dot{color:#898f8d;letter-spacing:1px}.online-dot{color:#9eada6}.online-dot span{background:#9bb7ad;box-shadow:none}
.intro{padding:52px 0 27px}.intro h1{font-size:clamp(38px,4.4vw,62px);line-height:1.17;letter-spacing:-2.8px;font-weight:760;margin:17px 0 20px}.intro p{font-size:14px;color:#a4aaa8;line-height:1.85}
.eyebrow,.section-kicker,.formula-kicker{color:#a5b4ae;font-size:10px;letter-spacing:1.8px}.eyebrow-line{background:#7e9b90}
.research-question{background:#111313;border:1px solid #313636;border-radius:7px;padding:17px 20px}.research-question strong{color:#e5e9e7}.research-question .research-badge,.research-question em{color:#b4c8be}.research-question p{color:#9ca4a0}
.journey{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.journey-step{background:#121414;border:1px solid #2d3231;border-radius:6px;transition:background .15s,border-color .15s;padding:15px 17px;color:#dfe2df}
.journey-step:hover{border-color:#7e968b;background:#191d1b;transform:none}.journey-step span{color:#9bb6aa}.journey-step small{color:#979e9a}
.tabs{grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-color:#2c3030;margin-top:20px;margin-bottom:26px}
.tab{font-size:12px;font-weight:620;padding:17px 10px 17px;gap:8px;border-color:transparent;color:#909695}.tab.active{background:#171b19;color:#e8eeeb;border-bottom-color:#a1bcb0}.tab:hover{color:#e4ece7}.tab-idx,.tab-arrow{color:#777f7b!important}.tab.active .tab-idx{color:#acc6b9!important}
.section-heading h2{color:#f0f1ef;letter-spacing:-1.1px}.section-heading p,.subtle-heading,.helper{color:#a1a9a5!important}.tag{background:#181c1a!important;color:#a8bdb3!important;border:1px solid #37433c!important;border-radius:4px!important}
.panel{background:#111313;border:1px solid #303434;border-radius:7px}.panel-top{border-color:#2b3030}.panel-title{color:#e0e5e2}.mini-label,.lighter{color:#939e99}.small-led{background:#a3c6b5;box-shadow:none}.small-led.purple{background:#c0c7bd;box-shadow:none}
.canvas-wrap{background:#090b0b;border:1px solid #353d3a;border-radius:3px}.view-label{background:#101514c9!important;border:1px solid #3a4841!important;border-radius:3px!important;color:#d0ded7!important}.live-pulse{background:#a5b9b0!important;box-shadow:none!important}
.control-body{background:transparent}.control-group label,.switch-label{color:#d9dfdc}.control-group output{color:#c8d9cf!important}.range-ends{color:#8e9691}
input[type=range]{accent-color:#a5c0b2}input[type=checkbox]{accent-color:#8eab9c}input[type=date],select{background:#1a1d1b!important;color:#e0e7e2!important;border:1px solid #3b4340!important;border-radius:4px!important}
.btn{border-radius:4px!important;box-shadow:none!important;font-weight:650;letter-spacing:0!important}.btn-primary{background:#b2c8bd!important;color:#101513!important;border:1px solid #b2c8bd!important}.btn-primary:hover{background:#d3e0d7!important}.btn-secondary,.btn-outline{background:#1b1e1c!important;color:#e3e8e4!important;border:1px solid #454e49!important}.btn-secondary:hover,.btn-outline:hover{background:#252c28!important;border-color:#83988a!important}
.text-button{color:#b8cfc1}.text-button:hover{color:#e3f4e9}
.metric-card{background:#121515!important;border:1px solid #303735!important;border-radius:6px!important}.metric-card span,.metric-card small{color:#9fa9a4!important}.metric-card strong{color:#ecf2ee!important}
.result-panel,.formula-box,.model-note,.mission-instructions,.mission-learning,.gallery-intro,.gallery-grid>*,.mission-card,.mask-section{background:#111514!important;border-color:#303a34!important;color:#dce4de!important;border-radius:6px!important}
.mission-card.active{border-color:#8da99b!important;background:#1e2823!important}.mission-card:hover{border-color:#a2b9a8!important}.mission-card .mission-number,.mission-card .cleared,.mission-tips span{color:#b1c9b9!important}.mission-tips span{background:#252e28!important}
.mask-header strong,.mission-instructions>strong{color:#e5eee8!important}.mission-learning{border-left-color:#9fb9a9!important}.score-track-fill{background:#b1c9ba!important}.mission-legend{background:#101312;border-color:#313935}.legend-correct{background:#8edbb6}.legend-false{background:#d98f8f}.legend-missed{background:#e0c48e}
.formula-box{border:1px solid #303a34!important}.formula-symbol{color:#394e41!important}.formula-box p{color:#a6b3aa!important}
footer{border-color:#282e2b!important;color:#969f99!important}
.stack-info{padding:16px 20px;margin-bottom:16px;background:#171b19;border:1px solid #354139;border-left:3px solid #9eb6a8;border-radius:4px;font-size:12px;line-height:1.8;color:#aebbb2}
.stack-info strong{color:#dfe8e1;margin-right:7px}.stack-info b{color:#e0e7e2}.stack-info p{margin:6px 0 0}.stack-science{margin:18px 0 0}
.stack-layout{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(290px,.9fr);gap:16px}.stack-canvas-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}
.stack-image{background:#080a09;border:1px solid #343c36;border-radius:4px;overflow:hidden}.stack-image-title{padding:9px 12px;font-size:11px;color:#b6c1ba;border-bottom:1px solid #303733}.stack-image-title span{color:#8ba99a;margin-right:10px;font-size:10px}.stack-image canvas{display:block;width:100%;height:auto;aspect-ratio:8/5;background:#070a08}
.stack-bottom{padding:12px 16px;border-top:1px solid #2b332e;color:#b3c0b7;font-size:12px;line-height:1.65}.stack-frame-list{display:grid;gap:7px;padding:0 16px 16px}.stack-frame-row{display:flex;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid #303834;background:#171c18;color:#b4c2b8;border-radius:3px;font-size:11px}.stack-frame-row strong{color:#e0ebe2;font-weight:600}.stack-frame-row small{color:#98a89d}.stack-metrics{margin-top:16px}.stack-metrics .metric-card strong{font-variant-numeric:tabular-nums}
@media(max-width:1100px){.tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.journey{grid-template-columns:repeat(2,minmax(0,1fr))}.stack-layout{grid-template-columns:1fr}}
@media(max-width:760px){.shell{padding:0 16px}.intro{padding:30px 0 20px}.intro h1{letter-spacing:-1.8px}.tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.tab{font-size:11px}.journey{grid-template-columns:1fr 1fr}.stack-canvas-grid{grid-template-columns:1fr}.stack-info{padding:12px 14px}.header-right{gap:8px}}
@media(max-width:420px){.journey{grid-template-columns:1fr}.tabs{grid-template-columns:1fr 1fr}.header-meta{display:none}}

/* This CSS is scoped exclusively to replacement module 02. */
#section-stack .tess-frame-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px}
#section-stack .tess-frame{background:#080b09;border:1px solid #2b322d;border-radius:5px;padding:12px;min-width:0}
#section-stack .tess-title{font-size:12px;color:#c9d6cb;margin-bottom:10px;font-weight:650}
#section-stack .tess-frame canvas{display:block;max-height:270px;aspect-ratio:1;width:100%;object-fit:contain;image-rendering:pixelated;background:#070807}
#section-stack .tess-frame small{font-size:11px;color:#9fa8a0;display:block;padding-top:8px}
#section-stack .tess-plot-area{margin:0 18px 18px;padding:14px;background:#0b0e0c;border:1px solid #2a332c;border-radius:5px}
#section-stack .tess-plot-area canvas{display:block;width:100%;height:auto}
#section-stack .tess-note{font-size:11px;color:#abb8ae;line-height:1.8}
#section-stack .tess-field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#cbd5ce;margin-bottom:14px}
#section-stack .tess-field input{height:38px;width:100%;background:#101512;color:#f0f5f1;border:1px solid #3e4840;border-radius:5px;padding:8px 10px}
#section-stack .control-body button{margin-bottom:8px}
@media(max-width:650px){#section-stack .tess-frame-grid{gap:7px;padding:8px}#section-stack .tess-frame{padding:7px}#section-stack .tess-plot-area{margin:8px;padding:7px}}

.mission-real-tools{background:#111612;border:1px solid #334339;padding:18px;margin:0 0 20px;border-radius:8px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mission-real-tools strong{color:#cfe5d5}.mission-real-tools p{flex-basis:100%;margin:0;color:#9baea1;font-size:12px}.mission-real-tools .btn{margin:0;min-height:38px;width:auto;padding:8px 16px}.mission-picker{grid-template-columns:repeat(3,minmax(0,1fr))}.scanner-extra{border:1px solid #35463b;background:#121914;padding:12px;border-radius:6px;margin:12px 0}.scanner-extra label{font-size:12px;color:#c9dbcd;display:flex;gap:8px;align-items:center}.scanner-extra p{font-size:11px;color:#91a99b;line-height:1.6;margin:7px 0 0}.scanner-extra select{padding:6px;background:#161c18;color:#e0eae3;border:1px solid #45574b}.real-data-panel{margin:20px 0;background:#101612;border:1px solid #334339;border-radius:8px;padding:22px}.real-data-panel h3{margin:0 0 8px;font-size:17px;color:#e0ece3}.real-data-panel p{color:#a4b9aa;font-size:12px;line-height:1.7}.real-data-panel .btn{width:auto;min-height:38px;margin:5px 8px 8px 0}.real-data-panel canvas{width:100%;height:260px;display:block;background:#0a0f0b;border:1px solid #2d3b32;border-radius:5px}.real-data-panel .real-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.real-data-panel input[type=file]{max-width:240px;font-size:12px}.real-data-panel .real-caption{margin-top:9px;color:#b6cbbb}.tess-upload-box{border-top:1px solid #334339;margin-top:12px;padding-top:12px}.tess-upload-box input{font-size:12px;max-width:100%;color:#bcd3c3}@media(max-width:750px){.mission-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mask-tools{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.mask-tools .btn{width:auto;flex:1;padding:9px 8px;font-size:11px}.mask-tools [aria-pressed="true"]{background:#3b3027;border-color:#c6946e;color:#f6d4af}#scanner-canvas{touch-action:none}.cc-review-tools{margin-top:13px;padding:14px;border:1px solid #3c4846;border-radius:8px;background:#101614}.cc-review-title{font-weight:750;font-size:13px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.cc-review-tag{color:#aeb9d5;font-size:10px;letter-spacing:.4px}.cc-review-actions{display:flex;gap:6px;flex-wrap:wrap}.cc-review-actions .btn{width:auto;flex:1;min-width:125px;font-size:11px;padding:10px 8px}.cc-review-actions [aria-pressed="true"]{background:#353149;border-color:#aaa1dc;color:#e6e1ff}.cc-zoom-row{display:flex;gap:12px;align-items:center;margin-top:12px}.cc-zoom-row canvas{width:168px;height:168px;flex-shrink:0;background:#07090b;border:1px solid #434d4b;border-radius:5px;image-rendering:pixelated}.cc-zoom-copy{display:flex;flex-direction:column;gap:8px;font-size:11px;color:#b8c9c0;line-height:1.6}.cc-zoom-copy strong{color:#e5f0e9}@media(max-width:580px){.cc-zoom-row{flex-wrap:wrap}.cc-zoom-row canvas{width:132px;height:132px}}#scanner-canvas{touch-action:none}#tess-download{margin:8px 0 12px}.nasa-help{padding:12px;margin:12px 0;border:1px solid #394a44;background:#17201c;border-radius:7px;font-size:12px;line-height:1.7}.nasa-help a{text-decoration:underline;color:#b3d5c4}.tess-help-note{font-size:12px;color:#a9bdb3}
.tess-import-status,.tess-api-diagnostic{padding:12px 13px;margin-top:10px;border:1px solid #516557;border-radius:7px;background:#141d17;color:#d1dccf;font-size:12px;line-height:1.65;overflow-wrap:anywhere}.tess-import-status[data-kind="error"]{background:#271b19;border-color:#b46c58;color:#ffd2c3}.tess-import-status[data-kind="success"]{background:#14291d;border-color:#63af81;color:#ceffe0}.tess-import-status[data-kind="loading"]{border-color:#d0ab67;color:#f6dca6}.tess-import-status[data-kind="sample"]{background:#252116;border-color:#9c8051;color:#e9d7a8}.micro-toggle input{accent-color:#d2a16c;margin-right:7px}
/* CosmoCode / Sky-aware analysis module */
.cc-step{border:1px solid #34443c;background:#121915;padding:12px 13px;border-radius:8px;margin:14px 0}
.cc-step-title{font-size:12px;font-weight:800;letter-spacing:.4px;color:#d4eadb;display:flex;gap:8px;align-items:center;margin-bottom:9px}
.cc-step-title .cc-number{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#30473a;color:#d7f4e4;font-size:11px}
.cc-step .cc-row{display:flex;gap:8px;flex-wrap:wrap}.cc-step .btn{width:auto;flex:1;margin:2px 0 5px;font-size:12px;padding:11px 8px}
.cc-step .btn[aria-pressed=true]{border-color:#9bcaab;background:#213c2c;color:#e2ffed}
.cc-message{padding:10px 11px;border:1px solid #4a6253;border-radius:7px;color:#cadccf;font-size:12px;line-height:1.65;background:#152119;margin:9px 0}
.cc-message[data-level=warn]{border-color:#b78c54;background:#282115;color:#ffe1b4}
.cc-message[data-level=good]{border-color:#6fa787;background:#13251b;color:#d9f3e1}
.cc-label{display:flex;gap:7px;align-items:center;margin:8px 0;font-size:12px;color:#d7e8da}
.cc-label input{accent-color:#b0cbb8}
.cc-legend{display:flex;gap:13px;flex-wrap:wrap;font-size:11px;color:#bbc8bd;margin:8px 0 0}
.cc-circle{display:inline-block;height:10px;width:10px;border:2px solid currentColor;border-radius:50%;margin-right:4px}
.cc-high{color:#7cdec2}.cc-review{color:#e8b67d}.cc-reject{color:#a1a9a4}
.cc-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0}
.cc-stat{border:1px solid #304039;background:#121a16;padding:10px;border-radius:7px;color:#b6c8ba;font-size:11px}
.cc-stat strong{display:block;font-size:18px;color:#edf6ef;line-height:1.5}
#scanner-canvas,#mission-canvas{touch-action:none}
@media(max-width:620px){.cc-stats{grid-template-columns:1fr 1fr}}


/* Interactive local re-scan — keeps image controls distinct and restrained. */
.cc-rescan{margin:12px 0;padding:14px;background:#0d1715;border:1px solid #4a7773;border-radius:8px}
.cc-rescan h3{font-size:13px;color:#d3f1ec;margin:0 0 6px}
.cc-rescan p{font-size:11px;color:#a9bcb7;line-height:1.8;margin:6px 0 11px}
.cc-rescan-actions{display:flex;flex-wrap:wrap;gap:7px}.cc-rescan-actions button{flex:1 1 140px;font-size:11px}
.cc-rescan select{width:100%;padding:9px;margin-bottom:8px;color:#e4f2ee;background:#151d1b;border:1px solid #43544e;border-radius:5px}
.cc-rescan-summary{padding:9px 10px;margin-top:10px;font-size:11px;line-height:1.7;border-left:3px solid #69cdd2;background:#11221f;color:#c5eee8}
.cc-rescan-badge{color:#79d2dc;font-weight:800}
