:root{color:#15275d;background:#f5f8ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#f5f8ff;min-width:1080px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}.app-frame{background:radial-gradient(circle at 60% 0,#fff 0,#f5f8ff 55%,#edf3ff 100%);min-height:100vh;padding:22px}.app-header{background:#fffffff0;border:1px solid #e2e8f5;border-radius:12px 12px 0 0;align-items:center;gap:28px;height:68px;padding:0 18px;display:flex;box-shadow:0 10px 30px #1b35690d}.brand{color:#3754ed;white-space:nowrap;align-items:center;gap:8px;font-size:17px;font-weight:800;display:flex}.brand b{color:#1a2a62}.brand-mark{color:#fff;background:#5046ef;border-radius:8px;place-items:center;width:29px;height:29px;font-size:19px;font-weight:900;display:grid}nav{align-self:stretch;gap:4px;display:flex}nav button{color:#68759a;background:0 0;border:0;border-bottom:2px solid #0000;padding:0 14px;font-size:12px}nav .nav-active{color:#4a46ee;border-bottom-color:#554dff;font-weight:700}.header-actions{align-items:center;gap:9px;margin-left:auto;display:flex}.layout-selector,.icon-action,.header-button{color:#35446e;background:#fff;border:1px solid #e3e8f4;border-radius:7px;align-items:center;gap:6px;height:31px;padding:0 10px;font-size:11px;display:flex}.icon-action{justify-content:center;width:31px;padding:0}.layout-selector span{color:#aab3cc}.saved-state{color:#3c986c;font-size:10px}.saved-state:before{content:"";background:#42bf7c;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.save-button{color:#fff;background:#5149ed;border:0;border-radius:7px;align-items:center;gap:6px;height:31px;padding:0 12px;font-size:11px;font-weight:700;display:flex;box-shadow:0 4px 10px #5149ed44}.editor-body{background:#fff;border:1px solid #e2e8f5;border-top:0;border-radius:0 0 12px 12px;grid-template-columns:178px 224px minmax(520px,1fr) 248px 180px;height:calc(100vh - 112px);min-height:660px;display:grid;overflow:hidden}.project-panel{background:#f9fbff;border-right:1px solid #e6ebf5;flex-direction:column;min-width:0;padding:14px 9px;display:flex}.project-top{border-bottom:1px solid #e8edf6;padding:3px 5px 15px}.workspace-label{color:#96a1bc;letter-spacing:.08em;font-size:8px;font-weight:800}.workspace-switch{color:#2c3e70;background:0 0;border:0;align-items:center;gap:4px;padding:6px 0 0;font-size:10px;font-weight:700;display:flex}.project-title{justify-content:space-between;align-items:center;padding:15px 5px 7px;display:flex}.project-title span{color:#96a1bc;font-size:8px;font-weight:800;display:block}.project-title b{color:#2b3c6c;font-size:11px}.project-title button{color:#5951ee;background:#fff;border:1px solid #dfe5f1;border-radius:5px;place-items:center;width:24px;height:24px;display:grid}.project-list{flex-direction:column;gap:3px;display:flex}.project-item{text-align:left;color:#6f7e9d;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:7px;padding:8px 6px;display:flex}.project-item span{flex:1;min-width:0}.project-item b{color:#405176;white-space:nowrap;text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.project-item small{color:#9aa5bd;margin-top:3px;font-size:8px;display:block}.project-item--active{color:#564cf0;background:#efefff;border-color:#dedcff}.project-item--active b{color:#3c35d4}.project-library{color:#7b88a5;border-top:1px solid #e8edf6;gap:7px;margin-top:auto;padding:14px 5px 3px;display:flex}.project-library b,.project-library small{display:block}.project-library b{font-size:10px}.project-library small{margin-top:3px;font-size:8px}.side-panel{background:#fff;border-right:1px solid #e6ebf5;min-width:0}.details-panel{border-left:1px solid #e6ebf5;border-right:0}.panel-heading{padding:20px 16px 13px}.panel-heading .eyebrow{color:#8190b4;text-transform:uppercase;letter-spacing:.08em;margin:0 0 4px;font-size:10px;font-weight:700}.panel-heading h2{color:#1c2b60;letter-spacing:-.02em;margin:0;font-size:15px}.panel-heading span{color:#8c99b8;margin-top:4px;font-size:10px;display:block}.search-field{color:#8190b4;border:1px solid #dde5f4;border-radius:7px;align-items:center;gap:7px;height:34px;margin:0 14px 12px;padding:0 9px;display:flex}.search-field input{color:#2d3d6c;border:0;outline:0;width:100%;min-width:0;font-size:11px}.filter-tabs{border-bottom:1px solid #edf0f7;gap:5px;padding:0 14px 13px;display:flex}.filter-tab{color:#687598;background:#f8faff;border:1px solid #e1e6f2;border-radius:5px;padding:5px 8px;font-size:10px}.filter-tab--active{color:#fff;background:#534bf0;border-color:#534bf0}.machine-list{height:calc(100% - 136px);padding:7px;overflow:auto}.venue-machine{text-align:left;color:#213261;background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:6px;width:100%;padding:9px 7px;display:grid}.venue-machine:hover,.venue-machine--selected{background:#f4f5ff;border-color:#dcdcff}.machine-code{color:#564cf0;font-size:11px;font-weight:800}.machine-info{min-width:0}.machine-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.machine-info small{color:#8c99b7;margin-top:3px;font-size:9px;display:block}.unplaced-dot{background:#b5c0d8;border-radius:50%;width:6px;height:6px;margin-right:2px}.placed-tag{color:#40926c;align-items:center;gap:2px;font-size:8px;display:flex}.workspace{background:#f8faff;flex-direction:column;min-width:0;display:flex;position:relative}.toolbar{z-index:2;background:#fff;border-bottom:1px solid #e9edf5;align-items:center;gap:6px;height:52px;padding:0 13px;display:flex}.tool-button{color:#637197;background:0 0;border:0;border-radius:6px;place-items:center;width:28px;height:28px;display:grid}.tool-button:hover{background:#eef1fa}.tool-button--active,.scale-button--active{color:#5149ed;background:#eeedff;border:1px solid #cfcaff}.tool-divider{background:#e4e8f2;width:1px;height:21px;margin:0 3px}.zoom-label{color:#596686;background:0 0;border:0;margin:0 2px;font-size:10px}.scale-button,.upload-button{color:#4c5a80;background:#fff;border:1px solid #e1e6f2;border-radius:6px;align-items:center;gap:5px;height:29px;margin-left:3px;padding:0 9px;font-size:10px;display:flex}.upload-button{color:#fff;background:#5149ed;border-color:#5149ed;margin-left:auto}.canvas-shell{background-color:#f5f8fe;background-image:linear-gradient(#e8edf8 1px,#0000 1px),linear-gradient(90deg,#e8edf8 1px,#0000 1px);background-size:22px 22px;flex:1;position:relative;overflow:hidden}.canvas-shell canvas{display:block}.hidden-upload{display:none}.stage--panning{cursor:grab}.canvas-empty-state{text-align:center;pointer-events:none;background:#fafcffb8;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.canvas-empty-state button{pointer-events:auto}.upload-orb{color:#554cf0;background:#f3f2ff;border:1px solid #d9ddff;border-radius:13px;place-items:center;width:46px;height:46px;display:grid}.canvas-empty-state h2{color:#243665;margin:13px 0 5px;font-size:16px}.canvas-empty-state p{color:#7583a4;margin:0;font-size:11px}.empty-upload{color:#fff;background:#5149ed;border:0;border-radius:7px;align-items:center;gap:6px;margin-top:14px;padding:8px 12px;font-size:11px;font-weight:700;display:flex}.calibration-hint,.scale-readout,.canvas-feedback{color:#4b44da;background:#fff;border:1px solid #dedcff;border-radius:7px;padding:8px 11px;font-size:10px;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #25376f15}.scale-readout{color:#3c906a;border-color:#d8eee3;left:auto;right:12px;transform:none}.canvas-feedback{color:#33446f;border-color:#dfe5f2;top:auto;bottom:14px}.scale-dialog{background:#fff;border:1px solid #dce3f2;border-radius:10px;width:260px;padding:17px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 16px 42px #263a7450}.scale-dialog h3{margin:0;font-size:14px}.scale-dialog p{color:#7c89a6;margin:6px 0 13px;font-size:10px}.scale-dialog label{border:1px solid #dce3f2;border-radius:6px;align-items:center;height:35px;display:flex;overflow:hidden}.scale-dialog input{border:0;outline:0;width:100%;min-width:0;padding:0 9px;font-size:12px}.scale-dialog label span{color:#7f8daa;border-left:1px solid #e6ebf4;padding:0 9px;font-size:10px}.scale-dialog>div{justify-content:flex-end;gap:7px;margin-top:14px;display:flex}.scale-dialog>div button{color:#657395;background:0 0;border:0;border-radius:6px;height:28px;padding:0 8px;font-size:10px}.scale-dialog>div .primary-action{color:#fff;background:#5149ed}.status-bar{color:#7e8ba8;background:#fff;border-top:1px solid #e6ebf5;align-items:center;gap:8px;height:32px;padding:0 14px;font-size:9px;display:flex}.status-version{color:#a0aac1;margin-left:auto}.right-tabs{border-bottom:1px solid #e9edf5;gap:5px;height:52px;padding:10px;display:flex}.right-tab{color:#7180a1;background:#f4f6fb;border:0;border-radius:6px;flex:1;font-size:10px;font-weight:700}.right-tab--active{color:#fff;background:#5149ed;box-shadow:0 3px 8px #5149ed33}.details-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;height:calc(100% - 52px);padding:20px;display:flex}.empty-icon{color:#554cf0;background:#f1f3ff;border-radius:11px;place-items:center;width:39px;height:39px;display:grid}.details-empty h2{margin:12px 0 5px;font-size:13px}.details-empty p{color:#7c89a6;margin:0;font-size:10px;line-height:1.5}.details-empty span,.phase-note{color:#9ba6bf;margin-top:12px;font-size:9px}.detail-drawer{padding:14px;position:relative}.close-drawer{color:#7b89a7;background:0 0;border:0;position:absolute;top:11px;right:11px}.detail-code{color:#554cf0;margin:2px 0 9px;font-size:11px;font-weight:800}.machine-card{background:#fcfdff;border:1px solid #dfe4f3;border-radius:8px;gap:10px;padding:8px;display:flex}.machine-card img{object-fit:cover;object-position:center;border-radius:5px;width:54px;height:66px}.machine-card div{flex-direction:column;justify-content:center;gap:3px;display:flex}.machine-card b{color:#534bf0;font-size:10px}.machine-card strong{font-size:11px}.machine-card span{color:#8591ae;font-size:9px}.detail-drawer dl{margin:15px 0}.detail-drawer dl div{border-bottom:1px solid #edf0f6;justify-content:space-between;padding:8px 0;display:flex}.detail-drawer dt{color:#8894af;font-size:10px}.detail-drawer dd{color:#33446f;margin:0;font-size:10px;font-weight:700}.status-pill{color:#7e8da9;background:#eef1f7;border-radius:9px;padding:3px 6px}.drawer-actions{gap:7px;display:flex}.drawer-actions button{border-radius:6px;justify-content:center;align-items:center;gap:4px;height:30px;font-size:10px;font-weight:700;display:flex}.secondary-action{color:#506080;background:#fff;border:1px solid #dfe5f1;flex:1}.primary-action{color:#fff;background:#5149ed;border:0;flex:1}.phase-note{line-height:1.4}.mode-rail{background:#f8faff;border-left:1px solid #e7ecf6;flex-direction:column;gap:14px;padding:14px;display:flex}.mode-card,.mode-explainer{background:#fff;border:1px solid #d8e0f5;border-radius:9px;padding:12px}.mode-card{justify-content:space-between;align-items:center;display:flex}.mode-card b{font-size:11px;display:block}.mode-card span{color:#8390ad;margin-top:3px;font-size:9px;display:block}.switch{background:#c6cfdf;border:0;border-radius:999px;width:35px;height:20px;padding:2px}.switch i{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;display:block}.switch--on{background:#554cf0}.switch--on i{transform:translate(15px)}.mode-explainer{color:#627094;margin-top:6px}.mode-explainer svg{color:#554cf0}.mode-explainer h3{color:#253666;margin:8px 0 5px;font-size:11px}.mode-explainer p{margin:0;font-size:10px;line-height:1.55}.mode-explainer span{color:#554cf0;margin-top:9px;font-size:9px;display:block}.rail-foot{color:#7a87a5;align-items:center;gap:5px;margin-top:auto;font-size:9px;display:flex}@media (max-width:1450px){.editor-body{grid-template-columns:178px 220px minmax(520px,1fr) 230px}.mode-rail{display:none}.app-frame{padding:12px}}@media (max-width:900px){body{min-width:320px}.app-frame{padding:0}.app-header{border-radius:0}.editor-body{height:calc(100vh - 68px);min-height:0;display:block}.library-panel,.details-panel,.project-panel{display:none}.workspace{height:100%}.header-actions .layout-selector,.header-actions .header-button,.header-actions .saved-state,nav{display:none}.app-header{gap:8px}.header-actions{gap:5px}}.map-ruler{color:#415176;pointer-events:none;height:23px;font-size:9px;position:absolute;bottom:18px;left:20px}.map-ruler div{border-bottom:2px solid #415176;border-left:2px solid #415176;border-right:2px solid #415176;height:7px}.map-ruler span{position:absolute;top:10px;left:-2px}.map-ruler b{white-space:nowrap;font-size:9px;position:absolute;top:10px;transform:translate(-50%)}.machine-visual-panel{flex-direction:column;height:calc(100% - 52px);min-height:0;display:flex}.visual-heading{border-bottom:1px solid #edf0f6;justify-content:space-between;align-items:center;padding:12px;display:flex}.visual-heading b,.visual-heading small{display:block}.visual-heading b{font-size:11px}.visual-heading small{color:#8b97b3;margin-top:3px;font-size:9px}.grid-choice{border:1px solid #e1e6f2;border-radius:6px;gap:2px;padding:2px;display:flex}.grid-choice button{color:#7d89a4;background:0 0;border:0;border-radius:4px;place-items:center;width:22px;height:22px;display:grid}.grid-choice button.active{color:#fff;background:#5149ed}.visual-grid{align-content:start;gap:8px;padding:10px;display:grid;overflow-y:auto}.visual-grid--1{grid-template-columns:1fr}.visual-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.visual-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.visual-card{text-align:left;color:#33446f;will-change:transform;background:#fff;border:1px solid #e0e5f1;border-radius:7px;min-width:0;padding:5px;transition:transform .15s ease-out,box-shadow .15s ease-out,border-color .15s ease-out}.visual-card--hovered{z-index:2;background:#f8f7ff;border-color:#716af0;position:relative;transform:scale(1.04);box-shadow:0 5px 14px #3d499526}.visual-card--selected{background:#f6f6ff;border-color:#5951ef;box-shadow:0 0 0 2px #5149ed26}.visual-card img{aspect-ratio:1;object-fit:cover;background:#f2f4f9;border-radius:4px;width:100%}.visual-card span{padding:5px 1px 1px;display:block}.visual-card b,.visual-card small,.visual-card em{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.visual-card b{color:#5149ed;font-size:9px}.visual-card small{color:#394a75;margin-top:2px;font-size:9px}.visual-card em{color:#8c98b4;margin-top:2px;font-size:8px;font-style:normal}.workspace-row{justify-content:space-between;align-items:center;display:flex}.collapse-workspace{color:#5966a0;background:#fff;border:1px solid #e2e7f2;border-radius:6px;place-items:center;width:25px;height:25px;display:grid}.collapse-workspace:hover{color:#5149ed;border-color:#cbc8ff}.project-panel--collapsed{width:52px;padding:10px 7px}.project-panel--collapsed .workspace-label,.project-panel--collapsed .workspace-switch span,.project-panel--collapsed .workspace-switch svg,.project-panel--collapsed .project-title div,.project-panel--collapsed .project-title button,.project-panel--collapsed .project-item span,.project-panel--collapsed .project-item svg+span,.project-panel--collapsed .project-item>svg~svg,.project-panel--collapsed .transfer-section,.project-panel--collapsed .project-library{display:none}.project-panel--collapsed .project-top{padding:0 5px 12px}.project-panel--collapsed .workspace-row{justify-content:center}.project-panel--collapsed .project-list{gap:7px}.project-panel--collapsed .project-item{justify-content:center;width:36px;height:36px;padding:0}.project-panel--collapsed .project-item svg{width:17px;height:17px}.project-panel--collapsed .project-title{padding:0}.project-panel--collapsed .collapse-workspace{transform:rotate(180deg)}.transfer-section{border-top:1px solid #e4e9f4;margin-top:13px;padding:10px 3px 0}.transfer-section .project-title{padding:0 2px 8px}.transfer-section .project-title b{letter-spacing:.01em;font-size:10px}.transfer-section .project-title span{letter-spacing:.09em;font-size:8px}.transfer-item{border:1px solid #0000;border-radius:7px;margin:2px 0;padding:7px 6px}.transfer-item:hover{background:#f2f4ff;border-color:#e0dfff}.transfer-item b{font-size:10px;font-weight:700}.transfer-item small{color:#8996b2;font-size:8px}.buffer-panel{color:#53617e;background:#fff;border:1px solid #dfe3f2;border-radius:8px;margin:7px 2px 0;padding:9px;font-size:9px}.buffer-panel>b{white-space:nowrap;text-overflow:ellipsis;color:#33446f;max-width:92px;font-size:10px;display:inline-block;overflow:hidden}.buffer-panel>button{color:#68769b;background:0 0;border:0;padding:3px}.buffer-panel label{border-top:1px solid #eff1f6;padding:6px 0;font-size:9px;display:block}.buffer-panel label small{color:#8d99b4;margin-top:2px;margin-left:17px;font-size:8px;display:block}.buffer-panel>button:last-child,.buffer-panel>button:nth-last-child(2){color:#5149ed;margin-right:8px;padding:5px 0;font-size:9px}.machine-main{width:100%;color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:14px 34px minmax(0,1fr) auto;align-items:center;gap:5px;padding:0;display:grid}.inline-dimensions{gap:4px;padding:6px 0 0 19px;display:flex}.inline-dimensions label,.dimension-editor label{color:#7886a5;font-size:9px}.inline-dimensions input,.dimension-editor input{color:#33446f;border:1px solid #dce3f1;border-radius:4px;width:47px;padding:3px;font-size:9px}.dimension-editor{border-top:1px solid #edf0f6;margin-top:13px;padding-top:11px}.dimension-editor>b{margin-bottom:7px;font-size:10px;display:block}.dimension-editor label{justify-content:space-between;align-items:center;margin-top:5px;display:flex}.dimension-editor label input{width:65px;margin-left:auto}.dimension-editor label span{width:22px;margin-left:4px}.dimension-editor small{color:#7c89a6;margin:8px 0;font-size:9px;display:block}.dimension-editor button{color:#5149ed;background:0 0;border:0;padding:0;font-size:9px;font-weight:700}.machine-image-fallback{color:#8290ad;text-align:center;background:#f0f3fa;border-radius:5px;flex:none;place-items:center;width:54px;height:66px;font-size:9px;display:grid}.machine-card .machine-image-fallback{color:#8290ad}.project-panel{position:relative}.workspace-resizer{z-index:20;cursor:col-resize;width:10px;height:100%;position:absolute;top:0;right:-5px}.workspace-resizer:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:4px}.workspace-resizer:hover:after,.workspace-resizer:active:after{background:#5149ed}.editor-body:has(.project-panel--collapsed){grid-template-columns:52px 224px minmax(520px,1fr) 248px 180px}.workspace{container:workspace/inline-size}.toolbar{min-width:0;overflow:hidden}.toolbar>.tool-button,.toolbar>.tool-divider,.toolbar>.zoom-label,.toolbar>.scale-button,.toolbar>.upload-button{flex-shrink:0}@container workspace (max-width:900px){.toolbar{gap:3px;padding:0 7px}.toolbar .scale-button,.toolbar .upload-button{justify-content:center;gap:0;width:32px;padding:0;font-size:0}.toolbar .scale-button svg,.toolbar .upload-button svg{width:15px;height:15px}.toolbar .upload-button{margin-left:auto}.toolbar .zoom-label{margin:0;font-size:9px}.toolbar .tool-divider{margin:0 1px}}@media (max-width:1450px) and (min-width:901px){.editor-body{grid-template-columns:var(--workspace-width,218px) minmax(180px,220px) minmax(360px,1fr) minmax(210px,248px);overflow:hidden}.editor-body.editor-body--panels-hidden{grid-template-columns:minmax(620px,1fr)!important}.editor-body:not(.editor-body--panels-hidden):has(.project-panel--collapsed){grid-template-columns:52px minmax(180px,220px) minmax(360px,1fr) minmax(210px,248px)!important}.editor-body:not(.editor-body--panels-hidden):has(.project-panel--collapsed)>.mode-rail{display:none}}.visual-empty{text-align:center;color:#7c89a6;flex:1;place-items:center;min-height:0;padding:24px;font-size:11px;line-height:1.5;display:grid}.machine-code{order:initial;color:#7d89a8!important;font-size:9px!important;font-weight:700!important}.machine-info{order:initial}.machine-info strong{color:#253866;font-size:11px}.machine-code-editor{padding:7px 0 0 19px;display:flex}.machine-code-editor label{color:#7886a5;align-items:center;gap:5px;font-size:9px;display:flex}.machine-code-editor input{color:#33446f;border:1px solid #dce3f1;border-radius:4px;width:86px;padding:4px 6px;font-size:10px}.selectable-machine{min-width:0}.venue-machine{grid-template-columns:minmax(0,1fr);gap:5px;display:grid;position:relative}.venue-machine>.machine-main{grid-column:1/-1;width:100%;min-width:0}.venue-machine>.machine-code-editor,.venue-machine>.inline-dimensions,.venue-machine>.catalog-edit-button,.venue-machine>.catalog-appearance-button{grid-column:1/-1;margin-left:19px}.venue-machine>.catalog-edit-button,.venue-machine>.catalog-appearance-button{text-align:left;margin-top:2px}.venue-machine>.row-overflow-button{float:none;z-index:2;position:absolute;top:7px;right:5px}.venue-machine>.machine-details-toggle{color:#5149ed;text-align:left;background:#fff;border:1px solid #dce3f1;border-radius:6px;grid-column:1/-1;margin-left:19px;padding:6px 9px;font-size:10px}.venue-machine>.machine-details-toggle:hover{background:#f5f4ff;border-color:#c9c5ff}.editor-body{grid-template-columns:var(--workspace-width,218px) var(--library-width,280px) minmax(360px,1fr) minmax(210px,248px) 180px}.library-panel{position:relative}.library-resizer{z-index:20;cursor:col-resize;width:10px;height:100%;position:absolute;top:0;right:-5px}.library-resizer:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:4px}.library-resizer:hover:after,.library-resizer:active:after{background:#5149ed}.selectable-machine>.machine-type-editor{display:none}@media (max-width:1450px) and (min-width:901px){.editor-body:not(.editor-body--panels-hidden){grid-template-columns:var(--workspace-width,218px) var(--library-width,280px) minmax(360px,1fr) minmax(210px,248px)!important}.editor-body:not(.editor-body--panels-hidden):has(.project-panel--collapsed){grid-template-columns:52px var(--library-width,280px) minmax(360px,1fr) minmax(210px,248px)!important}}.visual-card>span{flex-direction:column;display:flex}.visual-card>span>small{color:#33446f;order:1;margin-top:2px;font-size:9px}.visual-card>span>b{color:#7d89a8;order:2;margin-top:2px;font-size:8px}.visual-card>span>em{order:3}.project-panel--collapsed .project-menu{display:none}
.side-panel{min-height:0}.library-panel{flex-direction:column;display:flex}.machine-list{flex:1;height:auto;min-height:0}.editor-body{position:relative}.connection-overlay,.full-connection-overlay{pointer-events:none;z-index:8;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.connection-line{vector-effect:non-scaling-stroke}.connection-line--muted{stroke:#6171ac;stroke-width:1px;opacity:.14}.connection-line--hovered{stroke:#716af0;stroke-width:1.6px;opacity:.58;filter:drop-shadow(0 1px 2px #5149ed2e)}.connection-line--selected{stroke:#5149ed;stroke-width:2px;opacity:.96;filter:drop-shadow(0 1px 2px #5149ed40)}.show-all-control{color:#7582a1;place-items:center;gap:2px;width:39px;font-size:8px;line-height:1;display:grid}.show-all-control input{accent-color:#5149ed;margin:0}.full-store{--perimeter-gap:clamp(20px,2.2vw,40px);grid-template-columns:150px minmax(420px,1fr) 150px;grid-template-rows:52px calc(52px + var(--perimeter-gap)) minmax(330px,1fr) calc(52px + var(--perimeter-gap));column-gap:var(--perimeter-gap);background:#f5f8ff;border:1px solid #e2e8f5;border-top:0;grid-template-areas:"head head head"".top.""left plan right"".bottom.";row-gap:8px;height:calc(100vh - 112px);min-height:660px;padding:10px;display:grid;position:relative;overflow:hidden}.full-store-head{z-index:10;grid-area:head;justify-content:space-between;align-items:center;padding:0 10px;display:flex;position:relative}.full-store-head b,.full-store-head span{display:block}.full-store-head b{font-size:14px}.full-store-head span{color:#8490ac;margin-top:3px;font-size:9px}.full-store-head button{color:#4c5a80;background:#fff;border:1px solid #dbe1ef;border-radius:7px;align-items:center;gap:5px;padding:7px 10px;font-size:10px;display:flex}.full-cards{z-index:4;place-content:center;gap:4px;display:flex;position:relative}.full-cards--top{flex-wrap:wrap;grid-area:top}.full-cards--bottom{flex-wrap:wrap;grid-area:bottom}.full-cards--left{grid-area:left;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;display:grid;overflow:hidden}.full-cards--right{grid-area:right;grid-template-columns:repeat(3,minmax(0,1fr));align-content:center;display:grid;overflow:hidden}.full-cards--left .full-card,.full-cards--right .full-card{text-align:center;width:100%;height:46px;padding:2px;display:block}.full-cards--left .full-card img,.full-cards--right .full-card img,.full-cards--left .full-card>svg,.full-cards--right .full-card>svg{width:20px;height:25px;margin:auto;display:block}.full-cards--left .full-card small,.full-cards--right .full-card small{display:none}.full-card{color:#31416e;text-align:left;background:#fff;border:1px solid #dfe4f1;border-radius:5px;align-items:center;gap:3px;width:62px;height:50px;padding:3px;display:flex;overflow:hidden;box-shadow:0 2px 6px #2738680f}.full-card img,.full-card>svg{object-fit:cover;background:#f1f3f8;border-radius:3px;flex:0 0 25px;width:25px;height:42px}.full-card span{min-width:0}.full-card b,.full-card small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.full-card b{color:#5149ed;font-size:7px}.full-card small{margin-top:2px;font-size:6px}.full-card--selected{background:#f1f0ff;border-color:#5149ed;box-shadow:0 0 0 2px #5149ed2e}.full-plan{z-index:3;background:#fff;border:1px solid #d9e0ee;grid-area:plan;place-self:center;width:auto;max-width:100%;height:100%;max-height:100%;position:relative;overflow:hidden;box-shadow:0 9px 30px #1d30601f}.full-plan>img{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.full-plan-empty{color:#8c98b3;place-items:center;height:100%;font-size:11px;display:grid}.full-footprint{color:#263866;z-index:5;background:#f7f9ffd6;border:1px solid #66779f;border-radius:2px;min-width:5px;min-height:5px;padding:0;font-size:clamp(4px,.48vw,8px);font-weight:800;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.full-footprint--selected{z-index:6;background:#ecebff;border:2px solid #5149ed}.full-card--hovered{z-index:7;background:#f8f7ff;border-color:#716af0;position:relative;transform:scale(1.04);box-shadow:0 5px 13px #3d499526}.full-card{transition:transform .26s cubic-bezier(.22,.61,.36,1),box-shadow .15s ease-out,border-color .15s ease-out}.full-footprint--hovered{color:#17265b;z-index:6;background:#f0efff;border:2px solid #716af0}@media (max-width:1450px){.full-store{grid-template-columns:130px minmax(380px,1fr) 130px;height:calc(100vh - 92px)}.full-card{width:58px}}.editor-body--panels-hidden{grid-template-columns:minmax(620px,1fr)!important}.editor-body--panels-hidden>.project-panel,.editor-body--panels-hidden>.library-panel,.editor-body--panels-hidden>.details-panel,.editor-body--panels-hidden>.mode-rail,.desktop-only-message{display:none}button:disabled{cursor:not-allowed;opacity:.48;box-shadow:none}.layout-actions{border-top:1px solid #edf0f6;gap:6px;margin-top:12px;padding-top:10px;display:grid}.layout-actions small{color:#7c89a6;font-size:9px;line-height:1.45}.layout-actions button{color:#4e5d82;background:#fff;border:1px solid #dfe4f1;border-radius:6px;min-height:28px;font-size:9px;font-weight:700}.layout-actions button:hover{color:#5149ed;background:#f7f6ff;border-color:#c9c5ff}.layout-actions button.danger{color:#c14f60;border-color:#f0d9dd}.inline-dimensions{flex-wrap:wrap;row-gap:5px}.inline-dimensions label{white-space:nowrap;align-items:center;gap:3px;display:flex}.inline-dimensions input{width:44px}.placed-tag{white-space:nowrap}.machine-info small{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@media (max-width:899px){.app-header,.editor-body,.full-store{display:none!important}.desktop-only-message{text-align:center;background:#fff;border:1px solid #e1e7f3;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:calc(100vh - 24px);display:flex}.desktop-only-message b{font-size:18px}.desktop-only-message span{color:#7886a5;font-size:12px}.app-frame{padding:12px}}.layout-context{color:#35446e;background:#f8faff;border:1px solid #e3e8f4;border-radius:7px;align-items:center;gap:6px;height:31px;padding:0 10px;font-size:11px;display:flex}.layout-context span{color:#aab3cc}.saved-state--failed{color:#c24e60}.saved-state--failed:before{background:#d85f70}.venue-dialog{z-index:30;background:#fff;border:1px solid #dce3f2;border-radius:10px;width:280px;padding:17px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 44px #263a7460}.venue-dialog h3{margin:0;font-size:14px}.venue-dialog p{color:#7c89a6;margin:6px 0 13px;font-size:10px}.venue-dialog input,.venue-dialog select{box-sizing:border-box;color:#33446f;background:#fff;border:1px solid #dce3f2;border-radius:6px;outline:0;width:100%;height:34px;padding:0 9px;font-size:11px}.venue-dialog>div{justify-content:flex-end;gap:7px;margin-top:14px;display:flex}.venue-dialog button{color:#657395;background:0 0;border:0;border-radius:6px;height:28px;padding:0 9px;font-size:10px}.venue-dialog .primary-action{color:#fff;background:#5149ed}.panel-heading{position:relative}.panel-heading .icon-button{color:#5149ed;background:#fff;border:1px solid #dfe4f1;border-radius:5px;place-items:center;width:25px;height:25px;display:grid;position:absolute;bottom:0;right:0}.panel-heading .icon-button:hover{background:#f4f3ff;border-color:#c9c5ff}.machine-filters{gap:8px;padding:9px 0;display:grid}.machine-filters>label{color:#7c89a6;justify-content:space-between;align-items:center;gap:8px;font-size:9px;font-weight:700;display:flex}.machine-filters select{color:#42517a;background:#fff;border:1px solid #dce3f1;border-radius:6px;min-width:122px;height:28px;padding:0 6px;font-size:9px}.machine-type-editor{color:#7785a3;align-items:center;gap:5px;padding:5px 0 0 20px;font-size:9px;display:flex}.machine-type-editor input{color:#405078;border:1px solid #dce3f1;border-radius:5px;width:112px;min-width:0;height:24px;padding:0 6px;font-size:9px}.full-footprint[draggable=true]{cursor:grab}.full-footprint[draggable=true]:active{cursor:grabbing}.existing-model-dialog{z-index:31;width:360px}.venue-dialog .existing-model-list{justify-content:stretch;gap:7px;max-height:230px;margin-top:10px;display:grid;overflow:auto}.venue-dialog .existing-model-card{text-align:left;color:#405078;background:#fff;border:1px solid #dce3f2;justify-content:flex-start;align-items:center;gap:9px;width:100%;height:auto;min-height:54px;padding:6px 8px;display:flex}.venue-dialog .existing-model-card:hover,.venue-dialog .existing-model-card--selected{background:#f5f4ff;border-color:#8f89ff}.existing-model-card img{object-fit:contain;background:#f7f9fd;border-radius:4px;width:38px;height:38px}.existing-model-card span{gap:3px;min-width:0;display:grid}.existing-model-card strong{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.existing-model-card small{color:#7785a3;font-size:9px;line-height:1.25}.existing-model-dialog>div:last-child{justify-content:space-between}.existing-model-dialog>div:last-child button{padding:0 7px}.venue-dialog .catalog-picker-preview{background:#fafbff;border:1px solid #e3e8f4;border-radius:6px;justify-content:flex-start;align-items:center;gap:8px;margin-top:9px;padding:6px 7px;display:flex}.catalog-picker-preview img{object-fit:contain;width:34px;height:34px}.catalog-picker-preview span{gap:2px;min-width:0;display:grid}.catalog-picker-preview strong{font-size:10px}.catalog-picker-preview small{color:#7785a3;font-size:9px}.library-empty{color:#7c89a6;text-align:center;padding:22px 14px;font-size:10px;line-height:1.5}.project-row{border-radius:7px;align-items:center;display:flex}.project-row--active{background:#f0efff}.project-row .project-item{flex:1;min-width:0}.project-menu{color:#7583a4;background:0 0;border:0;border-radius:5px;width:25px;height:25px;font-size:17px;line-height:1}.project-menu:hover{color:#5149ed;background:#e5e3ff}.catalog-image-fallback{color:#7d89a5;background:#fafbff;border:1px dashed #cbd4e8;border-radius:6px;place-items:center;height:72px;font-size:10px;display:grid}.visual-image-fallback{color:#8390aa;text-align:center;background:#eef1f8;border-radius:5px;flex:none;place-items:center;width:36px;height:42px;font-size:8px;display:grid}.drop-target--active{outline-offset:-2px;outline:2px solid #5149ed;box-shadow:0 0 0 4px #5149ed24;background:#f1f0ff!important}.recently-transferred-tag{color:#5149ed;white-space:nowrap;background:#efeeff;border-radius:10px;padding:3px 5px;font-size:8px}.catalog-dialog{overscroll-behavior:contain;width:min(420px,100vw - 40px);max-height:calc(100vh - 40px);overflow-y:auto}.catalog-dialog input[type=file]{background:#fafbff;height:auto;padding:7px;font-size:10px}.catalog-dialog>img.catalog-image-preview{object-fit:contain;background:#f7f9fd;border:1px solid #e1e6f2;border-radius:7px;width:100%;height:220px;max-height:32vh;margin-top:10px;padding:7px;display:block}.catalog-dialog .catalog-image-fallback{height:100px;margin-top:10px}.catalog-dialog>p{line-height:1.45}.catalog-dialog>div:last-child{flex-wrap:wrap}.catalog-dialog>div:last-child button{white-space:nowrap}.machine-drop-target{border:1px dashed #0000;border-radius:10px;min-height:18px}.machine-drop-target--active{background:#eeedff;border-color:#5149ed}.machine-drop-guidance{color:#5149ed;padding:10px;font-weight:700}.machine-drop-guidance small{font-weight:500;display:block}.machine-group-heading{color:#7b86a8;text-transform:uppercase;letter-spacing:.08em;margin:14px 8px 6px;font-size:11px}.footprint-context-menu{z-index:1000;background:#fff;border:1px solid #d7ddf1;border-radius:10px;flex-direction:column;gap:4px;width:230px;padding:10px;display:flex;position:fixed;box-shadow:0 12px 30px #1d285522}.footprint-context-menu strong{color:#253665;padding:3px 6px;font-size:12px}.footprint-context-menu button{text-align:left;color:#253665;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px}.footprint-context-menu button:hover{color:#5149ed;background:#eeedff}.footprint-context-menu span{color:#7b86a8;padding:7px 6px;font-size:11px;font-weight:700}.transfer-item.drop-target--active{background:#eeedff;outline:2px solid #5149ed;box-shadow:0 0 0 4px #5149ed22}.machine-drop-target--invalid{color:#b8324b;background:#fff0f2;border-color:#d94b62}.drop-target--recommended{background:#effcf5;outline:2px solid #32b579;box-shadow:0 0 0 4px #32b57933}.catalog-edit-button{font:inherit;color:#5149ed;background:#f7f8fd;border:1px solid #d7ddf1;border-radius:6px;padding:5px 8px;font-size:11px}.catalog-appearance-button{margin-left:4px}.appearance-preview{border:2px solid;border-radius:8px;flex-direction:column;gap:4px;padding:14px;font-size:13px;display:flex}.appearance-preview small{font-size:11px}.auth-screen{background:#f5f7fd;place-items:center;min-height:100vh;display:grid}.auth-card{background:#fff;border:1px solid #dbe2f4;border-radius:16px;flex-direction:column;gap:14px;width:min(380px,100vw - 40px);padding:32px;display:flex;box-shadow:0 20px 50px #22305d18}.auth-card h1{color:#1e2b58;margin:0}.auth-card p{color:#7380a3;margin:0}.auth-card label{color:#42517b;flex-direction:column;gap:6px;font-size:13px;display:flex}.auth-card input{border:1px solid #d5ddef;border-radius:8px;padding:10px}.auth-error{color:#b8324b}.destructive-action{color:#fff!important;background:#c94d61!important;border-color:#c94d61!important}.destructive-action:hover{background:#ae3d51!important}.destructive-dialog{width:min(380px,100vw - 32px)}.destructive-dialog ul{color:#4a5a7f;margin:8px 0 12px;padding-left:20px;font-size:11px;line-height:1.7}.destructive-dialog label{color:#4a5a7f;align-items:flex-start;gap:7px;font-size:10px;line-height:1.4;display:flex}.destructive-dialog label input{width:auto;margin-top:2px}.destructive-dialog>small{color:#8994ad;margin-top:10px;font-size:9px;line-height:1.35;display:block}.row-overflow-button{float:right;color:#7d89a5;cursor:pointer;background:0 0;border:0;border-radius:5px;width:26px;height:24px;font-size:16px;line-height:1}.row-overflow-button:hover{color:#5149ed;background:#eeedff}.machine-delete-actions{color:#7180a3;background:#fafbff;border-top:1px solid #e7ebf5;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:10px;display:flex}.machine-delete-actions .destructive-action{border-radius:6px;height:26px;padding:0 9px;font-size:10px}.footprint-delete-trigger{z-index:1001;border-radius:6px;height:30px;padding:0 10px;font-size:10px;position:fixed;box-shadow:0 7px 20px #1d285522}

