:root{
  --violet:#6b2bd9;--violet-dark:#4c159f;--lime:#b9f227;--pink:#ef4da8;
  --ink:#202431;--muted:#7b8290;--bg:#f5f6fa;--card:#fff;--line:#e5e8ef;
  --danger:#d43f53;--shadow:0 12px 34px rgba(34,26,58,.07);--radius:18px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}a{text-decoration:none;color:inherit}.muted{color:var(--muted)}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.18em;color:var(--violet)}.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 15%,rgba(107,43,217,.22),transparent 35%),radial-gradient(circle at 88% 80%,rgba(185,242,39,.15),transparent 30%),#15111b}.login-grid{width:min(930px,100%);display:grid;grid-template-columns:1.15fr .85fr;gap:34px;align-items:center}.login-copy{color:white;display:flex;gap:18px;align-items:flex-start}.brand-badge{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--violet),var(--pink));display:grid;place-items:center;font-size:28px;font-weight:900;color:white;box-shadow:0 14px 30px rgba(107,43,217,.34)}.login-copy h1{font-size:56px;letter-spacing:-.045em;margin:4px 0 12px}.login-copy p{color:#bbb5c2;max-width:480px;line-height:1.65}.login-card{position:relative;overflow:hidden;background:#fff;border-radius:24px;padding:30px;box-shadow:0 35px 80px rgba(0,0,0,.28)}.login-card:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:linear-gradient(90deg,var(--violet),var(--pink),var(--lime))}.login-card h2{font-size:26px;margin:3px 0 5px}.demo-box{font-size:11px;color:#737a89;background:#f4f5f8;border:1px solid #e7e9ef;border-radius:11px;padding:10px 12px;margin-top:14px;line-height:1.55}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:#181220;color:white;padding:20px 16px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:11px;padding:3px 7px 17px}.brand .brand-badge{width:39px;height:39px;border-radius:12px;font-size:19px}.brand strong,.brand span{display:block}.brand strong{letter-spacing:.1em}.brand span{font-size:9px;letter-spacing:.2em;color:#a39baa;margin-top:2px}.beta-pill{margin:0 7px 15px;background:rgba(185,242,39,.1);color:var(--lime);border:1px solid rgba(185,242,39,.18);border-radius:9px;padding:7px 10px;text-align:center;font-size:9px;font-weight:900;letter-spacing:.12em}.nav-group{font-size:9px;letter-spacing:.16em;color:#6d6479;font-weight:900;padding:16px 12px 6px}.nav{display:flex;flex-direction:column;gap:5px}.nav button{width:100%;border:0;background:none;color:#cec8d5;display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:12px;text-align:left;transition:.16s}.nav button:hover{background:#241b30;color:white}.nav button.active{background:linear-gradient(100deg,rgba(107,43,217,.36),rgba(239,77,168,.11));box-shadow:inset 3px 0 var(--lime);color:white}.nav button .ico{width:22px;text-align:center;font-size:17px;color:#978ea3}.nav button.active .ico{color:var(--lime)}.nav button.disabled{opacity:.4;cursor:default}.nav button b{margin-left:auto;font-size:8px;background:#30263b;color:#958b9f;border-radius:999px;padding:3px 6px}.sidebar-foot{margin-top:auto;border-top:1px solid #302638;padding:15px 7px 0;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px}.avatar{width:34px;height:34px;border-radius:10px;background:var(--violet);display:grid;place-items:center;font-weight:900}.sidebar-foot strong,.sidebar-foot span{display:block}.sidebar-foot strong{font-size:12px}.sidebar-foot span{font-size:9px;color:#91899a}.logout-btn{border:0;background:none;color:#8e8499;font-size:18px}.main{margin-left:255px;min-height:100vh}.topbar{height:88px;position:sticky;top:0;z-index:15;background:rgba(245,246,250,.92);backdrop-filter:blur(13px);border-bottom:1px solid rgba(229,232,239,.85);display:flex;align-items:center;justify-content:space-between;padding:0 30px}.topbar h1{font-size:24px;margin:3px 0 0}.topbar-right{display:flex;gap:10px;align-items:center}.date-pill{background:white;border:1px solid var(--line);border-radius:11px;padding:9px 11px;color:var(--muted);font-size:11px}.menu-btn{display:none;border:0;background:white;border-radius:10px;padding:8px 10px}.content{padding:28px 30px 55px;max-width:1600px;margin:auto}
.hero,.section-actions,.detail-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:22px}.hero h2,.detail-head h2{font-size:28px;margin:0 0 4px;letter-spacing:-.025em}.hero p,.detail-head p{margin:0}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{border:1px solid transparent;border-radius:12px;padding:10px 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:800;transition:.15s}.btn:hover{transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,var(--violet),var(--violet-dark));color:white;box-shadow:0 9px 22px rgba(107,43,217,.18)}.btn-secondary{background:white;border-color:var(--line);color:var(--ink)}.btn-danger{background:#fff0f2;color:#b93047;border-color:#f5d5da}.btn-small{padding:7px 10px;border-radius:9px;font-size:11px}.btn-block{width:100%}.link-btn{border:0;background:none;color:var(--violet);font-weight:800;padding:0}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.kpi{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;right:-28px;top:-28px;width:70px;height:70px;border-radius:50%;background:rgba(107,43,217,.06)}.kpi.accent:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--lime)}.kpi span,.kpi strong,.kpi small{display:block}.kpi span{font-size:11px;color:var(--muted);font-weight:800}.kpi strong{font-size:28px;margin:8px 0 3px;letter-spacing:-.04em}.kpi small{font-size:9px;color:#a2a7b1}.grid-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.85fr);gap:18px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:15px}.panel-head h3,.panel h3{margin:0;font-size:16px}.panel-head p{font-size:11px;color:var(--muted);margin:4px 0 0}.panel-head .link-btn{font-size:11px}.table-wrap{overflow:auto;margin:0 -4px}table{border-collapse:collapse;width:100%;min-width:680px}th{text-align:left;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#8f95a1;padding:10px 12px;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid #eff1f5}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfbfe}.sub{display:block;font-size:9px;color:var(--muted);margin-top:3px}.badge{display:inline-flex;border-radius:999px;padding:6px 9px;font-size:9px;font-weight:900;white-space:nowrap}.draft{background:#eef0f4;color:#707681}.sent{background:#eaf0ff;color:#3e63bd}.approved{background:#e9f8e8;color:#2f8640}.rejected{background:#fde9ed;color:#b43149}.design{background:#eee7ff;color:#6b3abd}.approval{background:#fff2d7;color:#a46908}.production{background:#e3f5ff;color:#157ca7}.installation{background:#ffe8f3;color:#b23478}.finished{background:#e7f8ec;color:#27844b}.prio{font-size:9px;font-weight:900}.prio.high{color:#c6344c}.prio.normal{color:#705ab3}.prio.low{color:#667a89}.timeline{display:flex;flex-direction:column}.timeline-item{display:grid;grid-template-columns:17px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid #eff1f5}.timeline-item:last-child{border-bottom:0}.timeline-item .dot{width:8px;height:8px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 4px rgba(107,43,217,.08);margin-top:5px}.timeline-item strong,.timeline-item small{display:block}.timeline-item strong{font-size:11px}.timeline-item p{font-size:10px;color:var(--muted);margin:4px 0}.timeline-item small{font-size:9px;color:#a0a5ae;margin-top:4px}.empty{padding:28px 15px;text-align:center;color:var(--muted)}
input,select,textarea{width:100%;border:1px solid #dfe2ea;border-radius:11px;padding:10px 12px;background:white;color:var(--ink);outline:none;transition:.15s}input:focus,select:focus,textarea:focus{border-color:#a98be7;box-shadow:0 0 0 3px rgba(107,43,217,.08)}label{display:flex;flex-direction:column;gap:6px;font-size:10px;color:#666e7d;font-weight:800}.stack{display:flex;flex-direction:column;gap:13px}.form-grid{display:grid;gap:14px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.span-2{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:9px}.search{width:min(430px,70vw)}.alert{padding:12px 14px;border-radius:12px;margin-bottom:16px;font-weight:700}.alert-success{background:#eaf8ed;border:1px solid #cfead5;color:#287a39}.alert-danger{background:#fdecef;border:1px solid #f4ced5;color:#af3046}.alert-info{background:#edf1ff;border:1px solid #d8e0fb;color:#4961a9}
.quote-editor{display:flex;flex-direction:column;gap:16px}.items{display:flex;flex-direction:column;gap:11px}.quote-item{border:1px solid var(--line);border-radius:14px;background:#fcfcfe;padding:14px}.quote-item .desc{margin-bottom:10px}.item-grid{display:grid;grid-template-columns:95px 125px 125px minmax(180px,1fr) 38px;gap:10px;align-items:end}.remove{height:39px;border:0;border-radius:10px;background:#fff0f2;color:#bf3048;font-size:19px}.totals{width:min(460px,100%);margin-left:auto}.totals-row{display:flex;justify-content:space-between;padding:8px 0}.totals-row.grand{border-top:1px solid var(--line);padding-top:13px;margin-top:4px}.totals-row.grand strong{font-size:22px;color:var(--violet)}.quote-summary{width:min(360px,100%);margin:18px 0 0 auto;border-top:1px solid var(--line);padding-top:8px}.quote-summary .totals-row:last-child{font-size:17px;color:var(--violet)}.hint{margin-top:14px;background:#fff7df;border:1px solid #f3e2ad;color:#84620d;border-radius:12px;padding:11px;font-size:10px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.tab{padding:9px 12px;background:#eceef3;color:#8b919d;border-radius:10px;font-size:10px}.tab.active{background:#ede5ff;color:var(--violet);font-weight:900}.tab b{font-size:7px;opacity:.7}.section-note{display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:14px}.save-dot{width:8px;height:8px;border-radius:50%;background:#b9bec7}.save-dot.saved{background:#4bb661;box-shadow:0 0 0 5px rgba(75,182,97,.11)}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(250px,1fr));gap:14px;overflow-x:auto;padding-bottom:14px}.kanban-col{min-height:570px;background:#edf0f5;border:1px solid #e2e5eb;border-radius:18px;padding:11px}.kanban-col.over{background:#eee7fb;border-color:#b49ae6}.kanban-head{display:flex;align-items:center;justify-content:space-between;padding:5px 5px 12px}.kanban-head h3{font-size:12px;margin:0}.count{font-size:9px;background:white;border-radius:999px;padding:4px 7px;color:#747b88}.dropzone{min-height:510px;display:flex;flex-direction:column;gap:10px}.task{background:white;border:1px solid #e0e3e9;border-radius:14px;padding:13px;box-shadow:0 5px 14px rgba(40,37,50,.05);cursor:grab}.task.dragging{opacity:.45}.task-top{display:flex;gap:7px;align-items:center}.prio-dot{width:7px;height:7px;border-radius:50%;background:#8b92a0}.prio-dot.high{background:#e1495e}.prio-dot.normal{background:#8b66d6}.prio-dot.low{background:#78a6b8}.task small{font-size:8px;color:#8c929e;font-weight:900}.task h4{font-size:12px;margin:9px 0 4px}.task p{font-size:10px;color:var(--muted);margin:0}.task-meta{display:flex;justify-content:space-between;gap:8px;margin:11px 0;color:#7c838f;font-size:8px}.task .link-btn{font-size:9px}
.settings-card{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.reset-box{margin-top:18px;border:1px solid #f0ccd2;background:#fff7f8;border-radius:14px;padding:15px}.reset-box h4{margin:0 0 5px;color:#a93246}.reset-box p{margin:0 0 12px;color:#806b70;font-size:10px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:5px 8px;background:#f1eff8;color:#6a4da6;font-size:9px;font-weight:900}.toast-wrap{position:fixed;right:22px;bottom:22px;z-index:60;display:flex;flex-direction:column;gap:8px}.toast{background:#1e1925;color:white;border-radius:12px;padding:11px 14px;box-shadow:0 12px 30px rgba(0,0,0,.2);font-size:11px;min-width:220px;animation:pop .18s ease-out}.toast.success{border-left:4px solid var(--lime)}.toast.danger{border-left:4px solid #ee5267}@keyframes pop{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.form-grid.three{grid-template-columns:repeat(2,1fr)}.item-grid{grid-template-columns:90px 1fr 1fr}.item-grid label:nth-of-type(4){grid-column:span 2}.kanban{grid-template-columns:repeat(4,270px)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0}.topbar{height:76px;padding:0 15px;justify-content:flex-start}.menu-btn{display:block;margin-right:10px}.topbar-right{margin-left:auto}.date-pill{display:none}.content{padding:20px 15px 45px}.hero,.section-actions,.detail-head{align-items:flex-start;flex-direction:column}.form-grid.two,.form-grid.three{grid-template-columns:1fr}.span-2{grid-column:auto}.item-grid{grid-template-columns:1fr 1fr}.item-grid label:nth-of-type(4){grid-column:span 2}.login-grid{grid-template-columns:1fr}.login-copy{display:none}.login-card{padding:25px}.actions{width:100%}.actions .btn{flex:1}}
@media(max-width:480px){.kpis{grid-template-columns:1fr}.kpi strong{font-size:24px}.item-grid{grid-template-columns:1fr}.item-grid label:nth-of-type(4){grid-column:auto}.form-actions{width:100%}.form-actions .btn{flex:1}}

/* v0.2 · catálogo maestro de productos */
.product-filters{align-items:center}.product-filters select{width:220px;margin-left:auto}.code-chip{display:inline-flex;align-items:center;border-radius:7px;padding:4px 7px;background:#f1edfb;color:var(--violet);font-size:8px;font-weight:900;letter-spacing:.04em;white-space:nowrap}.inline-create{align-self:flex-start;border:0;background:none;color:var(--violet);padding:0;font-size:9px;font-weight:900}.inline-create:hover{text-decoration:underline}.product-picker{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:12px;align-items:end;margin-bottom:10px}.selected-product{min-height:39px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;background:white;border:1px solid var(--line);border-radius:11px;font-size:10px}.selected-product small{color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.05em}.quote-item textarea{resize:vertical}.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(19,14,25,.54);backdrop-filter:blur(4px);display:grid;place-items:center;padding:20px}.modal-card{width:min(720px,100%);max-height:90vh;overflow:auto;background:white;border-radius:20px;padding:20px;box-shadow:0 30px 90px rgba(0,0,0,.28)}.modal-card .panel-head{border-bottom:1px solid var(--line);padding-bottom:13px}.modal-close{width:34px;height:34px;border:0;border-radius:10px;background:#f2f3f7;color:#6e7480;font-size:20px;display:grid;place-items:center}.modal-card .form-actions{margin-top:8px}.quote-item .product-search{font-weight:800}
@media(max-width:760px){.product-filters select{width:100%;margin-left:0}.product-picker{grid-template-columns:1fr}.selected-product{min-height:auto}.modal-card{padding:16px}}

/* v0.3 · catálogo configurable + cotización limpia */
.catalog-note{display:flex;gap:12px;align-items:center;margin:-6px 0 15px;padding:11px 14px;border:1px solid #e6e1f1;background:#fbf9ff;border-radius:13px;font-size:10px;color:var(--muted)}.catalog-note strong{color:var(--violet);white-space:nowrap}.type-pill{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:900}.type-pill.simple{background:#eef1f5;color:#646d7a}.type-pill.configurable{background:#ede7ff;color:#6b3abd}.type-pill.custom{background:#e6f7ed;color:#287b47}.spec-summary{font-size:9px;color:#717987}
.clean-hint{background:#f8f7fb;border-color:#e8e4f0;color:#626878}.field-builder{display:flex;flex-direction:column;gap:9px}.field-builder-row{display:grid;grid-template-columns:minmax(150px,1.2fr) 120px minmax(220px,1.7fr) 110px 150px 36px;gap:9px;align-items:end;padding:11px;border:1px solid var(--line);border-radius:13px;background:#fcfcfe}.field-builder-row label span{font-weight:500;color:#9aa0ab}.field-remove{height:39px;border:0;border-radius:10px;background:#fff0f2;color:#bf3048;font-size:18px}.field-builder-row.not-list .field-options{opacity:.42}.field-builder-row.not-list .field-options input{pointer-events:none;background:#f3f4f7}
.quote-item-v3{padding:16px;background:white;box-shadow:0 6px 20px rgba(43,34,61,.035)}.item-topline{display:grid;grid-template-columns:1fr 38px;gap:10px;align-items:start}.item-product-main{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:10px;align-items:end}.remove-v3{margin-top:22px}.config-head{display:flex;justify-content:space-between;align-items:end;padding-top:14px;margin-top:12px;border-top:1px solid #eceef3}.config-head span,.config-head small{display:block}.config-head span{font-size:10px;font-weight:900;color:#515866}.config-head small{font-size:9px;color:var(--muted);margin-top:2px}.config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.config-empty{margin-top:12px;padding:11px;border:1px dashed #dfe2e8;border-radius:11px;color:#9298a3;font-size:9px}.input-with-unit{position:relative}.input-with-unit input{padding-right:50px}.input-with-unit span{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:9px;color:#8c929d}.item-bottom-grid{display:grid;grid-template-columns:minmax(330px,1fr) minmax(300px,.9fr);gap:14px;margin-top:14px}.item-commercial{padding:12px;border-radius:13px;background:#f8f9fb;border:1px solid #eceef2}.commercial-grid{display:grid;grid-template-columns:110px minmax(180px,1fr) 150px;gap:10px;align-items:end}.line-total{height:60px;padding:10px 12px;border-radius:11px;background:white;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;align-items:flex-end}.line-total span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:800}.line-total strong{font-size:16px;margin-top:3px}.item-note{margin-top:10px}.item-note span{font-weight:500;color:#a1a6af}.live-preview{min-width:0}.client-preview-card{height:100%;min-height:126px;border:1px solid #e5e0ee;border-radius:13px;background:linear-gradient(145deg,#fff,#fbf9ff);padding:13px 14px;display:flex;flex-direction:column;justify-content:center;gap:5px}.client-preview-card .preview-kicker{font-size:7px;letter-spacing:.13em;color:var(--violet);font-weight:900}.client-preview-card strong{font-size:13px}.client-preview-card span{font-size:9px;color:#5f6672;line-height:1.45}.client-preview-card small{font-size:8px;color:#8a909b;border-top:1px solid #ece9f1;margin-top:3px;padding-top:6px}.quote-footer-grid{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start}.sticky-total{width:100%;margin:0;position:sticky;top:105px}.whole-preview{display:flex;flex-direction:column}.whole-preview .client-quote-item{padding:12px 0}.empty.mini{padding:15px}.quote-client-items{display:flex;flex-direction:column}.client-quote-item{display:grid;grid-template-columns:38px 1fr auto;gap:13px;padding:17px 0;border-bottom:1px solid #eceef2}.client-quote-item:last-child{border-bottom:0}.client-item-index{width:31px;height:31px;border-radius:9px;background:#f1edfb;color:var(--violet);display:grid;place-items:center;font-size:9px;font-weight:900}.client-item-body h4{margin:0 0 6px;font-size:13px}.client-specs{display:flex;gap:6px 12px;flex-wrap:wrap}.client-specs span{font-size:9px;color:#606875}.client-specs b{color:#444b57}.client-item-body p{font-size:9px;color:#858b96;margin:7px 0 0}.client-qty{font-size:8px;font-weight:900;color:#6c7480;margin-top:8px;text-transform:uppercase;letter-spacing:.04em}.client-item-price{text-align:right;min-width:125px}.client-item-price small,.client-item-price strong{display:block}.client-item-price small{font-size:8px;color:#9096a0}.client-item-price strong{font-size:15px;margin-top:6px}.quote-meta{position:relative}
@media(max-width:1250px){.field-builder-row{grid-template-columns:1fr 110px 1.4fr 100px 130px 36px}.config-grid{grid-template-columns:repeat(2,1fr)}.item-bottom-grid{grid-template-columns:1fr}.quote-footer-grid{grid-template-columns:1fr 300px}}
@media(max-width:900px){.field-builder-row{grid-template-columns:1fr 1fr}.field-builder-row .field-remove{grid-column:2;justify-self:end;width:38px}.item-product-main{grid-template-columns:1fr}.config-grid{grid-template-columns:1fr 1fr}.commercial-grid{grid-template-columns:1fr 1fr}.line-total{grid-column:span 2}.quote-footer-grid{grid-template-columns:1fr}.sticky-total{position:static}.client-quote-item{grid-template-columns:34px 1fr}.client-item-price{grid-column:2;text-align:left;display:flex;gap:10px;align-items:baseline}.client-item-price strong{margin:0}}
@media(max-width:620px){.catalog-note{align-items:flex-start;flex-direction:column}.config-grid{grid-template-columns:1fr}.commercial-grid{grid-template-columns:1fr}.line-total{grid-column:auto;align-items:flex-start}.item-bottom-grid{grid-template-columns:1fr}.field-builder-row{grid-template-columns:1fr}.field-builder-row .field-remove{grid-column:auto;justify-self:end}.client-quote-item{grid-template-columns:1fr}.client-item-index{display:none}.client-item-price{grid-column:auto}.item-topline{grid-template-columns:1fr}.remove-v3{margin-top:0;justify-self:end}.item-product-main{min-width:0}}

/* v0.4 · laboratorio de tarjetas y precios configurables */
.lab-focus-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;border:1px solid #ded4f5;background:linear-gradient(120deg,#fbf8ff,#f8ffe9);border-radius:15px}.lab-focus-banner div strong,.lab-focus-banner div span{display:block}.lab-focus-banner div strong{font-size:12px;color:var(--violet)}.lab-focus-banner div span{font-size:9px;color:#777e89;margin-top:4px}.lab-focus-banner>span,.lab-focus{display:inline-flex;padding:5px 8px;border-radius:999px;background:#181220;color:var(--lime);font-size:8px;font-weight:900;letter-spacing:.08em;white-space:nowrap}.lab-card-note{border-color:#dfd3f5;background:linear-gradient(100deg,#fbf9ff,#fbfff1)}
.card-pricing-editor{overflow:hidden}.base-price-explain{display:grid;grid-template-columns:190px 1fr;gap:20px;align-items:center;padding:14px 16px;margin-bottom:14px;border-radius:14px;background:#f8f6fc;border:1px solid #e8e2f2}.base-price-explain span,.base-price-explain strong{display:block}.base-price-explain span{font-size:8px;font-weight:900;letter-spacing:.08em;color:#898f9a}.base-price-explain strong{font-size:24px;color:var(--violet);margin-top:3px}.base-price-explain p{font-size:10px;line-height:1.55;color:#737a86;margin:0}.pricing-builder{display:flex;flex-direction:column;gap:11px;margin-bottom:12px}.pricing-builder-group{border:1px solid var(--line);border-radius:14px;background:#fcfcfe;padding:13px}.pricing-group-toolbar{display:grid;grid-template-columns:minmax(170px,1.3fr) 180px minmax(200px,1fr) 36px;gap:9px;align-items:end;margin-bottom:10px}.pricing-group-remove,.pricing-option-remove{height:39px;border:0;border-radius:10px;background:#fff0f2;color:#be3048;font-size:18px}.pricing-options-editor{display:flex;flex-direction:column;gap:7px}.pricing-option-row{display:grid;grid-template-columns:minmax(210px,1fr) 160px 115px 36px;gap:8px;align-items:end;padding:9px;border:1px solid #eceef3;border-radius:11px;background:white}.default-choice{align-items:center}.default-choice input{width:auto;align-self:center;margin:7px 0 10px}.pricing-add-option{margin-top:9px}
.cards-quote-item{padding:18px}.card-item-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:2px}.card-item-heading h3{font-size:17px;margin:7px 0 3px}.card-item-heading p{font-size:9px;color:var(--muted);margin:0}.cards-configurator{margin-top:7px}.cards-config-head{align-items:center}.auto-price{text-align:right}.auto-price span,.auto-price strong{display:block}.auto-price span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#8d929c;font-weight:900}.auto-price strong{font-size:20px;color:var(--violet);margin-top:2px}.choice-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.choice-group{border:1px solid #e7e9ef;border-radius:13px;padding:12px;background:#fcfcfe}.choice-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:9px}.choice-title strong{font-size:10px}.choice-title span{font-size:8px;color:#9a9faa}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.choice-card{position:relative;display:block;cursor:pointer}.choice-card input{position:absolute;opacity:0;pointer-events:none}.choice-card>span{min-height:57px;border:1px solid #e0e3ea;border-radius:11px;padding:10px;background:white;display:flex;flex-direction:column;justify-content:center;transition:.13s}.choice-card b,.choice-card small{display:block}.choice-card b{font-size:10px;color:#484f5b}.choice-card small{font-size:8px;color:#9298a3;margin-top:3px}.choice-card:has(input:checked)>span{border-color:#8d60e3;box-shadow:0 0 0 3px rgba(107,43,217,.08);background:#fbf9ff}.choice-card:has(input:checked) b{color:var(--violet)}.toggle-group{display:flex;flex-direction:column}.toggle-choice{cursor:pointer;display:flex;flex-direction:row;align-items:center;gap:10px;border:1px solid #e0e3ea;border-radius:11px;padding:10px;background:white;min-height:57px}.toggle-choice input{position:absolute;opacity:0;pointer-events:none}.toggle-ui{width:34px;height:20px;border-radius:999px;background:#dfe2e8;position:relative;flex:0 0 auto;transition:.15s}.toggle-ui:after{content:"";position:absolute;width:14px;height:14px;border-radius:50%;background:white;top:3px;left:3px;box-shadow:0 1px 4px rgba(0,0,0,.18);transition:.15s}.toggle-choice:has(input:checked){border-color:#8d60e3;background:#fbf9ff;box-shadow:0 0 0 3px rgba(107,43,217,.08)}.toggle-choice:has(input:checked) .toggle-ui{background:var(--violet)}.toggle-choice:has(input:checked) .toggle-ui:after{left:17px}.toggle-copy b,.toggle-copy small{display:block}.toggle-copy b{font-size:10px}.toggle-copy small{font-size:8px;color:#9298a3;margin-top:2px}.pricing-breakdown{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:11px;padding-top:10px;border-top:1px dashed #e0e2e7}.breakdown-label{font-size:8px;font-weight:900;color:#8b919c;text-transform:uppercase;letter-spacing:.06em;margin-right:2px}.breakdown-chip{display:inline-flex;gap:5px;align-items:center;padding:5px 7px;border-radius:999px;background:#f1f3f6;color:#656c78;font-size:8px}.breakdown-chip b{color:#454b55}.breakdown-chip.base{background:#eee8fb;color:#6945a7}.cards-bottom{margin-top:12px}.cards-bottom .item-commercial{background:#fafafa}.card-client-preview{min-height:138px}
@media(max-width:1000px){.pricing-group-toolbar{grid-template-columns:1fr 1fr}.pricing-group-remove{justify-self:end;width:38px}.pricing-option-row{grid-template-columns:1fr 150px 110px 36px}.choice-groups{grid-template-columns:1fr}.base-price-explain{grid-template-columns:1fr}}
@media(max-width:700px){.pricing-group-toolbar,.pricing-option-row{grid-template-columns:1fr}.pricing-group-remove,.pricing-option-remove{justify-self:end;width:38px}.choice-grid{grid-template-columns:1fr 1fr}.lab-focus-banner{align-items:flex-start}.auto-price{text-align:left}.cards-config-head{align-items:flex-start;flex-direction:column}.card-item-heading h3{font-size:15px}}
@media(max-width:460px){.choice-grid{grid-template-columns:1fr}.card-item-heading{flex-direction:column}.card-item-heading .remove{align-self:flex-end}.lab-focus-banner{flex-direction:column}}


/* ===== v0.5 · cotizador compacto de tarjetas ===== */
.cards-quote-item{padding:13px 14px}.card-item-heading{align-items:center;padding-bottom:6px}.card-item-heading h3{font-size:14px;margin:4px 0 1px}.card-item-heading p{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:720px}.compact-card-config{margin-top:2px;border-top:1px solid #eceef3;padding-top:8px}.compact-config-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px}.compact-config-header>div:first-child strong,.compact-config-header>div:first-child small{display:block}.compact-config-header>div:first-child strong{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:#535a66}.compact-config-header>div:first-child small{font-size:8px;color:#999faa;margin-top:1px}.compact-auto-price{text-align:right;line-height:1}.compact-auto-price span{display:block;font-size:7px;font-weight:900;letter-spacing:.06em;color:#9ba0aa}.compact-auto-price strong{display:block;font-size:16px;color:var(--violet);margin-top:3px}.compact-choice-list{display:flex;flex-direction:column;border:1px solid #e8eaf0;border-radius:10px;background:#fcfcfd;overflow:hidden}.compact-choice-row{display:grid;grid-template-columns:92px 1fr;align-items:center;min-height:34px;border-bottom:1px solid #eceef2}.compact-choice-row:last-child{border-bottom:0}.compact-choice-label{padding:5px 8px;font-size:8px;font-weight:900;color:#6c7380;text-transform:uppercase;letter-spacing:.035em}.compact-options{display:flex;flex-wrap:wrap;gap:5px;padding:4px 6px}.mini-choice{position:relative;display:inline-flex;align-items:center;gap:5px;cursor:pointer;padding:4px 7px 4px 5px;border:1px solid #e0e3e9;border-radius:7px;background:#fff;min-height:25px;line-height:1}.mini-choice input{position:absolute;opacity:0;pointer-events:none}.mini-check{width:13px;height:13px;border:1.5px solid #c4c9d1;border-radius:3px;display:inline-grid;place-items:center;flex:0 0 auto;background:#fff}.mini-check:after{content:'✓';font-size:9px;font-weight:900;color:#fff;opacity:0;transform:translateY(-.3px)}.mini-choice b{font-size:8.5px;font-weight:750;color:#4f5662;white-space:nowrap}.mini-choice small{font-size:7px;color:#a0a5ae;white-space:nowrap}.mini-choice:has(input:checked){border-color:#8d60e3;background:#faf8ff}.mini-choice:has(input:checked) .mini-check{border-color:var(--violet);background:var(--violet)}.mini-choice:has(input:checked) .mini-check:after{opacity:1}.mini-choice:has(input:checked) b{color:var(--violet)}.compact-breakdown{font-size:7px;color:#9ca1aa;margin-top:5px;text-align:right;min-height:10px}.compact-breakdown b{color:#707681;font-weight:800}.cards-bottom{margin-top:8px;grid-template-columns:minmax(320px,1fr) minmax(260px,.72fr);gap:10px}.cards-bottom .item-commercial{padding:8px 9px}.cards-bottom .commercial-grid{grid-template-columns:85px minmax(150px,1fr) 125px;gap:7px}.cards-bottom label{font-size:8px}.cards-bottom input{min-height:34px;padding:7px 9px;font-size:9px}.cards-bottom .line-total{height:48px;padding:7px 9px}.cards-bottom .line-total strong{font-size:13px}.cards-bottom .item-note{margin-top:6px}.card-client-preview{min-height:96px;padding:9px 11px}.card-client-preview strong{font-size:11px}.card-client-preview span{font-size:8px}.card-client-preview small{font-size:7px}.lab-focus-banner{padding:10px 12px}.lab-focus-banner div strong{font-size:10px}.lab-focus-banner div span{font-size:8px}.quote-meta{padding:13px}.quote-editor>.panel{margin-bottom:10px}
@media(max-width:900px){.cards-bottom{grid-template-columns:1fr}.compact-choice-row{grid-template-columns:82px 1fr}.mini-choice{padding-right:6px}}
@media(max-width:600px){.compact-config-header{align-items:flex-start}.compact-choice-row{grid-template-columns:1fr}.compact-choice-label{padding-bottom:1px}.compact-options{padding-top:2px}.mini-choice{flex:1 0 auto}.cards-bottom .commercial-grid{grid-template-columns:1fr 1fr}.cards-bottom .line-total{grid-column:1/-1}}

/* ===== v0.6 · grupos horizontales y selección exclusiva ===== */
.v06-config{padding-top:6px}.v06-config-header{margin-bottom:7px}.v06-choice-board{display:grid;grid-template-columns:1.55fr 1fr 1fr 1.15fr;gap:7px;align-items:stretch}.v06-choice-group{border:1px solid #e6e8ee;border-radius:9px;padding:7px;background:#fafbfc;min-width:0}.v06-choice-group.group-tone-0{background:#fbf9ff;border-color:#e6ddf7}.v06-choice-group.group-tone-1{background:#f9fbff;border-color:#e0e7f4}.v06-choice-group.group-tone-2{background:#fbfff8;border-color:#e3eddc}.v06-choice-group.group-tone-3{background:#fffaf8;border-color:#efe1da}.v06-group-title{font-size:7.5px;font-weight:900;text-transform:uppercase;letter-spacing:.055em;color:#6d7480;margin:0 0 5px 1px}.v06-group-options{display:flex;flex-wrap:wrap;gap:4px}.v06-mini-choice{padding:3px 5px 3px 4px;min-height:22px;border-radius:6px;gap:4px;flex:0 0 auto}.v06-mini-choice .mini-check{width:12px;height:12px;border-radius:3px}.v06-option-copy{display:flex;align-items:baseline;gap:3px;min-width:0}.v06-option-copy b{font-size:8px;line-height:1;white-space:nowrap}.v06-option-copy small{font-size:6.5px;line-height:1;color:#a4a9b2;white-space:nowrap}.v06-selection-summary{margin-top:6px;padding:5px 7px;border-radius:7px;background:#f6f7f9;border:1px solid #eceef2;font-size:7.5px;color:#858b95;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.v06-selection-summary span{font-weight:900;text-transform:uppercase;letter-spacing:.04em}.v06-selection-summary strong{font-size:8px;color:var(--violet)}.v06-selection-summary em{font-style:normal;color:#666d78}.v06-breakdown{margin-top:4px;font-size:6.5px;opacity:.82}.v06-config .compact-auto-price strong{font-size:15px}.v06-config .compact-auto-price span{font-size:6.5px}.v06-config .compact-config-header>div:first-child strong{font-size:8.5px}.v06-config .compact-config-header>div:first-child small{font-size:7px}
@media(max-width:1050px){.v06-choice-board{grid-template-columns:1.4fr 1fr 1fr}.v06-choice-group:last-child{grid-column:1/-1}.v06-choice-group:last-child .v06-group-options{display:flex}}
@media(max-width:760px){.v06-choice-board{grid-template-columns:1fr 1fr}.v06-choice-group:last-child{grid-column:auto}.v06-selection-summary{white-space:normal}}
@media(max-width:480px){.v06-choice-board{grid-template-columns:1fr}.v06-group-options{gap:5px}}

/* ===== v0.7 · producto buscado → configurador temporal → resumen ===== */
.product-picker-panel{padding:12px 14px}.product-picker-line{display:grid;grid-template-columns:260px minmax(300px,1fr);gap:14px;align-items:center}.picker-copy span,.picker-copy strong{display:block}.picker-copy span{font-size:7px;font-weight:900;letter-spacing:.08em;color:var(--violet)}.picker-copy strong{font-size:10px;margin-top:2px}.product-picker-search input{height:36px;padding:8px 11px;font-size:10px;background:#fbfbfd}.inline-product-config{margin-top:10px;border:1px solid #e2e5ec;border-radius:12px;padding:10px;background:#fff;box-shadow:0 8px 22px rgba(35,30,52,.045)}.inline-config-top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-bottom:7px;border-bottom:1px solid #eef0f4}.inline-config-top>div{display:grid;grid-template-columns:auto auto 1fr;gap:7px;align-items:center}.inline-config-top strong{font-size:11px}.inline-config-top small{font-size:7.5px;color:#969ca6}.config-close{border:0;background:#f3f4f7;color:#7c838e;width:25px;height:25px;border-radius:7px;font-size:16px;line-height:1}.inline-product-config .compact-config-header{margin-top:7px}.inline-config-footer{display:flex;justify-content:space-between;gap:14px;align-items:end;margin-top:8px;padding-top:8px;border-top:1px solid #eef0f4}.compact-fields{display:grid;grid-template-columns:70px minmax(240px,1fr);gap:8px;flex:1}.compact-fields label{font-size:7.5px}.compact-fields input{height:32px;padding:6px 8px;font-size:9px}.inline-add-zone{display:flex;align-items:center;gap:10px}.inline-add-zone>div{text-align:right;min-width:90px}.inline-add-zone span,.inline-add-zone strong{display:block}.inline-add-zone span{font-size:6.5px;font-weight:900;color:#989ea8;letter-spacing:.05em}.inline-add-zone strong{font-size:14px;color:var(--violet);margin-top:2px}.inline-add-zone .btn{padding:9px 13px;font-size:9px;white-space:nowrap}.added-products-panel{padding:14px}.items-count{font-size:8px;font-weight:900;color:#8e949e;background:#f3f4f7;border-radius:999px;padding:5px 8px}.added-items{display:flex;flex-direction:column;gap:6px}.quote-added-item{display:grid;grid-template-columns:minmax(0,1fr) 55px 100px 105px;gap:10px;align-items:center;border:1px solid #e7e9ef;border-radius:9px;padding:8px 9px;background:#fcfcfd}.added-item-main{display:flex;align-items:center;gap:8px;min-width:0}.added-item-main>div{min-width:0}.added-item-main strong,.added-item-main small,.added-item-main em{display:block}.added-item-main strong{font-size:10px}.added-item-main small{font-size:7.5px;color:#737b87;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.added-item-main em{font-size:7px;color:#9a9faa;font-style:normal;margin-top:2px}.added-item-qty,.added-item-price{text-align:right}.added-item-qty span,.added-item-price span{display:block;font-size:6.5px;color:#9ca1aa;text-transform:uppercase;font-weight:900;letter-spacing:.04em}.added-item-qty strong{font-size:10px}.added-item-price strong{font-size:11px;color:var(--violet)}.added-item-actions{display:flex;justify-content:flex-end;gap:4px}.tiny-action{border:1px solid #e0e3e9;background:white;color:#666e79;border-radius:6px;padding:5px 6px;font-size:7px;font-weight:850}.tiny-action:hover{border-color:#bca9e6;color:var(--violet)}.tiny-action.danger{color:#b64a5b}.product-picker-panel .v06-choice-board{grid-template-columns:1.45fr .8fr 1.05fr .9fr}.product-picker-panel .v06-choice-group{padding:6px}.product-picker-panel .v06-breakdown{display:none}.product-picker-panel .v06-selection-summary{margin-top:5px}
@media(max-width:980px){.product-picker-line{grid-template-columns:1fr}.quote-added-item{grid-template-columns:minmax(0,1fr) 48px 90px}.added-item-actions{grid-column:1/-1}.inline-config-footer{align-items:stretch;flex-direction:column}.inline-add-zone{justify-content:flex-end}}
@media(max-width:680px){.compact-fields{grid-template-columns:70px 1fr}.quote-added-item{grid-template-columns:1fr auto}.added-item-qty{display:none}.added-item-price{grid-column:2}.added-item-actions{grid-column:1/-1}.inline-config-top>div{grid-template-columns:auto 1fr}.inline-config-top small{grid-column:1/-1}.product-picker-panel .v06-choice-board{grid-template-columns:1fr 1fr}}

/* v0.8 · Flyers + Tarjetas configurables */
.product-picker-panel .v08-choice-board.groups-4{grid-template-columns:1.45fr .85fr 1.05fr .9fr}
.product-picker-panel .v08-choice-board.groups-5{grid-template-columns:1.25fr 1.05fr 1.05fr .85fr 1.05fr}
.v08-choice-board .v06-choice-group{min-height:58px}
.v08-choice-board .v06-group-options{align-content:flex-start}
.legacy-added-item{opacity:.9}
@media(max-width:1100px){.product-picker-panel .v08-choice-board.groups-5{grid-template-columns:1.2fr 1fr 1fr}.product-picker-panel .v08-choice-board.groups-5 .v06-choice-group:nth-child(4),.product-picker-panel .v08-choice-board.groups-5 .v06-choice-group:nth-child(5){min-height:auto}}
@media(max-width:680px){.product-picker-panel .v08-choice-board.groups-4,.product-picker-panel .v08-choice-board.groups-5{grid-template-columns:1fr 1fr}}

/* ===== v0.9 · Vista cliente / documento imprimible ===== */
.customer-preview-screen{min-height:100vh;background:#eceef3;padding:20px 20px 48px}.customer-preview-toolbar{max-width:940px;margin:0 auto 15px;display:flex;justify-content:space-between;align-items:center;gap:12px}.customer-preview-toolbar-right{display:flex;align-items:center;gap:12px}.customer-preview-toolbar-right>span{font-size:10px;color:#777e89;font-weight:800}.customer-document-wrap{display:flex;justify-content:center}.customer-document{width:min(900px,100%);min-height:1120px;background:#fff;box-shadow:0 22px 55px rgba(29,24,42,.13);padding:48px 52px 36px;display:flex;flex-direction:column}.customer-doc-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:24px;border-bottom:2px solid #21192b}.customer-doc-brand{display:flex;align-items:center;gap:10px}.customer-doc-mark{width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,var(--violet),var(--pink));color:#fff;display:grid;place-items:center;font-size:21px;font-weight:950;box-shadow:inset 0 -3px 0 rgba(185,242,39,.4)}.customer-doc-brand strong,.customer-doc-brand span{display:block}.customer-doc-brand strong{font-size:18px;line-height:1;letter-spacing:.12em}.customer-doc-brand span{font-size:7px;letter-spacing:.27em;color:#7a7182;margin-top:4px}.customer-doc-title{text-align:right}.customer-doc-title span,.customer-doc-title strong{display:block}.customer-doc-title span{font-size:8px;letter-spacing:.18em;font-weight:900;color:var(--violet)}.customer-doc-title strong{font-size:16px;margin-top:5px}.customer-doc-meta{display:grid;grid-template-columns:1fr 320px;gap:34px;padding:28px 0 24px}.customer-doc-kicker{display:block;font-size:7px;letter-spacing:.16em;font-weight:950;color:var(--violet);margin-bottom:7px}.customer-doc-client h1{font-size:23px;letter-spacing:-.025em;margin:0 0 6px}.customer-doc-client p{font-size:9px;line-height:1.55;color:#747b86;margin:2px 0}.customer-doc-dates{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.customer-doc-dates>div{border-left:1px solid #e6e8ee;padding-left:10px}.customer-doc-dates span,.customer-doc-dates strong{display:block}.customer-doc-dates span{font-size:7px;color:#949aa4;text-transform:uppercase;font-weight:900;letter-spacing:.05em}.customer-doc-dates strong{font-size:9px;margin-top:5px;line-height:1.35}.customer-doc-project{padding:15px 17px;border-radius:11px;background:#f7f4fc;border:1px solid #eee8f7;margin-bottom:9px}.customer-doc-project .customer-doc-kicker{margin-bottom:4px}.customer-doc-project h2{font-size:16px;margin:0;letter-spacing:-.015em}.customer-doc-items{display:flex;flex-direction:column}.customer-doc-item{display:grid;grid-template-columns:33px minmax(0,1fr) 135px;grid-template-areas:"num title price" "num desc desc";gap:2px 13px;align-items:start;padding:13px 0;border-bottom:1px solid #e8eaf0}.customer-doc-item-num{grid-area:num;width:27px;height:27px;border-radius:7px;background:#f1edfb;color:var(--violet);display:grid;place-items:center;font-size:8px;font-weight:950}.customer-doc-item-title{grid-area:title;min-width:0}.customer-doc-item-title h3{font-size:14px;margin:1px 0 0}.customer-doc-item-desc{grid-area:desc;min-width:0}.customer-doc-specs{font-size:10px;color:#49515d;margin:0;line-height:1.6}.customer-doc-note{font-size:9px;color:#727a86;margin:6px 0 0;line-height:1.6}.customer-doc-qty{display:inline-block;margin-top:7px;padding:4px 7px;border-radius:999px;background:#f4f5f7;color:#737a85;font-size:7px;font-weight:900;letter-spacing:.035em;text-transform:uppercase}.customer-doc-price{grid-area:price;text-align:right}.customer-doc-price small,.customer-doc-price strong{display:block}.customer-doc-price small{font-size:8px;color:#7e8795;line-height:1.15}.customer-doc-price small:empty{display:none}.customer-doc-price strong{font-size:16px;margin-top:0;line-height:1.15}.customer-doc-bottom{display:grid;grid-template-columns:1fr 300px;gap:38px;margin-top:25px;align-items:start}.customer-doc-observations{padding-top:6px}.customer-doc-observations p{font-size:9px;color:#616875;line-height:1.7;max-width:410px;margin:0}.customer-doc-totals{border-top:1px solid #dfe2e8;padding-top:7px}.customer-doc-totals>div{display:flex;justify-content:space-between;gap:18px;padding:6px 0}.customer-doc-totals span{font-size:10px;color:#606875}.customer-doc-totals strong{font-size:11px}.customer-doc-totals .customer-doc-total{border-top:2px solid #21192b;margin-top:4px;padding-top:11px}.customer-doc-totals .customer-doc-total span{font-weight:900;color:#21192b}.customer-doc-totals .customer-doc-total strong{font-size:20px;color:var(--violet)}.customer-doc-footer{margin-top:auto;padding-top:28px;border-top:1px solid #eceef2;display:flex;justify-content:space-between;gap:20px;color:#7b8390}.customer-doc-footer>div:last-child{text-align:right}.customer-doc-footer strong,.customer-doc-footer span{display:block}.customer-doc-footer strong{font-size:10px;color:#51495b}.customer-doc-footer span{font-size:8px;line-height:1.6}.customer-preview-missing{min-height:100vh;display:grid;place-items:center;text-align:center;background:#f5f6fa}
@media(max-width:760px){.customer-preview-screen{padding:10px 8px 28px}.customer-preview-toolbar{align-items:stretch;flex-direction:column}.customer-preview-toolbar-right{justify-content:space-between}.customer-document{padding:28px 22px;min-height:auto}.customer-doc-meta{grid-template-columns:1fr;gap:18px}.customer-doc-dates{grid-template-columns:repeat(3,1fr)}.customer-doc-bottom{grid-template-columns:1fr}.customer-doc-item{grid-template-columns:28px minmax(0,1fr);grid-template-areas:"num title" ". price" ". desc";gap:3px 10px}.customer-doc-price{text-align:left;display:flex;align-items:baseline;gap:8px}.customer-doc-price small{min-height:0}.customer-doc-footer{flex-direction:column}.customer-doc-footer>div:last-child{text-align:left}}
@media print{html,body{background:#fff!important}.no-print{display:none!important}.customer-preview-screen{padding:0;background:#fff}.customer-document-wrap{display:block}.customer-document{width:100%;min-height:0;box-shadow:none;padding:18mm 16mm 14mm}.customer-doc-item{break-inside:avoid}.customer-doc-bottom{break-inside:avoid}.customer-doc-footer{break-inside:avoid}@page{size:A4;margin:0}}

/* v0.9.1 · logo oficial Cactus en vista cliente */
.customer-doc-brand-logo{display:block;min-width:0}
.customer-doc-logo{display:block;width:190px;max-width:100%;height:auto;object-fit:contain}
@media(max-width:560px){.customer-doc-logo{width:150px}}
@media print{.customer-doc-logo{width:48mm;max-width:none}}

/* v0.9.2 · impresión A4 fiel a la Vista Cliente */
@media print {
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  html, body {
    width: 210mm !important;
    min-height: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .customer-preview-screen {
    width: 210mm !important;
    min-height: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .customer-document-wrap {
    display: block !important;
    width: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .customer-document {
    box-sizing: border-box !important;
    width: 210mm !important;
    min-height: 297mm !important;
    margin: 0 !important;
    padding: 14mm 14mm 10mm !important;
    box-shadow: none !important;
  }

  /* En impresión mantenemos la composición vertical que se ve en pantalla. */
  .customer-doc-header {
    padding-bottom: 7mm !important;
  }

  .customer-doc-logo {
    width: 50mm !important;
    max-width: none !important;
  }

  .customer-doc-meta {
    grid-template-columns: 1fr !important;
    gap: 5mm !important;
    padding: 8mm 0 6mm !important;
  }

  .customer-doc-dates {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 3mm !important;
    width: 100% !important;
  }

  .customer-doc-dates > div {
    min-height: 12mm !important;
    padding-left: 3mm !important;
  }

  .customer-doc-project {
    padding: 4mm 5mm !important;
    margin-bottom: 2mm !important;
  }

  .customer-doc-item {
    grid-template-columns: 8mm minmax(0, 1fr) 34mm !important;
    grid-template-areas: "num title price" "num desc desc" !important;
    gap: 0.8mm 3.5mm !important;
    align-items: start !important;
    padding: 3.8mm 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .customer-doc-item-num {
    grid-area: num !important;
    width: 7mm !important;
    height: 7mm !important;
  }

  .customer-doc-item-title {
    grid-area: title !important;
    min-width: 0 !important;
  }

  .customer-doc-item-desc {
    grid-area: desc !important;
    min-width: 0 !important;
  }

  .customer-doc-price {
    grid-area: price !important;
    text-align: right !important;
    display: block !important;
    margin-top: 0 !important;
    white-space: nowrap !important;
  }

  .customer-doc-price small {
    min-height: 0 !important;
    line-height: 1.15 !important;
  }

  .customer-doc-price small:empty {
    display: none !important;
  }

  .customer-doc-price strong {
    margin-top: 0 !important;
    line-height: 1.15 !important;
  }

  .customer-doc-bottom {
    grid-template-columns: 1fr !important;
    gap: 4mm !important;
    margin-top: 6mm !important;
  }

  .customer-doc-observations {
    padding-top: 0 !important;
  }

  .customer-doc-totals {
    width: 76mm !important;
    max-width: 100% !important;
    margin-left: auto !important;
  }

  .customer-doc-footer {
    margin-top: auto !important;
    padding-top: 7mm !important;
  }

  @page {
    size: A4 portrait;
    margin: 0;
  }
}


/* v0.9.4 · legibilidad cliente + menos redundancia */
.customer-doc-kicker{font-size:8px;color:#5f23c7}
.customer-doc-client p{font-size:10px;color:#5e6672}
.customer-doc-dates span{font-size:8px;color:#707783}
.customer-doc-dates strong{font-size:10px;color:#2d3139}
.customer-doc-item-title h3{font-size:13px;color:#1f2430}
.customer-doc-specs{font-size:10px;color:#444b56;line-height:1.6}
.customer-doc-note{font-size:9px;color:#69717c;line-height:1.55}
.customer-doc-price small{font-size:8px;color:#777f8b}
.customer-doc-observations p{font-size:9px;color:#5f6671;line-height:1.7}
.customer-doc-totals span{font-size:10px;color:#5f6671}
.customer-doc-totals strong{font-size:11px}
.customer-doc-footer strong{font-size:10px}
.customer-doc-footer span{font-size:8px;color:#727984}

@media print{
  .customer-doc-kicker{font-size:8pt!important}
  .customer-doc-client p{font-size:9pt!important;color:#555d68!important}
  .customer-doc-dates span{font-size:7.5pt!important;color:#666e79!important}
  .customer-doc-dates strong{font-size:9pt!important}
  .customer-doc-item-title h3{font-size:10.5pt!important}
  .customer-doc-specs{font-size:8.8pt!important;color:#3f4651!important}
  .customer-doc-note{font-size:8pt!important;color:#626a75!important}
  .customer-doc-price small{font-size:7.5pt!important;color:#707783!important}
  .customer-doc-observations p{font-size:8pt!important;color:#555d68!important}
  .customer-doc-totals span{font-size:8.5pt!important}
  .customer-doc-totals strong{font-size:9pt!important}
  .customer-doc-footer strong{font-size:8.5pt!important}
  .customer-doc-footer span{font-size:7.5pt!important;color:#6b727d!important}
}


/* v0.9.7 · identidad sutil Cactus en vista cliente */
.customer-document{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fff 82%,#fcfbff 100%)}
.customer-document:before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:linear-gradient(90deg,var(--violet) 0%, var(--pink) 58%, var(--lime) 100%)}
.customer-doc-header{position:relative;padding-top:8px;border-bottom:1px solid #2b2436}
.customer-doc-title strong{letter-spacing:-.015em}
.customer-doc-title span{color:#5f23c7}
.customer-doc-project{background:linear-gradient(135deg,rgba(107,43,217,.08),rgba(239,77,168,.04));border:1px solid #ece5f8;box-shadow:inset 4px 0 0 var(--violet)}
.customer-doc-item{border-bottom:1px solid #e9ebf2}
.customer-doc-item-num{background:linear-gradient(135deg,#f4effd,#f8f5ff);box-shadow:inset 0 0 0 1px rgba(107,43,217,.12),0 0 0 2px rgba(185,242,39,.16)}
.customer-doc-item-title h3{font-size:13px;color:#1f2430;letter-spacing:-.01em}
.customer-doc-specs{font-size:10px;color:#414957;line-height:1.58}
.customer-doc-note{font-size:9px;color:#68707c;line-height:1.55}
.customer-doc-price strong{color:#1f2430}
.customer-doc-bottom{margin-top:22px}
.customer-doc-totals{border-top:1px solid #d6d9e4;padding-top:10px}
.customer-doc-totals .customer-doc-total{margin-top:8px;padding:10px 12px;border:1px solid #ece4fb;border-radius:12px;background:linear-gradient(135deg,rgba(107,43,217,.06),rgba(239,77,168,.03));border-top:2px solid #21192b}
.customer-doc-totals .customer-doc-total strong{font-size:21px}
.customer-doc-footer{border-top:1px solid #e7e9f0;padding-top:22px;position:relative}
.customer-doc-footer:before{content:"";position:absolute;left:0;top:-1px;width:86px;height:2px;background:linear-gradient(90deg,var(--violet),var(--pink),var(--lime))}
.customer-doc-footer strong{color:#40384a}

@media print{
  .customer-document{background:#fff!important}
  .customer-document:before{height:4px!important}
  .customer-doc-header{padding-top:3mm!important;border-bottom:1px solid #2b2436!important}
  .customer-doc-project{box-shadow:inset 3mm 0 0 var(--violet)!important}
  .customer-doc-item-num{box-shadow:inset 0 0 0 .2mm rgba(107,43,217,.18)!important}
  .customer-doc-item-title h3{font-size:10.5pt!important;color:#1f2430!important}
  .customer-doc-specs{font-size:8.8pt!important;color:#3f4651!important}
  .customer-doc-note{font-size:8pt!important;color:#626a75!important}
  .customer-doc-totals .customer-doc-total{padding:3mm 3.4mm!important;border:1px solid #ece4fb!important;border-top:2px solid #21192b!important;border-radius:3mm!important;background:#f7f4fc!important}
  .customer-doc-footer:before{width:24mm!important;height:.6mm!important}
}

/* ===== v1.0.0 · Motor configurable de productos ===== */
.engine-version-pill{font-size:8px;font-weight:950;letter-spacing:.1em;color:var(--violet);background:#f2edfb;border:1px solid #e2d8f5;border-radius:999px;padding:6px 9px}
.engine-type-help{margin-top:12px;padding:9px 11px;border-radius:10px;background:#f7f8fb;border:1px solid #e9ebf1;font-size:9px;color:#6f7682;line-height:1.5}
.engine-base-row{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:center;background:#faf8fd;border:1px solid #e9e3f4;border-radius:13px;padding:12px 14px;margin-bottom:13px}.engine-base-row span,.engine-base-row strong{display:block}.engine-base-row span{font-size:7px;font-weight:950;letter-spacing:.08em;color:#858c97}.engine-base-row strong{font-size:21px;color:var(--violet);margin-top:3px}.engine-base-row p{margin:0;font-size:9px;line-height:1.55;color:#737b86}.engine-empty-builder{display:flex;flex-direction:column;gap:4px;text-align:center;padding:23px;border:1px dashed #d8dce5;border-radius:13px;color:#848b96;margin-bottom:12px}.engine-empty-builder strong{font-size:11px;color:#555d69}.engine-empty-builder span{font-size:9px}.engine-banner{background:linear-gradient(90deg,rgba(107,43,217,.08),rgba(239,77,168,.035),rgba(185,242,39,.04))}.engine-config .v06-selection-summary{margin-bottom:0}.engine-simple-fields{display:grid;grid-template-columns:110px 160px minmax(250px,1fr) auto;gap:8px;align-items:end;padding-top:9px}.engine-simple-fields label{font-size:7.5px}.engine-simple-fields input{height:32px;padding:6px 8px;font-size:9px}.engine-simple-fields .inline-add-zone{align-self:end}.engine-choice-board .v06-choice-group{min-height:58px}
@media(max-width:1100px){.engine-choice-board{grid-template-columns:repeat(3,minmax(0,1fr))!important}.engine-simple-fields{grid-template-columns:100px 150px 1fr}.engine-simple-fields .inline-add-zone{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:720px){.engine-base-row{grid-template-columns:1fr}.engine-choice-board{grid-template-columns:repeat(2,minmax(0,1fr))!important}.engine-simple-fields{grid-template-columns:1fr 1fr}.engine-simple-fields label:nth-child(3){grid-column:1/-1}}

/* ===== v1.0.1 · constructor ordenable + vista previa ===== */
.engine-sortable-toolbar{grid-template-columns:42px minmax(170px,1.3fr) 180px minmax(200px,1fr) 36px}
.pricing-drag-handle{height:39px;border:1px solid #e1e4eb;border-radius:10px;background:#f7f8fa;color:#79808b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;cursor:grab;padding:0;user-select:none}.pricing-drag-handle:active{cursor:grabbing}.pricing-drag-handle span{font-size:15px;line-height:10px;letter-spacing:-3px;transform:rotate(90deg)}.pricing-drag-handle small{font-size:7px;font-weight:950;color:#9aa0aa;margin-top:2px}.pricing-drag-handle:hover{border-color:#bca9e6;background:#faf8ff;color:var(--violet)}
.pricing-builder-group{transition:border-color .12s,box-shadow .12s,opacity .12s,transform .12s}.pricing-builder-group.engine-dragging{opacity:.52;border-color:#9f7be5;box-shadow:0 10px 26px rgba(77,47,132,.12);transform:scale(.995)}
.engine-builder-preview{margin-top:16px;padding-top:16px;border-top:1px solid #e8eaf0}.engine-builder-preview-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:10px}.engine-builder-preview-head>div span,.engine-builder-preview-head>div strong{display:block}.engine-builder-preview-head>div span{font-size:7px;font-weight:950;letter-spacing:.09em;color:var(--violet)}.engine-builder-preview-head>div strong{font-size:12px;color:#363d48;margin-top:3px}.engine-builder-preview-head>small{font-size:8px;color:#8a919c;max-width:360px;text-align:right;line-height:1.45}.engine-builder-preview-content{border:1px solid #e1e4eb;border-radius:13px;background:#fff;padding:10px;box-shadow:0 8px 22px rgba(35,30,52,.035)}.engine-preview-product-head{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:1px 2px 8px}.engine-preview-product-head>div:last-child{text-align:right}.engine-preview-product-head span,.engine-preview-product-head strong{display:block}.engine-preview-product-head span{font-size:6.5px;font-weight:950;letter-spacing:.07em;color:#9aa0aa}.engine-preview-product-head strong{font-size:11px;margin-top:2px}.engine-preview-product-head>div:last-child strong{font-size:15px;color:var(--violet)}.engine-builder-preview-board{pointer-events:none;user-select:none}.engine-preview-summary{margin-bottom:0}.engine-preview-empty{padding:18px;text-align:center;border:1px dashed #dfe2e8;border-radius:10px;color:#8a919c;font-size:9px;background:#fafbfc}
@media(max-width:1100px){.engine-sortable-toolbar{grid-template-columns:42px 1fr 1fr}.engine-sortable-toolbar .off-label-field{grid-column:2/4}.engine-sortable-toolbar .pricing-group-remove{grid-column:3;justify-self:end}.engine-builder-preview-head{align-items:flex-start;flex-direction:column;gap:5px}.engine-builder-preview-head>small{text-align:left}}
@media(max-width:700px){.engine-sortable-toolbar{grid-template-columns:42px 1fr}.engine-sortable-toolbar>label,.engine-sortable-toolbar .off-label-field{grid-column:2}.engine-sortable-toolbar .pricing-group-remove{grid-column:2;justify-self:end}.engine-builder-preview-board{grid-template-columns:1fr 1fr!important}}

/* v1.0.2 · ordenar variables directamente desde la preview */
.engine-preview-order-hint{display:flex;align-items:center;gap:6px;margin:9px 0 10px;color:#777f8b;font-size:9px;font-weight:800}
.engine-preview-order-hint span{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:6px;background:#f2eefb;color:var(--violet);font-size:12px}
.engine-preview-sortable-group{position:relative;min-width:0;border-radius:13px;transition:transform .14s ease,box-shadow .14s ease,opacity .14s ease}
.engine-preview-sortable-group>.v06-choice-group{height:100%;min-height:100%;margin:0}
.engine-preview-drag-handle{position:absolute;top:5px;right:6px;z-index:5;width:23px;height:21px;border:0;border-radius:7px;background:rgba(255,255,255,.82);color:#7a7085;display:grid;place-items:center;font-size:14px;line-height:1;cursor:grab;box-shadow:0 1px 4px rgba(30,24,44,.08);opacity:.62;transition:.14s}
.engine-preview-sortable-group:hover .engine-preview-drag-handle{opacity:1;background:#fff;color:var(--violet)}
.engine-preview-drag-handle:active{cursor:grabbing}
.engine-preview-dragging{opacity:.45;transform:scale(.985);box-shadow:0 10px 24px rgba(107,43,217,.13)}
.engine-preview-dragging .engine-preview-drag-handle{cursor:grabbing;opacity:1}
.engine-builder-preview-board.engine-preview-sort-zone{align-items:stretch}
@media(max-width:680px){.engine-preview-drag-handle{opacity:.9}}

/* v1.0.3 · agregar variable siempre al alcance */
.engine-add-variable-bottom-wrap{display:flex;justify-content:center;padding:12px 0 4px}
.engine-add-variable-bottom{border:1px dashed #cfc4e6;background:#faf8ff;color:#5f23c7;border-radius:12px;padding:10px 16px;font-weight:850;font-size:11px;display:inline-flex;align-items:center;gap:7px;transition:.15s}
.engine-add-variable-bottom:hover{background:#f3eefc;border-color:#aa91dd;transform:translateY(-1px)}
.engine-add-variable-bottom span{font-size:17px;line-height:1}
@media print{.engine-add-variable-bottom-wrap{display:none!important}}


/* v1.0.4 · fix real de drag & drop en Vista previa en vivo */
.engine-builder-preview-board.engine-preview-sort-zone{
  pointer-events:auto !important;
  user-select:none;
}
.engine-preview-sortable-group>.v06-choice-group{
  pointer-events:none !important;
}
.engine-preview-drag-handle{
  pointer-events:auto !important;
  touch-action:none;
}
.engine-preview-sortable-group.engine-preview-dragging{
  outline:2px dashed rgba(107,43,217,.32);
  outline-offset:2px;
}
.engine-preview-sort-zone.engine-preview-zone-active{
  background:rgba(107,43,217,.025);
  border-radius:12px;
}

/* v1.0.5 · arrastre robusto con mouse/puntero en Vista previa */
.engine-preview-drag-handle{
  touch-action:none !important;
  cursor:grab !important;
  user-select:none !important;
  -webkit-user-select:none !important;
}
.engine-preview-drag-handle.engine-preview-handle-active{cursor:grabbing !important;background:#fff !important;color:var(--violet) !important;opacity:1 !important}
.engine-preview-sortable-group.engine-preview-pointer-dragging{
  opacity:.58 !important;
  transform:scale(.985) !important;
  outline:2px dashed rgba(107,43,217,.42) !important;
  outline-offset:2px !important;
  z-index:8;
}
.engine-preview-sort-zone.engine-preview-zone-active{
  background:rgba(107,43,217,.035) !important;
  box-shadow:inset 0 0 0 1px rgba(107,43,217,.09);
}

/* v1.0.5 · el bloque completo de la preview se puede agarrar */
.engine-preview-sortable-group{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.engine-preview-sortable-group:active{cursor:grabbing}
.engine-preview-sortable-group>.v06-choice-group{pointer-events:none!important}
.engine-preview-sortable-group .engine-preview-drag-handle{pointer-events:none!important}

/* v1.0.6 · un solo botón visible para agregar variables */
.engine-pricing-section #addPricingGroup{display:none!important}

/* v1.0.7 · orden visual definitivo en preview */
.engine-preview-sortable-group{cursor:default!important;touch-action:auto!important}
.engine-preview-reorderbar{height:24px;margin:0 4px -2px;position:relative;z-index:12;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #e5e0ef;border-bottom:0;border-radius:9px 9px 0 0;background:linear-gradient(180deg,#faf8fe,#f5f1fb);color:#766b82;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.engine-preview-reorderbar:hover{background:#f0eafa;color:var(--violet);border-color:#cfc0ea}
.engine-preview-reorderbar:active{cursor:grabbing}
.engine-preview-grip{font-size:14px;line-height:1;font-weight:900;letter-spacing:-2px;padding-right:2px}
.engine-preview-step{width:22px;height:18px;border:0;border-radius:6px;background:transparent;color:#877e91;font-size:13px;font-weight:900;line-height:1;display:grid;place-items:center;padding:0;cursor:pointer}
.engine-preview-step:hover:not(:disabled){background:#fff;color:var(--violet);box-shadow:0 1px 5px rgba(42,31,63,.09)}
.engine-preview-step:disabled{opacity:.22;cursor:default}
.engine-preview-sortable-group>.v06-choice-group{border-top-left-radius:8px!important;border-top-right-radius:8px!important}
.engine-preview-drag-handle{display:none!important}
.engine-preview-drop-placeholder{min-width:0;border:2px dashed rgba(107,43,217,.45);border-radius:13px;background:linear-gradient(135deg,rgba(107,43,217,.07),rgba(185,242,39,.06));box-shadow:inset 0 0 0 3px rgba(255,255,255,.65);animation:engineDropPulse .8s ease-in-out infinite alternate}
@keyframes engineDropPulse{from{border-color:rgba(107,43,217,.30)}to{border-color:rgba(107,43,217,.62)}}
.engine-preview-drag-ghost{position:fixed!important;z-index:99999!important;margin:0!important;pointer-events:none!important;opacity:.96!important;transform:rotate(.6deg) scale(1.015)!important;box-shadow:0 18px 48px rgba(48,31,78,.22)!important;border-radius:13px!important;background:#fff!important;overflow:hidden!important}
.engine-preview-drag-ghost .engine-preview-reorderbar{cursor:grabbing!important;background:#eee6fb!important;color:var(--violet)!important}
body.engine-preview-sorting-now{cursor:grabbing!important;user-select:none!important;-webkit-user-select:none!important}
body.engine-preview-sorting-now *{cursor:grabbing!important}
.engine-preview-source-hidden{pointer-events:none!important}
@media(max-width:680px){.engine-preview-reorderbar{height:26px}.engine-preview-step{width:26px;height:20px}}

/* ===== v1.1.0 · Precio exacto por combinación ===== */
.engine-pricing-strategy{display:grid;grid-template-columns:1fr minmax(260px,360px);gap:20px;align-items:center;padding:14px 16px;border:1px solid #e5e0ef;background:#fbfaff;border-radius:14px;margin-bottom:8px}
.engine-pricing-strategy span,.engine-matrix-head span{display:block;font-size:8px;letter-spacing:.14em;font-weight:950;color:var(--violet);margin-bottom:4px}
.engine-pricing-strategy strong{font-size:13px}
.engine-pricing-method-help{font-size:10px;color:#656d79;line-height:1.55;padding:7px 2px 13px}
.engine-pricing-method-help strong{color:#343944}
.engine-price-matrix{margin:18px 0 6px;border-top:1px solid #ebe8f0;padding-top:18px}
.engine-matrix-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:12px}
.engine-matrix-head strong{display:block;font-size:15px}.engine-matrix-head p{font-size:10px;color:#727986;margin:4px 0 0}
.engine-matrix-status{text-align:right;padding:8px 11px;border-radius:10px;background:#f4f2f8;min-width:100px}.engine-matrix-status strong,.engine-matrix-status span{display:block}.engine-matrix-status strong{font-size:16px}.engine-matrix-status span{font-size:8px;color:#7b8290}.engine-matrix-status.complete{background:#edf8e8}.engine-matrix-status.complete strong{color:#347a37}
.engine-matrix-table-wrap{overflow:auto;border:1px solid #e5e8ef;border-radius:12px;max-height:520px}
.engine-matrix-table{min-width:720px;background:#fff}.engine-matrix-table th{position:sticky;top:0;background:#f8f7fb;z-index:1;padding:9px 10px}.engine-matrix-table td{padding:8px 10px}.engine-matrix-choice{font-size:10px;font-weight:800;color:#414753;white-space:nowrap}.engine-matrix-money{display:flex;align-items:center;gap:5px;min-width:112px}.engine-matrix-money span{font-size:10px;color:#7c8390;font-weight:800}.engine-matrix-money input{padding:7px 8px;border-radius:8px;min-width:92px}.engine-matrix-table [data-matrix-gross]{white-space:nowrap;font-size:10px;color:#555d68}
.engine-matrix-empty{padding:22px;text-align:center;color:#7b8290;background:#fafbfc;border:1px dashed #d9dce4;border-radius:12px}
.engine-pricing-section.matrix-mode .engine-base-only-note{display:none}.engine-pricing-section.matrix-mode .base-price-explain{display:none}
.matrix-pricing .v06-option-copy small{display:none!important}
.engine-missing-price{margin-top:8px;padding:8px 10px;border:1px solid #f2d4d8;background:#fff4f5;color:#a43b4d;border-radius:9px;font-size:9px;font-weight:800}
@media(max-width:850px){.engine-pricing-strategy{grid-template-columns:1fr}.engine-matrix-head{align-items:flex-start;flex-direction:column}.engine-matrix-status{text-align:left}}


/* v1.1.1 · carga estable de matriz de precios */
#engineBuilderPreview, #engineBuilderPreviewContent { overflow-anchor: none; }
.engine-matrix-table input[data-matrix-price] { scroll-margin-block: 90px; }

/* ===== v1.2.0 · Variables dependientes / múltiplos ===== */
.engine-dependency-box{margin:10px 0 2px;border:1px solid #e7e3ef;border-radius:11px;background:#fbfaff;overflow:hidden}
.engine-dependency-head{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:12px;align-items:center;padding:10px 12px}.engine-dependency-head span,.engine-dependency-head strong{display:block}.engine-dependency-head span{font-size:7px;font-weight:950;letter-spacing:.12em;color:var(--violet)}.engine-dependency-head strong{font-size:10px;margin-top:2px;color:#4c5360}.engine-dependency-head select{height:34px;padding:6px 9px;font-size:9px}
.engine-dependency-config{display:grid;grid-template-columns:1fr 150px;gap:10px;padding:10px 12px 12px;border-top:1px solid #ece8f2;background:#fff}.engine-dependency-config>label{font-size:8px}.engine-dependency-rules{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.engine-dependency-rule{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:7px;align-items:center;padding:7px 8px;border:1px solid #e8eaf0;border-radius:9px;background:#fafbfc}.engine-dependency-rule>span{font-size:9px;font-weight:850;color:#444b56;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.engine-dependency-rule label{font-size:7px}.engine-dependency-rule input{height:29px;padding:5px 7px;font-size:9px}.engine-dependency-help{grid-column:1/-1;margin:0;font-size:8px;color:#7a828e;line-height:1.45}.engine-options-hidden-by-dependency{display:none!important}
.engine-dependent-empty{padding:8px 9px;font-size:8px;color:#8a919b;background:#f6f7f9;border-radius:8px;line-height:1.4}.engine-dependent-select-wrap{display:block!important}.engine-dependent-select-wrap select{width:100%;height:31px;padding:5px 8px;border-radius:8px;font-size:9px;font-weight:800;color:#39404b;background:#fff}
@media(max-width:900px){.engine-dependency-rules{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.engine-dependency-head,.engine-dependency-config{grid-template-columns:1fr}.engine-dependency-rules{grid-template-columns:1fr}}

/* ===== v1.2.2 · Listas específicas por dependencia ===== */
.engine-dependency-rule-list{grid-template-columns:minmax(100px,.5fr) minmax(260px,1.5fr)}
.engine-dependency-rule-list label{min-width:0}
.engine-dependency-rule-list input{width:100%;font-variant-numeric:tabular-nums}
.engine-dependency-config[data-dependency-mode="list"]{grid-template-columns:1fr}
.engine-dependency-config[data-dependency-mode="list"]>[data-dependency-max-field]{display:none!important}
.engine-dependency-config[data-dependency-mode="list"] .engine-dependency-rules{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:900px){.engine-dependency-config[data-dependency-mode="list"] .engine-dependency-rules{grid-template-columns:1fr}}

/* v1.2.4 · feedback claro al guardar productos */
#productForm .btn.product-saving{opacity:.78;cursor:wait;transform:none}
#productForm .btn.product-saved{background:#eaf8ed!important;color:#287a39!important;border-color:#cfead5!important;box-shadow:none!important}

/* v1.3.0 · continuidad, backup y producto portable */
.product-portability-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #e5e8ef;border-radius:14px;background:#fbfbfe;margin-top:4px}.product-portability-tools>div:first-child strong,.product-portability-tools>div:first-child span{display:block}.product-portability-tools>div:first-child strong{font-size:11px}.product-portability-tools>div:first-child span{font-size:9px;color:#747b87;margin-top:3px}.products-import-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 14px;border:1px solid #e3e6ee;background:#fff;border-radius:14px;margin-bottom:16px}.products-import-bar>div{min-width:0}.products-import-bar strong,.products-import-bar span{display:block}.products-import-bar strong{font-size:11px}.products-import-bar span{font-size:9px;color:#777f8b;margin-top:3px}.backup-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.backup-action{appearance:none;border:1px solid #dedfeb;background:#fff;border-radius:14px;text-align:left;padding:15px;transition:.15s;color:#202431}.backup-action:hover{border-color:#bba6ea;background:#fcfaff;transform:translateY(-1px)}.backup-action strong,.backup-action span{display:block}.backup-action strong{font-size:12px;color:#5620bc}.backup-action span{font-size:9px;color:#717986;line-height:1.5;margin-top:4px}.backup-status{margin-top:13px;border-radius:12px;padding:11px 13px;background:#f5f6fa;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center}.backup-status span{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#858c97;font-weight:900}.backup-status strong{font-size:10px;text-align:right}.backup-status small{grid-column:1/-1;font-size:8px;color:#828995;line-height:1.5}.update-steps{display:flex;flex-direction:column;gap:9px}.update-steps>div{display:grid;grid-template-columns:27px 1fr;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #eff1f5}.update-steps>div:last-child{border-bottom:0}.update-steps b{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#f1edfb;color:#6b2bd9;font-size:9px}.update-steps span{font-size:10px;line-height:1.55;color:#555e6a}
@media(max-width:760px){.product-portability-tools,.products-import-bar{align-items:stretch;flex-direction:column}.backup-actions-grid{grid-template-columns:1fr}.product-portability-tools .actions{width:100%}.product-portability-tools .actions .btn{flex:1}}

/* ===== v1.4.0 · Cactus ERP Online ===== */
.cloud-sync-pill{display:inline-flex;align-items:center;min-height:29px;padding:6px 9px;border-radius:999px;font-size:9px;font-weight:900;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.cloud-sync-pill.ok{background:#eaf8ed;border-color:#d2ecd8;color:#287a39}.cloud-sync-pill.saving{background:#eee8ff;border-color:#ddd1fb;color:#5f31ae}.cloud-sync-pill.warn{background:#fff4dc;border-color:#f4dfad;color:#956206}.cloud-sync-pill.danger{background:#fdecef;border-color:#f4ced5;color:#af3046}.cloud-loading,.cloud-setup-needed{min-height:100vh;display:grid;place-items:center;text-align:center;background:#17111e;color:white}.cloud-loading{align-content:center;gap:10px}.cloud-loading .brand-badge{margin:auto}.cloud-loading strong{font-size:22px}.cloud-loading span{color:#aaa1b1;font-size:11px}.cloud-setup-needed .login-card{width:min(520px,calc(100vw - 32px));color:var(--ink);text-align:left}.online-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.online-info-grid>div{background:#f7f8fb;border:1px solid #e9ebf1;border-radius:12px;padding:12px}.online-info-grid span,.online-info-grid strong{display:block}.online-info-grid span{font-size:9px;color:#818894;font-weight:800;text-transform:uppercase}.online-info-grid strong{font-size:11px;margin-top:5px}.sidebar .beta-pill{letter-spacing:.1em}@media(max-width:720px){.online-info-grid{grid-template-columns:1fr}.cloud-sync-pill{display:none}}
