:root{color:#17201b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f4f5f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}.builder-shell{background:#f4f5f2;min-height:100vh}.topbar{z-index:90;background:#fafbf8f5;border-bottom:1px solid #d8ddd4;grid-template-columns:auto minmax(120px,1fr) auto minmax(0,auto) auto;align-items:center;gap:.55rem;height:56px;padding:0 .85rem;display:grid;position:fixed;top:0;left:0;right:0}.topbar strong{text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.brand-short{display:none}.build-info{justify-content:center;align-items:center;min-width:0;display:inline-flex;position:relative}.beta-badge{color:#53635a;white-space:nowrap;background:#f8faf7;border:1px solid #d8ddd4;border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:.12rem .5rem;font-size:.72rem;font-weight:850;display:inline-flex}.beta-badge:hover,.beta-badge:focus-visible{background:#eef4ed;border-color:#91a393;outline:none}.build-info-popover{z-index:130;color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:8px;gap:.4rem;width:min(330px,100vw - 20px);padding:.75rem;display:grid;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 18px 48px #17201b29}.build-info-popover:before{content:"";background:#fff;border-top:1px solid #cbd5cd;border-left:1px solid #cbd5cd;width:12px;height:12px;position:absolute;top:-6px;left:calc(50% - 6px);transform:rotate(45deg)}.build-info-popover>strong{font-size:.95rem}.build-info-popover>span,.build-info-popover small{color:#667369;font-size:.78rem}.build-info-changelog{border-top:1px solid #e1e5de;gap:.32rem;padding-top:.45rem;display:grid}.build-info-changelog strong{font-size:.82rem}.build-info-changelog ul{gap:.28rem;margin:0;padding-left:1.05rem;display:grid}.build-info-changelog li{color:#37443c;font-size:.8rem;line-height:1.35}.placed-count,.status-strip span:last-child,.component-row small{color:#667369;font-size:.82rem}.topbar-actions{justify-content:flex-end;align-items:center;gap:.35rem;min-width:0;display:flex}.placed-count{white-space:nowrap}.menu-button,.drawer-header button,.layout-actions button,.project-menu-button,.more-menu-button,.bom-export-button,.project-menu button,.topbar-more-menu button,.bom-export-menu button,.edit-actions button,.scale-actions button,.scale-actions select,.topbar-menu-select select,.bom-export-actions button,.bom-export-actions select,.component-row{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem}.menu-button,.drawer-header button,.layout-actions button,.project-menu-button,.more-menu-button,.bom-export-button,.edit-actions button,.scale-actions button,.scale-actions select,.topbar-more-menu button,.bom-export-menu button,.topbar-menu-select select,.bom-export-actions button,.bom-export-actions select{min-height:34px;padding:.35rem .7rem}.menu-button:hover,.drawer-header button:hover,.layout-actions button:hover,.project-menu-button:hover,.more-menu-button:hover,.bom-export-button:hover,.project-menu button:hover:not(:disabled),.topbar-more-menu button:hover:not(:disabled),.bom-export-menu button:hover:not(:disabled),.edit-actions button:hover:not(:disabled),.scale-actions button:hover,.scale-actions select:hover,.topbar-menu-select select:hover,.bom-export-actions button:hover:not(:disabled),.bom-export-actions select:hover,.component-row:hover{background:#eef7f1;border-color:#2f7d57}.project-actions,.topbar-bom-actions,.topbar-more-actions{position:relative}.project-menu-button,.more-menu-button,.bom-export-button{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.project-file-input{display:none}.project-menu{z-index:60;background:#fbfcfa;border:1px solid #d8ddd4;border-radius:.5rem;gap:.35rem;width:min(320px,100vw - 24px);max-height:min(72vh,520px);padding:.45rem;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 18px 48px #18201b2e}.topbar-more-menu{z-index:60;overscroll-behavior:contain;background:#fbfcfa;border:1px solid #d8ddd4;border-radius:.5rem;gap:.55rem;width:min(340px,100vw - 24px);max-height:min(100vh - 72px,620px);padding:.55rem;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 18px 48px #18201b2e}.bom-export-menu{z-index:60;background:#fbfcfa;border:1px solid #d8ddd4;border-radius:.5rem;gap:.5rem;width:min(260px,100vw - 24px);padding:.55rem;display:grid;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 48px #18201b2e}.topbar-menu-section{gap:.35rem;display:grid}.topbar-menu-section+.topbar-menu-section{border-top:1px solid #e1e5de;padding-top:.55rem}.topbar-menu-section-label{color:#667369;letter-spacing:0;text-transform:uppercase;font-size:.72rem;font-weight:850}.topbar-more-menu button{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.bom-export-menu button{justify-content:center;align-items:center;display:inline-flex}.topbar-menu-section>button{justify-content:flex-start;width:100%}.topbar-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}.topbar-menu-grid button{width:100%;min-width:0}.topbar-menu-select{color:#667369;grid-template-columns:minmax(0,1fr) minmax(116px,auto);align-items:center;gap:.45rem;font-size:.78rem;font-weight:750;display:grid}.topbar-menu-select select{width:100%;min-width:0;padding-right:1.5rem}.topbar-more-menu button[data-active=true]{color:#145c3b;background:#dff4e7;border-color:#2f7d57}.topbar-more-menu button:disabled,.bom-export-menu button:disabled{cursor:default;opacity:.42}.project-menu button{text-align:left;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.5rem;min-height:34px;padding:.4rem .55rem;display:grid}.project-menu button:disabled{cursor:default;opacity:.42}.project-menu-history{border-top:1px solid #e1e5de;gap:.25rem;margin-top:.25rem;padding-top:.45rem;display:grid}.project-menu-history strong{color:#667369;text-transform:uppercase;font-size:.78rem}.project-menu-history button span{min-width:0;display:grid}.project-menu-history small,.project-message,.project-save-status{color:#667369;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.project-message{padding:.2rem .25rem}.project-save-status{max-width:220px}.edit-actions,.layout-actions{align-items:center;gap:.35rem;display:flex}.layout-actions button{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.scale-actions{align-items:center;gap:.35rem;display:flex}.scale-actions button{white-space:nowrap;align-items:center;gap:.35rem;display:inline-flex}.scale-actions button[data-active=true],.selection-actions button[data-active=true],.rotation-pad button[data-active=true]{color:#145c3b;background:#dff4e7;border-color:#2f7d57}.validation-actions{align-items:center;gap:.35rem;display:flex}.validation-actions button{color:#17201b;white-space:nowrap;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;align-items:center;gap:.35rem;min-height:34px;padding:.35rem .7rem;display:inline-flex}.validation-actions button:hover,.validation-actions button:focus-visible{background:#eef7f1;border-color:#2f7d57;outline:none}.validation-actions button[data-severity=error]{color:#a83232;background:#fff1f1;border-color:#d47d7d}.validation-actions button[data-severity=warning]{color:#8a5a00;background:#fff8e8;border-color:#e4b76d}.validation-actions button[data-severity=ready]{color:#1f6241;background:#eef7f1;border-color:#9bc9aa}.scale-actions select{max-width:112px;padding-right:1.4rem}.edit-actions button{place-items:center;width:34px;min-width:34px;padding:0;display:grid}.edit-actions button:disabled{cursor:default;opacity:.42}.bom-export-actions{align-items:center;gap:.35rem;display:flex}.bom-export-actions select{max-width:132px;padding-right:1.5rem}.bom-export-actions button{white-space:nowrap}.bom-export-actions button:disabled{cursor:default;opacity:.42}.component-drawer{z-index:30;background:#fbfcfa;border:1px solid #d8ddd4;border-radius:.55rem;width:min(340px,100vw - 24px);max-height:calc(100vh - 84px);position:fixed;top:68px;left:12px;overflow:auto;box-shadow:0 18px 48px #18201b29}.drawer-header{z-index:1;background:#fbfcfa;border-bottom:1px solid #e1e5de;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem;display:flex;position:sticky;top:0}.component-tree{padding:.5rem}.component-folder{margin:.15rem 0}.component-folder summary{cursor:pointer;color:#2e3b33;border-radius:.35rem;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .4rem;font-weight:700;list-style-position:inside;display:flex}.component-folder summary:hover{background:#eef0eb}.component-folder[data-depth="0"]>summary{background:#f2f5ef}.component-folder[data-depth="1"]>summary,.component-folder[data-depth="2"]>summary{font-size:.9rem;font-weight:650}.component-folder-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.component-folder-count{color:#667369;background:#fff;border:1px solid #d8ddd4;border-radius:999px;place-items:center;min-width:1.55rem;height:1.25rem;padding:0 .35rem;font-size:.72rem;font-weight:700;display:inline-grid}.component-folder-contents{gap:.35rem;margin-left:.45rem;padding:.2rem 0 .35rem;display:grid}.component-folder[data-depth="0"]>.component-folder-contents{border-left:1px solid #e1e5de;margin-left:.45rem;padding-left:.35rem}.component-folder[data-depth="1"]>.component-folder-contents,.component-folder[data-depth="2"]>.component-folder-contents{margin-left:.35rem;padding-left:.2rem}.component-row-shell{grid-template-columns:minmax(0,1fr) 34px;align-items:stretch;gap:.35rem;display:grid}.component-row{text-align:left;touch-action:pan-y;-webkit-user-select:none;user-select:none;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:.55rem;width:100%;min-height:62px;padding:.45rem .55rem;display:grid}.component-row[data-dragging=true]{background:#e7f4eb;border-color:#2f7d57}.component-info-control{place-items:stretch stretch;min-width:0;display:grid}.component-info-button{color:#53635a;touch-action:manipulation;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;place-items:center;width:34px;min-width:34px;min-height:62px;padding:0;display:grid}.component-info-button:hover,.component-info-button:focus-visible,.component-info-button[aria-expanded=true]{color:#1f6241;background:#eef7f1;border-color:#2f7d57}.component-info-popover{z-index:120;color:#17201b;background:#fbfcfa;border:1px solid #cbd5cd;border-radius:.55rem;width:min(320px,100vw - 16px);max-height:calc(100vh - 16px);padding:.65rem;position:fixed;overflow:auto;box-shadow:0 20px 54px #18201b3d}.component-info-header{grid-template-columns:minmax(0,1fr) 30px;align-items:start;gap:.5rem;margin-bottom:.55rem;display:grid}.component-info-header strong{overflow-wrap:anywhere;font-size:.92rem;line-height:1.25}.component-info-close{color:#53635a;background:#fff;border:1px solid #d8ddd4;border-radius:.4rem;place-items:center;width:30px;height:30px;padding:0;display:grid}.component-info-close:hover,.component-info-close:focus-visible{color:#1f6241;background:#eef7f1;border-color:#2f7d57}.component-info-preview{background:radial-gradient(circle at 35% 25%,#fffffff2,#f2f5ef73 42%,#0000 43%),linear-gradient(135deg,#eef0eb,#dfe7de);border:1px solid #d8ddd4;border-radius:.45rem;height:150px;overflow:hidden}.component-info-preview canvas{display:block}.component-info-facts{grid-template-columns:1fr 1fr;gap:.4rem;margin:.6rem 0;display:grid}.component-info-facts div{background:#fff;border:1px solid #e1e5de;border-radius:.4rem;min-width:0;padding:.38rem .45rem}.component-info-facts dt{color:#667369;text-transform:uppercase;font-size:.68rem;font-weight:750}.component-info-facts dd{overflow-wrap:anywhere;margin:.12rem 0 0;font-size:.8rem;font-weight:650}.component-info-links{gap:.35rem;display:grid}.component-info-links>strong{font-size:.8rem}.component-info-links a{color:#1f6241;background:#fff;border:1px solid #e1e5de;border-radius:.4rem;gap:.08rem;min-width:0;padding:.42rem .5rem;font-size:.78rem;font-weight:650;line-height:1.25;text-decoration:none;display:grid}.component-info-links a:hover,.component-info-links a:focus-visible{background:#eef7f1;border-color:#2f7d57}.component-info-links span{overflow-wrap:anywhere}.component-info-links small{color:#667369;font-size:.68rem}.component-drag-preview{z-index:80;color:#17201b;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;background:#fbfcfafa;border:1px solid #2f7d57bf;border-radius:.45rem;max-width:min(260px,100vw - 32px);padding:.45rem .6rem;font-size:.82rem;font-weight:750;position:fixed;overflow:hidden;transform:translate(12px,12px);box-shadow:0 14px 34px #18201b38}.component-row-text{gap:.12rem;min-width:0;display:grid}.component-row-name{overflow-wrap:anywhere;font-weight:650}.component-quality-badge{color:#53635a;white-space:nowrap;background:#f8faf7;border:1px solid #d8ddd4;border-radius:999px;align-items:center;width:fit-content;max-width:100%;padding:.18rem .42rem;font-size:.68rem;font-weight:800;line-height:1;display:inline-flex}.component-quality-verified,.component-review-verified,.component-review-community-ok{color:#1f6241;background:#eef7f1;border-color:#9bc9aa}.component-quality-auto-detected,.component-review-auto-detected,.component-review-unconfirmed{color:#186072;background:#ecf8fb;border-color:#8ec7d8}.component-quality-needs-review,.component-quality-disabled,.component-review-needs-fix,.component-review-snaps-disabled{color:#8a5a00;background:#fff8e8;border-color:#e4b76d}.component-quality-unverified{color:#53635a;background:#f3f4f1;border-color:#d8ddd4}.component-thumb{background:linear-gradient(135deg,#ffffffe6,#eef1ebd6),#f8faf7;border:1px solid #d8ddd4;border-radius:.42rem;flex:none;place-items:center;width:44px;height:44px;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffffc7}.component-thumb svg{width:42px;height:42px;display:block}.viewer{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;min-height:100vh;padding-top:56px;display:grid}.editor-scene{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#141814;min-height:calc(100vh - 56px);position:relative;overflow:hidden}.editor-scene canvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;display:block}.status-strip{z-index:15;background:#fafbf8f0;border:1px solid #d8ddd4e6;border-radius:.5rem;justify-content:space-between;align-items:center;gap:1rem;padding:.45rem .65rem;display:flex;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 12px 32px #18201b29}.assembly-warning{color:#9a5b00;align-items:center;gap:.35rem;font-weight:700;display:inline-flex}.selection-actions{flex:none;gap:.35rem;display:flex}.selection-actions button{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;place-items:center;width:34px;min-width:34px;min-height:34px;font-size:.78rem;font-weight:700;display:grid}.selection-actions button:hover:not(:disabled){background:#eef7f1;border-color:#2f7d57}.selection-actions button:disabled{cursor:default;opacity:.42}.selection-actions button[data-active=true]:not(:disabled){color:#1f5f40;background:#e7f4eb;border-color:#2f7d57}.lasso-mode-chip{z-index:18;color:#1f5f40;pointer-events:none;background:#eef7f1f0;border:1px solid #5e9673b3;border-radius:999px;padding:.35rem .7rem;font-size:.82rem;font-weight:750;position:absolute;top:12px;left:50%;transform:translate(-50%)}.lasso-rect{z-index:17;pointer-events:none;background:#22c55e24;border:1px solid #67e8a4;position:absolute;box-shadow:inset 0 0 0 1px #ffffff3d}.selection-popover{z-index:38;background:#fbfcfaf7;border:1px solid #cfd7d1f0;border-radius:.55rem;gap:.45rem;width:min(290px,100vw - 24px);padding:.55rem;display:grid;position:fixed;bottom:70px;right:12px;box-shadow:0 18px 48px #18201b33}.selection-popover-header{color:#2e3b33;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.selection-popover-header button,.selection-popover-actions button{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.42rem}.selection-popover-header button{place-items:center;width:30px;min-width:30px;min-height:30px;padding:0;display:grid}.selection-popover-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}.selection-popover-actions button{place-items:center;min-height:52px;padding:.4rem .25rem;font-size:.72rem;font-weight:700;display:grid}.selection-popover-actions button span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.selection-popover-header button:hover,.selection-popover-actions button:hover{background:#eef7f1;border-color:#2f7d57}.selection-popover-actions button.danger{color:#a83232}.selection-popover-actions button.danger:hover{background:#fff1f1;border-color:#d47d7d}.control-pad{grid-template-columns:repeat(3,minmax(0,1fr));gap:.32rem;display:grid}.selection-popover .control-pad{border-top:1px solid #e1e5de;padding-top:.45rem}.status-strip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.component-context-menu{z-index:40;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;background:#fbfcfafa;border:1px solid #cfd7d1;border-radius:.55rem;gap:.28rem;width:236px;max-height:calc(100vh - 72px);padding:.45rem;display:grid;position:fixed;overflow-y:auto;box-shadow:0 18px 48px #18201b33}.component-context-menu-title{color:#2e3b33;text-overflow:ellipsis;white-space:nowrap;border-bottom:1px solid #e1e5de;padding:.35rem .45rem .55rem;font-size:.82rem;font-weight:750;overflow:hidden}.component-context-menu button{color:#17201b;text-align:left;background:0 0;border:1px solid #0000;border-radius:.42rem;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:.55rem;min-height:42px;padding:.45rem .55rem;display:grid}.component-context-menu .control-pad button,.selection-popover .control-pad button{color:#17201b;text-align:center;background:#fff;border:1px solid #cbd5cd;border-radius:.42rem;grid-template-rows:18px auto;grid-template-columns:none;place-items:center;gap:.1rem;min-height:48px;padding:.35rem .2rem;display:grid}.component-context-menu button:hover:not(:disabled),.component-context-menu button:focus-visible,.selection-popover .control-pad button:hover:not(:disabled),.selection-popover .control-pad button:focus-visible{background:#eef7f1;border-color:#2f7d57;outline:none}.component-context-menu .control-pad button[data-active=true]:not(:disabled),.selection-popover .control-pad button[data-active=true]:not(:disabled){color:#1f5f40;background:#e7f4eb;border-color:#2f7d57}.component-context-menu button:disabled{cursor:default;opacity:.42}.component-context-menu button.danger{color:#a83232}.component-context-menu button.danger:hover:not(:disabled),.component-context-menu button.danger:focus-visible{background:#fff1f1;border-color:#d47d7d}.component-context-menu span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.control-pad span{max-width:100%;font-size:.68rem;font-weight:750}.collision-overlay{color:#fff;background:#ba3636f0;border-radius:999px;padding:.5rem .8rem;font-weight:700;position:absolute;bottom:4rem;right:1rem}.placement-feedback{z-index:18;color:#17201b;pointer-events:none;background:#fafbf8f2;border:1px solid #d8ddd4e6;border-radius:999px;max-width:min(520px,100vw - 24px);padding:.5rem .8rem;font-size:.82rem;font-weight:800;position:absolute;bottom:4.1rem;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #18201b29}.placement-feedback-valid{color:#1f6241;background:#eef7f1f5;border-color:#9bc9aa}.placement-feedback-blocked{color:#a83232;background:#fff1f1f7;border-color:#d47d7d}.layout-panel,.validation-panel,.selection-inspector{z-index:36;color:#17201b;background:#fbfcfafa;border:1px solid #cfd7d1f0;border-radius:.55rem;position:fixed;box-shadow:0 18px 48px #18201b33}.validation-panel{gap:.65rem;width:min(430px,100vw - 24px);max-height:min(100vh - 92px,720px);padding:.7rem;display:grid;top:68px;right:12px;overflow:auto}.layout-panel{background:#fbfcfa;gap:.65rem;width:min(470px,100vw - 24px);max-height:min(100vh - 92px,760px);padding:.7rem;display:grid;top:68px;left:12px;overflow:auto}.layout-panel-compact{width:min(390px,100vw - 24px)}.layout-panel-header{grid-template-columns:minmax(0,1fr) 30px;align-items:start;gap:.6rem;display:grid}.layout-panel-header>div{gap:.12rem;min-width:0;display:grid}.layout-panel-header strong{font-size:1rem}.layout-panel-header span,.layout-panel small{color:#667369;font-size:.76rem}.layout-panel-header button{color:#53635a;background:#fff;border:1px solid #d8ddd4;border-radius:.4rem;place-items:center;width:30px;height:30px;padding:0;display:grid}.layout-prompt,.layout-form-grid label{color:#2e3b33;gap:.3rem;min-width:0;font-size:.78rem;font-weight:800;display:grid}.layout-template-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;display:grid}.layout-template-list{gap:.4rem;display:grid}.layout-template-row button{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;min-height:34px;padding:.35rem .55rem;font-size:.78rem;font-weight:850}.layout-template-list button{color:#17201b;text-align:left;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;gap:.12rem;min-height:48px;padding:.45rem .58rem;display:grid}.layout-template-list button span{font-size:.84rem;font-weight:850}.layout-template-list button small{color:#667369;font-size:.72rem}.layout-template-row button:hover,.layout-template-row button:focus-visible,.layout-template-list button:hover,.layout-template-list button:focus-visible{background:#eef7f1;border-color:#2f7d57;outline:none}.layout-template-list button[data-active=true]{background:#dff4e7;border-color:#2f7d57}.layout-prompt textarea,.layout-form-grid input,.layout-form-grid select,.layout-planner-endpoint input{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;width:100%;min-width:0;padding:.48rem .58rem}.layout-prompt textarea{resize:vertical}.layout-prompt textarea:focus,.layout-form-grid input:focus,.layout-form-grid select:focus,.layout-planner-endpoint input:focus{border-color:#2f7d57;outline:2px solid #2f7d572e}.layout-action-row,.layout-apply-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;display:grid}.layout-action-row button,.layout-apply-actions button,.layout-planner-endpoint button{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;justify-content:center;align-items:center;gap:.32rem;min-height:36px;padding:.35rem .5rem;font-size:.76rem;font-weight:800;display:inline-flex}.layout-action-row button:hover,.layout-action-row button:focus-visible,.layout-apply-actions button:hover:not(:disabled),.layout-apply-actions button:focus-visible,.layout-planner-endpoint button:hover:not(:disabled),.layout-planner-endpoint button:focus-visible,.layout-panel-header button:hover,.layout-panel-header button:focus-visible{background:#eef7f1;border-color:#2f7d57;outline:none}.layout-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.layout-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.layout-readout{background:#f8faf7;border:1px solid #e1e5de;border-radius:.45rem;gap:.3rem;min-width:0;padding:.48rem .58rem;display:grid}.layout-readout span{color:#2e3b33;font-size:.78rem;font-weight:800}.layout-readout strong{overflow-wrap:anywhere;font-size:.84rem}.layout-feature-grid{flex-wrap:wrap;gap:.35rem;display:flex}.layout-feature-grid label{color:#2e3b33;background:#fff;border:1px solid #d8ddd4;border-radius:999px;align-items:center;gap:.32rem;min-height:32px;padding:.26rem .52rem;font-size:.76rem;font-weight:800;display:inline-flex}.layout-feature-grid input{margin:0}.layout-planner-endpoint{background:#fff;border:1px solid #e1e5de;border-radius:.45rem;padding:.45rem .55rem}.layout-planner-endpoint summary{cursor:pointer;color:#2e3b33;align-items:center;gap:.35rem;font-size:.8rem;font-weight:800;display:inline-flex}.layout-planner-endpoint>div{grid-template-columns:minmax(0,1fr) auto;gap:.4rem;margin-top:.5rem;display:grid}.layout-message{color:#4d5b51;background:#f8faf7;border:1px solid #d8ddd4;border-radius:.45rem;align-items:center;gap:.4rem;padding:.5rem .58rem;font-size:.8rem;font-weight:750;line-height:1.35;display:flex}.layout-message-error{color:#a83232;background:#fff1f1;border-color:#d47d7d}.layout-preview{background:#fff;border:1px solid #d8ddd4;border-radius:.55rem;gap:.55rem;padding:.65rem;display:grid}.layout-preview-ready{border-color:#9bc9aa}.layout-preview-blocked{border-color:#d47d7d}.layout-preview-status{color:#1f6241;align-items:center;gap:.4rem;display:inline-flex}.layout-preview-blocked .layout-preview-status{color:#a83232}.layout-preview-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;margin:0;display:grid}.layout-preview-stats div{background:#f8faf7;border:1px solid #e1e5de;border-radius:.4rem;padding:.38rem .45rem}.layout-preview-stats dt{color:#667369;text-transform:uppercase;font-size:.66rem;font-weight:800}.layout-preview-stats dd{overflow-wrap:anywhere;margin:.1rem 0 0;font-size:.78rem;font-weight:800}.layout-warning-list{color:#8a5a00;gap:.25rem;margin:0;padding-left:1.1rem;font-size:.78rem;line-height:1.35;display:grid}.layout-accessories{border-top:1px solid #e1e5de;gap:.25rem;padding-top:.5rem;display:grid}.layout-accessories strong{color:#2e3b33;text-transform:uppercase;font-size:.76rem}.layout-accessories span{overflow-wrap:anywhere;color:#667369;font-size:.76rem}.layout-apply-actions button.primary{color:#fff;background:#1f6b49;border-color:#1f6b49;grid-column:span 2}.layout-apply-actions button.primary:hover:not(:disabled),.layout-apply-actions button.primary:focus-visible{background:#245a42}.layout-apply-actions-single{grid-template-columns:1fr}.layout-apply-actions-single button.primary{grid-column:auto}.layout-apply-actions button:disabled,.layout-planner-endpoint button:disabled{cursor:default;opacity:.42}.validation-panel-header{grid-template-columns:minmax(0,1fr) 30px;align-items:start;gap:.6rem;display:grid}.validation-panel-header>div{gap:.12rem;min-width:0;display:grid}.validation-panel-header strong{font-size:1rem}.validation-panel-header span,.validation-panel small,.selection-inspector small{color:#667369;font-size:.76rem}.validation-panel-header button{color:#53635a;background:#fff;border:1px solid #d8ddd4;border-radius:.4rem;place-items:center;width:30px;height:30px;padding:0;display:grid}.validation-summary{border-radius:.45rem;align-items:center;gap:.45rem;padding:.55rem .65rem;font-weight:800;display:flex}.validation-summary-ready{color:#1f6241;background:#eef7f1;border:1px solid #9bc9aa}.validation-summary-blocked{color:#a83232;background:#fff1f1;border:1px solid #d47d7d}.review-suggestions,.validation-issues{gap:.45rem;display:grid}.review-suggestions h2,.validation-issues h2{color:#2e3b33;text-transform:uppercase;align-items:center;gap:.35rem;margin:0;font-size:.84rem;display:inline-flex}.review-suggestion,.validation-issue,.component-info-quality{background:#fff;border:1px solid #e1e5de;border-radius:.45rem;gap:.18rem;padding:.55rem .6rem;display:grid}.review-suggestion-error,.validation-issue-error{background:#fff8f8;border-color:#d47d7d}.review-suggestion-warning,.validation-issue-warning{background:#fffaf0;border-color:#e4b76d}.review-suggestion span,.validation-issue p,.component-info-quality span{color:#4d5b51;margin:0;font-size:.8rem;line-height:1.35}.validation-issue>div{gap:.08rem;display:grid}.validation-issue>div span{overflow-wrap:anywhere;color:#667369;font-size:.74rem}.validation-export-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;display:grid}.validation-export-actions button{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;justify-content:center;align-items:center;gap:.35rem;min-height:36px;padding:.35rem .55rem;font-size:.78rem;font-weight:800;display:inline-flex}.selection-inspector{gap:.32rem;width:min(320px,100vw - 24px);max-height:min(24vh,160px);padding:.48rem;display:grid;bottom:70px;right:12px;overflow:hidden}.selection-inspector-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.selection-inspector-title{gap:.1rem;min-width:0;display:grid}.selection-inspector-header strong{overflow-wrap:anywhere;min-width:0;font-size:.86rem}.selection-inspector-title span{color:#667369;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:750;overflow:hidden}.selection-inspector-actions{flex:none;align-items:center;gap:.3rem;display:inline-flex}.selection-report-button{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;justify-content:center;align-items:center;width:32px;height:32px;padding:0;display:inline-flex}.selection-report-button:hover,.selection-report-button:focus-visible,.validation-export-actions button:hover,.validation-export-actions button:focus-visible{background:#eef7f1;border-color:#2f7d57;outline:none}.selection-connections,.selection-issues{gap:.22rem;display:grid}.selection-connections>span{background:#fff;border:1px solid #e1e5de;border-radius:.4rem;gap:.05rem;padding:.4rem .45rem;font-size:.78rem;font-weight:750;display:grid}.selection-issue{border-radius:999px;width:fit-content;padding:.2rem .45rem;font-size:.72rem;font-weight:800}.selection-issue-error{color:#a83232;background:#fff1f1}.selection-issue-warning{color:#8a5a00;background:#fff8e8}.selection-issue-info{color:#53635a;background:#eef0eb}.component-feedback-prompt{z-index:37;color:#17201b;background:#fbfcfafa;border:1px solid #8ec7d8e6;border-radius:.55rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;width:min(520px,100vw - 24px);padding:.62rem;display:grid;position:fixed;bottom:70px;right:12px;box-shadow:0 18px 48px #18201b33}.component-feedback-prompt>div:first-child{gap:.12rem;min-width:0;display:grid}.component-feedback-prompt strong,.component-feedback-prompt span{text-overflow:ellipsis;overflow:hidden}.component-feedback-prompt>div:first-child span{color:#667369;font-size:.8rem}.component-feedback-actions{gap:.35rem;display:flex}.component-feedback-actions button,.issue-report-actions button{color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;justify-content:center;align-items:center;gap:.3rem;min-height:34px;padding:.35rem .55rem;font-size:.78rem;font-weight:800;display:inline-flex}.component-feedback-actions button:disabled,.issue-report-actions button:disabled,.issue-report-header button:disabled{cursor:default;opacity:.5}.component-feedback-actions button:hover,.component-feedback-actions button:focus-visible,.issue-report-actions button:hover:not(:disabled),.issue-report-actions button:focus-visible:not(:disabled){background:#eef7f1;border-color:#2f7d57;outline:none}.issue-report-backdrop{z-index:130;background:#0f172a61;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.issue-report-dialog{color:#17201b;background:#fbfcfa;border:1px solid #cfd7d1;border-radius:.6rem;gap:.8rem;width:min(520px,100%);padding:.85rem;display:grid;box-shadow:0 22px 72px #18201b42}.issue-report-header{grid-template-columns:minmax(0,1fr) 30px;align-items:start;gap:.65rem;display:grid}.issue-report-header>div{gap:.12rem;min-width:0;display:grid}.issue-report-header span,.issue-report-dialog p{color:#667369;font-size:.8rem;line-height:1.4}.issue-report-header button{color:#53635a;background:#fff;border:1px solid #d8ddd4;border-radius:.4rem;place-items:center;width:30px;height:30px;padding:0;display:grid}.issue-report-dialog label{color:#2e3b33;gap:.35rem;font-size:.84rem;font-weight:800;display:grid}.issue-report-dialog textarea{resize:vertical;color:#17201b;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;width:100%;min-height:120px;padding:.55rem .65rem}.issue-report-dialog textarea:focus{border-color:#2f7d57;outline:2px solid #2f7d572e}.star-rating{gap:.25rem;display:flex}.star-rating button{color:#8b957f;background:#fff;border:1px solid #cbd5cd;border-radius:.45rem;place-items:center;width:36px;min-width:36px;min-height:36px;padding:0;display:grid}.star-rating button[data-active=true]{color:#a66d00;background:#fff8e5;border-color:#b6892f}.star-rating button[data-active=true] svg{fill:currentColor}.star-rating button:hover,.star-rating button:focus-visible{border-color:#2f7d57;outline:none}.issue-report-actions{justify-content:end;gap:.45rem;display:flex}.issue-report-actions button.primary{color:#fff;background:#1f6b49;border-color:#1f6b49}.issue-report-actions button.primary:hover,.issue-report-actions button.primary:focus-visible{background:#245a42}.admin-shell{color:#1f2823;background:#f4f1e8;place-items:center;min-height:100vh;padding:24px;display:grid}.admin-panel{background:#fffdf7;border:1px solid #d7d0bd;border-radius:8px;width:min(720px,100%);padding:24px;box-shadow:0 18px 60px #2028231f}.admin-panel-wide{width:min(1180px,100%)}.admin-panel h1{margin:0 0 16px;font-size:1.45rem}.admin-panel p{color:#4d5b51;line-height:1.5}.admin-status{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0;display:grid}.admin-status span{color:#26332c;background:#f7f3e7;border:1px solid #d7d0bd;border-radius:6px;padding:10px;font-size:.85rem;font-weight:700}.admin-panel label{color:#25342d;gap:6px;margin:14px 0;font-size:.9rem;font-weight:750;display:grid}.admin-panel input,.admin-panel select,.admin-panel textarea{color:#17201b;width:100%;min-height:42px;font:inherit;background:#fff;border:1px solid #bfc8bd;border-radius:6px;padding:0 12px}.admin-panel textarea{resize:vertical;min-height:86px;padding-block:10px}.admin-panel input:focus,.admin-panel select:focus,.admin-panel textarea:focus{border-color:#2f7d57;outline:2px solid #2f7d572e}.admin-panel button{color:#fff;width:100%;min-height:44px;font:inherit;cursor:pointer;background:#1f6b49;border:1px solid #1f6b49;border-radius:6px;padding:0 14px;font-weight:800}.admin-panel button:hover:not(:disabled),.admin-panel button:focus-visible{background:#245a42;outline:none}.admin-panel button:disabled{cursor:default;opacity:.55}.admin-message{color:#25342d;background:#eef7f1;border-left:4px solid #2f7d57;padding:10px 12px}.admin-message code{color:#17201b;white-space:normal;background:#17201b14;border-radius:4px;padding:2px 4px;display:inline}.admin-missing-files{background:#fffaf0;border:1px solid #d7d0bd;border-radius:6px;margin:12px 0;padding:10px 12px}.admin-missing-files summary{cursor:pointer;color:#25342d;font-weight:800}.admin-missing-files ul{max-height:220px;margin:10px 0 0;padding-left:18px;overflow:auto}.admin-missing-files li{color:#4d5b51;word-break:break-word;margin:4px 0;font-size:.85rem}.admin-panel code{color:#f8faf7;white-space:nowrap;background:#17201b;border-radius:6px;padding:12px;display:block;overflow-x:auto}.admin-panel a{color:#1f6b49;margin-top:14px;font-weight:700;display:inline-block}.admin-panel pre{color:#e6eee9;white-space:pre-wrap;word-break:break-word;background:#17201b;border-radius:6px;max-height:280px;padding:12px;overflow:auto}.admin-report-layout{grid-template-columns:minmax(240px,.8fr) minmax(0,1.4fr);gap:16px;margin-top:18px;display:grid}.admin-report-tabs{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.admin-report-tabs button,.admin-report-item{color:#25342d;background:#f7f3e7;border-color:#d7d0bd}.admin-report-tabs button[data-active=true],.admin-report-item[data-active=true]{color:#fff;background:#1f6b49;border-color:#1f6b49}.admin-report-list{align-content:start;gap:8px;display:grid}.admin-report-item{text-align:left;gap:4px;min-height:0;padding:10px 12px;display:grid}.admin-report-item strong,.admin-report-item span,.admin-report-item small{overflow-wrap:anywhere}.admin-report-item span,.admin-report-item small{opacity:.8;font-size:.8rem}.admin-report-detail h2{margin:0 0 8px;font-size:1.15rem}.admin-action-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0;display:grid}.admin-action-grid.compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:8px 0 0}.automation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.automation-panel{min-width:0}.automation-panel h2{margin:0 0 10px;font-size:1.05rem}.automation-card{background:#fffaf0;border:1px solid #d7d0bd;border-radius:6px;gap:8px;margin:0 0 10px;padding:12px;display:grid}.automation-card>div:first-child{gap:2px;display:grid}.automation-card strong,.automation-card span,.automation-card small,.automation-card p{overflow-wrap:anywhere}.automation-card span,.automation-card small{color:#5a665d;font-size:.82rem}.automation-card p{margin:0}.automation-card pre{max-height:220px}.automation-stats{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.automation-stats span{color:#26332c;background:#f7f3e7;border:1px solid #d7d0bd;border-radius:6px;padding:8px 10px;font-size:.82rem;font-weight:750}@media (width<=700px){.admin-shell{align-items:start;padding:12px}.admin-panel{padding:16px}.admin-status,.admin-report-layout,.automation-grid{grid-template-columns:1fr}.topbar{grid-template-columns:auto minmax(0,1fr) auto auto;gap:.35rem;height:56px;padding:0 .45rem}.topbar strong{grid-column:2;font-size:.9rem}.menu-button{grid-column:1;min-width:52px;padding:.35rem .5rem}.placed-count{display:none}.build-info{grid-column:3;justify-self:end}.beta-badge{text-overflow:ellipsis;max-width:64px;min-height:28px;padding:.1rem .36rem;overflow:hidden}.build-info-popover{width:min(300px,100vw - 16px);left:auto;right:0;transform:none}.build-info-popover:before{left:auto;right:16px}.brand-full{display:none}.brand-short{display:inline}.topbar-actions{grid-column:4;justify-self:end;gap:.22rem;width:auto;padding:0;overflow:visible}.topbar-actions>*{flex:none}.edit-actions{gap:.2rem}.edit-actions button{width:32px;min-width:32px;padding:0}.validation-actions button{justify-content:center;width:32px;min-width:32px;padding:0}.validation-actions button span,.project-menu-button span,.project-menu-chevron,.bom-export-button span,.more-menu-button span{display:none}.more-menu-button,.bom-export-button,.project-menu-button{justify-content:center;width:32px;min-width:32px;padding:0}.project-menu,.bom-export-menu,.topbar-more-menu{width:auto;max-height:min(70vh,520px);position:fixed;top:64px;left:8px;right:8px}.project-save-status{display:none}.viewer{padding-top:56px}.editor-scene{min-height:calc(100vh - 56px)}.component-drawer{overscroll-behavior:contain;width:calc(100vw - 16px);max-height:min(100vh - 72px,620px);top:64px;left:8px}.status-strip{flex-direction:column;align-items:flex-start;gap:.2rem}.status-strip span{white-space:normal}.component-context-menu{width:min(236px,100vw - 16px)}.validation-panel{width:auto;max-height:min(100vh - 128px,560px);top:64px;left:8px;right:8px}.layout-panel{width:auto;max-height:min(100vh - 128px,620px);top:64px;left:8px;right:8px}.layout-form-grid,.layout-preview-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-action-row,.layout-apply-actions{grid-template-columns:1fr}.layout-apply-actions button.primary{grid-column:auto}.layout-planner-endpoint>div{grid-template-columns:1fr}.selection-inspector{width:auto;max-height:30vh;bottom:118px;left:8px;right:8px}.placement-feedback{white-space:normal;border-radius:.5rem;bottom:7.3rem}.component-feedback-prompt{grid-template-columns:1fr;width:auto;bottom:118px;left:8px;right:8px}.component-feedback-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.component-feedback-actions button{min-width:0;padding:.35rem .25rem}.validation-export-actions{grid-template-columns:1fr}.issue-report-backdrop{align-items:end;padding:.5rem}.issue-report-dialog{max-height:calc(100vh - 1rem);overflow:auto}}
