:root{color-scheme:dark;--bg:#202221;--panel:#272927;--line:#454743;--text:#eeeee9;--muted:#b8b9b2;--copper:#d4a17e;--accent:#966749;--panel-left:258px;--panel-right:252px;font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif;font-size:13px}*{box-sizing:border-box}body{margin:0;height:100dvh;display:grid;grid-template-columns:258px minmax(400px,1fr) 252px;background:var(--bg);color:var(--text);overflow:hidden}button,input,select{font:inherit}button,.import-button{border:1px solid transparent;background:none;color:inherit;cursor:pointer;border-radius:5px;padding:9px 12px;transition:background .18s,color .18s}button:hover,.import-button:hover{background:#ffffff12}button:focus-visible,input:focus-visible,.import-button:focus-visible{outline:2px solid var(--copper);outline-offset:3px}button:disabled{opacity:.35;cursor:default}button.active,button[aria-pressed=true]{color:var(--copper);background:#bc87641f;border-color:#986e50}button.primary{background:#986b4e;border:1px solid #c89b7c;color:white}h1,h2,h3,p{margin:0}h2{font-size:16px;font-weight:500}h3{font-size:12px;font-weight:500}input[type=range]{accent-color:var(--copper);width:100%}input[type=search],input[type=number],select{border:1px solid var(--line);border-radius:4px;background:#30332f;color:var(--text);padding:9px;min-width:0}input::placeholder{color:#b8b9b2}.library{display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--line);background:linear-gradient(130deg,#292b28,#1c1e1d)}.brand{padding:27px 24px 25px;border-bottom:1px solid var(--line)}.brand h1{font:34px 'Songti SC','STSong',serif;color:var(--copper);font-weight:400;letter-spacing:.035em}.brand>span{display:block;letter-spacing:.16em;font-size:10px;color:var(--copper);margin-top:9px}.library-head{padding:22px 20px 14px;display:flex;justify-content:space-between;align-items:center}.library-head h2{font-size:14px}.library-head>span{font-size:11px;color:var(--muted)}#search{margin:0 18px;width:calc(100% - 36px)}#categories{display:flex;gap:3px;padding:13px 16px 10px;flex-wrap:wrap}#categories button{padding:6px 10px;font-size:11px}#catalog{overflow:auto;flex:1;padding:0 18px}.catalog-item{width:100%;display:flex;align-items:center;text-align:left;gap:9px;border-bottom:1px solid var(--line);border-radius:0;padding:7px 0;min-height:93px}.catalog-item:hover{background:#ffffff08}.catalog-item img{width:103px;height:80px;object-fit:contain}.catalog-item strong{font-size:13px;font-weight:400;display:block}.catalog-item small{font-size:10px;display:block;color:var(--muted);margin-top:7px}.catalog-item b{font-weight:300;font-size:22px;color:var(--copper);margin-left:auto}.library-foot{padding:19px 20px;border-top:1px solid var(--line);font-size:11px}.library-foot small{display:block;color:var(--muted);font-size:10px;margin-top:7px}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--copper);margin-right:7px}main{min-width:0;display:flex;flex-direction:column;background:#b7b7b3}.topbar{height:78px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 25px;background:#272927;border-bottom:1px solid var(--line);gap:15px}.topbar strong{font-size:15px;font-weight:500;display:block}.topbar span{font-size:10px;color:var(--muted);display:block;margin-top:7px}.topbar i{font-style:normal;padding:0 7px;color:#686d65}.top-actions{display:flex;gap:6px;white-space:nowrap;font-size:11px}#viewport{position:relative;flex:1;min-height:200px;overflow:hidden;color:#333833}#canvas{position:absolute;inset:0}canvas{display:block;touch-action:none}.scene-heading{position:absolute;left:28px;top:28px;pointer-events:none}.scene-heading>span{font-size:10px;color:#4d534d;border:1px solid #858d83;border-radius:3px;padding:4px 7px}.scene-heading h2{font-family:'Songti SC',serif;font-size:27px;line-height:1.4;font-weight:400;margin-top:16px;letter-spacing:.025em}.scene-heading p{font-size:10px;color:#51594f;margin-top:10px}.view-switch{position:absolute;right:25px;top:25px;background:#353a36;display:flex;border-radius:24px;padding:3px;color:#ddd}.view-switch button{border-radius:22px;padding:9px 20px;font-size:12px}.view-switch button.active{background:#91694f;color:#fff;border-color:#cba284}.scene-tools{position:absolute;right:23px;top:83px;display:flex;gap:4px}.scene-tools button{font-size:10px;background:#e6e7e0;color:#333a34;border-color:#949b90;padding:7px 9px}.north{position:absolute;right:28px;bottom:25px;text-align:center;font-size:27px;color:#3c443d}.north span{display:block;font-size:10px;margin-top:3px}.canvas-caption{position:absolute;left:28px;bottom:23px;font-size:24px;letter-spacing:.05em;color:#404a40;pointer-events:none}.canvas-caption span{display:block;font-size:9px;letter-spacing:.12em;margin-top:4px}.dock{margin:0 20px;display:flex;align-items:center;gap:22px;background:#30332f;border:1px solid #575c53;border-radius:9px;padding:22px 24px;min-height:120px}.instruction{flex:1;min-width:0}.small-label{font-size:10px;color:var(--muted)}.instruction h2{font-size:18px;margin-top:9px;color:var(--copper)}.instruction p{font-size:10px;color:var(--muted);margin-top:9px;line-height:1.5}.wall-control{width:155px;flex-shrink:0;border-left:1px solid #565c52;padding-left:20px}.wall-control label{display:flex;justify-content:space-between;font-size:10px}.wall-control output{color:var(--copper)}.wall-control input{margin:13px 0 4px}.wall-control>div{display:flex;gap:5px}.wall-control button{font-size:9px;padding:4px 0;flex:1;color:var(--muted)}.dock-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:10px}.dock-actions button,.import-button{border:1px solid #62685c;padding:8px;white-space:nowrap;text-align:center}.dock-actions #undo{grid-column:1/-1}.footer{height:37px;display:flex;justify-content:space-between;padding:11px 24px;font-size:9px;color:#3d453c;gap:10px}.inspector{background:#272927;border-left:1px solid var(--line);display:flex;flex-direction:column;overflow:auto}.inspector>header{height:78px;padding:22px 19px;border-bottom:1px solid var(--line);flex-shrink:0}.inspector>header h2{font-size:14px}.inspector>header span{display:block;color:var(--muted);font-size:10px;margin-top:6px}.inspector section{padding:22px 18px;border-bottom:1px solid var(--line)}.finish-list{display:flex;gap:7px;margin-top:15px}.finish-list button{padding:6px 3px;flex:1;font-size:9px;border:1px solid #555a51}.finish-list i{display:block;height:25px;border-radius:2px;margin-bottom:7px}.empty-selection{text-align:center;padding:15px 0}.empty-selection>span{font-size:30px;color:var(--copper)}.empty-selection h3{font-size:13px;margin:15px 0 8px}.empty-selection p{font-size:10px;line-height:1.9;color:var(--muted)}.selection-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.selection-title h3{font-size:15px;color:var(--copper)}.selection-title small{font-size:10px;color:var(--muted)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-grid label{font-size:10px;color:var(--muted)}.field-grid input{width:100%;margin-top:6px;padding:7px}.selection-color{display:flex;align-items:center;justify-content:space-between;font-size:11px;margin-top:15px}.selection-color input{width:50px;height:26px;padding:0;border:0;background:none}.selection-actions{display:flex;gap:5px;margin-top:15px;flex-wrap:wrap}.selection-actions button{border:1px solid #5c6258;font-size:10px;flex:1;white-space:nowrap;padding:7px}.selection-help{font-size:10px;line-height:1.7;color:var(--muted);margin-top:13px}#toast{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);padding:11px 19px;background:#292e28;color:#f3eee5;border-radius:6px;font-size:12px;max-width:90%;text-align:center;pointer-events:none;opacity:0;transition:opacity .2s}#toast.visible{opacity:1}.room-label{color:#303a31;font-size:11px;padding:4px 7px;background:#eef0e5dd;border-radius:3px;white-space:nowrap;pointer-events:none}dialog{width:min(1120px,92vw);max-height:92dvh;background:#252824;border:1px solid #68705f;border-radius:10px;color:var(--text);padding:20px}dialog::backdrop{background:#000b}dialog header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}dialog p{font-size:11px;color:var(--muted);margin-top:8px}dialog img{display:block;width:100%;max-height:75dvh;object-fit:contain}
@media(min-width:1650px){:root{--panel-left:290px;--panel-right:275px}body{grid-template-columns:290px minmax(400px,1fr) 275px}.catalog-item{min-height:108px}.catalog-item img{width:118px;height:90px}.scene-heading h2{font-size:32px}}@media(max-width:1150px){:root{--panel-left:215px;--panel-right:215px}body{grid-template-columns:215px minmax(360px,1fr) 215px}.brand{padding:25px 18px}.brand h1{font-size:29px}.catalog-item img{width:76px;height:69px}.catalog-item{min-height:83px}.catalog-item small{font-size:9px}.topbar{padding:0 16px}.scene-heading h2{font-size:22px}.scene-heading p{display:none}.dock{padding:17px 15px;margin:0 12px;gap:12px}.dock-actions{grid-template-columns:1fr}.dock-actions #undo{grid-column:auto}.wall-control{width:120px;padding-left:12px}.instruction h2{font-size:15px}.footer{padding:10px 14px;font-size:8px}.scene-tools{top:77px}.inspector section{padding:18px 13px}}
@media(max-width:880px){body{height:auto;min-height:100dvh;grid-template-columns:185px minmax(0,1fr);overflow:auto}.inspector{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;overflow:visible}.inspector>header{grid-column:1/-1;height:65px}.inspector section{border-right:1px solid var(--line)}.library{height:800px}main{height:800px}.scene-heading{top:22px;left:20px}.scene-heading h2{font-size:20px}.scene-tools{top:auto;bottom:75px;right:15px}.dock{flex-wrap:wrap;min-height:155px}.dock-actions{display:flex;width:100%;justify-content:flex-end}.footer{height:48px;flex-direction:column;gap:4px}.topbar span{max-width:190px}.top-actions button{padding:8px;font-size:10px}.view-switch{right:15px;top:18px}.view-switch button{padding:8px 12px}}
@media(max-width:560px){body{display:flex;flex-direction:column}.library{height:auto;order:2;border-right:0}.brand{display:none}.library-head{padding-top:18px}#categories{padding:10px 16px}#catalog{display:flex;padding-bottom:12px;gap:10px;overflow:auto}.catalog-item{min-width:155px;width:155px;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--line);border-radius:5px}.catalog-item img{width:110px;height:75px}.catalog-item b{display:none}.catalog-item small{margin-top:3px}.library-foot{display:none}main{height:740px;min-height:90dvh;order:1}.topbar{height:72px;padding:0 14px}.topbar span{font-size:9px}.scene-heading h2{font-size:23px}.inspector{order:3;display:grid;width:100%}.scene-heading{top:25px}.scene-tools{bottom:65px}.dock{margin:0 10px}.canvas-caption{left:20px}.footer{padding-left:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.north b{display:block;font-weight:400}.plan-view .scene-heading h2,.plan-view .scene-heading p{display:none}#viewport{container-type:inline-size}@container(max-width:600px){.scene-heading h2,.scene-heading p{display:none}}.catalog-item>span{min-width:0}.catalog-item small{white-space:nowrap;font-size:9px}.catalog-item strong{line-height:1.5}.catalog-item img{flex-shrink:0}.import-button:focus-visible{outline:2px solid var(--copper)}
#libraryTabs{display:flex;gap:4px;padding:14px 17px 0}#libraryTabs button{flex:1;font-size:12px;padding:8px 6px;border:1px solid var(--line)}.library-head{padding-top:16px}.brand{padding-bottom:19px}.brand h1{font-size:31px}#targetInfo{margin:0 18px 12px;padding:10px;background:#30372e;border-radius:5px}#targetInfo label{display:block;font-size:10px;color:var(--muted)}#targetInfo select{width:100%;font-size:11px;margin-top:6px;padding:7px}#targetInfo small{display:block;font-size:9px;color:var(--muted);margin-top:8px;line-height:1.5}.surface-catalog{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:start}.surface-item{padding:5px;border:1px solid var(--line);font-size:11px;text-align:left}.surface-item img{width:100%;height:77px;object-fit:cover;border-radius:3px;display:block}.surface-item span{display:block;padding:9px 2px 5px;line-height:1.5}.surface-item.active{border-color:var(--copper)}.target-facts{margin:0}.target-facts>div{display:flex;justify-content:space-between;font-size:11px;margin:15px 0}.target-facts dt{color:var(--muted)}.target-facts dd{margin:0}.target-button{display:block;width:100%;border:1px solid var(--line);font-size:11px;margin-top:12px;text-align:left}.door-angle{display:block;font-size:11px;margin-top:20px}.door-angle output{float:right;color:var(--copper)}.door-angle input{margin-top:12px}#targetMenu{position:fixed;inset:auto;margin:0;min-width:186px;max-width:260px;padding:7px;background:#252c26;color:#eeeee7;border:1px solid #a38567;border-radius:7px;box-shadow:0 4px 8px #0004;z-index:20}#targetMenu>strong{display:block;font-size:11px;font-weight:500;color:var(--copper);padding:9px 11px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}#targetMenu button{display:block;width:100%;text-align:left;font-size:12px;padding:10px 11px}#targetMenu p{white-space:pre-line;font-size:11px;line-height:1.8;color:var(--muted);padding:7px 11px}#variantDialog{width:min(850px,92vw)}#variantGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:17px}.variant-card{border:1px solid var(--line);text-align:left;padding:14px}.variant-card img{width:100%;height:128px;object-fit:contain}.variant-card strong{display:block;font-weight:400;font-size:13px;margin-top:10px}.variant-card small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.keep-size{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px}.keep-size input{accent-color:var(--copper)}.selection-actions{display:grid;grid-template-columns:1fr 1fr}.library .catalog-item img{width:92px}.library .catalog-item small{font-size:9px}.library .catalog-item strong{font-size:12px}#catalog{padding-bottom:15px}.empty-selection p{line-height:2}
@media(max-width:1150px){.library .catalog-item img{width:70px}.brand h1{font-size:27px}.surface-item{font-size:10px}.surface-item img{height:62px}}
@media(max-width:880px){.library .catalog-item img{width:60px}.library .catalog-item{gap:5px}.library .catalog-item strong{font-size:11px}#targetInfo{margin:0 10px 10px}.surface-catalog{gap:6px!important;padding:0 10px!important}}
@media(max-width:560px){#libraryTabs{padding-top:16px}.library .catalog-item img{width:100px}.library .catalog-item{width:155px;min-width:155px}#catalog.surface-catalog{display:flex;flex-wrap:nowrap;padding:0 16px 15px!important}.surface-item{min-width:126px}.surface-item img{height:90px}.wall-legend{flex-direction:row;flex-wrap:wrap}#variantGrid{grid-template-columns:1fr 1fr}.variant-card img{height:95px}.variant-card{padding:10px}#targetInfo{margin:0 16px 12px}.inspector #selection{grid-column:1/-1}}
/* Account and design workflow share the existing charcoal / copper workbench. */
.studio-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 20px;border-bottom:1px solid var(--line);background:#222923}.studio-toolbar button{font-size:11px;padding:8px 10px}.style-control{display:flex;border:1px solid #667064;border-radius:4px}.style-control select{color:#e5dac8;background:#30392f;border:0;padding:5px 8px;min-width:110px;max-width:150px}.account-button{margin-left:auto;color:var(--copper)!important}.studio-dialog{width:min(480px,92vw);max-height:88vh;overflow:auto;background:#242c25;color:#efeee5;border:1px solid #687064}.studio-dialog.wide{width:min(950px,94vw)}.studio-dialog p{font-size:12px;line-height:1.8;color:#bec5b8}.studio-dialog h2{font-size:24px}.studio-dialog h3{font-size:15px}.studio-dialog label{font-size:12px}.studio-dialog input,.studio-dialog select{background:#182019;border:1px solid #667161;color:#f0eee4;padding:10px;border-radius:4px;box-sizing:border-box}.studio-dialog input:focus,.studio-dialog select:focus{outline:2px solid #bf936e;outline-offset:2px}#authForm>label{display:grid;gap:8px;margin:20px 0}#authError{color:#efad91}.save-style,.upload-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.save-style input{flex:1;min-width:150px}.save-style button,.upload-controls button{border:1px solid var(--line);font-size:12px}.saved-style{display:flex;gap:22px;padding:24px 0;border-top:1px solid var(--line);align-items:center}.saved-style>img,.style-placeholder{width:160px;height:112px;object-fit:cover;background:#414b40;border-radius:4px}.style-placeholder{display:grid;place-items:center;font-size:45px;color:#bfaa8b}.saved-style h3{margin:0 0 10px}.saved-actions{display:flex;flex-wrap:wrap;gap:5px}.saved-actions button{font-size:11px;border:1px solid var(--line)}.studio-empty{padding:50px 0}.file-picker{display:block;border:1px dashed #8e9a85;padding:12px}.file-picker input{display:block;max-width:230px;font-size:11px;padding:5px;border:0}.upload-controls label{display:grid;gap:8px}.upload-controls input[type=number]{width:135px}.upload-help{margin:20px 0}#cropCanvas{display:block;width:100%;max-height:430px;object-fit:contain;background:#fff;touch-action:none;cursor:crosshair;height:auto}#cropCanvas:not([hidden]){max-height:none}.review-heading{display:flex;justify-content:space-between;align-items:center}.review-scroll{overflow:auto}.room-table{width:100%;border-collapse:collapse;font-size:11px}.room-table th{text-align:left;padding:10px;color:#c2c9bb}.room-table td{padding:4px}.room-table input{width:85px}.room-table select{width:100px}.opening-edit{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:12px 0;font-size:11px}.opening-edit span{min-width:200px}.opening-edit label{display:flex;align-items:center;gap:5px}.opening-edit input{width:70px;padding:6px}.opening-edit select{padding:6px}#openingReview{max-height:300px;overflow:auto;margin:16px 0}#renderImage{width:100%;height:auto;margin:15px 0}.download-render{display:inline-block;color:#efddc2;border:1px solid #a0866b;padding:12px;text-decoration:none}.download-render[hidden]{display:none}#tourBar{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);width:max-content;max-width:85vw;background:#202c23;color:#eee7dc;border:1px solid #c29a77;padding:12px 20px;z-index:25;border-radius:6px;font-size:12px}#tourBar button{color:#eac7a7;margin-left:15px}#tourBar[hidden]{display:none}.studio-toolbar+section{min-height:250px}@media(max-width:880px){.studio-toolbar{padding:6px;gap:0}.studio-toolbar button{font-size:10px;padding:7px}.saved-style{gap:12px}.saved-style>img,.style-placeholder{width:100px;height:80px}.scene-heading h2{font-size:25px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important}}

#collectionFilter{width:100%;margin:0 0 10px;padding:9px 10px;background:#30372f;color:#eee9dd;border:1px solid #606758;border-radius:5px;font:inherit}#collectionFilter[hidden]{display:none}

/* Right panel: budget table */
.budget-summary{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:13px 14px;border:1px solid #575c53;border-radius:7px;background:#2f332e}
.budget-summary span{font-size:10px;color:var(--muted)}
.budget-summary strong{font-size:22px;font-weight:500;color:var(--copper);letter-spacing:.02em}
.budget-table{width:100%;border-collapse:collapse;margin-top:14px;font-size:11px;table-layout:fixed}
.budget-table th{text-align:left;font-weight:400;color:var(--muted);font-size:10px;padding:7px 4px;border-bottom:1px solid var(--line)}
.budget-table td{padding:7px 4px;border-bottom:1px solid #3a3d38;line-height:1.5;vertical-align:top}
.budget-table th:nth-child(1),.budget-table td:nth-child(1){width:44%}
.budget-table th:nth-child(n+2),.budget-table td:nth-child(n+2){text-align:right;white-space:nowrap}
.budget-table tr.budget-group th{padding-top:15px;color:var(--copper);letter-spacing:.05em;border-bottom:1px solid #4a4f46}
.budget-table tr.budget-group th:last-child{color:var(--text)}
.budget-table td:nth-child(4){color:#f1ede3}
.budget-empty{color:var(--muted);line-height:1.9;padding:16px 4px!important;text-align:left!important;white-space:normal!important}
.budget-note{margin-top:14px;font-size:9px;line-height:1.8;color:var(--muted)}
/* Wall thickness chooser */
.wall-choice{display:flex;gap:6px;margin-top:14px}
.wall-choice button{flex:1;border:1px solid #5c6258;font-size:10px;padding:8px 3px;white-space:nowrap}
.wall-choice i{display:block;height:9px;border-radius:2px;margin-bottom:6px}
.wall-choice button[data-thickness=thick] i{height:12px;background:#8b9f91;border:1px solid #b2c1b5}
.wall-choice button[data-thickness=thin] i{height:5px;background:#c79258}
.wall-choice button[data-thickness=auto] i{background:linear-gradient(90deg,#8b9f91 50%,#c79258 50%)}
.wall-control>button.wide{width:100%;margin-top:6px}
/* Side panels stay collapsed until the pointer reaches the edge of the workbench. */
@media(min-width:881px) and (hover:hover) and (pointer:fine){
 body{grid-template-columns:minmax(0,1fr)}
 main{grid-column:1/2}
 .panel-hot{position:fixed;top:0;bottom:0;width:13px;z-index:44;background:transparent}
 .panel-hot.left{left:0}.panel-hot.right{right:0}
 .panel-hot::after{content:'';position:absolute;top:50%;width:4px;height:58px;margin-top:-29px;border-radius:3px;background:#ffffff2e;transition:background .2s,height .2s}
 .panel-hot.left::after{left:4px}.panel-hot.right::after{right:4px}
 .panel-hot:hover::after{background:var(--copper);height:78px}
 .library,.inspector{position:fixed;top:0;bottom:0;z-index:45;max-height:100dvh;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s}
 .library{left:0;width:var(--panel-left);transform:translateX(-102%)}
 .inspector{right:0;width:var(--panel-right);transform:translateX(102%)}
 .panel-hot.left:hover~.library,.library:hover,.library:focus-within,.panel-hot.right:hover~.inspector,.inspector:hover,.inspector:focus-within{transform:translateX(0);box-shadow:0 0 40px #00000066}
}
@media(prefers-reduced-motion:reduce){.library,.inspector{transition:none}}

/* 参数调节：选中家具后停在右侧的悬浮卡片，不随左右栏收起而消失 */
#paramPanel{position:fixed;right:16px;top:120px;width:272px;max-height:calc(100dvh - 150px);overflow:auto;z-index:62;background:#242b25;border:1px solid #6b7364;border-radius:10px;box-shadow:0 14px 42px #000000a6;padding:14px 15px 16px}
#paramPanel[hidden]{display:none}
#paramPanel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line);margin-bottom:12px}
#paramPanel h3{font-size:14px;color:var(--copper)}
#paramPanel small{display:block;font-size:10px;color:var(--muted);margin-top:5px}
#paramPanel button{border:1px solid #5c6258;font-size:10px;padding:6px 8px}
#closeParam{border:0;padding:4px 6px!important;font-size:12px!important}
.param-group{margin-bottom:14px}
.param-group>span{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}
.param-row{display:grid;grid-template-columns:52px 1fr 62px;align-items:center;gap:7px;margin:6px 0}
.param-row>label{font-size:10px;color:var(--muted)}
.param-row input[type=range]{width:100%;margin:0}
.param-row input[type=number]{padding:5px 6px;font-size:11px;width:100%}
.param-presets{display:flex;flex-wrap:wrap;gap:5px}
.param-presets button{flex:1 1 46%;white-space:nowrap}
.param-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px}
.param-note{font-size:9px;line-height:1.8;color:var(--muted);margin-top:10px}
.param-note.warn{color:#e8a08a}
#paramPanel .param-room{color:var(--copper)}

/* 门窗／地面款式选择：弹出对话框，不再依赖会收起的左侧素材库 */
#surfaceDialog{width:min(880px,92vw)}
.surface-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px;max-height:52dvh;overflow:auto}
.surface-grid .variant-card{padding:10px}
.surface-grid .variant-card img{height:96px}
#surfaceScopeWrap{margin-top:6px}
#surfaceScopeWrap label{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
#surfaceScopeWrap select{background:#182019;border:1px solid #667161;color:#f0eee4;padding:8px;border-radius:4px;font:inherit}
@media(max-width:880px){.surface-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 漫游速度档位 */
.tour-speed{display:inline-flex;gap:3px;margin-left:14px;vertical-align:middle}
.tour-speed button{padding:4px 9px;font-size:11px;border:1px solid #5d6b60;border-radius:4px;color:#d7e0d4}
.tour-speed button.active{background:#8a6a4f;border-color:#c8a17c;color:#fff}

/* 视角页签：摆在“我的风格”右侧，做成浏览器页签的样子——上圆角、贴住工具栏底边，
   当前页签用一小段底色盖住分隔线，看起来和下面的画布连成一体。 */
.view-tabs{display:flex;align-items:flex-end;gap:3px;align-self:stretch;margin:0 0 -10px 6px;padding:0 2px 0 12px;border-left:1px solid var(--line);overflow-x:auto;overflow-y:hidden;max-width:min(48vw,520px);scrollbar-width:thin}
.view-tab{position:relative;flex:0 0 auto;display:flex;align-items:center;gap:3px;margin-bottom:-1px;padding:5px 7px 6px 12px;border:1px solid #474d45;border-bottom:0;border-radius:9px 9px 0 0;background:#1c1f1d;color:#9ca299;font-size:11px;cursor:pointer;transition:background .16s,color .16s}
.view-tab:hover{background:#252a25;color:#d7dad0}
.view-tab.active{background:#31372f;color:#f0eadc;border-color:#6d7667}
.view-tab.active::after{content:'';position:absolute;left:0;right:0;bottom:-1px;height:2px;background:#31372f}
.view-tabs .vt-open{max-width:112px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.view-tabs .vt-open:hover{background:none}
.view-tab .vt-close{display:grid;place-items:center;width:14px;height:14px;padding:0;border:0;border-radius:50%;background:none;color:#7e847b;font-size:9px;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s,background .15s,color .15s}
.view-tab.pinned:hover .vt-close,.view-tab.pinned.active .vt-close,.view-tab.pinned:focus-within .vt-close{opacity:1}
.view-tab .vt-close:hover{background:#56473a;color:#f1e0cc}
.view-tabs .view-tab-add{flex:0 0 auto;display:grid;place-items:center;width:23px;height:23px;margin-bottom:1px;padding:0;border:1px dashed #5b6257;border-radius:6px;background:none;color:#a8afa3;font-size:13px;line-height:1;cursor:pointer}
.view-tabs .view-tab-add:hover{background:#2b312b;border-color:var(--copper);color:var(--copper)}
.view-tabs .view-tab-add:disabled{opacity:.35}
@media(max-width:1150px){.view-tabs{max-width:min(40vw,340px)}.view-tabs .vt-open{max-width:82px}}
@media(max-width:880px){.studio-toolbar .view-tabs{margin-bottom:-6px;max-width:100%;padding-left:8px}.view-tabs .vt-open{max-width:70px}.view-tab{padding:4px 6px 5px 9px}}


/* Full-height first-person view, without editor overlays obscuring the room. */
body.touring #viewport{position:fixed;inset:0;z-index:24;height:100dvh;min-height:0}
body.touring #viewport .scene-heading,body.touring #viewport .view-switch,body.touring #viewport .scene-tools,body.touring #viewport .canvas-caption{display:none}
body.touring #tourBar{z-index:25}

/* 路线平面图：弹窗里看走线，可切换图层，也可另开标签页或下载成 HTML */
.route-tools{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:4px 0 12px}
.route-tools label{display:flex;gap:5px;align-items:center;font-size:11.5px;color:#cfd4c8;cursor:pointer}
.route-tools input{width:14px;height:14px;accent-color:var(--copper)}
.route-tools button{margin-left:auto;font-size:11.5px;border:1px solid #62685c;padding:7px 12px}
.route-tools button+button{margin-left:0}
.route-canvas-wrap{background:#f7f5f0;border:1px solid #6a7164;border-radius:8px;padding:6px;max-height:62vh;overflow:auto}
#routeCanvas{display:block;max-width:100%;height:auto;border-radius:5px}
.route-note{font-size:11.5px!important;line-height:1.85!important;color:#aab1a4!important;margin-top:12px!important}
.route-note b{color:#e2d9c8}
