:root{color-scheme:light;--ink:#203b35;--accent:#28695a;--paper:#f8f7f1;--line:#d5ded4;--muted:#69776e;--glass:rgba(248,249,243,.95)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{font:15px/1.65 "Microsoft YaHei","PingFang SC",sans-serif;background:#183029;color:var(--ink)}button,a,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button,a{touch-action:manipulation}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:3px solid #d6a744;outline-offset:3px}button{border:1px solid var(--line);background:#fff;border-radius:5px;color:var(--ink);padding:9px 14px}button:hover{background:#eef3e9}button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:white}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1{font-size:28px;line-height:1.4}h2{font-size:24px}h3{font-size:18px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#567666;margin-bottom:7px}.heading{position:absolute;z-index:3;top:max(18px,env(safe-area-inset-top));left:24px;right:24px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;pointer-events:none}.heading>div{max-width:550px;background:var(--glass);border:1px solid rgba(255,255,255,.8);padding:15px 20px;border-radius:6px;pointer-events:auto}.heading p:last-child{font-size:12px;color:var(--muted);margin-top:6px}.page-links{display:flex;gap:8px;pointer-events:auto;align-items:center}.page-links a,.page-links button{background:var(--glass);padding:9px 12px;border:1px solid var(--line);border-radius:5px;font-size:12px;text-decoration:none;white-space:nowrap}.page-links a:hover{background:#fff}#app,#panorama,#model-stage{width:100%;height:100%;position:relative}#app{position:fixed;inset:0;height:100dvh;overflow:hidden}body.model-page{background:#dde5e0}#panorama,#model-stage{position:absolute;inset:0}#model-stage{background:#d9e2df}#model-stage canvas{display:block;touch-action:none}.scene-controls{position:absolute;z-index:3;left:24px;top:157px;display:flex;gap:10px;flex-wrap:wrap}.segmented{display:flex;background:var(--glass);border:1px solid #d5ded4;border-radius:6px;padding:4px}.segmented button{border:0;min-width:86px;font-size:13px;background:none}.segmented button[aria-pressed=true]{background:var(--accent)}.building-shelf{position:absolute;left:24px;bottom:90px;z-index:3;background:var(--glass);border:1px solid #dce4d8;border-radius:6px;padding:16px;width:280px}.shelf-heading{display:flex;justify-content:space-between;align-items:baseline;font-size:14px;font-weight:700}.shelf-heading small{font-size:11px;color:var(--muted);font-weight:400}.building-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.building-buttons button{padding:7px 4px;min-height:37px}.building-buttons .awaiting{color:#667369;background:#f0f2eb}.plan-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.plan-groups button{font-size:11px;padding:7px 2px;background:#ecf1e7}.plan-groups button strong{display:block;font-size:14px}.shelf-note{font-size:10px;color:var(--muted);margin-top:9px}.view-tools{position:absolute;z-index:3;right:24px;bottom:95px;display:grid;gap:8px}.view-tools button{width:47px;min-height:44px;padding:4px;background:var(--glass);font-size:13px}.view-tools button:first-child,.view-tools button:nth-child(2){font-size:21px}.model-page .view-tools button{font-size:13px}.bottom-note{position:absolute;z-index:3;bottom:max(18px,env(safe-area-inset-bottom));left:24px;right:24px;display:flex;justify-content:space-between;gap:20px;font-size:11px;color:#fff;text-shadow:0 1px 5px #173829}.bottom-note span{background:rgba(15,33,29,.6);border-radius:4px;padding:7px 10px}.status-panel{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:12px;white-space:nowrap;background:var(--glass);border:1px solid var(--line);padding:18px 24px;border-radius:6px;box-shadow:0 8px 30px #0b1b2530}.spinner{width:18px;height:18px;border:2px solid #b8c7bb;border-top-color:#28695a;border-radius:50%;animation:spin 1s linear infinite}.detail-loading{position:absolute;z-index:5;top:18px;left:50%;transform:translateX(-50%);background:#f4f7ef;padding:6px 12px;border-radius:5px;font-size:11px}.error-panel{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);width:min(90%,470px);background:#fbf8ee;border:1px solid #dacbaf;border-radius:7px;padding:28px;text-align:center}.error-panel h2{font-size:20px}.error-panel p{margin:14px 0;color:#796b51;font-size:14px}.error-panel button{background:var(--accent);color:#fff;border:0}#toast{position:absolute;z-index:30;left:50%;bottom:70px;transform:translateX(-50%);background:#183a33;color:#fff;font-size:13px;padding:12px 18px;border-radius:5px;max-width:90%;text-align:center}.building-marker{background:transparent!important;border:0!important;width:auto!important;height:auto!important}.building-marker button{background:rgba(250,253,244,.96);border:1px solid #2c6b5a;color:#174c40;box-shadow:0 2px 6px #10292040;padding:5px 9px;white-space:nowrap;font-size:12px;border-radius:4px}.building-marker button:hover{background:#1b5c4a;color:#fff}
dialog{color:var(--ink);font:inherit;background:var(--paper);border:1px solid #cdd8cd;border-radius:8px;box-shadow:0 18px 70px #05161155;width:min(620px,calc(100% - 28px));padding:28px;max-height:calc(100dvh - 36px);overflow:auto}dialog::backdrop{background:rgba(10,29,24,.65);backdrop-filter:blur(3px)}.dialog-close,.plan-close{position:absolute;top:14px;right:14px;width:36px;height:36px;padding:0;font-size:25px;background:#fff;z-index:2}.dialog-copy{font-size:14px;color:var(--muted);margin-top:12px}.building-plans{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.building-plans button{background:var(--accent);color:#fff;border:0;padding:12px 16px}.building-mapping{margin-top:16px;padding:14px;background:#eaf0e5;border-radius:4px;font-size:13px;white-space:pre-line}.data-warning{background:#fff2d5;border-left:3px solid #ad7b2b;padding:12px 14px;color:#745622;font-size:12px;margin-top:12px}.awaiting-copy{padding:16px;background:#ecefe6;border:1px solid #d1dccb;color:#5c6f5e;font-size:14px}.plan-dialog{width:min(1220px,calc(100% - 32px));height:min(920px,calc(100dvh - 28px));max-height:none;padding:0;overflow:hidden}.plan-dialog[open]{display:flex;flex-direction:column}.plan-header{padding:18px 64px 12px 22px;flex:none}.plan-header h2{font-size:21px}.plan-header p{font-size:12px;color:var(--muted);margin-top:3px}.plan-tabs{display:flex;gap:8px;padding:0 22px 10px;flex:none}.plan-tabs button{font-size:12px;padding:6px 14px}.plan-notices{padding:0 22px 10px;flex:none;max-height:115px;overflow:auto}.plan-notices p{font-size:12px;line-height:1.55;padding:8px 10px;background:#eeeede;margin-bottom:5px;border-left:3px solid #b6a370}.plan-notices p.warning{background:#fff0d3;border-color:#bf8627;color:#75521c}.plan-viewport{position:relative;flex:1;min-height:80px;margin:0 16px;background:#e5e9e0;border:1px solid #d4dece;overflow:hidden;touch-action:none}.plan-viewport img{position:absolute;top:50%;left:50%;max-width:none;max-height:none;transform-origin:center;user-select:none;-webkit-user-drag:none}.plan-viewport #plan-status{position:absolute;left:10%;right:10%;top:45%;text-align:center;color:#6e7467}.plan-footer{flex:none;padding:11px 22px;display:flex;align-items:center;justify-content:space-between;gap:12px}.plan-footer p{font-size:10px;color:var(--muted)}.plan-tools{display:flex;gap:6px;align-items:center}.plan-tools button,.plan-tools a{font-size:12px;padding:6px 10px;white-space:nowrap}.plan-tools a{background:#f5f6ef;border:1px solid #d7decd;border-radius:4px;text-decoration:none}#share-link{display:block;width:100%;padding:10px;margin:16px 0;font-size:13px;border:1px solid var(--line);border-radius:4px}.no-plan{color:#68786b}.model-page .bottom-note span{background:#f0f4ecdd;color:#344f40;text-shadow:none}
@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
@media(max-width:800px){h1{font-size:22px}.heading{left:16px;right:16px;top:max(14px,env(safe-area-inset-top));gap:10px}.heading>div{padding:12px 14px}.page-links{flex-wrap:wrap;justify-content:flex-end;max-width:180px;gap:5px}.page-links a,.page-links button{padding:7px 9px;font-size:11px}.scene-controls{left:16px;top:145px;gap:8px}.building-shelf{left:16px;bottom:80px;width:250px;padding:13px}.view-tools{right:16px;bottom:83px}.bottom-note{left:16px;right:16px;font-size:10px;gap:8px}.bottom-note span:last-child{max-width:52%}.plan-header h2{font-size:18px}.plan-header{padding:15px 56px 9px 16px}.plan-tabs{padding:0 16px 9px}.plan-notices{padding:0 16px 9px;max-height:120px}.plan-footer{padding:10px 16px;flex-wrap:wrap;gap:7px}.plan-viewport{margin:0 10px}}
@media(max-width:520px){
  .heading{left:10px;right:10px;top:max(8px,env(safe-area-inset-top));flex-direction:column;gap:6px}
  .heading>div{width:100%;max-width:none;padding:7px 12px;min-width:0}.heading h1{font-size:20px;line-height:1.3}.heading .eyebrow{display:none}.heading p:last-child{font-size:10px;line-height:1.4;margin-top:3px}
  .page-links{max-width:none;width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.page-links a,.page-links button{display:flex;align-items:center;justify-content:center;min-height:38px;padding:5px 7px;font-size:12px;text-align:center}
  .scene-controls{left:10px;right:10px;top:calc(max(8px,env(safe-area-inset-top)) + 108px);display:grid;grid-template-columns:1fr 1fr;gap:6px}.segmented{padding:3px;min-width:0}.segmented button{flex:1;min-width:0;min-height:36px;padding:5px 4px;font-size:12px}
  .building-shelf{left:10px;right:10px;width:auto;bottom:calc(max(8px,env(safe-area-inset-bottom)) + 52px);padding:9px}.shelf-heading{font-size:12px}.shelf-heading small{font-size:9px}.building-buttons{gap:3px;margin:7px 0;grid-template-columns:repeat(8,minmax(0,1fr))}.building-buttons button{font-size:12px;padding:5px 0;min-height:40px}.plan-groups{gap:5px}.plan-groups button{min-height:34px;padding:4px 0;font-size:10px}.plan-groups button strong{display:inline;font-size:12px}.shelf-note{display:none}
  .view-tools{left:10px;right:10px;bottom:max(8px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.view-tools button,.model-page .view-tools button{width:auto;min-width:0;min-height:44px;padding:5px;font-size:13px}.bottom-note{display:none}
  .plan-dialog{width:calc(100% - 12px);height:calc(100dvh - 12px);border-radius:5px}.plan-header h2{font-size:16px}.plan-header .eyebrow{display:none}.plan-notices{max-height:124px}.plan-notices p{font-size:11px;padding:6px 8px}.plan-footer{padding:8px 10px}.plan-tools{width:100%;justify-content:space-between;gap:3px}.plan-tools button,.plan-tools a{font-size:11px;padding:6px 8px;min-height:40px}.plan-footer p{display:none}.plan-close{width:40px;height:40px;font-size:23px;top:8px;right:8px}dialog{padding:23px 20px}dialog h2{font-size:22px}.detail-loading{top:calc(max(8px,env(safe-area-inset-top)) + 160px);font-size:10px;max-width:90%}#toast{bottom:205px;font-size:12px}.status-panel{max-width:calc(100% - 28px);padding:14px 16px;font-size:13px;white-space:normal}
}
@media(max-height:550px) and (min-width:600px){
  .heading{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top))}.heading>div{padding:6px 12px}.heading h1{font-size:18px;line-height:1.4}.heading .eyebrow,.heading p:last-child{display:none}.page-links{max-width:none;flex-wrap:nowrap}.page-links a,.page-links button{min-height:38px}
  .scene-controls{left:max(10px,env(safe-area-inset-left));top:62px;gap:6px}.scene-controls button{min-width:0;padding:5px 8px;min-height:34px}
  .building-shelf{left:max(10px,env(safe-area-inset-left));bottom:60px;padding:8px;width:245px}.shelf-note{display:none}.building-buttons{margin:6px 0;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.building-buttons button{font-size:12px;padding:4px 0;min-height:36px}.plan-groups button{padding:4px 0;min-height:32px}.plan-groups button strong{display:inline;font-size:13px}
  .view-tools{right:max(10px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));display:flex;gap:6px}.view-tools button,.model-page .view-tools button{min-width:52px;min-height:42px;padding:5px;font-size:12px}.bottom-note{display:none}.plan-notices{max-height:65px}.plan-header{padding-top:10px;padding-bottom:6px}
}
