.edge-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.edge-choices button{display:grid;gap:2px;text-align:left;padding:8px 9px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--text);min-width:0;cursor:pointer}.edge-choices button b{font-size:13px;font-weight:600}.edge-choices button small{font-size:11px;line-height:1.35;color:var(--text-2)}.edge-choices button.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.material-looks ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px;max-height:360px;overflow:auto}.material-looks li{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(0,150px);align-items:center;gap:8px;padding:6px 2px;border-bottom:1px solid var(--line)}.material-looks li i{width:22px;height:22px;border-radius:4px;border:1px solid var(--line-strong)}.material-looks li span{display:grid;min-width:0}.material-looks li b{font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-looks li small{font-size:11px;color:var(--text-2)}.material-looks select{width:100%;min-width:0;font-size:12.5px;padding:5px 6px}@media(max-width:420px){.edge-choices{grid-template-columns:minmax(0,1fr)}.material-looks li{grid-template-columns:22px minmax(0,1fr)}.material-looks select{grid-column:1/-1}}:root{font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;color:#253d3b;background:#f6f7f3;font-synthesis:none;--green:#173f3e;--sage:#e8eeea;--amber:#b47d37;--muted:#798780;--line:#dfe5de}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a,label.button{touch-action:manipulation}button,.button{cursor:pointer;border:1px solid transparent;border-radius:8px;background:none;color:inherit;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:13px;transition:background .16s,transform .16s}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b4c6bd;outline-offset:3px}a{text-decoration:none;color:inherit}button:not(:disabled):hover{background-color:#e5eae4}.primary{background:var(--green);color:#fff;padding:13px 19px;box-shadow:0 3px 7px #163c3411}.primary:not(:disabled):hover{background:#285854}.secondary{border-color:#c9d4cb;background:#fff;padding:12px 16px}.secondary:not(:disabled):hover{background:#f0f4ef}.ghost{padding:9px 11px;color:#6f7d75}.wide{width:100%;justify-content:space-between}.text-button{font-size:12px;color:#376452;padding:8px 0;justify-content:start}.icon-btn{padding:9px;flex-shrink:0}.eyebrow{font-size:10px;font-weight:650;letter-spacing:2px;color:#829287}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1px}p{line-height:1.7}.brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-mark{background:#1b4542;color:#e9e5ce;border-radius:9px;display:grid;place-items:center;width:40px;height:43px}.brand>span{font-size:21px;letter-spacing:4px;font-weight:600;line-height:1.1}.brand small{display:block;font-size:7px;letter-spacing:1.2px;font-weight:500;margin-top:5px}.header-right{display:flex;align-items:center;gap:17px;margin-left:auto}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#487e60;flex-shrink:0}.status-dot.gray{background:#a4aaa4}.pill{display:inline-flex;gap:7px;align-items:center;font-size:10px;border-radius:30px;padding:6px 10px;line-height:1;background:#f3f4ef;color:#6f7b6c;white-space:nowrap}.pill.green{background:#e6efe8;color:#3f6b51}.pill.amber{background:#f7eddd;color:#926831}.pill.light{background:#ffffffea;border:1px solid #d8e0d8;box-shadow:0 2px 7px #23433305}.row{display:flex;align-items:center;gap:10px}.row>*{flex:1}label:not(.button):not(.checkbox-label){display:block;font-size:12px;font-weight:500;color:#627268;margin:18px 0 12px}input:not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid #d9e0d7;background:#fff;border-radius:7px;padding:12px 13px;color:#2a4239;outline:none;margin-top:8px;font-size:13px}input:focus,textarea:focus,select:focus{border-color:#779786;box-shadow:0 0 0 3px #7e9c7e12}textarea{resize:vertical;min-height:100px}.error{background:#fff0ec;color:#a34f3f;border:1px solid #eed6cd;padding:10px 13px;border-radius:6px;font-size:12px;overflow-wrap:anywhere}.hint{font-size:11px;color:#829083;line-height:1.8;margin:12px 0}.spinner{display:inline-block;width:26px;height:26px;border:2px solid #b9c9bf;border-top-color:#285346;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.auth-layout{min-height:100dvh;display:grid;grid-template-columns:1.1fr 1fr}.auth-story{background:#173b3c;color:#f2f1df;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;padding:44px 56px}.auth-story>.brand .brand-mark{border:1px solid #83a69355;background:none}.auth-story .eyebrow{color:#92afa2}.auth-story h1{font-size:clamp(35px,4vw,62px);font-weight:450;line-height:1.4;margin:23px 0}.auth-story p{font-size:13px;color:#adc1b4}.auth-story>small{font-size:10px;color:#8fa99c;letter-spacing:2px}.wire-building{position:absolute;right:-20px;bottom:10%;height:240px;width:340px;transform:skewY(-17deg);border:1px solid #8eaa8e25;pointer-events:none}.wire-building:before,.wire-building:after{content:"";position:absolute;inset:40px -80px;border:1px solid #8eaa8e20}.wire-building:after{inset:-45px 50px}.wire-building i{display:block;height:1px;background:#8eaa8e22;margin-top:60px}.auth-form{display:grid;place-items:center;padding:55px}.auth-form>div{width:100%;max-width:355px}.auth-form h2{font-size:29px;font-weight:500;letter-spacing:-.5px;margin:17px 0}.auth-form p{color:#849086;font-size:12px}.auth-form form{margin-top:34px}.auth-form .primary{margin-top:22px}.privacy{display:flex;align-items:center;gap:7px;color:#8e998e;font-size:10px;margin-top:25px}.auth-screen{height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:25px}.dashboard-header{height:94px;display:flex;align-items:center;border-bottom:1px solid var(--line);padding:0 5.4vw;background:#fafbf8}.workspace-label{font-size:11px;color:#7b897c;display:flex;align-items:center;gap:8px}.dashboard-main{padding:58px 5.4vw;max-width:1680px;margin:auto}.dash-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.dash-heading h1{font-size:35px;font-weight:500;margin:15px 0 12px}.dash-heading p{font-size:13px;color:#869183;margin:0}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.project-card{display:block;text-align:left;border:1px solid #dce2d7;border-radius:11px;background:#fff;padding:0;overflow:hidden;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-3px);box-shadow:0 8px 30px #213c3510}.project-cover{aspect-ratio:1.6;background:#e6ece5;position:relative;overflow:hidden}.project-cover>img{height:100%;width:100%;object-fit:cover}.project-cover>.pill{position:absolute;right:13px;top:13px}.project-placeholder{height:100%;display:flex;align-items:center;justify-content:center;gap:15px;color:#b1c1b3;background:linear-gradient(135deg,#edf1e9,#e0e7dd)}.project-placeholder>span{font-size:10px;letter-spacing:2px}.project-card-body{padding:23px}.project-card-body>small{font-size:9px;color:#95a18e;letter-spacing:2px}.project-card-body h3{font-size:18px;font-weight:550;margin:12px 0 27px}.project-card-body footer{border-top:1px solid #eef0e9;padding-top:15px;display:flex;justify-content:space-between;font-size:11px;color:#83917f}.new-project{min-height:335px;border:1px dashed #c7d2c4;text-align:center;background:transparent}.add-circle{display:grid;place-items:center;width:57px;height:57px;margin:0 auto 23px;border-radius:50%;background:#e5ece2;color:#6b826e}.new-project h3{font-size:16px;font-weight:500;margin:0 0 10px}.new-project p{font-size:11px;color:#8a9786}.workflow-strip{display:flex;align-items:center;gap:6%;margin-top:65px;border-top:1px solid var(--line);padding-top:33px;color:#98a28f}.workflow-strip>div{display:flex;align-items:center;gap:13px}.workflow-strip b{font-size:22px;font-weight:350;color:#aebaa5}.workflow-strip span{font-size:12px}.workflow-strip small{display:block;font-size:10px;margin-top:7px;color:#a2aa99}.modal-scrim{position:fixed;inset:0;z-index:50;background:#10272370;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.modal{width:100%;max-width:430px;background:#fafbf8;border-radius:13px;padding:25px 30px;box-shadow:0 20px 80px #0b211540}.modal header{display:flex;align-items:center;justify-content:space-between}.modal h2{font-size:22px;font-weight:500;margin:0}.modal form>.primary{margin-top:25px}.project-shell{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.project-header{height:76px;display:flex;align-items:center;gap:18px;padding:0 25px;border-bottom:1px solid #dbe3d9;background:#fcfcf8;flex-shrink:0;z-index:5}.project-header .brand-mark{width:34px;height:37px}.project-header .brand>span{font-size:19px}.header-divider{height:29px;width:1px;background:#dce2d8}.project-title{min-width:0}.project-title small{display:block;font-size:9px;color:#97a08f;letter-spacing:1px}.project-title h1{font-size:15px;font-weight:550;letter-spacing:0;margin:5px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-header select{width:140px;font-size:11px;margin:0;background:#f6f8f2;padding:9px;border:1px solid #e1e7da}.upload-button{margin:0!important;font-size:12px;padding:10px 15px;color:#fff!important;font-weight:400!important}.model-workspace{flex:1;min-height:0;display:flex;position:relative}.model-canvas-area{flex:1;min-width:0;position:relative;overflow:hidden;background:#e9ece8}.viewport{position:absolute;inset:0;cursor:grab}.viewport canvas{width:100%;height:100%;display:block;touch-action:none}.canvas-loading{position:absolute;inset:0;background:#e9ece8e8;display:flex;justify-content:center;align-items:center;gap:12px;font-size:12px;color:#788976;z-index:2}.canvas-heading{position:absolute;left:27px;top:25px;display:flex;align-items:center;gap:13px;pointer-events:none}.canvas-subtitle{font-size:10px;color:#85917d}.canvas-compass{position:absolute;right:28px;top:24px;display:flex;align-items:center;flex-direction:column;color:#667b63;pointer-events:none}.canvas-compass span{font-size:9px;letter-spacing:1px}.canvas-compass i{font-size:26px;font-style:normal;transform:rotate(-20deg)}.canvas-footer{position:absolute;bottom:20px;left:27px;right:27px;display:flex;justify-content:space-between;pointer-events:none;color:#87927e;font-size:9px;letter-spacing:1px}.view-controls{position:absolute;left:50%;bottom:45px;transform:translate(-50%);display:flex;gap:5px;align-items:center;background:#fffffff0;box-shadow:0 8px 28px #26423119;border:1px solid #fff;border-radius:11px;padding:7px}.view-controls button{padding:10px;color:#83917a;border-radius:6px}.view-controls button.active{color:#315b43;background:#e9eee4}.view-controls>span{height:22px;width:1px;background:#e3e8de;margin:0 3px}.model-sidebar{width:342px;flex-shrink:0;background:#fafbf7;display:flex;flex-direction:column;border-left:1px solid #dbe3d7}.sidebar-tabs{display:flex;gap:4px;padding:15px 17px 0;flex-shrink:0;align-items:center;border-bottom:1px solid #e4e8df}.sidebar-tabs button{position:relative;padding:12px 13px 16px;color:#96a08e;border-radius:0;font-size:12px}.sidebar-tabs button.active{color:#2c5940}.sidebar-tabs button.active:after{position:absolute;content:"";bottom:0;height:2px;left:12px;right:12px;background:#497453}.sidebar-tabs sup{font-size:9px;color:#b38b4d}.sidebar-tabs button:nth-child(3){margin-left:auto}.sidebar-body{flex:1;min-height:0;overflow:auto;padding:25px 23px 30px;scrollbar-width:thin;scrollbar-color:#d0d9c8 transparent}.section-heading{margin-bottom:22px}.section-heading h2{font-weight:550;font-size:19px;letter-spacing:-.5px;margin:11px 0 7px}.section-heading p{font-size:11px;color:#95a18b;margin-bottom:0}.view-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:27px}.view-preset-grid button{padding:13px 3px 10px;flex-direction:column;border:1px solid #e0e7d8;border-radius:6px;font-size:10px;color:#778c70;background:#fff;gap:9px}.view-preset-grid button:hover{border-color:#7d9870;background:#f0f5e8}.subheading{font-size:11px;font-weight:550;letter-spacing:1px;color:#84937a;margin:0 0 13px}.mode-list{border-top:1px solid #e2e8dc}.mode-list button{display:flex;width:100%;text-align:left;border-radius:0;gap:12px;border-bottom:1px solid #e5eadf;padding:14px 2px}.mode-icon{display:grid;place-items:center;width:32px;height:34px;background:#eef2e8;border:1px solid #e5ebdd;border-radius:7px;color:#7c9571;flex-shrink:0}.mode-list b{display:block;font-size:12px;font-weight:500;line-height:1.2}.mode-list small{display:block;font-size:9px;color:#9aa58f;margin-top:7px}.mode-list button>i{margin-left:auto;color:#a1af91;font-size:18px;font-style:normal}.mode-list button.active{background:#e9f0e1}.mode-list button.active b{color:#467537}.helper-note{display:flex;align-items:flex-start;gap:10px;margin:24px 0 0;color:#a0ad92;font-size:10px;line-height:1.7}.helper-note svg{flex-shrink:0}.sidebar-footer{padding:14px 23px;display:flex;align-items:center;gap:6px;border-top:1px solid #e5eadd;color:#a4ad97;font-size:9px;letter-spacing:.4px}.component-card{margin-top:25px;padding:17px;background:#f0f3ea;border:1px solid #e1e8d8;border-radius:8px}.component-card h3{font-size:13px;line-height:1.7;margin:10px 0;overflow-wrap:anywhere}.component-card dl{display:grid;grid-template-columns:56px 1fr;gap:10px;font-size:10px;line-height:1.7}.component-card dt{color:#94a186}.component-card dd{margin:0;overflow-wrap:anywhere}.component-card p{font-size:10px;color:#99a18e;margin:0;overflow-wrap:anywhere}.native-views{border-top:1px solid #e0e7d8;padding-top:15px;margin-top:24px;font-size:11px;color:#8d9a82}.native-views button{font-size:10px;text-align:left;display:block;width:100%;padding:9px}.native-views summary{cursor:pointer}.measurement{position:absolute;top:75px;left:27px;display:flex;align-items:center;gap:10px;background:#fffdf3;padding:12px 15px;border:1px solid #dcd8b6;box-shadow:0 3px 15px #68592d15;border-radius:8px;color:#8a6a31}.measurement span{font-size:22px;letter-spacing:-.5px}.measurement small{font-size:11px}.measurement button{font-size:20px;margin-left:6px}.toast{position:absolute;bottom:125px;left:50%;transform:translate(-50%);background:#24493eed;color:#e7eddf;padding:12px 18px;border-radius:7px;box-shadow:0 6px 15px #18372f20;font-size:11px;max-width:90%;text-align:center;z-index:4}.canvas-error,.top-error{padding:12px 15px;font-size:12px;color:#a05e42;background:#fff4e8;border:1px solid #ead1b9;display:flex;align-items:center;justify-content:space-between;gap:15px;overflow-wrap:anywhere}.canvas-error{position:absolute;top:70px;left:22px;right:22px;border-radius:7px;z-index:4}.canvas-error button,.top-error button{font-size:20px;flex-shrink:0}.notes-empty{display:flex;align-items:center;flex-direction:column;text-align:center;color:#a9b499;padding:45px 15px}.notes-empty h3{font-size:13px;font-weight:500;margin:15px 0 10px}.notes-empty p{font-size:10px}.note-form{padding:15px;background:#f0f4e8;border:1px solid #dbe5cb;border-radius:8px}.note-card{border:1px solid #dfe7d5;border-radius:8px;background:#fff;margin-top:18px;padding:15px}.note-card header{display:flex;gap:10px;align-items:center}.avatar{height:30px;width:30px;display:grid;place-items:center;background:#f0e5d0;border-radius:50%;font-size:12px;color:#a48a54}.note-card header b{font-size:11px;font-weight:500;display:block}.note-card header small{font-size:8px;color:#9ba58f;display:block;margin-top:4px}.note-status{margin-left:auto;font-size:10px;color:#b79751}.note-card.resolved .note-status{color:#659059}.note-card>p{font-size:12px;color:#536449;margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}.note-image{position:relative;display:block;width:100%;padding:0;border-radius:5px;overflow:hidden;background:#e9ede5}.note-image img{width:100%;display:block}.note-image span{position:absolute;right:6px;bottom:6px;background:#f8faf0da;padding:4px 7px;font-size:8px;border-radius:3px}.reply{border-left:2px solid #dce5ce;padding:7px 0 5px 10px;margin-top:14px;background:#f7f9f1}.reply b{font-size:9px;color:#90a077}.reply p{font-size:11px;margin:7px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.reply-form{margin-top:14px;display:flex;gap:5px;align-items:center}.reply-form input{font-size:11px;padding:9px;margin:0}.reply-form button{padding:10px;border:1px solid #dbe5cd;background:#f3f7ed}.note-card .text-button{margin-top:8px}.group-editor{border-bottom:1px solid #e0e7d8;font-size:11px;padding:15px 0}.group-editor summary{cursor:pointer;font-weight:500}.group-editor summary>span{float:right;color:#9aab87;font-size:10px}.checkbox-label{display:flex;align-items:center;gap:8px;margin:13px 0;font-size:10px;color:#8b9b7c;overflow-wrap:anywhere;line-height:1.5}.checkbox-label input{accent-color:#4e7840;flex-shrink:0}.conversion-report{font-size:10px;color:#9aa68b;margin-top:25px;border-top:1px solid #e1e8d7;padding-top:14px}.conversion-report p{overflow-wrap:anywhere;margin:14px 0}.share-state{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:20px;color:#7a9169}.qr-code{display:block;width:170px;height:170px;margin:25px auto 8px;border-radius:7px;border:1px solid #e1e7d7}.danger-text{font-size:11px;color:#a9866a;margin:22px 0 0;padding:7px 0}.share-gate{background:#e9eee6;min-height:100dvh;display:flex;align-items:center;flex-direction:column;padding:50px 22px}.gate-card{margin:45px auto 0;background:#fafbf6;border:1px solid #dbe3d2;border-radius:14px;padding:38px 43px;max-width:430px;width:100%;box-shadow:0 18px 60px #264b3310}.gate-icon{color:#799462;background:#edf2e6;width:62px;height:62px;display:grid;place-items:center;border-radius:50%;margin-bottom:26px}.gate-card h1{font-size:27px;line-height:1.5;font-weight:500;margin:15px 0}.gate-card>p{color:#93a17f;font-size:11px}.gate-card>small{font-size:9px;display:block;text-align:center;color:#a6b094;margin-top:24px}.empty-stage{display:flex;align-items:center;justify-content:center;flex-direction:column;flex:1;text-align:center;padding:30px;background:radial-gradient(ellipse at 50% 38%,#eef3e8,#e4ebe0)}.empty-model-icon{height:120px;width:120px;display:grid;place-items:center;border:1px solid #d4dfca;background:#eef3e8;border-radius:25px;margin-bottom:28px;color:#a0b193;box-shadow:0 20px 35px #53644a0a}.empty-stage h2{font-size:27px;letter-spacing:-.5px;font-weight:500;margin:18px 0 10px}.empty-stage p{font-size:12px;color:#8c9a7d;max-width:550px;overflow-wrap:anywhere}.empty-stage>small{font-size:10px;color:#a0ac93;margin-top:25px}.empty-stage .secondary,.empty-stage .spinner{margin-top:15px}.custom-view{display:flex;align-items:center;gap:5px;margin:8px 0}.custom-view input{margin:0;font-size:10px;padding:8px}.custom-view button{font-size:10px;white-space:nowrap}.saved-view{width:100%;justify-content:start;font-size:11px;padding:12px 0;border-bottom:1px solid #e4eadb}.mobile-nav,.mobile-panel-handle{display:none}@media(min-width:1600px){.model-sidebar{width:375px}.sidebar-body{padding:30px}}@media(max-width:1000px){.project-header{padding:0 15px;gap:12px}.project-header .brand>span{display:none}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.model-sidebar{width:310px}.sidebar-body{padding:23px 18px}.sidebar-tabs{padding-left:11px;padding-right:11px}.project-header .header-right{gap:9px}.auth-story,.auth-form{padding:35px}.canvas-subtitle{display:none}}@media(max-width:700px){.auth-layout{grid-template-columns:1fr}.auth-story{min-height:275px;padding:24px 27px}.auth-story>div:nth-child(2){margin-top:35px}.auth-story h1{font-size:28px;line-height:1.35;margin:10px 0;display:inline}.auth-story h1 br{display:none}.auth-story p{font-size:10px;margin:15px 0 0}.auth-story>small,.wire-building{display:none}.auth-story .eyebrow{display:none}.auth-story .brand>span{font-size:19px}.auth-form{padding:35px 28px 50px}.auth-form h2{font-size:24px;margin-top:12px}.dashboard-header{height:75px;padding:0 22px}.dashboard-header .brand>span{font-size:18px}.workspace-label{display:none}.dashboard-main{padding:32px 22px}.dash-heading{display:block}.dash-heading h1{font-size:28px}.dash-heading p{font-size:11px}.dash-heading>.primary{margin-top:24px}.project-grid{grid-template-columns:1fr}.new-project{min-height:220px}.workflow-strip{gap:16px;flex-direction:column;align-items:stretch;margin-top:40px}.workflow-strip>span{display:none}.project-header{height:64px;padding:0 12px;gap:10px}.project-header>.icon-btn{padding:5px}.project-header>.brand{gap:0}.project-header .brand-mark{width:29px;height:32px;border-radius:6px}.header-divider{display:none}.project-title h1{font-size:12px;max-width:155px}.project-title small{font-size:8px}.project-header .header-right{gap:6px}.project-header select{width:83px;font-size:9px;padding:7px}.upload-button{padding:9px!important}.upload-button span{display:none}.project-header .pill{font-size:9px;padding:6px}.model-workspace{padding-bottom:64px}.model-sidebar{display:none;position:absolute;bottom:64px;left:0;right:0;width:100%;max-height:68%;border:1px solid #d9e2ce;border-radius:15px 15px 0 0;box-shadow:0 -10px 35px #27422115;z-index:10}.model-sidebar.mobile-open{display:flex}.mobile-panel-handle{height:25px;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0}.mobile-panel-handle>span{height:4px;width:35px;background:#d8e2ce;border-radius:5px}.mobile-panel-handle>button{position:absolute;right:9px;top:0;padding:5px}.sidebar-tabs{padding:0 18px}.sidebar-tabs button{padding-top:8px;padding-bottom:11px}.sidebar-body{padding:22px}.sidebar-footer{display:none}.mobile-nav{display:flex;position:absolute;bottom:0;height:64px;left:0;right:0;background:#fbfcf7;border-top:1px solid #dde5d4;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom,0);z-index:11}.mobile-nav button{border-radius:0;flex:1;flex-direction:column;gap:5px;padding:8px 5px;font-size:9px;color:#839774}.mobile-nav button span{position:absolute;transform:translate(20px,-9px);color:#b49958}.canvas-heading{left:17px;top:18px}.canvas-compass{right:20px;top:17px}.canvas-footer{left:17px;right:17px;bottom:12px;font-size:7px}.canvas-footer>span:last-child{display:none}.view-controls{bottom:35px;padding:5px;gap:2px;max-width:95%}.view-controls button{padding:9px}.view-controls button svg{width:18px}.measurement{top:65px;left:17px;padding:10px}.measurement span{font-size:19px}.toast{bottom:100px;min-width:220px}.canvas-error{top:60px;left:15px;right:15px}.empty-stage h2{font-size:23px}.empty-stage p{font-size:11px}.empty-stage>small{font-size:9px}.share-gate{padding:30px 20px}.gate-card{padding:28px;margin-top:30px}.gate-card h1{font-size:25px}.top-error{font-size:10px}.section-heading h2{font-size:18px}.sidebar-body>.primary{margin-top:15px}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition:none!important}}[hidden]{display:none!important}.stair-shortcut{margin:-6px 0 25px;font-size:11px}.wc-shortcuts{margin:-12px 0 24px}.wc-shortcuts button{padding:10px 5px;font-size:10px}.dimension-label{position:absolute;display:none;transform:translate(-50%,-100%);background:#fff9e9;color:#8d6123;border:1px solid #d2b884;border-radius:5px;padding:5px 9px;font-size:12px;font-weight:600;white-space:nowrap;pointer-events:none;z-index:2;box-shadow:0 2px 7px #765d2518}.touch-hint{display:none}.grid-caption{white-space:nowrap}.canvas-footer{gap:15px;letter-spacing:0;font-size:9px}.view-controls .projection-button{font-size:10px;padding-left:8px;padding-right:8px}.view-controls>button{min-width:32px}.view-preset-grid{gap:6px}.view-preset-grid button{padding:9px 3px 8px;gap:5px}.measure-panel{display:block;width:325px;padding:13px 15px;top:70px;z-index:4;color:#6e612f}.measure-panel header{display:flex;align-items:center;gap:8px}.measure-panel header b{font-size:11px;white-space:nowrap}.measure-panel header select{font-size:11px;width:145px;margin:0 0 0 auto;padding:7px 8px;background:#fffdf5;border-color:#e2d9bc}.measure-panel header button{margin:0;padding:0 4px;font-size:19px}.measure-result{font-size:23px;font-weight:500;margin:13px 0 6px;letter-spacing:-.3px}.measure-panel[data-complete=false] .measure-result{font-size:15px;color:#948156}.measure-panel .metric-equivalent{display:block;font-size:10px;color:#9c8b64}.measure-panel footer{margin-top:12px;padding-top:8px;border-top:1px solid #eee5cc;display:flex;align-items:center;justify-content:space-between;gap:8px}.measure-panel footer small{font-size:9px;color:#aa9b76}.measure-panel footer button{font-size:10px;margin:0;padding:5px;white-space:nowrap}@media(max-width:1000px){.canvas-footer .desktop-hint{font-size:8px;max-width:58%}.canvas-footer{left:15px;right:15px}.grid-caption{font-size:8px}}@media(max-width:700px){.canvas-footer .desktop-hint{display:none}.canvas-footer .touch-hint{display:block}.canvas-footer .grid-caption{display:block!important;font-size:8px}.canvas-footer{gap:8px}.measure-panel{top:58px;left:12px;width:min(325px,calc(100% - 24px));padding:10px 12px}.measure-panel header select{width:140px}.measure-result{font-size:21px}.measure-panel footer small{font-size:8px}.view-controls{gap:1px;padding:4px}.view-controls button{padding:8px;min-width:28px}.view-controls>span{margin:0 1px}.view-controls .projection-button{padding-left:5px;padding-right:5px;font-size:9px}.view-preset-grid button{padding:8px 3px}}.projection-button{white-space:nowrap;flex-shrink:0}.dashboard-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.bulk-toolbar{display:flex;align-items:center;gap:12px;background:#eaf0e9;border:1px solid #cbd8cd;border-radius:10px;padding:14px 18px;margin-bottom:23px}.bulk-toolbar>span{margin-right:auto;font-size:13px}.danger{background:#a44236;color:#fff;padding:12px 17px}.danger:not(:disabled):hover{background:#84372e}.project-card.selected{border-color:#285b49;box-shadow:0 0 0 2px #285b49}.project-card.selectable:hover{transform:none}.project-checkbox{position:absolute;left:14px;top:14px;width:27px;height:27px;border:2px solid #73917c;border-radius:6px;background:#fffffff5;display:grid;place-items:center;color:#fff}.selected .project-checkbox{background:#285b49;border-color:#285b49}.project-notice{font-size:13px;color:#286046;background:#e9f1e7;padding:12px 15px;border-radius:8px}.delete-explanation{font-size:13px;color:#6a786f;margin:22px 0 13px}.delete-project-list{max-height:180px;overflow:auto;padding-left:22px;font-size:13px;line-height:1.8;overflow-wrap:anywhere}.delete-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px}.project-card-body h3{overflow-wrap:anywhere}@media(max-width:700px){.dashboard-actions{justify-content:flex-start;margin-top:24px}.bulk-toolbar{padding:12px;gap:8px;flex-wrap:wrap}.bulk-toolbar>span{width:100%}.bulk-toolbar button{flex:1}.delete-actions>button{flex:1}}.hand-button kbd{font-family:inherit;font-size:10px;border:1px solid #aabdaf;border-radius:3px;padding:1px 3px;line-height:1.1}.view-controls .hand-button{gap:5px}@media(max-width:700px){.hand-button kbd{display:none}}@media(max-width:360px){.view-controls button{padding:6px;min-width:25px}.view-controls button svg{width:17px}.view-controls{gap:0}.view-controls>span{margin:0}}.snap-target{display:none;position:absolute;pointer-events:none;z-index:5;transform:translate(-50%,-50%);color:#166a7c}.snap-target i{display:block;width:18px;height:18px;border:2px solid currentColor;border-radius:3px;background:#edfaff80;box-shadow:0 0 0 4px #fff9}.snap-target b{position:absolute;left:25px;top:-6px;white-space:nowrap;background:#f9fffdf5;border:1px solid #a8c6bd;border-radius:5px;padding:5px 8px;font-size:11px;font-weight:500}.snap-target[data-kind=surface]{color:#a27635}.snap-target[data-kind=surface] i{border-radius:50%;background:transparent}.person-height-label{display:none;position:absolute;transform:translate(-50%,-100%);pointer-events:none;border:1px solid #b7c9c2;background:#fafffcdd;border-radius:4px;padding:3px 6px;font-size:10px;color:#3e625e;white-space:nowrap}.snap-options{display:flex;gap:6px;align-items:center;margin-top:12px}.snap-options select{margin:0;font-size:11px;padding:7px;width:190px;min-width:0}.snap-options button{font-size:11px;padding:7px;white-space:nowrap;background:#fff9e9}.snap-readout{font-size:11px;margin:9px 0 3px;color:#8d7956}.snap-readout.vertex{color:#126a75}.snap-coordinates{display:block;font-size:9px;color:#8d826b;overflow-wrap:anywhere}.display-settings{margin:18px 0;padding:13px;border:1px solid #dce5da;border-radius:8px;background:#f8faf5}.display-settings summary{font-size:12px;font-weight:600;cursor:pointer}.display-options{display:flex;gap:10px}.display-options>label{flex:1;min-width:0}.display-options select{font-size:11px;padding:8px}.display-settings .checkbox-label{font-size:11px;display:flex;align-items:center;gap:7px}.render-stats{font-size:10px;color:#4c7768;margin:12px 0 0}.display-settings .hint{font-size:10px;margin-bottom:0}.measure-panel footer{margin-top:9px}@media(max-width:700px){.snap-target b{font-size:10px;padding:4px 6px}.snap-options select{flex:1}.snap-coordinates{font-size:8px}}.snap-target[data-kind=midpoint]{color:#72519d}.snap-target[data-kind=midpoint] i{transform:rotate(45deg);border-radius:0;width:14px;height:14px}.snap-target[data-kind=edge]{color:#237255}.snap-target[data-kind=edge] i{border-radius:12px;width:23px;height:11px}.snap-readout.midpoint{color:#72519d}.snap-readout.edge{color:#237255}.measure-axis-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 0;padding-top:10px;border-top:1px solid #eee5cc}.measure-axis-values dt{font-size:9px;color:#9b8b66}.measure-axis-values dd{font-size:11px;margin:5px 0 0;overflow-wrap:anywhere}.measure-edit-actions{display:flex;gap:8px;margin-top:12px}.measure-edit-actions>button{flex:1;font-size:10px;padding:7px;border:1px solid #e0d8bf;background:#fffcf2}.measure-panel footer{justify-content:flex-start}.snap-options select{font-size:10px}@media(max-width:700px){.measure-axis-values dd{font-size:10px}.measure-axis-values dt{font-size:8px}.measure-panel .snap-options select{font-size:10px}}.measure-panel{max-height:calc(100% - 120px);overflow-y:auto;overscroll-behavior:contain}@media(max-width:1000px)and (max-height:500px){.measure-panel{top:12px;max-height:calc(100% - 105px)}}.measure-axis-values>div:nth-child(1) dt{color:#a4514b}.measure-axis-values>div:nth-child(2) dt{color:#54834f}.measure-axis-values>div:nth-child(3) dt{color:#4b6e9e}:root{--green:#173f3e}body{background:#f6f7f3}button{min-height:36px}input,textarea,select{max-width:100%}.offline-app{min-height:100dvh}.app-header{height:78px;display:flex;align-items:center;gap:25px;padding:0 5vw;background:#fcfcf9;border-bottom:1px solid #dce3da}.brand{display:flex;gap:9px;padding:0;text-align:left}.brand img{width:35px;height:35px}.brand>span{font-size:21px;font-weight:650}.brand small{font-size:10px;color:#7b8e84;display:block;font-weight:400;letter-spacing:2px}.status-group{display:flex;align-items:center;gap:15px;margin-left:auto}.ready-badge{font-size:11px;color:#8b744b;background:#f3ebdc;border-radius:20px;padding:7px 11px}.ready-badge.ready{background:#e7efe7;color:#3d7050}.network-state{font-size:11px;color:#7a8a80}.install-button{border:1px solid #c4d0c5;padding:8px 14px}.library{max-width:1280px;margin:auto;padding:56px 5vw}.eyebrow{font-size:10px;letter-spacing:3px;color:#839080}.library-intro{display:flex;align-items:center;justify-content:space-between;gap:20px}.library-intro h1{font-size:42px;font-weight:500;letter-spacing:1px;margin:15px 0}.library-intro p:not(.eyebrow){font-size:13px;color:#819079}.import-primary{white-space:nowrap;padding:15px 24px}.offline-banner{background:#e9eee6;border:1px solid #dce5d7;border-radius:13px;padding:22px;display:flex;gap:18px;align-items:center;margin:32px 0 42px}.banner-icon{font-size:28px;color:#55745d}.offline-banner b{font-size:13px}.offline-banner p{font-size:11px;color:#7d8e76;margin-bottom:0;line-height:1.8}.offline-banner button{margin-left:auto;white-space:nowrap;font-size:11px}.library-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:10px}.library-heading h2{font-size:17px;font-weight:500;margin:0}.library-heading h2 span{font-size:11px;background:#e6ebe1;padding:3px 7px;border-radius:6px;margin-left:8px}.library-heading>div{display:flex;gap:7px}.library-heading button{font-size:11px;padding:7px 10px;border:1px solid #d7e0d2}.danger{color:#9d554e}.model-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.local-card{background:#fff;border:1px solid #e2e8dc;border-radius:12px;position:relative;overflow:hidden}.local-card.selected{outline:2px solid #416954}.local-card>input{position:absolute;z-index:2;top:15px;left:15px;width:19px;height:19px}.card-open{display:block;width:100%;text-align:left;padding:0;border-radius:0}.model-art{height:190px;background:#e7ebe0;position:relative;display:flex;align-items:center;justify-content:center}.model-art svg{width:85%;height:130px;fill:#d2d9c9;stroke:#82917d;stroke-width:1.3}.model-art span{position:absolute;bottom:12px;left:18px;color:#73846c;font-size:9px}.art-1{background:#e4eae6}.art-2{background:#ece8dc}.card-text{padding:21px 20px 15px}.card-text h3{font-weight:550;font-size:16px;margin:0;overflow-wrap:anywhere}.card-text p{font-size:10px;color:#86927d;margin:9px 0 18px}.card-text>span{display:block;font-size:10px;color:#65835b;border-top:1px solid #e8ede2;padding-top:13px}.card-text b{float:right}.card-backup{font-size:10px;width:100%;padding:9px 15px;border-top:1px solid #edf0e8;border-radius:0;color:#7a8f70}.empty-library{padding:48px 15px 55px;border:1px dashed #cbd7c4;border-radius:13px;text-align:center;background:#f9faf6}.empty-library>div{font-size:37px;color:#72916b}.empty-library h2{font-size:20px;font-weight:500}.empty-library p{font-size:12px;color:#8b9783;line-height:2}.library-footer{margin-top:30px;padding-top:22px;border-top:1px solid #e1e6dc;display:flex;align-items:center;gap:20px;justify-content:space-between}.library-footer p{font-size:10px;color:#8c9785;line-height:1.9;max-width:650px}.library-footer>div{display:flex;gap:5px}.library-footer button{font-size:10px;white-space:nowrap}.app-notice{background:#fff3d8;border-bottom:1px solid #e9d6b0;padding:10px 5vw;display:flex;justify-content:space-between;gap:14px;font-size:12px;line-height:1.6;flex-shrink:0}.app-notice button{padding:0;min-height:20px}.dialog-backdrop{position:fixed;inset:0;z-index:30;background:#102e3266;display:flex;align-items:center;justify-content:center;padding:18px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.app-dialog{width:450px;max-width:100%;max-height:90dvh;overflow:auto;border-radius:16px;background:#fcfcf8;box-shadow:0 20px 70px #15353633;padding:28px}.app-dialog h2{font-size:21px;margin:0 0 20px;font-weight:550}.app-dialog p{font-size:12px;line-height:1.9;color:#7a8c73}.app-dialog label{font-size:12px;display:block;margin-top:15px}.app-dialog input,.app-dialog textarea{display:block;width:100%;border:1px solid #ccd9c7;border-radius:7px;padding:11px;margin:9px 0;background:#fff}.app-dialog textarea{min-height:110px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.in-model{height:100dvh;display:flex;flex-direction:column;overflow:hidden}.in-model .app-header{height:65px;flex-shrink:0;padding:0 22px}.local-workspace{flex:1;min-height:0;display:flex;flex-direction:column}.workspace-title{display:flex;gap:12px;align-items:center;padding:10px 20px;background:#fafbf6;border-bottom:1px solid #dfe5da;flex-shrink:0;min-height:56px}.workspace-title h1{font-size:14px;font-weight:550;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.workspace-title>span{font-size:10px;color:#7c9274;margin-right:auto;white-space:nowrap}.workspace-title button{font-size:11px;padding:7px 10px;white-space:nowrap}.workspace-body{flex:1;min-height:0;display:flex;position:relative}.local-stage{position:relative;flex:1;min-width:0;overflow:hidden;background:#e9ece8}.stage-caption{position:absolute;left:24px;top:20px;pointer-events:none;font-size:13px;color:#59724e}.stage-caption small{display:block;font-size:9px;margin-top:7px;color:#889780}.local-tools{position:absolute;bottom:43px;left:50%;transform:translate(-50%);display:flex;gap:3px;padding:6px;background:#fffffff2;border:1px solid white;box-shadow:0 9px 27px #284a2b1c;border-radius:12px;max-width:calc(100% - 20px);white-space:nowrap;overflow-x:auto}.local-tools button{padding:9px 13px;font-size:11px;flex-shrink:0}.local-tools button.active{background:#e3ecdf;color:#315a3b}.gesture-hint{position:absolute;bottom:10px;left:15px;right:15px;pointer-events:none;text-align:center;font-size:9px;color:#819079;margin:0}.gesture-hint span+span{display:none}.local-settings{width:310px;border-left:1px solid #d9e3d1;background:#fafbf6;padding:20px;overflow:auto;flex-shrink:0}.local-settings>header{display:flex;align-items:center;justify-content:space-between}.local-settings>header b{font-size:14px;font-weight:550}.local-settings h3{font-size:11px;font-weight:500;color:#7d8b74;margin:24px 0 12px}.preset-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.preset-grid button{padding:9px 4px;font-size:11px;background:#f1f4eb;border:1px solid #e0e6d7}.preset-grid button.active{background:#dfe9d8}.local-note{display:block;text-align:left;border:1px solid #dde6d5;width:100%;padding:12px;margin:8px 0}.local-note b{font-size:11px}.local-note p{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.local-note small{font-size:9px;color:#809375}.selection-card{position:absolute;top:70px;left:20px;width:250px;max-width:calc(100% - 40px);padding:15px;background:#fffffff2;border:1px solid #d1dec9;border-radius:9px;font-size:12px}.selection-card>button{float:right;min-height:20px}.selection-card b{display:block;overflow-wrap:anywhere}.selection-card p{font-size:10px;color:#7c8d70}.local-stage .measure-panel{z-index:6;top:65px}.local-settings .hint{font-size:10px;line-height:1.8;color:#809174}@media(max-width:900px){.model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.local-settings{position:absolute;right:0;top:0;bottom:0;z-index:10;box-shadow:-10px 0 40px #253b2822}.library-footer{display:block}}@media(max-width:600px){.app-header{height:70px;gap:10px;padding:0 16px}.brand>span{font-size:18px}.brand img{width:31px}.status-group{gap:0}.network-state{display:none}.ready-badge{font-size:9px;padding:6px 8px}.install-button{padding:7px 9px;font-size:10px}.library{padding:32px 18px}.library-intro{display:block}.library-intro h1{font-size:33px}.import-primary{margin-top:15px;width:100%}.offline-banner{margin:24px 0 32px;padding:17px;gap:12px;align-items:flex-start}.offline-banner button{display:none}.offline-banner p{font-size:10px}.model-grid{grid-template-columns:1fr}.model-art{height:170px}.library-heading h2{font-size:16px}.library-heading button{font-size:10px;padding:6px}.library-heading>div{gap:4px}.in-model .app-header{height:58px;padding:0 12px}.workspace-title{padding:7px 9px;gap:3px;flex-wrap:wrap}.workspace-title h1{font-size:12px;max-width:calc(100% - 90px)}.workspace-title>span{display:none}.workspace-title>button:nth-last-child(2){margin-left:auto}.workspace-title button{font-size:10px;padding:5px 7px}.local-tools{bottom:38px;padding:4px;gap:0}.local-tools button{padding:7px 10px;font-size:10px}.gesture-hint span:first-child{display:none}.gesture-hint span+span{display:block}.stage-caption{left:15px;top:16px}.local-stage .measure-panel{top:58px;max-height:calc(100% - 140px)}.app-notice{font-size:10px;padding:7px 15px}.app-dialog{padding:23px}.local-settings{width:min(310px,90vw)}}@media(max-height:500px){.in-model .app-header{height:44px}.brand small{display:none}.workspace-title{min-height:42px;padding:3px 12px}.local-stage .measure-panel{top:8px;max-height:calc(100% - 90px)}.stage-caption{display:none}}.skp-import-report{margin-top:20px;padding:12px;border:1px solid #dce5d5;border-radius:8px;background:#f3f6ee;font-size:11px}.skp-import-report summary{cursor:pointer}.skp-import-report p{font-size:10px;line-height:1.8;color:#7c8d71;overflow-wrap:anywhere}.file-import-guide{font-size:11px;color:#6e8466;margin:-20px 0 25px;padding:0 2px}.file-import-guide summary{cursor:pointer;padding:9px 0}.file-import-guide ol{padding-left:22px;line-height:1.9;margin:5px 0}.file-import-guide li{padding:3px 0}.file-import-guide p{font-size:10px;line-height:1.8;color:#819377;margin-bottom:12px}:root,:root[data-theme=nordic]{--bg:#f5f3ee;--surface:#ffffff;--surface-2:#efebe3;--line:#e0dbd1;--line-strong:#cfc8bb;--text:#2f2b27;--text-2:#5f5a53;--hover:#ebe6dc;--accent:#4f7a5a;--accent-hover:#436b4e;--on-accent:#ffffff;--accent-soft:#e3ece5;--accent-ink:#2f5238;--measure:#4f7a5a;--on-measure:#ffffff;--notice:#f1ebdd;--art-fill:#eadfcb;--shadow:0 6px 22px #3f362a1a}:root[data-theme=site]{--bg:#ffffff;--surface:#ffffff;--surface-2:#f2f2f2;--line:#9a9a9a;--line-strong:#111111;--text:#000000;--text-2:#2b2b2b;--hover:#ececec;--accent:#111111;--accent-hover:#333333;--on-accent:#ffffff;--accent-soft:#111111;--accent-ink:#ffffff;--measure:#d9480f;--on-measure:#ffffff;--notice:#fff1e8;--art-fill:#d9d9d9;--shadow:0 4px 14px #00000026}:root[data-theme=night]{--bg:#111c2b;--surface:#16222f;--surface-2:#1c2a3b;--line:#2c3d52;--line-strong:#3d5470;--text:#e6edf5;--text-2:#a9b7c7;--hover:#22334a;--accent:#f0b44c;--accent-hover:#f5c46c;--on-accent:#111c2b;--accent-soft:#2b3c52;--accent-ink:#f0b44c;--measure:#f0b44c;--on-measure:#111c2b;--notice:#1f2c3d;--art-fill:#2b3c52;--shadow:0 8px 26px #00000066}:root[data-theme]{color-scheme:light;background:var(--bg);color:var(--text)}:root[data-theme=night]{color-scheme:dark}:root[data-theme] body,:root[data-theme] .offline-app{background:var(--bg);color:var(--text)}:root[data-theme] button:not(:disabled):hover{background-color:var(--hover)}:root[data-theme] button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}:root[data-theme] .primary{background:var(--accent);color:var(--on-accent);border-radius:999px;box-shadow:none}:root[data-theme] .primary:not(:disabled):hover{background:var(--accent-hover)}:root[data-theme] .secondary{background:var(--surface);border-color:var(--line-strong);color:var(--text);border-radius:999px}:root[data-theme] .danger{color:#b4412f}:root[data-theme=night] .danger{color:#ff8f7a}:root[data-theme] select,:root[data-theme] input:not([type=checkbox]),:root[data-theme] textarea{background:var(--surface);color:var(--text);border:1px solid var(--line-strong);border-radius:8px}:root[data-theme] label:not(.button):not(.checkbox-label){color:var(--text-2)}:root[data-theme] .app-header{background:var(--bg);border-bottom:1px solid var(--line)}:root[data-theme] .brand small,:root[data-theme] .network-state{color:var(--text-2)}:root[data-theme] .ready-badge{background:var(--surface-2);color:var(--text-2);font-size:12px}:root[data-theme] .ready-badge.ready{background:var(--accent-soft);color:var(--accent-ink)}:root[data-theme] .install-button,:root[data-theme] .theme-button{border:1px solid var(--line-strong);border-radius:999px;color:var(--text);font-size:13px;padding:8px 14px;background:var(--surface)}.theme-button{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.icon{flex-shrink:0;display:block}:root[data-theme] .app-notice{background:var(--notice);border-bottom:1px solid var(--line);color:var(--text);font-size:13px}:root[data-theme] .eyebrow,:root[data-theme] .library-intro p:not(.eyebrow){color:var(--text-2)}:root[data-theme] .library-intro p:not(.eyebrow){font-size:14px}:root[data-theme] .offline-banner{background:var(--surface-2);border-color:var(--line)}:root[data-theme] .offline-banner b{font-size:14px}:root[data-theme] .offline-banner p,:root[data-theme] .banner-icon{color:var(--text-2);font-size:13px}:root[data-theme] .offline-banner button,:root[data-theme] .library-heading button,:root[data-theme] .library-footer button{border:1px solid var(--line-strong);border-radius:999px;font-size:12px;padding:8px 13px;color:var(--text)}:root[data-theme] .library-heading h2 span{background:var(--surface-2);color:var(--text-2)}:root[data-theme] .local-card{background:var(--surface);border-color:var(--line);border-radius:14px}:root[data-theme] .local-card.selected{outline:2px solid var(--accent)}:root[data-theme] .model-art{background:var(--surface-2)}:root[data-theme] .model-art svg{fill:var(--art-fill);stroke:var(--text-2)}:root[data-theme] .model-art span,:root[data-theme] .card-text p,:root[data-theme] .card-backup{color:var(--text-2);font-size:12px}:root[data-theme] .card-text>span{color:var(--accent-ink);border-color:var(--line);font-size:12px}:root[data-theme=site] .card-text>span{color:#000}:root[data-theme] .card-backup{border-color:var(--line)}:root[data-theme] .empty-library{background:var(--surface-2);border-color:var(--line-strong)}:root[data-theme] .empty-library>div{color:var(--accent)}:root[data-theme] .empty-library p,:root[data-theme] .library-footer p,:root[data-theme] .file-import-guide,:root[data-theme] .file-import-guide p{color:var(--text-2);font-size:13px}:root[data-theme] .library-footer{border-color:var(--line)}.app-version{font-size:12px;color:var(--text-2);margin:18px 0 0}:root[data-theme] .dialog-backdrop{background:#0006}:root[data-theme] .app-dialog{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}:root[data-theme] .app-dialog p{color:var(--text-2);font-size:13px}:root[data-theme] .workspace-title{background:var(--bg);border-bottom:1px solid var(--line)}:root[data-theme] .workspace-title h1{font-size:15px}:root[data-theme] .workspace-title>span{color:var(--text-2);font-size:12px}:root[data-theme] .workspace-title button{font-size:13px;padding:7px 12px;border-radius:999px}:root[data-theme] .local-stage,:root[data-theme] .canvas-loading{background:var(--bg);color:var(--text-2)}:root[data-theme] .stage-caption{color:var(--text);font-size:14px}:root[data-theme] .stage-caption small{color:var(--text-2);font-size:11px}:root[data-theme] .gesture-hint{color:var(--text-2);font-size:11px}:root[data-theme] .local-tools{background:var(--surface);border:1px solid var(--line);border-radius:999px;box-shadow:var(--shadow);padding:5px;gap:2px;bottom:40px}:root[data-theme] .local-tools button{flex-direction:column;gap:2px;min-width:58px;min-height:50px;padding:6px 10px;font-size:11px;font-weight:500;color:var(--text);border-radius:999px}:root[data-theme] .local-tools button.active{background:var(--accent-soft);color:var(--accent-ink)}:root[data-theme] .local-settings{background:var(--bg);border-color:var(--line)}:root[data-theme] .local-settings h3{color:var(--text-2);font-size:12px}:root[data-theme] .local-settings .hint,:root[data-theme] .display-settings .hint{color:var(--text-2);font-size:12px}:root[data-theme] .preset-grid button{background:var(--surface);border:1px solid var(--line);font-size:13px;color:var(--text);border-radius:10px}:root[data-theme] .preset-grid button.active{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}:root[data-theme] .local-note{border-color:var(--line)}:root[data-theme] .local-note small,:root[data-theme] .skp-import-report p{color:var(--text-2)}:root[data-theme] .skp-import-report{background:var(--surface);border-color:var(--line)}:root[data-theme] .selection-card{background:var(--surface);border-color:var(--line);color:var(--text);box-shadow:var(--shadow)}:root[data-theme] .selection-card p{color:var(--text-2);font-size:12px}:root[data-theme] .display-settings{background:var(--surface);border-color:var(--line)}:root[data-theme] .display-settings summary{font-size:13px;font-weight:500}:root[data-theme] .checkbox-label,:root[data-theme] .display-settings .checkbox-label{color:var(--text);font-size:12px}:root[data-theme] .checkbox-label input{accent-color:var(--accent)}:root[data-theme] .render-stats{color:var(--text-2);font-size:12px}.theme-choices{display:grid;gap:6px;margin:12px 0 4px}.theme-choice{justify-content:flex-start;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);text-align:left;font-size:13px}.theme-choice.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.theme-choice small{display:block;font-size:11px;color:var(--text-2);margin-top:1px}.theme-choice.active small{color:inherit}.theme-choice i{width:26px;height:26px;border-radius:50%;flex-shrink:0;border:1px solid #0000002e}.theme-swatch-nordic i{background:linear-gradient(135deg,#eadfcb 50%,#4f7a5a 50%)}.theme-swatch-site i{background:linear-gradient(135deg,#fff 50%,#111 50%)}.theme-swatch-night i{background:linear-gradient(135deg,#111c2b 50%,#f0b44c 50%)}:root[data-theme] .measurement.measure-panel{background:var(--surface);border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow);border-radius:14px}:root[data-theme] .measure-panel header b{font-size:13px}:root[data-theme] .measure-panel header select{background:var(--surface-2);border-color:var(--line);font-size:12px}:root[data-theme] .measure-result{font-size:26px;color:var(--measure);font-variant-numeric:tabular-nums;letter-spacing:0}:root[data-theme=site] .measure-result{color:#000}:root[data-theme] .measure-panel[data-complete=false] .measure-result{font-size:16px;color:var(--text-2)}:root[data-theme] .measure-panel .metric-equivalent,:root[data-theme] .snap-coordinates,:root[data-theme] .measure-panel footer small{color:var(--text-2);font-size:11px}:root[data-theme] .snap-readout{font-size:12px}:root[data-theme] .measure-axis-values{border-color:var(--line)}:root[data-theme] .measure-axis-values dt{font-size:11px}:root[data-theme] .measure-axis-values dd{font-size:13px;font-variant-numeric:tabular-nums}:root[data-theme=night] .measure-axis-values>div:nth-child(1) dt{color:#ff9a8f}:root[data-theme=night] .measure-axis-values>div:nth-child(2) dt{color:#9ad08f}:root[data-theme=night] .measure-axis-values>div:nth-child(3) dt{color:#95b8ff}:root[data-theme] .measure-edit-actions>button,:root[data-theme] .snap-options button{background:var(--surface-2);border:1px solid var(--line);color:var(--text);font-size:12px;min-height:40px;border-radius:999px}:root[data-theme] .measure-panel footer{border-color:var(--line)}:root[data-theme] .dimension-label{background:var(--measure);color:var(--on-measure);border:0;border-radius:999px;padding:5px 12px;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;box-shadow:var(--shadow)}:root[data-theme] .snap-target{color:var(--measure)}:root[data-theme] .snap-target i{background:transparent;box-shadow:0 0 0 3px var(--surface)}:root[data-theme] .snap-target b{background:var(--surface);border:1px solid var(--line);color:var(--text);font-size:12px}:root[data-theme] .person-height-label{background:var(--surface);border-color:var(--line);color:var(--text-2);font-size:11px}@media(max-width:600px){:root[data-theme] .theme-button span{display:none}:root[data-theme] .workspace-title h1{font-size:13px}:root[data-theme] .workspace-title button{font-size:12px;padding:5px 8px}:root[data-theme] .theme-button,:root[data-theme] .install-button{padding:7px 10px;font-size:12px}:root[data-theme] .local-tools{bottom:30px;left:8px;right:8px;transform:none;max-width:none;justify-content:space-between;border-radius:18px}:root[data-theme] .local-tools button{min-width:0;flex:1;padding:6px 2px;font-size:11px}:root[data-theme] .gesture-hint{bottom:8px;font-size:11px}:root[data-theme] .local-stage .measure-panel{inset:auto 8px 100px;width:auto;max-height:34%;padding:8px 12px}:root[data-theme] .measure-result{font-size:24px;margin:4px 0 2px}:root[data-theme] .measure-panel footer,:root[data-theme] .measure-panel .snap-readout,:root[data-theme] .measure-panel .snap-coordinates{display:none}:root[data-theme] .measure-panel .snap-options{display:flex;gap:6px;align-items:center}:root[data-theme] .measure-panel .snap-options select{flex:1;min-width:0;margin:0}:root[data-theme] .measure-axis-values{margin-top:6px;padding-top:6px}:root[data-theme] .measure-edit-actions{margin-top:6px}:root[data-theme] .measure-edit-actions>button,:root[data-theme] .snap-options button{min-height:36px}}.walk-card,.walk-compass,.north-editor{position:absolute;z-index:8;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:12px}.walk-card{left:14px;top:70px;width:260px;max-width:calc(100% - 115px);font-size:12px;max-height:40%;overflow:auto}.walk-card small,.walk-card label{display:block;margin:6px 0}.walk-card button{font-size:11px;padding:5px 8px;margin:2px}.walk-compass{right:14px;top:16px;text-align:center;width:86px;padding:7px;font-size:11px}.compass-disc{width:64px;height:64px;border:1px solid var(--line);border-radius:50%;margin:auto}.compass-disc b{color:var(--accent);display:block}.compass-disc i{font-size:28px;font-style:normal}.walk-compass button{font-size:10px;padding:3px}.walk-joystick{position:absolute;z-index:9;left:22px;bottom:115px;border:2px solid var(--line);border-radius:50%;width:100px;height:100px;background:var(--surface);opacity:.9;touch-action:none;text-align:center;-webkit-user-select:none;user-select:none;color:var(--text)}.walk-joystick div{border-radius:50%;background:var(--surface-2);width:46px;height:46px;margin:0 auto;font-size:32px}.walk-joystick span,.walk-joystick small{display:block;font-size:11px}.north-editor{top:65px;left:50%;transform:translate(-50%);width:270px;max-width:90%;font-size:12px}.north-editor p{font-size:11px}.north-dial{height:140px;width:140px;margin:auto;border:1px solid var(--line);border-radius:50%;touch-action:none;-webkit-user-select:none;user-select:none}.north-dial span{display:block;text-align:center;font-size:35px;height:140px;color:var(--accent)}.north-editor input{width:80px;margin:6px}.north-editor button{margin:5px}.ar-settings,.orientation-settings{border-top:1px solid var(--line);margin-top:16px;padding-top:6px;font-size:12px}.ar-settings button,.orientation-settings button{margin:4px 3px;padding:8px}.ar-result a{display:block;margin:10px 0}.ar-open img{width:100%;max-height:140px;object-fit:cover;border-radius:12px}.ar-open:after{content:"A：打开苹果 AR（测试）";display:block;text-align:center;padding:7px}@media(max-width:600px){.dimension-label{display:none!important}.walk-card{top:52px;left:8px;width:220px;font-size:11px;padding:8px}.walk-card small:last-child{display:none}.walk-compass{right:6px;top:8px;width:76px}.local-tools button{min-width:0!important}.local-tools{gap:0!important}.walk-joystick{left:14px;bottom:112px;width:88px;height:88px}}.walk-lift{position:absolute;z-index:9;right:18px;bottom:115px;display:grid;gap:6px;width:92px}.walk-lift button{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;min-height:48px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px}.walk-lift button b{font-size:24px;font-weight:400}.walk-lift button small{font-size:10px;color:var(--text-2)}.walk-lift button:active{background:var(--accent-soft)}@media(max-width:600px){.walk-lift{right:12px;bottom:112px;width:82px}.walk-lift button small{display:none}}@media(max-height:480px){.walk-lift{display:flex;right:12px;bottom:116px;width:auto}.walk-lift button{min-height:40px;min-width:64px;font-size:11px}.walk-lift button small{display:none}.walk-compass{top:4px}.walk-compass .compass-disc{height:38px;width:38px}.walk-compass .compass-disc i{font-size:15px}.walk-compass .compass-disc b{font-size:10px}}@media(max-height:480px)and (min-width:600px){.walk-card{top:8px;left:136px;max-height:calc(100% - 132px)}}:root[data-theme] .gps-button{flex-shrink:0;border:1px solid var(--line-strong);border-radius:999px;background:var(--surface);color:var(--text);padding:8px 12px;font-size:13px;white-space:nowrap}.gps-button small{font-size:10px}:root[data-theme] .gps-dialog{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:24px;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:22px;box-sizing:border-box}.gps-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.gps-heading p{font-size:10px;letter-spacing:1px;color:var(--text-2);margin:0 0 5px}.gps-heading h2{margin:0;font-size:23px}.gps-heading>button{min-width:40px;font-size:24px}.gps-dialog>p{font-size:13px;line-height:1.7}.gps-state{background:var(--surface-2);border-radius:12px;padding:11px 13px}.gps-state b,.gps-state span{display:block}.gps-state b{font-size:13px}.gps-state span{font-size:12px;line-height:1.7;margin-top:4px;color:var(--text-2)}.gps-accuracy{margin:16px 0;padding:16px 0;border-bottom:1px solid var(--line)}.gps-accuracy>span{font-size:12px;color:var(--text-2);display:block}.gps-accuracy strong{display:block;font-size:38px;line-height:1.4;color:var(--accent);font-variant-numeric:tabular-nums}.gps-accuracy small{font-size:11px;line-height:1.6}.gps-last strong{color:var(--text-2)}.gps-values{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.gps-values dt{font-size:11px;color:var(--text-2)}.gps-values dd{margin:5px 0 0;font-size:15px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.gps-empty{background:var(--surface-2);border-radius:12px;padding:22px 12px;margin:16px 0;text-align:center;font-size:15px}.gps-empty small{font-size:12px;color:var(--text-2)}.gps-actions{display:flex;gap:7px;flex-wrap:wrap}.gps-actions button{min-height:44px;font-size:12px;padding:8px 12px;border:1px solid var(--line-strong);border-radius:999px}.gps-explanation p{font-size:11px;line-height:1.8;color:var(--text-2);margin:10px 0 0}.gps-copy{display:block;font-size:12px;margin-top:12px}.gps-copy textarea{display:block;width:100%;height:140px;resize:vertical;margin-top:6px}@media(max-width:600px){:root[data-theme] .app-header{gap:6px}.app-header .brand{gap:4px}.app-header .brand small{display:none}:root[data-theme] .app-header .brand>span{font-size:15px}.app-header .brand img{width:26px;height:26px}:root[data-theme] .ready-badge{font-size:8px;padding:5px 6px}:root[data-theme] .app-header .theme-button,:root[data-theme] .app-header .install-button,:root[data-theme] .gps-button{padding:6px 8px;font-size:11px}.gps-button small{font-size:9px}:root[data-theme] .gps-dialog{padding:18px}.gps-values{gap:12px}.gps-values dd{font-size:14px}}@media(max-width:360px){.app-header .brand>span{display:none}}:root[data-theme=nordic]{--bg:#f2f2ef;--surface:#fff;--surface-2:#eaeae6;--text:#252729;--text-2:#606366;--line:#d7d8d4;--line-strong:#b4b6b2;--accent:#996024;--accent-hover:#80501d;--accent-soft:#f2e7d7;--accent-ink:#80501d;--measure:#996024;--on-measure:#fff;--notice:#f4eadb;--shadow:0 4px 16px #20232614}:root[data-theme] body{font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}:root[data-theme] button,:root[data-theme] input,:root[data-theme] select,:root[data-theme] textarea{font:inherit}:root[data-theme] button{border-radius:3px;min-height:40px}:root[data-theme] .primary,:root[data-theme] .secondary{border-radius:3px}:root[data-theme] button:focus-visible{outline:2px solid #b87f3e;outline-offset:3px}:root[data-theme] .app-header{height:64px;min-height:64px;gap:22px;padding:0 32px;background:#25282a;color:#f3f3f0;border-bottom:1px solid #3d4042;box-sizing:border-box}.app-header .brand{color:#f6f6f3;gap:12px;flex-shrink:0}.app-header .brand>span{font-size:24px;font-weight:600;letter-spacing:2px}.app-header .header-actions{display:flex;align-items:center;gap:16px;flex-shrink:0;margin-left:auto}:root[data-theme] .app-header button{background:transparent;color:#eee;border:0;border-radius:0;padding:7px 8px;white-space:nowrap;font-size:14px}:root[data-theme] .app-header button:not(:disabled):hover{background:#34383b;color:#fff}:root[data-theme] .app-header .brand{padding:0}.app-header .status-group{gap:12px;margin-left:auto}:root[data-theme] .app-header .ready-badge{background:transparent;color:#c3c8c4;padding:0;font-size:11px}:root[data-theme] .app-header .network-state{color:#aeb6b3}:root[data-theme] .app-header .install-button{border:1px solid #71777b;border-radius:3px;padding:7px 12px}:root[data-theme] .in-model .app-header{height:64px;min-height:64px;padding:0 32px;gap:28px}.in-model .app-header .status-group{display:none}:root[data-theme] .app-header .workspace-title{display:block;background:transparent;padding:0 0 0 26px;border:0;border-left:1px solid #616568;min-height:0;min-width:0;flex:1;overflow:hidden}:root[data-theme] .app-header .workspace-title h1{font-size:20px;font-weight:550;color:#f3f3f0;line-height:1.4;margin:0;max-width:100%;letter-spacing:.3px}.app-header .header-actions>button+button{border-left:1px solid #616568;padding-left:20px}:root[data-theme] .app-notice{font-size:12px;padding:7px 26px;line-height:1.5}:root[data-theme] .app-notice button{min-height:24px;flex-shrink:0;font-size:14px}:root[data-theme] .library{padding:46px 40px;max-width:1360px}:root[data-theme] .library-intro h1{font-size:30px;line-height:1.4;font-weight:550;letter-spacing:0;margin:8px 0}:root[data-theme] .eyebrow{font-size:12px;letter-spacing:0;margin:0;color:var(--text-2)}:root[data-theme] .library-intro p:not(.eyebrow){font-size:14px;line-height:1.6;margin:8px 0 0}:root[data-theme] .import-primary{padding:12px 22px;font-size:14px}.library-local-info{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:30px 0 14px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--text-2);font-size:13px}.library-local-info p{margin:0;line-height:1.6}.library-local-info button{font-size:13px;white-space:nowrap}:root[data-theme] .file-import-guide{margin:0 0 26px;padding:0;font-size:13px}:root[data-theme] .library-heading h2{font-size:17px;font-weight:550}:root[data-theme] .library-heading h2 span{border-radius:2px;background:transparent;padding:0;color:var(--text-2)}:root[data-theme] .library-heading button,:root[data-theme] .library-footer button{border-radius:3px;font-size:13px;padding:8px 12px}:root[data-theme] .model-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}:root[data-theme] .local-card{background:transparent;border:0;border-radius:0;border-bottom:1px solid var(--line);overflow:visible}:root[data-theme] .local-card.selected{outline:2px solid var(--accent);outline-offset:5px}:root[data-theme] .model-art{height:190px;color:var(--text-2);background:var(--surface-2);overflow:hidden}.model-art img{width:100%;height:100%;object-fit:contain}:root[data-theme] .model-art>.icon{width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:1.7}:root[data-theme] .model-art span{font-size:11px;bottom:12px;background:var(--surface);padding:3px 6px;left:12px}:root[data-theme] .card-open{min-height:0;display:block;border-radius:0}:root[data-theme] .card-open:not(:disabled):hover{background:transparent}:root[data-theme] .card-text{padding:18px 0 10px}:root[data-theme] .card-text h3{font-size:17px;font-weight:550;line-height:1.5}:root[data-theme] .card-text p{font-size:12px;margin:8px 0 14px}:root[data-theme] .card-text>span{font-size:12px;border:0;padding:0;color:var(--text-2)}:root[data-theme] .card-backup{border:0;justify-content:flex-start;font-size:12px;padding:8px 0 16px;min-height:40px}:root[data-theme] .empty-library{border-radius:0;background:transparent;padding:44px 20px;border:1px dashed var(--line-strong)}.empty-library>.icon{margin:0 auto 20px}:root[data-theme] .empty-library h2{font-size:21px}:root[data-theme] .library-footer{margin-top:32px;padding-top:18px;gap:18px}:root[data-theme] .library-footer p{font-size:12px;line-height:1.8;margin:0}:root[data-theme] .local-workspace{min-height:0}:root[data-theme] .local-stage .viewport{left:68px;right:0;width:calc(100% - 68px)}:root[data-theme] .stage-caption{left:96px;top:26px;font-size:22px;font-weight:550;line-height:1.3}:root[data-theme] .local-tools{inset:0 auto 0 0;transform:none;display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:12px;width:68px;max-width:none;padding:20px 5px;border:0;border-radius:0;background:#25282a;box-shadow:none;z-index:7;overflow:auto;scrollbar-width:thin;box-sizing:border-box}:root[data-theme] .local-tools button{min-width:0;min-height:56px;flex-shrink:0;flex-direction:column;gap:5px;padding:8px 3px;font-size:12px;color:#eaeeec;background:transparent;border-radius:0}:root[data-theme] .local-tools button:not(:disabled):hover{background:#34383b;color:#fff}:root[data-theme] .local-tools button.active,:root[data-theme] .local-tools button[aria-pressed=true]{background:transparent;color:#e4b577}:root[data-theme] .local-tools .rail-secondary{min-height:46px;font-size:11px;color:#c6ccca}:root[data-theme] .local-tools .rail-secondary .icon{width:18px;height:18px}:root[data-theme] .local-tools .rail-secondary:nth-of-type(4){margin-top:14px;border-top:1px solid #555b5e;padding-top:14px;min-height:58px}.stage-footer{position:absolute;left:96px;bottom:20px;color:var(--text-2);font-size:12px;pointer-events:none;z-index:3}:root[data-theme] .gesture-hint{left:30%;right:28%;bottom:20px;font-size:11px;line-height:1.5;text-align:center}.view-corner{position:absolute;right:26px;bottom:12px;display:flex;flex-direction:column;align-items:flex-end;gap:10px;z-index:4}.view-corner[hidden]{display:none}.scene-thumbnail{width:138px;height:88px;padding:3px;border:1px solid #b4844c;background:var(--surface);border-radius:3px;overflow:hidden}.scene-thumbnail img{width:100%;height:100%;object-fit:contain;display:block}.view-corner nav{display:flex;align-items:center;gap:0}.view-corner nav button{font-size:13px;padding:6px 11px;min-height:40px;color:var(--text);white-space:nowrap}.view-corner nav button+button{border-left:1px solid var(--line-strong);border-radius:0}.view-corner nav button[aria-pressed=true]{color:var(--accent);font-weight:600}.view-corner nav button:first-child{gap:6px}.local-stage[data-active-tool=measure] .scene-thumbnail,.local-stage[data-active-tool=measure] .view-corner,.local-stage[data-active-tool=note] .view-corner,.local-stage[data-active-tool=measure] .walk-card,.local-stage[data-active-tool=measure] .walk-joystick,.local-stage[data-active-tool=measure] .walk-lift{display:none}:root[data-theme] .local-settings{position:absolute;right:0;top:0;bottom:0;width:336px;max-width:calc(100% - 68px);padding:20px;background:var(--surface);border-left:1px solid var(--line);box-shadow:-4px 0 16px #20232612;z-index:12;box-sizing:border-box}.local-settings>header{position:sticky;top:-20px;background:var(--surface);margin:-20px -20px 0;padding:12px 16px;z-index:2;border-bottom:1px solid var(--line)}:root[data-theme] .local-settings>header b{font-size:15px}.local-settings>header button{min-width:40px;font-size:20px}.more-file-actions,.more-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:16px 0}.more-file-actions>button,.more-actions>button{min-height:42px;gap:7px;border:1px solid var(--line);padding:7px 8px;font-size:12px;background:var(--surface)}:root[data-theme] .more-actions .theme-button,:root[data-theme] .more-actions .gps-button,:root[data-theme] .more-actions .install-button{border-radius:3px;font-size:12px;min-height:42px;padding:7px 8px;justify-content:center;white-space:normal}:root[data-theme] .more-actions .theme-button span{display:inline}:root[data-theme] .preset-grid button,:root[data-theme] .theme-choice{border-radius:3px;min-height:42px}:root[data-theme] .theme-swatch-nordic i{background:#c49a63;border:7px solid #f2f2ef}:root[data-theme] .theme-swatch-site i{background:#111;border:7px solid #fff}:root[data-theme] .theme-swatch-night i{background:#f0b44c;border:7px solid #111c2b}:root[data-theme] .selection-card{left:96px;top:70px;border-radius:3px}:root[data-theme] .local-stage .measure-panel{left:96px;top:70px;border-radius:4px;max-height:calc(100% - 128px)}:root[data-theme] .measure-edit-actions>button,:root[data-theme] .snap-options button{border-radius:3px}:root[data-theme] .app-dialog,:root[data-theme] .gps-dialog{border-radius:6px}.local-stage .walk-card{left:96px;top:70px}.local-stage .walk-joystick{left:96px;bottom:82px}.local-stage .walk-lift{bottom:82px}.local-stage .walk-card,.local-stage .walk-compass,.local-stage .north-editor{border-radius:4px}@media(max-width:1100px){:root[data-theme] .app-header{padding:0 24px;gap:14px}.app-header .status-group .network-state{display:none}.app-header .header-actions{gap:8px}:root[data-theme] .library{padding:36px 28px}:root[data-theme] .model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}:root[data-theme] .gesture-hint{left:100px;right:auto;bottom:42px;font-size:10px}.view-corner{right:16px;bottom:8px}.view-corner nav button{font-size:12px;padding:6px 8px}.stage-footer{font-size:11px}}@media(max-width:600px){:root[data-theme] .app-header{height:auto;min-height:60px;padding:10px 16px;gap:8px;flex-wrap:wrap}.app-header .brand>span{font-size:19px;letter-spacing:1px}.app-header .brand>.icon{width:24px;height:24px}.app-header .header-actions{gap:4px}:root[data-theme] .app-header .header-actions button{font-size:12px;padding:7px 6px}:root[data-theme] .app-header .header-actions>button+button{padding-left:8px}.app-header .status-group{order:3;flex-basis:100%;justify-content:flex-start;padding:2px 0}:root[data-theme] .app-header .ready-badge{font-size:10px}:root[data-theme] .in-model .app-header{height:56px;min-height:56px;padding:0 12px;gap:10px;flex-wrap:nowrap}.in-model .app-header .brand>span{display:none}:root[data-theme] .app-header .workspace-title{padding-left:12px}:root[data-theme] .app-header .workspace-title h1{font-size:14px;letter-spacing:0}:root[data-theme] .library{padding:30px 20px}:root[data-theme] .library-intro h1{font-size:27px}:root[data-theme] .library-intro p:not(.eyebrow){font-size:13px}:root[data-theme] .import-primary{margin-top:22px}.library-local-info{margin:24px 0 12px;align-items:flex-start;font-size:12px;gap:8px}.library-local-info button{font-size:12px;padding:0 4px;min-height:36px}:root[data-theme] .file-import-guide{font-size:12px;margin-bottom:24px}:root[data-theme] .model-grid{grid-template-columns:1fr}:root[data-theme] .model-art{height:180px}:root[data-theme] .local-stage .viewport{left:0;width:100%;right:0}:root[data-theme] .stage-caption{left:18px;top:20px;font-size:18px}:root[data-theme] .local-tools{inset:auto 0 0;width:auto;height:66px;padding:4px 6px calc(4px + env(safe-area-inset-bottom,0px));max-width:none;flex-direction:row;justify-content:space-around;gap:0;overflow:hidden;align-items:center}:root[data-theme] .local-tools button,:root[data-theme] .local-tools .rail-secondary,:root[data-theme] .local-tools .rail-secondary:nth-of-type(4){margin:0;padding:4px 3px;border:0;min-width:0;min-height:52px;flex:1;font-size:11px;gap:3px}:root[data-theme] .local-tools button .icon{width:21px;height:21px}:root[data-theme] .local-tools button:not(:disabled):hover{background:#34383b}.stage-footer{left:14px;bottom:111px;font-size:10px}:root[data-theme] .gesture-hint{left:14px;right:auto;bottom:95px;font-size:10px}.view-corner{right:8px;bottom:66px;gap:0;left:8px;align-items:stretch}.scene-thumbnail{display:none}.view-corner nav{justify-content:flex-end}.view-corner nav button{min-height:35px;font-size:11px;padding:5px 7px}.view-corner nav button:first-child .icon{display:none}:root[data-theme] .local-settings{max-width:100%;width:min(336px,100%)}:root[data-theme] .local-stage .measure-panel{inset:auto 8px 115px;max-height:34%;width:auto;padding:8px 12px}.local-stage[data-active-tool=measure] .stage-footer,.local-stage[data-active-tool=measure] .gesture-hint{display:none}:root[data-theme] .selection-card{left:12px;top:60px}.local-stage .walk-card{left:8px;top:52px}.local-stage .walk-joystick{left:14px;bottom:106px}.local-stage .walk-lift{right:12px;bottom:106px}:root[data-theme] .app-notice{padding:5px 12px;font-size:11px}}@media(max-height:500px)and (min-width:601px){:root[data-theme] .in-model .app-header{height:48px;min-height:48px}:root[data-theme] .local-tools{gap:2px;padding:4px;width:60px}:root[data-theme] .local-tools button,:root[data-theme] .local-tools .rail-secondary,:root[data-theme] .local-tools .rail-secondary:nth-of-type(4){min-height:44px;padding:4px 2px;margin:0;border:0;gap:2px;font-size:10px}:root[data-theme] .local-tools .icon{width:18px;height:18px}:root[data-theme] .local-stage .viewport{left:60px;width:calc(100% - 60px)}:root[data-theme] .stage-caption{left:80px;top:14px;font-size:16px}.scene-thumbnail{display:none}.stage-footer{left:80px;bottom:10px;font-size:10px}:root[data-theme] .gesture-hint{display:none}.view-corner{bottom:0;right:10px}:root[data-theme] .local-stage .measure-panel{left:80px;top:12px;max-height:calc(100% - 60px)}.local-stage .walk-card{left:80px;top:4px;max-height:calc(100% - 85px)}.local-stage .walk-joystick{left:80px;bottom:12px;width:80px;height:80px}.local-stage .walk-lift{bottom:12px}}:root[data-theme] .local-stage .viewport{left:0;width:100%}:root[data-theme] .local-tools{inset:auto auto 16px 16px;width:auto;max-width:42%;height:auto;flex-direction:row;padding:4px;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:6px;overflow:visible;box-shadow:var(--shadow)}:root[data-theme] .local-tools button{min-width:60px;min-height:48px;padding:5px 10px;flex-direction:row;font-size:14px;color:var(--text);gap:5px;border:0;border-radius:3px}:root[data-theme] .local-tools button.active,:root[data-theme] .local-tools button[aria-pressed=true]{background:var(--accent);color:var(--on-measure)}:root[data-theme] .local-tools .rail-secondary{color:var(--text-2);font-size:12px;min-width:46px;min-height:48px}:root[data-theme] .local-tools .rail-secondary:nth-of-type(4){margin:0;padding:5px 10px;border:0;min-height:48px}:root[data-theme] .local-tools button:first-child,:root[data-theme] .local-tools .rail-secondary:nth-of-type(4){display:none}.view-corner{bottom:16px;right:16px;z-index:8;display:flex!important;flex-direction:column;gap:0}.view-corner[hidden]{display:none!important}:root[data-theme] .view-corner nav{background:var(--surface);padding:4px;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow)}:root[data-theme] .view-corner nav button{font-size:14px;min-height:48px;padding:6px 14px;border:0;border-radius:3px}:root[data-theme] .view-corner nav button[aria-pressed=true]{background:var(--accent);color:var(--on-measure)}.view-menu{position:absolute;bottom:64px;right:0;display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--surface);padding:8px;border:1px solid var(--line);border-radius:6px;box-shadow:var(--shadow);min-width:260px}.view-menu button{font-size:13px}:root[data-theme] .stage-caption{left:16px;top:14px;font-size:16px;max-width:75%;background:color-mix(in srgb,var(--surface) 88%,transparent);padding:7px 10px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.secondary-tools{position:absolute;top:14px;right:16px;display:flex;gap:5px;z-index:6}.secondary-tools button{background:var(--surface);color:var(--text-2);border:1px solid var(--line);font-size:12px;padding:5px 10px}.stage-footer{left:16px;bottom:82px;font-size:10px}:root[data-theme] .gesture-hint{left:auto;right:16px;bottom:82px;font-size:10px;text-align:right;max-width:65%;line-height:1.4;pointer-events:none}:root[data-theme] .local-stage .measure-panel{inset:65px 16px auto auto;width:250px;max-height:calc(100% - 160px);padding:10px;overflow:visible;border-radius:5px;z-index:10}.measure-panel header{gap:5px}.measure-panel header>b{display:none}.measure-panel header select{flex:1;min-width:0}.measure-panel .measure-result{font-size:20px;line-height:1.3;margin:7px 0}.measure-panel .measure-edit-actions{display:flex;gap:4px;margin:0}.measure-panel .measure-edit-actions>button{font-size:11px;flex:1;padding:3px;min-height:30px}.measure-more{font-size:11px}.measure-more summary{cursor:pointer;min-height:30px;display:flex;align-items:center;padding:0 4px}.measure-extra{position:absolute;right:0;top:100%;width:250px;box-sizing:border-box;background:var(--surface);border:1px solid var(--line);padding:10px;max-height:240px;overflow:auto;box-shadow:var(--shadow)}.measure-panel .snap-options{display:flex;flex-direction:column}.measure-panel .snap-options select{width:100%;font-size:12px;min-height:36px;white-space:normal}.measure-panel .metric-equivalent{font-size:10px}.measure-panel .measure-axis-values{font-size:11px}.note-pins{position:absolute;inset:0;pointer-events:none;z-index:5}.note-pins .note-pin{position:absolute;pointer-events:auto;transform:translate(-50%,-100%);width:24px;height:28px;min-height:28px!important;padding:0;border:2px solid var(--surface);border-radius:12px 12px 12px 0;background:var(--text);color:var(--surface);font-size:12px;box-shadow:0 1px 5px #0005}.note-pins .note-pin[hidden]{display:none}.tool-prompt{position:absolute;left:16px;top:55px;background:var(--surface);font-size:12px;padding:7px 10px;z-index:7}.notes-drawer,.note-popup{position:absolute;right:16px;top:64px;width:280px;max-width:calc(100% - 32px);max-height:55%;overflow:auto;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:5px;box-shadow:var(--shadow);z-index:12;box-sizing:border-box}.notes-drawer header{display:flex;align-items:center;justify-content:space-between}.note-popup{top:64px;right:auto;left:16px;z-index:13}.note-popup>button{float:right}.note-popup p{white-space:pre-wrap;font-size:14px}.local-stage .walk-card{left:16px}.local-stage .walk-joystick{left:24px;bottom:98px}@media(max-width:700px)and (orientation:portrait){:root[data-theme] .local-tools{left:10px;right:10px;bottom:72px;max-width:none;justify-content:flex-start}:root[data-theme] .local-tools button{flex:0 0 auto;font-size:14px;min-height:48px}.view-corner{left:10px;right:10px;bottom:10px;align-items:stretch}.view-corner nav{display:flex;overflow-x:auto}.view-corner nav button{flex:1;padding:6px 8px!important;min-width:68px}:root[data-theme] .local-stage .measure-panel{inset:auto 10px 136px;width:auto;max-height:116px;padding:6px 10px;display:grid;grid-template-columns:1fr auto;column-gap:8px}.measure-panel header{grid-column:2;grid-row:1;max-width:150px}.measure-panel .measure-result{grid-column:1;grid-row:1;font-size:18px;align-self:center;margin:0}.measure-panel .measure-edit-actions,.measure-panel .metric-equivalent{grid-column:1/3}.measure-extra{top:auto;bottom:100%;width:270px}:root[data-theme] .gesture-hint,.stage-footer{display:none}.secondary-tools{right:10px;top:48px}.stage-caption{left:10px!important;top:10px!important;font-size:14px!important}.tool-prompt{top:48px;max-width:60%;font-size:10px}.notes-drawer{top:98px}.local-stage .walk-joystick,.local-stage .walk-lift{bottom:140px}}@media(max-height:500px){:root[data-theme] .local-tools button{font-size:12px;min-width:44px;padding:4px 6px}.stage-footer,:root[data-theme] .gesture-hint{display:none}:root[data-theme] .local-stage .measure-panel{top:55px;right:10px;width:230px}.secondary-tools{top:8px}}:root[data-theme] .local-tools button:first-child{display:flex}:root[data-theme] .local-tools .rail-secondary:nth-of-type(3){color:var(--text-2);font-size:12px;background:transparent;min-height:48px}.hand-status{position:absolute;left:16px;top:54px;background:var(--surface);color:var(--text-2);padding:5px 8px;font-size:12px;z-index:8}:root[data-theme] .in-model>.app-notice{position:absolute;top:66px;left:16px;right:16px;z-index:30;max-width:820px;margin:auto;box-shadow:var(--shadow);border:1px solid var(--line);border-radius:4px;white-space:nowrap;overflow:hidden;max-height:46px;box-sizing:border-box}.app-notice span{overflow:hidden;text-overflow:ellipsis}:root[data-theme] .local-settings{max-height:100%;overflow:auto}.local-settings details{border-bottom:1px solid var(--line);padding:12px 0;margin:0}.local-settings summary{font-size:14px;font-weight:550;min-height:28px;cursor:pointer}.local-settings .display-settings{border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0}.local-settings .display-settings summary{font-size:14px}.file-action-slot .gps-button,.file-action-slot .theme-button,.test-actions .theme-button,.test-actions .install-button{display:none!important}.local-settings .settings-group .local-note{width:100%}.selection-card>b{display:block}.selection-card>small{display:block;font-size:11px;max-width:250px;overflow:hidden;text-overflow:ellipsis}.sun-labels{position:absolute;inset:0;pointer-events:none;z-index:2}.sun-labels span{position:absolute;padding:2px 4px;background:#ffffffb8;color:#514532;font-size:11px;white-space:nowrap;transform:translate(-50%,-100%);border-radius:3px}.solar-panel{position:absolute;left:16px;right:16px;bottom:90px;max-width:720px;margin:0 auto;z-index:9;background:color-mix(in srgb,var(--surface) 95%,transparent);border:1px solid var(--line);border-radius:5px;padding:8px 12px;box-sizing:border-box;box-shadow:var(--shadow);font-size:11px}.solar-panel header{display:flex;gap:8px;align-items:center;line-height:1.3}.solar-panel header>b{font-size:13px}.solar-panel header>span{color:var(--text-2);font-size:10px}.solar-panel header>button{margin-left:auto;min-height:24px;font-size:20px}.solar-panel header output{font-variant-numeric:tabular-nums;font-size:15px}.solar-controls{display:flex;align-items:center;gap:8px}.solar-controls button,.solar-controls input{font-size:11px;min-height:28px!important;padding:3px 5px}.solar-controls label{display:flex;gap:5px;align-items:center}.solar-location{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.solar-panel>input[type=range]{width:100%;min-height:24px;margin:3px 0;padding:0;accent-color:var(--text-2)}.sunrise-labels{display:flex;justify-content:space-between;font-size:10px;gap:12px;color:var(--text-2)}.solar-warning,.solar-source{font-size:10px;margin:4px 0 0;display:flex;align-items:center;gap:8px}.solar-warning button{font-size:10px;min-height:22px!important;padding:2px 4px;border:1px solid var(--line)}.solar-warning{color:var(--text)}.solar-method{margin-top:3px}.solar-method summary{font-size:10px;cursor:pointer;color:var(--text-2)}.solar-method p{font-size:11px;line-height:1.5;max-height:64px;overflow:auto;margin:4px 0 0}:root[data-theme] .solar-panel header{height:auto;min-height:0;padding:0;margin:0;background:transparent;border:0;box-shadow:none}:root[data-theme] .solar-panel header>button{min-height:24px!important;height:24px;width:24px;padding:0;line-height:1}:root[data-theme] .solar-controls label{display:flex;flex-direction:row;align-items:center;gap:5px;margin:0;font-size:11px}:root[data-theme] .solar-controls input,:root[data-theme] .solar-controls button{min-height:28px;height:28px;padding:3px 5px;box-sizing:border-box;font-size:11px}.site-editor{position:absolute;left:0;right:0;bottom:100%;background:var(--surface);padding:14px;border:1px solid var(--line);max-height:min(60vh,400px);overflow:auto;box-shadow:var(--shadow);border-radius:5px}.site-editor label{display:flex;gap:8px;align-items:center;margin:8px 0}.site-editor input,.site-editor select{min-width:0;flex:1;font-size:12px;padding:5px}.site-coordinates{display:flex;gap:12px}.site-coordinates label{flex:1;min-width:0}.site-coordinates input{width:70px}.site-editor p{font-size:11px;margin:8px 0}.site-editor button{font-size:12px;min-height:36px}.site-editor>div:last-child{display:flex;gap:10px;justify-content:flex-end}.local-stage[data-active-tool=measure] .solar-panel,.local-stage[data-active-tool=note] .solar-panel{display:none}@media(pointer:fine){:root[data-theme] .gesture-hint span:first-child{display:inline}:root[data-theme] .gesture-hint span:last-child{display:none}}@media(pointer:coarse){:root[data-theme] .gesture-hint span:first-child{display:none}:root[data-theme] .gesture-hint span:last-child{display:inline}}@media(max-width:700px)and (orientation:portrait){.solar-panel{left:10px;right:10px;bottom:136px;padding:7px 9px}.solar-controls{gap:3px;flex-wrap:wrap}.solar-controls label{font-size:10px}.solar-controls button{padding:3px}.solar-location{max-width:100%}.solar-panel .sunrise-labels{font-size:9px;gap:4px}.solar-panel .solar-source{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px}.site-coordinates{gap:6px}.secondary-tools{top:48px}.local-stage[data-walking=true] .solar-panel{display:none}}@media(max-width:700px){:root[data-theme] .local-settings{top:auto;bottom:0;width:100%;max-width:100%;max-height:70%;border-left:0;border-top:1px solid var(--line);border-radius:8px 8px 0 0}.local-settings>header{top:-20px}}@media(min-width:901px){:root[data-theme] .in-model>.app-notice{left:220px;right:320px;max-width:640px}}@media(max-width:900px)and (min-height:501px){:root[data-theme] .in-model>.app-notice{top:118px}}.solar-panel{max-width:600px}@media(max-height:500px){:root[data-theme] .in-model .app-header{height:40px;min-height:40px;padding:0 14px;gap:12px}:root[data-theme] .app-header .workspace-title h1{font-size:14px}.app-header .brand>span{font-size:16px}:root[data-theme] .in-model>.app-notice{top:42px}.solar-panel{left:12px;right:12px;bottom:82px;max-width:580px}.solar-panel header{position:absolute;right:10px;top:7px}.solar-controls{padding-right:150px}.solar-controls .solar-location{max-width:120px}.solar-panel header>span{display:none}.solar-source,.solar-warning{margin-top:2px}.solar-method{display:none}}.solar-controls select{width:auto;max-width:80px;min-height:24px;padding:2px 4px;font:inherit;margin:0}.solar-panel .solar-path-toggle{display:flex;align-items:center;gap:4px}.solar-panel .solar-path-toggle input{width:13px;height:13px;margin:0}
