:root{--bg:#f7f3eb;--bg-soft:#fbf9f4;--surface:#fff;--surface-2:#fbf9f4;--border:#e8e1d6;--border-2:#e3dbcd;--text:#2b2722;--muted:#756b5e;--muted-2:#6b6256;--accent:#a64b32;--accent-hover:#8e3e28;--accent-strong:#8e3e28;--accent-soft:#f8ede7;--accent-grad:linear-gradient(150deg, #b0513a, #a64b32);--track:#f4eee4;--danger:#b85c5c;--ok-bg:#e7f0e3;--ok-border:#cadfc0;--ok-text:#3f6b3e;--err-bg:#fbecec;--err-border:#f0d2d2;--err-text:#8f3b3b;--warn-bg:#fef3c7;--warn-border:#f3e0a4;--radius:12px;--sheet-bg:#f6f1e8;--sheet-border:#d8c9ae;--font-sans:"Schibsted Grotesk", system-ui, -apple-system, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--panel:var(--surface);--panel-soft:#fdfbf7;--panel-muted:#faf7f1;--ink-soft:#5a5248;--module:#8b5cf6;--module-strong:#7c3aed;--module-soft:#ede9fe;--module-bg:#faf8ff;--module-border:#d8ccf6;--module-text:#5b21b6;--warn-text:#92400e;--brand-terracotta:#a64b32;--brand-walnut:#302b26;--brand-back:#372e28;--brand-sage:#71816c;--brand-cream:#f7f3eb;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#181410;--bg-soft:#211c16;--surface:#211c16;--surface-2:#1c1813;--border:#352d24;--border-2:#3d342a;--text:#f0e9df;--muted:#a89e8e;--muted-2:#b6ac9c;--accent:#ce6347;--accent-hover:#e07a5a;--accent-strong:#ce6347;--accent-soft:#2a211d;--accent-grad:linear-gradient(150deg, #ce6347, #b0432f);--track:#2a241d;--danger:#f87171;--ok-bg:#14241c;--ok-border:#1f5138;--ok-text:#4ade80;--err-bg:#2a1717;--err-border:#5b2424;--err-text:#fca5a5;--warn-bg:#33270e;--warn-border:#5b4a1d;--sheet-bg:#221d17;--sheet-border:#4a4036;--panel:var(--surface);--panel-soft:#241e18;--panel-muted:#1f1a15;--ink-soft:#c9bfb0;--module:#a78bfa;--module-strong:#c4b5fd;--module-soft:#2b2340;--module-bg:#221d2e;--module-border:#4b3d73;--module-text:#d4c8ff;--warn-text:#fcd34d;--brand-terracotta:#d0694c;--brand-walnut:#efe6d8;--brand-back:#efe6d8;--brand-sage:#9aab94;--brand-cream:#181410;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}:where(input,textarea,select){font:inherit;color:inherit}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}.app{max-width:1100px;margin:0 auto;padding:24px 20px 80px}.app-header h1{margin:0 0 4px;font-size:1.7rem}.subtitle{color:var(--muted);margin:0 0 24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px;padding:20px 22px;box-shadow:0 1px 2px #3223140a}.card h2{align-items:center;gap:10px;margin:0 0 16px;font-size:1.15rem;display:flex}.step{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:.9rem;font-weight:700;display:inline-flex}input.input-error,input.input-error:focus{background:var(--err-bg,#fef2f2);outline-color:var(--danger,#dc2626);border-color:var(--err-border,#fca5a5)!important}.field-error-pop{z-index:1200;box-sizing:border-box;border:1px solid var(--err-border,#fca5a5);background:var(--err-bg,#fef2f2);max-width:calc(100vw - 16px);color:var(--err-text,#8f3b3b);border-radius:10px;gap:8px;padding:10px 12px;font-size:.78rem;line-height:1.4;animation:.14s both popIn;display:flex;position:fixed;box-shadow:0 10px 26px #50141429}.field-error-icon{background:var(--danger,#dc2626);width:18px;height:18px;color:var(--err-bg,#fff);border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.field-error-text{min-width:0}.info-tip{cursor:help;text-underline-offset:3px;outline:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:1px}.info-tip:hover,.info-tip:focus-visible{color:var(--accent)}.info-tip:focus-visible{text-decoration-style:solid}.info-tip-pop{z-index:1200;box-sizing:border-box;border:1px solid var(--border-2);background:var(--surface);max-width:calc(100vw - 16px);color:var(--text);letter-spacing:normal;text-transform:none;pointer-events:none;border-radius:10px;padding:8px 10px;font-size:.75rem;font-weight:400;line-height:1.45;animation:.14s both popIn;display:block;position:fixed;box-shadow:0 10px 26px #281e142e}.form-error{border:1px solid var(--err-border,#fca5a5);border-left:3px solid var(--danger,#dc2626);background:var(--err-bg,#fef2f2);color:var(--err-text,#8f3b3b);border-radius:10px;gap:8px;margin:8px 0;padding:10px 12px;font-size:.82rem;line-height:1.45;display:flex}.form-error:before{content:"!";background:var(--danger,#dc2626);width:18px;height:18px;color:var(--err-bg,#fff);border-radius:50%;flex:none;place-items:center;font-size:.72rem;font-weight:700;display:grid}.field-error{color:var(--danger);margin-top:4px;font-size:.78rem;display:block}.field input[aria-invalid=true]{border-color:var(--danger)}.password-form{gap:4px;min-width:min(360px,80vw);display:grid}.password-form .field input{width:100%}:where(button,a[href],summary,[role=tab],[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--muted);padding:22px;transition:border-color .15s,background .15s}.dropzone strong{color:var(--text)}.dropzone:hover,.dropzone-over{border-color:var(--accent);background:var(--accent-soft)}.dropzone-hint{margin-top:6px;font-size:.82rem}.notice{border-radius:8px;margin-top:12px;padding:10px 14px;font-size:.9rem}.notice-ok{background:var(--ok-bg);border:1px solid var(--ok-border)}.notice-error{background:var(--err-bg);border:1px solid var(--err-border)}.notice-warn{background:var(--warn-bg);border:1px solid var(--warn-border)}.notice ul{margin:6px 0 0;padding-left:20px}.table-wrap{margin-top:14px;overflow-x:auto}.parts-table{border-collapse:collapse;width:100%;font-size:.92rem}.parts-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--border);padding:6px 8px;font-size:.8rem;font-weight:600}.parts-table th.num,.parts-table td.num{text-align:right}.parts-table td{border-bottom:1px solid var(--border);padding:4px 6px}.parts-table input{width:100%;min-width:70px;font:inherit;color:inherit;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 8px}.parts-table td.num input{text-align:right;min-width:60px}.parts-table input:hover{border-color:var(--border)}.parts-table input:focus{border-color:var(--accent);background:var(--surface);outline:none}.canto-box{margin-right:2px;display:inline-block}.canto-box input{width:auto;min-width:0}.canto-m{font-size:.8em}.row-actions{white-space:nowrap;text-align:right}.cut-plan-details{margin-top:8px}.cut-plan .cut-warn{background:var(--warn-bg)}.parts-actions{gap:10px;margin-top:12px;display:flex}.btn,.btn-primary{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;border-radius:8px;padding:8px 14px;transition:background .15s,border-color .15s}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:4px 10px;font-size:.85rem}.btn-primary{background:var(--accent-grad);color:#fff;border-color:#0000;font-weight:600;box-shadow:0 6px 16px #b0432f47}.btn-primary:hover{background:var(--accent-grad);filter:brightness(1.05)}.btn.btn-primary:hover:not(:disabled){color:#fff;border-color:#0000}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-lg{border-radius:10px;padding:12px 28px;font-size:1.05rem}.btn-icon{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:.95rem}.btn-icon:hover{background:var(--bg);color:var(--text)}.btn-icon.btn-danger:hover,.btn-ghost-danger{color:var(--danger)}.btn-ghost-danger:hover{border-color:var(--danger);color:var(--danger)}.empty-hint{color:var(--muted);font-size:.92rem}.groups-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.group-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:14px 16px}.group-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.group-head{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.group-title{flex-direction:column;flex:1;display:flex}.muted{color:var(--muted);font-size:.85rem;font-weight:400}.field{margin-top:10px;display:block}.field>span{color:var(--muted);margin-bottom:4px;font-size:.8rem;display:block}.field input,.field select{border:1px solid var(--border);font:inherit;background:var(--surface);color:inherit;border-radius:8px;padding:7px 9px}.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.sheet-size{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.sheet-size input{text-align:right;width:86px}.sheet-extra-list{flex-direction:column;gap:6px;display:flex}.field select.sheet-extra-add{width:auto;padding:3px 6px;font-size:12px}.offcut-section{border-top:1px dashed var(--border-2);padding-top:10px}.offcut-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.offcut-info{cursor:help}.offcut-empty{font-size:12px;font-style:italic}.grain-hint{margin-top:4px;font-size:12px;font-style:italic;display:block}.offcut-grid{grid-template-columns:1fr 14px 1fr 14px 64px 28px;align-items:center;gap:6px;display:grid}.offcut-grid input{box-sizing:border-box;text-align:right;width:100%}.offcut-grid .muted{text-align:center}.offcut-colh{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.offcut-remove{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:13px}.offcut-remove:hover{color:var(--accent);background:var(--accent-soft)}.offcut-force{color:var(--muted-2);cursor:pointer;align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.segmented{border:1px solid var(--border);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);font:inherit;cursor:pointer;color:var(--muted);border:none;padding:7px 12px;font-size:.88rem}.segmented button+button{border-left:1px solid var(--border)}.segmented .seg-active{background:var(--accent);color:#fff;font-weight:600}.merge-bar{margin-top:14px}.merge-hint{margin:14px 0 0;font-size:.85rem}.settings-panel{border-top:1px dashed var(--border);flex-wrap:wrap;gap:24px;margin-top:18px;padding-top:14px;display:flex}.field-inline input{text-align:right;width:90px}.algorithm-picker{flex-basis:100%}.algorithm-select{width:340px;max-width:100%}.algorithm-hint{max-width:62ch;margin:6px 0 0;font-size:11px}.optimize-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:10;justify-content:space-between;align-items:center;gap:16px;margin:24px 0;padding:14px 18px;display:flex;position:sticky;bottom:12px;box-shadow:0 4px 16px #32231414}.optimize-info{color:var(--muted)}.results-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.results-header h2{flex:1 0 100%}@media (width>=761px){.results-header h2{flex:auto}}.results-header h2{font-size:1.3rem}.summary-cards{flex-wrap:wrap;gap:14px;margin-bottom:10px;display:flex}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:140px;padding:12px 18px}.summary-value{color:var(--accent);font-size:1.8rem;font-weight:700}.summary-label{color:var(--text);font-size:.88rem}.group-result{margin-top:22px}.group-result h3{margin:0 0 10px;font-size:1.05rem}.sheets-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:18px;display:grid}.sheet-fig{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:12px}.sheet-fig figcaption{color:var(--muted);margin-bottom:8px;font-size:.85rem}.sheet-svg{width:100%;height:auto;display:block}.app-footer{color:var(--muted);text-align:center;margin-top:36px;font-size:.82rem}@media (width<=640px){.sheets-grid{grid-template-columns:1fr}.optimize-bar{text-align:center;flex-direction:column;align-items:stretch}}.apply-inventory .apply-list{flex-direction:column;gap:4px;margin:4px 0 10px;padding-left:20px;display:flex}.apply-check{cursor:pointer;align-items:center;gap:7px;display:inline-flex}.apply-done{color:#16a34a;font-weight:600}.apply-hint{margin:8px 0 0;font-size:.78rem}html,body,#root{height:100%}.home{background:radial-gradient(120% 80% at 50% -10%, #faf6ef 0%, var(--bg) 60%);max-width:1180px;min-height:100vh;margin:0 auto;padding:32px 32px 64px}:root[data-theme=dark] .home{background:radial-gradient(120% 80% at 50% -10%, #221c16 0%, var(--bg) 60%)}.home-header{animation:.5s both fadeInUp}.home-header h1{letter-spacing:-1.1px;margin:0 0 6px;font-size:2.4rem;font-weight:700}.home-header .subtitle{max-width:520px;color:var(--muted-2);font-size:.97rem}.home-email-reminder{border:1px solid var(--warn-border);border-radius:var(--radius);background:var(--warn-bg);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin:0 0 16px;padding:12px 14px;display:flex}.home-email-reminder p{margin:4px 0 0}.home-actions{flex-wrap:wrap;gap:9px;margin:28px 0 22px;display:flex}.home-library-tools,.modal-library-tools{flex-wrap:wrap;align-items:end;gap:10px;margin:0 0 16px;display:flex}.home-search,.home-sort{color:var(--muted);flex-direction:column;gap:5px;font-size:.78rem;font-weight:600;display:flex}.home-search{flex:260px;max-width:430px}.home-sort{flex:0 230px}.home-search input,.home-sort select{border:1px solid var(--border);background:var(--surface);width:100%;min-height:38px;color:var(--text);font:inherit;border-radius:10px;padding:8px 10px;font-weight:500}.home-search input:focus,.home-sort select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.modal-library-tools{margin-top:12px}.home-library-tools .kind-filter{align-self:end;margin:0}.home-empty{border:2px dashed var(--border-2);text-align:center;color:var(--muted);border-radius:16px;padding:48px;font-size:1.05rem}.home-empty-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px;display:flex}.project-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;transition:box-shadow .18s,transform .18s,border-color .18s;overflow:hidden;box-shadow:0 1px 2px #00000008}.project-card:hover{border-color:var(--border-2);transform:translateY(-3px);box-shadow:0 14px 30px #503c1e21}.project-open{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex-direction:column;gap:4px;padding:0 0 12px;display:flex;position:relative}.project-card.project-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft), 0 0 0 3px var(--accent)}.project-check{z-index:2;border:2px solid var(--border-2);background:color-mix(in srgb, var(--surface) 92%, transparent);color:#0000;border-radius:8px;justify-content:center;align-items:center;width:26px;height:26px;font-size:15px;display:flex;position:absolute;top:10px;left:10px}.project-check.on{background:var(--accent);border-color:var(--accent);color:#fff}.multi-select-bar{z-index:40;background:var(--text);width:min(680px,100vw - 48px);color:var(--bg-soft);border-radius:14px;justify-content:space-between;align-items:center;gap:20px;padding:14px 20px;display:flex;position:fixed;bottom:24px;left:50%;translate:-50%;box-shadow:0 14px 34px #00000047}.multi-select-info{font-size:.92rem}.multi-select-info b{font-family:var(--font-mono)}.multi-select-actions{gap:10px;display:flex}.multi-select-actions .btn{color:var(--bg-soft);background:0 0;border-color:#ffffff40}.multi-select-actions .btn:hover{background:#ffffff1a}.project-open .project-thumb,.project-open .project-thumb-img{object-fit:cover;background:linear-gradient(#0000000f 1px,#0000 1px) 0 0/22px 22px,linear-gradient(90deg,#0000000f 1px,#0000 1px) 0 0/22px 22px,linear-gradient(160deg,#f6f2eb,#e9e3d7);border:none;border-radius:0;place-items:center;width:100%;height:158px;margin:0 0 12px;font-size:2.6rem;display:grid}.project-name-row{letter-spacing:-.2px;padding:0 15px;font-size:1rem;font-weight:600}.project-open .muted{font-family:var(--font-mono);padding:0 15px;font-size:.78rem}.project-date-line{color:var(--muted-2);font-family:var(--font-mono);padding:0 15px;font-size:.72rem;line-height:1.25}.project-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:6px;margin:0 0 1px;padding:13px 15px;display:flex}.editor{flex-direction:column;height:100vh;display:flex;overflow:hidden}.editor-body{flex:1;min-height:0;display:flex}.editor-canvas-wrap{isolation:isolate;flex:1;min-width:0;min-height:0;position:relative}.editor-canvas-wrap canvas{touch-action:none}.despiece{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:20px 20px 88px;overflow-y:auto}.despiece-hint{margin:10px 2px 0;font-size:.85rem}.despiece-table td{padding:8px 10px}.despiece-table td.num,.despiece-table th.num,.despiece-seccion-total{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.despiece-summary{margin:0 0 16px}.despiece-kpis{grid-template-columns:repeat(4,1fr);gap:9px;display:grid}.despiece-kpi{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:1px;padding:12px;display:flex}.despiece-kpi-num{font-size:1.5rem;font-weight:700;font-family:var(--font-mono);letter-spacing:-1px;font-variant-numeric:tabular-nums}.despiece-kpi-lbl{color:var(--muted);font-size:.7rem}.despiece-mats{margin-top:14px}.despiece-mats-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-2);margin-bottom:9px;font-size:.72rem;font-weight:700}.despiece-mat{background:var(--surface);border:1px solid var(--border);border-radius:11px;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;margin-bottom:8px;padding:10px 11px;display:grid}.despiece-mat-dot{border-radius:6px;width:20px;height:20px;box-shadow:inset 0 0 0 1px #00000021}.despiece-mat-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.82rem;font-weight:600;overflow:hidden}.despiece-mat-val{color:var(--muted);font-size:.72rem;font-family:var(--font-mono)}.despiece-mat-bar{background:var(--bg);border-radius:4px;grid-column:1/-1;height:6px;overflow:hidden}.despiece-mat-bar>div{border-radius:4px;min-width:3px;height:100%}.despiece-tabla-unica thead th{z-index:2;background:var(--surface);position:sticky;top:0}.despiece-seccion td{background:var(--bg,var(--surface));padding:0}.despiece-seccion-btn{cursor:pointer;width:100%;font:inherit;text-align:left;color:inherit;background:0 0;border:0;align-items:center;gap:8px;padding:9px 10px;font-weight:600;display:flex}.despiece-seccion-btn:hover{background:var(--bg-soft)}.despiece-chevron{width:.9em;color:var(--muted);font-size:.8rem}.despiece-seccion-nombre{flex:1;min-width:0}.despiece-seccion-total{color:var(--muted);white-space:nowrap;font-size:.8rem;font-weight:500}.despiece-grupo{margin-bottom:18px}.despiece-grupo-titulo{align-items:center;gap:8px;margin:0 0 8px;font-size:1rem;display:flex}.despiece-grupo-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.despiece-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.despiece-head h2{margin:0}.despiece-vista-toggle{gap:6px;display:inline-flex}.multi-despiece-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.multi-despiece-head h2{margin:6px 0 0}.multi-back{color:var(--muted-2);background:0 0;border:none;padding-left:0}.multi-back:hover{color:var(--text);background:0 0}.multi-chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.multi-chip{background:var(--surface);border:1px solid var(--border-2);border-radius:20px;align-items:center;gap:6px;padding:4px 11px;font-size:12px;display:inline-flex}.multi-chip-dot{border-radius:3px;flex:none;width:11px;height:11px}.multi-proyecto{margin-top:16px}.multi-proyecto-head{text-align:left;background:var(--accent-soft);border:1px solid var(--border-2);cursor:pointer;width:100%;color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:15px;font-weight:600;display:flex}.multi-proyecto-head:hover{border-color:var(--accent)}.multi-proyecto-nombre{flex:1}.multi-proyecto-total{font-family:var(--font-mono);color:var(--muted-2);font-size:12px;font-weight:400}.multi-proyecto .parts-table{margin-top:8px}.despiece-compacta-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.despiece-compacta-btns{gap:8px;display:inline-flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:20;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:8px 14px;display:flex;position:relative}.topbar-save-error{z-index:21;margin:6px 0 0;position:absolute;top:100%;left:14px;right:14px;box-shadow:0 10px 24px #50141424}.topbar-left{flex:1 1 0;align-items:center;gap:8px;min-width:0;display:flex}.project-name{font:inherit;width:200px;color:inherit;background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 10px;font-weight:600}.project-name:hover{border-color:var(--border)}.project-name:focus{border-color:var(--accent);background:var(--surface);outline:none}.chip{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:.75rem}.topbar-tabs{background:var(--track);border-radius:11px;gap:3px;padding:4px;display:flex}.tab{font:inherit;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:7px 18px;font-size:.85rem;font-weight:600;transition:color .15s,background .15s,box-shadow .15s}.tab:hover{color:var(--text)}.tab-active,.tab-active:hover{color:var(--accent-strong);background:var(--surface);box-shadow:0 1px 3px #00000014}.topbar-right{flex-wrap:wrap;flex:1 1 0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.topbar .topbar-more,.topbar-menu-usage{display:none}.topbar-extra{display:contents}@media (width>=1024px){.topbar .topbar-more{order:1;font-weight:700;display:inline-grid}.topbar-more[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.topbar-right{flex-wrap:nowrap}.topbar-extra{display:none}.topbar-right--open .topbar-extra{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:8px;padding:12px;animation:.14s both popIn;display:flex;position:absolute;top:calc(100% + 6px);right:8px;box-shadow:0 12px 32px #3223142e}}@media (width>=1024px) and (width<=1439px){.topbar .project-name{flex:0 200px;width:auto;min-width:80px}.save-chip-label{display:none}}@media (width>=1024px) and (width<=1279px){.topbar-usage{display:none}.topbar-right--open .topbar-menu-usage{display:block}}@media (width>=1024px) and (width<=1700px){.tb-pill-label{display:none}}@media (width<=1023px){.topbar{flex-wrap:nowrap;gap:6px;padding:6px 8px}.topbar-left{flex:auto;gap:4px}.topbar .project-name{flex:1 1 0;width:auto;min-width:0;padding:6px}.topbar-usage,.save-chip-label{display:none}.topbar .save-chip{padding:3px 8px}.topbar-tabs{flex:none;padding:3px}.topbar-tabs .tab{padding:6px 10px;font-size:.8rem}.topbar .topbar-more{font-weight:700;display:inline-grid}.topbar-more[aria-expanded=true]{border-color:var(--accent);color:var(--accent)}.topbar-right{display:none}.topbar-right--open{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:12px;justify-content:flex-start;padding:12px;animation:.14s both popIn;display:flex;position:absolute;top:calc(100% + 6px);left:8px;right:8px;box-shadow:0 12px 32px #3223142e}.topbar-menu-usage{flex-basis:100%;display:block}}@media (width>=641px) and (width<=1023px){.topbar-right--open{width:min(440px,100% - 16px);left:auto}}@media (width<=640px){.topbar .materials-pop{width:auto;top:50px;left:0}.editor-body{position:relative}body:has(.demo-bar) .editor{height:calc(100dvh - var(--demo-bar-h,0px))}.structure-panel{z-index:14;width:min(280px,100% - 72px);position:absolute;top:0;bottom:0;left:60px;box-shadow:10px 0 30px #32231424}.editor-body>.props-panel{border-left:none;border-top:1px solid var(--border);border-radius:16px 16px 0 0;width:auto;max-height:45%;position:absolute;bottom:0;left:60px;right:0;box-shadow:0 -10px 30px #32231424}}.icon-btn{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:10px;flex:none;place-items:center;font-size:1.1rem;transition:background .15s,border-color .15s,color .15s,transform .12s;display:inline-grid}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.icon-btn:active{transform:scale(.94)}.tb-pill{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 13px;font-size:.82rem;transition:background .15s,border-color .15s,color .15s,transform .12s;display:inline-flex}.tb-pill:hover{border-color:var(--accent);color:var(--accent)}.tb-pill:active{transform:scale(.96)}.tb-pill-on,.tb-pill-on:hover{background:var(--accent);border-color:var(--accent);color:#fff}.tb-pill-danger:hover{border-color:var(--danger);color:var(--danger)}.btn-toggled,.btn.btn-toggled:hover{border-color:var(--accent);color:#fff;background:var(--accent)}.btn.btn-toggled:hover{background:color-mix(in srgb, var(--accent) 88%, #000)}.grid-select{border:1px solid var(--border);font:inherit;background:var(--surface);color:inherit;border-radius:8px;padding:6px 8px;font-size:.85rem}.defaults-pop,.materials-pop{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;min-width:230px;padding:14px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #32231429}.defaults-pop label{color:var(--muted);flex-direction:column;gap:4px;font-size:.82rem;display:flex}.defaults-pop input{border:1px solid var(--border);font:inherit;color:inherit;border-radius:8px;padding:7px 9px}.materials-pop{border:none;border-left:1px solid var(--border);border-radius:0;width:330px;max-height:none;animation:.22s both slidein-right;position:fixed;top:54px;bottom:0;right:0;overflow-y:auto;box-shadow:-10px 0 30px #3223141a}.materials-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.materials-head>div{flex-direction:column;gap:2px;display:flex}.materials-head strong{font-size:.98rem}.materials-head span{color:var(--muted);font-size:.78rem}.material-default-thickness{color:var(--text);justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;font-weight:500;display:flex}.material-default-thickness .thickness-input{color:var(--muted);align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.material-default-thickness input{text-align:right;width:76px}.materials-list{flex-direction:column;gap:10px;display:flex}.material-card{border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.material-card-main{align-items:center;gap:9px;display:flex}.material-card input,.material-card select,.material-default-thickness input{border:1px solid var(--border);font:inherit;color:inherit;background:var(--surface);border-radius:8px;padding:6px 8px}.material-card input:focus,.material-card select:focus,.material-default-thickness input:focus{border-color:var(--accent);outline:none}.material-color{cursor:pointer;border:1px solid var(--border);flex:none;width:34px;height:34px;border-radius:9px!important;padding:2px!important}.material-name{flex:1;min-width:0;background:0 0!important;border-color:#0000!important;font-weight:600!important}.material-name:hover{border-color:var(--border)!important}.material-name:focus{border-color:var(--accent)!important;background:var(--surface)!important}.material-options{grid-template-columns:1fr 1fr;align-items:end;gap:10px;display:grid}.material-options label{color:var(--muted);flex-direction:column;gap:4px;font-size:.74rem;display:flex}.material-options select,.material-options input[type=number]{width:100%}.material-options .grain-intensity{grid-column:1/-1}.grain-intensity input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;padding:0}.material-default{color:var(--text);cursor:pointer;border-top:1px dashed var(--border);flex-direction:row;align-items:center;gap:8px;padding-top:8px;font-size:.8rem;display:flex}.material-default input{width:auto;accent-color:var(--accent);cursor:pointer}.material-add{border:1px dashed var(--border);width:100%;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:10px;padding:9px 14px;font-size:.85rem;transition:border-color .15s,color .15s,background .15s}.material-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.btn-icon-lg{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:38px;height:38px;color:inherit;border-radius:10px;font-size:1.15rem}.btn-icon-lg:hover{border-color:var(--accent);color:var(--accent)}.toolbar{z-index:16;flex:none;width:60px}.toolbar-inner{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:3px;height:100%;padding:12px 0;display:flex}.tool-btn{width:42px;height:40px;font-size:.85rem;font-weight:700;font-family:var(--font-mono);cursor:pointer;color:var(--muted-2);background:0 0;border:none;border-radius:11px;place-items:center;display:grid}.tool-btn svg{display:block}.tool-btn:hover{background:var(--track);color:var(--text)}.tool-active,.tool-active:hover{background:var(--accent-soft);color:var(--accent-strong)}.tool-primary{background:var(--accent-grad);color:#fff;border-radius:13px;font-size:1.5rem;box-shadow:0 5px 14px #b0432f52}.tool-primary:hover{background:var(--accent-grad);filter:brightness(1.06)}.tool-primary.tool-active{box-shadow:none}.tool-sep{background:var(--border);width:28px;height:1px;margin:4px 0}.tool-rail-bottom{flex-direction:column;align-items:center;gap:3px;width:100%;margin-top:auto;display:flex}.view-controls{z-index:8;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:12px;right:12px}.view-toggle{background:var(--surface);border:1px solid var(--border);border-radius:9px;gap:2px;padding:3px;display:flex;box-shadow:0 2px 8px #3223140f}.view-toggle button{font:inherit;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 11px;font-size:.74rem;font-weight:700}.view-toggle button.on{background:var(--accent);color:#fff}.view-zoom{background:var(--surface);border:1px solid var(--border);border-radius:9px;flex-direction:column;gap:3px;padding:5px;display:flex;box-shadow:0 2px 8px #3223140f}.view-zoom button{width:30px;height:30px;color:var(--muted-2);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;font-size:1rem;display:grid}.view-zoom button:hover{background:var(--track);color:var(--text)}.view-zoom-pct{font-family:var(--font-mono);font-variant-numeric:tabular-nums;padding:2px 0;height:auto!important;color:var(--muted)!important;font-size:.66rem!important}.tool-strip{z-index:8;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);color:var(--muted-2);white-space:nowrap;border-radius:11px;align-items:center;gap:10px;padding:8px 14px;font-size:.78rem;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #32231412}.tool-strip-tool strong{color:var(--text);font-weight:600}.tool-strip-sep{background:var(--border-2);width:1px;height:14px}.tool-strip-path{font-family:var(--font-mono);color:var(--muted)}.tool-strip-placing{border-color:var(--accent);background:color-mix(in srgb, var(--accent-soft) 92%, transparent)}.tool-strip-placing .tool-strip-hint{color:var(--text)}.tool-strip-hint{color:var(--muted)}.tool-strip-hint,.tool-strip-path{text-overflow:ellipsis;max-width:46vw;overflow:hidden}.catalog-wrap{position:relative}.catalog-backdrop{z-index:59;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#28201847;animation:.18s both popIn;position:fixed;inset:0}.catalog-pop{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:18px;width:fit-content;min-width:min(430px,100vw - 88px);max-width:min(560px,100vw - 88px);max-height:92vh;padding:18px 20px;animation:.24s both slidein;position:fixed;top:50%;left:72px;overflow:hidden auto;translate:0 -50%;box-shadow:0 24px 60px #32231442}.catalog-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.catalog-head strong{font-size:1rem}.catalog-section+.catalog-section{border-top:1px dashed var(--border);margin-top:14px;padding-top:12px}.catalog-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;font-size:11px;display:block}.catalog-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.catalog-grid-mods,.catalog-grid-2{grid-template-columns:1fr 1fr}.catalog-grid-mods .cat-card{text-align:left;flex-direction:row;justify-content:flex-start;gap:9px;padding:10px}.catalog-grid-mods .cat-icon{flex:none;font-size:1.2rem}.cat-card{border:1px solid var(--border);background:var(--surface);overflow-wrap:anywhere;min-width:0;font:inherit;cursor:pointer;color:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;font-size:.8rem;transition:border-color .15s,transform .15s,box-shadow .15s,background .15s;display:flex}.cat-card:hover:not(:disabled){border-color:var(--border-2);transform:translateY(-2px);box-shadow:0 8px 18px #503c1e1a}.cat-card:disabled{opacity:.45;cursor:not-allowed}.cat-text{flex-direction:column;gap:1px;min-width:0;display:flex}.cat-label{font-weight:600}.cat-sub{color:var(--muted);font-size:.72rem}.cat-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--accent-strong);border-radius:10px;place-items:center;font-size:1.25rem;display:grid}.catalog-disabled .catalog-title{opacity:.6}.cat-card-more{border-style:dashed}.cat-card-more .cat-icon{background:var(--bg);color:var(--muted);letter-spacing:1px}.cat-chips{flex-wrap:wrap;gap:6px;margin:10px 0 14px;display:flex}.cat-chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:5px 12px;font-size:.8rem;transition:border-color .15s,background .15s,color .15s}.cat-chip:hover{border-color:var(--border-2);color:var(--text)}.cat-chip-on{background:var(--accent-soft);border-color:var(--accent-strong);color:var(--accent-strong)}.catalog-grid-modal{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.catalog-hint{color:var(--muted);margin:8px 0 0;font-size:.76rem}.rail-badge{position:relative}.rail-badge:after{content:attr(data-badge);background:var(--accent);color:#fff;border-radius:999px;padding:1px 6px;font-size:.68rem;font-weight:700;position:absolute;top:-2px;right:-2px}.structure-panel{background:var(--bg-soft);border-right:1px solid var(--border);flex-direction:column;flex:none;width:258px;min-height:0;display:flex}.structure-head{align-items:center;gap:8px;padding:13px 15px 11px;display:flex}.structure-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted-2);font-size:.78rem;font-weight:700}.structure-count{font-size:.7rem;font-weight:600;font-family:var(--font-mono);color:var(--accent-strong);background:var(--accent-soft);border-radius:6px;padding:2px 7px}.structure-collapse{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;margin-left:auto;font-size:.7rem;display:grid}.structure-collapse:hover{background:var(--track);color:var(--text)}.structure-fab-anchor{z-index:8;flex:none;width:0;position:relative}.structure-fab{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:9px;align-items:center;gap:7px;padding:8px 13px;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 2px 8px #3223140f}.structure-fab:hover{border-color:var(--accent);color:var(--accent-strong)}.structure-fab-label{font-size:.78rem;font-weight:600}.structure-list{flex:1;padding:0 9px 14px;overflow-y:auto}.structure-empty{color:var(--muted);padding:18px 6px;font-size:.82rem}.struct-group{margin-bottom:4px}.struct-group-head{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:9px;align-items:center;gap:8px;padding:9px;display:flex}.struct-group-head:hover{background:var(--track)}.struct-group-head.sel{background:var(--accent-soft)}.struct-chevron{color:var(--muted);font-size:.7rem;transition:transform .15s}.struct-chevron.open{transform:rotate(90deg)}.struct-mod-icon{background:var(--accent-soft);width:24px;height:24px;color:var(--accent-strong);border-radius:7px;flex:none;place-items:center;font-size:.9rem;display:grid}.struct-mod-text{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.struct-mod-name{white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:600;overflow:hidden}.struct-mod-sub{color:var(--muted);font-size:.68rem;font-family:var(--font-mono)}.struct-children{border-left:1.5px solid var(--border-2);margin-left:11px;padding-left:5px}.struct-loose{margin-top:8px;padding:0 4px}.struct-loose-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:8px 6px 6px;font-size:.68rem;font-weight:700}.struct-piece{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;padding:7px 9px;display:flex}.struct-piece:hover{background:var(--track)}.struct-piece.sel{background:var(--accent-soft);font-weight:600}.struct-dot{border-radius:2.5px;flex:none;width:9px;height:9px;box-shadow:inset 0 0 0 1px #0000001f}.struct-piece-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.78rem;overflow:hidden}.struct-piece-dim{color:var(--muted);font-size:.66rem;font-family:var(--font-mono)}.structure-search{flex:none;padding:0 12px 10px;position:relative}.structure-search input{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:7px;outline:none;padding:6px 26px;font-size:.78rem}.structure-search input::placeholder{color:var(--muted)}.structure-search input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.structure-search-icon{color:var(--muted);pointer-events:none;font-size:.95rem;position:absolute;top:50%;left:20px;transform:translateY(-60%)}.structure-search-clear{width:18px;height:18px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;font-size:.7rem;line-height:1;display:grid;position:absolute;top:50%;right:18px;transform:translateY(-60%)}.structure-search-clear:hover{background:var(--track);color:var(--text)}.struct-hit{background:var(--accent-soft);color:var(--accent-strong);border-radius:3px;padding:0 1px}.selection-pill{z-index:16;position:absolute;bottom:84px;left:50%;transform:translate(-50%)}.pill{background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:8px 8px 8px 16px;display:flex;box-shadow:0 6px 22px #32231424}.pill-name{font-weight:600}.pill-swatch{border:1px solid #32231433;border-radius:4px;flex:none;width:14px;height:14px}.pill input{border:1px solid var(--accent);font:inherit;border-radius:8px;padding:4px 8px}.pill-menu-btn{cursor:pointer;width:30px;height:30px;color:var(--muted);background:0 0;border:none;border-radius:50%;font-size:1.1rem}.pill-menu-btn:hover{background:var(--bg);color:var(--text)}.ctx-menu{background:var(--surface);border:1px solid var(--border);z-index:45;border-radius:14px;min-width:210px;padding:6px;position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50%;box-shadow:0 16px 44px #32231433}.ctx-menu button{width:100%;font:inherit;text-align:left;cursor:pointer;color:inherit;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;padding:9px 12px;display:flex}.ctx-menu button:hover{background:var(--bg)}.ctx-menu kbd{color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:.7rem}.ctx-menu hr{border:none;border-top:1px solid var(--border);margin:4px 8px}.ctx-danger{color:var(--danger)}.props-panel{z-index:15;background:var(--surface);border-left:1px solid var(--border);flex:none;width:300px;min-height:0;padding:16px;overflow-y:auto}.props-head{border-bottom:1px solid var(--border);margin:-2px 0 4px;padding-bottom:12px}.props-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.68rem;font-weight:700;display:block}.props-title{letter-spacing:-.2px;align-items:center;gap:9px;margin-top:8px;font-size:1rem;font-weight:700;display:flex}.props-dot{border-radius:3px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000024}.props-title-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.props-lock{flex:none;margin-left:auto}.props-sub{font-family:var(--font-mono);color:var(--muted);margin-top:4px;font-size:.72rem;display:block}.props-panel fieldset{border:none;margin:0;padding:0}.props-panel fieldset:disabled{opacity:.55}.props-section{margin-top:12px}.props-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:.74rem;display:block}.props-row3{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.props-row4{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.props-row3 label,.props-row4 label{color:var(--muted);flex-direction:column;gap:2px;font-size:.72rem;display:flex}.props-panel input,.props-panel select{border:1px solid var(--border);width:100%;font:inherit;color:inherit;background:var(--surface);border-radius:7px;padding:5px 7px;font-size:.86rem}.props-panel input{font-family:var(--font-mono);text-align:center;font-weight:500}.props-panel input:focus,.props-panel select:focus{border-color:var(--accent);outline:none}.numfield-steppers{align-items:stretch;width:100%;display:flex}.numfield-steppers input{border-left:none;border-right:none;border-radius:0;flex:1;min-width:0;padding-left:2px;padding-right:2px}.numfield-step{border:1px solid var(--border);background:var(--surface);width:18px;color:var(--muted-2);cursor:pointer;flex:none;padding:0;font-size:.8rem;line-height:1}.numfield-step:first-child{border-radius:7px 0 0 7px}.numfield-step:last-child{border-radius:0 7px 7px 0}.numfield-step:hover:not(:disabled){background:var(--track);color:var(--text)}.numfield-step:disabled{opacity:.4;cursor:default}.props-wide{width:100%}.props-section .btn{margin-top:8px}.edge-check{cursor:pointer;align-items:center;flex-direction:row!important;gap:4px!important}.edge-check input{width:auto!important}.hole-row{align-items:flex-end;gap:4px;margin-bottom:6px;display:flex}.hole-row label{color:var(--muted);flex-direction:column;flex:1;font-size:.68rem;display:flex}.hole-kind{padding-bottom:5px;font-size:1rem}.quick-head{align-items:center;gap:14px;display:flex}.import-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:8px;display:grid}.import-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px;display:flex}.import-card:hover:not(:disabled){border-color:var(--accent)}.import-card:disabled{opacity:.6;cursor:default}.import-thumb{object-fit:cover;background:var(--bg);border-radius:6px;width:100%;height:84px}.import-thumb-empty{color:var(--muted);justify-content:center;align-items:center;font-size:28px;display:flex}.import-name{font-size:.85rem;font-weight:600}.import-sub{color:var(--muted);font-size:.75rem}.cfg-drawers{flex-direction:column;gap:6px;display:flex}.cfg-drawer-head{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);grid-template-columns:26px 1fr 1fr 1fr 1fr;gap:8px;padding:0 2px;font-size:9.5px;font-weight:700;display:grid}.cfg-drawer-row{grid-template-columns:26px 1fr 1fr 1fr 1fr;align-items:start;gap:8px;display:grid}.cfg-drawer-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.cfg-drawer-eq{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;padding-left:2px;font-size:9.5px}.cfg-drawer-row input{border:1px solid var(--border);background:var(--surface);font-family:var(--font-mono);color:var(--text);border-radius:7px;outline:none;width:100%;padding:7px 8px;font-size:12.5px}.cfg-drawer-idx{color:var(--muted);font-weight:600;font-family:var(--font-mono);padding-top:8px;font-size:.8rem}.cfg-drawer-sum{color:var(--ok-text,#15803d);align-items:center;gap:7px;margin-top:4px;padding:0 2px;font-size:.78rem;font-weight:700;display:flex}.cfg-drawer-sum-val{font-family:var(--font-mono)}.cfg-drawer-sum.err{color:var(--danger,#dc2626)}.cfg-shelf-group{flex-direction:column;gap:8px;display:flex}.cfg-shelves{flex-direction:column;gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.cfg-shelf-head,.cfg-shelf-subhead,.cfg-shelf-row{grid-template-columns:26px 90px repeat(2,minmax(78px,1fr)) 78px;align-items:center;gap:8px;min-width:390px;display:grid}.cfg-shelves--l .cfg-shelf-head,.cfg-shelves--l .cfg-shelf-subhead,.cfg-shelves--l .cfg-shelf-row{grid-template-columns:26px 90px repeat(4,minmax(78px,1fr)) 78px;min-width:700px}.cfg-shelf-head,.cfg-shelf-subhead{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;padding:0 2px;font-size:9.5px;font-weight:700}.cfg-shelf-head .cfg-shelf-part-head{text-align:center;grid-column:span 2}.cfg-shelf-subhead{font-size:8.5px;font-weight:600}.cfg-shelf-subhead span:not(:first-child):not(:nth-child(2)){text-align:center}.cfg-shelf-part{grid-column:span 2;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.cfg-shelf-row input{border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-mono);border-radius:7px;outline:none;width:100%;padding:7px 8px;font-size:12.5px}.cfg-shelf-status{color:var(--ok-text,#15803d);align-items:center;gap:8px;margin-top:2px;padding:0 2px;font-size:.78rem;font-weight:700;display:flex}.cfg-shelf-status.err{color:var(--danger,#dc2626)}.cfg-shelf-status span+span{font-weight:500}.btn-module{border-color:var(--module-border);color:var(--module-text);background:var(--module-bg)}.btn-module:hover{border-color:var(--module);background:var(--module-soft)}.home-tools{border-left:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;margin-left:4px;padding-left:14px;display:flex}.btn-tool{font-weight:500}.lib-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 16px;padding:10px 12px;display:flex}.lib-search{border:1px solid var(--border);background:var(--bg,#fbf8f2);border-radius:10px;flex:240px;align-items:center;gap:9px;min-width:0;padding:8px 12px;display:flex}.lib-search span{opacity:.45}.lib-search input{font:inherit;min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1}.lib-seg{background:var(--border);border-radius:10px;gap:2px;padding:3px;display:flex}.lib-seg button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:7px 14px;font-size:.85rem;font-weight:600}.lib-seg button.on{background:var(--accent);color:#fff;box-shadow:0 1px 3px #0000002e}.lib-sort{border:1px solid var(--border);font:inherit;background:var(--bg,#fbf8f2);color:var(--text);border-radius:10px;padding:8px 10px;font-size:.85rem;font-weight:500}.lib-count{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:.82rem;font-weight:500}.project-thumb-wrap{display:block;position:relative}.thumb-modulo .project-thumb,.thumb-modulo .project-thumb-img{background:linear-gradient(0deg, var(--module-soft), #f6f3ff)}.kind-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);margin:0;position:absolute;top:9px;left:9px}.kind-overlay.kind-mueble{background:#dcfce7eb}.kind-overlay.kind-modulo{background:#ede9fef0}.open-hint{color:var(--ink-soft);opacity:0;pointer-events:none;background:#ffffffeb;border-radius:999px;padding:4px 11px;font-size:.75rem;font-weight:600;transition:opacity .15s;position:absolute;bottom:9px;right:9px}.project-open:hover .open-hint{opacity:1}.project-meta-line{font-family:var(--font-mono);font-size:.75rem}.project-actions{opacity:.55;transition:opacity .15s}.project-card:hover .project-actions{opacity:1}.seller-report{color:var(--warn-text);margin-left:auto}.seller-meta{margin:2px 0 0}.seller-bio{white-space:pre-wrap;max-width:560px;margin:6px 0 0}.reports-panel{padding:4px 0 30px}.reports-head{align-items:center;gap:12px;margin-bottom:12px;display:flex}.reports-head h2{margin:0;font-size:1.1rem}.reports-table{border-collapse:collapse;background:var(--surface,#fff);border:1px solid var(--border,#e7dfd2);border-radius:12px;width:100%;font-size:.86rem;overflow:hidden}.reports-table th,.reports-table td{text-align:left;border-bottom:1px solid var(--border,#efe8da);vertical-align:top;padding:9px 12px}.reports-table th{background:var(--panel-muted);text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#8a8177);font-size:.72rem}.reports-reason{max-width:320px}.reports-target{font-size:.7rem}.reports-actions{flex-wrap:wrap;gap:6px;display:flex}.dim-label{background:var(--surface);color:#0f766e;white-space:nowrap;cursor:pointer;border:1px solid #0f766e;border-radius:5px;padding:1px 6px;font-size:11px;font-weight:600}.dim-label-solid{color:#fff;background:#0f766ef2}.dim-label:disabled{cursor:default;opacity:.75}.dim-editor{background:var(--surface);border:1px solid var(--border);border-radius:6px;align-items:center;gap:4px;padding:2px 4px;display:flex}.enc-tabs{grid-template-columns:repeat(4,1fr);gap:5px;display:grid}.enc-tab{border:1px solid var(--border);background:var(--surface);color:var(--muted-2);cursor:pointer;border-radius:9px;place-items:center;padding:9px 4px;display:grid}.enc-tab:hover{border-color:var(--border-2);color:var(--text)}.enc-tab[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.enc-shape{width:28px;height:22px;display:block;position:relative}.enc-shape i{background:currentColor;border-radius:1px;display:block;position:absolute}.enc-plan{border:1px solid var(--border);background:var(--surface-2);border-radius:9px;height:196px;position:relative}.enc-plan .encw{background:#334155;border-radius:1px;display:block;position:absolute}:root[data-theme=dark] .enc-plan .encw{background:#94a3b8}.enc-cap{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:9.5px;font-weight:600;position:absolute;top:10px;left:12px}.enc-field{width:92px;position:absolute}.enc-field-sm{width:78px}.enc-field input{background:var(--surface)}.props-help{color:var(--muted);margin:7px 0 0;font-size:.7rem;line-height:1.5}.wall-toolbar{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:center;gap:13px;padding:7px 10px 7px 12px;display:flex;position:absolute;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #2b27221a}.wt-tool{flex:none;font-size:.78rem;font-weight:600}.wt-sep{background:var(--border);flex:none;align-self:stretch;width:1px}.wt-group{color:var(--muted);white-space:nowrap;flex:none;align-items:center;gap:7px;font-size:.72rem;display:flex}.wt-group input{border:1px solid var(--border);width:66px;font-family:var(--font-mono);text-align:center;color:var(--text);background:var(--surface);border-radius:7px;padding:4px 6px;font-size:.8rem;font-weight:500}.wt-seg{border:1px solid var(--border);border-radius:8px;flex:none;display:flex;overflow:hidden}.wt-seg button{border:0;border-right:1px solid var(--border);background:var(--surface);font:500 .74rem var(--font-sans);color:var(--muted-2);cursor:pointer;white-space:nowrap;padding:5px 9px}.wt-seg button:last-child{border-right:0}.wt-seg button:hover{color:var(--text)}.wt-seg button[aria-pressed=true]{background:var(--accent);color:#fff}.wt-hint{color:var(--muted-2);white-space:nowrap;font-size:.74rem}.wt-typed{font-family:var(--font-mono);color:#fff;background:#0f766e;border-radius:7px;flex:none;padding:4px 9px;font-size:.82rem;font-weight:600}.wt-step{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;flex:none;font-size:.68rem;font-weight:600}.mark-row select{flex:none;width:auto;min-width:96px}.mark-row label{flex:auto;min-width:62px}.mark-row .btn-icon{flex:none}.evicted-overlay,.takeover-overlay{z-index:3000;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.evicted-card,.takeover-card{border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--panel);border-radius:12px;max-width:520px;padding:28px;box-shadow:0 18px 48px #00000047}.evicted-card h2,.takeover-card h2{margin:0 0 12px;font-size:1.15rem}.evicted-card p,.takeover-card p{margin:0 0 12px;line-height:1.5}.evicted-card-warn{border-left-color:var(--danger,#dc2626)}.evicted-ok{color:var(--ok,var(--ok-text))}.evicted-warn{color:var(--danger,#dc2626)}.evicted-actions{align-items:center;gap:14px;margin-top:20px;display:flex}.takeover-spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;margin-bottom:14px;animation:.8s linear infinite takeover-spin}@keyframes takeover-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.takeover-spinner{animation-duration:2.4s}}.unsaved-banner{z-index:2500;border-top:3px solid var(--warn,#d97706);background:color-mix(in srgb, var(--warn,#d97706) 14%, var(--panel));pointer-events:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 20px #0000002e}.unsaved-banner-grave{border-top-color:var(--danger,#dc2626);background:color-mix(in srgb, var(--danger,#dc2626) 14%, var(--panel))}.unsaved-text{flex:320px;min-width:0;font-size:.86rem;line-height:1.45}.unsaved-nodraft{color:var(--danger,#dc2626);font-weight:600}.unsaved-actions{pointer-events:auto;flex:none;gap:8px;display:flex}.recover-overlay{z-index:2800;background:color-mix(in srgb, var(--bg) 78%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.recover-card{border:1px solid var(--border);border-left:4px solid var(--warn,#d97706);background:var(--panel);border-radius:12px;max-width:520px;padding:26px;box-shadow:0 18px 48px #00000042}.recover-card h2{margin:0 0 12px;font-size:1.1rem}.recover-card p{margin:0 0 12px;line-height:1.5}.recover-actions{gap:10px;margin-top:20px;display:flex}.preview3d-wrap{width:100%;height:100%;position:relative}.preview3d-lost{text-align:center;background:color-mix(in srgb, var(--surface) 88%, transparent);color:var(--text);place-content:center;justify-items:center;gap:10px;padding:16px;font-size:.85rem;display:grid;position:absolute;inset:0}.preview3d-lost p{max-width:32ch;margin:0}.placement-callout{z-index:9;background:var(--brand-walnut);max-width:calc(100% - 32px);color:var(--brand-cream);text-align:center;pointer-events:none;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:10px 18px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #1e140a40}.placement-callout span{opacity:.9;font-size:.82rem}.home-empty--first{text-align:left;color:var(--text);padding:32px}.home-empty-title{margin:0 0 4px;font-size:1.25rem}.home-empty-lead{color:var(--muted);margin:0 0 18px;font-size:.98rem}.home-start-options{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:8px;display:grid}.home-start-option{text-align:left;border:1px solid var(--border-2);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px;display:flex}.home-start-option span{color:var(--muted);font-size:.9rem}.home-start-option--primary{border-color:var(--brand-terracotta);box-shadow:inset 4px 0 0 var(--brand-terracotta)}.home-start-option:hover:not(:disabled){background:var(--accent-soft)}.home-start-option:disabled{opacity:.6;cursor:progress}@media (width<=600px){.home-empty--first{padding:20px 16px}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes slidein{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slidein-right{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.card,.project-card,.summary-card,.group-card{animation:.28s both fadeInUp}.catalog-pop,.ctx-menu,.defaults-pop,.props-panel,.pill{animation:.16s both popIn}.btn,.btn-primary,.tool-btn,.rail-btn,.btn-icon,.btn-icon-lg{transition:transform .12s,background .15s,border-color .15s,color .15s,box-shadow .15s}.btn-primary:active,.btn:active,.tool-btn:active,.rail-btn:active{transform:scale(.94)}.project-card{transition:transform .18s,box-shadow .18s,border-color .18s}.project-card:hover{transform:translateY(-3px)}.tab{transition:color .15s,border-color .2s}.app-loading{height:100vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.login-bg{background:radial-gradient(120% 80% at 50% -10%, var(--bg-soft) 0%, var(--bg) 60%);place-items:start center;min-height:100vh;padding:max(24px,14vh) 24px 24px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:20px;width:380px;max-width:100%;padding:30px 30px 26px;animation:.35s both fadeInUp;box-shadow:0 24px 70px #32231424}.login-logo{font-size:2.6rem}.login-card h1{margin:6px 0 4px;font-size:1.4rem}.login-language{margin-top:10px}.language-picker{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:3px 8px;font-size:.85rem}.login-tabs{border-bottom:1px solid var(--border);justify-content:center;gap:6px;margin:18px 0 6px;display:flex}.login-form{text-align:left;flex-direction:column;gap:12px;margin-top:14px;display:flex}.login-form label{color:var(--muted);flex-direction:column;gap:5px;font-size:.85rem;display:flex}.login-form input{border:1px solid var(--border);font:inherit;color:inherit;background:var(--surface);border-radius:10px;padding:10px 12px;transition:border-color .15s,box-shadow .15s}.login-form input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2563eb1f}.login-submit{margin-top:6px}.login-field-hint{text-align:left;color:var(--muted);font-size:.75rem}.login-field-hint.bad{color:var(--danger)}.login-field-hint.good{color:var(--ok-text)}.login-form input[aria-invalid=true]{border-color:var(--danger)}.login-hint{text-align:center;margin:-2px 0 0;font-size:.78rem}.pw-field{display:flex;position:relative}.pw-field input{width:100%;padding-right:40px}.pw-toggle{cursor:pointer;color:var(--muted);background:0 0;border:none;border-radius:6px;padding:4px 6px;font-size:.95rem;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--text);background:var(--bg)}.home-header-row{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.account-wrap{min-width:0;max-width:50%;position:relative}.account-chip{border:1px solid var(--border);background:var(--surface);max-width:100%;font:inherit;cursor:pointer;color:inherit;border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 6px;font-weight:600;display:flex}.account-chip:hover{border-color:var(--accent)}.account-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-weight:700;display:grid}.account-menu{inset:calc(100% + 8px) 0 auto auto;translate:none}.account-menu-row{justify-content:space-between;align-items:center;gap:10px;padding:6px 12px;font-size:.9rem;display:flex}.role-chip{text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:.68rem;font-weight:700}.role-admin{background:var(--warn-bg);color:var(--warn-text)}.role-user{color:#3730a3;background:#e0e7ff}.plan-premium{background:var(--accent);color:#fff}.plan-free{background:var(--bg-soft);color:var(--muted,inherit)}.kind-chip{letter-spacing:.02em;vertical-align:2px;white-space:nowrap;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:.68rem;font-weight:700}.kind-mueble{background:var(--ok-bg);color:#166534}.kind-modulo{background:var(--module-soft);color:var(--module-text)}.kind-filter{gap:8px;margin:0 0 14px;display:flex}.module-creator-placeholder{text-align:center;flex-direction:column;align-items:center;gap:14px;max-width:560px;margin:12vh auto 0;padding:0 24px;display:flex}.creator-root{flex-direction:column;height:100vh;display:flex;overflow:hidden}.creator-topbar{border-bottom:1px solid var(--border,#e2e8f0);background:var(--panel,#fff);align-items:center;gap:10px;padding:10px 14px;display:flex}.creator-name{background:0 0;border:1px solid #0000;border-radius:8px;min-width:220px;padding:5px 9px;font-size:1.05rem;font-weight:600}.creator-name:hover,.creator-name:focus{border-color:var(--border,#cbd5e1);background:var(--bg,#f8fafc)}.creator-spacer{flex:1}.creator-errors{color:var(--danger);font-size:.85rem;font-weight:600}.creator-warnings{color:var(--warn-text);font-size:.85rem;font-weight:600}.creator-body{flex:1;grid-template-columns:300px 1fr 340px;min-height:0;display:grid}.creator-panel{background:var(--panel,#fff);flex-direction:column;gap:10px;padding:14px;display:flex;overflow-y:auto}.creator-panel h3{margin:0}.creator-panel h4,.creator-panel h5{margin:8px 0 2px}.creator-hint{margin:0;font-size:.78rem}.creator-group{flex-direction:column;gap:8px;display:flex}.creator-test-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.creator-param{border:1px solid var(--border,#e2e8f0);border-radius:10px;flex-direction:column;gap:6px;padding:8px;display:flex}.creator-param.editing{border-color:var(--module)}.creator-param-head{align-items:center;gap:6px;display:flex}.creator-param-name{text-align:left;cursor:pointer;background:0 0;border:none;flex:1;padding:2px}.creator-param-name code{opacity:.7;font-size:.72rem}.creator-param-form,.creator-piece-form{flex-direction:column;gap:8px;display:flex}.creator-param-form label,.creator-piece-form label{flex-direction:column;gap:3px;font-size:.82rem;display:flex}.creator-minmax{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.creator-preview{background:var(--surface-2);min-width:0;position:relative}.creator-preview canvas{display:block}.creator-banner{z-index:5;background:var(--err-bg);border-radius:10px;padding:8px 12px;font-size:.82rem;position:absolute;top:60px;left:12px;right:12px;box-shadow:0 4px 14px #1e19141a}.creator-banner-warn{background:var(--warn-bg);color:var(--warn-text)}.creator-empty{justify-content:center;align-items:center;height:100%;display:flex}.creator-piece-list{flex-direction:column;gap:4px;display:flex}.creator-piece-row{align-items:center;gap:4px;display:flex}.creator-piece-row.on .creator-piece-name{background:var(--module-soft);border-color:var(--module)}.creator-piece-name{text-align:left;border:1px solid var(--border,#e2e8f0);cursor:pointer;background:0 0;border-radius:8px;flex:1;padding:6px 9px;font-size:.85rem}.creator-check{align-items:center;flex-direction:row!important;gap:6px!important;display:flex!important}.creator-edges{flex-wrap:wrap;align-items:center;gap:8px;font-size:.8rem;display:flex}.creator-repeat{border-left:3px solid var(--module-soft);flex-direction:column;gap:6px;padding-left:8px;display:flex}.creator-sub-add{gap:6px;display:flex}.creator-sub-add select{flex:1;min-width:0}.expr-field{grid-template-columns:52px 1fr auto;align-items:center;gap:6px!important;display:grid!important}.expr-field input{font-family:var(--font-mono);width:100%;font-size:.8rem}.expr-invalid input{background:var(--err-bg);border-color:#dc2626!important}.expr-error{border:1px solid var(--err-border,#fca5a5);background:var(--err-bg,var(--err-bg));color:var(--err-text,#8f3b3b);border-radius:8px;grid-column:1/-1;margin-top:2px;padding:7px 9px;font-size:.74rem;line-height:1.4}.expr-input-wrap{min-width:0;display:block;position:relative}.expr-suggest{z-index:20;background:var(--panel,#fff);border:1px solid var(--border,#cbd5e1);border-radius:8px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow:hidden;box-shadow:0 6px 18px #0000001f}.expr-suggest button{text-align:left;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;padding:5px 10px;font-size:.78rem}.expr-suggest button.on,.expr-suggest button:hover{background:var(--module-soft)}.expr-label{font-size:.78rem}.expr-result{font-family:var(--font-mono);opacity:.7;white-space:nowrap;font-size:.72rem}.creator-templates{text-align:center;max-width:760px;margin:6vh auto;padding:0 24px}.creator-template-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:16px;display:grid}.store-root{flex-direction:column;min-height:100vh;display:flex}.store-topbar{border-bottom:1px solid var(--border,#e2e8f0);background:var(--panel,#fff);align-items:center;gap:12px;padding:12px 18px;display:flex}.store-topbar h2{margin:0;font-size:1.15rem}.store-tabs{gap:8px;padding:12px 18px 0;display:flex}.store-filters{flex-wrap:wrap;gap:8px;padding:12px 18px 0;display:flex}.store-filters input[type=search]{min-width:240px}.store-main{padding:14px 18px 32px}.store-root>:is(.store-tabs,.store-filters,.store-toolbar,.store-main){width:100%;max-width:1180px;margin-inline:auto}.store-grid{margin-top:4px}.store-card-wrap{flex-direction:column;gap:6px;display:flex}.store-card-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.store-status{text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700}.store-status-activo{background:var(--ok-bg);color:#166534}.store-status-retirado{background:var(--err-bg);color:#991b1b}.store-status-borrador{background:var(--warn-bg);color:#92400e}.store-stars{color:#d97706;white-space:nowrap}.store-free{color:var(--ok-text)}.store-price{color:inherit}.store-detail{flex-direction:column;gap:10px;display:flex}.store-detail-head{align-items:flex-start;gap:14px;display:flex}.store-detail-thumb{object-fit:cover;background:var(--bg,var(--surface-2));border-radius:10px;justify-content:center;align-items:center;width:180px;height:130px;font-size:2.4rem;display:flex}.store-detail-info{flex-direction:column;gap:4px;display:flex}.store-detail-info p{margin:0}.store-detail-price{font-size:1.2rem;font-weight:700}.store-acquired{color:var(--ok-text);font-weight:600}.store-payments-note{margin:2px 0 0;font-size:.78rem}.store-description{white-space:pre-wrap;margin:0}.store-review-form{border:1px solid var(--border,#e2e8f0);border-radius:10px;flex-direction:column;gap:8px;padding:10px;display:flex}.store-review-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.store-review-need{font-size:.8rem}.store-star-picker{gap:2px;display:flex}.store-star{cursor:pointer;color:#cbd5e1;background:0 0;border:none;padding:0 2px;font-size:1.4rem}.store-star.on{color:#d97706}.store-reviews{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.store-reviews li p{margin:2px 0 0}.store-publish-form{flex-direction:column;gap:10px;display:flex}.store-publish-form label{color:var(--muted-2);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.store-publish-form :is(input,textarea,select){border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px;font-size:.92rem}.store-publish-form :is(input,textarea,select):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.store-price-note{font-size:.78rem}.store-publish-actions{justify-content:flex-end;gap:8px;display:flex}.store-import-section{margin-bottom:14px}.store-seller-link{color:var(--module);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.store-load-more{justify-content:center;margin-top:18px;display:flex}.store-import-section h4{margin:0 0 8px}.store-cats{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;padding:10px 18px 0;display:flex}.store-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:11px;margin:12px 18px 0;padding:12px 14px;display:flex;box-shadow:0 1px 4px #2b26210d}.store-toolbar .store-cats{padding:0}.store-toolbar-row{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.store-search{background:var(--bg-soft);border:1px solid var(--border);min-width:220px;color:var(--muted);border-radius:10px;flex:1;align-items:center;gap:9px;padding:0 15px;display:flex}.store-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.store-search input{min-width:0;font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:9px 0;font-size:.9rem}.store-search input::-webkit-search-cancel-button{display:none}.store-search-clear{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.8rem}.store-search-clear:hover{color:var(--accent-strong)}.store-toolbar-div{background:var(--border);align-self:stretch;width:1px}.store-sel{background:var(--bg-soft);border:1px solid var(--border);white-space:nowrap;cursor:pointer;border-radius:10px;align-items:center;gap:7px;padding:0 12px;font-size:.86rem;display:flex}.store-sel .k{color:var(--muted-2);font-size:.78rem}.store-sel select{appearance:none;font:inherit;color:var(--text);cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23a89e8e' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 100% no-repeat;border:none;outline:none;padding:9px 18px 9px 0;font-size:.86rem;font-weight:600}.store-cats-label{color:var(--muted-2);margin-right:2px;font-size:.78rem}.store-count{color:var(--muted-2);margin-left:auto;font-size:.8rem}.store-cat{border:1px solid var(--border-2);background:var(--surface);font:inherit;color:var(--muted-2);cursor:pointer;border-radius:999px;padding:5px 14px;font-size:.86rem}.store-cat:hover{border-color:var(--accent);color:var(--text)}.store-cat.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong);font-weight:600}.store-thumb-wrap{width:100%;display:block;position:relative}.store-fav{border:1px solid var(--border-2);background:var(--surface);width:30px;height:30px;color:var(--muted);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;font-size:.95rem;display:flex;position:absolute;top:6px;right:6px}.store-fav:hover{border-color:var(--accent);color:var(--accent)}.store-fav.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.store-badge-new{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--text);border-radius:999px;padding:2px 9px;font-size:.7rem;font-weight:600;position:absolute;bottom:6px;left:6px}.store-cat-tag{font-size:.76rem}.store-featured{margin-bottom:22px}.store-featured h3{margin:0 0 10px;font-size:1rem}.store-featured-grid .store-card{border-color:var(--accent-soft);box-shadow:0 1px 0 var(--border)}.store-tabs{justify-content:center}.store-tabs .btn-toggled{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.store-grid{grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:14px;display:grid}.store-card{text-align:left;align-items:stretch}.store-card:hover{box-shadow:0 2px 8px #5a46280f}.store-card-body{text-align:left;flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.store-name-row{align-items:center;gap:8px;margin-top:6px;display:flex}.store-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.92rem;font-weight:600;overflow:hidden}.store-name-row .kind-chip{flex:none}.store-seller-line{border-top:1px solid var(--border);margin-top:3px;padding-top:5px}.store-stars.muted{color:var(--muted)}.store-featured-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.store-card-wide{flex-direction:row;align-items:center;gap:12px}.store-card-wide .store-thumb-wrap{flex:none;width:92px}.store-card-wide .import-thumb,.store-card-wide .import-thumb-empty{height:76px}.store-card-wide .store-name-row{margin-top:0}.store-card-wide .store-seller-line{border-top:none;margin-top:0;padding-top:0}.store-card-wide .store-badge-new,.store-card-wide .store-fav{display:none}@media (width<=900px){.store-featured-grid{grid-template-columns:1fr}}.store-badge-upd{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-text)}.store-tab{position:relative}.store-tab-dot{background:var(--accent);color:#fff;white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.68rem;font-weight:600;position:absolute;top:-9px;right:-8px}.listing-update-banner{background:var(--ok-bg);border:1px solid var(--ok-border);border-radius:var(--radius);color:var(--ok-text);align-items:center;gap:12px;padding:12px 14px;font-size:.88rem;display:flex}.listing-update-banner span{flex:1;min-width:0}.listing-update-banner .btn{flex:none}.listing-versions ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.listing-versions li{align-items:baseline;gap:10px;font-size:.85rem;display:flex}.listing-versions .ver-tag{background:var(--bg-soft);border:1px solid var(--border-2);color:var(--muted-2);border-radius:999px;flex:none;padding:1px 9px;font-size:.74rem;font-weight:600}.listing-versions li.cur .ver-tag{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-text)}.listing-versions .ver-text{flex:1;min-width:0}.listing-versions .ver-date{flex:none;font-size:.76rem}.save-chip{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.74rem}.save-saved,.save-idle{background:var(--ok-bg);color:var(--ok-text)}.save-saving,.save-placing{background:var(--accent-soft);color:var(--accent)}.save-error{background:var(--err-bg);color:var(--danger)}.project-thumb-img{aspect-ratio:16/10;object-fit:cover;border:1px solid var(--border);background:#eceef1;border-radius:10px;width:100%}.admin-tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:4px;margin:22px 0 18px;display:flex;overflow-x:auto}.admin-tab{color:var(--muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 14px;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.admin-tab:hover{color:var(--text)}.admin-tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.admin-tab-count{background:var(--panel-muted);border:1px solid var(--border);min-width:20px;color:var(--muted);text-align:center;border-radius:999px;padding:1px 7px;font-size:.72rem}.admin-tab-count.is-alert{background:var(--accent);border-color:var(--accent);color:#fff}.admin-users-tab{flex-direction:column;gap:14px;display:flex}.admin-users-tab[hidden]{display:none}.admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.admin-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;padding:14px 16px;display:flex}.admin-stat-value{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:700;line-height:1.1}.admin-stat-label{color:var(--muted);font-size:.8rem}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.admin-search{flex:1;min-width:200px}.admin-segmented{background:var(--panel-muted);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.admin-segmented button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:7px;padding:5px 12px;font-size:.85rem;font-weight:600}.admin-segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.admin-empty{border:1px dashed var(--border-2);border-radius:var(--radius);color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:8px;padding:32px 16px;display:flex}.admin-empty p{margin:0}.admin-empty-icon{font-size:1.8rem}.admin-users{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.admin-users:empty{display:none}.admin-user-card{border-bottom:1px solid var(--border);animation:.25s both fadeInUp}.admin-user-card:last-child{border-bottom:none}.admin-user-row{align-items:center;gap:12px;padding:8px 16px 8px 8px;display:flex}.admin-user-main{min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;align-items:center;gap:12px;padding:6px 8px;display:flex}.admin-user-main:hover{background:var(--panel-muted)}.admin-chevron{color:var(--muted);font-size:.8rem;transition:transform .15s}.admin-user-main[aria-expanded=true] .admin-chevron{transform:rotate(90deg)}.admin-avatar{border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:.8rem;font-weight:700;display:grid}.admin-user-info{flex-direction:column;flex:1;min-width:0;display:flex}.admin-user-info>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-user-info .muted{font-size:.84rem}.admin-user-name{font-weight:700}.admin-you{background:var(--accent-soft);color:var(--accent);vertical-align:1px;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:.7rem}.admin-user-actions{flex:none;gap:6px;display:flex}.admin-projects{border-left:2px solid var(--border);flex-direction:column;gap:6px;margin:0 16px 14px 70px;padding-left:14px;display:flex}.admin-project-row{border-radius:8px;align-items:center;gap:10px;padding:4px 6px;display:flex}.admin-project-row:hover{background:var(--panel-muted)}.admin-thumb{object-fit:cover;border:1px solid var(--border);border-radius:6px;place-items:center;width:64px;height:40px;font-size:1.2rem;display:grid}.admin-thumb-empty{background:var(--bg)}.admin-table-wrap{overflow-x:auto}.admin-collapsible{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:0 16px}.admin-collapsible>summary{cursor:pointer;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:14px 0;display:flex}.admin-collapsible[open]>summary{border-bottom:1px solid var(--border);margin-bottom:12px}.admin-collapsible[open]{padding-bottom:16px}@media (width<=760px){.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-user-row{flex-wrap:wrap;padding:8px}.admin-user-actions{justify-content:flex-end;width:100%}.admin-btn-label{display:none}.admin-projects{margin-left:16px}.props-panel{width:210px}.topbar{gap:8px}.project-name{width:130px}}@media print{.no-print{display:none!important}body{background:#fff}.app{max-width:none;padding:0}.sheet-fig{break-inside:avoid;page-break-inside:avoid;border:1px solid #999}.sheets-grid{grid-template-columns:1fr 1fr}.cut-plan-details{display:block}.budget-panel{display:none}}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#32231473;justify-content:center;align-items:center;padding:24px;animation:.16s both popIn;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;width:min(560px,100%);max-height:90vh;display:flex;box-shadow:0 24px 64px #32231447}.modal-wide{width:min(1360px,96vw);max-height:94vh}.modal-head,.modal-foot{justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-head{border-bottom:1px solid var(--border)}.modal-foot{border-top:1px solid var(--border);gap:8px}.modal-body{padding:16px 18px;overflow:auto}.cfg-grid{background:var(--bg);border-radius:0 0 16px 16px;grid-template-columns:94px 364px minmax(0,1fr) 346px;height:min(78vh,760px);margin:-16px -18px;display:grid;overflow:hidden}.cfg-grid--norail{grid-template-columns:364px minmax(0,1fr) 346px}.cfg-rail{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;padding:10px 8px;display:flex;overflow-y:auto}.cfg-rail-item{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;flex-direction:column;align-items:center;gap:6px;padding:11px 4px;font-family:inherit;display:flex}.cfg-rail-item:hover{background:var(--bg)}.cfg-rail-item.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.cfg-rail-label{text-align:center;font-size:9.5px;font-weight:700;line-height:1.15}.cfg-form{background:var(--surface);border-right:1px solid var(--border);padding:4px 18px 24px;overflow-y:auto}.cfg-preview-col{background:var(--bg);flex-direction:column;min-width:0;display:flex}.cfg-data{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;display:flex;overflow-y:auto}.cfg-section-title{text-transform:uppercase;color:var(--muted);letter-spacing:.04em;margin:10px 0 6px;font-size:12px}.cfg-fields{grid-template-columns:1fr 1fr;gap:10px;display:grid}.cfg-canto-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;align-items:center;gap:12px;padding:10px 16px;display:flex}.cfg-canto-bar-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10.5px;font-weight:800}.cfg-canto-hint{color:var(--muted);font-size:12px}.cfg-canto-bar-spacer{flex:1}.cfg-canto-all{color:var(--muted);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:600;display:flex}.cfg-canto-all input{accent-color:var(--accent)}.cfg-canto-palette{flex-wrap:wrap;gap:6px;display:flex}.cfg-canto-swatch{border:2px solid var(--border);cursor:pointer;width:26px;height:26px;color:var(--text);border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:13px;display:inline-flex}.cfg-canto-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.cfg-canto-eraser{background:var(--surface)}.cfg-canto-actions{gap:8px;display:flex}.cfg-canto-all{margin:6px 0 10px}.cfg-fields label{flex-direction:column;gap:4px;font-size:13px;display:flex}.cfg-fields label>input,.cfg-fields label>select,.cfg-fields label>.cfg-input-unit,.cfg-fields label>.cfg-select{margin-top:auto}.cfg-fields .cfg-check{cursor:pointer;flex-direction:row;grid-column:1/-1;align-items:center;gap:8px}.cfg-fields .cfg-check input{width:auto}.cfg-material{flex-direction:column;gap:4px;margin-bottom:4px;font-size:13px;display:flex}.cfg-material select{border:1px solid var(--border);background:var(--surface);font:inherit;color:inherit;border-radius:8px;width:100%;padding:6px 8px}.cfg-fields input{border:1px solid var(--border);background:var(--surface);font:inherit;color:inherit;border-radius:9px;width:100%;padding:9px 10px}.cfg-fields select{border:1px solid var(--border);background:var(--surface);font:inherit;color:var(--text);cursor:pointer;border-radius:9px;width:100%;padding:9px 10px;font-weight:600}.canto-editor{flex-direction:column;gap:8px;display:flex}.canto-palette{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.canto-swatch{border:1px solid var(--border);cursor:pointer;width:22px;height:22px;color:var(--muted);background:var(--surface);border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:12px;display:inline-flex}.canto-swatch.on{outline:2px solid var(--accent);outline-offset:1px}.canto-eraser{background:var(--surface)}.canto-empty{margin:0;font-size:.82rem}.canto-stage{justify-content:center;padding:14px 16px;display:flex}.canto-rect{background:var(--bg);border:1px solid var(--border);border-radius:4px;position:relative}.canto-edge{cursor:pointer;border:2px solid;border-radius:3px;padding:0;position:absolute}.canto-edge:disabled{cursor:default}.canto-edge-l1{top:-7px;left:8px;right:8px}.canto-edge-l2{bottom:-7px;left:8px;right:8px}.canto-edge-w1{top:8px;bottom:8px;right:-7px}.canto-edge-w2{top:8px;bottom:8px;left:-7px}.canto-dims{color:var(--muted);pointer-events:none;justify-content:center;align-items:center;font-size:11px;display:flex;position:absolute;inset:0}.canto-tag{color:var(--muted);pointer-events:none;font-size:9px;position:absolute}.canto-tag-l1{top:2px;left:50%;transform:translate(-50%)}.canto-tag-l2{bottom:2px;left:50%;transform:translate(-50%)}.canto-tag-w1{top:50%;right:2px;transform:translateY(-50%)}.canto-tag-w2{top:50%;left:2px;transform:translateY(-50%)}.canto-actions{gap:8px;display:flex}.canto-cell{white-space:nowrap;position:relative}.canto-ro{vertical-align:middle;gap:3px;display:inline-flex}.canto-dot{border:1px solid var(--border);border-radius:3px;width:11px;height:11px;display:inline-block}.canto-mini{vertical-align:middle;background:#94a3b81f;border-radius:2px;width:24px;height:17px;display:inline-block;position:relative}.canto-mini-edge{border-radius:2px;position:absolute}.canto-mini-l1{height:3px;top:0;left:2px;right:2px}.canto-mini-l2{height:3px;bottom:0;left:2px;right:2px}.canto-mini-w1{width:3px;top:2px;bottom:2px;left:0}.canto-mini-w2{width:3px;top:2px;bottom:2px;right:0}.canto-edit-btn{margin-left:8px}.canto-popover{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:10px;min-width:220px;margin-top:4px;padding:10px 12px;position:absolute;top:100%;right:0;box-shadow:0 8px 24px #3223142e}.canto-popover-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;font-size:13px;display:flex}.cfg-preview{max-height:200px;overflow:auto}.cfg-cutlist{border-collapse:collapse;width:100%;font-size:13px}.cfg-cutlist th,.cfg-cutlist td{text-align:left;border-bottom:1px solid var(--border);padding:4px 6px}.cfg-hardware{margin-top:2px}.cfg-hardware td:last-child,.cfg-hardware th:last-child{text-align:right;white-space:nowrap}.label-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.label-cell{border:1px solid var(--border-2);break-inside:avoid;border-radius:6px;padding:8px;font-size:12px}.label-name{font-weight:700}.label-dims{font-size:13px}@media print{.label-cell{page-break-inside:avoid}.label-grid{grid-template-columns:repeat(3,1fr)}}.budget-row{justify-content:space-between;align-items:center;gap:8px;margin:4px 0;display:flex}.budget-row input{width:110px}.budget-currency{width:190px}.budget-hint{margin:0 0 10px;font-size:11px}.cost-lines{padding:0;list-style:none}.cost-total{border-top:1px solid var(--border-2);margin-top:6px;padding-top:6px}.material-presets{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.materials-section{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;font-size:11px;display:block}.material-section{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.materials-section-head{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.materials-section-head .muted{font-size:11px}.preset-grid{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.preset-chip{border:1px solid var(--border);background:var(--surface);font:inherit;color:var(--text);cursor:pointer;text-align:left;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.preset-swatch{border:1px solid #00000026;border-radius:5px;flex:none;width:18px;height:18px}.cfg-modal-header{flex:1;align-items:center;gap:12px;display:flex}.cfg-type-chip{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:999px;align-items:center;gap:8px;margin-left:auto;padding:6px 13px;font-size:13px;font-weight:600;display:inline-flex}.cfg-type-chip-dot{border-radius:3px;flex:none;width:10px;height:10px}.cfg-modal-icon{background:var(--accent);border-radius:10px;flex:none;place-items:center;width:38px;height:38px;display:grid}.cfg-modal-titles{flex-direction:column;line-height:1.25;display:flex}.cfg-modal-titles strong{font-size:1.02rem}.cfg-modal-sub{color:var(--muted);font-size:.8rem}.cfg-section{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-items:center;gap:8px;margin:18px 0 10px;font-size:11px;font-weight:800;display:flex}.cfg-section:first-child{margin-top:14px}.cfg-sec-icon{background:var(--accent);color:#fff;border-radius:4px;flex:none;place-items:center;width:16px;height:16px;font-size:9px;display:grid}.cfg-sec-unit{color:var(--muted);font-size:10.5px;font-family:var(--font-mono);text-transform:none;letter-spacing:0;margin-left:auto;font-weight:600}.cfg-subgroup+.cfg-subgroup{margin-top:12px}.cfg-subsec{color:var(--muted);border-bottom:1px dashed var(--border);margin:0 0 6px;padding-bottom:3px;font-size:11.5px;font-weight:700}.cfg-advanced{border:1px solid var(--border);background:var(--surface);border-radius:12px;margin-top:16px}.cfg-advanced>summary{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:10px 13px;font-size:11px;font-weight:800;list-style:none;display:flex}.cfg-advanced>summary::-webkit-details-marker{display:none}.cfg-advanced>summary:after{content:"▾";margin-left:auto;transition:transform .15s}.cfg-advanced[open]>summary:after{transform:rotate(180deg)}.cfg-advanced-count{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 7px;font-size:10px;font-weight:700}.cfg-advanced>.cfg-fields{padding:2px 13px 13px}.cfg-input-unit{align-items:center;display:flex;position:relative}.cfg-input-unit input{flex:1;width:100%;padding-right:30px}.cfg-input-unit em{color:var(--muted);pointer-events:none;font-size:12px;font-style:normal;position:absolute;right:10px}.cfg-card-check{cursor:pointer;border:1px solid var(--border);background:var(--surface);border-radius:12px;grid-column:1/-1;align-items:flex-start;gap:10px;padding:11px 13px;display:flex}.cfg-card-check.on{border-color:var(--accent);background:var(--accent-soft)}.cfg-card-check input{width:auto;accent-color:var(--accent);margin-top:2px}.cfg-card-text{flex-direction:column;gap:2px;display:flex}.cfg-card-title{color:var(--text);font-size:13px;font-weight:600}.cfg-card-hint{color:var(--muted);font-size:12px}.cfg-3d{border:1px solid var(--border);background-color:var(--sheet-bg);background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);background-size:24px 24px;border-radius:14px;flex:1;min-height:0;margin:18px;position:relative;overflow:hidden}.cfg-preview-badge{z-index:2;background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;top:10px;left:10px}.cfg-controls{background:var(--surface);border-top:1px solid var(--border);flex-flow:wrap;flex:none;gap:20px;margin:0;padding:13px 18px;display:flex}.cfg-controls label{flex:1;align-items:center;gap:11px;min-width:200px;font-size:12px;display:flex}.cfg-controls label>span{text-transform:uppercase;letter-spacing:.04em;width:104px;color:var(--muted);font-weight:600}.cfg-controls input[type=range]{accent-color:var(--accent);flex:1}.cfg-foot-hint{color:var(--muted);font-size:12px}.cfg-foot-actions{gap:8px;display:flex}.cfg-fields--mat{grid-template-columns:1fr}.cfg-select{border:1px solid var(--border);background:var(--surface);border-radius:9px;align-items:center;gap:9px;padding:0 11px;display:flex;position:relative}.cfg-select select{font:inherit;color:var(--text);appearance:none;cursor:pointer;background:0 0;border:none;outline:none;flex:1;padding:9px 0;font-weight:600}.cfg-mat-dot{border:1px solid #00000024;border-radius:5px;flex:none;width:17px;height:17px}.cfg-select-caret{color:var(--muted);pointer-events:none;font-size:10px}.cfg-piece-menu-backdrop{z-index:80;position:fixed;inset:0}.ctx-menu.cfg-piece-menu{max-height:60vh;position:fixed;bottom:auto;overflow:auto;translate:none}.cfg-piece-menu-title{border-bottom:1px solid var(--border);flex-direction:column;gap:1px;margin-bottom:4px;padding:7px 10px 6px;font-size:12.5px;font-weight:800;display:flex}.cfg-piece-menu-sub{color:var(--muted);font-size:10.5px;font-weight:600}.cfg-piece-menu-check{width:14px;color:var(--accent);flex:none;font-weight:800}.cfg-piece-menu-danger,.cfg-piece-menu-danger .cfg-piece-menu-check{color:var(--danger)}.ctx-menu.cfg-analysis-card{cursor:default;min-width:240px;max-width:300px;max-height:70vh;padding-bottom:6px;position:fixed;bottom:auto;overflow:auto;translate:none}.cfg-analysis-card .cfg-piece-menu-title{padding-right:30px;position:relative}.cfg-analysis-close{position:absolute;top:4px;right:4px}.cfg-analysis-list{flex-direction:column;gap:6px;margin:0;padding:0 10px;display:flex}.cfg-analysis-list>div{justify-content:space-between;align-items:baseline;gap:12px;font-size:12px;display:flex}.cfg-analysis-list dt{color:var(--muted);flex:none;font-weight:600}.cfg-analysis-list dd{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;margin:0;font-weight:700;display:flex}.cfg-analysis-edges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.cfg-analysis-edges .cfg-edge-on{color:var(--ok,#22a06b)}.cfg-analysis-edges .cfg-edge-off{color:var(--muted)}.cfg-analysis-cantom{color:var(--muted);flex-basis:100%;font-size:11px;font-weight:600}.cfg-removed-list{flex-direction:column;gap:4px;margin:0 0 6px;padding:0;list-style:none;display:flex}.cfg-removed-list li{border:1px dashed var(--border);background:var(--bg);border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;display:flex}.cfg-removed-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;text-decoration:line-through;overflow:hidden}.cfg-removed-all{width:100%;margin-bottom:6px}.cfg-front-chips{flex-wrap:wrap;gap:6px;margin:-2px 0 4px;display:flex}.cfg-front-chip{color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:3px 9px;font-size:10.5px;font-weight:700}.cfg-kpis{background:var(--border);border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:1px;display:grid}.cfg-kpi{background:var(--surface);flex-direction:column;gap:2px;padding:13px 16px;display:flex}.cfg-kpi-val{font-family:var(--font-mono);color:var(--text);letter-spacing:-.02em;font-size:21px;font-weight:600}.cfg-kpi-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:10.5px;font-weight:700}.cfg-data-head{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-items:center;gap:8px;padding:16px 16px 8px;font-size:11px;font-weight:800;display:flex}.cfg-data-head--mt{border-top:1px solid var(--border);margin-top:6px;padding-top:16px}.cfg-data-count{color:var(--muted);font-size:11px;font-weight:700;font-family:var(--font-mono);text-transform:none;letter-spacing:0;margin-left:auto}.cfg-data .cfg-cutlist th,.cfg-data .cfg-cutlist td{padding:8px 12px}.cfg-data .cfg-cutlist th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:9.5px;font-weight:800}.cfg-cutlist .num{text-align:right;font-family:var(--font-mono);white-space:nowrap;color:var(--muted)}.cfg-cutlist td.num{color:var(--text)}.cfg-cutlist .ctr{text-align:center}.cfg-edge-dots{justify-content:center;gap:3px;display:inline-flex}.cfg-edge-dot{background:var(--border);opacity:.5;border-radius:2px;width:7px;height:7px}.cfg-edge-dot.on{opacity:1}.guide-del{cursor:pointer;color:#fff;background:#ef4444;border:none;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;line-height:1;display:grid;transform:translateY(-20px);box-shadow:0 2px 8px #0000004d}.guide-del:hover{background:#dc2626}.tpl-card{background:var(--panel,#fff);border:1.5px solid var(--border,#e7e0d4);cursor:pointer;text-align:left;border-radius:14px;flex-direction:column;align-items:stretch;gap:8px;padding:14px;display:flex}.tpl-card:hover{border-color:var(--module)}.tpl-card.sel{border-color:var(--module);box-shadow:0 0 0 3px var(--module-soft)}.tpl-mini{background:var(--panel-muted);border-radius:9px;justify-content:center;align-items:center;height:74px;display:flex}.tpl-mini-box{background:#f3e2c8;border:2.5px solid #b08d5e;border-radius:2px;display:block;position:relative}.tpl-mini-box.dashed{background:0 0;border-style:dashed}.tpl-shelf{background:#b08d5e;height:2.5px;position:absolute;left:2px;right:2px}.tpl-door{background:#ecd9bd;border:2px solid #b08d5e;border-radius:1px;position:absolute;top:3px;bottom:3px}.tpl-vdiv{background:#b08d5e;width:2.5px;position:absolute;top:2px;bottom:2px}.tpl-measures{background:var(--panel,#fff);border:1px solid var(--border,#e7e0d4);border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:14px;margin-top:18px;padding:16px 18px;display:flex}.tpl-measures label{color:var(--muted,#6b6156);text-align:left;flex-direction:column;gap:5px;font-size:.8rem;font-weight:600;display:flex}.tpl-measures input{width:92px}.tpl-cta{margin-left:12px}.creator-palette{z-index:6;background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border,#e7e0d4);border-radius:999px;flex-wrap:wrap;justify-content:center;gap:5px;max-width:calc(100% - 28px);padding:6px 10px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #1e191424}.pal-btn{color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:6px 11px;font-size:.8rem;font-weight:700}.pal-btn:hover{background:var(--module-soft);color:var(--module-text)}.pal-sub{color:var(--module-text)}.edge-board{background:#f3e2c8;border:2px solid #b08d5e;border-radius:3px;width:122px;height:76px;margin:6px auto 2px;display:block;position:relative}.edge-strip{cursor:pointer;background:#d6cdbc;border:none;border-radius:3px;padding:0;position:absolute}.edge-strip:hover{background:#b8aa92}.edge-strip.on{background:var(--module)}.edge-strip.on:hover{background:var(--module-strong)}.edge-l1{height:6px;top:-6px;left:12px;right:12px}.edge-l2{height:6px;bottom:-6px;left:12px;right:12px}.edge-w1{width:6px;top:12px;bottom:12px;left:-6px}.edge-w2{width:6px;top:12px;bottom:12px;right:-6px}.creator-edges{flex-direction:column;gap:4px;display:flex}.preset-row{flex-wrap:wrap;gap:6px;display:flex}.preset-chip{border:1px solid var(--border,#e7e0d4);background:var(--panel,#fff);color:var(--ink-soft);cursor:pointer;border-radius:999px;padding:4px 11px;font-size:.74rem;font-weight:600}.preset-chip:hover{border-color:var(--module);color:var(--module-text)}.preset-chip.on{border-color:var(--module);background:var(--module-soft);color:var(--module-text)}.creator-param-slider{flex-direction:column;gap:2px;display:flex}.creator-param-slider input[type=range],.creator-param input[type=range]{width:100%;accent-color:var(--module)}.creator-root{background:var(--bg,#f4eee4)}.creator-topbar{gap:12px;box-shadow:0 1px 4px #2b26210d}.creator-name-group{background:var(--bg,var(--panel-muted));border:1px solid var(--border,#e7dfd2);border-radius:11px;align-items:center;gap:9px;padding:4px 12px;display:flex}.creator-name-group .kind-chip{margin-left:0}.creator-name{min-width:180px;background:0 0!important;border:none!important}.creator-ok{color:var(--ok-text);background:var(--ok-bg);border-radius:999px;padding:4px 12px;font-size:.78rem;font-weight:700}.creator-body{gap:14px;padding:14px}.creator-panel{border:1px solid var(--border,#e7dfd2);border-radius:16px;box-shadow:0 1px 4px #2b26210f}.creator-params{border-right:1px solid var(--border,#e7dfd2)}.creator-pieces{border-left:1px solid var(--border,#e7dfd2)}.creator-preview{border:1px solid var(--border,#e7dfd2);background:radial-gradient(circle at 50% 40%, var(--panel-soft) 0%, var(--surface-2) 80%);border-radius:16px;overflow:hidden;box-shadow:inset 0 1px 8px #2b26210d}.creator-panel h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted,#8a8177);font-size:.74rem}.creator-param,.creator-param-slider{background:var(--panel-soft);border:1px solid var(--border,#e7dfd2);border-radius:12px;padding:9px 11px}.creator-param-slider .creator-test-row{font-size:.86rem;font-weight:700}.creator-piece-row{background:var(--surface,#fff)}.creator-piece-row .creator-piece-name{font-weight:600}.csec{border:1px solid var(--border,#e7dfd2);background:var(--surface,#fff);border-radius:12px;overflow:hidden}.csec-h{background:var(--panel-muted);width:100%;color:var(--ink-soft);cursor:pointer;text-align:left;border:none;align-items:center;gap:8px;padding:9px 13px;font-size:.8rem;font-weight:700;display:flex}.csec:not(.closed) .csec-h{border-bottom:1px solid var(--border,#e7dfd2)}.csec-sum{color:var(--muted,#8a8177);font-size:.72rem;font-weight:500;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;max-width:150px;margin-left:auto;overflow:hidden}.csec-car{opacity:.5;font-size:.7rem}.csec-b{flex-direction:column;gap:9px;padding:11px 13px;display:flex}.csec-b label{flex-direction:column;gap:3px;font-size:.82rem;display:flex}.creator-panel input:not([type=checkbox]):not([type=range]),.creator-panel select,.creator-panel textarea{border:1px solid var(--border,#e7dfd2);background:var(--panel-soft);font:inherit;color:var(--text,#2b2621);border-radius:9px;padding:8px 11px;transition:border-color .15s,box-shadow .15s,background .15s}.creator-panel input:not([type=checkbox]):not([type=range]):hover,.creator-panel select:hover,.creator-panel textarea:hover{border-color:#d5c9b6}.creator-panel input:not([type=checkbox]):not([type=range]):focus,.creator-panel select:focus,.creator-panel textarea:focus{border-color:var(--module);box-shadow:0 0 0 3px var(--module-soft);background:var(--surface,#fff);outline:none}.creator-panel input[type=checkbox]{accent-color:var(--module);width:16px;height:16px}.creator-check{cursor:pointer;border:1px solid #0000;border-radius:9px;margin:-3px -7px;padding:5px 7px}.creator-check:hover{background:var(--panel-muted)}.expr-field input{font-family:var(--font-mono);font-size:.8rem;padding:7px 9px!important}.expr-result{font-family:var(--font-mono);opacity:1;color:var(--ok-text);background:var(--ok-bg);border:1px solid var(--ok-bg);white-space:nowrap;text-align:center;border-radius:7px;min-width:44px;padding:4px 8px;font-size:.72rem;font-weight:600}.expr-invalid .expr-result{color:#dc2626;background:var(--err-bg);border-color:#fecaca}.expr-invalid input{background:var(--err-bg)!important}.expr-label{color:var(--muted,#6b6156);font-weight:600}.expr-suggest button.on,.expr-suggest button:hover{background:var(--module-soft);color:var(--module-text)}.creator-panel{overflow-x:hidden}.creator-panel input,.creator-panel select,.creator-panel textarea{box-sizing:border-box;min-width:0;max-width:100%}.creator-minmax{grid-template-columns:repeat(3,minmax(0,1fr))}.creator-minmax input{width:100%}.creator-param-name{align-items:center;gap:6px;min-width:0;display:flex}.creator-param-name b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.creator-param-name code{background:var(--module-soft);color:var(--module-text);border-radius:6px;padding:1px 7px;font-size:.68rem}.creator-param-car{opacity:.45;font-size:.7rem}.creator-param-value{justify-content:space-between;align-items:center;gap:8px;font-size:.75rem;display:flex}.creator-analyze{z-index:6;background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border,#e7dfd2);border-radius:999px;align-items:center;gap:8px;padding:6px 12px;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 6px 20px #1e191424}.analyze-slider{color:var(--text);align-items:center;gap:7px;font-size:.76rem;font-weight:700;display:flex}.analyze-slider input[type=range]{accent-color:#e2603f;width:110px}.analyze-toggle{border:1px solid var(--border,#e7dfd2);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:5px 12px;font-size:.76rem;font-weight:700}.analyze-toggle:hover:not(:disabled){border-color:var(--module)}.analyze-toggle:disabled{opacity:.4;cursor:default}.analyze-toggle.on{background:var(--module-soft);border-color:var(--module);color:var(--module-text)}.listing-page{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:18px;padding:16px 18px 40px;display:grid}.listing-left{flex-direction:column;gap:18px;min-width:0;display:flex}.listing-viewer{border:1px solid var(--border,#e7dfd2);background:var(--surface-2);border-radius:16px;height:480px;position:relative;overflow:hidden;box-shadow:0 1px 4px #2b26210f}.listing-viewer canvas{display:block}.listing-viewer,.listing-viewer-empty{background:radial-gradient(at 50% 42%,#fbf8f1,#ece5d6)}.listing-viewer-empty{flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:3rem;display:flex}.listing-viewer-empty img{border-radius:10px;max-height:70%}.listing-viewer-empty p{font-size:.85rem}.viewer-toolbar{background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border-2,#e3dbcd);border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;bottom:12px;left:50%;translate:-50%}.viewer-toolbar .btn{background:0 0;border:none;padding:5px 12px;font-size:.82rem}.viewer-toolbar .btn:hover,.viewer-toolbar .btn-toggled,.viewer-toolbar .btn.btn-toggled:hover{background:var(--accent-soft,#f8ede7);color:var(--accent-strong,#b0432f)}.viewer-badge{border:1px solid var(--border-2,#e3dbcd);color:var(--muted-2,#8a8174);background:#ffffffeb;border-radius:999px;padding:4px 12px;font-size:.76rem;font-weight:600;position:absolute;top:12px;left:12px}.viewer-lock{background:var(--warn-bg,var(--warn-bg));border:1px solid var(--warn-border,#f3e0a4);color:#7a5c10;border-radius:999px;padding:4px 12px;font-size:.76rem;font-weight:600;position:absolute;top:12px;right:12px}.listing-info{background:var(--surface,#fff);border:1px solid var(--border,#e7dfd2);border-radius:16px;flex-direction:column;gap:10px;padding:18px;display:flex;position:sticky;top:14px;box-shadow:0 1px 4px #2b26210f}.listing-info h1{margin:0;font-size:1.35rem}.listing-info p{margin:0}.listing-seller{border-top:1px solid var(--border,#e7dfd2);color:var(--muted,#8a8177);padding-top:10px}.listing-crumbs{align-items:center;gap:8px;display:flex}.listing-cat-chip{background:var(--accent-soft,#f8ede7);color:var(--accent-strong,#b0432f);border:1px solid #f0d9cd;border-radius:999px;padding:2px 10px;font-size:.72rem}.listing-buy{background:var(--bg-soft,#fbf9f4);border:1px solid var(--border,#e7dfd2);border-radius:12px;align-items:center;gap:14px;padding:14px 16px;display:flex}.listing-price{color:var(--accent-strong,#b0432f);font-size:1.5rem;font-weight:700}.listing-price.free{color:var(--ok-text,#3f6b3e)}.listing-mine-pill{background:var(--surface,#fff);border:1px solid var(--border-2,#e3dbcd);color:var(--muted-2,#8a8174);border-radius:999px;padding:4px 12px;font-size:.8rem}.listing-mine-pill.ok{background:var(--ok-bg,#e7f0e3);border-color:var(--ok-border,#cadfc0);color:var(--ok-text,#3f6b3e)}.listing-use{gap:6px;display:grid}.listing-use .btn-primary{justify-self:stretch}.listing-import-hint{margin:0;font-size:.82rem}.listing-seller-card{background:var(--surface,#fff);border:1px solid var(--border,#e7dfd2);font:inherit;text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:11px;padding:10px 12px;display:flex}.listing-seller-card:hover{border-color:var(--accent,#c75c42)}.listing-avatar{background:var(--accent-soft,#f8ede7);width:38px;height:38px;color:var(--accent-strong,#b0432f);border:1px solid #f0d9cd;border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex}.listing-seller-meta{flex-direction:column;gap:1px;min-width:0;font-size:.88rem;display:flex}.listing-seller-meta .muted{font-size:.78rem}.reviews-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:26px 0;display:flex}.reviews-empty span{color:var(--muted,#a89e8e);font-size:1.5rem}.reviews-empty p{margin:0;font-size:.88rem}.reviews-summary{background:var(--bg-soft,#fbf9f4);border-radius:10px;padding:12px 14px}.tech-card{border:1px solid var(--border,#e7dfd2);background:var(--panel-soft);border-radius:12px;padding:12px 14px}.tech-card h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#8a8177);margin:0 0 8px;font-size:.78rem}.tech-card dl{grid-template-columns:auto 1fr;gap:5px 12px;margin:0;font-size:.84rem;display:grid}.tech-card dt{color:var(--muted,#8a8177);font-weight:600}.tech-card dd{margin:0}.listing-reviews{background:var(--surface,#fff);border:1px solid var(--border,#e7dfd2);border-radius:16px;padding:18px;box-shadow:0 1px 4px #2b26210f}.listing-reviews h3{margin:0 0 12px}.reviews-layout{grid-template-columns:260px minmax(0,1fr);gap:22px;display:grid}.reviews-summary{flex-direction:column;gap:6px;display:flex}.reviews-avg{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.reviews-avg b{font-size:1.9rem}.hist-row{grid-template-columns:28px 1fr 24px;align-items:center;gap:8px;font-size:.78rem;display:grid}.hist-bar{background:var(--border,#efe8da);border-radius:999px;height:8px;display:block;overflow:hidden}.hist-fill{background:#d97706;border-radius:999px;height:100%;display:block}.reviews-list{flex-direction:column;gap:12px;min-width:0;display:flex}@media (width<=980px){.listing-page,.reviews-layout{grid-template-columns:1fr}}.seller-hero{align-items:center;gap:16px;padding:20px 18px 4px;display:flex}.seller-avatar{background:var(--accent,#e2603f);color:#fff;border-radius:50%;place-items:center;width:64px;height:64px;font-size:1.7rem;font-weight:800;display:grid}.seller-head h1{margin:0;font-size:1.5rem}.seller-stats{color:var(--muted,#8a8177);margin:4px 0 0}.cfg-tramos{flex-direction:column;gap:10px;display:flex}.cfg-tramo-plano{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin:0;padding:10px 10px 6px}.cfg-tramo-plano svg{width:100%;height:150px;display:block}.cfg-tramo-plano figcaption{color:var(--muted);text-align:center;margin-top:4px;font-size:11px}.cfg-plano-tramo{cursor:pointer}.cfg-plano-tramo polygon{transition:opacity .12s}.cfg-plano-tramo:hover polygon{opacity:.75}.cfg-plano-tramo.is-sel polygon{stroke:var(--accent)}.cfg-tramo-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:10px 12px 12px}.cfg-tramo-row.is-sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-soft)}.cfg-tramo-head{align-items:center;gap:6px;margin-bottom:8px;display:flex}.cfg-tramo-tipo{color:var(--text);flex:1;font-size:12px;font-weight:700}.cfg-tramo-head button{border:1px solid var(--border);background:var(--surface-2);width:26px;height:26px;color:var(--muted-2);cursor:pointer;border-radius:8px;flex:none;place-items:center;font-size:12px;display:grid}.cfg-tramo-head button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.cfg-tramo-head button:disabled{opacity:.4;cursor:default}.cfg-tramo-head .btn-danger:hover{border-color:var(--danger);color:var(--danger)}.cfg-tramo-agregar{flex-wrap:wrap;gap:6px;display:flex}.cfg-tramo-agregar button{border:1px dashed var(--border-2);background:var(--surface-2);color:var(--muted-2);cursor:pointer;border-radius:10px;flex:auto;padding:8px 10px;font-size:12px;font-weight:600}.cfg-tramo-agregar button:hover{border-style:solid;border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.cfg-fields .cfg-tramo-giro{grid-column:1/-1}.cfg-fields .cfg-tramo-nota{color:var(--muted-2);grid-column:1/-1;margin:0;font-size:11.5px;line-height:1.45}.cfg-tramo-empty{border:1px dashed var(--border-2);border-radius:var(--radius);background:var(--surface-2);color:var(--muted);text-align:center;margin:0;padding:14px;font-size:12px}.plan-usage{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 16px;padding:10px 14px;display:flex}.plan-usage.plan-near{border-color:var(--warn-border);background:var(--warn-bg)}.plan-usage.plan-full{border-color:var(--err-border)}.plan-badge{background:var(--track);color:var(--text);border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700}.plan-badge-premium{background:var(--accent-soft);color:var(--accent-strong)}.plan-count{font-weight:600}.plan-meter{width:120px;max-width:30vw}.plan-over{color:var(--err-text);flex-basis:100%;margin:0}.plan-over-text{color:var(--err-text)}.plan-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.78rem}.plan-chip.plan-near{border-color:var(--warn-border);background:var(--warn-bg)}.plan-chip.plan-full{border-color:var(--err-border);background:var(--err-bg);color:var(--err-text)}.plan-chip:focus-visible,.plan-usage .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px;display:grid}.plan-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.plan-card h3{margin:0 0 6px}.plan-card-premium{border-color:var(--accent)}.plan-prices{gap:10px;margin:8px 0;padding:0;list-style:none;display:grid}.plan-prices .btn{margin-top:4px}.plan-sandbox{color:var(--err-text);font-size:.8rem;font-weight:700}.plan-ok{color:var(--ok-text);font-weight:600}.plan-current{margin-top:0;font-weight:600}.cfg-rail{grid-area:rail}.cfg-form{grid-area:form}.cfg-preview-col{grid-area:preview;min-height:0}.cfg-data{grid-area:data}.cfg-grid{grid-template-areas:"rail form preview data"}.cfg-grid--norail{grid-template-areas:"form preview data"}@media (width<=1400px){.cfg-grid{grid-template-columns:84px 340px minmax(0,1fr) 300px}.cfg-grid--norail{grid-template-columns:340px minmax(0,1fr) 300px}}@media (width<=1180px){.cfg-grid{grid-template:"rail form preview"minmax(0,1fr)"rail form data"minmax(0,auto)/76px minmax(300px,340px) minmax(0,1fr);height:max(420px,min(94vh - 150px,780px))}.cfg-grid--norail{grid-template-columns:minmax(300px,340px) minmax(0,1fr);grid-template-areas:"form preview""form data"}.cfg-data{border-left:0;border-top:1px solid var(--border);max-height:26vh}.cfg-canto-hint{flex-basis:100%;order:10;font-size:11.5px;line-height:1.3}.cfg-canto-bar{gap:8px;padding:8px 12px}.cfg-3d{margin:10px}.cfg-kpis{grid-template-columns:repeat(4,1fr)}.cfg-rail-item{padding:9px 2px}}@media (width<=760px){.cfg-grid,.cfg-grid--norail{flex-direction:column;height:auto;max-height:none;display:flex;overflow:visible}.cfg-rail{border-right:0;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.cfg-rail-item{min-width:72px}.cfg-form{border-right:0;overflow:visible}.cfg-preview-col .cfg-3d{min-height:280px}.cfg-data{max-height:none}.cfg-kpis{grid-template-columns:1fr 1fr}}.google-signin{margin-top:16px}.google-signin-divider{color:var(--muted-2);align-items:center;gap:10px;margin-bottom:12px;font-size:.82rem;display:flex}.google-signin-divider:before,.google-signin-divider:after{content:"";border-top:1px solid var(--border-2);flex:1}.google-signin-button{justify-content:center;min-height:44px;display:flex}.google-signin-status{text-align:center;margin:6px 0 0;font-size:.82rem}.demo-bar{z-index:90;border:1px solid var(--border-2);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--panel);flex-wrap:wrap;align-items:center;gap:8px 10px;max-width:min(460px,100vw - 32px);padding:10px 12px;font-size:.86rem;display:flex;position:fixed;bottom:16px;right:16px;box-shadow:0 8px 24px #00000024}.demo-bar-text{flex:220px;min-width:0;line-height:1.4}@media (width<=640px){.demo-bar{max-width:none;bottom:8px;left:8px;right:8px}body:has(.editor) .demo-bar{border:none;border-top:1px solid var(--border-2);box-shadow:none;border-radius:0;padding:8px 12px;bottom:0;left:0;right:0}}.project-name{text-overflow:ellipsis}@media (width<=600px){.store-topbar>.btn{white-space:nowrap;flex:none}.store-tabs{grid-template-columns:1fr 1fr;padding-inline:16px;display:grid}.store-tabs>.btn{min-width:0}.store-filters input[type=search]{flex:100%;min-width:0}.home-actions>.btn-lg,.home-actions>.btn-primary{flex:100%}.home-tools{border-left:none;flex:100%;margin-left:0;padding-left:0}.home-tools>.btn{flex:auto}}.store-topbar{flex-wrap:wrap}.store-seg{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;gap:2px;padding:3px;display:flex}.store-seg button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:6px 14px;font-size:.88rem;font-weight:500;position:relative}.store-seg button.on{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #2b26211a}.store-seg-n{color:var(--accent-strong);font-variant-numeric:tabular-nums;margin-left:5px;font-size:.75rem}.store-main{flex-direction:column;gap:18px;display:flex}.store-searchrow{flex-wrap:wrap;gap:10px;display:flex}.store-cat-icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.store-eyebrow{letter-spacing:.07em;text-transform:uppercase;color:var(--accent-strong);font-size:.72rem;font-weight:700}.store-hero{grid-template-columns:1.15fr 1fr;gap:16px;display:grid}.store-hero-main,.store-hero-featured{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;min-width:0;padding:20px;display:flex}.store-hero-main{justify-content:center}.store-hero-main h3{text-wrap:balance;margin:0;font-size:clamp(1.35rem,2.6vw,1.9rem);line-height:1.15}.store-hero-main p{max-width:52ch;margin:0}.store-hero-stats{gap:24px;display:flex}.store-hero-stats div{flex-direction:column;display:flex}.store-hero-stats b{font-variant-numeric:tabular-nums;font-size:1.25rem}.store-hero-stats span{color:var(--muted);font-size:.78rem}.store-hero-featured .store-card{border-color:var(--border)}.store-cattiles{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;display:grid}.store-cattile{border:1px solid var(--border);background:var(--surface);font:inherit;color:var(--text);cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;font-size:.8rem;display:flex}.store-cattile .store-cat-icon{width:26px;height:26px}.store-cattile:hover{border-color:var(--accent)}.store-cattile.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.store-explore{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:22px;display:grid}.store-filterpanel{flex-direction:column;gap:16px;display:flex;position:sticky;top:12px}.store-filterpanel fieldset{border:none;flex-direction:column;gap:6px;margin:0;padding:0;display:flex}.store-filterpanel legend{letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);margin-bottom:4px;font-size:.72rem;font-weight:600}.store-opt{cursor:pointer;align-items:center;gap:8px;font-size:.88rem;display:flex}.store-opt input{accent-color:var(--accent)}.store-results{flex-direction:column;gap:12px;min-width:0;display:flex}.store-chiprow{flex-wrap:wrap;align-items:center;gap:6px;min-height:30px;display:flex}.store-chip{border:1px solid var(--border-2);background:var(--surface);font:inherit;color:var(--text);border-radius:999px;align-items:center;gap:4px;padding:3px 11px;font-size:.82rem;display:inline-flex}.store-chip button{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 0 0 2px;font-size:.75rem}.store-chip-clear,.store-subtabs .store-chip{cursor:pointer}.store-chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.store-filters-toggle{display:none}.store-subtabs{flex-wrap:wrap;gap:6px;display:flex}.store-section-title{margin:6px 0 0;font-size:1rem}.store-empty2{border:1.5px dashed var(--border-2);background:var(--surface);border-radius:14px;flex-direction:column;gap:8px;padding:24px;display:flex}.store-empty2 h3{margin:0;font-size:1.15rem}.store-empty2 p{max-width:65ch;margin:0}.store-empty2 .store-empty-actions{flex-direction:column;align-items:flex-start;gap:12px;margin-top:6px;display:flex}.store-steps{counter-reset:paso;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:0;padding:0;list-style:none;display:grid}.store-steps li{counter-increment:paso;background:var(--bg-soft);border-radius:10px;padding:10px 12px;font-size:.86rem}.store-steps li:before{content:counter(paso);color:var(--accent-strong);font-weight:700;display:block}@media (width<=900px){.store-hero{grid-template-columns:1fr}.store-cattiles{grid-template-columns:repeat(4,minmax(0,1fr))}.store-explore{grid-template-columns:1fr}.store-filterpanel{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-flow:wrap;gap:18px 28px;padding:14px;display:none;position:static}.store-filterpanel.open{display:flex}.store-filters-toggle{display:inline-flex}}@media (width<=560px){.store-seg{order:5;width:100%}.store-seg button{flex:1;padding-inline:6px}.store-steps{grid-template-columns:1fr}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.brand-symbol{flex:none;display:block}.brand-symbol-t{fill:var(--brand-terracotta);stroke:var(--brand-terracotta)}.brand-symbol-w{fill:var(--brand-back);stroke:var(--brand-back)}.brand-mark{color:var(--brand-walnut);align-items:center;gap:10px;margin:0;line-height:1.1;display:inline-flex}.brand-mark-text{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.brand-name{letter-spacing:-.02em;color:var(--brand-walnut);font-size:1.15rem;font-weight:700}.brand-name-accent{color:var(--brand-terracotta)}.brand-mark--horizontal .brand-name{font-size:1.6rem}.brand-mark--compact{gap:8px}.brand-descriptor{letter-spacing:0;color:var(--muted);font-size:.9rem;font-weight:400}.login-bg{position:relative}.login-back{color:var(--muted-2);border-radius:8px;padding:6px 8px;font-size:.9rem;font-weight:600;text-decoration:none;position:absolute;top:16px;left:16px}.login-back:hover{color:var(--text);background:var(--surface)}.login-card .login-brand{font-size:inherit;justify-content:center;margin:2px 0 0}.login-card .login-descriptor{margin:6px 0 0}.login-form input:focus{box-shadow:0 0 0 3px var(--accent-soft)}.landing{background:var(--brand-cream);min-height:100vh;color:var(--text)}.landing a:not(.btn):not(.btn-primary){color:var(--accent);font-weight:600}.landing .btn,.landing .btn-primary{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.landing-header{justify-content:space-between;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:16px 24px;display:flex}.landing-header .landing-home{border-radius:8px;text-decoration:none}.landing-nav{align-items:center;gap:10px;display:flex}.landing-hero{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:center;gap:40px;max-width:1200px;margin:0 auto;padding:32px 24px 56px;display:grid}.landing-eyebrow{color:var(--muted-2);margin:0 0 10px;font-size:.95rem;font-weight:600}.landing-hero h1{letter-spacing:-.02em;color:var(--brand-walnut);margin:0 0 14px;font-size:clamp(1.9rem,3.4vw,2.8rem);line-height:1.12}.landing-lead{color:var(--ink-soft);max-width:34em;margin:0 0 24px;font-size:1.12rem}.landing-ctas{flex-wrap:wrap;gap:12px;display:flex}.landing-signin-line{color:var(--muted-2);margin:16px 0 0}.landing-shot{margin:0}.landing-shot img{border:1px solid var(--border-2);background:var(--surface);border-radius:12px;width:100%;height:auto;display:block;box-shadow:0 18px 48px #32231424}.landing-shot figcaption{color:var(--muted-2);margin-top:8px;font-size:.82rem}.landing-shot figcaption:before{content:"";background:var(--brand-sage);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.landing-steps,.landing-features{border-top:1px solid var(--border-2);max-width:1200px;margin:0 auto;padding:48px 24px;scroll-margin-top:16px}.landing-steps h2,.landing-features h2,.landing-closing h2{color:var(--brand-walnut);margin:0 0 6px;font-size:clamp(1.4rem,2.4vw,1.9rem)}.landing-section-lead{color:var(--muted-2);margin:0 0 32px}.landing-step-list{gap:48px;margin:0;padding:0;list-style:none;display:grid}.landing-step{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:center;gap:32px;display:grid}.landing-step:nth-child(2n) .landing-step-copy{order:2}.landing-step-n{background:var(--brand-terracotta);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;margin-bottom:10px;font-weight:700;display:inline-grid}.landing-step h3{margin:0 0 6px;font-size:1.25rem}.landing-step p{color:var(--ink-soft);margin:0}.landing-features ul{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:16px 0 0;padding:0;list-style:none;display:grid}.landing-features li{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.landing-closing{border-top:1px solid var(--border-2);grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:center;gap:24px;max-width:1200px;margin:0 auto;padding:32px 24px 56px;display:grid}.landing-closing h2{margin-bottom:18px}.landing-closing-copy{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.landing-closing-copy h2{margin-bottom:6px}.landing-demo-note{margin:10px 0 0;font-size:.86rem}.landing-closing-copy .landing-demo-note{margin-top:0}.landing-illustration img{width:100%;height:auto;display:block}.landing-footer{border-top:1px solid var(--border-2);flex-wrap:wrap;align-items:center;gap:8px 16px;max-width:1200px;margin:0 auto;padding:24px;font-size:.9rem;display:flex}.landing-footer a{margin-left:auto}@media (width<=900px){.landing-hero,.landing-step,.landing-closing{grid-template-columns:1fr}.landing-step:nth-child(2n) .landing-step-copy{order:0}.landing-hero{gap:28px;padding-top:16px}}@media (width<=520px){.landing-header{padding:12px 16px}.landing-hero,.landing-steps,.landing-features,.landing-closing{padding-left:16px;padding-right:16px}.landing-language{max-width:92px}.landing-ctas .btn-lg,.landing-closing-copy .btn-lg{width:100%}.landing-footer a{margin-left:0}}.home-brand{margin-bottom:14px}.home-header-row>div:first-child{min-width:0}.account-wrap,.account-chip{min-width:0;max-width:100%}.account-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (width<=600px){.home-header-row{flex-direction:column-reverse;align-items:stretch}.account-wrap{align-self:flex-end}.home{padding:20px 16px 64px}.home-header h1{font-size:1.9rem}}.cost-missing{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.cost-missing strong{flex-basis:100%}.cost-total-partial{font-weight:600}.cost-partial-note{margin:8px 0 0;font-size:.88rem}.login-bg{grid-template-columns:minmax(0,1fr)}.login-card{width:min(380px,100%)}@media (width<=480px){.login-bg{padding:64px 16px 24px}.login-card{padding:24px 18px 20px}}:root{--sa-warn-fg:#a06a1a}:root[data-theme=dark]{--sa-warn-fg:#e6c46a}.sa-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#32231473;justify-content:center;align-items:center;padding:24px;animation:.16s both saFade;display:flex;position:fixed;inset:0}.sa-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(400px,100%);padding:30px 28px 24px;animation:.18s both saPop;position:relative;box-shadow:0 24px 64px #32231447}.sa-close{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;justify-content:center;align-items:center;font-size:15px;display:flex;position:absolute;top:12px;right:14px}.sa-close:hover{background:var(--surface-2);color:var(--text)}.sa-icon{border:3px solid;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:2px auto 16px;font-size:38px;font-weight:700;line-height:1;display:flex}.sa-icon--success{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-text)}.sa-icon--error{background:var(--err-bg);border-color:var(--err-border);color:var(--danger)}.sa-icon--warning{background:var(--warn-bg);border-color:var(--warn-border);color:var(--sa-warn-fg)}.sa-icon--question,.sa-icon--info{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.sa-title{letter-spacing:-.01em;color:var(--text);margin:0 0 8px;font-size:21px;font-weight:700}.sa-text{color:var(--muted-2);white-space:pre-line;margin:0 0 22px;font-size:15px;line-height:1.5}.sa-input{border:1px solid var(--border-2);background:var(--surface-2);width:100%;color:var(--text);border-radius:10px;margin:0 0 22px;padding:11px 13px;font-family:inherit;font-size:15px}.sa-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.sa-input[aria-invalid=true]{border-color:var(--danger)}.sa-error{color:var(--danger);text-align:left;margin:-14px 0 18px;font-size:13px}.sa-btn:disabled{opacity:.5;cursor:not-allowed}.sa-title:last-of-type{margin-bottom:22px}.sa-actions{justify-content:center;gap:10px;display:flex}.sa-btn{cursor:pointer;border:1px solid #0000;border-radius:11px;padding:10px 22px;font-family:inherit;font-size:15px;font-weight:600}.sa-btn--primary{background:var(--accent-grad);color:#fff;box-shadow:0 4px 14px #c75c4259}.sa-btn--primary:hover{filter:brightness(1.05)}.sa-btn--danger{background:var(--danger);color:#fff;box-shadow:0 4px 14px #b85c5c59}.sa-btn--danger:hover{filter:brightness(1.05)}.sa-btn--ghost{color:var(--text);border-color:var(--border-2);background:0 0}.sa-btn--ghost:hover{background:var(--surface-2)}@keyframes saFade{0%{opacity:0}to{opacity:1}}@keyframes saPop{0%{opacity:0;transform:scale(.94)translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.sa-overlay,.sa-card{animation:none}}.feedback-tab{z-index:150;border:1px solid var(--accent-strong);background:var(--accent);color:#fff;max-width:28px;font:inherit;white-space:nowrap;cursor:pointer;opacity:.88;border-right:0;border-radius:10px 0 0 10px;align-items:center;gap:6px;padding:10px 8px 10px 7px;font-size:.85rem;font-weight:600;transition:max-width .18s,opacity .18s;display:flex;position:fixed;top:50%;right:0;overflow:hidden;transform:translateY(-50%);box-shadow:-2px 2px 10px #3223142e}.feedback-tab-icon{flex:none;place-items:center;width:14px;font-weight:800;display:inline-grid}.feedback-tab-label{padding-right:4px}.feedback-tab:focus-visible{opacity:1;outline:2px solid var(--text);outline-offset:2px;max-width:200px}@media (hover:hover){.feedback-tab:hover{opacity:1;max-width:200px}}.feedback-tab:disabled{cursor:progress;max-width:200px}.feedback-form{gap:14px;display:grid}.feedback-types{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.feedback-types legend{margin-bottom:6px;font-weight:600}.feedback-types .chip{cursor:pointer;align-items:center;gap:6px;padding:5px 12px;font-size:.85rem;display:inline-flex}.feedback-types .chip input{accent-color:var(--accent);margin:0}.feedback-types .chip-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-strong)}.feedback-question{gap:4px;display:grid}.feedback-question textarea{resize:vertical;width:100%;font:inherit}.feedback-images{gap:8px;display:grid}.feedback-images ul{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.feedback-images li{gap:4px;width:132px;display:grid}.feedback-images img{object-fit:cover;border:1px solid var(--border);background:var(--bg-soft);border-radius:8px;width:132px;height:88px}.feedback-image-open{cursor:zoom-in;background:0 0;border:0;border-radius:8px;padding:0;display:block}.feedback-image-open:hover img,.feedback-image-open:focus-visible img{border-color:var(--accent)}.feedback-image-full{border:1px solid var(--border);border-radius:8px;max-width:100%;max-height:75vh;margin:0 auto;display:block}.feedback-image-actions{justify-content:space-between;align-items:center;display:flex}.feedback-images>.btn{justify-self:start}.feedback-notice{border:1px solid var(--warn-border);background:var(--warn-bg);border-radius:8px;margin:0;padding:8px 10px}.feedback-error{color:var(--danger);margin:0;font-weight:600}.annotator-tools{gap:8px;margin-bottom:10px;display:flex}.annotator-canvas{border:1px solid var(--border);cursor:crosshair;touch-action:none;max-width:100%;max-height:70vh;margin:0 auto;display:block}@media (width<=640px){.feedback-tab{top:78%}.modal-card:has(.feedback-form){border-radius:0;width:100%;max-height:100dvh}.modal-overlay:has(.feedback-form){padding:0}}.my-tickets{gap:10px;margin:0;padding:0;list-style:none;display:grid}.my-tickets li{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.my-tickets p{overflow-wrap:anywhere;margin:4px 0}.my-ticket-head{justify-content:space-between;gap:8px;display:flex}.ticket-status{white-space:nowrap;border-radius:999px;padding:1px 10px;font-size:.78rem;font-weight:600}.ticket-status-nuevo{background:var(--accent-soft);color:var(--accent-strong)}.ticket-status-revisado{background:var(--warn-bg);color:#8a5a00}.ticket-status-resuelto{color:#22663a;background:#e3f3e6}.ticket-status-descartado{background:var(--bg);color:var(--muted)}.tickets-panel{gap:16px;display:grid}.tickets-head h2{align-items:center;gap:10px;margin:0 0 10px;display:flex}.tickets-filters{flex-wrap:wrap;gap:10px;display:flex}.tickets-filter{color:var(--muted);gap:2px;font-size:.8rem;display:grid}.tickets-search input{min-width:200px}.tickets-table-wrap{overflow-x:auto}.tickets-table{border-collapse:collapse;width:100%;font-size:.88rem}.tickets-table th,.tickets-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px}.tickets-table tbody tr{cursor:pointer}.tickets-table tbody tr:hover{background:var(--bg-soft)}.tickets-summary{max-width:360px}.tickets-summary .link-btn{-webkit-line-clamp:2;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;-webkit-box-orient:vertical;padding:0;display:-webkit-box;overflow:hidden}.ticket-detail{grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:24px;display:grid}@media (width<=860px){.ticket-detail{grid-template-columns:1fr}}.ticket-detail h3,.ticket-detail h4{margin:0 0 8px}.ticket-detail h4{margin-top:16px}.ticket-answers dt{font-weight:600}.ticket-answers dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0 10px}.ticket-images{flex-wrap:wrap;gap:10px;display:flex}.ticket-images img{object-fit:contain;border:1px solid var(--border);background:var(--bg-soft);border-radius:8px;width:200px;max-height:140px}.ticket-context{border-collapse:collapse;margin-bottom:8px;font-size:.82rem}.ticket-context th{color:var(--muted);text-align:left;white-space:nowrap;vertical-align:top;padding:3px 10px 3px 0;font-weight:500}.ticket-context td{overflow-wrap:anywhere}.ticket-form{gap:10px;display:grid}.ticket-form label{gap:3px;display:grid}.ticket-form textarea{resize:vertical;font:inherit}.ticket-history{gap:8px;margin:0;padding-left:18px;font-size:.85rem;display:grid}.ticket-id{margin-top:12px;font-size:.75rem}.agent-tokens{border-top:1px solid var(--border);padding-top:12px}.agent-token-form{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.agent-token-form label{gap:3px;display:grid}.agent-token-created{border:1px solid var(--warn-border);background:var(--warn-bg);border-radius:10px;padding:12px}.agent-token-value,.agent-token-command{background:var(--surface);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;padding:8px;font-size:.8rem;display:block}.agent-token-actions{gap:8px;margin-top:8px;display:flex}.agent-token-list{gap:6px;padding:0;list-style:none;display:grid}.agent-token-list li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.tickets-head .tickets-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.agents-modal{gap:12px;display:grid}.agent-history li{font-size:.85rem}.agent-consent{background:var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.agent-consent-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:12px;width:min(440px,100%);padding:24px;display:grid}.agent-consent-card h1{margin:0;font-size:1.25rem}.agent-applying{z-index:950;background:color-mix(in srgb, var(--bg) 55%, transparent);place-items:center;display:grid;position:fixed;inset:0}.agent-applying-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;justify-items:center;gap:8px;max-width:min(420px,100vw - 32px);padding:20px;display:grid}.agent-applied{z-index:950;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);align-items:center;gap:8px;max-width:calc(100vw - 32px);padding:8px 12px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.metrics-panel{--metrics-line:#2f6f9f;flex-direction:column;gap:16px;display:flex}.metrics-filters{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.metrics-periods,.metrics-custom,.metrics-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.metrics-custom label,.metrics-toggle{align-items:center;gap:6px;font-size:.9rem;display:flex}.metrics-note{margin:0;font-size:.8rem}.metrics-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;display:grid}.metrics-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex:320px;gap:10px;min-width:0;padding:16px;display:flex;overflow:hidden}.metrics-card h3{margin:0;font-size:1rem}.metrics-card h4{margin:4px 0 0;font-size:.82rem;font-weight:600}.metrics-wide{flex:2 540px}.metrics-row{flex-wrap:wrap;gap:16px;display:flex}.metrics-kpi-label{color:var(--muted);font-size:.82rem}.metrics-kpi-value{font-variant-numeric:tabular-nums;font-size:1.7rem;line-height:1.1}.metrics-delta{color:var(--muted);font-size:.82rem;font-weight:600}.metrics-delta.is-up{color:var(--ok-text)}.metrics-delta.is-down{color:var(--danger)}.metrics-card-head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.metrics-legend{color:var(--muted);gap:14px;font-size:.78rem;display:flex}.metrics-key{background:var(--accent);vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:5px;display:inline-block}.metrics-key-line{background:var(--metrics-line);height:3px}.metrics-chart{border-bottom:1px solid var(--border);align-items:flex-end;gap:3px;height:200px;display:flex;position:relative}.metrics-bar{background:var(--accent);opacity:.85;border-radius:3px 3px 0 0;flex:1 1 0;min-width:2px}.metrics-chart svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.metrics-chart polyline{fill:none;stroke:var(--metrics-line);stroke-width:2px;vector-effect:non-scaling-stroke}.metrics-axis{justify-content:space-between;font-size:.78rem;display:flex}.metrics-list{flex-direction:column;gap:8px;margin:0;padding:0;font-size:.88rem;list-style:none;display:flex}.metrics-list-row{justify-content:space-between;gap:8px;display:flex}.metrics-track{background:var(--surface-2);border-radius:6px;height:10px;margin-top:4px;overflow:hidden}.metrics-track>div{background:var(--accent);border-radius:6px;height:100%}.metrics-track.is-alt>div{background:var(--metrics-line)}.metrics-feature{grid-template-columns:110px minmax(0,1fr) 56px;align-items:center;gap:10px;display:grid}.metrics-feature .metrics-track{margin-top:0}.metrics-num{text-align:right;font-variant-numeric:tabular-nums}.metrics-mini{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.metrics-mini>div{background:var(--surface-2);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;font-size:.8rem;display:flex}.metrics-mini strong{font-variant-numeric:tabular-nums;font-size:1.2rem}.metrics-scroll{overflow-x:auto}.metrics-cohorts,.metrics-table{width:100%;min-width:520px;font-size:.86rem}.metrics-cohorts{border-collapse:separate;border-spacing:3px}.metrics-table{border-collapse:collapse}.metrics-cohorts th,.metrics-table th{color:var(--muted);text-align:left;padding:6px 8px;font-weight:600}.metrics-table td{border-top:1px solid var(--border);padding:8px}.metrics-cell{text-align:center;font-variant-numeric:tabular-nums;border-radius:6px;padding:6px}.metrics-cell.is-strong{color:#fff}.metrics-problems{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.metrics-problems li{background:var(--surface-2);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:.88rem;display:flex}.metrics-problems strong{font-variant-numeric:tabular-nums;font-size:1rem}.metrics-problems li.is-warn strong{color:var(--danger)}:root[data-theme=dark] .metrics-panel{--metrics-line:#6fa8d6}.stripe-status{flex-direction:column;gap:16px;display:flex}.stripe-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;min-width:0;padding:16px;display:flex}.stripe-card h3{margin:0;font-size:1rem}.stripe-card h4{margin:0 0 6px;font-size:.85rem}.stripe-card p{margin:0}.stripe-card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.stripe-checklist{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.stripe-checklist li{border-top:1px solid var(--border);grid-template-columns:12px minmax(160px,260px) minmax(0,1fr);align-items:baseline;gap:10px;padding:8px 0;font-size:.88rem;display:grid}.stripe-checklist li:first-child{border-top:0}.stripe-dot{background:var(--muted);border-radius:50%;align-self:center;width:10px;height:10px}.is-ok>.stripe-dot{background:var(--ok-text)}.is-warn>.stripe-dot{background:#d9a21b}.is-todo>.stripe-dot{background:var(--danger)}.stripe-item-label{font-weight:600}.stripe-item-detail{color:var(--muted);overflow-wrap:anywhere}.stripe-note{font-size:.8rem}.stripe-copy{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stripe-copy code{background:var(--surface-2);overflow-wrap:anywhere;border-radius:8px;flex:260px;min-width:0;padding:8px 10px}.stripe-events{flex-wrap:wrap;gap:16px;display:flex}.stripe-events>div{flex:240px;min-width:0}.stripe-events ul{margin:0;padding-left:18px;font-size:.82rem;line-height:1.7}.stripe-guide{flex-direction:column;gap:6px;margin:0;padding-left:20px;font-size:.88rem;display:flex}@media (width<=600px){.stripe-checklist li{grid-template-columns:12px minmax(0,1fr)}.stripe-item-detail{grid-column:2}}.tutorial-layer{z-index:900;pointer-events:none;position:fixed;inset:0}.tutorial-spot{box-shadow:0 0 0 3px var(--brand-terracotta), 0 0 0 9999px #140e0880;border-radius:10px;transition:top .25s,left .25s,width .25s,height .25s;position:fixed}.tutorial-spot--none{box-shadow:none;background:#140e0859;border-radius:0;inset:0}.tutorial-bubble{border:1px solid var(--border-2);border-left:4px solid var(--brand-terracotta);border-radius:var(--radius);background:var(--surface);width:min(360px,100vw - 32px);color:var(--text);pointer-events:auto;padding:14px 16px;transition:top .25s,left .25s;position:fixed;top:50%;left:50%;box-shadow:0 16px 40px #140e0847}.tutorial-bubble:focus{outline:none}.tutorial-bubble:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tutorial-bubble--sheet{width:auto;max-height:46vh;inset:auto 8px 8px;overflow:auto}.tutorial-bubble--sheet.tutorial-bubble--top{top:8px;bottom:auto}.tutorial-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.tutorial-kicker{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;font-weight:600}.tutorial-close{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:.95rem}.tutorial-close:hover{background:var(--surface-2);color:var(--text)}.tutorial-title{margin:4px 0 6px;font-size:1.05rem}.tutorial-text{margin:0;line-height:1.45}.tutorial-wait{color:var(--muted);margin:8px 0 0;font-size:.82rem}.tutorial-auto{background:var(--surface-2);border-radius:2px;height:3px;margin-top:10px;overflow:hidden}.tutorial-auto-bar{background:var(--brand-terracotta);transform-origin:0;height:100%;animation:linear forwards tutorial-countdown;display:block}.tutorial-auto-bar.paused{animation-play-state:paused}@keyframes tutorial-countdown{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.tutorial-dots{gap:5px;margin-top:10px;display:flex}.tutorial-dots span{background:var(--border-2);border-radius:50%;width:7px;height:7px}.tutorial-dots span.done{background:color-mix(in srgb, var(--brand-terracotta) 45%, var(--border-2))}.tutorial-dots span.on{background:var(--brand-terracotta)}.tutorial-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.tutorial-offer{z-index:140;border:1px solid var(--border-2);border-left:4px solid var(--brand-terracotta);border-radius:var(--radius);background:var(--surface);width:min(360px,100vw - 32px);color:var(--text);padding:14px 16px;position:fixed;bottom:16px;left:16px;box-shadow:0 12px 32px #3223142e}.tutorial-offer--inline{width:auto;box-shadow:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;margin:0 0 16px;display:flex;position:static}.tutorial-offer--inline .tutorial-offer-actions{margin-top:0}@media (width<=640px){.tutorial-offer:not(.tutorial-offer--inline){bottom:132px}}.tutorial-offer h2{margin:0 0 6px;font-size:1rem}.tutorial-offer p{margin:0;line-height:1.45}.tutorial-offer-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;display:flex}@media (prefers-reduced-motion:reduce){.tutorial-spot,.tutorial-bubble{transition:none}}.assembly{background:var(--bg);min-height:100dvh;color:var(--text);flex-direction:column;display:flex}.assembly-header{background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;display:flex}.assembly-title{flex:180px;min-width:0}.assembly-mode{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600;display:block}.assembly-title h1{overflow-wrap:anywhere;margin:0;font-size:1.15rem;line-height:1.25}.assembly-badges{flex-wrap:wrap;gap:6px;display:flex}.assembly-badge{border:1px solid var(--border-2);background:var(--surface-2);border-radius:999px;align-items:center;min-height:28px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.assembly-badge.is-ready{background:var(--ok-bg);border-color:var(--ok-border);color:var(--ok-text)}.assembly-badge.is-editing{background:var(--warn-bg);border-color:var(--warn-border);color:var(--warn-text)}.assembly-badge.is-readonly{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-strong)}.assembly-actions{scrollbar-width:thin;flex-wrap:nowrap;gap:6px;width:100%;display:flex;overflow-x:auto}.assembly-actions>.btn{white-space:nowrap;flex:none;padding-inline:10px}.assembly-touch{min-width:44px;min-height:44px}.assembly-notice{margin:6px 14px 0;font-size:.88rem}.assembly-main{flex-direction:column;flex:1;min-height:0;display:flex}.assembly-stage{flex-direction:column;min-height:0;display:flex;position:relative}.assembly-canvas{touch-action:none;background:#eceef1;min-height:260px;height:52dvh!important}.assembly-no3d{margin:12px 14px}.assembly-scene-loading{margin:40px auto}.assembly-navbar{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;display:flex}.assembly-navbar>.btn{white-space:nowrap;flex:auto}.assembly-navbar .btn-primary{flex-basis:100%}.assembly-nav-pos{text-align:center;min-width:4.5em;font-size:.85rem}.assembly-panel{background:var(--surface);flex-direction:column;min-height:0;display:flex}.assembly-panel-toggle{margin:8px 10px 0}.assembly-panel-body{flex-direction:column;gap:14px;padding:10px 14px 24px;display:flex}.assembly-panel-body[hidden]{display:none}.assembly-empty-sel{margin:0}.assembly-sheet{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel-soft);padding:12px}.assembly-sheet h3{margin:2px 0 8px;font-size:1.1rem}.assembly-sheet-kind{margin:0;font-size:.85rem}.assembly-dims{grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 6px;display:grid}.assembly-dims div{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 8px}.assembly-dims dt{color:var(--muted);font-size:.75rem}.assembly-dims dd{font-family:var(--font-mono);margin:0;font-size:1rem;font-weight:600}.assembly-facts{grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0;display:grid}.assembly-facts dt{color:var(--muted);font-size:.85rem}.assembly-facts dd{margin:0}.assembly-edges{grid-template-columns:1fr 1fr;gap:2px 10px;margin:0;padding:0;font-size:.9rem;list-style:none;display:grid}.assembly-swatch{border:1px solid var(--border-2);vertical-align:middle;border-radius:4px;flex:none;width:14px;height:14px;display:inline-block}.assembly-hint{margin:0;font-size:.85rem}.assembly-tools{flex-direction:column;gap:8px;display:flex}.assembly-viewmodes{border:0;grid-template-columns:repeat(4,1fr);gap:4px;margin:0;padding:0;display:grid}.assembly-viewmodes legend{color:var(--muted);margin-bottom:4px;font-size:.85rem}.assembly-tool-row{flex-wrap:wrap;gap:6px;display:flex}.assembly-explode{flex-direction:column;gap:4px;font-weight:600;display:flex}.assembly-explode input{width:100%;min-height:44px;accent-color:var(--accent)}.assembly-tree ul{margin:0;padding:0;list-style:none}.assembly-tree ul ul{border-left:2px solid var(--border);margin-left:8px;padding-left:14px}.assembly-tree h4{color:var(--muted);margin:12px 0 4px;font-size:.9rem}.assembly-item{width:100%;min-height:44px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.assembly-item:hover{background:var(--panel-muted)}.assembly-item.is-selected{background:var(--accent-soft);border-color:var(--accent)}.assembly-item-module{font-weight:600}.assembly-item-name{overflow-wrap:anywhere;flex:1;min-width:0}.assembly-item-dims{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;font-size:.8rem}.assembly-item-flag{color:var(--warn-text);font-size:.75rem}.assembly-budget{border-top:1px solid var(--border);padding-top:10px}.assembly-budget h3{margin:0 0 4px;font-size:1rem}.assembly-budget-lines{grid-template-columns:1fr auto;gap:4px 12px;margin:8px 0;display:grid}.assembly-budget-lines dd{text-align:right;font-family:var(--font-mono);margin:0}.assembly-budget-sub{color:var(--muted);font-size:.85rem;display:contents}.assembly-budget-sub dt{padding-left:12px}.assembly-budget-total{border-top:1px solid var(--border);padding-top:4px;font-weight:700}.assembly-status{max-width:520px;margin:40px auto;padding:20px}.assembly-offline{z-index:950;background:color-mix(in srgb, var(--bg) 96%, transparent);place-items:center;padding:16px;display:grid;position:fixed;inset:0}.assembly-offline-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);max-width:420px;padding:20px;box-shadow:0 10px 30px #0000001f}.assembly-share{flex-direction:column;gap:10px;display:flex}.assembly-share-row{gap:6px;display:flex}.assembly-share-row input{min-width:0;min-height:44px;font-family:var(--font-mono);flex:1;font-size:.85rem}.assembly-share-actions{flex-wrap:wrap;gap:6px;display:flex}.assembly-check{align-items:center;gap:8px;min-height:44px;display:flex}.assembly-check input{width:20px;height:20px}.link-btn{color:var(--accent-strong);font:inherit;cursor:pointer;background:0 0;border:0;min-height:32px;padding:0;text-decoration:underline}.project-ready-badge{background:var(--ok-bg);border:1px solid var(--ok-border);color:var(--ok-text);border-radius:999px;margin-left:6px;padding:1px 8px;font-size:.75rem;font-weight:600;display:inline-block}@media (width>=768px){.assembly{height:100dvh}.assembly-actions{width:auto}.assembly-main{flex-direction:row}.assembly-stage{flex:1}.assembly-canvas{flex:1;height:auto!important}.assembly-navbar>.btn{flex:none}.assembly-navbar .btn-primary{flex-basis:auto;margin-left:auto}.assembly-panel{border-left:1px solid var(--border);width:380px;overflow-y:auto}.assembly-main.panel-closed .assembly-panel{width:auto}}@media (width>=768px) and (width<=1023px){.assembly-panel{width:320px}}@media (prefers-reduced-motion:reduce){.assembly *{transition:none!important;animation:none!important}}@media (width<=767px){.assembly-actions{flex-wrap:wrap;overflow-x:visible}.assembly-actions>.btn{flex:auto}}.render-page{background:#eceef1;position:fixed;inset:0}.render-page .assembly-canvas{width:100%;height:100%!important}
