:root{--bg:#f4efe7;--bg-2:#ebe4d8;--panel:#fff;--panel-2:#faf7f2;--border:#e7e0d3;--border-strong:#d5ccbb;--text:#1c2724;--muted:#5d645e;--accent:#1f6f5c;--accent-strong:#15513f;--accent-soft:#e3efe9;--accent-ink:#1f6f5c;--glass:#fffc;--glass-strong:#fffffff2;--glass-border:#ffffffe6;--danger-soft:#fbeaea;--warn-soft:#fdf3e1;--ok-soft:#e6f3ea;--backdrop-top:#fbf8f3;--backdrop-bottom:#e8e0d2;--amber:#e29a32;--amber-soft:#fbecd0;--danger:#c0412c;--warn:#a66d16;--ok:#2c7a4b;--radius:10px;--radius-sm:7px;--shadow-sm:0 1px 2px #1c27240f, 0 1px 1px #1c272408;--shadow-md:0 8px 24px #1c27241a, 0 2px 6px #1c27240d;--shadow-lg:0 24px 60px #1c27242e;--font:"Plus Jakarta Sans Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.4}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;margin:0}button,input,select{font:inherit;color:inherit}button{border:1px solid var(--border);background:var(--panel);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 11px;font-weight:500;transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex}button svg{flex:none}button:hover:not(:disabled){border-color:var(--border-strong);background:var(--panel-2)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3{letter-spacing:-.01em}.app{grid-template:"top top top"52px"cat view insp"minmax(0,1fr)"status status status"30px/236px minmax(0,1fr) 292px;height:100%;display:grid}.topbar{background:var(--panel);border-bottom:1px solid var(--border);grid-area:top;align-items:center;gap:12px;min-width:0;padding:0 14px;display:flex;overflow-x:auto}.brand{color:var(--accent-ink);align-items:center;gap:8px;margin-right:8px;display:flex}.brand strong{color:var(--text);font-size:15px}.tag{text-transform:uppercase;letter-spacing:.04em;color:var(--accent-ink);background:var(--accent-soft);border-radius:4px;padding:2px 6px;font-size:11px}.spacer{flex:1}.segmented,.btn-group{display:flex}.segmented button,.btn-group button{border-radius:0;margin-left:-1px}.segmented button:first-child,.btn-group button:first-child{border-radius:6px 0 0 6px;margin-left:0}.segmented button:last-child,.btn-group button:last-of-type{border-radius:0 6px 6px 0}.segmented button.active{background:var(--accent);border-color:var(--accent);color:#fff;position:relative}.panel{background:var(--panel);min-height:0;padding:14px;overflow-y:auto}.catalog{border-right:1px solid var(--border);grid-area:cat}.inspector{border-left:1px solid var(--border);grid-area:insp}.panel h2{margin:0 0 4px;font-size:15px}.panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 6px;font-size:11px}.hint{color:var(--muted);margin:6px 0 0;font-size:12px;line-height:1.45}.muted{color:var(--muted)}.small{font-size:12px}.search{border:1px solid var(--border);background:var(--panel);border-radius:6px;width:100%;margin:8px 0 2px;padding:7px 9px}.search:focus{border-color:var(--accent);outline:none}.check{cursor:pointer;align-items:center;gap:8px;margin:4px 0;font-size:13px;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px}.rotate-row{align-items:flex-end;gap:8px;display:flex}.rotate-row .field{flex:none;width:84px}.rotate-row .btn-group button{padding:6px 8px}.tight-top{margin-top:8px}.plan-dim{color:var(--muted);white-space:nowrap;-webkit-user-select:none;user-select:none;background:#e9e7e2e6;border-radius:3px;padding:0 4px;font-size:11px}.catalog-item{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin-bottom:6px;padding:8px 10px;display:flex}.catalog-item span{color:var(--muted);font-size:12px}.catalog-item:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.panel-head{flex-direction:column;gap:4px;display:flex}.name-input{border:1px solid #0000;border-radius:6px;margin-left:-6px;padding:4px 6px;font-size:15px;font-weight:600}.name-input:hover{border-color:var(--border)}.field{color:var(--muted);flex-direction:column;gap:4px;min-width:0;font-size:12px;display:flex}.field select{border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:6px}.field-input{border:1px solid var(--border);background:var(--panel);border-radius:6px;align-items:center;padding-right:6px;display:flex}.field-input:focus-within{border-color:var(--accent)}.field-input input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;width:100%;min-width:0;padding:6px}.field-input em{color:var(--muted);font-size:11px;font-style:normal}.grid2,.grid3{gap:8px;display:grid}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr 1fr}.inspector>.field{margin-top:12px}.btn-row{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.align-grid{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.align-grid span{grid-column:1/-1;font-size:12px}.align-grid button{padding:5px 6px;font-size:12px}.swatches{gap:8px;display:flex}.swatch{width:30px;height:30px;box-shadow:0 0 0 1px var(--border);border:2px solid #fff;border-radius:50%;padding:0}.swatch.active{box-shadow:0 0 0 2px var(--accent)}.warnings{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.warnings li{border-radius:6px;padding:6px 8px;font-size:12px}.warnings li.clash{color:var(--danger);background:#fbeaea}.warnings li.caution{color:var(--warn);background:#fdf3e1}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.stats div{background:var(--bg);border-radius:6px;padding:8px}.stats dt{color:var(--muted);font-size:11px}.stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:18px;font-weight:600}.stats dd.bad{color:var(--danger)}.viewport{grid-area:view;min-width:0;min-height:0;position:relative}.overlay-hint{color:#fff;pointer-events:none;background:#141618c7;border-radius:999px;padding:6px 12px;font-size:12px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.legend{border:1px solid var(--border);color:var(--muted);pointer-events:none;background:#ffffffe0;border-radius:6px;gap:12px;padding:5px 10px;font-size:12px;display:flex;position:absolute;bottom:12px;left:12px}.legend span{align-items:center;gap:5px;display:flex}.sw{border-radius:2px;width:10px;height:10px;display:inline-block}.sw.door{opacity:.6;background:#f2b33d}.sw.legroom{opacity:.55;background:#3aa6a0}.sw.arch{background:#55585c}.sw.clash{background:#d64545}.dim-label,.size-label{white-space:nowrap;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:600}.dim-label{color:#fff;background:var(--accent)}.size-label{color:var(--accent-ink);border:1px solid var(--accent);background:#ffffffeb}.statusbar{color:var(--muted);background:var(--panel);border-top:1px solid var(--border);white-space:nowrap;grid-area:status;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;font-size:12px;display:flex;overflow:hidden}.status-right{gap:6px;display:flex}.pill{border-radius:999px;padding:1px 8px;font-weight:600}.pill.bad{color:var(--danger);background:#fbeaea}.pill.warn{color:var(--warn);background:#fdf3e1}.pill.ok{color:var(--ok);background:#e6f3ea}@media (width<=1180px){.app{grid-template-columns:200px minmax(0,1fr) 262px}.topbar{gap:8px;padding:0 10px}.topbar button{padding:5px 8px}.tag{display:none}}@media (width<=900px){.topbar{flex-wrap:wrap;row-gap:6px;padding:8px 10px;overflow:visible}.brand strong{white-space:nowrap}.topbar .spacer{display:none}.statusbar>span:first-child{text-overflow:ellipsis;overflow:hidden}.app{grid-template:"top""view"minmax(320px,55vh)"insp""cat""status"30px/minmax(0,1fr);height:auto;min-height:100%}.catalog,.inspector{border:0;border-top:1px solid var(--border)}}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.tabs{border-bottom:1px solid var(--border);background:var(--panel);z-index:2;gap:2px;margin:0 -14px 14px;padding:0 8px;display:flex;position:sticky;top:0}.tabs button{color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:10px 8px 8px;font-weight:600}.tabs button:hover:not(:disabled){color:var(--text);background:0 0}.tabs button.active{color:var(--accent-ink);border-bottom-color:var(--accent)}.section-gap{margin-top:22px}.meter{grid-template-columns:1fr auto;align-items:center;gap:4px 8px;margin:10px 0;display:grid}.meter-head{grid-column:1/-1;justify-content:space-between;gap:8px;font-size:12px;display:flex}.meter-head strong{font-variant-numeric:tabular-nums;font-weight:600}.meter-head .muted{font-weight:400}.meter-track{background:var(--bg);border-radius:4px;height:8px;overflow:hidden}.meter-fill{background:var(--ok);border-radius:4px;height:100%}.meter.warn .meter-fill{background:var(--warn)}.meter.over .meter-fill{background:var(--danger)}.meter-pct{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;min-width:36px;font-size:12px}.meter.over .meter-pct{color:var(--danger);font-weight:700}.findings{flex-direction:column;gap:4px;margin:10px 0;padding:0;list-style:none;display:flex}.findings li{border-radius:6px;padding:6px 8px;font-size:12px;line-height:1.45}.findings li.ok{color:var(--ok);background:#e6f3ea}.findings li.warn{color:#8a5a12;background:#fdf3e1}.findings li.bad{color:var(--danger);background:#fbeaea}table.mini{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}table.mini th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:3px 4px;font-weight:600}table.mini td{border-bottom:1px solid var(--bg);padding:4px}table.mini td:not(:first-child),table.mini th:not(:first-child){text-align:right;white-space:nowrap}table.mini tr.total td{border-top:1px solid var(--border);font-weight:700}.sheet-overlay{z-index:100;color:var(--text);background:#e7e4dd;position:fixed;inset:0;overflow-y:auto}.sheet-toolbar{z-index:1;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:10px 16px;display:flex;position:sticky;top:0}.inline-select{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.inline-select select{border:1px solid var(--border);background:var(--panel);border-radius:6px;padding:5px}.sheet{background:#fff;border-radius:4px;max-width:900px;margin:20px auto 40px;padding:36px 40px;box-shadow:0 1px 3px #00000014}.sheet h1{margin:0;font-size:24px}.sheet h2{margin:0 0 10px;font-size:16px}.sheet h3{margin:16px 0 8px;font-size:13px}.sheet-header{border-bottom:2px solid var(--text);margin-bottom:20px;padding-bottom:10px}.sheet-header p{color:var(--muted);margin:4px 0 0}.sheet-section{margin-bottom:26px}.sheet-section.two-col{grid-template-columns:1fr 1fr;gap:24px;display:grid}.plan-svg{width:100%;height:auto;margin-bottom:12px;display:block}.sheet-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.sheet-table th{text-align:left;border-bottom:1.5px solid var(--text);white-space:nowrap;padding:4px 6px;font-weight:600}.sheet-table td{vertical-align:top;border-bottom:1px solid #e5e2db;padding:4px 6px}.sheet-table.compact td{padding:3px 6px}.sheet-note{color:var(--muted);margin:8px 0 0;font-size:11px;line-height:1.5}.sheet-diagrams{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-top:12px;display:grid}.sheet-diagram{break-inside:avoid;margin:0}.sheet-diagram svg{width:100%;height:auto;display:block}.sheet-diagram figcaption{color:var(--muted);margin-top:3px;font-size:11px}.material-block{break-inside:avoid-page}@media (width<=700px){.sheet{margin:0;padding:20px 16px}.sheet-section.two-col{grid-template-columns:1fr}.sheet-table{font-size:11px}}@media print{body.sheet-open #root{display:none}body.sheet-open,body.sheet-open html{background:#fff}.sheet-overlay{background:#fff;position:static;overflow:visible}.sheet-toolbar{display:none}.sheet{box-shadow:none;max-width:none;margin:0;padding:0}.sheet-section{break-inside:auto}.sheet-section.two-col{break-inside:avoid}@page{margin:14mm}}.lift-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}fieldset.plain{border:0;min-width:0;margin:0;padding:0}fieldset.plain:disabled{opacity:.6}.text-input{border:1px solid var(--border);background:var(--panel);border-radius:6px;width:100%;min-width:0;padding:7px 9px}.text-input:focus{border-color:var(--accent);outline:none}.link-button{color:var(--accent-ink);background:0 0;border:0;padding:2px 4px;text-decoration:underline}.layout-name{font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;width:220px;min-width:120px;padding:5px 8px;font-weight:600}.layout-name:hover{border-color:var(--border)}.layout-name:focus{border-color:var(--accent);background:var(--panel);outline:none}.save-status{color:var(--muted);background:0 0;border:0;align-items:center;gap:6px;padding:4px 6px;font-size:12px;display:flex}.save-status i{background:#b8b4aa;border-radius:50%;width:8px;height:8px}.save-status.cloud i{background:var(--ok)}.save-status.saving i{background:var(--warn)}.save-status.error{color:var(--danger)}.save-status.error i{background:var(--danger)}.save-status.view i{background:#4a90b8}.view-controls{pointer-events:none;flex-wrap:wrap;gap:8px;display:flex;position:absolute;top:10px;left:10px;right:10px}.view-controls>*{pointer-events:auto;border-radius:6px;box-shadow:0 1px 2px #00000014}.overlay-hint{top:54px}.view-banner{color:#fff;background:#1f3b4d;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px 14px;max-width:calc(100% - 24px);padding:10px 14px;font-size:13px;display:flex;position:absolute;bottom:52px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0003}.view-banner .btn-row{margin:0}.view-banner button:not(.primary){color:#fff;background:0 0;border-color:#ffffff80}.notice{z-index:300;color:#fff;background:#24272b;border-radius:8px;max-width:min(560px,100vw - 32px);padding:9px 14px;font-size:13px;position:fixed;bottom:44px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #00000040}.notice.error{background:var(--danger)}.dialog-backdrop{z-index:200;background:#191b1e73;justify-content:center;align-items:flex-start;padding:6vh 16px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.dialog{background:var(--panel);border-radius:10px;width:min(520px,100%);box-shadow:0 10px 40px #00000040}.dialog.wide{width:min(980px,100%)}.dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.dialog-head h2{margin:0;font-size:16px}.dialog-close{color:var(--muted);background:0 0;border:0;font-size:16px}.dialog-body h3{margin:0 0 6px;font-size:14px}.dialog-tabs{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.dialog-tabs .tabs{border-bottom:0;margin:0;padding:0;position:static}.template-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-top:12px;display:grid}.template-card{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px 12px;display:flex}.template-card p{margin:0;line-height:1.45}.template-card button{align-self:flex-start;margin-top:auto}.template-card .small:last-of-type{margin-bottom:8px}.template-plan{background:#faf8f4;border-radius:6px;margin-bottom:4px}.template-plan .plan-svg{margin:0}.cloud-box{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:10px;max-width:520px;padding:14px;display:flex}.cloud-box p{margin:0;line-height:1.5}.cloud-box button{align-self:flex-start}.cloud-box.current{background:var(--bg);border:0;flex-flow:wrap;justify-content:space-between;align-items:center;max-width:none}.demo-note{color:#8a5a12;background:#fdf3e1;border-radius:6px;padding:6px 8px;font-size:12px}.findings-inline{margin:0;font-size:12px}.findings-inline.bad{color:var(--danger)}.account-row{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.list-title{margin-top:18px!important}.layout-list{border:1px solid var(--border);border-radius:8px;margin:0;padding:0;list-style:none}.layout-list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.layout-list li:last-child{border-bottom:0}.layout-list li.current{background:var(--accent-soft)}.layout-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.layout-actions,.rename{gap:6px;display:flex}.rename{flex:1}.share-section{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;margin-bottom:16px;padding-bottom:16px;display:flex}.share-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.share-section p{margin:0;line-height:1.5}.share-section>button{align-self:flex-start}.copy-field{gap:6px;display:flex}.copy-field input{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px}@media (width<=900px){.layout-name{width:160px}.view-banner{bottom:12px}}.pro-badge{letter-spacing:.04em;text-transform:uppercase;color:#7a4f00;vertical-align:1px;background:#fbe3a6;border-radius:4px;margin-left:4px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}button.primary .pro-badge{background:#ffffffd9}.pro-note{background:#fff8e6;border-radius:6px;margin:10px 0;padding:7px 9px;font-size:12px;line-height:1.45}.pro-note .pro-badge{margin-left:0}.pro-lead{margin:0 0 10px}.pro-list{gap:6px;margin:0 0 12px;padding:0;list-style:none;display:grid}.pro-list li{padding-left:22px;font-size:13px;position:relative}.pro-list li:before{content:"✓";color:var(--accent-ink);font-weight:700;position:absolute;left:4px}.pro-list li.highlight{font-weight:700}.pro-actions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.pro-actions button{align-self:flex-start}button.big{padding:10px 18px;font-size:15px}.my-pieces-actions{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.catalog-row{align-items:stretch;gap:4px;display:flex}.catalog-row .catalog-item{flex:1;min-width:0}.icon-button{color:var(--muted);margin-bottom:6px;padding:0 9px}.piece-layout{grid-template-columns:minmax(0,1fr) 320px;gap:18px;display:grid}.piece-form h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:11px;margin:16px 0 6px!important}.piece-preview{background:#f4f2ee;border-radius:8px;height:320px;position:sticky;top:0;overflow:hidden}.dialog-actions{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}@media (width<=760px){.piece-layout{grid-template-columns:1fr}.piece-preview{order:-1;height:220px;position:static}}#van-canvas{touch-action:none}.item-actions{border:1px solid var(--border);background:#fffffff5;border-radius:10px;align-items:center;gap:4px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;bottom:52px;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 4px 14px #0000001f}.item-actions button{padding:6px 9px;font-size:12px}.item-actions-name{text-overflow:ellipsis;white-space:nowrap;max-width:150px;padding:0 8px 0 4px;font-size:12px;font-weight:600;overflow:hidden}.walk-pad{touch-action:none;-webkit-user-select:none;user-select:none;grid-template-rows:repeat(3,48px);grid-template-columns:repeat(3,48px);gap:4px;display:grid;position:absolute;bottom:52px;right:16px}.walk-pad button{background:#ffffffe6;padding:0;font-size:16px;box-shadow:0 2px 8px #0000001f}.walk-pad .up{grid-area:1/2}.walk-pad .left{grid-area:2/1}.walk-pad .right{grid-area:2/3}.walk-pad .down{grid-area:3/2}@media (pointer:fine){.walk-pad{opacity:.55}.walk-pad:hover{opacity:1}}@media (pointer:coarse){button,select,.text-input,.field-input input{min-height:38px}.catalog-item{padding:10px 12px}.swatch{width:38px;height:38px}.item-actions button{padding:9px 12px}}.plan-chip{color:#7a4f00;background:#fbe3a6;border-color:#f0cf7c;font-weight:700}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app{grid-template-rows:58px minmax(0,1fr) 30px;grid-template-columns:272px minmax(0,1fr) 312px}.topbar{border-bottom:1px solid var(--border);z-index:20;background:#ffffffeb;gap:10px;padding:0 16px;position:relative;overflow:visible;box-shadow:0 1px #1c272405}.brand{gap:9px;margin-right:6px}.wordmark{letter-spacing:-.02em;color:var(--text);font-size:18px;font-weight:650}.wordmark b{color:var(--accent-ink);font-weight:800}.layout-title{border-left:1px solid var(--border);align-items:center;gap:4px;min-width:0;padding-left:14px;display:flex}.layout-name{width:200px;font-size:14px;font-weight:600}.save-status{box-shadow:none}.btn-group{gap:0}.btn-group button{box-shadow:none}.btn-group{box-shadow:var(--shadow-sm);border-radius:8px}.btn-group button:first-child{border-radius:8px 0 0 8px}.btn-group button:last-of-type{border-radius:0 8px 8px 0}.btn-group button:only-of-type{border-radius:8px}.icon-group button{padding:6px 9px}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600;box-shadow:0 1px 2px #15513f4d,inset 0 1px #ffffff1f}button.primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.lock-mark{color:var(--amber);margin-left:-1px}button.primary .lock-mark{color:#ffe2a8}.plan-chip{color:#7a4c06;background:linear-gradient(#fde9bd,#f7d48a);border-color:#efc46b;border-radius:999px;padding:5px 12px;font-weight:700}.plan-chip:hover:not(:disabled){background:linear-gradient(#fbe0a4,#f3c96f);border-color:#e6b452}.plan-chip.pro{color:var(--accent-ink);background:var(--accent-soft);border-color:#c5ded3}.menu{position:relative}.menu-list{background:var(--panel);border:1px solid var(--border);min-width:220px;box-shadow:var(--shadow-md);z-index:60;border-radius:10px;flex-direction:column;padding:5px;display:flex;position:absolute;top:calc(100% + 6px)}.menu-list.right{right:0}.menu-list.left{left:0}.menu-list [role=menuitem]{box-shadow:none;text-align:left;background:0 0;border:0;border-radius:7px;justify-content:flex-start;gap:10px;padding:8px 10px;font-weight:500}.menu-list [role=menuitem] svg:first-child{color:var(--muted)}.menu-list [role=menuitem]:hover:not(:disabled),.menu-list [role=menuitem]:focus-visible{background:var(--accent-soft);outline:none}.segmented{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;gap:2px;padding:2px}.segmented button{box-shadow:none;color:var(--muted);background:0 0;border:0;padding:5px 10px;border-radius:7px!important;margin:0!important}.segmented button:hover:not(:disabled){color:var(--text);background:#ffffffb3}.segmented button.active,.segmented button.active:hover{background:var(--panel);color:var(--accent-ink);box-shadow:var(--shadow-sm), 0 0 0 1px var(--border);font-weight:650}.view-controls{gap:8px;top:12px;left:12px;right:12px}.view-controls .segmented,.glass-button{-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-md);background:#ffffffc7;border:1px solid #ffffffe6}.glass-button{color:var(--muted);border-radius:9px}.glass-button:hover:not(:disabled){color:var(--text);background:#fff}@media (width<=1280px){.app{grid-template-columns:244px minmax(0,1fr) 288px}.topbar .label{display:none}.layout-name{width:160px}}@media (width<=900px){.app{grid-template-rows:auto minmax(340px,58vh) auto auto 30px;grid-template-columns:minmax(0,1fr)}.topbar{gap:6px;padding:8px 10px}.layout-title{border-left:0;order:10;width:100%;padding-left:0}.layout-name{flex:1}.wordmark{font-size:16px}.view-controls .segmented button{padding:5px 8px}}.dialog-backdrop{-webkit-backdrop-filter:blur(3px);background:#1c27246b;animation:.16s ease-out fade-in}.dialog{box-shadow:var(--shadow-lg);border:1px solid var(--border);border-radius:16px;animation:.2s cubic-bezier(.2,.8,.3,1) dialog-in}.dialog-head{padding:16px 20px 14px}.dialog-head h2{letter-spacing:-.01em;font-size:17px;font-weight:700}.dialog-close{box-shadow:none;border-radius:8px;padding:5px}.dialog-close:hover{background:var(--bg);color:var(--text)}.dialog-body{padding:18px 20px 22px}.btn-row.end{justify-content:flex-end;align-items:center;gap:12px}@keyframes fade-in{0%{opacity:0}}@keyframes dialog-in{0%{opacity:0;transform:translateY(10px)scale(.98)}}@media (prefers-reduced-motion:reduce){.dialog,.dialog-backdrop{animation:none}}.shortcuts{gap:18px;display:grid}.shortcuts h3{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:11px}.shortcuts dl{margin:0}.shortcuts dl>div{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:7px 0;display:flex}.shortcuts dl>div:last-child{border-bottom:0}.shortcuts dt{font-weight:500}.shortcuts dd{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin:0;display:flex}.keys{gap:3px;display:inline-flex}kbd{font-family:var(--font);text-align:center;background:var(--panel-2);border:1px solid var(--border-strong);min-width:24px;color:var(--text);border-bottom-width:2px;border-radius:6px;padding:2px 7px;font-size:12px;font-weight:600}.measure-lead{color:var(--muted);max-width:70ch;margin:0 0 14px}.measure-figures{grid-template-columns:1.7fr 1fr;gap:14px;display:grid}.measure-figures figure{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;margin:0;padding:12px 12px 8px}.measure-figures figcaption{text-align:center;color:var(--muted);margin-top:4px;font-size:12px;font-weight:600}.measure-svg{width:100%;height:auto;display:block}.measure-svg .m-body{fill:#fff;stroke:var(--text);stroke-width:2px}.measure-svg .m-cab{fill:var(--bg-2);stroke:var(--border-strong);stroke-width:1.5px}.measure-svg .m-bulkhead{stroke:var(--text);stroke-width:3px}.measure-svg .m-door{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:5 3}.measure-svg .m-arch{fill:#d9d2c4;stroke:#9b917e;stroke-width:1.5px}.measure-svg .m-centre{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.measure-svg .m-dim line{stroke:var(--accent);stroke-width:1.6px}.measure-svg .m-tag circle{fill:var(--amber);stroke:#fff;stroke-width:2px}.measure-svg .m-tag text{fill:#fff;font-size:11px;font-weight:800;font-family:var(--font)}.measure-svg .m-note{fill:var(--muted);font-size:11px;font-family:var(--font)}.measure-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px;margin:16px 0 0;padding:0;list-style:none;display:grid}.measure-steps li{align-items:flex-start;gap:10px;display:flex}.measure-steps p{color:var(--muted);margin:2px 0 0;font-size:13px;line-height:1.45}.m-letter{background:var(--amber);color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;margin-top:1px;font-size:12px;font-weight:800;display:grid}.measure-tips{background:var(--accent-soft);border-radius:10px;margin-top:18px;padding:12px 14px}.measure-tips ul{margin:0;padding-left:18px;font-size:13px;line-height:1.5}@media (width<=700px){.measure-figures,.measure-steps{grid-template-columns:1fr}}.thumb-stage{pointer-events:none;width:240px;height:168px;position:fixed;top:0;left:-10000px}.catalog{padding-top:0}.catalog-head{z-index:2;background:var(--panel);border-bottom:1px solid var(--border);margin-bottom:2px;padding:14px 0 10px;position:sticky;top:0}.catalog-head h2{letter-spacing:-.01em;font-size:16px;font-weight:700}.search-box{border:1px solid var(--border);background:var(--panel-2);color:var(--muted);border-radius:9px;align-items:center;gap:7px;margin:8px 0 10px;padding:0 10px;transition:border-color .12s,box-shadow .12s,background .12s;display:flex}.search-box:focus-within{border-color:var(--accent);background:var(--panel);box-shadow:0 0 0 3px var(--accent-soft)}.search-box input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:8px 0}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{box-shadow:none;color:var(--muted);background:var(--panel);border-radius:999px;gap:4px;padding:4px 9px 4px 7px;font-size:12px;font-weight:550}.chip:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.chip.active,.chip.active:hover{background:var(--accent);border-color:var(--accent);color:#fff}.catalog>fieldset>.hint{margin:10px 0 2px}.catalog-section h3{align-items:center;gap:6px;margin-top:18px;display:flex}.catalog-section h3 svg{color:var(--accent-ink)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px;display:grid}.piece-card-wrap{min-width:0;position:relative}.piece-card{text-align:left;border-color:var(--border);width:100%;height:100%;box-shadow:none;border-radius:12px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:2px;padding:6px 6px 8px;transition:border-color .12s,box-shadow .15s,transform .15s;display:flex}.piece-card:hover:not(:disabled){background:var(--panel);box-shadow:var(--shadow-md);border-color:#b7d3c7;transform:translateY(-1px)}.piece-card:active:not(:disabled){transform:translateY(0)}.piece-card strong{margin-top:3px;padding:0 2px;font-size:12.5px;font-weight:650;line-height:1.25}.piece-card span:not(.thumb){color:var(--muted);font-variant-numeric:tabular-nums;padding:0 2px;font-size:11px}.thumb{aspect-ratio:10/7;background:radial-gradient(120% 90% at 50% 85%,#ece5d8 0%,#f6f2ea 55%,#faf7f2 100%);border-radius:8px;place-items:center;display:grid;overflow:hidden}.thumb img{object-fit:contain;width:100%;height:100%;display:block}.thumb.model{color:var(--muted)}.thumb-loading{background:linear-gradient(90deg,#ebe4d8 0%,#f5f0e7 50%,#ebe4d8 100%) 0 0/200% 100%;border-radius:6px;width:46%;height:40%;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.card-edit{color:var(--muted);background:#ffffffe6;border-radius:7px;padding:5px;position:absolute;top:10px;right:10px}.card-edit:hover:not(:disabled){color:var(--accent-ink)}.my-pieces-actions{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;display:grid}.my-pieces-actions button{padding:7px 8px;font-size:12.5px}.pro-badge{letter-spacing:.03em;text-transform:uppercase;color:#8a5a10;background:var(--amber-soft);vertical-align:1px;border-radius:999px;align-items:center;gap:3px;margin-left:2px;padding:1px 6px 1px 5px;font-size:10px;font-weight:700;display:inline-flex}.pro-note{background:#fdf5e4;border:1px solid #f3dfb4;border-radius:9px;padding:8px 10px}.field-label{align-items:center;gap:5px;min-height:16px;display:inline-flex}.info-tip{cursor:help;-webkit-user-select:none;user-select:none;border:1px solid var(--border-strong);background:var(--panel);width:15px;height:15px;color:var(--muted);box-shadow:none;border-radius:50%;flex:none;place-items:center;padding:0;font-size:10px;font-weight:700;line-height:1;display:inline-grid}.info-tip:hover,.info-tip:focus-visible{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft);outline:none}.tip-pop{z-index:400;color:#f4efe7;width:max-content;max-width:260px;box-shadow:var(--shadow-lg);pointer-events:none;background:#1f2a27;border-radius:9px;padding:8px 11px;font-size:12.5px;line-height:1.45;animation:.12s ease-out fade-in;position:fixed;transform:translate(-50%,-100%)}.tip-pop.below{transform:translate(-50%)}.h3-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.h3-row .link-button{align-items:center;gap:4px;font-size:12px;display:inline-flex}.panel{padding:14px 16px}.panel h2{letter-spacing:-.01em;font-size:16px;font-weight:700}.panel h3{letter-spacing:.07em;margin:20px 0 8px;font-size:11px;font-weight:700}.inspector{padding-top:0}.tabs{background:var(--panel);gap:2px;margin:0 -16px 14px;padding:10px 12px}.tabs button{box-shadow:none;border:0;border-radius:8px;padding:6px 10px;font-size:13px;font-weight:600}.tabs button:hover:not(:disabled){background:var(--panel-2)}.tabs button.active,.tabs button.active:hover{background:var(--accent-soft);color:var(--accent-ink)}.field{font-weight:500}.field select,.field-input{border-color:var(--border);background:var(--panel);border-radius:8px;transition:border-color .12s,box-shadow .12s}.field select,.field-input input{color:var(--text);padding:7px 8px}.field-input:focus-within,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.stats div{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:9px 10px}.stats dd{letter-spacing:-.01em;font-weight:700}.check input{accent-color:var(--accent)}button.danger{color:var(--danger)}button.danger:hover:not(:disabled){background:#fbeae6;border-color:#efc2b8}.link-button{box-shadow:none}.legend{-webkit-backdrop-filter:blur(8px);box-shadow:var(--shadow-sm);color:var(--muted);background:#fffc;border:1px solid #ffffffe6;border-radius:9px}.view-banner{box-shadow:var(--shadow-lg);background:#1f2a27;border-radius:12px}.notice{box-shadow:var(--shadow-lg);background:#1f2a27;border-radius:10px}.empty-van{text-align:center;-webkit-backdrop-filter:blur(10px);width:min(340px,100% - 32px);box-shadow:var(--shadow-lg);background:#ffffffdb;border:1px solid #fffffff2;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:18px 20px 16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.empty-van strong{font-size:16px;font-weight:700}.empty-van span{color:var(--muted);font-size:13px}.empty-van .btn-row{justify-content:center;margin-top:10px}.welcome-backdrop{z-index:250;-webkit-backdrop-filter:blur(6px);background:radial-gradient(1200px 600px at 50% -10%,#1f6f5c47,#0000 70%),#1c272480;justify-content:center;align-items:flex-start;padding:5vh 16px 16px;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0;overflow-y:auto}.welcome{background:var(--panel);width:min(820px,100%);box-shadow:var(--shadow-lg), 0 30px 80px #141e1b40;border-radius:20px;animation:.28s cubic-bezier(.2,.8,.3,1) dialog-in;overflow:hidden}.welcome-hero{color:#fff;background:linear-gradient(135deg,#1f6f5c 0%,#175a4a 60%,#134c3e 100%);align-items:center;gap:16px;padding:24px 28px 22px;display:flex;position:relative}.welcome-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#e29a328c,#e29a3200 65%);border-radius:50%;width:260px;height:260px;position:absolute;top:-80px;right:-60px}.welcome-hero svg rect:first-child{fill:#ffffff24}.welcome-hero h1{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:800}.welcome-hero p{color:#ffffffd1;max-width:52ch;margin:4px 0 0}.welcome-skip{z-index:1;color:#fff;box-shadow:none;background:#ffffff1f;border-color:#ffffff40;border-radius:999px;padding:4px 11px;font-size:13px;position:absolute;top:14px;right:16px}.welcome-skip:hover:not(:disabled){background:#ffffff38}.welcome-progress{color:var(--muted);gap:18px;margin:0;padding:14px 28px 0;font-size:13px;font-weight:600;list-style:none;display:flex}.welcome-progress li{align-items:center;gap:7px;display:flex}.welcome-progress i{background:var(--bg-2);border-radius:50%;place-items:center;width:20px;height:20px;font-size:11px;font-style:normal;font-weight:800;display:grid}.welcome-progress li.current{color:var(--text)}.welcome-progress li.current i{background:var(--accent);color:#fff}.welcome-progress li.done i{background:var(--accent-soft);color:var(--accent-ink)}.welcome-body{padding:12px 28px 6px}.welcome-body h2{letter-spacing:-.01em;margin:6px 0 12px;font-size:18px;font-weight:750}.welcome-body .chips{margin-bottom:12px}.welcome-body .chip{padding:5px 12px;font-size:13px}.van-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;display:grid}.van-card{text-align:left;border:1.5px solid var(--border);box-shadow:none;background:var(--panel);border-radius:14px;flex-direction:column;align-items:stretch;gap:3px;padding:10px 12px 12px;display:flex}.van-card:hover:not(:disabled){box-shadow:var(--shadow-md);border-color:#b7d3c7}.van-card.active,.van-card.active:hover{border-color:var(--accent);background:linear-gradient(180deg, var(--accent-soft), #fff 70%);box-shadow:0 0 0 3px #1f6f5c1f}.van-card:disabled{opacity:.6}.van-card strong{flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;font-weight:650;display:flex}.van-card>span{color:var(--muted);font-size:12px}.van-silhouette{width:100%;height:auto;margin-bottom:4px;display:block}.vs-shadow{fill:#1c27241a}.vs-body{fill:#fff;stroke:#33403c;stroke-width:34px;stroke-linejoin:round}.van-card.active .vs-body{fill:#f4faf7;stroke:var(--accent)}.vs-window{fill:#cfe3db}.vs-door{fill:none;stroke:#9aa6a1;stroke-width:18px;stroke-dasharray:60 40}.vs-light{fill:var(--amber)}.vs-well{fill:var(--panel)}.van-card.active .vs-well{fill:#f6fbf9}.vs-tyre{fill:#2a3330}.vs-hub{fill:#c9cfcc}.welcome-settings{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:14px 28px;margin:16px 0 4px;padding:14px 16px;display:flex}.welcome-settings>div{align-items:center;gap:10px;font-weight:600;display:flex}.welcome-settings>div>span{font-size:13px}.welcome-chosen{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;align-items:center;gap:14px;margin:0 0 14px;padding:10px 14px;display:flex}.welcome-chosen .van-silhouette{flex:none;width:120px;margin:0}.welcome-chosen>span{flex-direction:column;gap:2px;font-size:13px;display:flex}.start-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.start-option{text-align:left;white-space:normal;border:1.5px solid var(--border);box-shadow:none;border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:6px;padding:16px 16px 18px;display:flex;position:relative}.start-option:hover:not(:disabled){box-shadow:var(--shadow-md);border-color:#b7d3c7}.start-option.active,.start-option.active:hover{border-color:var(--accent);background:linear-gradient(180deg, var(--accent-soft), #fff 75%);box-shadow:0 0 0 3px #1f6f5c1f}.start-option:disabled{opacity:.6}.start-option strong{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:700;display:flex}.start-option>span:not(.start-icon){color:var(--muted);font-size:13px;line-height:1.45}.start-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent-ink);border-radius:12px;align-self:flex-start;place-items:center;margin-bottom:4px;display:grid}.start-option.active .start-icon{background:var(--accent);color:#fff}.start-check{border:1.5px solid var(--border-strong);color:#fff;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;top:12px;right:12px}.start-option.active .start-check{background:var(--accent);border-color:var(--accent)}.welcome-tour{margin-top:14px;font-size:14px}.welcome-foot{align-items:center;gap:10px;padding:16px 28px 22px;display:flex}.welcome-foot .primary.big{border-radius:10px;padding:11px 20px}@media (width<=700px){.welcome-backdrop{padding:0}.welcome{border-radius:0;min-height:100%}.welcome-hero{align-items:flex-start;padding:20px 18px 18px}.welcome-hero h1{font-size:20px}.welcome-progress,.welcome-body,.welcome-foot{padding-left:18px;padding-right:18px}.start-grid{grid-template-columns:1fr}.van-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.tour{z-index:240;position:fixed;inset:0}.tour-dim{background:#141c1a8c;position:absolute;inset:0}.tour-spot{pointer-events:none;border-radius:14px;transition:left .3s cubic-bezier(.2,.8,.3,1),top .3s cubic-bezier(.2,.8,.3,1),width .3s cubic-bezier(.2,.8,.3,1),height .3s cubic-bezier(.2,.8,.3,1);position:absolute;box-shadow:0 0 0 9999px #141c1a8c,0 0 0 3px #e29a32e6}.tour-card{background:var(--panel);box-shadow:var(--shadow-lg), 0 24px 60px #00000040;border-radius:16px;padding:16px 18px 14px;animation:.22s cubic-bezier(.2,.8,.3,1) dialog-in;position:absolute}.tour-card h2{letter-spacing:-.01em;margin:8px 0 4px;font-size:17px;font-weight:750}.tour-card p{color:var(--muted);margin:0;line-height:1.5}.tour-count{align-items:center;gap:5px;display:flex}.tour-count i{background:var(--bg-2);border-radius:4px;width:18px;height:4px}.tour-count i.done{background:#a9cbbd}.tour-count i.on{background:var(--accent);width:26px}.tour-count span{color:var(--muted);margin-left:auto;font-size:12px;font-weight:600}.tour-actions{align-items:center;gap:8px;margin-top:14px;display:flex}.tour-actions .link-button{color:var(--muted);padding-left:0}@media (prefers-reduced-motion:reduce){.tour-spot,.tour-card,.welcome,.welcome-backdrop{transition:none;animation:none}}.viewport{background:linear-gradient(#fbf8f3 0%,#e8e0d2 100%)}.piece-card,.van-card,.start-option,.catalog-item{white-space:normal}.measure-link{align-items:center;gap:5px;margin-top:8px;padding-left:0;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.measure-link:hover{text-decoration:underline}@media (width<=900px){.view-controls{scrollbar-width:none;flex-wrap:nowrap;margin:-2px;padding:2px 2px 8px;overflow-x:auto}.view-controls::-webkit-scrollbar{display:none}.view-controls>*{flex:none}.empty-van{padding:14px 16px 12px;top:auto;bottom:52px;transform:translate(-50%)}}.notice{align-items:center;gap:10px;padding:9px 8px 9px 14px;display:flex}.notice>span{flex:1;line-height:1.4}.notice button{box-shadow:none;flex:none}.notice-action{color:var(--text);background:#fff;border-color:#fff;padding:5px 11px;font-weight:650}.notice-action:hover:not(:disabled){background:var(--accent-soft)}.notice-close{color:#ffffffbf;background:0 0;border:0;padding:4px}.notice-close:hover:not(:disabled){color:#fff;background:#ffffff1f}.piece-card[draggable=true]{cursor:grab}.piece-card[draggable=true]:active{cursor:grabbing}.drop-hint{z-index:5;background:var(--accent);color:#fff;max-width:calc(100% - 32px);box-shadow:var(--shadow-md);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;position:absolute;top:60px;left:50%;overflow:hidden;transform:translate(-50%)}.drop-hint.bad{background:var(--danger)}.glass-group{-webkit-backdrop-filter:blur(10px);box-shadow:var(--shadow-md);background:#ffffffc7;border:1px solid #ffffffe6;border-radius:9px;gap:2px;padding:2px;display:flex}.glass-group button{box-shadow:none;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:5px 9px}.glass-group button:hover:not(:disabled){color:var(--text);background:#fff}@media (width<=1600px){.cam-label{display:none}}.fixes{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:5px;margin-top:8px;padding:10px;display:flex}.fixes-title{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700}.fixes button{white-space:normal;text-align:left;justify-content:flex-start;padding:7px 10px;font-size:13px}.fixes button svg{color:var(--accent-ink)}.fix-chip{color:var(--danger);border-color:#efc2b8;font-weight:600}.item-title{align-items:center;gap:2px;display:flex}.item-title .name-input{flex:1;min-width:0}.row-icon{box-shadow:none;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:5px}.row-icon:hover:not(:disabled){background:var(--panel-2);color:var(--text)}.row-icon.on{color:var(--amber)}.row-icon:disabled{opacity:.35}.locked-note{background:var(--amber-soft);color:#7a4c06;border-radius:9px;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;padding:8px 10px;font-size:12.5px;display:flex}.locked-note .link-button{padding:0;font-weight:650}.inspector .search-box{margin-top:12px}.piece-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.piece-list li{border-radius:9px;align-items:center;gap:1px;padding-right:3px;display:flex}.piece-list li:hover{background:var(--panel-2)}.piece-list li.active{background:var(--accent-soft)}.piece-list li.is-hidden .piece-row-text{opacity:.5}.piece-row{min-width:0;box-shadow:none;text-align:left;background:0 0;border:0;flex:1;justify-content:flex-start;gap:9px;padding:6px 6px 6px 8px}.piece-row:hover:not(:disabled){background:0 0}.piece-row-text{flex-direction:column;min-width:0;display:flex}.piece-row-text strong{text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.piece-row-text span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.status-dot{background:var(--ok);border-radius:50%;flex:none;width:8px;height:8px}.status-dot.clash{background:var(--danger)}.status-dot.caution{background:var(--amber)}.pro-note{color:var(--muted);background:0 0;border:0;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:8px 0 10px;padding:0;font-size:12.5px;display:flex}.pro-note .link-button{padding:0;font-weight:650;text-decoration:none}.pro-note .link-button:hover{text-decoration:underline}.menu-list .pro-badge{margin-left:auto}.menu-list [role=menuitem]{width:100%}.pro-hero{color:#fff;background:linear-gradient(135deg,#1f6f5c 0%,#175a4a 70%);align-items:flex-start;gap:14px;margin:-18px -20px 16px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.pro-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#e29a3280,#e29a3200 65%);border-radius:50%;width:200px;height:200px;position:absolute;top:-70px;right:-50px}.pro-hero>svg{color:#ffd897;flex:none;margin-top:2px}.pro-hero h3{letter-spacing:-.01em;color:#fff;margin:0;font-size:18px;font-weight:750}.pro-hero p{color:#ffffffd9;margin:4px 0 0;font-size:13.5px;line-height:1.45}.pro-groups{gap:12px;display:grid}.pro-groups h4{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:11px;font-weight:700}.pro-groups ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pro-groups li{border-radius:9px;align-items:center;gap:10px;padding:6px 8px;font-size:13.5px;display:flex}.pro-groups li.highlight{background:var(--amber-soft);font-weight:650}.pro-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-ink);border-radius:8px;flex:none;place-items:center;display:grid}.pro-groups li.highlight .pro-icon{background:var(--amber);color:#fff}.pro-cta{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:16px;padding-top:16px;display:flex}.pro-cta .primary.big{border-radius:10px;width:100%;padding:12px 18px}.pro-have{color:var(--ok);align-items:center;gap:6px;margin:0;font-weight:650;display:flex}.pro-cta>button:not(.primary){align-self:flex-start}.pro-free{margin:14px 0 0;line-height:1.5}.teaser-summary{margin:0 0 8px;font-weight:600}.pro-teaser{border-radius:10px;min-height:220px;position:relative;overflow:hidden}.pro-teaser-content{filter:blur(5px);opacity:.75;-webkit-user-select:none;user-select:none;pointer-events:none}.pro-teaser-card{text-align:center;border:1px solid var(--border);width:min(380px,100% - 24px);box-shadow:var(--shadow-lg);font-family:var(--font);background:#fffffff5;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:18px 20px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pro-teaser-card strong{font-size:15px}.pro-teaser-card p{color:var(--muted);margin:0 0 6px;font-size:13px;line-height:1.45}.pro-teaser-icon{background:var(--amber-soft);color:#a46a12;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}@media print{.sheet.preview{display:none!important}.sheet-overlay.preview:after{content:"Printing the build sheet is part of Vanwright Pro.";padding:40px;font:16px sans-serif;display:block}}.account-button{box-shadow:none;border-radius:999px;padding:4px}.account-button.signed-out{border-radius:8px;padding:6px 11px}.avatar{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:grid}.avatar.big{flex:none;width:40px;height:40px;font-size:17px}.account-who{align-items:center;gap:12px;display:flex}.account-who>div{flex-direction:column;flex:1;min-width:0;display:flex}.account-who strong{text-overflow:ellipsis;overflow:hidden}.plan-card{border:1px solid var(--border);background:var(--panel-2);border-radius:12px;align-items:center;gap:12px;margin-top:16px;padding:14px 16px;display:flex}.plan-card>div{flex:1}.plan-card.pro{background:linear-gradient(135deg, var(--accent-soft), #fff 80%);border-color:#c5ded3}.plan-card.warn{background:#fdf3e1;border-color:#f0d6a6}.plan-label{letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:700;display:block}.plan-card strong{font-size:18px;font-weight:750}.plan-card p{color:var(--muted);margin:2px 0 0;font-size:13px}.account-section{margin-top:18px}.account-section h3{margin:14px 0 6px}.account-section h3:first-child{margin-top:0}.account-section>.small{margin:0 0 8px}.invoice-list{border:1px solid var(--border);border-radius:10px;margin:0;padding:0;list-style:none}.invoice-list li{border-top:1px solid var(--border);grid-template-columns:auto 1fr auto auto auto auto;align-items:center;gap:10px;padding:8px 12px;font-size:13px;display:grid}.invoice-list li:first-child{border-top:0}.invoice-list svg{color:var(--muted)}.invoice-list .status{background:var(--bg-2);text-transform:capitalize;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.invoice-list .status.paid{background:var(--accent-soft);color:var(--accent-ink)}.invoice-list a{color:var(--accent-ink);align-items:center;gap:3px;font-weight:600;text-decoration:none;display:inline-flex}.danger-zone{border-top:1px solid var(--border);padding-top:16px}.danger-zone .text-input{max-width:220px}button.danger.solid{background:var(--danger);border-color:var(--danger);color:#fff}button.danger.solid:hover:not(:disabled){background:#a53522;border-color:#a53522}.bad-text{color:var(--danger)}@media (width<=600px){.invoice-list li{grid-template-columns:auto 1fr auto auto}.invoice-list li>.muted,.invoice-list li>.status{display:none}}a:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,[role=button]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}main.viewport:focus-visible{outline-offset:-3px}.skip-link{z-index:500;background:var(--accent);color:#fff;border-radius:8px;padding:8px 14px;font-weight:650;text-decoration:none;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.item-actions button,.walk-pad button{gap:4px}.menu-list .separated{border-top:1px solid var(--border);border-radius:0 0 7px 7px;margin-top:4px;padding-top:10px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121816;--bg-2:#1a2120;--panel:#192120;--panel-2:#202927;--border:#2c3633;--border-strong:#3c4844;--text:#e6eae6;--muted:#a3aca7;--accent:#23866b;--accent-strong:#2c9b7d;--accent-soft:#1c3730;--accent-ink:#62c7a7;--amber:#e8a54a;--amber-soft:#3a2f1b;--danger:#f08a75;--warn:#e8b05a;--ok:#6ccb93;--glass:#1b2220d1;--glass-strong:#1b2220f5;--glass-border:#ffffff14;--danger-soft:#3b2220;--warn-soft:#382c18;--ok-soft:#1b3326;--backdrop-top:#1e2624;--backdrop-bottom:#111715;--shadow-sm:0 1px 2px #0006;--shadow-md:0 8px 24px #00000073, 0 2px 6px #0000004d;--shadow-lg:0 24px 60px #0009}:root[data-theme=dark] .topbar{background:#151b19f0}:root[data-theme=dark] .legend,:root[data-theme=dark] .view-controls .segmented,:root[data-theme=dark] .glass-button,:root[data-theme=dark] .glass-group,:root[data-theme=dark] .empty-van{background:var(--glass);border-color:var(--glass-border)}:root[data-theme=dark] .glass-button:hover:not(:disabled),:root[data-theme=dark] .glass-group button:hover:not(:disabled),:root[data-theme=dark] .segmented button:hover:not(:disabled){background:#ffffff14}:root[data-theme=dark] .item-actions,:root[data-theme=dark] .walk-pad button,:root[data-theme=dark] .card-edit,:root[data-theme=dark] .size-label,:root[data-theme=dark] .pro-teaser-card{background:var(--glass-strong);border-color:var(--border)}:root[data-theme=dark] .plan-dim{background:#1b2220e6}:root[data-theme=dark] .viewport{background:linear-gradient(180deg, var(--backdrop-top) 0%, var(--backdrop-bottom) 100%)}:root[data-theme=dark] .warnings li.clash,:root[data-theme=dark] .pill.bad,:root[data-theme=dark] .findings li.bad{background:var(--danger-soft)}:root[data-theme=dark] .warnings li.caution,:root[data-theme=dark] .pill.warn,:root[data-theme=dark] .findings li.warn,:root[data-theme=dark] .demo-note,:root[data-theme=dark] .plan-card.warn{background:var(--warn-soft);border-color:#5a4524}:root[data-theme=dark] .pill.ok,:root[data-theme=dark] .findings li.ok{background:var(--ok-soft)}:root[data-theme=dark] .locked-note{color:#f1c983}:root[data-theme=dark] button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:#6a3a32}:root[data-theme=dark] button.danger.solid,:root[data-theme=dark] .notice.error{color:#fff;background:#b5402c;border-color:#b5402c}:root[data-theme=dark] .fix-chip{border-color:#6a3a32}:root[data-theme=dark] .pro-badge{background:var(--amber-soft);color:#f1c983}:root[data-theme=dark] .plan-chip{color:#f6d595;background:linear-gradient(#4a3a1c,#3d3017);border-color:#6b5426}:root[data-theme=dark] .plan-chip:hover:not(:disabled){background:linear-gradient(#564321,#47381b);border-color:#806430}:root[data-theme=dark] .plan-chip.pro{background:var(--accent-soft);color:var(--accent-ink);border-color:#2b5247}:root[data-theme=dark] .pro-groups li.highlight{background:var(--amber-soft)}:root[data-theme=dark] .pro-teaser-icon{color:#f1c983}:root[data-theme=dark] .plan-card.pro,:root[data-theme=dark] .van-card.active,:root[data-theme=dark] .van-card.active:hover,:root[data-theme=dark] .start-option.active,:root[data-theme=dark] .start-option.active:hover{background:linear-gradient(180deg, var(--accent-soft), var(--panel) 75%);border-color:var(--accent)}:root[data-theme=dark] .thumb{background:radial-gradient(120% 90% at 50% 85%,#2a3330 0%,#212a28 55%,#1d2523 100%)}:root[data-theme=dark] .thumb-loading{background:linear-gradient(90deg,#26302d 0%,#313c39 50%,#26302d 100%) 0 0/200% 100%}:root[data-theme=dark] .piece-card:hover:not(:disabled),:root[data-theme=dark] .van-card:hover:not(:disabled),:root[data-theme=dark] .start-option:hover:not(:disabled){background:var(--panel-2);border-color:#2f5b4f}:root[data-theme=dark] .template-plan,:root[data-theme=dark] .piece-preview{background:#f1ece3}:root[data-theme=dark] .vs-body,:root[data-theme=dark] .measure-svg .m-body{fill:#26302d;stroke:#c9d1cd}:root[data-theme=dark] .van-card.active .vs-body{fill:#1f3a32;stroke:var(--accent-ink)}:root[data-theme=dark] .vs-well,:root[data-theme=dark] .van-card.active .vs-well{fill:var(--panel)}:root[data-theme=dark] .vs-window{fill:#3d6157}:root[data-theme=dark] .vs-tyre{fill:#0d1110}:root[data-theme=dark] .measure-svg .m-cab{fill:#232c2a;stroke:#3c4844}:root[data-theme=dark] .measure-svg .m-bulkhead{stroke:#c9d1cd}:root[data-theme=dark] .measure-svg .m-arch{fill:#4a4436;stroke:#8a806b}:root[data-theme=dark] .measure-svg .m-dim line{stroke:var(--accent-ink)}:root[data-theme=dark] .measure-svg .m-door{fill:#1c3730;stroke:var(--accent-ink)}:root[data-theme=dark] .swatch{border-color:var(--panel)}:root[data-theme=dark] .notice-action{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--text)}:root[data-theme=dark] kbd{background:var(--panel-2)}:root[data-theme=dark] .tip-pop{color:#151b19;background:#e6eae6}:root[data-theme=dark] .sheet-overlay{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4efe7;--bg-2:#ebe4d8;--panel:#fff;--panel-2:#faf7f2;--border:#e7e0d3;--border-strong:#d5ccbb;--text:#1c2724;--muted:#5d645e;--accent:#1f6f5c;--accent-strong:#15513f;--accent-soft:#e3efe9;--accent-ink:#1f6f5c;--amber-soft:#fbecd0;--danger:#c0412c;--warn:#a66d16;--ok:#2c7a4b;--danger-soft:#fbeaea;--warn-soft:#fdf3e1;--ok-soft:#e6f3ea;color:var(--text)}:root[data-theme=dark] .sheet-overlay .findings li.bad{background:#fbeaea}:root[data-theme=dark] .sheet-overlay .findings li.warn{background:#fdf3e1}:root[data-theme=dark] .sheet-overlay .findings li.ok{background:#e6f3ea}:root[data-theme=dark] .sheet-overlay .pro-teaser-card{background:#fffffff5}:root[data-theme=dark] .sheet-overlay .pro-badge{color:#8a5a10;background:#fbecd0}.app.phone{flex-direction:column;height:100dvh;display:flex}.app.phone .phone-topbar{padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top));flex-wrap:nowrap;flex:none;align-items:center;gap:6px;display:flex}.phone-name{flex:1;width:auto;min-width:0;font-size:14px}.app.phone .viewport{flex:1;min-height:0}button.icon-only{padding:7px}.menu-list .menu-pro{color:#7a4c06;font-weight:700}.menu-list .menu-pro svg:first-child{color:var(--amber)}.phone-dock{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:6;gap:8px;display:flex;position:absolute}.phone-dock button{box-shadow:var(--shadow-md);border-radius:14px;flex:1;padding:12px 10px;font-size:14px;font-weight:650;position:relative}.phone-dock button:not(.primary){background:var(--glass-strong);border-color:var(--border)}.dock-badge{background:var(--danger);color:#fff;border-radius:10px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:11px;font-weight:800;display:grid;position:absolute;top:-7px;right:-5px}.app.phone .item-actions,.app.phone .view-banner{bottom:calc(78px + env(safe-area-inset-bottom))}.app.phone .walk-pad{bottom:calc(80px + env(safe-area-inset-bottom))}.app.phone .empty-van{top:auto;bottom:calc(80px + env(safe-area-inset-bottom));transform:translate(-50%)}.phone-sheet{z-index:150;background:var(--panel);height:62dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:18px 18px 0 0;flex-direction:column;transition:height .25s cubic-bezier(.2,.8,.3,1),transform .2s;animation:.26s cubic-bezier(.2,.8,.3,1) sheet-up;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 40px #0000002e}.phone-sheet.full{height:calc(100dvh - 56px)}.phone-sheet.dragging{transition:none}@keyframes sheet-up{0%{transform:translateY(100%)}}.phone-sheet-grab{touch-action:none;cursor:grab;flex:none;justify-content:center;align-items:center;height:30px;display:flex;position:relative}.grab-bar{background:var(--border-strong);width:46px;height:5px;box-shadow:none;border:0;border-radius:3px;padding:0;position:relative;min-height:0!important}.grab-bar:before{content:"";position:absolute;inset:-12px -40px}.phone-sheet-close{box-shadow:none;color:var(--muted);background:0 0;border:0;padding:5px;position:absolute;top:2px;right:10px}.phone-sheet-body{flex-direction:column;flex:1;min-height:0;display:flex}.phone-sheet-body>.panel{border:0;flex:1;height:auto;min-height:0;overflow-y:auto}.phone-sheet-body .catalog-head{padding-top:2px}@media (prefers-reduced-motion:reduce){.phone-sheet{transition:none;animation:none}}:root[data-theme=dark] .menu-list .menu-pro{color:#f1c983}:root[data-theme=dark] .phone-sheet{box-shadow:0 -12px 40px #0000008c}.crash{text-align:center;background:var(--panel);border:1px solid var(--border);max-width:460px;box-shadow:var(--shadow-md);border-radius:16px;margin:12vh auto 0;padding:28px}.crash h1{margin:0 0 8px;font-size:20px}.crash p{color:var(--muted);line-height:1.5}.scene-failed{text-align:center;background:var(--glass-strong);border:1px solid var(--border);width:min(420px,100% - 32px);box-shadow:var(--shadow-md);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:20px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.scene-failed p{color:var(--muted);margin:0 0 6px;font-size:13px;line-height:1.5}.feedback-form{flex-direction:column;gap:12px;display:flex}.feedback-form>p{margin:0}.feedback-form textarea{resize:vertical;min-height:110px;font:inherit;line-height:1.45}.feedback-form .btn-row{margin-top:0}.feedback-sent{text-align:center;flex-direction:column;align-items:center;gap:6px;padding:8px 0;display:flex}.feedback-sent p{margin:0 0 8px}.feedback-check{background:var(--accent-soft);width:44px;height:44px;color:var(--accent-ink);border-radius:50%;place-items:center;display:grid}.app.phone .item-actions-name,.app.phone .item-actions .btn-text{display:none}.app.phone .item-actions{max-width:calc(100% - 24px)}.refund-note{margin-top:12px}section.refund-note{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:10px 12px;display:flex}section.refund-note p{flex:1;margin:0}p.refund-note a{color:var(--accent-ink)}
