.three-viewport{position:relative;width:100%;height:100%;touch-action:none;overflow:hidden}.three-viewport canvas{display:block;width:100%;height:100%;touch-action:none}.canvas-error{position:absolute;inset:25%;padding:20px;background:#fff8e7;text-align:center;line-height:2;color:#8c815e}.report-frame{width:100%;height:65vh;min-height:300px;border:1px solid #dfe6d4;border-radius:8px;background:#f5f7ec}.report-frame+.modal-actions{align-items:center;margin-top:14px}.report-frame+.modal-actions .hint{margin:0}.room-label-lines{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.room-label-lines path{fill:none;stroke:#789078;stroke-width:1;stroke-dasharray:3 3;opacity:.72}.room-label-lines circle{fill:#49694f;stroke:#fffef5;stroke-width:1.5}.room-callout-2d>path{stroke:#789078;stroke-width:.015;stroke-dasharray:.055 .035}.room-callout-2d>circle{fill:#49694f;stroke:#fffef5;stroke-width:.015}.room-callout-2d rect{fill:#fffef6;fill-opacity:.96;stroke:#dce4d5;stroke-width:.012}.room-callout-2d text{fill:#60755d}.room-callout-2d text:last-child{fill:#35513f}:root{font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Hiragino Sans,Noto Sans JP,sans-serif;color:#314739;background:#f8f9f3;font-synthesis:none;font-weight:400;font-size:12px;--green:#315d47;--muted:#8b9287;--line:#e3e7dc;--paper:#fcfdf8;--soft:#f0f3e9}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{display:inline-flex;justify-content:center;align-items:center;gap:7px;cursor:pointer;border:1px solid transparent;border-radius:7px;padding:9px 12px;background:none;color:inherit;transition:background .15s,border-color .15s}button:hover{background:#e9eee0}button:disabled{cursor:default;opacity:.35}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid #6c916f;outline-offset:3px}input,select{min-width:0;width:100%;color:#35493a;background:#fffef9;border:1px solid #dee4d6;border-radius:6px;padding:10px;outline:none}input:focus,select:focus{border-color:#789777}input[type=checkbox]{width:14px;height:14px;accent-color:var(--green);margin:0}input[type=number]{appearance:textfield;-moz-appearance:textfield}input::-webkit-inner-spin-button{appearance:none}h1,h2,h3,p{margin-top:0}h2{font-size:17px;font-weight:600}h3{font-size:12px;font-weight:600}small{font-size:10px}a{color:var(--green)}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#254a37}.secondary{border:1px solid #dce3d4;background:#fafcf4}.quiet{color:#6c7869}.full{width:100%}.icon-button{width:33px;height:33px;padding:6px;border-radius:6px;flex-shrink:0;color:#74826f}.icon-button.active{background:#e6edde;color:#315d47}.danger-soft{color:#946356;border-color:#ebdfd4;background:#fcf7f0}.danger-soft:hover{background:#f2e4d8}.app-shell{height:100dvh;min-height:580px;display:flex;flex-direction:column;overflow:hidden}.app-header{height:73px;flex-shrink:0;display:flex;align-items:center;border-bottom:1px solid var(--line);background:var(--paper)}.brand{width:252px;flex-shrink:0;display:flex;align-items:center;gap:11px;padding-left:23px}.brand-mark{width:37px;height:37px;border-radius:10px;background:#315d47;color:#f6f9ec;display:grid;place-items:center}.brand strong{font-size:15px;letter-spacing:.04em}.brand small{display:block;font-size:8px;letter-spacing:.21em;color:#86907e;margin-top:4px}.project-heading{display:flex;flex-direction:column;gap:4px;flex:1;padding-left:24px;min-width:0}.project-heading input{border:0;background:none;padding:0;font-weight:550;font-size:13px;max-width:370px}.save-indicator{display:flex;align-items:center;gap:4px;font-size:9px;color:#929c87}.save-indicator.error{color:#a35c3e}.save-indicator.saving{color:#ad9367}.status-dot{width:5px;height:5px;border-radius:100%;background:currentColor}.header-actions{display:flex;gap:9px;padding:0 23px}.header-actions button{font-size:11px;padding:10px 15px}.workspace{display:flex;min-height:0;flex:1}.library{width:252px;flex-shrink:0;border-right:1px solid var(--line);display:flex;flex-direction:column;background:var(--paper);min-height:0}.sidebar-tabs{display:flex;gap:8px;padding:16px 15px 0;border-bottom:1px solid var(--line)}.sidebar-tabs button{flex:1;font-size:11px;padding:10px 1px 14px;border-radius:0;color:#929988;position:relative}.sidebar-tabs button.selected{color:var(--green);font-weight:600}.sidebar-tabs .selected:after{content:"";position:absolute;height:2px;bottom:-1px;left:5px;right:5px;background:#4c7051}.search{margin:19px 18px 13px;display:flex;align-items:center;gap:8px;border:1px solid #e1e7d8;background:#f5f7ee;border-radius:7px;padding:0 9px;color:#89937f}.search input{background:none;border:none;font-size:11px;padding:9px 0}.categories{display:flex;flex-wrap:wrap;gap:5px;padding:0 18px 17px}.categories button{font-size:10px;padding:5px 8px;color:#8b9583;border-radius:5px}.categories button.selected{background:#e8efdf;color:#456445;font-weight:600}.library-caption{display:flex;justify-content:space-between;padding:0 20px 12px;color:#7a886f;font-size:10px}.library-caption small{color:#a0a796}.catalog-scroll{flex:1;min-height:0;overflow:auto;padding:0 17px 20px}.catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 10px}.asset-card{display:flex;align-items:stretch;flex-direction:column;padding:0;gap:0;text-align:left;border-radius:7px;overflow:hidden}.asset-card:hover{background:#f0f4e7}.asset-image{height:85px;background:#f0f2e8;border-radius:7px;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:7px}.asset-image svg{width:76%;height:68%;filter:drop-shadow(1px 3px 2px #444e3820)}.asset-add{position:absolute;right:5px;bottom:5px;display:grid;place-items:center;border-radius:4px;width:19px;height:19px;color:#75906b;background:#fffdf9bc}.asset-card strong{font-size:10px;font-weight:500;padding:0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-card small{font-size:9px;color:#9ca18f;padding:4px 3px 0}.library-footer{padding:15px 17px;border-top:1px solid var(--line);flex-shrink:0}.link-register{width:100%;text-align:left;justify-content:space-between;padding:11px 8px;border:1px dashed #ccd8be;color:#577650}.link-register span{flex:1;padding-left:2px;font-size:10px;font-weight:500}.link-register small{display:block;font-size:8px;font-weight:400;color:#98a187;margin-top:4px}.editor{min-width:0;flex:1;display:flex;flex-direction:column;position:relative;background:#f0f1e8}.editor-toolbar{height:56px;display:flex;align-items:center;gap:9px;padding:0 17px;background:#fafbf4;border-bottom:1px solid var(--line);flex-shrink:0}.tool-group{display:flex;gap:2px;border-right:1px solid #dce2d3;padding-right:9px}.view-toggle{margin-left:auto;display:flex;gap:2px;padding:3px;background:#edf0e4;border:1px solid #e0e5d7;border-radius:7px}.view-toggle button{gap:5px;font-size:10px;padding:5px 9px;color:#89947f;border-radius:4px}.view-toggle .selected{background:#fffef8;box-shadow:0 1px 3px #364a2414;color:#45633b}.canvas-stage{position:relative;flex:1;min-height:0;overflow:hidden}.plan-2d,.viewport-3d{width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none}.viewport-3d canvas{display:block;touch-action:none;width:100%;height:100%}.plan-2d.tool-pan{cursor:grab}.plan-2d.tool-room,.plan-2d.tool-measure,.plan-2d.tool-calibrate{cursor:crosshair}.furniture{cursor:move}.furniture.locked{cursor:default}.rotate-handle{cursor:grab}.vertex-handle{cursor:crosshair}.wall-segment,.opening-glyph{cursor:pointer}.canvas-label{position:absolute;z-index:2;top:23px;left:24px;display:flex;align-items:center;gap:7px;font-size:11px;pointer-events:none;color:#677861}.live-dot{display:block;width:5px;height:5px;border-radius:50%;background:#6d895a}.canvas-label small{display:block;margin-left:6px;padding-left:11px;border-left:1px solid #bec8af;color:#97a088;font-size:9px}.canvas-controls{display:flex;align-items:center;gap:4px;position:absolute;right:23px;bottom:24px;background:#fffef8e8;box-shadow:0 3px 15px #4c5b2920;border:1px solid #e3e6d7;padding:5px;border-radius:9px;z-index:3}.canvas-controls .icon-button{width:30px;height:29px}.control-divider{height:20px;border-left:1px solid #dfe4d4;margin:0 3px}.canvas-help{position:absolute;bottom:18px;left:50%;transform:translate(-50%);font-size:9px;color:#959c88;white-space:nowrap;pointer-events:none;padding:6px 10px;border-radius:15px;background:#f5f5e9a0}.calibrate-button{position:absolute;bottom:65px;left:20px;z-index:2;background:#fffef7e8;border:1px solid #d6dfc6;font-size:10px;box-shadow:0 2px 8px #354a3211}.canvas-empty{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#72886a;background:#f5f7ede6;padding:30px;width:330px;border-radius:12px;pointer-events:none}.canvas-empty h2{margin:15px 0 10px;font-size:18px}.canvas-empty p{font-size:11px;color:#94a087}.canvas-empty button{pointer-events:auto}.three-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.three-labels button{position:absolute;transform:translate(-50%,-50%);background:#fffef4df;border:1px solid #e6e9dcb5;box-shadow:0 2px 8px #4c604516;display:flex;flex-direction:column;gap:4px;padding:6px 10px;pointer-events:auto;white-space:nowrap;color:#55704c;border-radius:7px;min-width:74px}.three-labels button span{font-size:9px;color:#859278}.three-labels button strong{font-size:13px;font-weight:600}.plan-tabs{height:49px;display:flex;align-items:center;background:#fcfdf7;border-top:1px solid #e2e6d8;flex-shrink:0;padding:0 13px;gap:10px}.plan-tab-scroll{display:flex;align-items:center;gap:4px;overflow:auto;flex:1;scrollbar-width:none}.plan-tab-scroll>button:not(.icon-button){white-space:nowrap;font-size:10px;color:#8c9580;border-radius:5px;padding:8px 12px}.plan-tab-scroll>button.selected{background:#edf2e3;color:#42623c}.plan-tab-dot{width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.7}.compare-button{font-size:10px;color:#6d7f60;flex-shrink:0;border-left:1px solid #e2e7d9;border-radius:0;padding:3px 9px}.inspector{width:284px;flex-shrink:0;display:flex;flex-direction:column;min-height:0;background:var(--paper);border-left:1px solid var(--line)}.inspector-heading{height:56px;display:flex;align-items:center;justify-content:space-between;padding:0 21px;border-bottom:1px solid var(--line);color:#6b7b60;font-size:11px;flex-shrink:0}.inspector-scroll{padding:23px 21px 20px;flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#d5dec8 transparent}.project-intro .eyebrow{font-size:8px;letter-spacing:.19em;color:#9ba38f}.project-intro h2{font-size:18px;font-weight:450;letter-spacing:.06em;margin:13px 0 10px}.project-intro p{font-size:10px;color:#a0a793;margin-bottom:23px}.total-area{background:#f0f4e7;padding:18px 19px 13px;border:1px solid #e4ebd7;border-radius:9px}.total-area>span{display:flex;justify-content:space-between;color:#728264;font-size:10px}.total-area>span small{font-size:8px;color:#99a18b}.total-area>strong{display:block;font-size:35px;font-weight:450;letter-spacing:-.04em;line-height:1.4;margin-top:7px;font-variant-numeric:tabular-nums}.total-area>strong small{font-size:15px;letter-spacing:0;margin-left:7px}.total-area p{display:flex;align-items:center;font-size:9px;color:#9aa38a;margin:6px 0}.total-area p i{height:10px;border-left:1px solid #c4d0b4;margin:0 12px}.occupancy{margin:23px 0 26px}.occupancy>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#7b876f}.occupancy b{font-size:18px;font-weight:450;color:#536d45}.occupancy b small{font-size:10px;padding-left:2px}.progress-track{height:5px;background:#e8eddf;border-radius:8px;margin:12px 0 10px;overflow:hidden}.progress-track>span{display:block;height:100%;background:#8fa57b;border-radius:8px}.occupancy-legend{display:flex;justify-content:space-between;font-size:8px;color:#9aa28c}.occupancy-legend span{display:flex;align-items:center;gap:4px}.occupancy-legend i{width:5px;height:5px;background:#8fa57b;border-radius:50%}.inspector-section{border-top:1px solid #e5eadc;padding-top:18px;margin-top:19px}.inspector-section h3{font-size:10px;color:#7c8c6d;font-weight:500;margin-bottom:12px}.summary-rooms{display:flex;flex-direction:column;gap:0}.summary-rooms button{display:flex;width:100%;justify-content:space-between;padding:9px 0;border-radius:0;border-bottom:1px solid #f0f2e9;font-size:9px}.summary-rooms button span{display:flex;align-items:center;gap:6px;color:#859276}.summary-rooms button i{width:6px;height:6px;border-radius:2px;flex-shrink:0}.summary-rooms b{font-weight:500;color:#566a49;white-space:nowrap}.hint{font-size:9px;line-height:1.85;color:#9aa38d;margin:14px 0}.budget-summary{border-top:1px solid var(--line);margin-top:18px;padding-top:16px;display:grid;grid-template-columns:1fr auto;gap:8px;font-size:10px;color:#80916f}.budget-summary b{font-weight:500;color:#566d49}.budget-summary small{grid-column:1/3;font-size:8px;color:#a7af9b}.inspector-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);height:49px;padding:0 19px;flex-shrink:0;gap:12px}.inspector-bottom select{width:62px;padding:5px 8px;font-size:10px}.inspector-bottom label{display:flex;align-items:center;gap:6px;font-size:9px;color:#8d997e}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:14px;min-width:0}.field>span{color:#849376;font-size:10px}.field input,.field select{font-size:11px;padding:10px 9px}.input-unit{display:flex;align-items:center;position:relative}.input-unit input{padding-right:26px;font-variant-numeric:tabular-nums}.input-unit small{position:absolute;right:8px;pointer-events:none;color:#a3ad96;font-size:8px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-grid.three{grid-template-columns:repeat(3,1fr);gap:6px}.field-grid.three .input-unit input{padding-left:7px;padding-right:19px;font-size:10px}.field-grid.three .input-unit small{right:4px;font-size:7px}.object-preview{height:125px;background:#f1f4e9;border-radius:9px;margin-bottom:19px;position:relative;display:flex;justify-content:center;align-items:center}.object-preview svg{width:75%;height:85%}.object-preview>span{position:absolute;right:8px;bottom:7px;font-size:8px;color:#a4ad94}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.section-heading h3{margin:0}.rotation-row{display:flex;align-items:end;gap:5px}.rotation-row .field{flex:1;margin-bottom:0}.rotation-row .icon-button{margin-bottom:2px;background:#f0f4e8;width:34px;height:33px}.swatches{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.swatches button{width:22px;height:22px;border:2px solid var(--paper);padding:0;border-radius:50%;box-shadow:0 0 0 1px #dce3d3}.swatches button.selected{box-shadow:0 0 0 2px #668357}.custom-color{width:22px;height:22px;border:1px dashed #b1bca5;border-radius:50%;position:relative;display:grid;place-items:center;color:#8f9d7c;overflow:hidden}.custom-color input{position:absolute;inset:0;opacity:0;cursor:pointer;padding:0}.button-pair{display:flex;gap:8px;margin-top:19px}.button-pair button{flex:1;font-size:10px}.source-link{display:flex;align-items:center;gap:6px;font-size:10px;text-decoration:none;margin:9px 0}.room-area-display{background:#eff4e5;border:1px solid #e2ead7;border-radius:8px;padding:17px;margin:18px 0}.room-area-display>*{display:block}.room-area-display small{color:#8c997b;font-size:9px}.room-area-display strong{font-size:26px;font-weight:450;margin:10px 0}.room-area-display span{font-size:9px;color:#95a085}.check-row{display:flex;align-items:center;gap:9px;margin:18px 0;font-size:11px;color:#7b8e6a}.metric-lines{border-top:1px solid var(--line);padding:13px 0;margin:18px 0}.metric-lines>div{display:flex;justify-content:space-between;padding:9px 0;font-size:10px;color:#879779}.metric-lines b{font-weight:500}.object-title{font-size:15px;margin-bottom:20px}.stack-buttons{display:flex;flex-direction:column;gap:10px;margin-top:23px}.section-intro{padding:23px 19px 15px}.section-intro h2{font-size:14px;margin-bottom:7px}.section-intro p{font-size:9px;color:#9ca88e}.room-list{flex:1;overflow:auto;padding:0 10px}.room-card{width:100%;display:flex;justify-content:start;gap:8px;padding:13px 8px;text-align:left;border-bottom:1px solid #eff2e7;border-radius:5px}.room-card.selected{background:#eef3e4}.room-swatch{width:9px;height:24px;border-radius:3px;flex-shrink:0}.room-card>span:nth-child(2){flex:1;min-width:0}.room-card strong{display:block;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.room-card small{display:block;font-size:8px;color:#a2ad94;margin-top:5px}.room-card b{font-size:10px;font-weight:500;white-space:nowrap}.statusbar{height:28px;background:#f9fbf3;border-top:1px solid var(--line);flex-shrink:0;display:flex;align-items:center;gap:23px;padding:0 19px;font-size:8px;color:#a0a890}.statusbar>span{display:flex;align-items:center;gap:6px}.reference-dot{width:4px;height:4px;border-radius:50%;background:#b3b999}.statusbar button{font-size:8px;padding:1px 4px;color:#899a77;gap:5px}.statusbar .has-issues{color:#ac9364}.warning-dot{width:5px;height:5px;background:#c39b60;display:inline-block;border-radius:50%;flex-shrink:0}.status-end{margin-left:auto}.status-end span{margin:0 3px}.modal-backdrop{position:fixed;inset:0;background:#25362555;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:20;padding:25px}.modal{width:480px;max-width:100%;max-height:90dvh;overflow:auto;background:#fcfdf7;border-radius:15px;box-shadow:0 25px 100px #22332240;padding:25px 27px 27px;outline:none}.modal.wide{width:920px}.modal>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:19px;gap:15px}.modal h2{font-size:17px;margin:0;font-weight:500}.modal-description{font-size:11px;line-height:1.9;color:#869777;margin-bottom:22px}.modal-actions{display:flex;gap:10px;margin-top:21px;justify-content:space-between}.modal-actions button{font-size:10px}.import-options{display:grid;grid-template-columns:1fr 1fr;gap:13px}.import-options>button{background:#f1f5e9;border:1px solid #dfe7d4;border-radius:10px;padding:25px 12px;display:flex;flex-direction:column;gap:10px;color:#71925e}.import-options strong{color:#47623e;font-weight:500;font-size:12px}.import-options span{font-size:10px;color:#96a684}.import-options small{font-size:8px;line-height:1.8;color:#9ba68e;text-align:center}.export-options{display:flex;flex-direction:column;gap:9px}.export-options>button{display:flex;align-items:center;gap:17px;padding:17px;background:#f2f5e9;border:1px solid #e3e9d6;color:#7c946a;text-align:left}.export-options span{flex:1}.export-options strong{display:block;font-size:12px;font-weight:500;color:#4b663f;margin-bottom:6px}.export-options small{font-size:9px;color:#9aa78a}.empty-state{text-align:center;padding:35px 15px;color:#93a17f;font-size:11px;line-height:1.8}.empty-state h3{margin:15px 0}.empty-state button{margin-top:12px}.issue-list{max-height:400px;overflow:auto;display:flex;flex-direction:column;gap:5px}.issue-list button{justify-content:start;text-align:left;font-size:11px;padding:13px 9px;border-bottom:1px solid #e8eddd;border-radius:4px}.issue-list button svg{margin-left:auto;flex-shrink:0}.comparison-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.comparison-grid article{border:1px solid #e1e9d3;border-radius:10px;padding:17px;background:#f7f9ef}.comparison-grid h3{font-weight:500;font-size:13px}.mini-plan{width:100%;height:230px;background:#eef1e5;border-radius:7px}.comparison-grid dl>div{display:flex;justify-content:space-between;font-size:10px;padding:9px 0;border-bottom:1px solid #e8eddc}.comparison-grid dt{color:#91a080}.comparison-grid dd{font-weight:500}.comparison-grid button{margin-top:9px;font-size:11px}.toast{position:fixed;bottom:46px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#315840f2;color:#f6f9ed;padding:13px 21px;border-radius:9px;font-size:11px;box-shadow:0 5px 25px #25382122;z-index:50;max-width:80vw}.busy-indicator{position:fixed;top:86px;left:50%;transform:translate(-50%);background:#fffef9ed;box-shadow:0 3px 20px #3422;display:flex;align-items:center;gap:9px;padding:12px 20px;border-radius:9px;z-index:40;font-size:11px;color:#7b956c}.spinner{height:15px;width:15px;border:2px solid #d3dec4;border-top-color:#5c8251;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-text{font-size:10px;color:#a76948;line-height:1.7}.loading-page{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;height:100vh;background:#f2f5e9}.loading-page h1{font-size:23px;font-weight:450;margin:0}.loading-page p{font-size:12px;color:#8d9b7c}.loading-page button{margin-top:3px}.loading-page .brand-mark{width:47px;height:47px}@media(min-width:1550px){.library,.brand{width:278px}.inspector{width:310px}.asset-image{height:98px}.canvas-help{bottom:27px}}@media(max-width:1190px){.library,.brand{width:218px}.brand{padding-left:15px;gap:8px}.brand strong{font-size:13px}.inspector{width:254px}.inspector-scroll{padding:20px 16px}.editor-toolbar{padding:0 10px;gap:6px}.tool-group{gap:0;padding-right:5px}.tool-group .icon-button{width:29px}.view-toggle button{padding:5px 7px}.canvas-help{left:20px;transform:none;bottom:61px;font-size:8px}.categories{padding-left:13px;padding-right:13px;gap:3px}.asset-image{height:77px}.asset-card strong{font-size:9px}.catalog-scroll{padding:0 12px 20px}.header-actions{padding:0 15px}.plan-tabs{padding:0 9px}.project-heading{padding-left:16px}.room-card strong{font-size:9px}}@media(max-width:960px){.library,.brand{width:180px}.brand small{font-size:6px}.brand-mark{width:31px;height:31px}.brand strong{font-size:11px}.inspector{width:230px}.header-actions .quiet{font-size:0;gap:0;padding:10px}.header-actions{gap:4px}.header-actions .primary{padding:10px;font-size:10px}.project-heading input{font-size:11px}.project-heading{padding-left:11px}.drawing-tools .icon-button{width:25px}.drawing-tools .icon-button svg{width:15px}.editor-toolbar{gap:3px;padding:0 6px}.catalog-grid{gap:12px 6px}.asset-image{height:65px}.catalog-scroll{padding:0 8px 15px}.categories button{padding:4px 5px;font-size:9px}.search{margin:15px 10px 10px}.sidebar-tabs{padding:13px 6px 0;gap:0}.sidebar-tabs button{font-size:9px;gap:4px}.link-register{padding:9px 5px;gap:4px}.link-register span{font-size:9px}.link-register small{font-size:7px}.library-footer{padding:12px 8px}.canvas-label{left:16px}.canvas-label small{display:none}.view-toggle button{font-size:9px;padding:5px}.view-toggle button svg{display:none}.plan-tab-scroll>button:not(.icon-button){padding:8px 7px;font-size:9px}.compare-button{font-size:0;gap:0;padding:6px}.inspector-bottom{padding:0 12px}.statusbar{gap:10px}.room-card{gap:5px;padding:11px 3px}.room-card b{font-size:8px}}@media(max-width:720px){.library{width:142px}.brand{width:155px;padding-left:10px}.brand small{display:none}.inspector{width:198px}.inspector-scroll{padding:15px 11px}.inspector-heading{padding:0 12px}.header-actions{padding:0 8px}.project-heading{padding-left:3px}.header-actions button{font-size:0!important;gap:0}.catalog-grid{grid-template-columns:1fr}.asset-image{height:87px}.categories{padding:0 8px 12px}.canvas-controls{right:10px;bottom:17px;gap:0;padding:3px}.canvas-controls .icon-button{width:25px;height:27px}.canvas-help{display:none}.canvas-label{font-size:9px;left:12px}.inspector-bottom label{font-size:8px;gap:4px}.inspector-bottom select{width:48px;padding:5px}.inspector-bottom{gap:6px;padding:0 10px}.summary-rooms button{font-size:8px}.statusbar>span:first-child{display:none}.field-grid.three{grid-template-columns:1fr}.modal-backdrop{padding:12px}.modal{padding:21px}.comparison-grid,.import-options{grid-template-columns:1fr}}.measurement-line{cursor:pointer;color:#947340}.plan-person circle{fill:#d2ad86;stroke:#244f43;stroke-width:.012}.plan-person path{fill:none;stroke:#244f43;stroke-width:.022;stroke-linecap:round;stroke-linejoin:round}.rotation-row{align-items:flex-end}.rotation-dial-field{flex:1}.rotation-dial-field>span{display:block;font-size:9px;color:#89977e;margin-bottom:7px}.rotation-dial-row{display:flex;align-items:center;gap:12px}.rotation-dial{position:relative;width:68px;height:68px;flex:0 0 68px;border-radius:50%;border:1px solid #cad7c4;background:radial-gradient(circle at center,#fffef9 0 48%,#edf2e7 49% 100%);padding:0;touch-action:none}.rotation-dial:hover{background:radial-gradient(circle at center,#fffef9 0 48%,#e5eee0 49% 100%)}.rotation-dial:before{content:"";position:absolute;inset:7px;border-radius:50%;border:1px dashed #b7c7b2}.rotation-dial-arrow{position:absolute;inset:8px;display:block}.rotation-dial-arrow:before{content:"";position:absolute;width:2px;height:24px;background:#315d47;left:50%;top:3px;transform:translate(-50%);border-radius:2px}.rotation-dial-arrow:after{content:"";position:absolute;left:50%;top:0;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid #315d47}.rotation-dial i{position:absolute;width:7px;height:7px;border-radius:50%;background:#315d47;left:50%;top:50%;transform:translate(-50%,-50%)}.rotation-dial-row small{font-size:8px;line-height:1.7;color:#89977e}.rotation-dial-row b{font-size:11px;color:#315d47}.rotation-buttons{display:flex;gap:5px;padding-bottom:2px}.product-analyze{margin:-4px 0 16px}.ai-result{display:flex;gap:9px;align-items:center;padding:10px 12px;margin:-5px 0 16px;background:#edf4e7;border:1px solid #d9e7d1;border-radius:7px;color:#426847;font-size:10px}.ai-result span{display:flex;flex-direction:column;gap:3px}.ai-result small{color:#80947b}.ai-note{font-size:9px;line-height:1.7;color:#75896f;background:#f4f6ee;padding:9px 11px;border-radius:6px}.ai-sources{display:flex;flex-wrap:wrap;gap:5px 9px;margin:-9px 0 15px;font-size:8px;color:#84917f}.ai-sources a{color:#4f755a;text-decoration:underline;text-underline-offset:2px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tablet-only{display:none!important}.plan-tab{display:flex;align-items:center;white-space:nowrap;border-radius:6px;color:#8c9580}.plan-tab.selected{background:#edf2e3;color:#42623c}.plan-tab-main{padding:8px 5px 8px 11px;font-size:10px;border-radius:6px 0 0 6px;white-space:nowrap}.plan-tab-delete{width:28px;height:30px;padding:0;border-radius:0 6px 6px 0;color:#9b8879}.plan-tab-delete:hover{background:#f5e8e1;color:#a15f45}.plan-tab-delete:disabled{visibility:hidden}.quick-colors{display:grid;grid-template-columns:repeat(5,32px);gap:9px;align-items:center;margin-bottom:4px}.quick-colors button,.quick-colors .custom-color{width:32px;height:32px;border:3px solid var(--paper);padding:0;border-radius:50%;box-shadow:0 0 0 1px #d8dfd0;transition:transform .12s,box-shadow .12s}.quick-colors button:hover{transform:scale(1.08)}.quick-colors button.selected{box-shadow:0 0 0 3px #557c5c}.quick-colors .custom-color{border:1px dashed #99aa91;box-shadow:none;background:#f4f6ef}.quick-color-section h3{margin-bottom:14px}.inspector-heading-actions{display:flex;align-items:center;gap:3px}.tablet-scrim{display:none}@media(max-width:1050px),(pointer:coarse)and (max-width:1180px){.workspace{position:relative;isolation:isolate}.tablet-only{display:flex!important}.editor{width:100%}.library,.inspector{position:absolute;top:0;bottom:0;z-index:13;height:100%;box-shadow:0 10px 34px #2638292b;transition:transform .2s ease,visibility .2s;background:var(--paper)}.library{left:0;width:min(310px,82vw)!important;transform:translate(-105%);visibility:hidden;border-right:1px solid var(--line)}.inspector{right:0;width:min(330px,86vw)!important;transform:translate(105%);visibility:hidden}.library.tablet-open,.inspector.tablet-open{transform:translate(0);visibility:visible}.tablet-scrim{display:block;position:absolute;inset:0;z-index:12;border:0;border-radius:0;background:#26382d42;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);padding:0}.tablet-scrim:hover{background:#26382d42}.sidebar-tabs{padding-left:10px;padding-right:8px}.sidebar-tabs .panel-close{flex:0 0 42px!important;width:42px;height:42px;margin-top:-2px}.editor-toolbar{min-height:58px;height:auto;padding:6px 10px;overflow-x:auto;scrollbar-width:none}.editor-toolbar .icon-button{min-width:40px;width:40px;height:40px}.editor-toolbar .tool-group,.view-toggle{flex-shrink:0}.view-toggle button{min-height:38px;padding:7px 12px}.canvas-controls{right:14px;bottom:16px;max-width:calc(100% - 28px);overflow-x:auto}.canvas-controls .icon-button{min-width:40px;width:40px;height:40px}.plan-tabs{height:58px}.plan-tab-main{min-height:42px;padding:9px 6px 9px 13px;font-size:11px}.plan-tab-delete{width:38px;height:42px}.plan-tab-scroll>.icon-button{min-width:42px;height:42px}.compare-button{min-width:42px;min-height:42px}.inspector-heading{height:58px}.inspector-heading .icon-button{width:40px;height:40px}.quick-colors{grid-template-columns:repeat(5,38px);gap:11px}.quick-colors button,.quick-colors .custom-color{width:38px;height:38px}.asset-card{min-height:132px}.categories button{min-height:38px}.room-card{min-height:52px}.library-footer button{min-height:48px}.canvas-help{bottom:66px}.statusbar{height:32px}.modal button,.modal input,.modal select{min-height:42px}}@media(max-width:700px){.brand{width:auto!important;min-width:132px}.project-heading{min-width:0}.save-indicator{display:none}.header-actions{padding-left:4px}.editor-toolbar{gap:2px}.canvas-label{top:13px}.canvas-controls{bottom:12px}.plan-tabs{padding-left:7px}.statusbar{padding:0 10px}.status-end{display:none}}.rotation-row-compact{align-items:center}.rotation-row-compact:before{content:"向き";font-size:9px;color:#89977e;margin-right:auto}.rotation-row-compact .rotation-buttons{padding:0}.rotation-row-compact .icon-button{margin:0;width:40px;height:36px}.plan-2d .furniture{outline:none!important}.render-quality{position:absolute;right:22px;top:17px;z-index:4;display:flex;padding:3px;border:1px solid #d9ded3;border-radius:7px;background:#fbfcf6e8;box-shadow:0 2px 10px #30433509}.render-quality button{padding:6px 12px;font-size:10px;color:#86917e;border-radius:4px}.render-quality button.selected{background:#e6eddf;color:#355b43}.canvas-label{max-width:calc(100% - 195px)}.canvas-label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(pointer:coarse){.render-quality button{min-height:40px;min-width:60px}}@media(max-width:700px){.render-quality{top:10px;right:12px}.render-quality button{padding:6px 9px}}.canvas-stage.preview-fullscreen{position:fixed;inset:0;z-index:100;background:#eae9e6}.preview-fullscreen .canvas-controls{right:24px;bottom:24px}.preview-fullscreen .canvas-label{top:24px;left:24px}.walkthrough-active .three-viewport canvas{cursor:grab}.walkthrough-active .three-viewport canvas.looking{cursor:grabbing}.walkthrough-panel{position:absolute;left:22px;top:50px;z-index:5;width:190px;padding:13px 14px 12px;border:1px solid #d9ded3;border-radius:10px;background:#fffef8e8;box-shadow:0 4px 20px #26392c1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.walkthrough-panel .field{margin:0 0 9px}.walkthrough-panel .field>span{font-size:9px}.walkthrough-panel .input-unit input{height:34px;padding:7px 30px 7px 9px;background:#fff}.walkthrough-panel>small{display:block;margin-top:8px;color:#82907c;font-size:8px;line-height:1.6;text-align:center}.walk-pad{display:grid;grid-template-columns:repeat(3,36px);grid-template-rows:36px 36px;gap:3px;justify-content:center}.walk-pad .icon-button{width:36px;height:36px;background:#edf2e7;border:1px solid #dce5d5}.walk-pad .icon-button:nth-child(1){grid-column:2}.walk-pad .icon-button:nth-child(2){grid-column:1;grid-row:2}.walk-pad .icon-button:nth-child(3){grid-column:2;grid-row:2}.walk-pad .icon-button:nth-child(4){grid-column:3;grid-row:2}.modal-backdrop{z-index:220}.busy-indicator{z-index:240}.toast{z-index:250}.walkthrough-panel-head{display:flex;align-items:center;justify-content:space-between;margin:-3px -4px 6px 0;color:#5d6b58;font-size:10px;font-weight:600}.walkthrough-panel-toggle{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:#5d6b58;cursor:pointer}.walkthrough-panel-toggle:hover{background:#edf2e7}.walkthrough-panel-collapsed{position:absolute;left:22px;top:50px;z-index:5;display:flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid #d9ded3;border-radius:16px;background:#fffef8e8;box-shadow:0 4px 20px #26392c1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#5d6b58;font-size:11px;cursor:pointer}.walkthrough-panel-collapsed:hover{background:#fff}@media(max-width:700px){.walkthrough-panel{left:10px;top:36px;width:165px;padding:10px}.walkthrough-panel-collapsed{left:10px;top:36px}.preview-fullscreen .canvas-controls{right:10px;bottom:10px}.preview-fullscreen .canvas-label{top:14px;left:12px}}.modal.wide:has(.import3d){width:1040px}.import3d-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px;align-items:start}.import3d-grid.preview{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.import3d-h{font-size:11px;font-weight:600;color:#4b6247;margin:14px 0 8px;display:flex;gap:8px;align-items:baseline}.import3d-h small{font-weight:400;color:#9aa38d;font-size:9px}.import3d section>.import3d-h:first-child{margin-top:0}.import3d .dim-source{display:block;margin-top:-6px;font-size:8px;color:#9aa38d}.import3d .check-row{margin:6px 0 10px;align-items:flex-start}.import3d .check-row small{display:block;font-size:9px;color:#9aa38d}.dim-notes{margin-top:10px;font-size:10px;color:#6f7f68}.dim-notes summary{cursor:pointer}.dim-notes ul{margin:6px 0 0 16px;line-height:1.8}.import3d-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:7px}.import3d-images figure{position:relative;margin:0;border:1px solid #dfe5d6;border-radius:8px;overflow:hidden;background:#fff}.import3d-images figure.picked{border-color:#5c8251;box-shadow:0 0 0 1px #5c8251}.import3d-images figure.failed{opacity:.5}.import3d-images img,.img-loading{display:grid;place-items:center;width:100%;aspect-ratio:1;object-fit:contain;background:#fff;font-size:9px;color:#a76948}.import3d-images figcaption{display:flex;gap:4px;align-items:center;padding:4px;border-top:1px solid #eef1e8;font-size:9px}.import3d-images figcaption select{flex:1;min-width:0;font-size:9px;padding:2px}.import3d-images figcaption label{display:flex;gap:2px;align-items:center;white-space:nowrap}.import3d-images .badge{position:absolute;top:4px;left:4px;background:#5c8251;color:#fff;font-size:8px;padding:2px 6px;border-radius:9px}.image-add{display:grid;place-items:center;align-content:center;gap:4px;aspect-ratio:1;border:1px dashed #ccd8be;border-radius:8px;color:#577650;font-size:10px;cursor:pointer}.image-add input{display:none}.route-options{display:grid;gap:6px}.route-option{display:flex;gap:9px;align-items:center;padding:9px 11px;border:1px solid #dfe5d6;border-radius:8px;cursor:pointer;background:#fff}.route-option.selected{border-color:#5c8251;background:#f2f7ec}.route-option span{flex:1;display:grid;gap:2px}.route-option strong{font-size:11px}.route-option small{font-size:9px;color:#8b9287}.route-option b{font-size:12px;color:#315d47}.budget-confirm{display:flex;gap:10px;align-items:center;margin-top:12px;padding:10px 12px;border-radius:8px;background:#fbf2e6;color:#8a5a2b;font-size:11px}.budget-confirm span{flex:1}.action-group{display:flex;gap:8px;flex-wrap:wrap}.ok-text{font-size:10px;color:#426b3c;display:flex;gap:4px;align-items:center}.generating{display:grid;justify-items:center;text-align:center;padding:24px 0}.generating h3{margin:14px 0 6px;font-size:14px}.spinner.large{width:34px;height:34px;border-width:3px}.gen-steps{list-style:none;padding:0;margin:8px 0;width:min(460px,100%);display:grid;gap:6px}.gen-steps li{display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid #e3e7dc;border-radius:8px;font-size:11px;background:#fff}.gen-steps li strong{flex:1;text-align:left}.gen-steps li.done{background:#f2f7ec}.gen-steps li.running,.gen-steps li.queued{border-color:#5c8251}.gen-steps small{color:#8b9287}.model-preview-wrap{display:grid;gap:8px}.model-preview{height:420px;border-radius:10px;overflow:hidden;border:1px solid #dfe5d6}.model-preview canvas{display:block;width:100%;height:100%}.preview-views{display:flex;gap:5px;flex-wrap:wrap}.chip{padding:5px 10px;border:1px solid #dce3d4;border-radius:14px;background:#fafcf4;font-size:10px}.fit-table{width:100%;border-collapse:collapse;font-size:10px}.fit-table th,.fit-table td{padding:5px 6px;border-bottom:1px solid #eef1e8;text-align:right}.fit-table th:first-child{text-align:left}.fit-table thead th{color:#8b9287;font-weight:400}.rotate-buttons{display:flex;gap:6px;margin:10px 0 4px}.compare-strip{display:flex;gap:6px;overflow-x:auto}.compare-strip img{width:84px;height:84px;object-fit:contain;background:#fff;border:1px solid #dfe5d6;border-radius:6px;flex:none}@media(max-width:820px){.import3d-grid,.import3d-grid.preview{grid-template-columns:1fr}.model-preview{height:300px}}.route-option input{width:auto;flex:none;margin:0}.import3d .check-row input{width:auto;flex:none;margin-top:2px}.import3d-images figcaption input{width:auto;margin:0}.login-link{display:flex;justify-content:center;align-items:center;margin-top:8px;padding:10px;border-radius:8px;text-decoration:none;color:#315d47}.image-url-add{display:flex;gap:6px;margin-top:8px}.image-url-add input{flex:1;min-width:0;font-size:10px}.image-url-add button{flex:none;padding:6px 12px}.asset-cell{position:relative;display:flex;flex-direction:column}.asset-cell>.asset-card{flex:1}.asset-delete{position:absolute;top:5px;right:5px;display:grid;place-items:center;width:22px;height:22px;padding:0;border-radius:5px;border:1px solid #e3d6cc;background:#fffdf9e6;color:#a76948;opacity:.85}.asset-delete:hover{opacity:1;background:#fbefe7}.catalog-grid>.asset-cell{min-width:0}.asset-cell>.asset-card{width:100%;min-width:0}.asset-card strong{display:block;min-width:0}.price-tag{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:9px;font-size:9px;font-weight:600;vertical-align:1px}.price-tag.paid{background:#fbe9dc;color:#a4582c}.price-tag.free{background:#e3efdc;color:#3f6b3a}.icon-button.labeled{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:auto;min-width:40px;height:auto;min-height:40px;padding:4px 5px 3px}.icon-caption{font-size:9px;line-height:1;white-space:nowrap;letter-spacing:.02em}.canvas-controls .icon-button.labeled{min-width:42px}.compare-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 14px;flex-wrap:wrap}.compare-rotate{display:flex;align-items:center;gap:4px}.compare-angle{font-size:11px;color:#6d7f60;min-width:34px;text-align:right}.compare-3d{height:260px;border-radius:10px;overflow:hidden;background:#eae9e6;margin-bottom:10px}.walk-stick{position:absolute;left:18px;bottom:8px;z-index:6;width:124px;height:124px;border-radius:50%;background:radial-gradient(circle,#ffffff2e 0 40%,#ffffff14 41%);border:2px solid #ffffff6b;box-shadow:0 4px 18px #26392c1f;opacity:.75;touch-action:none;display:grid;place-items:center;user-select:none;-webkit-user-select:none}.walk-stick-knob{width:56px;height:56px;border-radius:50%;background:#fffef8a6;border:1px solid #d6dccd;box-shadow:0 3px 10px #26392c40;pointer-events:none;transition:transform .06s linear}@media(max-width:700px){.walk-stick{left:10px;bottom:8px;width:116px;height:116px}}@media not ((max-width:1050px)or ((pointer:coarse)and (max-width:1180px))){.library,.inspector{transition:width .2s ease}.library.folded,.inspector.folded{width:0!important;min-width:0;overflow:hidden;border:0}}.panel-fold{position:absolute;top:50%;z-index:7;display:grid;place-items:center;width:18px;height:56px;padding:0;margin-top:-28px;border:1px solid #dfe5d6;background:#fffef8e8;color:#74826f;box-shadow:0 2px 8px #26392c1a}.panel-fold:hover{background:#fff;color:#315d47}.panel-fold.left{left:0;border-left:0;border-radius:0 8px 8px 0}.panel-fold.right{right:0;border-right:0;border-radius:8px 0 0 8px}@media(max-width:1050px),(pointer:coarse)and (max-width:1180px){.panel-fold{display:none}}@media(max-width:700px){.editor-toolbar .icon-button.labeled{min-width:36px;padding:4px 3px 3px}.editor-toolbar .icon-caption{font-size:8.5px}}@media(max-width:520px){.editor-toolbar{flex-wrap:wrap;row-gap:2px;overflow-x:visible}.editor-toolbar .drawing-tools{order:3;flex-basis:100%;justify-content:space-between;border-right:0;border-top:1px solid #e3e7dc;padding:3px 0 0}.editor-toolbar .drawing-tools .icon-button.labeled{flex:1}}.compare-caption{font-size:10px}@media(max-width:1050px),(pointer:coarse)and (max-width:1180px){.compare-button{flex-direction:column;gap:2px!important;padding:4px 8px!important}.compare-caption{font-size:9px;line-height:1;white-space:nowrap}}
