:root{font-family:Segoe UI,Arial,sans-serif;color:#f2f2f2;background:#211a2b;font-synthesis:none;--ink: #f2f2f2;--muted: #aaa0b7;--panel: #342b41;--panel-2: #3e334d;--line: rgba(242, 242, 242, .12);--acid: #b99aff;--orange: #ff8a5c}*{box-sizing:border-box}body{margin:0;min-width:1024px;min-height:100vh;overflow:hidden}button,input,select,textarea{font:inherit}button{color:inherit}.shell{height:100vh;display:grid;grid-template-rows:64px 1fr 28px;background:#211a2b}.topbar{display:flex;align-items:center;gap:22px;padding:0 22px;border-bottom:1px solid var(--line);background:#282133}.brand{display:flex;align-items:center;gap:10px;font-family:Segoe UI,Arial,sans-serif}.brandmark{width:32px;height:32px;object-fit:contain}.brand-copy{display:flex;flex-direction:column;gap:2px;line-height:1}.brand-name{font-size:16px;font-weight:800;letter-spacing:-.035em}.brand-subtitle{color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.project-name{font-size:13px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px;flex:1}.top-actions{display:flex;gap:8px}.btn{border:1px solid var(--line);background:#3b304a;border-radius:8px;padding:9px 13px;font-weight:600;font-size:12px;cursor:pointer;transition:.16s ease;display:inline-flex;gap:7px;align-items:center;justify-content:center}.btn:hover{background:#493b5c;border-color:#ffffff38}.btn.primary{color:#241a30;background:var(--acid);border-color:var(--acid)}.btn.primary:hover{background:#cebaff}.btn.ghost{background:transparent}.btn.small{padding:7px 10px}.btn.danger{color:#ffc0a8}.btn:disabled{opacity:.4;cursor:not-allowed}.workspace{min-height:0;display:grid;grid-template-columns:76px 1fr 308px}.rail{border-right:1px solid var(--line);background:#282133;padding:14px 9px;display:flex;flex-direction:column;gap:7px}.tool{min-height:58px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px}.tool:hover{color:var(--ink);background:#ffffff09}.tool.active{color:var(--acid);background:#b99aff1c;border-color:#b99aff47}.tool svg{width:20px;height:20px;stroke-width:1.7}.rail-spacer{flex:1}.stage-area{min-width:0;min-height:0;position:relative;overflow:auto;background-color:#30293c;background-image:radial-gradient(circle at 100% 10%,rgba(255,102,0,.14),transparent 32%),radial-gradient(circle at 0 0,rgba(255,255,255,.07),transparent 28%),radial-gradient(#544962 1px,transparent 1px);background-size:auto,auto,18px 18px}.stage-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.empty-card{width:440px;text-align:center;color:var(--muted)}.empty-glyph{width:72px;height:90px;border:2px solid #716580;margin:0 auto 22px;border-radius:5px;position:relative;background:#3c3349;box-shadow:12px 12px 0 -3px #251e30,12px 12px 0 -1px #5a4e68}.empty-glyph:after{content:"";position:absolute;left:14px;right:14px;top:28px;height:2px;background:#81748f;box-shadow:0 12px #81748f,0 24px #81748f}.empty-card h1{font-family:Segoe UI,Arial,sans-serif;color:var(--ink);font-size:25px;letter-spacing:-.04em;margin:0 0 8px}.empty-card p{font-size:13px;line-height:1.6;margin:0 0 22px}.stage-wrap{position:relative;margin:42px auto;box-shadow:0 18px 65px #0000007a;width:max-content;line-height:0;transform-origin:top center}#pdf-canvas{display:block;background:#fff}#overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;touch-action:none;cursor:crosshair}#overlay[data-mode=select]{cursor:default}#overlay[data-mode=pan]{cursor:grab}.node{fill:#241a30;stroke:var(--acid);stroke-width:2;vector-effect:non-scaling-stroke;cursor:grab}.node.selected{fill:var(--acid);stroke:#241a30}.node-label{font:600 11px Segoe UI;fill:var(--acid);text-anchor:middle;dominant-baseline:central;pointer-events:none}.node.selected+.node-label{fill:#241a30}.cal-point{fill:none;stroke:var(--orange);stroke-width:1.5;vector-effect:non-scaling-stroke}.cal-point line{vector-effect:non-scaling-stroke}.cal-line{stroke:var(--orange);stroke-width:2;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.path-line{fill:none;stroke:#9578d1;stroke-width:var(--tracking-line-width, 2px);stroke-dasharray:9 5;vector-effect:non-scaling-stroke}.guide-line{fill:none;stroke:#b9aec7d1;stroke-width:1;stroke-dasharray:3 5;vector-effect:non-scaling-stroke}.envelope{fill:#b99aff33;stroke:#a982f4;stroke-width:1.4;fill-rule:evenodd;vector-effect:non-scaling-stroke}.trace{fill:none;stroke:#ff855fd9;stroke-width:var(--tracking-line-width, 2px);vector-effect:non-scaling-stroke}.vehicle-body{fill:#352943e6;stroke:#ff8a5c;stroke-width:1.6;vector-effect:non-scaling-stroke}.vehicle-window{fill:#7d6c90;opacity:.8}.axle{stroke:#e7dff0;stroke-width:1.3;vector-effect:non-scaling-stroke}.wheel{stroke:#1d1726;stroke-width:4;stroke-linecap:round;vector-effect:non-scaling-stroke}.zoom-controls{flex:0 0 auto;display:flex;align-items:center;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:9px;background:#282133f0}.zoom-controls button{height:34px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}.zoom-controls button:last-child{border-right:0}.zoom-controls button:hover{background:#ffffff12}.zoom-controls button:disabled{color:#776c83;cursor:not-allowed}.zoom-button{width:36px;font-size:18px;line-height:1}.zoom-readout{min-width:62px;padding:0 9px;color:var(--acid)!important;font-size:11px;font-weight:700}.inspector{min-height:0;overflow-y:auto;border-left:1px solid var(--line);background:var(--panel);padding:20px}.section{padding:0 0 20px;margin:0 0 20px;border-bottom:1px solid var(--line)}.section:last-child{border-bottom:0}.eyebrow{color:var(--acid);font-size:10px;letter-spacing:.13em;font-weight:700;text-transform:uppercase;margin-bottom:8px}.section h2{font-family:Segoe UI,Arial,sans-serif;font-size:17px;margin:0 0 5px;letter-spacing:-.025em}.section-copy{color:var(--muted);font-size:11px;line-height:1.55;margin:0 0 15px}.field{margin:12px 0}.field label{display:flex;justify-content:space-between;color:#c8bfd1;font-size:11px;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;color:var(--ink);background:#251e30;border:1px solid var(--line);border-radius:7px;padding:9px 10px;outline:none}.field textarea{resize:vertical;line-height:1.45}.field input:focus,.field select:focus,.field textarea:focus{border-color:#b99affb8}.field label span{color:var(--acid)}.field input.range{height:18px;padding:0;border:0;background:transparent;accent-color:var(--acid);cursor:pointer}.input-unit{position:relative}.input-unit input{padding-right:38px}.input-unit span{position:absolute;right:10px;top:9px;color:var(--muted);font-size:11px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:9px}.metric{background:#251e30;border:1px solid var(--line);padding:10px;border-radius:8px}.metric span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.metric strong{display:block;color:var(--acid);font-size:14px;margin-top:4px}.status-pill{border-radius:999px;background:#261f31;padding:6px 9px;color:var(--muted);font-size:10px;display:inline-flex;align-items:center;gap:6px}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:#776c83}.status-pill.good{color:#ded1f2}.status-pill.good:before{background:var(--acid);box-shadow:0 0 0 3px #b99aff29}.status-pill.warning{color:#ffd5c5}.status-pill.warning:before{background:var(--orange);box-shadow:0 0 0 3px #ff855f24}.page-row{display:flex;align-items:center;gap:7px}.page-row .btn{flex:0 0 auto}.page-readout{color:var(--muted);font-size:11px;flex:1;text-align:center}.check{display:flex;align-items:center;gap:9px;font-size:11px;color:#c8bfd1;margin:10px 0}.check input{accent-color:var(--acid)}.statusbar{border-top:1px solid var(--line);display:flex;align-items:center;padding:0 12px;color:#8f849b;font-size:10px;gap:18px;background:#211a2b}.statusbar .right{margin-left:auto}.toast{position:fixed;left:50%;bottom:48px;transform:translate(-50%,12px);background:#f2edf5;color:#30293c;padding:10px 14px;border-radius:8px;box-shadow:0 8px 30px #00000059;font-size:12px;font-weight:600;opacity:0;pointer-events:none;transition:.2s ease;z-index:20}.toast.show{opacity:1;transform:translate(-50%)}.vehicle-summary{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 12px}.vehicle-summary span{border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#251e30;padding:4px 7px;font-size:9px}.studio-button{width:100%;border-style:dashed;background:#b99aff0f;color:#dccfff}.button-plus{color:var(--acid);font-size:17px;line-height:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;padding:24px;display:grid;place-items:center;background:#16101ecc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.vehicle-studio{width:min(1120px,calc(100vw - 48px));max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;background:#342b41;border:1px solid rgba(255,255,255,.14);border-radius:16px;box-shadow:0 30px 100px #0000009e}.studio-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:22px 24px 19px;border-bottom:1px solid var(--line);background:#282133}.studio-header h2{margin:0;font-size:22px;letter-spacing:-.035em}.studio-header p{margin:6px 0 0;color:var(--muted);font-size:12px}.icon-button{width:36px;height:36px;flex:0 0 auto;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--muted);cursor:pointer;font-size:24px;line-height:1}.icon-button:hover{color:var(--ink);background:#443752}.studio-body{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 360px}.studio-fields{min-height:0;overflow-y:auto;padding:5px 24px 18px;scrollbar-color:#5e506d #251e30;scrollbar-width:thin}.studio-fields::-webkit-scrollbar{width:9px}.studio-fields::-webkit-scrollbar-track{background:#251e30}.studio-fields::-webkit-scrollbar-thumb{background:#5e506d;border:2px solid #251e30;border-radius:999px}.studio-section{padding:16px 0 10px;border-bottom:1px solid var(--line)}.studio-section:last-child{border-bottom:0}.studio-section h3{margin:0 0 8px;color:#e4ddea;font-size:12px;text-transform:uppercase;letter-spacing:.1em}.studio-section .field{margin:9px 0}.studio-grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.calculated-value{min-height:36px;display:flex;align-items:center;color:var(--acid);background:#251e30;border:1px solid var(--line);border-radius:7px;padding:9px 10px;font-weight:700;font-size:12px}.vehicle-preview-panel{min-width:0;padding:21px;border-left:1px solid var(--line);background:#251e30}.preview-topline{display:flex;justify-content:space-between;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em}.preview-topline span:last-child{color:var(--acid)}#vehicle-preview{width:100%;height:260px;margin:8px 0 10px;overflow:visible}.preview-tractor{fill:#443653;stroke:#ff8a5c;stroke-width:1.6}.preview-trailer{fill:#392d48;stroke:#b99aff;stroke-width:1.5}.preview-axle line{stroke:#e6deeb;stroke-width:1.5}.preview-axle rect{fill:#17111f}.preview-hitch{stroke:#9c90a8;stroke-width:2;stroke-dasharray:4 4}.preview-pin{fill:var(--acid);stroke:#251e30;stroke-width:2}.preview-direction{fill:none;stroke:#ff8a5c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.preview-placeholder{fill:#887a95;font:11px Segoe UI}.preview-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.preview-metrics div{min-width:0;padding:10px 9px;border:1px solid var(--line);border-radius:8px;background:#2d2438}.preview-metrics span{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.preview-metrics strong{display:block;margin-top:4px;color:var(--ink);font-size:12px;white-space:nowrap}.studio-error{min-height:34px;margin:14px 0 0;color:#ffb497;font-size:11px;line-height:1.45}.studio-footer{display:flex;align-items:center;gap:8px;padding:14px 24px;border-top:1px solid var(--line);background:#282133}.studio-spacer{flex:1}.hidden{display:none!important}@media(max-width:1150px){.workspace{grid-template-columns:68px 1fr 280px}.inspector{padding:16px}.studio-body{grid-template-columns:minmax(0,1fr) 310px}.studio-grid4{grid-template-columns:1fr 1fr}}
