/* C reference style: royal blue glass, cyan bevels, gold active controls,
   scenery, illustrated icons, and pale classroom fact cards. */
:root{--bg:#043a81;--panel:#0455a6;--line:#51d9ff;--text:#f1fbff;--muted:#c2e8ff;--cyan:#8ceaff;--amber:#ffbd39;--radius:22px}
body{background:#064598 url('../assets/ui/classroom-backdrop.png') center/cover fixed no-repeat}
.app{padding:0 18px 18px;grid-template-rows:92px minmax(0,1fr) 110px;gap:12px}
.topbar{border:0;background:linear-gradient(90deg,#002b7699,#0064b855,#00286077);margin:0 -18px;padding:0 25px;box-shadow:0 3px 14px #003c7b66}
.brand{gap:14px}.brand h1{font-size:clamp(28px,2.85vw,54px);font-style:italic;letter-spacing:3px;color:#fff;text-shadow:0 3px 0 #1a72b2,0 5px 0 #004987,0 7px 10px #003365;line-height:1.2;font-weight:900}.brand p{display:none}.brand-mark{border:0;padding:0;background:none;width:70px;color:#c4f8ff;line-height:1;filter:drop-shadow(0 4px 0 #0869b7)}.brand-mark .lab-icon{width:70px;height:62px;fill:#6bbef177;stroke:#edffff;stroke-width:1.6}
.lab-icon{width:32px;height:32px;display:inline-block;vertical-align:middle;flex-shrink:0;filter:drop-shadow(0 2px 1px #004b7c66)}
.utilities .offline{display:none}.utilities button{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #84e4ff;border-radius:16px;background:linear-gradient(#0873bf,#004078 50%,#005b9d);box-shadow:inset 0 0 10px #49bcff77,0 2px 6px #001d73;min-width:125px;font-weight:700;font-size:19px;letter-spacing:2px}.utilities button .lab-icon{width:25px;height:25px}
.workspace{grid-template-columns:minmax(230px,17fr) minmax(0,53fr) minmax(350px,26fr);gap:14px}.workspace.climate-layout{grid-template-columns:205px minmax(0,1fr) 520px}
.panel{border:2px solid #62dfff;border-radius:22px;background:linear-gradient(130deg,#0a65beeb,#00498bee 46%,#003a85eb);box-shadow:inset 0 0 0 4px #0785dc66,inset 0 0 24px #15b6f344,0 0 7px #2ae1ffcc,0 0 18px #027fff77;position:relative}
.panel:before{content:'';position:absolute;left:22px;right:22px;top:0;height:3px;background:linear-gradient(90deg,transparent,#b1ffff,transparent);pointer-events:none}
.controls,.feedback{padding:14px 13px;scrollbar-color:#5cd9ff #064482}.section-heading{border:1px solid #4dcaff;border-radius:15px;padding:12px 10px;margin-bottom:13px;background:linear-gradient(120deg,#168de2,#0053a1 65%,#053b82);box-shadow:inset 0 0 10px #2cbafa66,0 2px 6px #003770;gap:8px;min-height:65px}.section-heading h2{font-size:clamp(20px,1.7vw,29px);font-weight:900;font-style:italic;text-shadow:0 3px 1px #0b377d;white-space:nowrap}.section-heading>span:first-child{color:#8eeaff}.section-heading .lab-icon{width:37px;height:42px}.signal{background:none;box-shadow:none;border-radius:0;width:auto;height:auto;display:flex}
.intro{position:relative;border:1px solid #47caff;border-radius:14px;box-shadow:inset 0 0 12px #31a8ff66;background:linear-gradient(110deg,#046ab3,#003d85);padding:15px 12px 15px 47px;color:white;font-size:16px;line-height:1.65;margin-bottom:13px}.intro>.lab-icon{position:absolute;left:10px;top:17px;width:29px;height:29px;color:#83e8ff}.intro>strong{display:block;font-size:20px;margin-bottom:4px}
button{border:1px solid #69d4ff;color:#f3fbff;background:linear-gradient(#087dcc,#00458d 55%,#0769b6);box-shadow:inset 0 0 8px #36c5ff55,0 2px 7px #00327888;border-radius:14px}button:hover{background:linear-gradient(#2ba3e9,#045eae);border-color:#c7ffff;box-shadow:inset 0 0 15px #71e6ff77,0 0 12px #40bdff77}button:focus-visible{outline:3px solid white;outline-offset:3px}
button.active,button[aria-pressed=true]:not(.quiet){color:#fff;background:linear-gradient(#ffc231,#f69a00 55%,#ffb421);border-color:#fff7cf;text-shadow:0 2px 2px #a75700;box-shadow:inset 0 0 13px #fff8b9,0 0 0 2px #fff4aa99,0 0 17px #ffb814dd;font-weight:900}
.stack{gap:10px}.choice{min-height:63px;padding:9px 11px;font-size:21px;font-weight:700;border-radius:16px;gap:13px}.choice .swatch{width:42px;height:44px;border-radius:10px;border:1px solid #d7f7ff99;background:var(--swatch);box-shadow:inset 0 0 10px #fff3,0 2px 6px #00387566}.choice .check{display:none}.choice .choice-decoration{margin-left:auto;width:36px;height:37px;color:#84d8ff;opacity:.9}.choice[aria-pressed=true] .choice-decoration{color:#fff1cc}.choice[aria-pressed=true]:after{content:'›';font-size:28px;font-weight:900;margin-left:0}.choice[data-region=wet][aria-pressed=true]{background:linear-gradient(#a4d747,#4aa11d 55%,#2b8509)}
.choice[data-season]{gap:12px}.choice[data-season]>.lab-icon{width:35px;height:35px}.choice[data-season]:after{display:none}.note{color:#c3e9ff;font-size:13px;background:#00418877;border:1px solid #3ab3f777;border-radius:12px;line-height:1.7;padding:12px}.subhead{color:#d1efff;font-size:14px;font-weight:700;margin:16px 0 10px}.primary{background:linear-gradient(#169ee6,#0066af);border-color:#9decff}.primary .lab-icon{width:28px;height:28px;margin-right:10px}
.map-panel{background:#0360ac;box-shadow:inset 0 0 0 6px #008ef299,0 0 14px #00caffaa;border:2px solid #77eaff}.map-header{padding:7px 13px;background:linear-gradient(#0679c9,#03458d);border-bottom:1px solid #62d6ff;min-height:49px}.map-header h2{font-size:21px;margin:0;letter-spacing:1px;font-style:italic}.map-header .eyebrow{display:none}.map-header .quiet{min-height:38px;padding:6px 12px;color:#d6f5ff;border-color:#55c2ef;font-size:12px}.map-viewport{padding:8px;background:linear-gradient(145deg,#0c88d4,#03549b);}.map-stage{box-shadow:0 0 0 3px #7adeff,0 0 12px #a1eaff99;background:white}.map-stage>#mapImage{filter:saturate(1.5) contrast(1.035) brightness(1.015)}.map-stage.selected>#mapImage{filter:grayscale(.98) brightness(.63)}.map-stage #highlight:not(.wind-highlight){opacity:1;mix-blend-mode:normal;filter:saturate(1.8) contrast(1.04) brightness(1.06);animation:focusRegion .22s ease-out}.map-stage.show-original>#mapImage{filter:none!important}.map-stage #highlight.wind-highlight{mix-blend-mode:screen;filter:none}.map-footer{padding:9px 13px;color:#dbf5ff;border-top:1px solid #4ecfff;min-height:38px;font-size:12px;background:#00468c}.source-tag{color:#97eaff}
.season-tabs{position:absolute;left:50%;top:8px;transform:translateX(-50%);z-index:3;display:flex;gap:0;border:3px solid #5eeaff;border-radius:22px;box-shadow:0 0 14px #1689ff;background:#014c97;overflow:hidden}.season-tabs button{min-width:140px;min-height:52px;border-radius:0;display:flex;gap:10px;align-items:center;justify-content:center;font-size:23px;font-weight:800;padding:7px 18px}.season-tabs button .lab-icon{width:30px;height:30px}.season-tabs button[aria-pressed=true]{border:1px solid #fff0aa;box-shadow:inset 0 0 15px #fff5ab;}
body[data-lab-mode=monsoon] .map-viewport{padding-top:72px}body[data-lab-mode=monsoon] .workspace{grid-template-columns:190px minmax(0,1fr) 420px}.season-status{position:absolute;bottom:6px;right:7px;background:#004c8add;padding:7px 12px;border:1px solid #72d7fb;border-radius:8px;font-size:13px;line-height:1.2;color:white;box-shadow:0 2px 7px #003e77}
.info-title{display:flex;align-items:center;justify-content:center;gap:15px;margin:0 0 10px;padding:12px 5px;border:1px solid #ffe5a2;border-radius:16px;background:linear-gradient(110deg,#e79b18,#eeba59,#986219);color:#fff;font-size:35px;font-weight:900;font-style:italic;text-shadow:0 3px 2px #ac5c0a;box-shadow:inset 0 0 15px #fff9ce55,0 0 12px #ffb62866}.info-title .lab-icon{width:44px;height:44px}.info-title[style*='9bcb6c']{background:linear-gradient(110deg,#5e9d15,#76b42d,#326e12);border-color:#bfe399;text-shadow:0 3px 2px #2d5708}
.region-scenery{height:clamp(110px,14vh,175px);border:3px solid #edffff;border-radius:16px;margin-bottom:11px;background-image:url('../assets/ui/温度带.png');background-size:428.7% auto;background-position:97.5% 23.2%;box-shadow:0 2px 8px #003975}
.fact-block{display:grid;grid-template-columns:42% 1fr;gap:12px;align-items:center;background:linear-gradient(120deg,#fffdf8,#fff0f4);border:1px solid white;border-radius:15px;padding:10px;margin:0 0 9px;min-height:83px;box-shadow:0 3px 10px #002c6866;color:#0c2861}.fact-block h3{display:flex;align-items:center;gap:7px;color:#fa4f15;font-size:17px;margin:0;padding:8px;border-radius:10px;background:linear-gradient(100deg,#ffe4cb,#fff2df);letter-spacing:0;font-weight:800;line-height:1.5}.fact-block h3 .lab-icon{width:27px;height:32px}.fact-block p{font-size:18px;font-weight:600;line-height:1.5}.fact-block:nth-of-type(2) h3{color:#0656c2;background:linear-gradient(100deg,#d5e8ff,#edf4ff)}
.wind-card{background:linear-gradient(110deg,#ffeefb,#f7f7ff);border:2px solid #bceeff;border-radius:20px;padding:15px 18px;margin-bottom:14px;color:#113272;box-shadow:0 0 15px #66b4ff88,inset 0 0 12px #ffc3e944}.wind-card h3{display:flex;align-items:center;gap:9px;color:#f40063;font-size:27px;margin-bottom:11px;font-weight:900}.wind-card h3 .lab-icon{width:29px;height:29px}.facts{grid-template-columns:58px 1fr;gap:9px 12px;font-size:18px}.facts dt{border-radius:9px;background:linear-gradient(#b8ecff,#a1ddf7);color:#0755b2;text-align:center;font-weight:900;padding:3px 5px}.facts dd{font-weight:700;padding:3px 0}
.wind-card{position:relative;overflow:hidden}.wind-card:after{content:'';position:absolute;right:0;bottom:0;width:44%;height:60%;background:linear-gradient(90deg,#f7f7ff,transparent 60%),url('../assets/ui/canva-scenery.jpg') center/cover;opacity:.42;pointer-events:none}.wind-card>*{position:relative;z-index:1}
.task{border:1px solid #3bc5ff;border-radius:17px;background:linear-gradient(120deg,#003977ee,#003060e6);padding:13px;box-shadow:inset 0 0 10px #11b0f333;margin-top:13px}.task h3{font-size:20px;font-weight:900;font-style:italic;color:#eefaff;display:flex;align-items:center;gap:8px;margin-bottom:10px}.task h3 .lab-icon{width:27px;height:28px;color:#9ee7ff}.task p{color:#edf7ff;font-size:16px;line-height:1.6}.answer{color:#eeffff;border:1px solid #80e0ee;border-left:4px solid #8dfcbb;border-radius:8px;background:#00595d99;font-size:15px}.answer.wrong{background:#704900bd;border-color:#ffd075;color:#fff5df}.quiz-answers button{font-size:15px;min-height:48px}.empty-state{background:#06458299;border:1px solid #41baf6;color:#bee6ff;box-shadow:inset 0 0 20px #087edf55}.empty-state strong{font-style:italic;text-shadow:0 2px #01417c}.empty-count{filter:drop-shadow(0 3px 1px #00458b)}
.mode-nav{background:linear-gradient(#005ba7bb,#014175bb);border:2px solid #4fd6ff;border-radius:36px;padding:8px 25px;width:min(1470px,94%);gap:18px;box-shadow:0 0 0 5px #0088c244,inset 0 0 16px #3cb4ff,0 0 18px #00b7ff66}.mode-nav button{grid-template-columns:55px 1fr;column-gap:16px;min-height:80px;padding:8px 16px;border-radius:23px;border:1px solid #60daff;background:linear-gradient(#078bd8,#0058a9 50%,#0875be);box-shadow:inset 0 0 12px #51baff99,0 3px 8px #00377d}.mode-nav button>span{color:#a5ecff}.mode-nav button>span .lab-icon{width:49px;height:49px;stroke-width:2.1}.mode-nav strong{font-size:26px;text-shadow:0 2px #004a83;font-weight:900}.mode-nav small{color:#c2eaff;font-size:12px;letter-spacing:1px}.mode-nav button.active{color:white;background:linear-gradient(#ffd752,#ef9200 45%,#ffb91c);border-color:white;box-shadow:inset 0 0 12px #fff6ae,0 0 0 2px #ffffdd66,0 0 20px #ffe556bb}.mode-nav button.active span,.mode-nav button.active small{color:#fffbe3}.mode-nav button.active strong{text-shadow:0 2px #a1570e}
.city-list{gap:7px}.city-list button{display:flex;align-items:center;justify-content:center;gap:5px;font-size:15px;font-weight:700}.city-list .lab-icon{width:18px;height:21px;stroke:#a7e4ff;fill:#77c8ee33}.selection-count{color:#d0efff}.selection-count strong{color:#ffdf74}.legend-list button{font-size:14px;border-radius:10px}.legend-list i{width:17px;height:21px;box-shadow:0 1px 4px #003b73;border:1px solid #eefaff55}.controls .note{margin-top:14px}.climate-feedback .section-heading h2{font-size:27px}.climate-feedback .section-heading{min-height:64px;margin-bottom:9px}.compare-toolbar{color:#d3edff}.compare-toolbar button{font-size:13px}.chart-card{border:1px solid #53d2ff;border-radius:17px;background:linear-gradient(#003b72,#003966);box-shadow:inset 0 0 15px #1499cc55}.chart-heading h3{font-size:24px;font-weight:900;color:#fff;text-shadow:0 2px #003467}.chart-type{font-size:13px;color:#ffdf99;font-weight:700}.chart-caption{color:#b3e5ff}.charts.multi .chart-heading h3{font-size:22px}.charts.multi .chart-type{font-size:12px}.remove-city{box-shadow:none;background:none;border-radius:8px}.climate-feedback .chart-open{background:#fffdf9}.climate-feedback .chart-open:hover{background:#fffdf9}.climate-feedback .task{border:1px solid #61dcff}.climate-feedback .task h3{font-size:19px}.climate-feedback .task p{font-size:15px}.climate-feedback .primary{font-size:17px;min-height:48px}
@keyframes focusRegion{from{opacity:.6}to{opacity:1}}
@media(min-width:1800px){.app{grid-template-rows:100px minmax(0,1fr) 114px;padding:0 22px 18px;gap:15px}.topbar{margin:0 -22px}.controls,.feedback{padding:17px 15px}.workspace{grid-template-columns:300px minmax(0,1fr) 450px}.workspace.climate-layout{grid-template-columns:230px minmax(0,1fr) 540px}.choice{min-height:72px;font-size:24px}.choice .swatch{width:48px;height:48px}.intro{font-size:19px}.section-heading{min-height:74px}.fact-block{min-height:92px}.fact-block p{font-size:21px}.fact-block h3{font-size:19px}.wind-card{padding:20px}.facts{font-size:21px;gap:13px}.wind-card h3{font-size:31px}body[data-lab-mode=monsoon] .workspace{grid-template-columns:200px minmax(0,1fr) 470px}.mode-nav{width:1510px}.mode-nav strong{font-size:29px}.info-title{font-size:40px}.legend-list button{font-size:15px}}
@media(max-width:1500px){.workspace{grid-template-columns:230px minmax(0,1fr) 340px}.workspace.climate-layout{grid-template-columns:185px minmax(0,1fr) 390px}body[data-lab-mode=monsoon] .workspace{grid-template-columns:150px minmax(0,1fr) 350px}.choice{font-size:18px;min-height:56px;gap:9px}.choice .swatch{width:33px;height:35px}.choice .choice-decoration{width:27px}.section-heading{min-height:58px}.section-heading h2{font-size:21px}.section-heading .lab-icon{width:29px;height:34px}.intro{font-size:14px;padding:11px 10px 11px 40px}.intro>strong{font-size:17px}.fact-block{grid-template-columns:38% 1fr;padding:8px;gap:8px;min-height:76px}.fact-block h3{font-size:14px;display:block}.fact-block h3 .lab-icon{width:20px;height:24px;margin-right:5px}.fact-block p{font-size:16px}.region-scenery{height:100px}.info-title{font-size:30px;padding:8px}.wind-card{padding:12px}.wind-card h3{font-size:23px}.facts{font-size:16px;gap:8px}.mode-nav strong{font-size:22px}.mode-nav{gap:12px;padding:8px 18px}.mode-nav button{grid-template-columns:38px 1fr;column-gap:10px;min-height:72px}.mode-nav button>span .lab-icon{width:37px;height:40px}.mode-nav small{font-size:11px}.topbar{padding:0 18px}.utilities button{font-size:16px;min-width:100px}.brand h1{letter-spacing:1px}.brand-mark,.brand-mark .lab-icon{width:54px;height:48px}}
@media(max-height:800px) and (min-width:981px){.app{grid-template-rows:76px minmax(0,1fr) 86px;gap:9px;padding-bottom:12px}.brand h1{font-size:36px}.controls,.feedback{padding:10px}.section-heading{padding:8px;margin-bottom:9px;min-height:50px}.choice{min-height:48px;font-size:17px;padding:7px 9px}.choice .swatch{width:30px;height:30px}.stack{gap:7px}.intro{padding-top:8px;padding-bottom:8px;margin-bottom:9px;font-size:13px;line-height:1.5}.region-scenery{height:80px}.info-title{font-size:26px;padding:6px;margin-bottom:7px}.fact-block{min-height:64px;margin-bottom:7px;padding:6px}.fact-block p{font-size:14px}.fact-block h3{font-size:13px}.note{display:none}.task{padding:9px;margin-top:9px}.task p{font-size:13px;margin-bottom:8px}.task h3{font-size:17px;margin-bottom:6px}.mode-nav{padding:6px 18px}.mode-nav button{min-height:63px}.mode-nav strong{font-size:21px}.wind-card{padding:12px;margin-bottom:10px}.wind-card h3{font-size:22px}.facts{font-size:15px;gap:7px}.city-list button{min-height:44px;font-size:12px}.legend-list button{font-size:12px}.subhead{margin:10px 0 8px;font-size:12px}.chart-heading h3,.charts.multi .chart-heading h3{font-size:18px}.climate-feedback .task h3{font-size:16px}.climate-feedback .task p{font-size:12px}.chart-caption{display:none}.climate-feedback .primary{min-height:44px;font-size:14px}.season-tabs button{min-height:46px;min-width:110px;font-size:20px}body[data-lab-mode=monsoon] .map-viewport{padding-top:62px}}
@media(max-width:980px){.app{padding:0 10px 110px;gap:12px}.topbar{margin:0 -10px;min-height:80px;padding:0 14px}.workspace,.workspace.climate-layout,body[data-lab-mode=monsoon] .workspace{grid-template-columns:220px minmax(0,1fr);grid-template-rows:580px auto}.brand h1{font-size:29px}.brand-mark{display:none}.mode-nav{border-radius:24px;left:10px;right:10px;width:calc(100% - 20px);gap:8px;padding:7px 10px}.mode-nav button{min-height:67px;grid-template-columns:1fr;text-align:center;padding:8px;border-radius:16px}.mode-nav strong{font-size:17px}.mode-nav button>span,.mode-nav small{display:none}.feedback .region-scenery{height:160px}.fact-block{min-height:86px}.fact-block p{font-size:19px}.fact-block h3{font-size:18px;display:flex}.chart-caption{display:block}}
@media(max-width:620px){.app{padding:0 8px 105px}.topbar{margin:0 -8px;min-height:76px}.brand h1{font-size:21px}.utilities button{min-width:52px;padding:8px;font-size:12px;letter-spacing:0}.utilities button .lab-icon{display:none}.workspace,.workspace.climate-layout,body[data-lab-mode=monsoon] .workspace{display:flex;flex-direction:column}.mode-nav{padding:7px;gap:6px}.mode-nav strong{font-size:13px}.mode-nav button{min-height:57px}.intro{display:none}.section-heading h2{font-size:22px}.controls .stack{grid-template-columns:1fr 1fr}.choice{font-size:16px}.choice .choice-decoration{display:none}.map-header h2{font-size:19px}.season-tabs button{min-width:100px;font-size:19px}.map-viewport{padding:7px}.map-panel{height:490px}.city-list{grid-template-columns:repeat(3,1fr)}.fact-block{grid-template-columns:37% 1fr}.fact-block p{font-size:17px}.region-scenery{height:125px!important}.chart-caption{font-size:10px}}
@media(prefers-reduced-motion:reduce){.map-stage #highlight{animation:none!important}}
