:root{--navy: #21255E;--green: #16704D;--copper: #B65A28;--cream: #F6F2E8;--navy-04: rgba(33,37,94,.04);--navy-08: rgba(33,37,94,.08);--navy-15: rgba(33,37,94,.15);--navy-40: rgba(33,37,94,.4);--navy-60: rgba(33,37,94,.6);--green-10: rgba(22,112,77,.1);--green-20: rgba(22,112,77,.2);--copper-10:rgba(182,90,40,.1);--copper-20:rgba(182,90,40,.2);--bg: var(--cream);--surface: #ffffff;--border: var(--navy-15);--text: var(--navy);--text-muted: var(--navy-60);--text-light: var(--navy-40);--font-brand: "Nunito", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10:40px;--sp-12:48px;--sidebar-w: 260px;--footer-h: 68px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--shadow-sm: 0 1px 4px rgba(33,37,94,.08);--shadow-md: 0 4px 16px rgba(33,37,94,.1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-brand);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.shell{display:flex;height:100vh;overflow:hidden;background:var(--navy)}.sidebar{width:var(--sidebar-w);background:var(--navy);display:flex;flex-direction:column;padding:var(--sp-6) 0 var(--sp-6);flex-shrink:0}.sidebar-brand{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-6) var(--sp-8);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-brand img{height:32px;width:auto}.sidebar-brand-text{display:flex;flex-direction:column;gap:1px}.sidebar-brand-title{font-size:13px;font-weight:800;color:#fff;letter-spacing:-.3px;line-height:1}.sidebar-brand-sub{font-family:var(--font-mono);font-size:9px;font-weight:500;color:#ffffff73;letter-spacing:.08em;text-transform:uppercase}.sidebar-steps{flex:1;padding:var(--sp-6) 0;overflow-y:auto}.sidebar-step{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-6);cursor:default;position:relative}.sidebar-step:before{content:"";position:absolute;left:calc(var(--sp-6) + 11px);top:38px;bottom:-8px;width:1px;background:#ffffff1a}.sidebar-step:last-child:before{display:none}.step-dot{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px;transition:all .2s}.step-dot.pending{border:1.5px solid rgba(255,255,255,.2);color:#ffffff59}.step-dot.active{background:var(--copper);color:#fff;box-shadow:0 0 0 3px #b65a2840}.step-dot.done{background:var(--green);color:#fff}.step-dot.done:after{content:"✓";font-family:var(--font-brand);font-size:12px;font-weight:900}.step-dot.done span{display:none}.step-info{flex:1;padding-top:3px}.step-label{font-size:12px;font-weight:700;line-height:1.2;transition:color .2s}.sidebar-step.pending .step-label{color:#ffffff59}.sidebar-step.active .step-label{color:#fff}.sidebar-step.done .step-label{color:#ffffffa6}.step-sublabel{font-family:var(--font-mono);font-size:9px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;margin-top:2px}.sidebar-step.pending .step-sublabel{color:#fff3}.sidebar-step.active .step-sublabel{color:var(--copper)}.sidebar-step.done .step-sublabel{color:#ffffff4d}.main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);border-radius:20px 0 0 20px;position:relative}.watermark{position:absolute;bottom:0;right:-20px;width:400px;opacity:.055;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.main-header,.main-body,.footer{position:relative;z-index:1}.main-header{padding:var(--sp-8) var(--sp-10) var(--sp-5);border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.step-eyebrow{font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--copper);margin-bottom:var(--sp-2)}.step-title{font-size:26px;font-weight:900;color:var(--navy);letter-spacing:-.5px;line-height:1.1}.step-desc{font-size:14px;color:var(--text-muted);margin-top:var(--sp-2);line-height:1.5}.main-body{flex:1;overflow-y:auto;padding:var(--sp-8) var(--sp-10)}.footer{height:var(--footer-h);background:var(--navy);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-10);flex-shrink:0}.footer-info{font-family:var(--font-mono);font-size:10px;font-weight:500;color:#ffffff4d;letter-spacing:.06em}.footer-nav{display:flex;gap:var(--sp-3)}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 var(--sp-5);border-radius:var(--radius-md);font-family:var(--font-brand);font-size:14px;font-weight:800;cursor:pointer;transition:all .15s;border:none;white-space:nowrap}.btn-primary{background:var(--copper);color:#fff}.btn-primary:hover{background:#a04e23}.btn-primary:disabled{background:var(--navy-15);color:var(--text-light);cursor:not-allowed}.btn-ghost{background:transparent;color:#fff9;border:1.5px solid rgba(255,255,255,.2)}.btn-ghost:hover{color:#fff;border-color:#ffffff73}.btn-navy{background:var(--navy);color:#fff}.btn-navy:hover{background:#1a1e52}.btn-outline{background:transparent;color:var(--navy);border:1.5px solid var(--border)}.btn-outline:hover{border-color:var(--navy);background:var(--navy-04)}.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:#125c41}.btn-sm{height:32px;padding:0 var(--sp-4);font-size:12px}.btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:transparent;border:1.5px solid var(--border);color:var(--text-muted);font-size:16px;cursor:pointer;transition:all .15s;line-height:1}.btn-icon:hover{color:var(--navy);border-color:var(--navy);background:var(--navy-04)}.btn-icon.danger:hover{color:#c0392b;border-color:#c0392b;background:#c0392b0f}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}.form-grid.cols-3{grid-template-columns:1fr 1fr 1fr}.form-grid.cols-1{grid-template-columns:1fr}.form-group{display:flex;flex-direction:column;gap:var(--sp-2)}.form-group.span-2{grid-column:span 2}.form-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.form-input,.form-select{height:44px;padding:0 var(--sp-4);border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-brand);font-size:15px;font-weight:600;color:var(--navy);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.form-input.mono,.mono-val{font-family:var(--font-mono);font-size:14px;letter-spacing:.02em}.form-input:focus,.form-select:focus{border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-08)}.form-input::placeholder{color:var(--text-light);font-weight:500}.form-input:disabled,.form-select:disabled{background:var(--navy-04);color:var(--text-muted);cursor:not-allowed}.form-hint{font-size:12px;color:var(--text-light);margin-top:-var(--sp-1)}.radio-group{display:flex;gap:var(--sp-3)}.radio-card{flex:1;position:relative}.radio-card input[type=radio]{position:absolute;opacity:0;width:0;height:0}.radio-card-label{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s;background:var(--surface)}.radio-card input:checked+.radio-card-label{border-color:var(--navy);background:var(--navy-04);box-shadow:0 0 0 2px var(--navy-08)}.radio-card-label:hover{border-color:var(--navy-40)}.radio-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .15s}.radio-card input:checked+.radio-card-label .radio-dot{border-color:var(--navy);background:var(--navy)}.radio-card input:checked+.radio-card-label .radio-dot:after{content:"";width:6px;height:6px;border-radius:50%;background:#fff}.radio-card-text{flex:1}.radio-card-title{font-size:14px;font-weight:800;color:var(--navy);line-height:1.2}.radio-card-sub{font-size:12px;color:var(--text-muted);margin-top:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-6)}.card-title{font-size:13px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--sp-5);font-family:var(--font-mono)}.product-list{display:flex;flex-direction:column;gap:var(--sp-3)}.product-item{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s}.product-item:hover{border-color:var(--navy-40)}.product-item-header{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5)}.product-item-num{width:28px;height:28px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:11px;font-weight:700;flex-shrink:0}.product-item-name{flex:1;font-size:15px;font-weight:800;color:var(--navy)}.product-item-price{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--copper);background:var(--copper-10);padding:3px var(--sp-3);border-radius:var(--radius-sm)}.product-item-meta{padding:0 var(--sp-5) var(--sp-4);display:flex;gap:var(--sp-3);flex-wrap:wrap}.meta-chip{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--text-muted);background:var(--navy-04);padding:3px var(--sp-3);border-radius:99px;text-transform:uppercase}.meta-chip.green{color:var(--green);background:var(--green-10)}.meta-chip.copper{color:var(--copper);background:var(--copper-10)}.add-form{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius-lg);padding:var(--sp-6)}.add-form-title{font-size:14px;font-weight:800;color:var(--navy);margin-bottom:var(--sp-5);display:flex;align-items:center;gap:var(--sp-2)}.add-form-title .num{width:22px;height:22px;background:var(--copper);color:#fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:10px;font-weight:700}.add-form-actions{display:flex;justify-content:flex-end;gap:var(--sp-3);margin-top:var(--sp-5)}.btn-add-product{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-6);border:2px dashed var(--border);border-radius:var(--radius-lg);background:transparent;color:var(--text-muted);font-family:var(--font-brand);font-size:14px;font-weight:700;cursor:pointer;transition:all .15s;width:100%}.btn-add-product:hover{border-color:var(--navy);color:var(--navy);background:var(--navy-04)}.flete-subform{background:var(--navy-04);border-radius:var(--radius-md);padding:var(--sp-5);margin-top:var(--sp-4)}.flete-subform-title{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-4)}.tc-box{background:var(--navy);border-radius:var(--radius-xl);padding:var(--sp-8);text-align:center;margin-bottom:var(--sp-6)}.tc-label{font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#ffffff80;margin-bottom:var(--sp-3)}.tc-value{font-family:var(--font-mono);font-size:48px;font-weight:700;color:#fff;line-height:1;letter-spacing:-1px}.tc-value span{font-size:20px;opacity:.6}.tc-date{font-family:var(--font-mono);font-size:11px;font-weight:500;color:#fff6;margin-top:var(--sp-2)}.tc-source-badge{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.06em;padding:3px 10px;border-radius:99px;margin-top:var(--sp-3)}.tc-source-badge.banxico{background:var(--green);color:#fff}.tc-source-badge.manual{background:var(--copper);color:#fff}.tc-actions{display:flex;justify-content:center;gap:var(--sp-3);margin-top:var(--sp-5)}.cost-table{width:100%;border-collapse:collapse;font-size:13px}.cost-table th{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding:var(--sp-3) var(--sp-4);text-align:left;border-bottom:2px solid var(--border)}.cost-table th.right,.cost-table td.right{text-align:right}.cost-table td{padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--navy-04);vertical-align:middle}.cost-table tr:last-child td{border-bottom:none}.cost-table tr:hover td{background:var(--navy-04)}.cost-table .product-name-cell{font-weight:800;color:var(--navy)}.cost-table .num-cell{font-family:var(--font-mono);font-size:13px;font-weight:600}.cost-table .total-row td{border-top:2px solid var(--border);font-weight:900;padding-top:var(--sp-4)}.cost-table .total-row .num-cell{color:var(--copper);font-size:15px}.cost-breakdown-mini{font-family:var(--font-mono);font-size:10px;color:var(--text-light);line-height:1.6;margin-top:3px}.margen-buttons{display:flex;gap:var(--sp-2);margin-bottom:var(--sp-5)}.margen-btn{flex:1;height:48px;border:2px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--text-muted);cursor:pointer;transition:all .15s}.margen-btn:hover{border-color:var(--navy);color:var(--navy)}.margen-btn.active{border-color:var(--navy);background:var(--navy);color:#fff;box-shadow:var(--shadow-sm)}.price-preview-table{width:100%;border-collapse:collapse}.price-preview-table td{padding:var(--sp-4) var(--sp-4);border-bottom:1px solid var(--navy-04)}.price-preview-table tr:last-child td{border-bottom:none}.price-arrow{display:flex;align-items:center;gap:var(--sp-3);font-family:var(--font-mono);font-size:12px;color:var(--text-muted)}.price-arrow .costo{color:var(--text-muted)}.price-arrow .arrow{color:var(--copper);font-size:16px}.price-arrow .venta{font-size:18px;font-weight:700;color:var(--green)}.folio-display{font-family:var(--font-mono);font-size:20px;font-weight:700;color:var(--navy);letter-spacing:.02em;margin-bottom:var(--sp-6)}.download-area{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);padding:var(--sp-10);border:2px dashed var(--green-20);border-radius:var(--radius-xl);background:var(--green-10);text-align:center}.download-area .icon{font-size:48px}.download-area .title{font-size:18px;font-weight:900;color:var(--navy)}.download-area .sub{font-size:13px;color:var(--text-muted);max-width:320px}.alert{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-radius:var(--radius-md);font-size:13px;font-weight:600;margin-bottom:var(--sp-5)}.alert-warning{background:var(--copper-10);border:1px solid var(--copper-20);color:var(--copper)}.alert-info{background:var(--navy-04);border:1px solid var(--navy-08);color:var(--text-muted)}.alert-success{background:var(--green-10);border:1px solid var(--green-20);color:var(--green)}.spinner{display:inline-block;width:18px;height:18px;border:2px solid var(--border);border-top-color:var(--navy);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.divider{height:1px;background:var(--border);margin:var(--sp-6) 0}.section-header{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--sp-4);display:flex;align-items:center;gap:var(--sp-3)}.section-header:after{content:"";flex:1;height:1px;background:var(--border)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--navy-15);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--navy-40)}.module-selector{position:relative}.module-btn{display:flex;align-items:center;gap:5px;background:transparent;border:none;padding:0;cursor:pointer;color:#fff;font-family:var(--font-brand);font-size:13px;font-weight:800;letter-spacing:-.3px;line-height:1}.module-arrow{font-size:10px;opacity:.6;transition:transform .2s}.module-dropdown.open~.module-btn .module-arrow,.module-btn:has(+.module-dropdown.open) .module-arrow{transform:rotate(180deg)}.module-dropdown{display:none;position:absolute;top:calc(100% + 8px);left:0;background:#fff;border-radius:var(--radius-md);box-shadow:0 8px 32px #00000040;z-index:100;min-width:180px;overflow:hidden;border:1px solid rgba(0,0,0,.08)}.module-dropdown.open{display:block}.module-opt{padding:10px 14px;font-size:13px;font-weight:700;color:var(--navy);cursor:pointer;transition:background .1s}.module-opt:hover{background:var(--navy-04)}.module-opt.active{background:var(--navy);color:#fff}.prov-grid{display:flex;flex-direction:column;gap:var(--sp-3)}.prov-card{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-4) var(--sp-5);border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;transition:all .15s}.prov-card:hover{border-color:var(--navy-40);background:var(--navy-04)}.prov-card.selected{border-color:var(--navy);background:var(--navy-04);box-shadow:0 0 0 2px var(--navy-08)}.prov-card-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;margin-top:2px;transition:all .15s}.prov-card.selected .prov-card-check{background:var(--navy);border-color:var(--navy);color:#fff}.prov-card-body{flex:1}.prov-card-name{font-size:14px;font-weight:800;color:var(--navy);margin-bottom:var(--sp-2)}.prov-card-meta{display:flex;gap:var(--sp-2);flex-wrap:wrap}.cliente-list{display:flex;flex-direction:column;gap:var(--sp-2)}.cliente-row{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:all .12s}.cliente-row:hover{border-color:var(--navy-40);background:var(--navy-04)}.cliente-row.selected{border-color:var(--green);background:var(--green-10)}.cliente-row-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0;margin-top:2px;transition:all .15s}.cliente-row.selected .cliente-row-check{background:var(--green);border-color:var(--green);color:#fff}.cliente-row-body{flex:1}.cliente-row-name{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:3px}.cliente-row-meta{display:flex;gap:var(--sp-2);flex-wrap:wrap}
