:root{--bg:#eef0e9;--paper:#fafbf7;--ink:#143c38;--muted:#536b64;--line:#cbd4c9;--teal:#235e52;--gold:#9b5d32;--soft:#e3e9df}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.7 "Microsoft YaHei","PingFang SC",sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #aa6437}button{border:1px solid var(--line);padding:9px 16px;background:var(--paper);color:var(--ink);border-radius:6px;cursor:pointer}button:hover{border-color:var(--teal);background:#e3ece0}button.active,.primary{background:var(--teal);color:white;border-color:var(--teal)}a{color:var(--teal)}header{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 3vw;border-bottom:1px solid var(--line);background:#fafbf7;position:sticky;top:0;z-index:20}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;font-weight:700;font-size:20px;white-space:nowrap}.brand small{display:block;font-weight:400;font-size:11px;letter-spacing:1px}.mark{display:grid;place-content:center;width:43px;height:45px;background:var(--ink);color:white;font:30px Georgia,serif}nav{display:flex;gap:4px}nav button{border:0;background:transparent;font-size:14px}#classroom{color:var(--gold);border-color:#bda084;font-size:14px}main{max-width:1600px;margin:auto;padding:36px 3vw 70px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(30px,3.3vw,54px);line-height:1.35;letter-spacing:-1px;font-weight:600;margin-bottom:20px}h2{font-size:24px;font-weight:600;margin-bottom:14px}h3{font-size:19px;margin-bottom:12px}p{margin-bottom:14px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--gold);font-weight:700}.intro{font-size:18px;color:var(--muted);max-width:720px}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4vw;min-height:440px;padding:20px 0 55px}.hero h1{font-family:"Songti SC",SimSun,serif;font-weight:500}.hero-plan{background:#e1e7dd;border-radius:2px;transform:rotate(-3deg);border:1px solid #b7c7b8;padding:25px;box-shadow:16px 22px 0 #d9dfd4}.hero-plan svg{width:100%;display:block}.pills{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0}.pills span{border:1px solid var(--line);padding:4px 12px;font-size:13px;border-radius:30px}.hero .primary{padding:13px 23px}.hero .primary span{margin-left:32px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:30px 0 20px}.section-head h1,.section-head h2{margin-bottom:0}.section-head p{margin:0;color:var(--muted);text-align:right;font-size:14px}.section-head span,small,.meta{color:var(--muted);font-size:13px}.module-grid,.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.module{border-top:3px solid var(--teal);padding:22px;background:var(--paper)}.module b{font-size:13px;color:var(--gold)}.module h3{margin-top:12px}.module p{color:var(--muted);font-size:14px;margin-bottom:0}.lesson-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.lesson-card{display:flex;flex-direction:column;text-align:left;background:var(--paper);border:1px solid var(--line);padding:22px;min-height:235px;border-radius:2px}.lesson-card>span{font-size:12px;color:var(--gold);margin-bottom:13px}.lesson-card strong{font-size:19px;margin-bottom:10px}.lesson-card p{font-size:14px;color:var(--muted)}.lesson-card small{margin-top:auto;border-top:1px solid var(--line);padding-top:10px}.notice{padding:18px 22px;background:#e4e8dd;border-left:3px solid #a68154;margin:25px 0;color:#485b4e;font-size:14px}.lab-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.lab-heading h1{font-size:32px;margin-bottom:8px}.lab-heading p{max-width:850px;color:var(--muted)}.button-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:12px 0}.button-row button{font-size:14px}select,input:not([type=range]):not([type=file]),textarea{width:100%;border:1px solid #bbc9bd;background:#fcfdf9;color:var(--ink);padding:9px 10px;border-radius:4px}select{max-width:100%}.lab-heading select{width:210px}.studio{display:grid;grid-template-columns:minmax(0,1fr) 310px;border:1px solid var(--line);background:var(--paper)}.world-shell{position:relative;background:#c8d4c7;min-height:600px;overflow:hidden}.world-title,.world-footer{position:absolute;left:20px;right:20px;display:flex;justify-content:space-between;gap:15px;pointer-events:none;z-index:2;font-size:12px;color:#163d37;background:#f6f8eddf;padding:8px 13px;border-radius:4px}.world-title{top:17px}.world-footer{bottom:17px;font-size:11px}#world{width:100%;height:100%;display:block;min-height:600px;touch-action:none;cursor:grab}#planFallback{width:100%;height:600px}.inspector{padding:16px;max-height:700px;overflow:auto;border-left:1px solid var(--line)}.tabline{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:14px}.tabline button{flex:1;font-size:14px;padding:7px}label{display:block;font-size:14px;margin-bottom:14px}label input,label select,label textarea{display:block;margin-top:5px}input[type=range]{width:100%;accent-color:var(--teal)}output{float:right;color:var(--gold);font-size:12px}.inspector small{font-size:11px;line-height:1.6;display:block}.inspector .button-row{gap:5px}.inspector button{font-size:12px;padding:7px 8px}.selection-info{padding:12px;background:var(--soft);font-size:13px;margin:15px 0 0}.world-label{position:absolute;pointer-events:none;font-size:12px;padding:3px 7px;background:#f7f9f0e8;box-shadow:0 1px 5px #132b3420;color:#173f37;border:1px solid #b7c7b8;white-space:nowrap}.under-studio{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}.report,.reflection{background:var(--paper);border:1px solid var(--line);padding:23px}.report .section-head{margin:0 0 15px}.report h2{font-size:21px}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.metric{border:1px solid var(--line);padding:12px}.metric b{display:block;font-size:23px;font-weight:500}.metric span{font-size:12px;color:var(--muted)}.warn{color:#9f452c}.ok{color:#226d51}#validationExplanation{font-size:13px;margin-top:16px}.reflection h2{font-size:22px}.reflection textarea{min-height:86px;resize:vertical}.linked-resources{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.linked-resources button{font-size:13px}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.library-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:30px}.library-tabs button{text-align:left;padding:17px}.library-tabs strong{display:block;font-size:18px}.library-tabs small{display:block;font-size:12px;color:inherit;opacity:.8}.resource-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.resource-card{background:var(--paper);border:1px solid var(--line);padding:22px}.resource-card .code{font-size:12px;color:var(--gold)}.resource-card h3{margin-top:10px}.resource-card p{font-size:14px;color:var(--muted)}.resource-card button{font-size:13px}.resource-card .tags{font-size:11px;color:var(--gold);margin:10px 0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.form-grid textarea{min-height:130px}.game-layout{display:grid;grid-template-columns:260px 1fr;gap:22px}.game-layout aside{background:var(--paper);padding:18px;border:1px solid var(--line)}.game-layout aside p{font-size:12px;color:var(--muted)}.upload{border:1px solid var(--line);border-radius:5px;padding:9px 12px;cursor:pointer;font-size:13px;background:var(--paper);margin:0}.upload input{display:block;max-width:100%;font-size:12px}#gameList button{display:block;width:100%;text-align:left;margin:10px 0;overflow-wrap:anywhere}#gameFrame{width:100%;height:530px;border:1px solid var(--line);background:white}.art-grid label{background:var(--paper);border-top:3px solid var(--teal);padding:22px;margin:0}.art-grid b{font-size:21px;display:block}.art-grid span{font-size:12px;color:var(--muted);display:block;margin:8px 0}.art-grid textarea{min-height:190px}#saveART{margin:20px 0}.evidence-card{background:var(--paper);border:1px solid var(--line);padding:20px;margin:12px 0}.evidence-card summary{cursor:pointer;font-size:16px}.evidence-card pre{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.8 inherit}dialog{max-width:850px;width:90vw;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:30px;border-radius:6px;max-height:88vh;overflow:auto}dialog::backdrop{background:#123d3880}.close{float:right}.resource-body{margin-top:25px}.resource-body p{font-size:15px}.resource-body dt{font-size:13px;color:var(--gold);font-weight:bold}.resource-body dd{margin:3px 0 18px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#173f37;color:white;padding:12px 24px;border-radius:5px;z-index:100;display:none;max-width:90vw}footer{border-top:1px solid var(--line);padding:20px 3vw;font-size:12px;color:var(--muted);display:flex;justify-content:space-between;gap:20px}.projection header,.projection .lab-heading,.projection .under-studio,.projection footer,.projection .linked-resources{display:none}.projection main{padding:0;max-width:none}.projection .studio{min-height:100vh}.projection #world{height:100vh}.projection .inspector{max-height:100vh}.projection .world-shell:after{content:'按 Esc 退出投屏模式';position:absolute;top:58px;left:30px;font-size:12px;background:#ffffffe8;padding:4px 9px}.checklist{padding-left:20px}.task-step{border-left:2px solid #9eae9a;padding-left:12px;margin:15px 0}.task-step strong{font-size:14px}.task-step p{font-size:13px;color:var(--muted)}[hidden]{display:none!important}
@media(min-width:1700px){#world,.world-shell{min-height:680px}.inspector{max-height:780px}}
@media(max-width:1050px){header{flex-wrap:wrap;gap:12px}nav{order:3;width:100%;overflow:auto}nav button{white-space:nowrap}main{padding:25px 20px}.hero{gap:25px}.studio{grid-template-columns:minmax(0,1fr) 265px}.inspector{padding:12px}.world-footer{display:block}.lesson-grid,.resource-grid{grid-template-columns:repeat(2,1fr)}.lab-heading{display:block}}
@media(max-width:720px){body{font-size:15px}.hero{grid-template-columns:1fr;padding-bottom:20px}.hero-plan{margin:10px 10px 25px}.hero h1{font-size:38px}.module-grid,.art-grid,.under-studio,.form-grid{grid-template-columns:1fr}.lesson-grid,.resource-grid{grid-template-columns:1fr}.studio{grid-template-columns:1fr}.world-shell,#world{min-height:390px;height:390px}.inspector{max-height:none;border-left:0}.section-head{align-items:start;flex-direction:column}.section-head p{text-align:left}.library-tabs{grid-template-columns:1fr 1fr}.game-layout{grid-template-columns:1fr}.game-layout aside{display:block}#gameFrame{height:420px}.world-title{font-size:10px;left:10px;right:10px}.world-footer{left:10px;right:10px;font-size:10px}.world-label{font-size:10px}.projection .studio{grid-template-columns:1fr}.projection .inspector{max-height:none}footer{display:block}.lab-heading h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{header,.studio,.button-row,.upload,footer,#toast{display:none}main{padding:0}.view[hidden]{display:none!important}.art-grid,.form-grid{display:block}textarea{min-height:80px}body{background:white;color:black}.evidence-card{break-inside:avoid}}
/* Matte dark palette for classroom projection; readable labels remain brighter than the background. */
:root{color-scheme:dark;--bg:#101c24;--paper:#172832;--ink:#e4ece6;--muted:#b0c2c2;--line:#39505a;--teal:#87c8b5;--gold:#e0b57d;--soft:#223a43}
body{background:var(--bg)}header{background:#111f28;border-color:#344c57}.brand{color:#e7eee8}.brand small{color:#afc6c5}.mark{background:#b1c8ae;color:#182f32}nav button{color:#b7cdcb}button{background:#1c313b;border-color:#45606a;color:#e4ece6}button:hover{background:#2b4851;border-color:#9bcdbb}button.active,.primary{background:#8bc6b2;color:#122c2c;border-color:#8bc6b2}#classroom{color:#edc28b;border-color:#977a56}.hero-plan{background:#20373f;border-color:#49616a;box-shadow:14px 19px 0 #0c171e;transform:rotate(-2deg)}.hero{padding-top:30px}.hero h1{font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-weight:500}.module-grid{grid-template-columns:repeat(3,1fr)}.module{position:relative;min-height:195px;border:1px solid var(--line);border-top:3px solid #8fc9b5;border-radius:5px;text-align:left}.module.selected{background:#24414a;border-color:#b2d7c4}.module h3{font-size:22px}.module p{font-size:15px}.module>span{display:block;color:#a9c3bf;font-size:12px;margin-top:14px}.module em{font-style:normal;display:block;font-size:13px;color:var(--gold);margin-top:12px}.lesson-card{border-radius:5px;min-height:245px}.notice{background:#20343d;border-left-color:#d3a56e;color:#c7d7d0}.studio{background:#172832}.world-shell{background:#21353d}.world-title,.world-footer{background:#142b33eb;color:#e0eae3;border:1px solid #597378}.world-label{background:#132b35e8;color:#e8f0e9;border-color:#5c777b;font-size:13px}.world-label.focused{background:#bc7254;color:white;border:2px solid #ffd5a5}.inspector{background:#192d37}.tabline{position:sticky;top:-16px;background:#192d37;z-index:4;padding-top:6px}.selection-info{background:#213c44;color:#c8ddd4}select,input:not([type=range]):not([type=file]),textarea{background:#10232c;border-color:#4e6c75;color:#edf3ed}input[type=range]{accent-color:#9acbb8}input::placeholder,textarea::placeholder{color:#9cb0b5}.metric{background:#152b34}.metric b{font-size:24px}.metric .ok{color:#a7d8ba}.metric .warn{color:#f0af8c}.issue{display:block;color:#ffcc9c;border-color:#b17c5c;background:#3e3432;text-align:left;margin:7px 0}.difference{background:#2a4147}.table-scroll{overflow:auto}.resource-link{border:1px solid var(--line);padding:9px 14px;border-radius:5px;text-decoration:none;color:#c6e2d5}.resource-link:hover{background:#2b4851}.library-tabs button{min-height:100px}.library-tabs strong{font-size:20px}.resource-card{border-radius:5px}.resource-card p{font-size:15px}.game-layout{grid-template-columns:300px minmax(0,1fr)}#gameList{max-height:510px;overflow:auto;margin-top:15px}#gameList button{padding:11px;font-size:14px}#gameList strong,#gameList small{display:block}#gameList small{color:inherit;font-size:11px;margin-top:4px;opacity:.8}#gameFrame{background:#12232d}.art-grid label{border:1px solid var(--line);border-top:3px solid #8fc7b4}.evidence-card pre{font:14px/1.8 "Microsoft YaHei",sans-serif}.evidence-card small{display:block;font-size:12px}.projection .world-shell:after{background:#112b35e8;color:#d5e5dd}.projection .world-label{font-size:15px}.projection .world-title{font-size:15px}.projection .world-footer{font-size:13px}.projection .inspector label{font-size:16px}.projection .inspector button{font-size:14px}.projection .inspector small{font-size:13px}.projection .studio{grid-template-columns:minmax(0,1fr) 320px}.projection .task-step p{font-size:15px}.projection .task-step strong{font-size:16px}dialog{box-shadow:0 30px 70px #0008}#toast{background:#aecfbe;color:#102c2d;box-shadow:0 4px 25px #0006}footer{background:#0d1820}.week-card:nth-child(2){border-top-color:#e5b783}
@media(max-width:1050px){.brand{font-size:18px}.brand small{font-size:11px}.module-grid{grid-template-columns:repeat(2,1fr)}.game-layout{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:720px){.module-grid{grid-template-columns:1fr}.game-layout{grid-template-columns:1fr}.projection .studio{grid-template-columns:1fr}.hero h1{font-size:34px}.module{min-height:170px}#gameList{max-height:240px}.library-tabs strong{font-size:17px}.world-label{font-size:11px}.world-footer{font-size:10px}.lab-heading .button-row{width:100%}.lab-heading select{width:100%}}
@media print{:root{--paper:white;--ink:black;--muted:#333;--line:#aaa}body,.art-grid label,.evidence-card,.notice{background:white;color:black}textarea,input,select{background:white!important;color:black!important}pre{color:black}}
.world-shell{height:650px;min-height:0}#world{height:100%;min-height:0}.inspector{height:650px;max-height:650px}.projection .world-shell{height:100vh}.projection .inspector{height:100vh;max-height:100vh}.projection #world{height:100%}
@media(min-width:1700px){.world-shell{height:700px;min-height:0}.inspector{height:700px;max-height:700px}}
@media(max-width:720px){.world-shell{height:410px}.inspector{height:auto;max-height:none}.projection .world-shell{height:65vh}.projection .inspector{height:auto;max-height:none}}
.resource-image{display:block;max-width:100%;max-height:420px;object-fit:contain;margin:15px auto;border:1px solid var(--line)}#newBody,#newSource{min-height:105px}.resource-body p{white-space:pre-line}label:has(>input[type=checkbox]){display:flex;gap:10px;align-items:center}input[type=checkbox]{accent-color:var(--teal);width:18px;height:18px;flex-shrink:0}
.building-navigation{border:1px solid var(--line);padding:17px 20px;background:#172b35;margin:8px 0 20px}.building-summary{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.building-summary>strong{font-size:21px}.building-summary>span{font-size:13px;color:var(--muted)}.representation-buttons{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}.representation-buttons button{font-size:14px}.floor-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:15px 0}.floor-cards>div{border:1px solid #415e68;background:#1b333d;padding:9px}.floor-cards button{width:100%;text-align:left;border:0;background:transparent}.floor-cards button.active{background:#8ac6b2;color:#122c2c}.floor-cards b{display:block;font-size:18px}.floor-cards small{display:block;color:inherit;font-size:12px}.floor-cards label{font-size:12px;margin:7px 10px 0;color:#b2c6c6}.building-options{display:flex;gap:15px;flex-wrap:wrap;align-items:center;font-size:13px}.building-options label{margin:0;font-size:13px}.building-options>span{color:#e0bd88}.building-options button{padding:5px 9px;font-size:12px}.building-options small{font-size:11px;color:#a5b9bd}.representation-workspace{min-width:0}.studio.plan-representation{grid-template-columns:1fr}.plan-representation>.inspector{display:none}.plan-shell{background:#122731;min-width:0}.plan-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid var(--line)}.plan-toolbar .button-row{margin:0}.plan-toolbar button{font-size:13px;padding:7px 11px}.plan-toolbar>span{font-size:12px;color:#b7cecb}.plan-check{display:flex;align-items:center;gap:7px;margin:0;font-size:12px}.plan-canvas-wrap{position:relative;height:560px;overflow:hidden;background:#10222c}#layoutPlan{width:100%;height:100%;display:block;touch-action:none;cursor:default}.plan-caption{position:absolute;bottom:7px;left:12px;right:12px;text-align:center;font-size:12px;background:#142e37de;color:#cadcd5;padding:5px;pointer-events:none}.plan-title{fill:#dae7df;font-size:21px;font-family:'Microsoft YaHei',sans-serif}.plan-north{fill:#b6cfc9;font-size:17px}.plan-entry{fill:#eecb92;font-size:15px}.plan-shape>rect{stroke:#aec7c0;stroke-width:1.2}.plan-shape.movable{cursor:grab}.plan-shape.movable:active{cursor:grabbing}.plan-shape.selected>rect{stroke:#ffda94;stroke-width:4}.plan-shape.locked>rect{stroke-dasharray:4 3}.plan-shape.conflicting>rect{stroke:#ff927e;stroke-width:4;fill:#8b5147}.plan-label{pointer-events:none;font-family:'Microsoft YaHei',sans-serif;fill:#10262d;font-size:18px}.plan-shape.locked .plan-label{fill:#dde8e0;font-size:15px}.plan-dimension{font-size:13px;opacity:.85}.store-facing{fill:none;stroke:#edf3e6;stroke-width:2;pointer-events:none}.plan-observer{pointer-events:none}.placing-eye{cursor:crosshair!important}.plan-object-panel{display:grid;grid-template-columns:minmax(170px,2fr) 1fr 1fr auto auto;gap:12px;align-items:end;padding:14px 18px;border-top:1px solid var(--line)}.plan-object-panel label{margin:0}.plan-object-panel button{height:43px}.plan-viewpoint{display:flex;align-items:center;gap:15px;flex-wrap:wrap;padding:8px 18px}.plan-viewpoint>span{font-size:13px;color:#bfd5ce;margin-right:auto}.plan-viewpoint label{display:flex;align-items:center;gap:8px;margin:0;font-size:13px}.plan-viewpoint select{width:100px;margin:0}.plan-checks{padding:12px 18px;color:#bbd0c6;border-top:1px solid var(--line);font-size:13px}.plan-checks button{padding:4px 8px;margin:3px;font-size:12px}.plan-checks .warn{color:#f0af8c}.projection .building-navigation{margin:0;padding:8px 12px}.projection .building-summary>strong,.projection .building-summary>span{display:none}.projection .representation-buttons{margin:0}.projection .floor-cards{margin:6px 0 0;gap:6px}.projection .floor-cards>div{padding:2px 5px}.projection .floor-cards button{padding:4px 8px}.projection .floor-cards b{font-size:15px}.projection .floor-cards small,.projection .building-options{display:none}.projection .floor-cards label{display:inline-flex;font-size:11px;margin:1px 7px}.projection .studio{min-height:0}.projection .world-shell,.projection .inspector{height:calc(100vh - 143px);max-height:calc(100vh - 143px)}.projection .world-shell:after{top:53px}.projection .plan-canvas-wrap{height:calc(100vh - 365px);min-height:260px}.projection .plan-toolbar{padding:6px 10px}.projection .plan-object-panel{padding:7px 10px;gap:8px}.projection .plan-viewpoint{padding:6px 10px}.projection .plan-checks{padding:7px 10px}
@media(max-width:1050px){.building-summary{gap:10px}.representation-buttons{margin:0}.floor-cards b{font-size:16px}.plan-object-panel{grid-template-columns:1.5fr 1fr 1fr}.plan-object-panel button{height:auto}.plan-toolbar{flex-wrap:wrap}.plan-canvas-wrap{height:490px}.projection .plan-canvas-wrap{height:calc(100vh - 400px)}}
@media(max-width:720px){.floor-cards{grid-template-columns:repeat(2,1fr);gap:7px}.building-navigation{padding:12px}.building-summary>span{font-size:12px}.representation-buttons button{padding:7px 10px;font-size:13px}.floor-cards button{padding:6px}.plan-toolbar{padding:9px}.plan-toolbar .button-row{gap:5px}.plan-toolbar button{padding:6px 8px;font-size:12px}.plan-canvas-wrap{height:380px}.plan-object-panel{grid-template-columns:1fr 1fr;padding:10px}.plan-object-panel label:first-child{grid-column:1/-1}.plan-object-panel label{font-size:13px}.plan-viewpoint{padding:10px;gap:8px}.plan-caption{font-size:10px}.projection .floor-cards{grid-template-columns:repeat(4,1fr)}.projection .floor-cards b{font-size:11px}.projection .floor-cards label{font-size:9px}.projection .world-shell{height:55vh;max-height:none}.projection .inspector{height:auto;max-height:none}.projection .plan-canvas-wrap{min-height:220px;height:40vh}}
/* Checkbox labels must never inherit the full-width text-input geometry. */
input[type=checkbox]{width:18px!important;min-width:18px;max-width:18px;height:18px;padding:0!important;margin:0;display:inline-block;flex:0 0 18px}.floor-cards label,.building-options label,.plan-check{white-space:nowrap}.floor-cards label{justify-content:flex-start;gap:7px}.plan-object-panel{grid-template-columns:minmax(190px,1.6fr) minmax(100px,.7fr) minmax(100px,.7fr) minmax(100px,.7fr) auto auto}.building-navigation input{vertical-align:middle}.plan-label{font-size:17px}.projection .floor-cards>div{display:flex;align-items:center;justify-content:space-between}.projection .floor-cards button{min-width:0}.projection .floor-cards label{font-size:11px;flex-shrink:0}.projection .floor-cards label input{width:16px!important;min-width:16px;height:16px;flex-basis:16px}
@media(max-width:1050px){.plan-object-panel{grid-template-columns:repeat(3,minmax(0,1fr))}.projection .floor-cards>div{display:block}.projection .floor-cards label{margin:2px 8px}}
@media(max-width:720px){.plan-object-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-object-panel label:first-child{grid-column:1/-1}.projection .floor-cards label{font-size:10px;gap:4px}}
/* In recording mode the drawing gets the large left pane; compact controls sit alongside it. */
.studio.building-representation{grid-template-columns:1fr}.building-representation>.inspector{display:none}.projection .studio.building-representation{grid-template-columns:1fr}.world-label{max-width:calc(100% - 30px)}
.plan-object-panel{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.shop-config-button{border-color:#d5b583;color:#efd19b}.plan-shape.shop>rect{stroke-dasharray:3 4}.plan-shape .shop-wall{pointer-events:none}.shop-portal{stroke:#ffe1a3;stroke-width:2;fill:none;pointer-events:none}.plan-shape .plan-label{paint-order:stroke;stroke:#ffffff18;stroke-width:.5px}.shop-dialog{width:min(1100px,94vw);max-width:1100px;padding:23px;max-height:94vh}.shop-dialog-head{display:flex;justify-content:space-between;gap:20px;align-items:start;border-bottom:1px solid var(--line);padding-bottom:12px}.shop-dialog-head h2{font-size:23px;margin:0 0 5px}.shop-dialog-head .eyebrow{margin-bottom:5px}.shop-dialog-head p:last-child{font-size:14px;margin:0;color:var(--muted)}.shop-dialog-head button{flex-shrink:0}.shop-panel-tabs{display:flex;gap:9px;margin:14px 0}.shop-panel-tabs button{font-size:14px}.shop-dialog-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:22px;max-height:calc(100vh - 265px);min-height:300px;overflow:auto}.shop-main-form{min-width:0;padding-right:4px}.shop-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}.shop-fields label{margin:0}.shop-fields~p{margin-top:15px}.shop-dialog label{font-size:14px}.shop-dialog input,.shop-dialog select{padding:7px 9px}.shop-side-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.shop-side-grid fieldset{min-width:0;border:1px solid #506c75;background:#1c343e;padding:9px 12px 12px;margin:0}.shop-side-grid legend{padding:0 7px;font-size:17px;color:#e4c38c}.shop-side-grid label{margin:0 0 7px}.side-numbers{display:grid;grid-template-columns:.85fr 1.15fr;gap:9px}.side-note{display:block;font-size:11px;line-height:1.5;color:#afc4bf}.shop-preset{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:13px}.shop-preset label{margin:0;flex:1;min-width:160px}.shop-preset button{font-size:13px;padding:8px 10px}.shop-preset small{width:100%;font-size:12px}.shop-preview-pane{min-width:0;background:#112730;border:1px solid var(--line);padding:13px 16px;align-self:start}.shop-preview-pane h3{font-size:17px;margin:0 0 10px}.shop-preview-pane svg{display:block;width:100%;max-height:250px}.shop-preview-pane svg text{fill:#d9e9df;font:16px 'Microsoft YaHei',sans-serif}.shop-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;margin:10px 0}.shop-legend span:nth-child(1){color:#e0e3cd}.shop-legend span:nth-child(2){color:#8dd5de}.shop-legend span:nth-child(3){color:#d8b880}.shop-legend span:nth-child(4){color:#8fbca6}.shop-legend span:nth-child(5){color:#f4c682}#shopGeometryIssues{font-size:13px;color:#ebc18d;border-block:1px solid var(--line);padding:10px 0;margin-bottom:12px}#shopGeometryIssues p{margin:0}#shopGeometryIssues ul,#shopPrompts{padding-left:20px;margin:5px 0 10px}#shopPrompts{font-size:14px;line-height:1.75}#shopPrompts li{margin-bottom:8px}.shop-preview-pane .meta{font-size:12px;margin-bottom:0}.shop-reason-grid{display:grid;grid-template-columns:1fr;gap:15px}.shop-reason-grid label{margin:0}.shop-reason-grid textarea{min-height:120px;resize:vertical}.shop-dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);margin-top:14px;padding-top:14px}.shop-dialog-actions p{font-size:14px;margin:0;color:#d7c39f}.shop-dialog-actions button{font-size:14px}.shop-access-results{margin-top:18px}.shop-access-results summary{cursor:pointer;color:#e2c18c}.shop-access-results td{min-width:100px}.shop-access-results button{padding:5px 9px;font-size:12px}.shop-access-results small{display:block;margin-top:4px}.shop-access-fail{color:#f0b28f}.shop-access-ok{color:#a7d8ba}
@media(max-width:720px){.shop-dialog{padding:15px;max-height:94vh}.shop-dialog-grid{grid-template-columns:1fr;max-height:calc(100vh - 255px);gap:15px}.shop-preview-pane{order:2}.shop-fields{gap:9px}.shop-side-grid{gap:8px}.shop-side-grid fieldset{padding:7px}.side-numbers{grid-template-columns:1fr}.shop-panel-tabs{gap:5px}.shop-panel-tabs button{padding:7px;font-size:12px}.shop-dialog-actions{align-items:stretch;flex-direction:column;gap:8px}.shop-dialog-head h2{font-size:20px}.shop-dialog-head p:last-child{font-size:12px}}
.shop-dialog[open]{display:flex;flex-direction:column;height:min(940px,94vh);overflow:hidden}.shop-dialog-head{flex-shrink:0}.shop-dialog form{display:flex;flex-direction:column;flex:1;min-height:0}.shop-panel-tabs{flex-shrink:0}.shop-dialog-grid{flex:1;min-height:0;max-height:none;overflow:hidden}.shop-main-form{height:100%;overflow:auto}.shop-preview-pane{height:100%;overflow:auto;align-self:stretch}.shop-dialog-actions{flex-shrink:0}.shop-preview-pane svg{max-height:280px}.shop-preview-pane svg text{font-size:21px}.shop-dialog-actions button{flex-shrink:0}.shop-dialog :disabled{opacity:.6}.shop-wall{shape-rendering:geometricPrecision}
@media(max-width:720px){.shop-dialog-grid{display:block;overflow:auto}.shop-main-form,.shop-preview-pane{height:auto;overflow:visible}.shop-preview-pane{margin-top:16px}.shop-dialog-actions p{font-size:12px}.shop-dialog-actions button{font-size:13px}}
.shop-side-grid .side-offset{display:flex;align-items:center;justify-content:space-between;gap:8px}.shop-side-grid .side-offset input{width:82px;margin:0;min-width:0}.shop-side-grid .side-note{margin-top:8px}
@media(max-width:720px){.shop-side-grid .side-offset{display:block}.shop-side-grid .side-offset input{width:100%;margin-top:5px}}
@media(min-width:1051px){.projection .plan-shell{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-template-rows:auto 1fr auto;height:calc(100vh - 108px)}.projection .plan-toolbar{grid-column:1/-1}.projection .plan-canvas-wrap{grid-column:1;grid-row:2/4;height:100%;min-height:0}.projection .plan-object-panel{grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:stretch;border-left:1px solid var(--line);border-top:0;padding:12px 14px;gap:7px;overflow:auto}.projection .plan-object-panel label{font-size:13px}.projection .plan-object-panel input,.projection .plan-object-panel select{padding:6px 8px}.projection .plan-object-panel button{height:auto;padding:7px 10px}.projection .plan-viewpoint{grid-column:2;grid-row:3;display:flex;border-left:1px solid var(--line);padding:8px 14px;gap:8px}.projection .plan-viewpoint>span{font-size:12px}.projection .plan-viewpoint button{font-size:13px;padding:7px 10px}.projection .plan-checks{display:none}.projection .plan-toolbar>span{display:none}}
