:root{--ink:#173043;--muted:#6d7f8b;--navy:#123047;--mint:#2ec99d;--lime:#b7df57;--gold:#ffca57;--paper:#f5f8f4;--white:#fff;--shadow:0 16px 45px #17304320;--radius:22px;font-family:Inter,ui-rounded,"SF Pro Rounded",system-ui,sans-serif;color:var(--ink)}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% 0,#d9f5e5 0,transparent 30%),linear-gradient(#eef8f5,#f7f3e8);overflow-x:hidden}button,input,select{font:inherit}button{color:inherit}.topbar{height:74px;background:#fff;border-bottom:1px solid #dce8e3;display:flex;align-items:center;padding:8px clamp(12px,2vw,28px);gap:20px;position:sticky;top:0;z-index:20;box-shadow:0 6px 22px #17304310}.brand{border:0;background:transparent;display:flex;align-items:center;text-align:left;gap:10px;padding:0;min-width:190px;cursor:pointer}.brand-mark{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--mint),#1689b2);color:#fff;font-size:25px;font-weight:900;display:grid;place-items:center;box-shadow:0 6px 12px #2ec99d55}.brand b,.brand small{display:block}.brand b{font-size:16px}.brand small{font-size:11px;color:var(--muted)}.stats{display:flex;justify-content:center;flex:1;gap:clamp(4px,1vw,14px)}.stat{min-width:78px;padding:5px 9px;border-radius:13px;background:#f3f7f5;display:grid;grid-template-columns:auto auto;column-gap:5px;align-items:center}.stat>span{grid-row:1/3;font-size:19px}.stat b{font-size:14px}.stat small{font-size:9px;color:var(--muted);text-transform:uppercase}.top-actions{display:flex;gap:7px}.icon-btn{width:42px;height:42px;border-radius:13px;border:1px solid #dce8e3;background:#fff;cursor:pointer}.world-head{max-width:1800px;margin:auto;padding:20px clamp(16px,3vw,44px) 14px;display:flex;justify-content:space-between;align-items:end}.eyebrow{font-size:10px;letter-spacing:.15em;font-weight:900;color:#179479;margin:0 0 5px}.world-head h1{font-size:clamp(25px,3vw,40px);margin:0;letter-spacing:-.04em}.world-head p:not(.eyebrow){margin:4px 0;color:var(--muted)}.weather{display:grid;grid-template-columns:auto auto;gap:0 8px;align-items:center;background:#ffffffbb;border:1px solid #fff;padding:8px 14px;border-radius:16px}.weather>span{font-size:28px;grid-row:1/3}.weather b{font-size:13px}.weather small{font-size:11px;color:var(--muted)}.workspace{max-width:1800px;margin:auto;padding:0 clamp(10px,2vw,28px) 28px;display:grid;grid-template-columns:245px minmax(500px,1fr) 285px;gap:14px}.glass{background:#ffffffd9;backdrop-filter:blur(18px);border:1px solid #fff;border-radius:var(--radius);box-shadow:var(--shadow);padding:14px;min-height:0}.panel-title{display:flex;justify-content:space-between;align-items:center;font-weight:850;font-size:13px;margin-bottom:12px}.panel-title>span{font-weight:500;font-size:10px;color:var(--muted)}.live-dot{display:inline-block;width:8px;height:8px;background:var(--mint);border-radius:50%;box-shadow:0 0 0 4px #2ec99d22}.mini{border:0;background:#e5f6ef;color:#168f71;border-radius:9px;padding:6px 9px;font-size:11px;font-weight:800;cursor:pointer}.city-list{display:grid;gap:6px;max-height:270px;overflow:auto}.city-item{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;text-align:left;border:1px solid transparent;background:transparent;padding:8px;border-radius:13px;cursor:pointer}.city-item:hover{background:#f2f8f5}.city-item.active{background:#e4f5ee;border-color:#bfe8d7}.city-item>span:first-child{font-size:23px}.city-item b,.city-item small{display:block}.city-item b{font-size:12px}.city-item small{font-size:9px;color:var(--muted)}.city-item em{font-style:normal;color:#1ba682}.goal-card{background:linear-gradient(135deg,#173f52,#205f65);color:#fff;border-radius:17px;padding:13px;margin:14px 0}.goal-card>div{display:flex;gap:7px;align-items:center}.goal-card p{font-size:10px;color:#d3e9e4}.goal-card small{display:block;text-align:right;font-size:9px}.progress{height:7px;background:#ffffff26;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--lime));border-radius:inherit;transition:width .4s}.math-launch{border:0;width:100%;display:grid;grid-template-columns:42px 1fr auto;align-items:center;text-align:left;padding:12px 10px;border-radius:17px;background:linear-gradient(135deg,#ffd76d,#ffb83e);box-shadow:0 8px 20px #f2a62a40;cursor:pointer}.math-launch>span:first-child{font-size:28px}.math-launch b,.math-launch small{display:block}.math-launch b{font-size:12px}.math-launch small{font-size:9px;color:#73551b}.math-launch em{font-style:normal}.map-shell{min-width:0}.map-tools{height:48px;display:flex;align-items:center;justify-content:space-between;background:#ffffffd9;padding:6px 10px;border-radius:16px 16px 0 0;border:1px solid #fff}.tool-group{display:flex;gap:6px}.tool{border:0;border-radius:10px;padding:7px 11px;background:#edf3f0;font-size:11px;font-weight:800;cursor:pointer}.tool.active{background:var(--navy);color:#fff}.zoom-note{font-size:10px;color:var(--muted)}.map{aspect-ratio:10/8;display:grid;grid-template-columns:repeat(10,1fr);border:9px solid #fff;border-radius:0 0 25px 25px;overflow:hidden;box-shadow:var(--shadow);position:relative;background:#cbe6bf}.tile{min-width:0;position:relative;border:1px solid #ffffff2e;padding:0;background:transparent;cursor:pointer;overflow:hidden}.tile .ground{position:absolute;inset:0;background:linear-gradient(135deg,#9fce8d,#87bd78);transition:.2s}.biome-coast .tile .ground{background:linear-gradient(135deg,#b9dc9a,#93c782)}.biome-suburb .tile .ground{background:linear-gradient(135deg,#9bce86,#7eba73)}.biome-industrial .tile .ground{background:linear-gradient(135deg,#b8c5af,#9bac99)}.biome-recreation .tile .ground{background:linear-gradient(135deg,#a9d58c,#83bd73)}.tile:nth-child(5n) .ground{filter:brightness(1.04)}.tile:hover .ground{filter:brightness(1.14)}.tile .plus{position:relative;z-index:2;opacity:0;color:#fff;font-size:24px}.tile:hover .plus{opacity:.7}.building-emoji{position:relative;z-index:3;display:block;font-size:clamp(22px,3.5vw,49px);filter:drop-shadow(0 7px 5px #17304344);transform:translateY(4px);transition:.2s}.tile:hover .building-emoji{transform:translateY(0) scale(1.08)}.building-name{position:absolute;z-index:4;bottom:3px;left:3px;right:3px;font-size:clamp(6px,.68vw,10px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#ffffffc9;border-radius:6px;padding:2px}.tile.road .ground{background:linear-gradient(135deg,#64727a,#536067)}.tile.road:after{content:"";position:absolute;left:0;right:0;top:46%;height:7%;background:repeating-linear-gradient(90deg,#fff3a5 0 12%,transparent 12% 22%);opacity:.8}.tile.water .ground{background:repeating-radial-gradient(ellipse at 30% 30%,#80e0ef 0 8%,#45b9d3 9% 18%)}.build-panel{display:flex;flex-direction:column}.category-tabs{display:flex;gap:5px;overflow:auto;padding-bottom:8px;scrollbar-width:none}.cat{white-space:nowrap;border:1px solid #dce8e3;background:#fff;border-radius:10px;padding:6px 9px;font-size:9px;font-weight:800;cursor:pointer}.cat.active{background:#173f52;color:#fff;border-color:#173f52}.catalog{overflow:auto;display:grid;gap:6px;padding-right:2px;max-height:calc(100vh - 255px)}.build-card{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;text-align:left;background:#f7faf8;border:2px solid transparent;border-radius:14px;padding:7px;cursor:pointer}.build-card:hover,.build-card.selected{border-color:var(--mint);background:#effaf5}.build-card.locked{opacity:.48}.build-icon{font-size:27px;background:#fff;border-radius:10px;width:40px;height:40px;display:grid;place-items:center}.build-card b,.build-card small{display:block}.build-card b{font-size:11px}.build-card small{font-size:8px;color:var(--muted);margin-top:3px}.build-card em{font-style:normal;font-size:9px;font-weight:900;color:#b0760d}.toast{position:fixed;z-index:100;left:50%;bottom:30px;transform:translate(-50%,30px);background:#173043;color:#fff;border-radius:14px;padding:11px 18px;opacity:0;pointer-events:none;transition:.25s;box-shadow:var(--shadow);font-size:13px}.toast.show{opacity:1;transform:translate(-50%,0)}.toast.ok{background:#146f59}.toast.bad{background:#a94040}.modal{position:fixed;z-index:80;inset:0;background:#0c2339aa;backdrop-filter:blur(8px);display:grid;place-items:center;padding:18px;overflow:auto}.modal.hidden,.hidden{display:none!important}.modal-card{width:min(570px,100%);max-height:95vh;overflow:auto;background:#fff;border-radius:28px;padding:clamp(22px,4vw,38px);box-shadow:0 30px 90px #05162966;position:relative}.modal-card h2{font-size:clamp(24px,4vw,37px);line-height:1.05;margin:5px 0 12px;letter-spacing:-.04em}.modal-card p{color:var(--muted)}.close{position:absolute;right:15px;top:14px;border:0;background:#edf2ef;width:36px;height:36px;border-radius:50%;font-size:25px;cursor:pointer}.welcome-card{text-align:center}.hero-city{height:115px;border-radius:22px;background:linear-gradient(#c8f5ed,#9fe1c3);font-size:68px;display:flex;align-items:end;justify-content:center;margin-bottom:22px;overflow:hidden}.hero-city i{font-style:normal;font-size:36px}label{display:grid;gap:6px;text-align:left;font-size:11px;font-weight:850;margin:17px 0}input,select{border:1px solid #cfddd7;border-radius:12px;padding:12px;background:#f8fbf9;outline:0}input:focus,select:focus{border-color:var(--mint);box-shadow:0 0 0 3px #2ec99d22}.primary,.secondary,.danger{border:0;border-radius:13px;padding:12px 17px;font-weight:850;cursor:pointer}.primary{background:linear-gradient(135deg,var(--mint),#159579);color:#fff;width:100%;box-shadow:0 8px 20px #2ec99d45}.secondary{background:#edf3f0}.danger{background:#ffeded;color:#b53333}.welcome-card>small{display:block;color:var(--muted);font-size:9px;margin-top:13px}.math-card{width:min(700px,100%)}.math-top{display:flex;justify-content:space-between}.streak{background:#fff4df;border-radius:16px;padding:8px 15px;display:grid;grid-template-columns:auto auto;gap:0 5px;align-items:center}.streak small{grid-column:1/3;text-align:center;font-size:9px}.problem{font-size:clamp(30px,6vw,55px);font-weight:950;text-align:center;padding:40px 8px 27px}.answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answers button{border:2px solid #e2ebe7;background:#f8fbf9;border-radius:16px;padding:17px;font-size:21px;font-weight:900;cursor:pointer}.answers button:hover{border-color:var(--mint)}.answers button.correct{background:#dff8ec;border-color:#31bd8c}.answers button.wrong{background:#ffe4e4;border-color:#e95d5d}.math-feedback{text-align:center;padding:15px;font-size:12px}.math-feedback.good{color:#168765}.math-feedback.bad{color:#ba3f3f}.math-foot{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e6eeea;padding-top:14px}.biome-picker{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 20px}.biome-option{display:grid;grid-template-columns:40px 1fr;text-align:left;border:2px solid #e4ece8;background:#f8fbf9;border-radius:15px;padding:10px}.biome-option.active{border-color:var(--mint);background:#eaf9f3}.biome-option span{font-size:27px;grid-row:1/3}.biome-option b{font-size:11px}.biome-option small{font-size:9px;color:var(--muted)}.parent-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.parent-stats>div{background:#f2f7f4;border-radius:15px;padding:13px}.parent-stats b,.parent-stats span{display:block}.parent-stats b{font-size:21px}.parent-stats span{font-size:9px;color:var(--muted)}.parent-actions{display:flex;flex-wrap:wrap;gap:8px}.file-btn{position:relative}.file-btn input{position:absolute;inset:0;opacity:0;width:100%;cursor:pointer}.error{color:#b53333!important;font-size:11px}
@media(max-width:1150px){.workspace{grid-template-columns:205px 1fr}.build-panel{grid-column:1/3}.catalog{grid-template-columns:repeat(4,1fr);max-height:245px}.stats .stat:nth-last-child(-n+2){display:none}}
@media(max-width:760px){body{overflow:auto}.topbar{height:auto;flex-wrap:wrap;gap:8px}.brand{min-width:150px}.stats{order:3;width:100%;overflow:auto;justify-content:flex-start}.stat{min-width:72px}.world-head{padding-top:12px}.weather{display:none}.workspace{display:flex;flex-direction:column;padding:0 8px 18px}.side-panel{order:2}.map-shell{order:1}.build-panel{order:3}.map{border-width:5px}.map-tools{height:auto;gap:5px;flex-wrap:wrap}.zoom-note{display:none}.catalog{grid-template-columns:1fr 1fr;max-height:none}.city-list{max-height:180px}.modal{align-items:start}.parent-stats{grid-template-columns:1fr 1fr}.math-foot{gap:8px;align-items:flex-start;flex-direction:column}.world-head h1{font-size:27px}.building-name{display:block;font-size:clamp(6px,1.55vw,10px);padding:1px 2px;bottom:1px}.building-emoji{font-size:clamp(18px,6vw,38px)}}
@media(max-width:430px){.catalog{grid-template-columns:1fr}.answers{grid-template-columns:1fr 1fr}.biome-picker{grid-template-columns:1fr}.stat{min-width:68px}.brand small{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.math-feedback{min-height:62px;line-height:1.5}.math-feedback.good{background:#edfaf5;border-radius:13px}.math-feedback.bad{background:#fff1f1;border-radius:13px}.math-feedback.hint{color:#74530b;background:#fff8df;border-radius:13px}.math-top>div>small{color:var(--muted);font-size:9px}.skills-report{grid-column:1/-1!important;background:#f8fbf9!important;border-radius:17px;padding:14px!important}.skills-report h3{margin:0 0 10px}.skill-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:7px 0;border-bottom:1px solid #e6eeea}.skill-row:last-child{border:0}.skill-row span{font-weight:800!important;color:var(--ink)!important}.skill-row small{font-size:8px;color:var(--muted)}.skill-row i{grid-column:1/-1;height:5px;background:#e0ebe6;border-radius:9px;overflow:hidden}.skill-row em{display:block;height:100%;background:linear-gradient(90deg,var(--mint),var(--lime))}
.title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.name-edit{border:1px solid #cfe1da;background:#ffffffbb;border-radius:9px;padding:5px 8px;font-size:10px;font-weight:800;cursor:pointer}.name-edit:hover{border-color:var(--mint)}#districtLine{display:flex;align-items:center;gap:7px;margin:4px 0!important;color:#257564!important}.street-label{background:#fff4b8!important;color:#173043!important;font-weight:900!important;transform:rotate(-2deg)}.answers.input-mode{display:grid;grid-template-columns:1fr auto;align-items:end}.answers.input-mode label{grid-column:1/-1;margin:0;font-size:12px}.answers.input-mode input{font-size:22px;font-weight:900;min-width:0;height:58px}.answers.input-mode .answer-submit{height:58px;background:linear-gradient(135deg,var(--mint),#159579);color:#fff;border-color:transparent;padding-inline:24px}.answers.input-mode.answered input{pointer-events:none;opacity:.75}@media(max-width:520px){.answers.input-mode{grid-template-columns:1fr}.answers.input-mode .answer-submit{width:100%}}
.periodic-launch{border:1px solid #b8e2d7;width:100%;display:grid;grid-template-columns:42px 1fr auto;align-items:center;text-align:left;padding:10px;border-radius:17px;background:linear-gradient(135deg,#e4fbf4,#d8f0ff);cursor:pointer;margin:0 0 9px}.periodic-launch>span:first-child{font-size:27px}.periodic-launch b,.periodic-launch small{display:block}.periodic-launch b{font-size:12px}.periodic-launch small{font-size:9px;color:#53716a}.periodic-launch em{font-style:normal}.periodic-card{width:min(1180px,98vw)}.periodic-legend{display:flex;flex-wrap:wrap;gap:5px 11px;margin:10px 0;font-size:9px}.periodic-legend span{display:flex;align-items:center;gap:4px}.periodic-legend i{width:10px;height:10px;border-radius:3px}.periodic-table{display:grid;grid-template-columns:repeat(18,minmax(45px,1fr));grid-template-rows:repeat(10,62px);gap:3px;overflow:auto;padding:4px;min-width:900px}.element-cell{border:0;border-radius:7px;padding:3px;display:grid;grid-template-columns:1fr auto;text-align:left;cursor:pointer;min-width:0;color:#173043}.element-cell:hover{outline:3px solid #173043;transform:scale(1.08);z-index:2}.element-cell small{font-size:8px}.element-cell b{font-size:20px;grid-column:1/-1;text-align:center;line-height:20px}.element-cell em{font-style:normal;font-size:7px;grid-column:1/-1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.element-detail{margin-top:12px;border-radius:17px;background:#eff8f4;padding:14px;display:flex;align-items:center;gap:16px;min-height:88px}.detail-symbol{width:65px;height:65px;border-radius:13px;background:#2b9b82;color:#fff;display:grid;place-items:center;font-size:33px;font-weight:950}.element-detail h3,.element-detail p{margin:3px 0}.element-detail p{font-size:11px}@media(max-width:760px){.periodic-card{padding:18px}.periodic-table{grid-template-columns:repeat(18,45px);grid-template-rows:repeat(10,56px)}.element-cell b{font-size:17px}.periodic-launch{margin-bottom:8px}}
#questionGraphic{display:block;width:min(100%,560px);height:auto;margin:12px auto 0;background:#fbfdfb;border:1px solid #dce8e3;border-radius:16px}.problem:has(canvas){font-size:clamp(17px,2.7vw,25px);padding:20px 4px 12px}
.exam-archive{margin:12px 0;background:#f2f7f4;border-radius:14px;padding:12px}.exam-archive summary{font-weight:850;cursor:pointer}.exam-archive div{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.exam-archive a{background:#fff;border:1px solid #d7e4de;border-radius:9px;padding:6px 10px;color:#167c67;text-decoration:none;font-size:11px;font-weight:800}
