:root{--bg:#f4f5f3;--surface:#fff;--ink:#1d2321;--muted:#707a75;--border:#e2e5e1;--orange:#e2622b;--steel:#3e6e8e;--ok:#3e8e63;--warn:#d9a441;--danger:#c1543e;--grid-line:#707a751f;--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-body:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;font-family:var(--font-body);color:var(--ink);background-color:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{background-color:var(--orange);color:var(--surface);cursor:pointer;border:1px solid #0000;border-radius:8px;padding:.75em 1.2em;font-family:inherit;font-size:1em;font-weight:600}button:disabled{cursor:not-allowed;opacity:.55}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}#root{min-height:100vh}.app-shell{background:var(--bg);min-height:100vh}.stats-bar{z-index:20;border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:188px repeat(4,minmax(118px,1fr)) minmax(112px,140px) minmax(112px,140px) minmax(190px,280px);min-height:72px;display:grid;position:sticky;top:0}.brand-block,.stat-block,.height-alert,.project-switcher{border-right:1px solid var(--border);align-items:center;display:flex}.brand-block{gap:10px;padding:0 18px}.brand-mark{border:1px solid var(--orange);width:38px;height:38px;color:var(--orange);font-family:var(--font-display);border-radius:10px;place-items:center;font-size:.78rem;font-weight:700;display:inline-grid}.brand-name,.stat-value,dd,h1,h2,.detail-value{font-family:var(--font-display)}.brand-name{color:var(--ink);font-weight:700}.stat-block{flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding:0 18px}.stat-block.is-ok .stat-value{color:var(--ok)}.stat-block.is-warn .stat-value{color:var(--warn)}.stat-block.is-danger .stat-value{color:var(--danger)}.stat-label,.step-label,dt,.category-label,.detail-field>span{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;font-size:.72rem;font-weight:600}.stat-value{color:var(--ink);font-size:1.18rem;font-weight:700;line-height:1.1}.project-switcher{gap:8px;min-width:0;padding:14px}.projects-button{border:1px solid var(--orange);background:color-mix(in srgb, var(--orange) 8%, var(--surface));min-height:38px;color:var(--orange);border-radius:10px;flex:none;padding:0 12px;font-size:.82rem;font-weight:700}.vehicle-pill{border:1px solid var(--border);min-width:0;height:38px;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:0 12px;font-size:.9rem;font-weight:600;display:flex;overflow:hidden}.projects-modal{z-index:40;background:#1d23212e;justify-items:end;padding:86px 22px 22px;display:grid;position:fixed;inset:0}.projects-panel{border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;width:min(620px,100%);max-height:calc(100vh - 110px);padding:18px;display:grid;box-shadow:0 18px 42px #1d23211f}.projects-panel-header,.projects-panel-footer{justify-content:space-between;align-items:center;gap:12px;display:flex}.projects-list{gap:10px;padding-right:2px;display:grid;overflow:auto}.project-row{border:1px solid var(--border);background:var(--bg);border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px;display:grid}.project-row.is-active{border-color:color-mix(in srgb, var(--orange) 65%, var(--border));background:color-mix(in srgb, var(--orange) 7%, var(--surface))}.project-row strong,.project-row span,.project-row small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.project-row strong{color:var(--ink);font-family:var(--font-display);font-size:1rem}.project-row span,.project-row small,.projects-empty{color:var(--muted);font-size:.82rem}.project-row-actions{gap:8px;display:flex}.danger-button{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:var(--surface);color:var(--danger)}.danger-button:hover{border-color:var(--danger)}.height-alert{justify-content:center;padding:0 14px}.height-alert span{border:1px solid var(--border);min-height:34px;color:var(--ok);border-radius:10px;align-items:center;padding:0 10px;font-size:.76rem;font-weight:700;display:inline-flex}.height-alert.is-danger span{border-color:color-mix(in srgb, var(--danger) 42%, var(--border));background:color-mix(in srgb, var(--danger) 9%, var(--surface));color:var(--danger)}.height-alert.is-warn span{border-color:color-mix(in srgb, var(--warn) 52%, var(--border));background:color-mix(in srgb, var(--warn) 12%, var(--surface));color:#7c5919}.workspace{grid-template-columns:76px minmax(0,1fr);min-height:calc(100vh - 72px);display:grid}.workspace.has-detail{grid-template-columns:76px minmax(0,1fr) 270px}.workspace.is-readonly{grid-template-columns:minmax(0,1fr)}.category-rail{z-index:15;border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:8px;padding:12px 8px;display:flex;position:relative;overflow:visible}.category-slot{position:relative}.category-button{width:60px;min-height:68px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:10px;justify-items:center;gap:5px;padding:7px 4px;display:grid}.category-button:hover,.category-button.is-active{border-color:var(--orange);background:color-mix(in srgb, var(--orange) 9%, var(--surface))}.category-icon{color:var(--category-color)}.category-label{overflow-wrap:anywhere;text-align:center;max-width:56px;font-size:.58rem;line-height:1.05}.workspace-canvas{background-color:var(--bg);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:24px 24px;place-items:center;min-width:0;padding:32px;display:grid;position:relative}.catalog-popover{z-index:30;border:1px solid var(--border);background:var(--surface);border-radius:12px;width:330px;padding:12px;position:absolute;top:0;left:calc(100% + 10px);box-shadow:0 18px 36px #1d232124}.catalog-title{color:var(--ink);font-family:var(--font-display);align-items:center;gap:8px;margin-bottom:10px;display:flex}.catalog-title strong{flex:1;min-width:0}.catalog-close{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;min-height:30px;color:var(--muted);border-radius:8px;place-items:center;padding:0;display:inline-grid}.catalog-close:hover{border-color:var(--orange);color:var(--orange)}.category-dot{background:var(--category-color);border-radius:999px;flex:none;width:10px;height:10px;display:inline-block}.catalog-list{gap:8px;display:grid}.catalog-item{border:1px solid var(--border);background:var(--bg);width:100%;color:var(--ink);text-align:left;border-radius:10px;gap:3px;padding:10px;display:grid}.catalog-item:hover{border-color:var(--orange)}.catalog-item span{font-weight:700}.catalog-item small{color:var(--muted);font-size:.78rem}.plan-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:min(1040px,100%);padding:24px;box-shadow:0 18px 42px #1d232114}.plan-header{border-bottom:1px solid var(--border);grid-template-columns:minmax(170px,.8fr) minmax(0,1.6fr);align-items:start;gap:18px;padding-bottom:18px;display:grid}.step-label{margin:0 0 8px}h1,h2{color:var(--ink);margin:0}h1{font-size:2.05rem;line-height:1}h2{font-size:1.15rem;line-height:1.1}.vehicle-controls{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.onboarding-screen{background-color:var(--bg);background-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);background-size:24px 24px;place-items:center;min-height:100vh;padding:32px;display:grid}.onboarding-card{border:1px solid var(--border);background:var(--surface);border-radius:12px;width:min(920px,100%);padding:28px;box-shadow:0 18px 42px #1d232114}.onboarding-progress{gap:8px;margin-bottom:22px;display:flex}.onboarding-progress span{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);font-family:var(--font-display);border-radius:8px;place-items:center;font-weight:700;display:inline-grid}.onboarding-progress span.is-active{border-color:var(--orange);color:var(--orange)}.onboarding-progress span.is-done{border-color:color-mix(in srgb, var(--ok) 45%, var(--border));color:var(--ok)}.onboarding-step{gap:18px;display:grid}.onboarding-copy{max-width:760px;color:var(--muted);margin:0}.onboarding-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.measurement-grid,.recap-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.number-field{gap:6px;display:grid}.number-field>span,.payload-summary span{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;font-size:.72rem;font-weight:600}.number-field div{border:1px solid var(--border);background:var(--bg);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.number-field input{background:0 0;border:0}.number-field em{color:var(--muted);padding-right:10px;font-style:normal;font-weight:700}.payload-summary{border:1px solid var(--border);background:var(--bg);border-radius:8px;gap:6px;min-height:72px;padding:9px 10px;display:grid}.payload-summary strong{color:var(--ink);font-family:var(--font-display);font-size:1.35rem}.validation-stack{gap:8px;display:grid}.form-error,.form-warning{border:1px solid;border-radius:8px;margin:0;padding:10px 12px;font-weight:600}.form-error{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 8%, var(--surface));color:var(--danger)}.form-warning{border-color:color-mix(in srgb, var(--warn) 55%, var(--border));background:color-mix(in srgb, var(--warn) 12%, var(--surface));color:#7c5919}.onboarding-actions,.editor-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.history-actions{gap:6px;display:inline-flex}.icon-button{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;min-height:38px;color:var(--ink);border-radius:8px;place-items:center;padding:0;display:inline-grid}.icon-button:hover{border-color:var(--orange);color:var(--orange)}.secondary-button{border-color:var(--border);background:var(--surface);color:var(--ink)}.secondary-button:hover{border-color:var(--orange);color:var(--orange)}.color-options{gap:10px;display:flex}.color-choice{border:1px solid var(--border);background:var(--project-color);border-radius:10px;width:46px;height:46px;min-height:46px;padding:0}.color-choice.is-active{border-color:var(--orange);outline:3px solid color-mix(in srgb, var(--orange) 18%, transparent)}.save-status{color:var(--muted);font-size:.78rem;font-weight:700}.save-status.is-error{color:var(--danger)}.view-switcher,.preview-angle-controls{flex-wrap:wrap;gap:8px;display:flex}.view-switcher{margin-top:18px}.view-switch-button{border:1px solid var(--border);background:var(--surface);min-height:38px;color:var(--ink);border-radius:8px;padding:0 12px;font-size:.85rem}.view-switch-button:hover,.view-switch-button.is-active{border-color:var(--orange);background:color-mix(in srgb, var(--orange) 8%, var(--surface));color:var(--orange)}select,input{border:1px solid var(--border);background:var(--surface);width:100%;min-height:38px;color:var(--ink);font:inherit;border-radius:8px;padding:0 10px}select:focus,input:focus{border-color:var(--orange);outline:3px solid color-mix(in srgb, var(--orange) 18%, transparent)}.plan-shell{border:1px solid var(--border);background:var(--bg);border-radius:12px;margin-top:20px;padding:16px}.profile-shell{border:1px solid var(--border);background:var(--bg);border-radius:12px;margin-top:16px;padding:16px}.preview3d-shell{margin-top:20px}.preview3d-header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.preview3d-viewport{border:1px solid var(--border);background:var(--bg);border-radius:12px;min-height:520px;overflow:hidden}.preview3d-canvas{width:100%;height:520px;display:block}.view-label{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;margin:0 0 10px;font-size:.72rem;font-weight:700}.vehicle-plan,.vehicle-profile{touch-action:none;width:100%;display:block}.vehicle-plan{height:min(45vh,420px);min-height:320px}.vehicle-profile{height:min(30vh,260px);min-height:210px}.vehicle-plan.is-dragging,.vehicle-profile.is-dragging{cursor:grabbing}.plan-grid-fill{fill:var(--surface)}.plan-grid-pattern{pointer-events:none}.vehicle-body{fill:#0000;stroke:var(--ink);stroke-width:42px;vector-effect:non-scaling-stroke}.profile-body{stroke-width:36px}.vehicle-cabin-line{stroke:var(--ink);stroke-width:24px;vector-effect:non-scaling-stroke}.vehicle-floor-line{stroke:var(--ink);stroke-width:18px;vector-effect:non-scaling-stroke}.placed-element{cursor:grab;opacity:.9;stroke:#0000;stroke-width:0;vector-effect:non-scaling-stroke}.placed-element.is-selected{opacity:1;stroke:var(--orange);stroke-width:2px}.placed-element.has-conflict{stroke:var(--warn);stroke-width:2px}.placed-element.has-height-issue{stroke:var(--danger);stroke-width:2px}.interior-wall{opacity:.84}.interior-wall.is-selected{opacity:1}.wall-opening-marker{fill:var(--surface);opacity:.92;stroke:var(--steel);stroke-dasharray:28 18;stroke-width:2px;vector-effect:non-scaling-stroke}.wall-profile-opening-outline{fill:none;cursor:grab;stroke:var(--steel);stroke-dasharray:28 18;stroke-width:2px;vector-effect:non-scaling-stroke}.wall-profile-opening-outline.is-selected{stroke:var(--orange)}.wall-profile-opening-outline.has-conflict{stroke:var(--warn)}.wall-profile-opening-outline.has-height-issue{stroke:var(--danger)}.wall-label{fill:var(--ink);opacity:.72;font-size:108px}.fixed-marker-layer{color:var(--muted)}.fixed-cabin-zone{fill:#707a751f}.fixed-cabin-divider{stroke:#1d232157;stroke-width:2px;vector-effect:non-scaling-stroke}.fixed-seat{fill:#707a752e;stroke:#707a7585;stroke-width:2px;vector-effect:non-scaling-stroke}.fixed-wheel-arch{fill:#707a7538;stroke:#707a7594;stroke-width:2px;vector-effect:non-scaling-stroke}.fixed-door-marker{stroke:var(--steel);stroke-linecap:round;stroke-width:5px;vector-effect:non-scaling-stroke}.fixed-door-secondary{stroke:var(--steel);stroke-dasharray:24 22;stroke-linecap:round;stroke-opacity:.82;stroke-width:3px;vector-effect:non-scaling-stroke}.fixed-door-profile{fill:#0000;stroke:var(--steel);stroke-dasharray:26 20;stroke-width:3px;vector-effect:non-scaling-stroke}.fixed-marker-label,.measure-label{fill:var(--muted);font-family:var(--font-display);letter-spacing:0;paint-order:stroke;stroke:var(--surface);stroke-width:8px;text-anchor:middle;-webkit-user-select:none;user-select:none;font-size:72px;font-weight:700}.measurement-layer{opacity:.74}.measure-tick{stroke:#707a7585;stroke-width:2px;vector-effect:non-scaling-stroke}.measure-label{font-size:58px}.measure-label-y{text-anchor:start}.profile-element{cursor:ns-resize}.elevation-guide{stroke:var(--muted);stroke-dasharray:26 22;stroke-opacity:.42;stroke-width:8px;vector-effect:non-scaling-stroke}.element-label{fill:var(--surface);font-family:var(--font-display);paint-order:stroke;stroke:#1d232142;stroke-width:8px;text-anchor:middle;dominant-baseline:middle;-webkit-user-select:none;user-select:none;font-size:96px;font-weight:700}.drag-tooltip{z-index:60;border:1px solid var(--border);background:var(--surface);color:var(--ink);font-family:var(--font-display);pointer-events:none;white-space:nowrap;border-radius:8px;padding:8px 10px;font-size:.82rem;font-weight:700;line-height:1;position:fixed;box-shadow:0 10px 26px #1d232121}.detail-panel{border-left:1px solid var(--border);background:var(--surface);padding:18px}.detail-header{border-bottom:1px solid var(--border);padding-bottom:16px}.detail-list{gap:12px;margin-top:16px;display:grid}.detail-field{gap:6px;min-width:0;display:grid}.detail-value,.detail-field input,.detail-field select{border:1px solid var(--border);background:var(--bg);min-height:40px;color:var(--ink);border-radius:8px;padding:9px 10px;font-weight:700}.detail-field input:disabled{color:var(--muted);cursor:not-allowed;opacity:.62}.detail-field select{font:inherit}.detail-checkbox{min-height:40px;color:var(--ink);align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:flex}.detail-value{align-items:center;gap:8px;display:flex}.detail-value.is-danger{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 8%, var(--surface));color:var(--danger)}.detail-value.is-warning{border-color:color-mix(in srgb, var(--warn) 55%, var(--border));background:color-mix(in srgb, var(--warn) 12%, var(--surface));color:#7c5919}.share-link{color:var(--muted);overflow-wrap:anywhere;grid-column:1/-1;margin:-8px 0 0;font-size:.82rem}.detail-actions{gap:10px;margin-top:18px;display:grid}.detail-actions button{justify-content:center;align-items:center;gap:8px;width:100%;display:inline-flex}.detail-actions .danger-button{border-color:color-mix(in srgb, var(--danger) 35%, var(--surface));background:var(--danger);color:var(--surface)}@media (width<=1200px){.stats-bar{grid-template-columns:188px repeat(2,minmax(128px,1fr))}.project-switcher{grid-column:1/-1}.vehicle-pill{justify-content:flex-start}.workspace.has-detail{grid-template-columns:76px minmax(0,1fr)}.workspace.is-readonly{grid-template-columns:minmax(0,1fr)}.detail-panel{border-top:1px solid var(--border);border-left:0;grid-column:2}.vehicle-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.measurement-grid,.recap-grid{grid-template-columns:1fr}}@media (width<=760px){.stats-bar{grid-template-columns:1fr 1fr}.brand-block,.stat-block,.height-alert,.project-switcher{min-height:68px}.project-switcher{grid-column:1/-1}.workspace,.workspace.has-detail{grid-template-columns:1fr}.category-rail{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;overflow:auto visible}.category-button{flex:none}.workspace-canvas{padding:16px}.catalog-popover{width:auto;position:fixed;top:156px;left:16px;right:16px}.plan-card{padding:18px}.plan-header,.vehicle-controls{grid-template-columns:1fr}.onboarding-screen{align-items:start;padding:16px}.onboarding-card{padding:18px}.onboarding-actions,.editor-actions{flex-direction:column;align-items:stretch}.onboarding-actions button,.editor-actions button{width:100%}.history-actions,.preview3d-header,.preview-angle-controls,.view-switcher{flex-direction:column;align-items:stretch}.history-actions{grid-template-columns:1fr 1fr;display:grid}.preview3d-viewport{min-height:420px}.preview3d-canvas{height:420px}.vehicle-plan{min-height:300px}.vehicle-profile{min-height:220px}.detail-panel{grid-column:1}.projects-modal{justify-items:stretch;padding:72px 12px 12px}.project-row,.project-row-actions{grid-template-columns:1fr}.project-row-actions{display:grid}}
