*{box-sizing:border-box;margin:0;padding:0}:root{--bg: #eef1f6;--surface: #ffffff;--surface2: #f4f6fa;--border: #cfd6e2;--accent: #3560d8;--accent2: #6a45d9;--text: #1d2230;--text2: #5a6480;--success: #1e9d6b;--warn: #c57a00;--danger: #c8344a;--panel-w: 300px}body{font-family:Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column;overflow:hidden}body{display:flex;flex-direction:column;height:100vh;margin:0;font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);overflow:hidden}.app-header{display:flex;align-items:center;gap:16px;padding:0 16px;height:48px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.app-brand{display:flex;flex-direction:column;line-height:1.05;min-width:140px}.app-brand .logo{font-size:14px;font-weight:700;letter-spacing:-.3px;background:linear-gradient(135deg,var(--accent),var(--accent2));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.app-brand .brand-name{font-size:10px;color:var(--text2);letter-spacing:.6px;text-transform:uppercase}.app-toolbar{flex:1;display:flex;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:thin}.app-toolbar::-webkit-scrollbar{height:4px}.app-toolbar select#tbModule,.app-toolbar select#selPlanDivMore{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:6px 20px 6px 10px;border-radius:6px;border:1px solid var(--border);background-color:var(--surface2);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'><path d='M0 0l4 5 4-5z' fill='%231d2230'/></svg>");background-repeat:no-repeat;background-position:right 7px center;background-size:8px 5px;color:var(--text);font-size:11px;cursor:pointer;transition:all .15s;line-height:1}.app-toolbar select#tbModule:hover,.app-toolbar select#selPlanDivMore:hover{border-color:var(--accent);color:var(--accent);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'><path d='M0 0l4 5 4-5z' fill='%233560d8'/></svg>")}.app-toolbar select#selPlanDivMore.active,.app-toolbar select#selPlanDivMore.active:hover{border-color:var(--accent)!important;background-color:#4f7fff26!important;color:var(--accent)!important;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'><path d='M0 0l4 5 4-5z' fill='%233560d8'/></svg>")!important}.app-toolbar input#tbModuleMm{width:64px;padding:6px;border-radius:6px;border:1px solid var(--accent);background-color:#4f7fff26;color:var(--accent);font-size:11px;line-height:1}.app-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-actions .btn-primary{width:auto;padding:7px 14px;font-size:12px;margin-top:0}.app-actions .btn-secondary{width:auto;padding:6px 12px;font-size:11px;margin-top:0}.app-actions .export-group{display:flex;gap:4px}.account-btn{width:32px;height:32px;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:border-color .15s,color .15s}.account-btn:hover{border-color:var(--accent);color:var(--accent)}header{display:none}.logo-sub,.step-tabs,.step-tab{display:none}.workspace{display:grid;grid-template-columns:56px 1fr 340px;flex:1;min-height:0;overflow:hidden}.tool-rail{background:var(--surface);border-right:1px solid var(--border);padding:8px 6px 0;overflow:hidden;display:flex;flex-direction:column}#toolRailScroll{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding-bottom:6px}#planToolCustomize{flex:0 0 auto;padding:6px 0 8px;background:var(--surface);border-top:1px solid var(--border)}.tool-rail #planToolPill{display:flex!important;flex-direction:column;flex-wrap:nowrap!important;gap:4px!important}.tool-rail .tool-card{width:100%!important;height:50px!important;min-width:0!important;flex:0 0 50px!important;padding:4px 2px!important;font-size:9px!important;gap:2px!important;overflow:hidden!important}.tool-rail .tool-card{align-items:center!important;justify-content:center!important;text-align:center}.tool-rail .tool-card i{display:block;width:100%;font-size:18px!important;line-height:18px;text-align:center}.tool-rail .tool-card span:not(.kbd){display:block;width:100%;margin:0!important;text-align:center;font-size:9px!important;line-height:11px;white-space:nowrap;overflow:hidden;text-overflow:clip;max-width:100%}.tool-rail .tool-card .kbd{top:1px!important;right:2px!important;font-size:8px!important}.panel-left{display:none}.panel-section{padding:14px 16px;border-bottom:1px solid var(--border)}.panel-section h3{font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text2);margin-bottom:10px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding-right:16px;transition:color .15s}.panel-section h3:hover{color:var(--text)}.panel-section h3:after{content:"▾";position:absolute;right:0;top:50%;transform:translateY(-50%) rotate(0);transition:transform .18s ease;font-size:11px;opacity:.6}.panel-section.folded h3{margin-bottom:0}.panel-section.folded h3:after{transform:translateY(-50%) rotate(-90deg)}.panel-section.folded>*:not(h3){display:none!important}.face-plan-wrap{padding:14px 16px 12px;border-bottom:1px solid var(--border)}.face-plan-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}.face-plan-title{font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--text2)}.face-plan-sub{font-size:10px;color:var(--text2);opacity:.7}.face-plan-grid{display:grid;grid-template-columns:48px 1fr 48px;grid-template-rows:42px 1fr 42px;grid-template-areas:".    back  ." "left center right" ".    front .";gap:6px;height:170px}.fp-back{grid-area:back}.fp-front{grid-area:front}.fp-left{grid-area:left}.fp-right{grid-area:right}.fp-center{grid-area:center;display:flex;align-items:center;justify-content:center;color:var(--text2)}.fp-cell{position:relative;background:var(--surface2);border:1.5px dashed var(--border);border-radius:6px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text2)}.fp-cell:hover{border-color:var(--accent);color:var(--accent)}.fp-cell.active{border-color:var(--accent);background:#4f7fff1a}.fp-cell.loaded{border-style:solid;border-color:var(--accent);color:var(--text)}.fp-cell.confirmed{border-style:solid;border-color:var(--success);background:#3ecf8e14;color:var(--text)}.fp-cell.drop-target{border-color:var(--accent);background:#4f7fff2e;transform:scale(1.02)}.fp-cell input[type=file]{display:none}.fp-label{font-size:10px;font-weight:600;text-align:center;line-height:1.2;pointer-events:none;z-index:2}.fp-left .fp-label,.fp-right .fp-label{font-size:9px}.fp-stat{position:absolute;top:3px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--border);z-index:3}.fp-cell.loaded .fp-stat{background:var(--accent)}.fp-cell.confirmed .fp-stat{background:var(--success)}.fp-thumb{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:4px;background-size:cover;background-position:center;opacity:.35;z-index:1;pointer-events:none}.fp-dim{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:9px;color:var(--success);font-variant-numeric:tabular-nums;pointer-events:none;z-index:2}.elev-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px}.elev-card{background:var(--surface2);border:1.5px solid var(--border);border-radius:8px;padding:8px;cursor:pointer;transition:border-color .2s;position:relative}.elev-card:hover,.elev-card.active{border-color:var(--accent)}.elev-card.loaded{border-color:var(--success)}.elev-card label{font-size:10px;color:var(--text2);display:block;margin-bottom:6px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.elev-thumb{width:100%;height:70px;background:var(--bg);border-radius:4px;display:flex;align-items:center;justify-content:center;color:var(--border);font-size:22px;overflow:hidden;position:relative}.elev-thumb img{width:100%;height:100%;object-fit:contain}.elev-status{position:absolute;top:4px;right:4px;width:8px;height:8px;border-radius:50%;background:var(--border)}.elev-status.ok{background:var(--success)}.elev-status.traced{background:var(--accent)}.elev-card input[type=file]{display:none}.tools{display:flex;gap:6px;flex-wrap:wrap}.tool-btn{padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:11px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:5px}.tool-btn:hover{border-color:var(--accent);color:var(--accent)}.tool-btn.active{border-color:var(--accent);background:#4f7fff26;color:var(--accent)}.tool-btn svg{width:13px;height:13px}.prop-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.prop-row label{font-size:11px;color:var(--text2);width:80px;flex-shrink:0}.prop-row input[type=range]{flex:1;accent-color:var(--accent);height:3px}.prop-row .val{font-size:11px;color:var(--text);width:40px;text-align:right;font-variant-numeric:tabular-nums}.prop-row input[type=text],.prop-row input[type=number],.prop-row select{flex:1;background:var(--surface2);border:1px solid var(--border);border-radius:5px;color:var(--text);font-size:11px;padding:4px 8px}.prop-row input[type=number].lay-num{flex:0 0 auto;width:48px;padding:3px 4px;text-align:right;font-variant-numeric:tabular-nums}.prop-row .lay-unit{font-size:10px;color:var(--text2);flex:0 0 auto;margin-left:-2px}.canvas-area{display:flex;flex-direction:column;overflow:hidden;position:relative;background:var(--bg)}.canvas-toolbar{display:none}.viewport-overlay{position:absolute;z-index:5}.viewport-bottom-left{bottom:12px;left:12px}.viewport-bottom-left{max-width:calc(100% - 200px)}.viewport-bottom-left #planFloorTabs{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 6px #00000014;max-width:100%}.viewport-bottom-left #planFloorTabs .m1-btn{margin:0;font-size:11px;flex:0 0 auto!important;width:auto!important;display:inline-flex;align-items:center;justify-content:center}.viewport-bottom-left #planFloorTabs .floor-sep{display:inline-block;width:1px;height:18px;background:var(--border);margin:0 2px}.viewport-bottom-left #planFloorTabs .floor-delete-btn{color:var(--text2)}.viewport-bottom-left #planFloorTabs .floor-delete-btn:hover{border-color:var(--danger);background:var(--danger);color:#fff}.viewport-bottom-left #planFloorTabs .floor-delete-btn.disabled,.viewport-bottom-left #planFloorTabs .floor-delete-btn:disabled{opacity:.35;pointer-events:none}.viewport-hint{position:absolute;top:12px;left:12px;font-size:11px;color:var(--text2);background:var(--surface);padding:4px 10px;border-radius:5px;border:1px solid var(--border);z-index:5;min-height:0;pointer-events:none;max-width:70%}.viewport-hint:empty{display:none}.elev-selector{display:flex;gap:4px}.elev-sel-btn{padding:4px 12px;border-radius:5px;border:1px solid var(--border);background:transparent;color:var(--text2);font-size:11px;cursor:pointer;transition:all .15s}.elev-sel-btn.active{border-color:var(--accent);background:#4f7fff26;color:var(--accent)}.elev-sel-btn.done{border-color:var(--success);color:var(--success)}.sep{width:1px;height:20px;background:var(--border)}.hint-bar{margin-left:auto;font-size:11px;color:var(--text2);background:var(--surface2);padding:4px 10px;border-radius:5px;border:1px solid var(--border)}.canvas-wrap{flex:1;position:relative;overflow:hidden;cursor:crosshair}#traceCanvas{position:absolute;top:0;left:0;image-rendering:pixelated}#bgCanvas{position:absolute;top:0;left:0;pointer-events:none}.side-panel{background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0;overflow:hidden}.side-3d{display:flex;flex-direction:column;flex:0 0 42%;min-height:0;border-bottom:1px solid var(--border)}.side-3d-header{padding:5px 8px 5px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-shrink:0;flex-wrap:nowrap;border-bottom:1px solid var(--border);min-height:36px}.side-3d-title{display:flex;align-items:center;gap:6px;min-width:0;cursor:help}.side-3d-title>i{font-size:14px;color:var(--accent);flex-shrink:0}.side-3d-header h3{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.side-3d-header .hint-text{display:none}.live-dot{display:inline-flex;align-items:center;gap:4px;padding:1px 6px 1px 5px;border-radius:999px;background:#3ecf8e24;color:var(--success);font-size:9px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;flex-shrink:0}.live-dot i{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 0 2px #3ecf8e40}.side-3d-actions{display:flex;gap:2px;align-items:center;flex-shrink:0}.side-3d-actions .tool-btn{width:26px;height:26px;padding:0;justify-content:center;border-color:transparent;background:transparent;color:var(--text2);border-radius:6px}.side-3d-actions .tool-btn i{font-size:15px}.side-3d-actions .tool-btn:hover{background:var(--surface2);border-color:var(--border);color:var(--accent)}.side-3d-actions .tool-btn.active{background:#4f7fff24;border-color:#4f7fff73;color:var(--accent)}.side-3d-sep{width:1px;height:16px;background:var(--border);margin:0 3px;flex-shrink:0}.side-3d{container-type:inline-size;container-name:side3d}@container side3d (max-width: 400px){.side-3d-header h3{display:none}}.side-3d-actions .s3-ovf,.side-3d-header.s3-tight h3{display:none!important}.side-3d-title{flex:0 1 auto}.side-3d-actions .side-3d-more{margin-left:1px}.side-3d-actions .side-3d-more.open{background:var(--surface2);border-color:var(--border);color:var(--accent)}#side3dMoreMenu{-webkit-user-select:none;user-select:none}#preview3d{flex:1;min-height:0;background:var(--bg);position:relative;overflow:hidden}#threeCanvas{width:100%;height:100%;display:block}.side-stats{padding:8px 10px;flex-shrink:0;border-top:1px solid var(--border)}.side-properties{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}.side-properties .panel-scroll{flex:1;overflow-y:auto;overflow-x:hidden}.prop-tabs{display:flex;gap:4px;padding:6px 8px 4px;border-bottom:1px solid var(--border);background:var(--bg-soft, #f5f5f5);flex:0 0 auto}.prop-tab{flex:1;padding:6px 8px;font-size:11px;font-weight:600;color:var(--text2);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;transition:background .15s ease,color .15s ease,border-color .15s ease}.prop-tab:hover{color:var(--text);background:#0000000a}.prop-tab.active{color:var(--accent, #7c5cfc);background:#7c5cfc1f;border-color:#7c5cfc40}.prop-tab i{font-size:14px}.side-properties[data-prop-tab=active] .panel-section{display:none}.side-properties[data-prop-tab=active] .panel-section[data-active-prop="1"]{display:block}.side-properties[data-prop-tab=active] .panel-section[data-active-prop="1"]>h3:after{content:""}.side-properties[data-prop-tab=active] .panel-section[data-active-prop="1"]>h3{cursor:default}.side-3d.collapsed{flex:0 0 auto}.side-3d.collapsed #preview3d,.side-3d.collapsed .side-stats{display:none!important}.side-3d.collapsed .side-3d-header{border-bottom:1px solid var(--border)}.side-3d.collapsed #btn3DFold i{transform:rotate(180deg)}#btn3DFold i{transition:transform .18s ease;display:inline-block}#btnStatsToggle.active{background:#4f7fff26;color:var(--accent)}.panel-right{display:contents}.panel-right-header,.export-section{display:none}.btn-primary{width:100%;padding:10px;border-radius:8px;border:none;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:opacity .2s;display:flex;align-items:center;justify-content:center;gap:8px}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary{width:100%;padding:8px;border-radius:8px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:12px;cursor:pointer;margin-top:8px;transition:border-color .2s}.btn-secondary:hover{border-color:var(--accent)}.progress-bar{height:3px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:10px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:2px;transition:width .4s ease}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.stat-card{background:var(--surface2);border:1px solid var(--border);border-radius:6px;padding:8px 10px}.stat-card .slabel{font-size:9px;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}.stat-card .sval{font-size:16px;font-weight:700;color:var(--text);margin-top:2px}.stat-card .sunit{font-size:10px;color:var(--text2)}.ctx-menu{position:fixed;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:4px;z-index:1000;min-width:140px;box-shadow:0 8px 32px #00000080;display:none}.ctx-item{padding:7px 12px;border-radius:5px;font-size:12px;cursor:pointer;display:flex;align-items:center;gap:8px;color:var(--text)}.ctx-item:hover{background:var(--surface2)}.ctx-item.danger{color:var(--danger)}.save-chip{height:32px;position:relative;display:inline-flex;align-items:center;gap:6px;padding:0 11px;border-radius:999px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font:600 11.5px system-ui;white-space:nowrap;cursor:pointer;transition:border-color .15s,color .15s}.save-chip[hidden]{display:none}.save-chip:hover{border-color:var(--accent);color:var(--accent)}.save-chip i.ti{font-size:15px}.save-chip.unsaved,.save-chip.newer,.save-chip.restored{color:var(--text)}.save-chip .sc-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:#e08b00;box-shadow:0 0 0 3px #e08b0029}.save-chip .sc-badge{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid var(--surface)}.save-chip.restored .sc-badge{background:#d9a300}@media(max-width:1280px){.save-chip{width:32px;padding:0;justify-content:center}.save-chip .sc-tx{display:none}}#savePop{position:fixed;z-index:10001;width:min(320px,calc(100vw - 16px));background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:11px;box-shadow:0 10px 30px #00000038;font:500 12px system-ui;opacity:0;transform:translateY(-4px);animation:sp-in .14s ease-out forwards}@keyframes sp-in{to{opacity:1;transform:translateY(0)}}#savePop .sp-head{display:flex;gap:10px;align-items:flex-start}#savePop .sp-ic{flex:0 0 auto;width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;background:#3560d81a;color:var(--accent)}#savePop.unsaved .sp-ic{background:#e08b001f;color:#b86f00}#savePop.restored .sp-ic{background:#d9a30024;color:#a87c00}#savePop .sp-tx{display:flex;flex-direction:column;gap:2px;min-width:0}#savePop .sp-name{font-size:10px;font-weight:600;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#savePop .sp-tx b{font-size:12.5px;font-weight:650;line-height:1.35}#savePop .sp-tx>span{font-size:11.5px;line-height:1.45;color:var(--text2)}#savePop .sp-btns{display:flex;justify-content:flex-end;gap:6px;margin-top:10px}#savePop .sp-btns .m1-btn{width:auto;margin:0;min-height:30px;padding:6px 11px;font-size:11.5px;white-space:nowrap;flex:0 0 auto}#savePop .sp-btns .sp-primary{background:var(--accent);color:#fff;border-color:var(--accent)}#savePop .sp-btns .sp-primary:hover{filter:brightness(1.08);color:#fff;border-color:var(--accent)}#savePop .sp-foot{display:flex;gap:6px;align-items:flex-start;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:10.5px;line-height:1.4;color:var(--text2)}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(20px);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 18px;font-size:12px;opacity:0;transition:all .3s;z-index:9999;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%) translateY(0)}#loadingOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:none;align-items:center;justify-content:center;z-index:9000;flex-direction:column;gap:16px}#loadingOverlay.show{display:flex}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#loadingText{font-size:13px;color:var(--text2)}.drop-zone{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;pointer-events:none;opacity:0;transition:opacity .3s;z-index:10}.drop-zone.visible{opacity:1;pointer-events:all}.drop-zone-text{font-size:14px;color:var(--text2)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:10px;color:var(--text2);font-size:12px;text-align:center;padding:20px}.empty-state svg{opacity:.3}.panel-scroll{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.check-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:11px;color:var(--text2);cursor:pointer}.check-row input{accent-color:var(--accent)}.ann-tag{position:absolute;background:var(--accent);color:#fff;font-size:9px;padding:2px 6px;border-radius:3px;pointer-events:none;white-space:nowrap;transform:translate(-50%)}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:600}.badge-blue{background:#4f7fff26;color:var(--accent)}.badge-green{background:#3ecf8e26;color:var(--success)}.badge-warn{background:#f59e0b26;color:var(--warn)}.m1-status{font-size:10px;color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-radius:5px;padding:6px 8px;margin-top:8px;line-height:1.5;font-variant-numeric:tabular-nums}.m1-status .ok{color:var(--success)}.m1-status .bad{color:var(--warn)}.m1-status strong{color:var(--text);font-weight:600}.m1-btn{width:100%;padding:8px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text);font-size:11px;cursor:pointer;margin-bottom:6px;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:6px}.m1-btn:hover{border-color:var(--accent);color:var(--accent)}.m1-btn.active{border-color:var(--accent);background:#4f7fff26;color:var(--accent)}.m1-btn:disabled{opacity:.4;cursor:not-allowed}.m1-btn.primary{border-color:var(--accent);background:#4f7fff33;color:var(--accent);font-weight:600}.edge-input-popup{position:absolute;z-index:25;display:none;align-items:center;gap:6px;background:var(--surface);border:1.5px solid var(--accent);border-radius:6px;padding:5px 8px;box-shadow:0 6px 20px #00000073;font-size:12px;color:var(--text);pointer-events:all}.edge-input-popup label{font-size:10px;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}.edge-input-popup input[type=number]{width:60px;padding:3px 6px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:13px;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.edge-input-popup input::-webkit-outer-spin-button,.edge-input-popup input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.edge-input-popup span{font-size:10px;color:var(--text2)}.lock-row{display:flex;align-items:center;margin-bottom:5px;padding:5px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:5px}.lock-row label{cursor:pointer;font-size:11px}.mode-banner{position:absolute;top:10px;left:50%;transform:translate(-50%);background:var(--accent);color:#fff;font-size:12px;font-weight:600;padding:6px 14px;border-radius:6px;z-index:20;box-shadow:0 4px 16px #4f7fff66;display:none;pointer-events:none}.mode-banner.show{display:block}.mode-banner.warn{background:var(--warn)}.mode-banner.ok{background:var(--success)}body.plan-fs .tool-rail{display:none}body.plan-fs .workspace{grid-template-columns:1fr 340px}body.plan-fs.hide-3d .side-panel{display:none}body.plan-fs.hide-3d .workspace{grid-template-columns:1fr}body.three-fs .tool-rail,body.three-fs .canvas-area{display:none}body.three-fs .workspace{grid-template-columns:1fr}body.three-fs .side-panel{width:100%}body.three-fs .side-3d{flex:1 1 100%}body.three-fs .side-properties{display:none}body.three-fs.with-props .workspace{grid-template-columns:1fr 340px}body.three-fs.with-props .side-panel{display:contents}body.three-fs.with-props .side-3d{min-width:0;min-height:0;border-bottom:none;border-right:1px solid var(--border)}body.three-fs.with-props .side-properties{display:flex;min-width:0;min-height:0;background:var(--surface);border-left:1px solid var(--border)}.val-input{width:56px;font-size:11px;padding:2px 5px;border:1px solid var(--border);border-radius:3px;background:var(--surface2);color:var(--text);text-align:right;font-family:inherit}.val-input:focus{outline:none;border-color:var(--accent)}input[type=number].val-input::-webkit-outer-spin-button,input[type=number].val-input::-webkit-inner-spin-button,input[type=number].lay-num::-webkit-outer-spin-button,input[type=number].lay-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number].val-input,input[type=number].lay-num{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.panel-left,.panel-section,#planToolPill,#planFloorTabs,.prop-row,.lock-row{overflow-x:hidden}.m1-btn,.tool-btn,.val-input,.prop-row>*{min-width:0}.prop-row label{overflow:hidden;text-overflow:ellipsis}.ti{font-size:14px;line-height:1;vertical-align:-2px}.tool-btn .ti,.m1-btn .ti{font-size:13px}button .ti+span{margin-left:4px}.icon-primary{color:var(--accent)}.icon-success{color:var(--success)}.icon-danger{color:var(--danger)}.icon-warn{color:var(--warn)}.kbd{display:inline-block;font-size:9px;font-family:ui-monospace,monospace;padding:1px 4px;margin-left:4px;border:1px solid var(--border);border-radius:3px;background:var(--surface2);color:var(--text2);vertical-align:1px}.m1-btn.active .kbd{border-color:#ffffff4d;background:#ffffff26;color:#ffffffe6}#refModeBar{display:none;position:absolute;top:8px;left:8px;z-index:25;gap:4px;background:#121620e0;border:1px solid #39415a;border-radius:8px;padding:4px}.ref-mode-btn{cursor:pointer;font-size:11px;padding:3px 10px;border-radius:5px;border:1px solid #4a5578;background:#22283c;color:#c7cfe0}.ref-mode-btn.active{background:#2b3352;color:#dfe6f5;border-color:#7f8fc0}.ref-mode-clear{padding:3px 6px}body:not(.dev-mode) .dev-only{display:none!important}#devModeBadge{position:fixed;left:13px;bottom:13px;z-index:9998;display:none;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#fff8ec;border:1px solid #f2c879;box-shadow:0 1px 5px #b453092e;cursor:default;-webkit-user-select:none;user-select:none}#canvasDevTools #devModeBadge{position:relative;left:auto;bottom:auto;z-index:auto;align-self:center;margin-left:2px}#canvasDevTools #devModeBadge:after{left:auto;right:26px;top:50%;margin-top:-12px;transform:translate(4px)}#canvasDevTools #devModeBadge:hover:after{transform:translate(0)}#devModeBadge .dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 5px #f59e0bd9;animation:devModePulse 3.4s ease-in-out infinite}@keyframes devModePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.22;transform:scale(.82)}}#devModeBadge:after{content:"Developer Mode Active";position:absolute;left:28px;white-space:nowrap;padding:4px 9px;border-radius:6px;background:#1b2030;color:#fbbf24;font:600 11px/1.4 system-ui,-apple-system,sans-serif;letter-spacing:.2px;box-shadow:0 3px 10px #00000040;opacity:0;transform:translate(-4px);transition:opacity .15s ease,transform .15s ease;pointer-events:none}#devModeBadge:hover:after{opacity:1;transform:translate(0)}#materialPanel,body.quad-material .canvas-area{display:none}body.quad-material #planToolPill>*:not(:first-child){display:none!important}body.quad-material .side-panel{grid-column:2;border-left:none;border-right:1px solid var(--border)}body.quad-material .side-3d{flex:1;display:flex;flex-direction:column;min-height:0}body.quad-material #preview3d{flex:1;height:auto!important;min-height:0}body.quad-material .side-3d.collapsed #preview3d{display:block!important}body.quad-material .side-properties{display:none}body.quad-material .side-stats{display:none!important}body.quad-material #materialPanel{display:flex;grid-column:3;flex-direction:column;background:var(--surface);overflow:hidden}.mat-head{padding:12px 12px 10px;border-bottom:1px solid var(--border)}.mat-head h3{font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:8px;display:flex;align-items:center;gap:6px}#matSearch{width:100%;font:inherit;font-size:12px;padding:7px 10px;border-radius:7px;border:1px solid var(--border);background:var(--surface2);color:var(--text)}#matSearch:focus{outline:none;border-color:var(--accent)}.mat-folder-row{display:flex;gap:6px;margin-top:7px;align-items:stretch}#matFolderBtn{flex:1;min-width:0;font:600 11px system-ui;padding:6px 10px;border-radius:7px;border:1px dashed var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#matFolderBtn:hover{border-color:var(--accent);color:var(--accent)}#matLibInfoBtn{flex:0 0 26px;border-radius:7px;border:1px solid var(--border);background:var(--surface2);color:var(--accent);font:700 11px Georgia,serif;cursor:pointer}#matLibInfoBtn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}#libGearBtn.lib-warn{color:#c57a00}#libGearMenu{position:fixed;z-index:10001;width:300px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px;box-shadow:0 10px 30px #00000038;font:600 12px system-ui}.lib-menu-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--text2);padding:4px 8px 8px}.lib-info-btn{width:18px;height:18px;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--accent);font:700 11px Georgia,serif;cursor:pointer;line-height:1}.lib-info-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.lib-menu-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;color:var(--text)}.lib-menu-item:hover{background:var(--surface2)}.lib-menu-item i{font-size:17px;color:var(--accent);flex:0 0 auto}.lib-menu-item span{display:flex;flex-direction:column;min-width:0}.lib-menu-item small{font-weight:500;font-size:10px;color:var(--text2)}.lib-menu-item b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lib-menu-item.warn i{color:#c57a00}.lib-menu-item.disabled{opacity:.55;cursor:default}.lib-menu-cats{padding:2px 4px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}.lib-menu-cats>small{color:var(--text2);padding:0 6px}.lib-cat{display:flex;align-items:center;gap:10px;padding:6px;color:var(--text)}.lib-cat i{font-size:15px;color:var(--text2);flex:0 0 auto}.lib-cat.ok i{color:var(--accent)}.lib-cat span{display:flex;flex-direction:column;min-width:0;flex:1}.lib-cat small{font-weight:500;font-size:10px;color:var(--text2)}.lib-cat b{font-size:11.5px}.lib-cat .dot{font-size:10px;color:var(--border);flex:0 0 auto}.lib-cat.ok .dot{color:#1e9d6b}#libInfoModal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10002;background:#00000073;display:flex;align-items:center;justify-content:center}.lib-modal-card{width:min(520px,92vw);max-height:84vh;overflow:auto;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 44px #00000059}.lib-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px}.lib-modal-head i{color:var(--accent)}.lib-modal-close{border:none;background:transparent;color:var(--text2);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:6px}.lib-modal-close:hover{background:var(--surface2);color:var(--text)}.lib-modal-body{padding:12px 16px 16px;font-size:12px;line-height:1.65}.lib-modal-body p{margin:0 0 10px}.lib-modal-body pre{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font:11px/1.6 Consolas,monospace;margin:0 0 10px;overflow-x:auto;color:var(--text)}.lib-modal-body code{background:var(--surface2);border:1px solid var(--border);border-radius:4px;padding:0 4px;font:11px Consolas,monospace}.lib-modal-note{color:var(--text2);font-size:11px;border-top:1px dashed var(--border);padding-top:8px}body.auth-gate{visibility:hidden!important}#pickChip{position:absolute;z-index:40;display:none;pointer-events:none;padding:3px 8px;border-radius:7px;white-space:nowrap;font:600 11px system-ui;color:#fff;background:#1d2230eb;box-shadow:0 4px 14px #00000047}#pickChip.dim{background:#1d22309e;font-weight:500}#openVeil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;visibility:visible!important;display:flex;align-items:center;justify-content:center;background:radial-gradient(120% 90% at 50% 0%,#f7f9ff,#eef1f8 60%,#e6eaf3);transition:opacity .45s ease}#openVeil[hidden]{display:none}#openVeil.off{opacity:0;pointer-events:none}#openVeil .ov-card{width:300px;display:flex;flex-direction:column;align-items:center;gap:14px;animation:ovPop .5s cubic-bezier(.2,.8,.25,1) both}@keyframes ovPop{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1}}#openVeil .ov-house{width:132px;height:106px;stroke:#3560d8;stroke-width:3;filter:drop-shadow(0 8px 18px rgba(53,96,216,.18))}#openVeil .ov-house path{stroke-dasharray:260;stroke-dashoffset:260;animation:ovDraw 2.6s ease-in-out infinite}#openVeil .ov-house .ov-l2{animation-delay:.35s;stroke:#6a45d9}#openVeil .ov-house .ov-l3{animation-delay:.7s}#openVeil .ov-house .ov-l4{animation-delay:.9s;stroke:#6a45d9}@keyframes ovDraw{0%{stroke-dashoffset:260;opacity:0}12%{opacity:1}55%{stroke-dashoffset:0;opacity:1}82%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}#openVeil .ov-brand{display:flex;align-items:baseline;gap:8px}#openVeil .ov-brand b{font:800 20px system-ui;background:linear-gradient(120deg,#3560d8,#6a45d9);-webkit-background-clip:text;background-clip:text;color:transparent}#openVeil .ov-brand small{font:600 10px system-ui;letter-spacing:2.5px;text-transform:uppercase;color:#5a6480}#openVeil .ov-bar{width:100%;height:5px;border-radius:999px;background:#dfe4ef;overflow:hidden}#openVeil .ov-bar>i{display:block;height:100%;width:8%;border-radius:999px;background:linear-gradient(90deg,#3560d8,#6a45d9,#3560d8);background-size:200% 100%;animation:ovShimmer 1.4s linear infinite;transition:width .5s cubic-bezier(.2,.8,.25,1)}@keyframes ovShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}#openVeil .ov-steps{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:5px}#openVeil .ov-step{display:flex;align-items:center;gap:9px;font:500 12.5px system-ui;color:#9aa3b8;padding:5px 10px;border-radius:8px;transition:color .25s,background .25s}#openVeil .ov-step i{width:18px;height:18px;border-radius:50%;border:1.5px solid #cfd6e2;display:inline-flex;align-items:center;justify-content:center;font-size:11px;color:transparent;flex:0 0 auto;transition:all .25s}#openVeil .ov-step.on{color:#1d2230;font-weight:600;background:#3560d812}#openVeil .ov-step.on i{border-color:#3560d8;border-top-color:transparent;animation:ovSpin .9s linear infinite}#openVeil .ov-step.done{color:#5a6480}#openVeil .ov-step.done i{background:#1e8e4e;border-color:#1e8e4e;color:#fff;animation:none}@keyframes ovSpin{to{transform:rotate(360deg)}}#openVeil .ov-msg{display:none;font:600 12.5px system-ui;color:#c0392b;text-align:center;line-height:1.5}#openVeil .ov-back{display:none;font:600 12.5px system-ui;padding:8px 14px;border-radius:8px;cursor:pointer;border:1px solid #cfd6e2;background:#fff;color:#1d2230}#openVeil.failed .ov-house path{animation:none;stroke-dashoffset:0;opacity:.35}#openVeil.failed .ov-bar,#openVeil.failed .ov-steps{display:none}#openVeil.failed .ov-msg,#openVeil.failed .ov-back{display:inline-flex;align-items:center;gap:6px}.auth-avatar{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font:700 11px system-ui}#authMenu{position:fixed;z-index:10001;min-width:210px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px;box-shadow:0 10px 30px #00000038;font:600 12px system-ui}.auth-menu-head{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}.auth-menu-head b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-menu-head small{font-weight:500;font-size:10px;color:var(--text2)}.auth-menu-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;color:var(--text)}.auth-menu-item:hover{background:var(--surface2)}.auth-menu-item i{color:var(--accent)}.auth-menu-item.hot{color:var(--accent);font-weight:700}.auth-menu-item .pill{margin-left:auto;font:700 9px system-ui;letter-spacing:.3px;padding:2px 7px;border-radius:999px;background:#3560d81f;color:var(--accent)}.auth-proj{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:4px;border-radius:8px;background:var(--surface2);border:1px solid var(--border)}.auth-proj>i:first-child{color:var(--accent);font-size:15px;flex:0 0 auto}.auth-proj span{display:flex;flex-direction:column;min-width:0;flex:1}.auth-proj b{font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-proj small{font-weight:500;font-size:9.5px;color:var(--text2)}.auth-proj .dirty{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:#e08b00;box-shadow:0 0 0 3px #e08b0029}#authModal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10002;background:#00000073;display:flex;align-items:center;justify-content:center}.auth-card{width:min(340px,92vw);background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 44px #00000059}.auth-card-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-size:13px}.auth-card-head i{color:var(--accent)}.auth-close{border:none;background:transparent;color:var(--text2);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:6px}.auth-close:hover{background:var(--surface2);color:var(--text)}.auth-card-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px}.auth-card-body label{display:flex;flex-direction:column;gap:4px;font:600 11px system-ui;color:var(--text2)}.auth-card-body input{font:13px system-ui;padding:8px 10px;border-radius:7px;border:1px solid var(--border);background:var(--surface2);color:var(--text)}.auth-card-body input:focus{outline:none;border-color:var(--accent)}.auth-err{color:#c0392b;font:600 11px system-ui;min-height:14px}.auth-submit{font:700 13px system-ui;padding:9px;border-radius:8px;cursor:pointer;border:1px solid var(--accent);background:var(--accent);color:#fff}.auth-submit:disabled{opacity:.6;cursor:default}.auth-note{font:500 10px system-ui;color:var(--text2);text-align:center}.cloud-label{display:flex;flex-direction:column;gap:5px;font:600 11px system-ui;color:var(--text2);margin-bottom:10px}.cloud-label input{font:13px system-ui;padding:8px 10px;border-radius:7px;border:1px solid var(--border);background:var(--surface2);color:var(--text)}.cloud-label input:focus{outline:none;border-color:var(--accent)}.cloud-hint{font:500 10.5px system-ui;color:var(--text2);margin:6px 0 10px;line-height:1.5}.cloud-actions{display:flex;flex-direction:column;gap:8px}.cloud-alt{font:600 11px system-ui;padding:7px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text2)}.cloud-alt:hover{border-color:var(--accent);color:var(--accent)}.cloud-row{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:9px;margin-bottom:7px}.cloud-row-main{flex:1;display:flex;flex-direction:column;min-width:0}.cloud-row-main b{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-row-main small{font-size:10px;color:var(--text2)}.cloud-btn{flex:0 0 auto;padding:6px 9px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font-size:13px}.cloud-btn.open:hover{border-color:var(--accent);color:var(--accent)}.cloud-btn.del:hover,.cloud-btn.del.confirm{border-color:#c0392b;color:#c0392b;font:700 10px system-ui}.adm-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;max-height:40vh;overflow-y:auto}.adm-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:9px}.adm-main{flex:1;display:flex;flex-direction:column;min-width:0}.adm-main b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-main small{font-size:9.5px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.adm-role{font:600 11px system-ui;padding:4px 6px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text)}.adm-active{flex:0 0 64px;font:700 10px system-ui;padding:5px 0;border-radius:999px;cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text2)}.adm-active.on{background:#1e9d6b1f;border-color:#1e9d6b;color:#1e9d6b}.adm-active:disabled{opacity:.5;cursor:default}.adm-newhead{font:700 11px system-ui;letter-spacing:.4px;text-transform:uppercase;color:var(--text2);border-top:1px solid var(--border);padding-top:10px;margin-bottom:8px}.adm-new{display:flex;flex-direction:column;gap:7px}.adm-new input,.adm-new select{font:12px system-ui;padding:7px 10px;border-radius:7px;border:1px solid var(--border);background:var(--surface2);color:var(--text)}.adm-new input:focus{outline:none;border-color:var(--accent)}#matGrid{flex:1;overflow-y:auto;padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start}.mat-tile{position:relative;border:1px solid var(--border);border-radius:8px;background:var(--surface);padding:5px;cursor:grab;-webkit-user-select:none;user-select:none}.mat-tile:hover{border-color:var(--accent)}.mat-tile.selected{border-color:var(--accent);box-shadow:0 0 0 2px #3560d840}.mat-tile img{width:100%;aspect-ratio:1/1;border-radius:5px;display:block;border:1px solid var(--border);pointer-events:none}.mat-tile .code{font-size:10px;font-weight:700;color:var(--text);margin-top:4px;display:block}.mat-tile .typ{font-size:9px;color:var(--text2);display:block}.mat-tile .score{position:absolute;top:8px;left:8px;font-size:9px;font-weight:700;padding:1px 5px;border-radius:999px;background:#1e9d6beb;color:#fff}.mat-tile .score.mid{background:#c57a00eb}.mat-tile .score.low{background:#8a93a8eb}.mat-tile .info{position:absolute;top:8px;right:8px;width:17px;height:17px;border-radius:50%;border:none;background:#ffffffeb;color:var(--accent);font-size:11px;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 1px 3px #00000040}.mat-tile .info:hover{background:var(--accent);color:#fff}#matPopover{position:fixed;z-index:10002;width:230px;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:10px 12px;box-shadow:0 10px 30px #00000038;font-size:11px;line-height:1.6}#matPopover h4{font-size:12px;margin-bottom:4px}#matPopover .kv{display:flex;justify-content:space-between;gap:8px}#matPopover .kv span:first-child{color:var(--text2)}.mat-settings{border-top:1px solid var(--border);padding:10px 12px}.mat-settings h4{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--text2);margin-bottom:7px}.mat-srow{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:11px;color:var(--text2)}.mat-srow label{flex:0 0 44px}.mat-srow input[type=number]{width:64px;font:inherit;font-size:11px;padding:3px 6px;border:1px solid var(--border);border-radius:5px;background:var(--surface2);color:var(--text)}.mat-srow input[type=range]{flex:1;accent-color:var(--accent)}.mat-srow .val{flex:0 0 34px;text-align:right;color:var(--text)}.mat-srow .rst{width:24px;height:24px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);color:var(--text2);cursor:pointer;font-size:12px;line-height:1}.mat-srow .rst:hover{color:var(--accent);border-color:var(--accent)}.mat-srow .rsti{flex:0 0 16px;width:16px;text-align:center;font-size:14px;line-height:1;color:var(--text2);cursor:pointer;opacity:.65}.mat-srow .rsti:hover{color:var(--accent);opacity:1}.mat-srow label.pbrl{flex:0 0 62px;display:flex;align-items:center;gap:4px}.pbri{width:14px;height:14px;flex:0 0 14px;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--surface2);color:var(--text2);font:700 9px/12px Georgia,serif;cursor:help;text-align:center}.pbri:hover{color:#fff;background:var(--accent);border-color:var(--accent)}h4 .pbri{margin-left:5px;vertical-align:middle}.pbrp{position:relative;flex:1;display:flex;align-items:center;min-width:0}.pbrp input{width:100%;font:inherit;font-size:11px;padding:4px 22px 4px 8px;border:1px solid var(--border);border-radius:6px;background:var(--surface2);color:var(--text)}.pbrp input::placeholder{color:var(--text2);opacity:.7}.pbrp input:focus{outline:none;border-color:var(--accent)}.pbrp>i{position:absolute;right:6px;pointer-events:none;color:var(--text2);font-size:12px}.pbrp-list{position:fixed;z-index:10003;overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000002e;padding:4px;font-size:11px}.pbrp-cat{font:700 9px/1 system-ui;letter-spacing:.5px;text-transform:uppercase;color:var(--text2);padding:7px 6px 3px}.pbrp-item{padding:5px 8px;border-radius:5px;cursor:pointer;color:var(--text)}.pbrp-item:hover,.pbrp-item.act{background:var(--accent);color:#fff}.pbrp-none{padding:6px 8px;color:var(--text2)}#matViewTools{display:none}body.quad-material #matViewTools{display:flex;flex-direction:column;align-items:flex-end;gap:5px;position:absolute;top:8px;right:8px;z-index:25}#matViewTools .mvt-row{display:flex;gap:4px}#matViewTools button{font:600 10px system-ui;padding:4px 8px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:#ffffffeb;color:var(--text2);box-shadow:0 1px 4px #0000001a}#matViewTools button:hover{border-color:var(--accent);color:var(--accent)}#matViewTools button.on{background:var(--accent);border-color:var(--accent);color:#fff}#matSelCount{font:600 10px system-ui;color:var(--text2);background:#ffffffe6;border:1px solid var(--border);border-radius:6px;padding:3px 8px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.mb-open #materialPanel{display:none!important}body.quad-material.mb-open .side-panel{grid-column:2 / -1}body.mb-open #matViewTools{right:336px}#matBoard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:24;pointer-events:none}#mbWires{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}#mbWires path{fill:none;stroke:#5a6e8c6b;stroke-width:1.3;stroke-dasharray:5 5}#mbWires circle{fill:#5a6e8c8c}#mbWires path.on{stroke:var(--accent);stroke-width:2.2;stroke-dasharray:none}#mbWires circle.on{fill:var(--accent);r:4}#matBoard .mb-panel{pointer-events:auto;position:absolute;top:0;right:0;bottom:0;width:324px;z-index:10;display:flex;flex-direction:column;background:linear-gradient(170deg,#e9f0f8f0,#d8e3f0f0);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border-left:1px solid rgba(90,110,140,.25);box-shadow:-6px 0 18px #1e2d461a}#matBoard .mb-panel-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 2px}#matBoard .mb-panel-head b{font:700 13px system-ui;color:var(--text)}#matBoard .mb-close{font:600 11px system-ui;padding:3px 8px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:#ffffffeb;color:var(--text2)}#matBoard .mb-close:hover{border-color:var(--accent);color:var(--accent)}#matBoard .mb-panel-hint{font:500 10px system-ui;color:var(--text2);padding:0 12px 6px}#matBoard .mb-panel-body{flex:1;overflow-y:auto;padding:0 12px 20px}#matBoard .mb-gtitle{font:800 11px system-ui;letter-spacing:.14em;text-transform:uppercase;color:var(--text2);margin:14px 0 2px;padding-bottom:3px;border-bottom:1px solid rgba(90,110,140,.25)}#matBoard .mb-rlabel{font:600 10px system-ui;color:var(--text2);margin:8px 0 0}#matBoard .mb-tiles{display:flex;flex-wrap:wrap;gap:0 6px}#matBoard .mb-tile{width:94px;cursor:pointer;text-align:center;border-radius:8px;padding:2px 0 4px}#matBoard .mb-tile.sel{background:#ffffffa6;box-shadow:inset 0 0 0 1.5px var(--accent)}#matBoard .mb-tile.flash{background:#2563eb24;box-shadow:inset 0 0 0 2px var(--accent);transition:background .15s}#matBoard .mb-tile.hl{background:#2563eb1a;box-shadow:inset 0 0 0 2px #1d4ed8}#matBoard .mb-tile{position:relative;z-index:0;isolation:isolate}#matBoard .mb-check{position:absolute;top:3px;right:3px;z-index:2;width:17px;height:17px;border-radius:5px;cursor:pointer;border:1.5px solid rgba(90,110,140,.5);background:#ffffffeb;font:700 11px/1 system-ui;color:#fff;padding:0}#matBoard .mb-check:hover{border-color:var(--accent)}#matBoard .mb-check.on{background:#16a34a;border-color:#16a34a}#matBoard .mb-tile.done canvas{opacity:.88}#matBoard .mb-tile.float.mini .mb-check{width:14px;height:14px;font-size:9px}#mbCtx{position:fixed;z-index:9999;min-width:180px;background:var(--surface, #fff);color:var(--text, #222);border:1px solid var(--border, #ccc);border-radius:8px;padding:4px;box-shadow:0 8px 24px #00000040}#mbCtx .mbctx-item{font:600 11px system-ui;padding:6px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}#mbCtx .mbctx-item:hover{background:var(--accent);color:#fff}#mbCtx .mbctx-item.on{color:var(--accent)}#mbCtx .mbctx-item.on:before{content:"✓ "}#mbCtx .mbctx-sep{height:1px;margin:4px 6px;background:var(--border, #ddd)}#matBoard .mb-floatlayer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#matBoard .mb-tile.float{pointer-events:auto;position:absolute;width:100px;background:#ffffffeb;border:1px solid rgba(90,110,140,.3);border-radius:10px;box-shadow:0 4px 14px #1e2d462e;padding:4px 2px 5px;cursor:grab}#matBoard .mb-tile.float:active{cursor:grabbing}#matBoard .mb-tile.float canvas{width:88px;height:88px;margin:0 auto}#matBoard .mb-tile.float.mini{width:64px;padding:3px 2px;border-radius:8px}#matBoard .mb-tile.float.mini canvas{width:56px;height:56px}#matBoard .mb-tile.float.mini .mb-name,#matBoard .mb-tile.float.mini .mb-sizeTxt{display:none}body.mb-open.mb-float #matViewTools{right:8px}#matBoard .mb-tile canvas{width:94px;height:94px;display:block;filter:drop-shadow(4px 7px 6px rgba(30,45,70,.28))}#matBoard .mb-tile:hover .mb-name{color:var(--accent)}#matBoard .mb-name{font:600 10px system-ui;color:var(--text);margin-top:-4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#matBoard .mb-sizeTxt{font:500 9px system-ui;color:var(--text2)}#matBoard .mb-empty{margin:40px auto;font:600 12px system-ui;color:var(--text2);text-align:center}#matBoard .mb-focus{pointer-events:auto;position:absolute;left:14px;top:50%;transform:translateY(-50%);z-index:20;width:404px;max-height:calc(100% - 24px);overflow:hidden;background:linear-gradient(170deg,#e9f0f8f5,#d8e3f0f5);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:1px solid rgba(90,110,140,.25);border-radius:12px;box-shadow:0 10px 32px #1e2d4640;padding:10px 12px 12px}#matBoard .mbf-head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px}#matBoard .mbf-head b{font:700 13px system-ui;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#matBoard .mbf-head span{font:500 10px system-ui;color:var(--text2)}#matBoard .mbf-close,#matBoard .mbf-big,#matBoard .mbf-full{font:600 11px system-ui;padding:2px 7px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:#ffffffeb;color:var(--text2);flex:none}#matBoard .mbf-close:hover,#matBoard .mbf-big:hover,#matBoard .mbf-full:hover{border-color:var(--accent);color:var(--accent)}#mbfCanvas{width:clamp(220px,calc(100vh - 360px),380px);height:auto;aspect-ratio:1 / 1;display:block;margin:0 auto;cursor:grab;filter:drop-shadow(8px 14px 12px rgba(30,45,70,.3));touch-action:none}#matBoard .mb-focus.big{width:660px}#matBoard .mb-focus.big #mbfCanvas{width:clamp(220px,calc(100vh - 360px),620px)}#matBoard .mb-focus.full{left:12px;right:12px;top:12px;bottom:12px;transform:none;width:auto;max-height:none}#matBoard .mb-focus.full #mbfCanvas{width:min(96%,calc(100vh - 320px))}#mbfCanvas:active{cursor:grabbing}#matBoard .mbf-hint{font:500 10px system-ui;color:var(--text2);text-align:center;margin:2px 0 8px}#matBoard .mbf-colhead{display:flex;align-items:center;gap:6px;font:600 10px system-ui;color:var(--text2);margin:2px 0 4px}#matBoard .mbf-colinfo{cursor:help;color:var(--text2);font-size:11px}#matBoard .mbf-cols{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-bottom:8px}#matBoard .mbc{width:22px;height:22px;border-radius:6px;cursor:pointer;border:1px solid rgba(90,110,140,.35);padding:0}#matBoard .mbc:hover{transform:scale(1.12)}#matBoard .mbc.on{outline:2px solid var(--accent);outline-offset:1px}#matBoard #mbcCustom{width:28px;height:24px;padding:0 1px;border:1px solid var(--border);border-radius:6px;background:#fff;cursor:pointer}#matBoard #mbcReset{font:600 11px system-ui;padding:3px 7px;border-radius:6px;cursor:pointer;border:1px solid var(--border);background:#ffffffeb;color:var(--text2)}#matBoard #mbcReset:hover{border-color:var(--accent);color:var(--accent)}#mbfParams{display:block;width:100%;font:600 11px system-ui;padding:6px 10px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:#ffffffeb;color:var(--text2)}#mbfParams:hover{border-color:var(--accent);color:var(--accent)}#mbfParams.on{background:var(--accent);border-color:var(--accent);color:#fff}#mbfPanel{margin-top:8px;display:flex;flex-direction:column;gap:6px}#matBoard .mbf-row{display:flex;align-items:center;gap:8px}#matBoard .mbf-row label{font:600 10px system-ui;color:var(--text2);width:64px;flex:none}#matBoard .mbf-row input[type=range]{flex:1}#matBoard .mbf-row span{font:600 10px system-ui;color:var(--text);width:34px;text-align:right}#matBoard .mbf-note{font:500 10px system-ui;color:var(--text2);text-align:center;padding:4px 0}.mat-cats{display:flex;flex-wrap:wrap;gap:4px;padding:8px 10px 0}.mat-cats button{font:600 10px system-ui;padding:3px 9px;border-radius:999px;cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text2)}.mat-cats button.on{background:var(--accent);border-color:var(--accent);color:#fff}.mat-recent{display:flex;align-items:center;gap:5px;padding:8px 10px 0}.mat-recent .lbl{font-size:9px;color:var(--text2);flex:0 0 auto}.mat-recent img{width:26px;height:26px;border-radius:5px;border:1px solid var(--border);cursor:pointer;display:block}.mat-recent img:hover,.mat-recent img.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.mat-scope{font-size:9.5px;color:var(--text2);margin:-2px 0 6px;line-height:1.4}.mat-scope b{color:var(--accent)}#matBoard .mb-fhint{position:absolute;left:50%;bottom:14px;transform:translate(-50%);pointer-events:none;z-index:5;font:600 11px system-ui;color:var(--text2);background:#ffffffeb;border:1px solid rgba(90,110,140,.3);border-radius:999px;padding:5px 14px;white-space:nowrap;box-shadow:0 3px 12px #1e2d4624;opacity:1;animation:mbFhint 7s ease forwards}@keyframes mbFhint{0%,80%{opacity:1}to{opacity:0}}body:not(.role-admin) #planToolAI{display:none!important}body:not(.role-admin) .admin-only{display:none!important}:root{--pp-label: 80px;--pp-gap: 6px;--pp-row: 6px;--pp-block: 10px;--pp-ctl-h: 26px}.prop-head{display:flex;align-items:center;gap:6px;min-height:36px;padding:5px 14px;border-bottom:1px solid var(--border);background:var(--surface);flex:0 0 auto}.prop-head>i{font-size:14px;color:var(--accent);flex-shrink:0}.prop-head h3{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--text);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-section{padding:12px 14px 14px}.panel-section h3{margin-bottom:10px}.sec-help{float:right;min-width:18px;height:18px;padding:0 5px;margin-left:6px;font:600 10px system-ui;line-height:16px;border:1px solid var(--border);border-radius:9px;background:var(--surface2);color:var(--text2);cursor:pointer}.sec-help:hover{color:var(--accent);border-color:var(--accent)}.sec-intro{font-size:10px;color:var(--text2);line-height:1.5;margin:0 0 var(--pp-block)}.prop-row{display:flex;align-items:center;gap:var(--pp-gap);margin:0 0 var(--pp-row);min-height:var(--pp-ctl-h)}.prop-row.wrap{flex-wrap:wrap}.prop-row.tight{margin-bottom:3px}.prop-row>label,.prop-row>.prop-lbl{flex:0 0 var(--pp-label);width:auto;min-width:0;font-size:11px;line-height:1.25;color:var(--text2);white-space:normal;overflow:hidden}.prop-row>label .kbd,.prop-row>.prop-lbl .kbd{margin-left:3px}.prop-row>label small,.prop-row>.prop-lbl small{color:var(--text2);font-weight:400}.prop-row input[type=range]{flex:1 1 60px;min-width:40px;height:3px;margin:0}.prop-row input[type=number],.prop-row .val-input{flex:0 0 60px;width:60px;min-width:0;height:var(--pp-ctl-h);padding:0 6px;font-size:11px;text-align:right;border:1px solid var(--border);border-radius:5px;background:var(--surface2);color:var(--text);font-variant-numeric:tabular-nums}.prop-row select,.prop-row select.val-input{flex:1 1 auto;width:auto;text-align:left;padding:0 6px;height:var(--pp-ctl-h)}.prop-row input[type=text],.prop-row input[type=text].val-input{flex:1 1 auto;width:auto;height:var(--pp-ctl-h);padding:0 8px;font-size:11px;text-align:left}.prop-row .lay-unit,.prop-row .prop-unit{flex:0 0 auto;font-size:10px;color:var(--text2);margin:0;min-width:18px}.prop-row .prop-val{flex:1 1 auto;font-size:11px;color:var(--text)}.prop-row .prop-val b{font-weight:600}.prop-row .prop-dim{font-size:10px;color:var(--text2)}.prop-row .prop-fill{flex:1 1 auto}.prop-row>.m1-btn{flex:1 1 0;width:auto;margin:0;min-height:var(--pp-ctl-h);padding:3px 6px;font-size:11px}.prop-row>.m1-btn.fit{flex:0 0 auto;padding:3px 9px}.prop-row>.m1-btn.icon{flex:0 0 var(--pp-ctl-h);width:var(--pp-ctl-h);padding:0}.prop-row.pick{cursor:pointer;border-radius:4px;margin-left:-4px;margin-right:-4px;padding:0 4px;border:1px solid transparent}.prop-row.pick:hover{background:#3560d80d}.prop-row.pick.sel{background:#3560d81a;border-color:#3560d859}.prop-btns{display:flex;gap:var(--pp-gap);margin:0 0 var(--pp-row)}.prop-btns>.m1-btn{flex:1 1 0;width:auto;margin:0;min-height:var(--pp-ctl-h);padding:4px 6px}.prop-btns.wrap{flex-wrap:wrap}.prop-btns.wrap>.m1-btn{flex:1 1 60px}.prop-hint{font-size:10px;color:var(--text2);line-height:1.5;margin:0 0 8px}.prop-hint.indent{margin-left:calc(var(--pp-label) + var(--pp-gap))}.prop-hint.tight{margin:-2px 0 6px}.prop-list{margin:0 0 8px;padding-left:16px;font-size:10px;color:var(--text2);line-height:1.55}.prop-list li{margin:1px 0}.prop-subhead{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:var(--text2);margin:2px 0 6px}.prop-subhead>span:last-child:not(:first-child){font-weight:400;letter-spacing:0;text-transform:none}.prop-sub{margin-top:var(--pp-block);padding-top:var(--pp-block);border-top:1px solid var(--border)}.prop-sec{margin:0}.prop-sec>:last-child{margin-bottom:0}.prop-sec+.prop-sec{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.prop-sec-hd{display:flex;align-items:center;gap:6px;width:calc(100% + 8px);margin:0 -4px 7px;padding:3px 4px;font-family:inherit;font-size:10px;font-weight:700;line-height:1.4;letter-spacing:.6px;text-transform:uppercase;color:var(--text2);background:none;border:0;border-radius:4px;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}.prop-sec-hd:hover{color:var(--text);background:#3560d80f}.prop-sec-hd:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.prop-sec-hd>i{font-size:12px;opacity:.42;flex:0 0 auto}.prop-sec-hd:hover>i{opacity:.7}.prop-sec-hd .prop-sec-title{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-sec-hd .prop-fill{flex:1 1 auto}.prop-sec-hd>.prop-dim,.prop-sec-hd>.prop-pill{flex:0 0 auto;max-width:48%;font-size:10px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-sec-caret{flex:0 0 auto;margin-left:1px;font-size:11px;opacity:.32;transition:transform .15s ease,opacity .12s ease}.prop-sec-hd:hover .prop-sec-caret{opacity:.75}.prop-sec.closed>.prop-sec-hd{margin-bottom:0}.prop-sec.closed .prop-sec-caret{transform:rotate(-90deg)}.prop-sec.closed>.prop-sec-body{display:none}.prop-sec-body>:last-child{margin-bottom:0}.prop-sec.auto:not(:has(.prop-sec-body *)){display:none}.wz-chips{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.wz-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--text2);font:600 10.5px system-ui;cursor:pointer;line-height:1.2}.wz-chip:hover{border-color:#4f7fff;color:#2f5fe0}.wz-chip.on{border-color:#4f7fff;background:#4f7fff1f;color:#2f5fe0}.wz-chip.danger:hover{border-color:#e05252;color:#e05252}.wz-chip>i{font-size:12px}.wz-stack{border:1px solid var(--border);border-radius:6px;overflow:hidden;margin:0 0 8px;background:var(--surface)}.wz-datum{display:flex;align-items:center;justify-content:space-between;padding:3px 8px;font:600 9.5px system-ui;letter-spacing:.4px;color:var(--text2);background:var(--surface2);text-transform:uppercase}.wz-band{display:flex;align-items:center;gap:8px;padding:6px 8px;cursor:pointer}.wz-band:hover{background:var(--hover, #eef1f8)}.wz-band.on{background:#4f7fff1a}.wz-thumb{width:30px;height:30px;border-radius:4px;flex:0 0 auto;border:1px solid var(--border);background-size:cover;background-position:center;background-color:#e9ecf2;display:flex;align-items:center;justify-content:center;color:var(--text2);font-size:13px}.wz-band-tx{flex:1 1 auto;min-width:0}.wz-band-tx b{display:block;font:600 11px system-ui;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wz-band-tx small{display:block;font-size:9.5px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wz-split{display:flex;align-items:center;gap:6px;padding:2px 8px;border-top:1px dashed #4f7fff;border-bottom:1px dashed #4f7fff;background:#4f7fff0d;font:600 10px system-ui;color:#2f5fe0}.wz-split .val-input{width:64px;text-align:right}.wz-split .wz-x{margin-left:auto;border:0;background:none;color:var(--text2);cursor:pointer;font-size:13px;padding:0 2px}.wz-split .wz-x:hover{color:#e05252}.wz-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:5px;max-height:240px;overflow:auto;padding:2px}.wz-tile{border:1px solid var(--border);border-radius:5px;background:var(--surface);cursor:pointer;padding:3px;text-align:left}.wz-tile:hover{border-color:#4f7fff}.wz-tile.on{border-color:#4f7fff;box-shadow:0 0 0 2px #4f7fff40}.wz-tile .wz-thumb{width:100%;height:44px;margin-bottom:3px}.wz-tile small{display:block;font-size:9px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wz-sel-head{display:flex;align-items:flex-start;gap:6px;margin:2px 0 8px}.wz-sel-tx{flex:1 1 auto;min-width:0}.wz-sel-tx b{display:block;font:650 12px system-ui;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wz-sel-tx small{display:block;font-size:10px;color:var(--text2)}.wz-sel-head .wz-x{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center}.wz-sel-head .wz-x:hover{border-color:#e05252;color:#e05252}.wz-sub{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:0 0 4px;font:600 9.5px system-ui;letter-spacing:.4px;text-transform:uppercase;color:var(--text2)}.wz-mode{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text2);font:600 10.5px system-ui;text-transform:none;letter-spacing:0;cursor:pointer}.wz-mode:hover{border-color:#4f7fff;color:#2f5fe0}.wz-mode.on{border-color:#4f7fff;background:#4f7fff24;color:#2f5fe0}.wz-strip{display:flex;gap:2px;height:36px;margin:0 0 4px}.wz-piece{position:relative;min-width:0;padding:0;overflow:hidden;cursor:pointer;border:1px solid var(--border);border-radius:4px;background:var(--surface2);display:flex;flex-direction:column;justify-content:flex-end}.wz-piece-bar{position:absolute;left:0;right:0;top:0;bottom:14px;background:var(--pc, transparent);opacity:.85}.wz-piece small{position:relative;font:600 9px system-ui;line-height:14px;color:var(--text2);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wz-piece:hover{border-color:#4f7fff}.wz-piece.on{border-color:#2f5fe0;box-shadow:0 0 0 2px #4f7fff4d}.wz-strip-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 8px}.wz-strip-foot .prop-hint{margin:0}.wz-sel-head .wz-x:disabled{opacity:.35;cursor:default;border-color:var(--border);color:var(--text2)}#wzStrip{position:absolute;left:12px;right:12px;bottom:56px;z-index:24;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 20px #11182f24;overflow:hidden}#wzStrip[hidden]{display:none}#wzStrip .wzs-head{display:flex;align-items:center;gap:6px;height:26px;padding:0 6px 0 10px;border-bottom:1px solid var(--border);font:600 11px system-ui;color:var(--text);-webkit-user-select:none;user-select:none}#wzStrip .wzs-head>i{color:#4f7fff;font-size:13px;flex:0 0 auto}#wzStrip .wzs-title{flex:0 1 auto;max-width:42%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wzStrip .wzs-hint{flex:1 1 auto;min-width:0;font-size:10px;font-weight:500;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#wzStrip .wzs-fold{flex:0 0 auto;width:24px;height:20px;border:1px solid var(--border);border-radius:6px;background:var(--surface2);color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center}#wzStrip .wzs-fold:hover{border-color:#4f7fff;color:#2f5fe0}#wzStrip .wzs-cv{display:block;width:100%;height:190px}#wzStrip.folded{right:auto;max-width:calc(100% - 24px)}#wzStrip.folded .wzs-cv,#wzStrip.folded .wzs-hint{display:none}#wzStrip.folded .wzs-head{border-bottom:0}#wzStrip.folded .wzs-title{max-width:360px}#wzDragLabel{display:none;position:absolute;z-index:40;pointer-events:none;padding:3px 8px;border-radius:6px;background:#1f5fe0;color:#fff;font:600 11px system-ui;white-space:nowrap;box-shadow:0 2px 8px #00000040}.prop-card{margin:0 0 8px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface2)}.prop-card.accent{border-color:#3560d859;background:#3560d80d}.prop-card>:last-child{margin-bottom:0}.prop-callout{font-size:10.5px;line-height:1.45;padding:6px 8px;margin:0 0 8px;border-radius:5px;color:#1d3f9e;background:#3560d817;border:1px solid rgba(53,96,216,.25)}.prop-callout.warn{color:#8a5a10;background:#c57a001a;border-color:#c57a0059}.prop-callout.danger{color:#9f2233;background:#c8344a14;border-color:#c8344a4d}.prop-callout.ok{color:#0f6b4a;background:#1e9d6b1a;border-color:#1e9d6b59}.prop-pill{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid rgba(53,96,216,.35);background:#3560d81a;color:#1d4ed8}.prop-pill.warn{border-color:#d977068c;background:#d977061a;color:#b45309}.prop-pill.ok{border-color:#10b98166;background:#10b9811f;color:#065f46}.prop-grid{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:11px;margin:0 0 6px}.prop-grid>span{color:var(--text2)}.prop-grid>b{font-weight:600;color:var(--text)}.prop-grid>b.bad{color:#b45309}.m1-btn{padding:7px 8px;margin-bottom:var(--pp-row);min-height:30px}.m1-btn.primary{margin-bottom:8px}.m1-btn.small{width:auto;margin:0;padding:3px 8px;font-size:10.5px;min-height:22px}.m1-btn.danger{background:var(--danger);color:#fff;border-color:#a82838}.m1-btn.danger:hover{background:#b12b40;color:#fff;border-color:#8f2232}.m1-btn.danger .ti{color:#fff}.m1-btn.mt{margin-top:8px}.check-row{gap:6px;margin:2px 0 var(--pp-row);font-size:11px}.prop-checks{display:flex;gap:10px;margin:0 0 var(--pp-row)}.prop-checks .check-row{flex:1;margin:0}.m1-status{margin-top:2px}.prop-rule{border-top:1px solid var(--border);margin:8px 0}.m1-btn.small{flex:0 0 auto}.m1-btn.between{justify-content:space-between}.prop-btns>.m1-btn.fit{flex:0 0 auto;padding:4px 9px}.prop-btns>.m1-btn.icon{flex:0 0 var(--pp-ctl-h);width:var(--pp-ctl-h);padding:0}.anim-pop{position:fixed;z-index:10001;width:236px;background:var(--surface, #fff);border:1px solid var(--border, #c8cede);border-radius:10px;padding:10px;box-shadow:0 10px 30px #00000038;font:500 12px system-ui}.anim-row{display:flex;align-items:center;justify-content:space-between;gap:6px 8px;margin-bottom:8px;flex-wrap:wrap}.anim-row>span{color:var(--text2, #5a6480);font-weight:600;white-space:nowrap}.anim-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:2px;border-radius:7px;background:var(--surface2, #f0f2f7)}.anim-seg button{border:1px solid transparent;background:transparent;color:var(--text, #1d2230);border-radius:5px;padding:3px 7px;font:600 11px system-ui;line-height:1.2;cursor:pointer;white-space:nowrap}.anim-seg button:hover{color:var(--accent, #4f7fff)}.anim-seg button.on{background:#fff;border-color:#4f7fff73;color:var(--accent, #4f7fff);box-shadow:0 1px 2px #00000014}.anim-seg button .ti{font-size:13px}.anim-num{display:inline-flex;align-items:center;gap:4px;color:var(--text2, #5a6480);font-weight:600;flex:none}.anim-num input{width:62px;padding:3px 7px;border:1px solid var(--border, #c8cede);border-radius:6px;font:600 11px system-ui;color:var(--text, #1d2230);background:#fff;text-align:right;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.anim-num input::-webkit-outer-spin-button,.anim-num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.anim-num input:focus{outline:none;border-color:var(--accent, #4f7fff)}.anim-actions{display:flex;gap:6px;margin-top:10px}.anim-actions .m1-btn{flex:1;justify-content:center;margin-bottom:0}.anim-hint{margin-top:8px;font-size:10.5px;color:var(--text2, #5a6480);text-align:center}#animRecOverlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#eef1f68c;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);cursor:default}.anim-rec-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;max-width:320px;background:var(--surface, #fff);border:1px solid var(--border, #c8cede);border-radius:12px;padding:12px 14px;box-shadow:0 10px 30px #0000002e;font:600 12px system-ui}.anim-rec-dot{width:10px;height:10px;border-radius:50%;background:#e0353b;animation:animRecBlink 1s infinite}@keyframes animRecBlink{50%{opacity:.25}}.anim-rec-pct{color:var(--accent, #4f7fff);min-width:36px;text-align:right}.anim-rec-bar{flex-basis:100%;height:5px;border-radius:3px;background:var(--surface2, #f0f2f7);overflow:hidden}.anim-rec-bar>div{height:100%;width:0;background:var(--accent, #4f7fff);transition:width .1s linear}.anim-rec-card .m1-btn{margin:0;padding:5px 10px;min-height:0}#animBar{position:absolute;left:0;right:0;bottom:0;z-index:26;background:#ffffffeb;border-top:1px solid var(--border, #c8cede);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);font:600 11px system-ui;-webkit-user-select:none;user-select:none;display:flex;flex-direction:column}#preview3d.movie-on #viewCube3D,#preview3d.movie-on #compass3D{bottom:var(--anim-bar-h, 138px)!important}.anim-bar-row{display:flex;align-items:center;gap:6px;padding:6px 8px 2px;min-height:84px}.anim-ib{width:28px;height:28px;flex:none;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text2, #5a6480);cursor:pointer;font-size:15px;display:inline-flex;align-items:center;justify-content:center}.anim-ib:hover{background:var(--surface2, #f0f2f7);border-color:var(--border, #c8cede);color:var(--accent, #4f7fff)}#animBtnPlay{width:34px;height:34px;font-size:18px;color:var(--accent, #4f7fff)}.anim-time{flex:none;min-width:78px;font-variant-numeric:tabular-nums;color:var(--text2, #5a6480)}.anim-strip{flex:1;min-width:0;display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;padding:2px;scrollbar-width:thin}.anim-card{flex:none;width:112px;cursor:pointer;border-radius:8px;border:2px solid transparent;padding:2px;background:transparent}.anim-card:hover{border-color:#4f7fff59}.anim-card.sel{border-color:var(--accent, #4f7fff);background:#4f7fff14}.anim-card.over{border-color:#e0a800}.anim-card.drag{opacity:.4}.anim-card-img{position:relative;width:100%;aspect-ratio:16 / 9;border-radius:5px;overflow:hidden;background:#dfe3ec center / cover no-repeat}.anim-card-n{position:absolute;left:4px;top:3px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:#1d2230bf;color:#fff;font-size:10px;line-height:16px;text-align:center}.anim-card-acts{position:absolute;right:3px;top:3px;display:none;gap:2px}.anim-card:hover .anim-card-acts{display:flex}.anim-card-acts button{width:20px;height:20px;border:none;border-radius:5px;background:#ffffffeb;color:#1d2230;cursor:pointer;font-size:12px;display:inline-flex;align-items:center;justify-content:center}.anim-card-acts button:hover{color:var(--accent, #4f7fff)}.anim-card-acts button[data-act=delete]:hover{color:#e0353b}.anim-card-dur{margin-top:3px;text-align:center;font-size:10.5px;color:var(--text2, #5a6480);border-radius:5px;padding:1px 0;cursor:pointer}.anim-card-dur:hover{background:var(--surface2, #f0f2f7);color:var(--accent, #4f7fff)}.anim-card-dur.cut{color:#c62828;font-weight:700}.anim-card.cut{position:relative}.anim-card.cut:after{content:"";position:absolute;right:-5px;top:4px;bottom:4px;border-left:2px dashed #c62828}.anim-add{flex:none;width:112px;aspect-ratio:16 / 9;border:2px dashed rgba(79,127,255,.5);border-radius:8px;background:#4f7fff0f;color:var(--accent, #4f7fff);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font:600 11px system-ui}.anim-add i{font-size:18px}.anim-add:hover{background:#4f7fff24}.anim-empty{flex:none;color:var(--text2, #5a6480);font-weight:500;padding:0 6px}.anim-export{flex:none;margin:0;white-space:nowrap}.anim-menu-item{width:100%;justify-content:flex-start;margin-bottom:4px}.anim-menu-item:last-child{margin-bottom:0}#animScrub{width:calc(100% - 16px);margin:0 8px 6px;accent-color:var(--accent, #4f7fff);cursor:pointer}#animScrub:disabled{opacity:.35;cursor:default}#animBar .m1-btn,.anim-pop .m1-btn{width:auto;margin:0}.anim-pop .anim-actions .m1-btn{flex:1}.anim-pop .anim-menu-item{width:100%;margin-bottom:4px}
