:root{font-family:Trebuchet MS,Segoe UI,sans-serif;color:#262626;background:#e7e7e7;line-height:1.4;font-weight:400;color-scheme:light;--bg: #e7e7e7;--panel: #f7f7f7;--panel-subtle: #efefef;--border: #cfcfcf;--muted: #666666;--accent: #b2353f;--accent-dark: #8c2730;--accent-soft: #f1dadd;--accent-blue: #3a5f96;--danger: #c53030;--shadow: 0 14px 30px rgba(0, 0, 0, .08);--radius-lg: 12px;--radius-md: 8px;--radius-sm: 8px}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:linear-gradient(180deg,#efefef 0%,var(--bg) 100%)}button,input,textarea,select{font:inherit}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh}.app-frame{max-width:1360px;margin:0 auto;padding:0 14px 14px}.stack-lg>*+*{margin-top:12px}.stack-md>*+*{margin-top:12px}.stack-sm>*+*{margin-top:10px}.panel,.content-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow)}.panel,.content-panel{padding:14px}.panel--minimal{width:min(460px,100%);margin:0 auto}.home-shell{min-height:calc(100vh - 14px);display:grid;align-content:center;justify-items:center;gap:14px}.home-stage{width:min(360px,100%);min-height:180px;padding:14px;border-radius:12px;background:linear-gradient(135deg,rgba(255,255,255,.04),transparent 38%),linear-gradient(180deg,#b63a43,#ac313b);box-shadow:0 18px 44px #00000029;display:grid;align-content:space-between;gap:12px}.topbar,.tabs-shell{display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar__title{display:grid;gap:2px}.topbar__title span{color:var(--muted);font-size:.82rem}.topbar{margin-top:0;padding:10px 12px;border-radius:0 0 8px 8px;border-top:0}.tabs-shell{overflow-x:auto;padding:0 12px;background:transparent;border:0;box-shadow:none}.content-panel{min-height:calc(100vh - 168px);background:#f6f6f6}.content-panel--scene3d{padding:10px;min-height:calc(100vh - 148px)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.toolbar-inline{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px}.field-search{display:block;width:min(340px,100%);flex:1 1 340px}.field-search span{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.field-search__input{width:100%;min-height:34px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fbfbfb;color:#1f1f1f}.toolbar-inline__hint,.toolbar-inline__total{font-size:.82rem;color:var(--muted);white-space:nowrap}.toolbar-inline__total{color:#1f1f1f}.panel-kicker{margin:0 0 6px;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}.panel h2,.content-panel h2{margin:0;font-size:1.1rem;color:#1f1f1f}.muted-copy,.microcopy,.empty-state{margin:0;color:var(--muted)}.button-row{display:flex;flex-wrap:wrap;gap:10px}.button-row--minimal{justify-content:center}.button-primary,.button-secondary,.button-ghost,.section-nav__button{min-height:34px;padding:0 13px;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.button-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.button-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.button-secondary{background:#ececec;color:#303030;border-color:var(--border)}.button-secondary--compact{min-height:28px;padding:0 10px;font-size:.78rem}.button-ghost{background:#f8f8f8;color:#303030;border-color:var(--border)}.button-ghost--active,.section-nav__button--active{background:#fff;color:#232323;border-color:#a8a8a8}.button-primary:disabled,.button-secondary:disabled,.button-ghost:disabled{opacity:.55;cursor:wait}.status-chip{display:inline-flex;align-items:center;min-height:34px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:#fff;color:#6b5053;font-size:.84rem}.file-dropzone{display:grid;gap:6px;padding:14px;border-radius:var(--radius-sm);border:1px dashed rgba(255,255,255,.4);background:#ffffff0f;cursor:pointer;text-align:center}.panel--minimal .file-dropzone{background:#ffffff14;border-color:#ffffff47;color:#fff}.panel--minimal{background:transparent;border:0;box-shadow:none;padding:0}.file-dropzone__input{display:none}.section-nav{display:flex;flex-wrap:nowrap;gap:0;padding-top:8px;min-width:max-content}.section-nav__button{position:relative;min-height:40px;padding:0 18px;margin-left:-1px;border-radius:12px 12px 0 0;border-color:#b9b9b9;border-bottom-color:#d2d2d2;background:linear-gradient(180deg,#dedede,#cacaca);color:#373737;white-space:nowrap;box-shadow:inset 0 1px #ffffff80}.section-nav__button:first-child{margin-left:0}.section-nav__button--active{z-index:1;background:#f6f6f6;border-color:#a5a5a5;border-bottom-color:#f6f6f6;box-shadow:inset 0 3px 0 var(--accent),0 -1px #ffffffa6}.section-nav__button:hover{background:linear-gradient(180deg,#e5e5e5,#d4d4d4)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.metric-card,.summary-card{display:grid;gap:6px;padding:14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-subtle)}.metric-card span,.summary-card span{color:var(--muted);font-size:.9rem}.metric-card strong,.summary-card strong{color:#1e293b}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0}.summary-grid div{padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-subtle)}.summary-grid dt{margin-bottom:6px;color:var(--muted);font-size:.78rem;text-transform:uppercase}.summary-grid dd{margin:0;font-weight:600}.table-shell{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fafafa}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th,.data-table td{padding:9px 11px;text-align:left;border-bottom:1px solid #dfdfdf;vertical-align:top}.data-table th{font-size:.8rem;text-transform:uppercase;color:var(--muted);background:#ececec}.clickable-row{cursor:pointer}.clickable-row:hover{background:#efefef}.clickable-row--active{background:#e5e5e5}.split-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:12px;align-items:start}.split-layout--modulos{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.panel-subtle{padding:12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--panel-subtle)}.piece-preview{min-height:240px}.technical-plan-frame{width:100%;min-height:68vh;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.plan-preview__frame{width:100%;min-height:360px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:zoom-in}.plan-preview__image{width:100%;min-height:360px;object-fit:contain;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;cursor:zoom-in}.code-block{margin:0;padding:14px;overflow:auto;border-radius:var(--radius-sm);background:#0f172a;color:#f8fafc;white-space:pre-wrap;word-break:break-word}.image-gallery{display:grid;gap:14px}.image-gallery__preview{display:grid;gap:10px}.image-gallery__main-image{width:100%;height:100%;object-fit:cover;display:block;border-radius:var(--radius-sm);background:#fff}.image-gallery__main-frame{width:min(100%,320px);aspect-ratio:4 / 3;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;overflow:hidden;cursor:zoom-in}.image-gallery__main-image--interactive{cursor:inherit}.image-gallery__caption{display:grid;gap:4px;color:var(--muted)}.image-gallery__preview{display:grid;justify-items:start;gap:10px}.image-gallery__thumbs{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.image-gallery__thumb{display:grid;gap:8px;padding:8px;text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff}.image-gallery__thumb-frame{width:100%;aspect-ratio:4 / 3;display:block;overflow:hidden;border-radius:6px;background:#f1f5f9}.image-gallery__thumb>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-gallery__thumb img{width:100%;height:100%;object-fit:cover;display:block;background:#f1f5f9}.image-gallery__thumb span{font-size:.82rem;color:#475569}.image-gallery__thumb--active{border-color:#9e9e9e;background:#ececec}.asset-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#191210eb}.asset-lightbox__close{position:absolute;top:18px;right:18px;min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#ffffff14;color:#fff;cursor:pointer}.asset-lightbox__tools{position:absolute;top:18px;left:18px;z-index:1;display:flex;align-items:center;gap:8px}.asset-lightbox__tool,.scene3d-panel-toggle{width:40px;height:40px;display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#ffffff14;color:#fff;cursor:pointer}.asset-lightbox__zoom{min-width:62px;min-height:40px;display:grid;place-items:center;padding:0 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#ffffff14;color:#fff}.asset-lightbox__content{width:min(92vw,1480px);max-height:88vh;display:grid;gap:12px}.asset-lightbox__content--plan{height:88vh}.asset-lightbox__viewport{width:100%;height:100%;max-height:82vh;overflow:auto;border-radius:12px;background:#fff;cursor:default}.asset-lightbox__viewport.is-draggable{cursor:grab}.asset-lightbox__viewport.is-draggable:active{cursor:grabbing}.asset-lightbox__pan{min-width:100%;min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.asset-lightbox__image,.asset-lightbox__frame{width:100%;height:100%;max-height:82vh;object-fit:contain;border:0;border-radius:12px;background:#fff;transform-origin:center center}.asset-lightbox__image--pan{width:100%;height:auto;max-height:none;object-fit:contain;flex:0 0 auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.asset-lightbox__caption{display:grid;gap:4px;color:#f6e7e8}.scene3d-shell{height:100%}.scene3d-shell__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.scene3d-workbench{position:relative;height:clamp(420px,calc(100vh - 220px),760px);border:1px solid var(--border);border-radius:10px;background:#dcdcdc;overflow:hidden}.scene3d-stage{position:relative;width:100%;height:100%}.scene3d-viewer{width:100%;height:100%;border:0;border-radius:0;overflow:hidden;background:linear-gradient(180deg,#f1f1f1,#d8d8d8)}.scene3d-overlay{position:absolute;z-index:2;display:grid;gap:10px}.scene3d-overlay--top{top:14px;left:14px}.scene3d-overlay--left{top:58px;left:14px;width:min(212px,calc(100% - 28px));max-height:calc(100% - 72px)}.scene3d-panel-toggle{position:absolute;top:14px;left:14px;z-index:3;color:#222;background:#f7f7f7f0;border-color:#2222221f}.scene3d-panel-toggle svg{width:18px;height:18px}.scene3d-panel-toggle--collapsed{left:10px}.button-secondary--contrast,.scene3d-control,.scene3d-control-button{min-height:38px;padding:0 12px;border:1px solid rgba(34,34,34,.14);border-radius:9px;background:#f7f7f7eb;color:#222;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer}.scene3d-control{text-align:left}.scene3d-sidepanel{display:grid;gap:4px;max-height:calc(100vh - 290px);overflow:auto;padding:6px;border:1px solid rgba(34,34,34,.18);border-radius:12px;background:#f5f5f5f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 16px 32px #14141424}.scene3d-sidepanel__section{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;padding:0 8px;border:1px solid rgba(34,34,34,.14);border-radius:10px;background:#c9c9c9;color:#191919;cursor:pointer;font-size:.84rem;font-weight:700}.scene3d-sidepanel__body{display:grid;gap:4px}.scene3d-sidepanel__body--controls{grid-template-columns:repeat(2,minmax(0,1fr))}.scene3d-tree-group,.scene3d-tree-children{display:grid;gap:4px}.scene3d-tree-children--nested{margin-left:12px}.scene3d-visibility-row{display:grid;grid-template-columns:24px minmax(0,1fr) 30px;gap:4px;align-items:stretch}.scene3d-visibility-row--with-solo{grid-template-columns:24px minmax(0,1fr) 30px 30px}.scene3d-visibility-row--single{grid-template-columns:minmax(0,1fr) 30px}.scene3d-visibility-row--single-with-solo{grid-template-columns:minmax(0,1fr) 30px 30px}.scene3d-tree-expand,.scene3d-visibility-eye,.scene3d-visibility-solo{width:30px;min-height:30px;padding:0;border:1px solid rgba(34,34,34,.12);border-radius:9px;background:#efefef;color:#353535;cursor:pointer}.scene3d-tree-expand{font-size:.88rem}.scene3d-visibility-eye{display:grid;place-items:center;background:#f5f5f5}.scene3d-visibility-solo{display:grid;place-items:center;background:#ececec;color:#4a4a4a;font-size:.72rem;font-weight:800;letter-spacing:.04em}.scene3d-visibility-eye.is-hidden{color:#8f8f8f;background:#ebebeb}.scene3d-visibility-solo--child{min-height:28px}.scene3d-visibility-eye svg{width:15px;height:15px}.scene3d-visibility-eye--child{min-height:28px}.scene3d-tree-row{width:100%;display:grid;gap:1px;padding:4px 6px;border:1px solid rgba(34,34,34,.12);border-radius:9px;background:#f6f6f6;color:#202020;text-align:left;cursor:pointer;min-width:0}.scene3d-tree-row span,.scene3d-tree-row small{display:block;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene3d-tree-row span{font-size:.79rem;font-weight:600}.scene3d-tree-row small{color:#6c6c6c;font-size:.68rem;line-height:1.15}.scene3d-tree-row--tree,.scene3d-tree-row--single{min-height:30px}.scene3d-tree-row--child{background:#fbfbfb;min-height:28px}.scene3d-tree-row--child-deep{background:#f1f1f1}.scene3d-tree-row--child-full{width:100%}.scene3d-tree-row.is-active{border-color:#bc39438c;background:#bc394317}.scene3d-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px}.scene3d-bottom-toolbar{position:absolute;left:50%;bottom:12px;z-index:2;width:min(calc(100% - 24px),860px);transform:translate(-50%)}.scene3d-selection-chip{display:grid;gap:10px;padding:12px 14px;border-radius:14px;background:#222222eb;color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.scene3d-selection-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.scene3d-selection-copy{min-width:0}.scene3d-selection-title{font-size:.98rem;font-weight:700}.scene3d-selection-meta,.scene3d-selection-secondary{color:#ffffffc2;font-size:.84rem}.scene3d-selection-actions,.scene3d-action-rail{display:flex;flex-wrap:wrap;gap:8px}.scene3d-context-menu{display:grid;gap:2px;width:min(100%,360px);padding:2px;border:1px solid rgba(18,18,18,.28);border-radius:12px;background:linear-gradient(to bottom,#fefefe,#e6e6e6);box-shadow:0 14px 24px #0000002e}.scene3d-floating-menu{position:absolute;z-index:4;display:grid;gap:2px;width:min(320px,calc(100% - 20px));padding:2px;border:1px solid rgba(18,18,18,.28);border-radius:12px;background:linear-gradient(to bottom,#fefefe,#e6e6e6);box-shadow:0 14px 24px #0000002e}.scene3d-context-menu__header,.scene3d-context-menu__item{width:100%;min-height:34px;padding:7px 10px;border:1px solid transparent;border-radius:8px;color:#2b2b2b;font-size:.84rem;text-align:left}.scene3d-context-menu__header{font-weight:700;cursor:default}.scene3d-context-menu__item{background:transparent;cursor:pointer}.scene3d-context-menu__item:hover{color:#fff;background:linear-gradient(to bottom,#5d6d79,#2e3940);border-color:#2e3940}.scene3d-context-menu--module .scene3d-context-menu__header{background:#dbeafe;color:#1e40af;border-color:#93c5fd}.scene3d-context-menu--roomcad .scene3d-context-menu__header{background:#f5f3ff;color:#7c3aed;border-color:#c4b5fd}.scene3d-context-menu--object .scene3d-context-menu__header{background:#f3f4f6;color:#374151;border-color:#d1d5db}.scene3d-inline-control{display:flex;align-items:center}.scene3d-range-control{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;color:#ffffffd6}.scene3d-range-control span,.scene3d-range-control strong{font-size:.8rem}.scene3d-range-control input[type=range]{width:100%}.scene3d-chip-button{min-height:34px;padding:0 12px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:#ffffff1a;color:#fff;cursor:pointer}.scene3d-chip-button--active{background:#bc394352;border-color:#ffffff47}.scene3d-chip-button:disabled{opacity:.45;cursor:not-allowed}.scene3d-modal{z-index:70}.scene3d-dialog{position:relative;width:min(460px,92vw);max-height:82vh;display:grid;grid-template-rows:auto minmax(0,1fr);gap:14px;padding:24px 20px 20px;border-radius:18px;background:#f3f3f3;color:#1d1d1d;box-shadow:0 28px 48px #0a0a0a52}.scene3d-dialog__header{display:grid;gap:6px;padding-right:44px}.scene3d-dialog__header h2,.scene3d-dialog__header p{margin:0}.scene3d-dialog__list{display:grid;gap:8px;min-height:0;max-height:min(58vh,520px);overflow:auto;padding-right:6px}.scene3d-dialog__option{width:100%;display:grid;gap:4px;padding:12px 14px;border:1px solid rgba(34,34,34,.12);border-radius:14px;background:#fff;color:#1f1f1f;text-align:left;cursor:pointer}.scene3d-dialog__option small{color:#6a6a6a}.notice-banner{display:flex;justify-content:space-between;gap:18px;padding:14px 16px;border-radius:var(--radius-md);background:#1f2937;color:#fff}.notice-banner--muted{background:#fff1f2;color:#7f1d1d;border:1px solid #f1b6bb}.notice-banner p{margin:4px 0 0}.notice-banner__actions{display:flex;gap:10px;align-items:center}.notes-list{margin:0;padding-left:18px;color:var(--muted)}.notes-list--compact{font-size:.84rem}.panel-error{background:#fff5f5;border-color:#fed7d7;color:var(--danger)}.brand-mark{position:relative;display:inline-block;padding:10px 14px 8px;color:var(--accent)}.brand-mark__copy{display:grid;gap:2px}.brand-mark strong{font-size:1.52rem;line-height:.95;letter-spacing:.03em}.brand-mark small{font-size:.6rem;letter-spacing:.14em;font-weight:700}.brand-mark__corner{position:absolute;width:22px;height:14px;border-color:currentColor}.brand-mark__corner--tl{top:0;left:0;border-top:3px solid currentColor;border-left:3px solid currentColor}.brand-mark__corner--br{right:0;bottom:0;border-right:3px solid currentColor;border-bottom:3px solid currentColor}.brand-mark--compact{padding:8px 11px 6px}.brand-mark--compact strong{font-size:1.08rem}.brand-mark--compact small{font-size:.5rem}.brand-mark--compact .brand-mark__corner{width:16px;height:10px;border-width:2px}.brand-mark--inverse{color:#fff}@media(max-width:960px){.topbar,.notice-banner{flex-direction:column;align-items:stretch}.split-layout{grid-template-columns:1fr}.scene3d-shell__header{grid-template-columns:1fr;display:grid}.scene3d-overlay--left{top:50px;width:188px;max-height:calc(100% - 62px)}.scene3d-selection-main{display:grid}.scene3d-context-menu{width:100%}.scene3d-floating-menu{width:min(280px,calc(100% - 20px))}}@media(max-width:720px){.app-frame{padding:0 10px 10px}.panel,.content-panel{padding:12px}.home-stage{min-height:160px;padding:12px}.brand-mark strong{font-size:1.32rem}.section-nav__button{min-height:38px;padding:0 14px}.scene3d-workbench{height:calc(100vh - 210px);min-height:360px}.scene3d-overlay--top{top:10px}.scene3d-overlay--left{top:46px;left:10px;width:164px;max-height:calc(100% - 56px)}.scene3d-sidepanel__body--controls{grid-template-columns:minmax(0,1fr)}.scene3d-bottom-toolbar{width:calc(100% - 16px);bottom:8px}.scene3d-selection-chip{padding:10px 12px}}
