@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=DM+Sans:wght@400;500;700&display=swap";.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.auth-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:480px;width:100%;overflow:hidden}.auth-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:40px 30px 30px;text-align:center}.auth-header h1{margin:0 0 10px;font-size:32px;font-weight:700}.auth-header p{margin:0;opacity:.9;font-size:16px}.auth-form{padding:30px}.auth-form h2{margin:0 0 24px;font-size:24px;color:#333;text-align:center}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#555;font-size:14px}.form-group input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:15px;transition:all .3s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.auth-form .btn-primary{width:100%;padding:14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:10px;display:flex;align-items:center;justify-content:center;text-align:center}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.btn-primary:active:not(:disabled){transform:translateY(0)}.auth-error{background:#fee;border:1px solid #fcc;color:#c33;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.info-text{background:#e3f2fd;border:1px solid #90caf9;color:#1976d2;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px;line-height:1.5}.auth-footer{margin-top:24px;text-align:center;color:#666;font-size:14px}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-weight:600;text-decoration:none;padding:0;font-size:inherit}.link-button:hover{text-decoration:underline}.back-link{background:#ffffff40;border:1.5px solid rgba(255,255,255,.5);color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 18px;margin-bottom:18px;display:inline-flex;align-items:center;gap:6px;border-radius:24px;transition:all .2s;letter-spacing:.3px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.back-link:hover{background:#fff6;border-color:#ffffffb3;transform:translate(-2px)}@media (max-width: 480px){.auth-card{margin:0;border-radius:0}.auth-header{padding:30px 20px 20px}.auth-header h1{font-size:26px}.auth-form{padding:20px}}:root{--tf-indigo-600: #4f46e5;--tf-indigo-500: #6366f1;--tf-indigo-400: #818cf8;--tf-indigo-300: #a5b4fc;--tf-indigo-200: #c7d2fe;--tf-indigo-100: #e0e7ff;--tf-indigo-50: #eef2ff;--tf-blue-600: #2563eb;--tf-blue-500: #3b82f6;--tf-blue-400: #60a5fa;--tf-blue-300: #93c5fd;--tf-blue-200: #bfdbfe;--tf-blue-100: #dbeafe;--tf-gradient-primary: linear-gradient(135deg, #4f46e5 0%, #3b82f6 100%);--tf-gradient-primary-hover: linear-gradient(135deg, #4338ca 0%, #2563eb 100%);--tf-gradient-text: linear-gradient(90deg, #818cf8, #60a5fa);--tf-bg-dark: #0a0d22;--tf-bg-dark-alt: #12103a;--tf-bg-darkest: #08080c;--tf-bg-light: #ffffff;--tf-bg-light-alt: #f8fafc;--tf-bg-gray: #f3f4f6;--tf-text-white: #ffffff;--tf-text-dark: #1a1a2e;--tf-text-muted: rgba(255, 255, 255, .5);--tf-text-muted-light: #6b7280;--tf-border-dark: rgba(99, 102, 241, .12);--tf-border-light: #e5e7eb;--tf-shadow-indigo: 0 8px 28px rgba(79, 70, 229, .35);--tf-shadow-blue: 0 8px 28px rgba(37, 99, 235, .25);--tf-success: #10b981;--tf-warning: #f59e0b;--tf-error: #ef4444;--tf-info: var(--tf-blue-500);--tf-font-display: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--tf-font-body: "DM Sans", -apple-system, BlinkMacSystemFont, sans-serif;--tf-radius-sm: 8px;--tf-radius-md: 12px;--tf-radius-lg: 16px;--tf-radius-xl: 20px;--tf-radius-icon: 12px;--tf-icon-rotation: -6deg}.tf-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none}.tf-logo-icon{position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tf-logo-icon--lg{width:50px;height:50px}.tf-logo-icon--md{width:38px;height:38px}.tf-logo-icon--sm{width:30px;height:30px}.tf-logo-icon--xs{width:24px;height:24px}.tf-logo-icon:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--tf-gradient-primary);border-radius:var(--tf-radius-icon);transform:rotate(var(--tf-icon-rotation));box-shadow:var(--tf-shadow-indigo);transition:transform .2s ease,box-shadow .2s ease}.tf-logo:hover .tf-logo-icon:before{transform:rotate(-8deg);box-shadow:0 10px 36px #4f46e573}.tf-logo-icon svg{position:relative;z-index:1}.tf-logo-wordmark{font-family:var(--tf-font-display);font-weight:800;letter-spacing:-.3px;line-height:1}.tf-logo-wordmark--lg{font-size:34px}.tf-logo-wordmark--md{font-size:24px}.tf-logo-wordmark--sm{font-size:18px}.tf-logo-wordmark--xs{font-size:14px}.tf-logo--dark .tf-logo-turbo{color:var(--tf-text-white)}.tf-logo--dark .tf-logo-factura{background:var(--tf-gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tf-logo--light .tf-logo-turbo{color:var(--tf-text-dark)}.tf-logo--light .tf-logo-factura{color:var(--tf-indigo-600)}.tf-heading-1{font-family:var(--tf-font-display);font-weight:800;font-size:48px;letter-spacing:-1px;line-height:1.1}.tf-heading-2{font-family:var(--tf-font-display);font-weight:700;font-size:36px;letter-spacing:-.5px;line-height:1.2}.tf-heading-3{font-family:var(--tf-font-display);font-weight:700;font-size:24px;letter-spacing:-.3px;line-height:1.3}.tf-heading-4{font-family:var(--tf-font-display);font-weight:600;font-size:18px;line-height:1.4}.tf-body{font-family:var(--tf-font-body);font-weight:400;font-size:15px;line-height:1.6}.tf-body-sm{font-family:var(--tf-font-body);font-weight:400;font-size:13px;line-height:1.5}.tf-label{font-family:var(--tf-font-display);font-weight:500;font-size:11px;letter-spacing:3px;text-transform:uppercase}.tf-btn{font-family:var(--tf-font-body);font-weight:600;font-size:14px;border:none;cursor:pointer;border-radius:var(--tf-radius-md);padding:12px 24px;display:inline-flex;align-items:center;gap:8px;transition:all .2s ease;text-decoration:none}.tf-btn--primary{background:var(--tf-gradient-primary);color:#fff;box-shadow:0 4px 16px #4f46e54d}.tf-btn--primary:hover{background:var(--tf-gradient-primary-hover);box-shadow:0 6px 24px #4f46e566;transform:translateY(-1px)}.tf-btn--secondary{background:#6366f11a;color:var(--tf-indigo-400);border:1px solid var(--tf-border-dark)}.tf-btn--secondary:hover{background:#6366f126;border-color:#6366f133}.tf-btn--ghost{background:transparent;color:var(--tf-indigo-400)}.tf-btn--ghost:hover{background:#6366f114}.tf-card{background:#ffffff05;border:1px solid var(--tf-border-dark);border-radius:var(--tf-radius-xl);padding:24px;transition:all .2s ease}.tf-card:hover{border-color:#6366f133;box-shadow:0 8px 32px #0003}.tf-card--light{background:#fff;border:1px solid var(--tf-border-light)}.tf-badge{font-family:var(--tf-font-body);font-weight:600;font-size:11px;padding:4px 10px;border-radius:20px;display:inline-flex;align-items:center;gap:4px}.tf-badge--success{background:#10b9811a;color:#34d399}.tf-badge--warning{background:#f59e0b1a;color:#fbbf24}.tf-badge--error{background:#ef44441a;color:#f87171}.tf-badge--info{background:#6366f11a;color:#818cf8}.tf-input{font-family:var(--tf-font-body);font-size:14px;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--tf-radius-sm);color:#fff;outline:none;transition:all .2s ease;width:100%}.tf-input:focus{border-color:var(--tf-indigo-500);box-shadow:0 0 0 3px #6366f126}.tf-input::placeholder{color:#ffffff40}.tf-input--light{background:#fff;border:1px solid var(--tf-border-light);color:var(--tf-text-dark)}.tf-input--light:focus{border-color:var(--tf-indigo-500);box-shadow:0 0 0 3px #4f46e51a}*{margin:0;padding:0;box-sizing:border-box}:root{--primary: #3b82f6;--primary-dark: #2563eb;--primary-color: #3b82f6;--primary-rgb: 59, 130, 246;--primary-light: #eff6ff;--secondary: #64748b;--success: #10b981;--danger: #ef4444;--warning: #f59e0b;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-card: #ffffff;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-tertiary: #64748b;--border: #e2e8f0;--border-color: #e2e8f0;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1);--font-mono: "Courier New", monospace}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-secondary);color:var(--text-primary);line-height:1.5}.app{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-primary);border-right:1px solid var(--border);padding:24px 24px 100px;position:fixed;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.sidebar-header{margin-bottom:32px}.sidebar-header h1{font-size:24px;color:var(--primary);margin-bottom:4px}.sidebar-header p{font-size:14px;color:var(--text-secondary)}.nav-menu{list-style:none}.nav-item{margin-bottom:8px}.nav-link{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--text-secondary);text-decoration:none;border-radius:8px;transition:all .2s}.nav-link:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-link.active{background:var(--primary);color:#fff}.main-content{flex:1;margin-left:260px;padding:32px;max-width:1400px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1{font-size:32px;color:var(--text-primary)}.page-header p{color:var(--text-secondary);margin-top:4px}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.dashboard-header-left{display:flex;align-items:center;gap:24px}.rfc-filter{display:flex;align-items:center;gap:12px}.rfc-filter label{font-size:14px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.rfc-select{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;cursor:pointer;transition:all .2s;min-width:250px}.rfc-select:hover{border-color:var(--primary)}.rfc-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:var(--bg-primary);border-radius:12px;padding:24px;box-shadow:var(--shadow);display:flex;gap:16px;border-left:4px solid var(--primary)}.stat-card-blue{border-left-color:#3b82f6}.stat-card-green{border-left-color:#10b981}.stat-card-purple{border-left-color:#8b5cf6}.stat-card-orange{border-left-color:#f59e0b}.stat-icon{color:var(--primary);opacity:.8}.stat-content h3{font-size:14px;color:var(--text-secondary);margin-bottom:8px;font-weight:500}.stat-value{font-size:32px;font-weight:700;color:var(--text-primary);display:block}.stat-subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px}.dashboard-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.info-card{background:var(--bg-primary);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.info-card h3{font-size:18px;margin-bottom:16px;color:var(--text-primary)}.info-card p{color:var(--text-secondary);margin-bottom:8px;font-size:14px}.download-status-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn-detail-toggle{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;color:#3b82f6;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;cursor:pointer;transition:all .2s ease}.btn-detail-toggle:hover{background:#dbeafe;border-color:#93c5fd}.btn-detail-toggle svg{flex-shrink:0}.download-status-box{margin-top:16px;padding:16px;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:1px solid #86efac;border-radius:8px;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.download-status-header{display:flex;align-items:center;gap:8px;font-weight:600;color:#166534;margin-bottom:12px;font-size:14px}.download-status-details{display:flex;flex-direction:column;gap:8px}.no-data-message{color:#64748b;font-size:13px;font-style:italic;margin:0}.download-status-row{display:flex;align-items:center;gap:8px;font-size:13px}.download-status-row .label{color:#475569;min-width:90px}.download-status-row .value{color:#0f172a;font-weight:500}.download-status-row .value.highlight{color:#059669;font-weight:700;font-size:14px}.download-status-row .status-icon.success{color:#10b981}.download-status-row .status-text{color:#059669;font-weight:500}.quick-actions{display:flex;flex-direction:column;gap:12px}.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;margin-top:24px}.client-card{background:var(--bg-primary);border-radius:12px;padding:20px;box-shadow:var(--shadow);transition:all .2s}.client-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.client-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.client-header h3{font-size:18px;color:var(--text-primary)}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.status-active{background:#d1fae5;color:#065f46}.status-inactive{background:#fee2e2;color:#991b1b}.client-info p{font-size:14px;color:var(--text-secondary);margin-bottom:8px}.client-actions{display:flex;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.page-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.notification-wrapper{position:relative}.notification-btn{position:relative;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;padding:10px 12px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s;box-shadow:var(--shadow)}.notification-btn:hover{background:var(--bg-tertiary);color:var(--primary);border-color:var(--primary)}.notification-btn.has-notifications{color:var(--primary);border-color:var(--primary);animation:pulse-border 2s infinite}@keyframes pulse-border{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 4px #3b82f61a}}.notification-badge{position:absolute;top:-6px;right:-6px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;box-shadow:0 2px 4px #0003}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:480px;background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 40px #00000026;z-index:1000;overflow:hidden}.notification-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;background:linear-gradient(135deg,#dbeafe,#ede9fe);border-bottom:1px solid var(--border)}.notification-dropdown-header h4{font-size:14px;font-weight:600;color:var(--primary-dark);display:flex;align-items:center;gap:8px;margin:0}.notification-dropdown-actions{display:flex;gap:4px}.btn-icon-sm{background:#fff;border:1px solid var(--border);border-radius:6px;padding:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .2s}.btn-icon-sm:hover{background:var(--bg-tertiary);color:var(--primary)}.btn-icon-sm:disabled{opacity:.5;cursor:not-allowed}.notification-dropdown-content{max-height:360px;overflow-y:auto}.notification-empty{padding:40px 20px;text-align:center;color:var(--text-secondary)}.notification-empty svg{opacity:.3;margin-bottom:12px}.notification-empty p{font-size:14px;font-weight:500;margin-bottom:4px}.notification-empty small{font-size:12px;opacity:.7}.notification-list{padding:8px}.notification-item{background:var(--bg-tertiary);border-radius:8px;padding:12px;margin-bottom:8px}.notification-item:last-child{margin-bottom:0}.notification-item-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.notification-rfc{font-weight:600;font-size:13px;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-badge-sm{font-size:10px;font-weight:600;padding:2px 6px;border-radius:8px;text-transform:uppercase}.status-badge-sm.status-pending{background:#fef3c7;color:#92400e}.status-badge-sm.status-processing{background:#dbeafe;color:#1e40af}.notification-item-details{display:flex;gap:12px;font-size:12px;color:var(--text-secondary);margin-bottom:6px}.notification-tipo{font-weight:500}.notification-item-message{font-size:12px;color:var(--primary-dark);font-style:italic;margin-bottom:4px}.notification-item-time{font-size:11px;color:var(--text-secondary);opacity:.7}.notification-item-retry{font-size:11px;color:var(--warning);display:flex;align-items:center;gap:4px;margin-top:4px}.notification-item-retry svg{animation:spin 2s linear infinite}.notification-item-retry .retry-count{color:var(--text-secondary);margin-left:4px}.notification-section-header{padding:8px 16px 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--primary);background:var(--bg-tertiary);display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border)}.notification-section-header.recent{color:var(--success);margin-top:8px;border-top:1px solid var(--border)}.notification-item.recent-item{opacity:.85;background:var(--bg-tertiary)}.notification-item.recent-item.status-completed{border-left:3px solid var(--success)}.notification-item.recent-item.status-no_data{border-left:3px solid var(--warning)}.notification-item.recent-item.status-failed{border-left:3px solid var(--danger)}.notification-dropdown-footer{padding:10px 16px;background:var(--bg-tertiary);border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.notification-dropdown-footer small{font-size:11px;color:var(--text-secondary)}.btn-clear-downloads{display:flex;align-items:center;gap:4px;padding:4px 10px;background:transparent;border:1px solid var(--danger);color:var(--danger);border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}.btn-clear-downloads:hover:not(:disabled){background:var(--danger);color:#fff}.btn-clear-downloads:disabled{opacity:.6;cursor:not-allowed}.status-icon{flex-shrink:0}.status-icon.pending{color:var(--warning)}.status-icon.processing{color:var(--primary)}.status-icon.completed{color:var(--success)}.status-icon.failed{color:var(--danger)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.downloads-container{display:grid;grid-template-columns:2fr 1fr;gap:24px;margin-top:24px}.download-form-card,.download-info-card{background:var(--bg-primary);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.download-info-card h3{font-size:18px;margin-bottom:20px}.info-item{margin-bottom:20px}.info-item h4{font-size:14px;color:var(--text-primary);margin-bottom:8px}.info-item p{font-size:13px;color:var(--text-secondary);line-height:1.6}.form-section h3{font-size:16px;margin-bottom:16px;display:flex;align-items:center;gap:8px;color:var(--text-primary)}.quick-dates{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.month-selector{margin-bottom:16px;padding:12px;background:var(--bg-tertiary);border-radius:8px}.month-selector label{display:block;font-size:13px;font-weight:500;margin-bottom:8px;color:var(--text-secondary)}.month-selector-row{display:flex;gap:8px;flex-wrap:wrap}.month-selector select{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--bg-primary);cursor:pointer;min-width:150px}.month-selector select:focus{outline:none;border-color:var(--primary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:8px;color:var(--text-primary)}.form-group input:not(.factura-search-input),.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;transition:all .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.form-group-checkbox{display:flex;align-items:center;margin-bottom:16px}.form-group-checkbox label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.form-group-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.cfdis-stats{display:flex;gap:32px;background:var(--bg-primary);padding:20px 24px;border-radius:12px;margin-bottom:24px;box-shadow:var(--shadow)}.stat-item{display:flex;align-items:center;gap:12px}.stat-label{font-size:14px;color:var(--text-secondary)}.stat-item .stat-value{font-size:24px;font-weight:700;color:var(--text-primary)}.filters-card{background:var(--bg-primary);border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:var(--shadow)}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.filters-actions{display:flex;gap:12px;justify-content:flex-end}.cfdis-list{background:var(--bg-primary);border-radius:12px;padding:24px;box-shadow:var(--shadow)}.cfdis-header{margin-bottom:20px}.cfdis-table-container{overflow-x:auto}.cfdis-table{width:100%;border-collapse:collapse}.cfdis-table th{text-align:left;padding:12px;font-size:13px;font-weight:600;color:var(--text-secondary);border-bottom:2px solid var(--border)}.cfdis-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s,color .2s}.cfdis-table th.sortable:hover{background:var(--bg-tertiary);color:var(--primary)}.cfdis-table th.sortable.sorted{color:var(--primary);background:var(--bg-tertiary)}.sort-header{display:inline-flex;align-items:center;gap:4px}.sort-icon{opacity:.3;transition:opacity .2s}.cfdis-table th.sortable:hover .sort-icon,.cfdis-table th.sortable.sorted .sort-icon{opacity:1}.cfdis-table td{padding:12px;font-size:14px;border-bottom:1px solid var(--border)}.cfdis-table tr:hover{background:var(--bg-tertiary)}.cfdis-table tr.row-selected{background:#3b82f614}.cfdis-table tr.row-selected:hover{background:#3b82f61f}.checkbox-cell{width:48px;text-align:center;padding:8px!important}.checkbox-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;cursor:pointer;color:var(--text-secondary);border-radius:6px;transition:all .15s}.checkbox-btn:hover{background:var(--bg-tertiary);color:var(--primary)}.checkbox-btn.checked{color:var(--primary)}.checkbox-btn .partial{opacity:.5}.selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;background:linear-gradient(135deg,#0f172a,#1e3a5f);border-radius:12px;margin-bottom:20px;color:#fff;box-shadow:var(--shadow-lg)}.selection-info{display:flex;align-items:center;gap:12px;font-size:14px}.selection-info strong{font-size:18px;color:#38bdf8}.btn-link-small{background:transparent;border:none;color:#94a3b8;font-size:13px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .15s}.btn-link-small:hover{color:#fff;background:#ffffff1a}.selection-actions{display:flex;align-items:center;gap:12px}.btn-export{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .15s}.btn-export:hover:not(:disabled){background:#fff3;border-color:#ffffff4d}.btn-export:disabled{opacity:.6;cursor:not-allowed}.export-progress{font-size:12px;opacity:.8;margin-left:4px}.export-dropdown{position:relative}.export-dropdown-content{position:absolute;top:100%;right:0;margin-top:8px;background:#fff;border-radius:8px;box-shadow:0 10px 25px #0003;min-width:160px;overflow:hidden;z-index:100;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .15s}.export-dropdown:hover .export-dropdown-content{opacity:1;visibility:visible;transform:translateY(0)}.export-dropdown-content button{display:block;width:100%;padding:12px 16px;background:transparent;border:none;text-align:left;font-size:14px;color:var(--text-primary);cursor:pointer;transition:background .15s}.export-dropdown-content button:hover:not(:disabled){background:var(--bg-tertiary)}.export-dropdown-content button:disabled{opacity:.5;cursor:not-allowed}.export-loading{display:flex;align-items:center;gap:8px;font-size:13px;color:#94a3b8}.export-loading .spin{animation:spin 1s linear infinite}.file-name{font-family:Courier New,monospace;color:var(--primary)}.s3-path code{font-size:12px;color:var(--text-secondary)}.load-more{text-align:center;margin-top:20px;padding-top:20px;border-top:1px solid var(--border)}.btn-primary,.btn-secondary,.btn-outline,.btn-outline-sm,.btn-icon,.btn-link{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline:hover{background:var(--bg-tertiary)}.btn-outline-sm{padding:6px 12px;font-size:13px;background:transparent;border:1px solid var(--border);color:var(--text-primary)}.btn-outline-sm:hover{background:var(--bg-tertiary)}.btn-icon{padding:8px;background:transparent;color:var(--text-secondary)}.btn-danger{color:var(--danger)}.btn-danger:hover{background:#fee2e2}.btn-link{background:transparent;color:var(--primary);padding:4px 8px}.btn-link:hover{text-decoration:underline}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:var(--bg-primary);border-radius:12px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:20px;color:var(--text-primary)}.modal form{padding:24px}.error-message,.success-message{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.error-message{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.success-message{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.loading-container,.error-container,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:64px 32px;text-align:center}.spinner{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state svg{color:var(--text-secondary);opacity:.5;margin-bottom:16px}.empty-state h3{font-size:20px;color:var(--text-primary);margin-bottom:8px}.empty-state p{color:var(--text-secondary);margin-bottom:20px}.sidebar-footer{position:absolute;bottom:0;left:0;right:0;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-primary)}.user-menu-container{position:relative}.user-info-button{width:100%;display:flex;align-items:center;gap:8px;padding:8px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s}.user-info-button:hover{background:var(--bg-tertiary);border-color:var(--border)}.user-info{display:flex;align-items:center;gap:12px;flex:1}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#3b82f6);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.user-details{flex:1;min-width:0;text-align:left}.user-name{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-plan{font-size:12px;color:var(--text-secondary)}.chevron{color:var(--text-secondary);transition:transform .2s;flex-shrink:0}.chevron.open{transform:rotate(180deg)}.user-dropdown{position:absolute;bottom:100%;left:0;right:0;margin-bottom:8px;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #00000026;padding:8px;z-index:1000}.user-dropdown-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;transition:background .2s;text-align:left;width:100%;border:none;background:transparent;cursor:default}.user-dropdown-info{flex-direction:column;align-items:flex-start;gap:4px}.dropdown-label{font-size:11px;color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.dropdown-value{font-size:13px;color:var(--text-primary);font-weight:500}.user-dropdown-divider{height:1px;background:var(--border);margin:4px 0}.user-dropdown-logout{cursor:pointer;color:var(--danger);font-weight:600;font-size:14px}.user-dropdown-logout:hover{background:#ef44441a}.user-dropdown-logout svg{flex-shrink:0}@media (max-width: 1024px){.downloads-container{grid-template-columns:1fr}.sidebar{width:200px}.main-content{margin-left:200px}}@media (max-width: 768px){.sidebar{display:none}.main-content{margin-left:0;padding:16px}.stats-grid,.clients-grid,.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:12px}}.header-actions{display:flex;gap:8px}.filters-grid-extended{grid-template-columns:repeat(6,1fr)}@media (max-width: 1200px){.filters-grid-extended{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.filters-grid-extended{grid-template-columns:1fr 1fr}}.cfdis-table-full{min-width:1200px}.cfdis-table-full th,.cfdis-table-full td{padding:10px 12px;white-space:nowrap}.text-right{text-align:right!important}.date-cell{font-size:13px;color:var(--text-secondary)}.month-cell{font-size:13px}.rfc-cell{min-width:180px}.rfc-info{display:flex;flex-direction:column;gap:2px}.rfc-code{font-family:Courier New,monospace;font-size:12px;font-weight:600;color:var(--primary)}.rfc-name{font-size:11px;color:var(--text-secondary);max-width:160px;overflow:hidden;text-overflow:ellipsis}.amount-cell{font-family:Courier New,monospace;font-size:13px}.iva-cell{color:var(--text-secondary)}.total-cell{color:var(--success);font-size:14px}.tipo-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600;color:#fff;text-transform:uppercase}.estado-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.estado-vigente{background:#d1fae5;color:#065f46}.estado-cancelado{background:#fee2e2;color:#991b1b}.deducible-cell{min-width:120px}.deducible-wrapper{display:flex;flex-direction:column;gap:4px}.deducible-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;cursor:help}.deducible-si{background:#d1fae5;color:#065f46}.deducible-parcial{background:#fef3c7;color:#92400e}.deducible-no{background:#fee2e2;color:#991b1b}.deducible-revisar{background:#f3f4f6;color:#6b7280;border:1px dashed #9ca3af}.categoria-badge{display:inline-block;padding:2px 6px;border-radius:6px;font-size:9px;font-weight:500;background:#f1f5f9;color:#475569;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metodo-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;font-size:8px;font-weight:600;cursor:help;transition:all .2s}.metodo-badge.metodo-ai{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;box-shadow:0 1px 3px #8b5cf64d}.metodo-badge.metodo-ai:hover{transform:scale(1.1);box-shadow:0 2px 6px #8b5cf666}.metodo-badge.metodo-reglas{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;box-shadow:0 1px 3px #0ea5e94d}.metodo-badge.metodo-reglas:hover{transform:scale(1.1);box-shadow:0 2px 6px #0ea5e966}.clasificacion-compact{position:relative;display:inline-flex}.clasificacion-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;cursor:help;transition:all .2s ease;white-space:nowrap}.clasificacion-badge .badge-text{line-height:1}.clasificacion-badge .ai-indicator{opacity:.8;margin-left:2px}.clasificacion-badge.deducible-si{background:linear-gradient(135deg,#dcfce7,#bbf7d0);color:#166534;border:1px solid #86efac}.clasificacion-badge.deducible-parcial{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:1px solid #fcd34d}.clasificacion-badge.deducible-no{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;border:1px solid #fca5a5}.clasificacion-badge.deducible-revisar{background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#9a3412;border:1px solid #fdba74}.clasificacion-badge.ingreso-badge{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#1e40af;border:1px solid #93c5fd}.clasificacion-badge.pago-badge{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border:1px solid #fbbf24}.clasificacion-badge.nomina-badge{background:linear-gradient(135deg,#ede9fe,#ddd6fe);color:#5b21b6;border:1px solid #a78bfa}.clasificacion-badge.ai-classified{box-shadow:0 0 0 2px #8b5cf64d}.clasificacion-badge.ai-classified .ai-indicator{color:#7c3aed}.clasificacion-compact:hover .clasificacion-badge{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.btn-reclasificar{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;margin-left:6px;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:50%;color:#475569;cursor:pointer;transition:all .2s ease}.btn-reclasificar:hover{background:#e2e8f0;color:#475569;transform:rotate(-45deg)}.btn-reclasificar:disabled{opacity:.5;cursor:not-allowed}.btn-reclasificar .spin{animation:spin 1s linear infinite}.clasificacion-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);width:320px;max-width:90vw;padding:0;background:#1e293b;border-radius:12px;font-size:12px;box-shadow:0 20px 40px #0000004d;opacity:0;visibility:hidden;transition:all .2s ease;z-index:1000;pointer-events:none;overflow:hidden}.clasificacion-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:#1e293b}.clasificacion-compact:hover .clasificacion-tooltip{opacity:1;visibility:visible}.tooltip-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#0f172a;border-bottom:1px solid #334155}.tooltip-badge{padding:4px 10px;border-radius:12px;font-size:11px;font-weight:700}.tooltip-badge.deducible-si{background:#22c55e;color:#fff}.tooltip-badge.deducible-parcial{background:#f59e0b;color:#fff}.tooltip-badge.deducible-no{background:#ef4444;color:#fff}.tooltip-badge.deducible-revisar{background:#f97316;color:#fff}.tooltip-metodo{padding:3px 8px;border-radius:10px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.tooltip-metodo.ai{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.tooltip-metodo.reglas{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff}.tooltip-row{display:flex;justify-content:space-between;padding:8px 14px;border-bottom:1px solid #334155}.tooltip-row:last-of-type{border-bottom:none}.tooltip-label{color:#94a3b8;font-size:11px}.tooltip-value{color:#f1f5f9;font-weight:500;text-align:right;max-width:150px;overflow:hidden;text-overflow:ellipsis}.tooltip-motivo{padding:10px 14px;background:#0f172a;border-top:1px solid #334155}.tooltip-motivo .tooltip-label{display:block;margin-bottom:6px;text-transform:uppercase;font-size:10px;letter-spacing:.5px}.tooltip-motivo-text{display:block;color:#e2e8f0;font-size:12px;line-height:1.6;word-wrap:break-word;white-space:pre-wrap}.tooltip-confianza{padding:8px 14px;background:linear-gradient(135deg,#22c55e1a,#22c55e0d);color:#22c55e;font-weight:600;font-size:11px;text-align:center;border-top:1px solid #334155}.btn-clasificar{padding:4px 8px!important;background:#f1f5f9;color:#64748b;border:1px dashed #cbd5e1;border-radius:6px;transition:all .2s}.btn-clasificar:hover{background:#3b82f6!important;color:#fff!important;border-style:solid;border-color:#3b82f6}.deducible-col{min-width:100px;text-align:center}.actions-cell{display:flex;gap:4px}.actions-cell .btn-icon{padding:6px;border-radius:6px}.actions-cell .btn-icon:hover{background:var(--primary);color:#fff}.modal-content{background:var(--bg-primary);border-radius:12px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-large{width:90%;max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h2{display:flex;align-items:center;gap:12px;font-size:18px;margin:0}.modal-body{flex:1;overflow-y:auto;padding:0}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--border);background:var(--bg-secondary)}.preview-info{padding:16px 24px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.preview-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;font-size:13px}.preview-info-grid strong{color:var(--text-secondary);font-weight:500}.xml-preview{margin:0;padding:20px 24px;font-family:Courier New,monospace;font-size:12px;line-height:1.6;background:#1e1e1e;color:#d4d4d4;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;min-height:300px;max-height:400px}@media (max-width: 768px){.preview-info-grid{grid-template-columns:repeat(2,1fr)}.modal-large{width:95%}}.form-help{display:block;margin-top:6px;font-size:12px;color:var(--text-secondary)}.info-highlight{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:16px!important}.info-warning{background:#fefce8;border:1px solid #fef08a;border-radius:8px;padding:16px!important}.info-item h4{display:flex;align-items:center;gap:6px}.tipos-list{list-style:none;margin:12px 0;padding:0}.tipos-list li{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.tipos-list .tipo-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;font-size:11px;font-weight:600;color:#fff}.tipo-ingreso{background:#10b981}.tipo-egreso{background:#ef4444}.tipo-traslado{background:#3b82f6}.tipo-nomina{background:#8b5cf6}.tipo-pago{background:#f59e0b}.btn-pdf{color:#dc2626}.btn-pdf:hover{background:#fef2f2;color:#b91c1c}.btn-pdf-download{color:#059669}.btn-pdf-download:hover{background:#ecfdf5;color:#047857}.btn-pdf-download:disabled{opacity:.6;cursor:not-allowed}.modal-pdf .modal-body{background:#e2e8f0;padding:24px}.pdf-body{overflow-y:auto;max-height:65vh}.cfdi-document-pro{background:#fff;max-width:800px;margin:0 auto;border-radius:8px;box-shadow:0 4px 20px #00000026;overflow:hidden}.cfdi-header-pro{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;background:linear-gradient(135deg,#0f172a,#1e3a5f);color:#fff}.cfdi-header-left{display:flex;align-items:center;gap:20px}.cfdi-logo{display:flex;align-items:center;gap:8px}.logo-icon{font-size:28px;color:#38bdf8}.logo-text{font-size:20px;font-weight:700;letter-spacing:-.5px}.cfdi-title{font-size:14px;color:#94a3b8;border-left:1px solid #475569;padding-left:20px}.cfdi-header-right{display:flex;gap:10px}.cfdi-tipo-badge{padding:6px 16px;border-radius:20px;color:#fff;font-weight:600;font-size:13px;text-transform:uppercase}.cfdi-estado-badge{padding:6px 16px;border-radius:20px;font-weight:600;font-size:13px}.cfdi-estado-badge.estado-ok{background:#10b981;color:#fff}.cfdi-estado-badge.estado-cancel{background:#ef4444;color:#fff}.cfdi-folio-section{padding:20px 25px;background:#f8fafc;border-bottom:1px solid #e2e8f0;text-align:center}.folio-label{font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px}.folio-value{font-size:18px;font-weight:700;color:#0f172a;font-family:Consolas,Monaco,monospace;letter-spacing:.5px}.folio-fecha{margin-top:12px;display:flex;justify-content:center;gap:30px;font-size:13px;color:#64748b}.folio-fecha strong{color:#1e293b}.cfdi-parties{display:flex;padding:20px 25px;gap:15px;align-items:stretch;border-bottom:1px solid #e2e8f0}.cfdi-party{flex:1;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.cfdi-party.emisor{border-left:4px solid #3b82f6}.cfdi-party.receptor{border-left:4px solid #10b981}.party-header{padding:10px 15px;background:#f1f5f9;font-size:11px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;gap:6px}.party-icon{font-size:10px}.party-content{padding:15px}.party-rfc{font-size:16px;font-weight:700;color:#0f172a;margin-bottom:4px;font-family:Consolas,Monaco,monospace}.party-name{font-size:13px;color:#475569;line-height:1.4}.party-uso{margin-top:8px;font-size:12px;color:#64748b;padding-top:8px;border-top:1px dashed #e2e8f0}.cfdi-party-arrow{display:flex;align-items:center;font-size:24px;color:#cbd5e1}.cfdi-details-grid{display:grid;grid-template-columns:repeat(4,1fr);padding:15px 25px;gap:15px;background:#fafbfc;border-bottom:1px solid #e2e8f0}.detail-box{text-align:center;padding:10px}.detail-label{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.detail-value{font-size:14px;font-weight:600;color:#1e293b}.cfdi-totals-pro{padding:20px 25px;border-bottom:1px solid #e2e8f0}.totals-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:1px;margin-bottom:15px}.totals-table{background:#f8fafc;border-radius:8px;overflow:hidden}.totals-row{display:flex;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #e2e8f0}.totals-row:last-child{border-bottom:none}.totals-label{font-size:13px;color:#475569}.totals-value{font-size:14px;font-weight:600;color:#1e293b;font-family:Consolas,Monaco,monospace}.totals-row.iva-row{background:#f0f9ff}.totals-row.retencion-row{background:#fff7ed}.totals-row.retencion-row .totals-value{color:#ea580c}.totals-row.total-row{background:linear-gradient(135deg,#0f172a,#1e3a5f)}.totals-row.total-row .totals-label{color:#94a3b8;font-weight:600}.totals-row.total-row .totals-value.total-amount{color:#38bdf8;font-size:20px;font-weight:700}.cfdi-verification{display:flex;padding:20px 25px;gap:20px;border-bottom:1px solid #e2e8f0}.qr-section{width:120px;text-align:center}.qr-placeholder{width:100px;height:100px;margin:0 auto 8px;background:#f1f5f9;border:2px dashed #cbd5e1;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center}.qr-icon{font-size:32px;color:#94a3b8}.qr-placeholder span{font-size:10px;color:#94a3b8}.qr-image{width:120px;height:120px;border-radius:8px;border:2px solid #e2e8f0;transition:transform .2s,box-shadow .2s}.qr-image:hover{transform:scale(1.05);box-shadow:0 4px 12px #00000026}.qr-section a{display:block}.qr-text{font-size:10px;color:#64748b;margin-top:8px}.sellos-section{flex:1}.sello-item{margin-bottom:12px}.sello-label{font-size:10px;color:#64748b;margin-bottom:4px}.sello-value{font-size:10px;font-family:Consolas,Monaco,monospace;color:#475569;word-break:break-all;background:#f8fafc;padding:8px;border-radius:4px;border:1px solid #e2e8f0;max-height:80px;overflow-y:auto}.sello-inline{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0;border-top:1px dashed #e2e8f0;margin-top:8px}.sello-label-inline{font-size:10px;color:#64748b;font-weight:500}.sello-value-inline{font-size:11px;font-family:Consolas,Monaco,monospace;color:#3b82f6;background:#f1f5f9;padding:2px 8px;border-radius:4px}.cfdi-footer-pro{padding:15px 25px;text-align:center}.footer-line{height:3px;background:linear-gradient(90deg,transparent,#3b82f6,#10b981,transparent);margin-bottom:15px;border-radius:2px}.footer-text{font-size:11px;color:#64748b;margin-bottom:5px}.footer-brand{font-size:12px;color:#94a3b8}.footer-brand strong{color:#3b82f6}@media (max-width: 768px){.cfdi-header-pro{flex-direction:column;gap:15px;text-align:center}.cfdi-header-left{flex-direction:column;gap:10px}.cfdi-title{border-left:none;padding-left:0}.cfdi-parties{flex-direction:column}.cfdi-party-arrow{transform:rotate(90deg);justify-content:center}.cfdi-details-grid{grid-template-columns:repeat(2,1fr)}.cfdi-verification{flex-direction:column;align-items:center}.qr-section{width:100%;margin-bottom:15px}.folio-fecha{flex-direction:column;gap:8px}}.cfdi-conceptos-section{padding:20px 25px;border-bottom:1px solid #e2e8f0}.conceptos-title{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:1px;margin-bottom:15px}.conceptos-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.conceptos-table{width:100%;border-collapse:collapse;font-size:12px}.conceptos-table th{background:linear-gradient(135deg,#0f172a,#1e3a5f);color:#fff;padding:12px 14px;text-align:left;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.5px}.conceptos-table th.col-cant{width:60px;text-align:center}.conceptos-table th.col-clave{width:110px}.conceptos-table th.col-desc{min-width:200px}.conceptos-table th.col-unit,.conceptos-table th.col-imp{width:110px;text-align:right}.conceptos-table td{padding:12px 14px;border-bottom:1px solid #e2e8f0;vertical-align:top}.conceptos-table tr:nth-child(2n){background:#f8fafc}.conceptos-table tr:hover{background:#f1f5f9}.conceptos-table td.col-cant{text-align:center;font-weight:600;color:#0f172a}.conceptos-table td.col-unit,.conceptos-table td.col-imp{text-align:right;font-family:Consolas,Monaco,monospace;font-weight:500}.conceptos-table td.col-imp{color:#10b981;font-weight:600}.clave-prod{display:block;font-family:Consolas,Monaco,monospace;font-size:11px;color:#3b82f6;font-weight:600}.clave-unidad{display:block;font-size:10px;color:#64748b;margin-top:3px;background:#f1f5f9;padding:2px 6px;border-radius:4px;display:inline-block}.desc-text{color:#1e293b;line-height:1.5}.desc-id{font-size:10px;color:#64748b;margin-top:4px;font-style:italic}.pdf-body .loading-container{min-height:400px;background:#fff;border-radius:8px}@media print{.modal-overlay{position:static;background:none}.modal-content{box-shadow:none;max-width:none;max-height:none}.modal-header,.modal-footer{display:none}.cfdi-document-pro{box-shadow:none;border:1px solid #e2e8f0}.conceptos-table th{background:#0f172a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.csf-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.csf-modal{background:#fff;border-radius:12px;width:100%;max-width:900px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.csf-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#0f172a,#1e3a5f);border-radius:12px 12px 0 0}.csf-header-info{display:flex;align-items:center;gap:12px;color:#fff}.csf-header-info h2{font-size:18px;font-weight:600;margin:0}.csf-rfc{font-size:13px;opacity:.8}.csf-modal-header .btn-close{background:#ffffff1a;border:none;color:#fff;padding:8px;border-radius:6px;cursor:pointer;transition:background .2s}.csf-modal-header .btn-close:hover{background:#fff3}.csf-modal-body{flex:1;overflow-y:auto;padding:24px}.csf-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;margin-bottom:16px;font-size:14px}.csf-error button{margin-left:auto;background:none;border:none;color:#dc2626;cursor:pointer;padding:4px}.csf-actions-section{margin-bottom:24px;padding:16px;background:#f8fafc;border-radius:8px}.csf-action-buttons{display:flex;gap:12px;flex-wrap:wrap}.csf-action-btn{display:flex;align-items:center;gap:8px}.csf-idcif-input{margin-top:16px;padding-top:16px;border-top:1px solid #e2e8f0}.csf-idcif-input label{display:block;font-size:13px;font-weight:500;color:#475569;margin-bottom:8px}.csf-idcif-row{display:flex;gap:8px}.csf-idcif-row .input-field{flex:1;padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px}.csf-last-updated{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:12px;color:#64748b}.csf-section{margin-bottom:24px}.csf-section.csf-highlight{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #93c5fd;border-radius:12px;padding:16px;margin-bottom:24px}.csf-actividad-principal{display:flex;flex-direction:column;gap:8px}.actividad-principal-content{display:flex;flex-direction:column;gap:4px}.actividad-principal-content .actividad-descripcion{font-size:18px;font-weight:600;color:#1e40af}.actividad-principal-content .actividad-codigo{font-size:14px;color:#3b82f6;font-weight:500}.csf-help-text{font-size:12px;color:#64748b;margin-top:4px}.csf-section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#0f172a}.csf-section-header h3{font-size:16px;font-weight:600;margin:0}.csf-empty{color:#94a3b8;font-size:14px;text-align:center;padding:20px;background:#f8fafc;border-radius:8px}.csf-regimenes-list{display:flex;flex-direction:column;gap:8px}.csf-regimen-card{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#f0fdf4;border:1px solid #86efac;border-radius:8px}.regimen-codigo{background:#10b981;color:#fff;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;min-width:40px;text-align:center}.regimen-info{flex:1}.regimen-descripcion{font-weight:500;color:#0f172a;display:block}.regimen-fecha{font-size:12px;color:#64748b}.csf-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.csf-table{width:100%;border-collapse:collapse;font-size:13px}.csf-table th{background:#f1f5f9;padding:10px 12px;text-align:left;font-weight:600;color:#475569;border-bottom:1px solid #e2e8f0}.csf-table td{padding:10px 12px;border-bottom:1px solid #f1f5f9}.csf-table tr:hover{background:#f8fafc}.codigo-cell{font-family:Consolas,Monaco,monospace;color:#3b82f6;font-weight:500}.porcentaje-cell{font-weight:600;color:#10b981}.csf-obligaciones-list{display:flex;flex-direction:column;gap:12px}.csf-obligacion-card{padding:16px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;transition:border-color .2s}.csf-obligacion-card:hover{border-color:#3b82f6}.csf-obligacion-card.proximo{border-color:#f59e0b;background:#fffbeb}.csf-obligacion-card.urgente{border-color:#ef4444;background:#fef2f2}.obligacion-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.obligacion-descripcion{font-weight:500;color:#0f172a;line-height:1.4}.obligacion-periodicidad{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;text-transform:uppercase;white-space:nowrap}.obligacion-periodicidad.mensual{background:#dbeafe;color:#1d4ed8}.obligacion-periodicidad.anual{background:#f3e8ff;color:#7c3aed}.obligacion-periodicidad.bimestral{background:#dcfce7;color:#15803d}.obligacion-detalles{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:8px}.obligacion-dia,.obligacion-countdown{display:flex;align-items:center;gap:4px;font-size:12px;color:#64748b}.obligacion-countdown.urgente{color:#dc2626;font-weight:600}.obligacion-inicio{font-size:11px;color:#94a3b8}.csf-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #e2e8f0;background:#f8fafc;border-radius:0 0 12px 12px}.btn-csf{color:#7c3aed}.btn-csf:hover{background:#f3e8ff;color:#6d28d9}.form-help{display:block;font-size:12px;color:#64748b;margin-top:4px}.btn-validate{background:#10b98133!important;border-color:#10b98166!important}.btn-validate:hover:not(:disabled){background:#10b9814d!important;border-color:#10b98180!important}.estado-cell{white-space:nowrap}.estado-wrapper{display:flex;align-items:center;gap:6px}.estado-sat-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase}.estado-sat-badge.sat-vigente{background:#dcfce7;color:#15803d}.estado-sat-badge.sat-cancelado{background:#fee2e2;color:#dc2626}.estado-sat-badge.sat-pending{background:#f1f5f9;color:#94a3b8;padding:3px 5px}.has-tooltip{position:relative;cursor:help}.has-tooltip:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:6px 10px;border-radius:6px;font-size:11px;font-weight:500;text-transform:none;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:100;pointer-events:none;box-shadow:0 4px 12px #00000026}.has-tooltip:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1e293b;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;z-index:100}.has-tooltip:hover:after,.has-tooltip:hover:before{opacity:1;visibility:visible}.btn-validate-row{color:#64748b}.btn-validate-row:hover{background:#f0fdf4;color:#15803d}.btn-validate-row.validated-ok{color:#15803d}.btn-validate-row.validated-ok:hover{background:#dcfce7}.btn-validate-row.validated-cancel{color:#dc2626}.btn-validate-row.validated-cancel:hover{background:#fee2e2}.modal-validation{max-width:500px}.validation-progress{text-align:center;padding:40px 20px}.progress-spinner{margin-bottom:20px;color:var(--primary)}.validation-progress h3{font-size:18px;color:var(--text-primary);margin-bottom:24px}.progress-bar{height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:12px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--success));border-radius:4px;transition:width .3s ease}.progress-text{font-size:14px;color:var(--text-secondary)}.validation-results{padding:20px 0}.validation-results h3{font-size:16px;color:var(--text-primary);margin-bottom:20px;text-align:center}.validation-summary{display:flex;justify-content:center;gap:24px;margin-bottom:24px}.summary-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 24px;border-radius:12px;min-width:100px}.summary-item.summary-success{background:#dcfce7;color:#15803d}.summary-item.summary-warning{background:#fef3c7;color:#d97706}.summary-item.summary-error{background:#fee2e2;color:#dc2626}.summary-count{font-size:28px;font-weight:700;line-height:1}.summary-label{font-size:12px;font-weight:500}.validation-alert{display:flex;gap:12px;padding:16px;border-radius:8px;margin-bottom:12px}.validation-alert.alert-warning{background:#fffbeb;border:1px solid #fcd34d;color:#92400e}.validation-alert.alert-error{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.validation-alert strong{display:block;margin-bottom:8px}.validation-alert ul{margin:0;padding-left:20px;font-size:13px}.validation-alert li{margin-bottom:4px}.dashboard-tabs-container{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.dashboard-tabs{display:flex;gap:8px;background:var(--bg-primary);padding:8px;border-radius:12px;border:1px solid var(--border)}.year-filter{display:flex;align-items:center;gap:8px;background:var(--bg-primary);padding:8px 16px;border-radius:12px;border:1px solid var(--border);color:var(--text-secondary)}.year-filter label{font-size:14px;font-weight:500}.year-select{padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;font-weight:600;cursor:pointer;min-width:90px}.year-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.year-select:hover{border-color:var(--primary)}.tab-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;border-radius:8px;cursor:pointer;transition:all .2s}.financial-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}@media (max-width: 1200px){.financial-summary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.financial-summary-grid{grid-template-columns:1fr}}.financial-card{background:var(--bg-primary);border-radius:12px;padding:20px;border:1px solid var(--border);transition:transform .2s,box-shadow .2s}.financial-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.financial-card.income{border-left:4px solid #22c55e}.financial-card.expense{border-left:4px solid #ef4444}.financial-card.profit{border-left:4px solid #3b82f6}.financial-card.iva-favor{border-left:4px solid #22c55e;background:linear-gradient(135deg,#f0fdf4,#fff)}.financial-card.iva-contra{border-left:4px solid #f59e0b;background:linear-gradient(135deg,#fffbeb,#fff)}.financial-card-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:var(--text-secondary);font-size:14px;font-weight:500}.financial-card-value{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.financial-card-change{font-size:13px;font-weight:500}.financial-card-change.positive{color:#22c55e}.financial-card-change.negative{color:#ef4444}.financial-card-subtitle{font-size:12px;color:var(--text-secondary)}.chart-container{background:var(--bg-primary);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid var(--border)}.chart-container h3{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;margin-bottom:20px;color:var(--text-primary)}.chart-tooltip{background:#fffffffa;border:1px solid var(--border);border-radius:8px;padding:12px 16px;box-shadow:var(--shadow-lg)}.chart-tooltip-label{font-weight:600;margin-bottom:8px;color:var(--text-primary)}.chart-tooltip p{font-size:13px;margin:4px 0}.summary-table-container{background:var(--bg-primary);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid var(--border)}.summary-table-container h3{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;margin-bottom:16px}.summary-table{width:100%;border-collapse:collapse}.summary-table th{text-align:left;padding:12px 16px;font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border)}.summary-table td{padding:14px 16px;border-bottom:1px solid var(--border);font-size:14px}.summary-table .text-right{text-align:right}.summary-table .income-value{color:#22c55e;font-weight:500}.summary-table .expense-value{color:#ef4444;font-weight:500}.summary-table .positive{color:#22c55e}.summary-table .negative{color:#ef4444}.summary-table .highlight-row{background:var(--bg-tertiary)}.summary-table .highlight-row td{border-bottom:2px solid var(--border)}.tax-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}@media (max-width: 900px){.tax-cards-grid{grid-template-columns:1fr}}.tax-card{background:var(--bg-primary);border-radius:12px;padding:24px;border:1px solid var(--border);text-align:center}.tax-card.favor{background:linear-gradient(135deg,#f0fdf4,#fff);border-color:#86efac}.tax-card.contra{background:linear-gradient(135deg,#fffbeb,#fff);border-color:#fcd34d}.tax-card h4{font-size:14px;font-weight:500;color:var(--text-secondary);margin-bottom:12px}.tax-value{font-size:32px;font-weight:700;margin-bottom:8px}.tax-value.income-value{color:#22c55e}.tax-value.expense-value{color:#ef4444}.tax-description{font-size:12px;color:var(--text-secondary)}.projections-container{background:var(--bg-primary);border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid var(--border)}.projections-container h3{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;margin-bottom:8px}.projections-disclaimer{font-size:12px;color:var(--text-secondary);font-style:italic;margin-bottom:20px}.projections-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}@media (max-width: 1200px){.projections-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 768px){.projections-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 500px){.projections-grid{grid-template-columns:1fr}}.projection-card{background:var(--bg-tertiary);border-radius:10px;padding:16px;text-align:center}.projection-card.highlight{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #93c5fd}.projection-header{font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:8px}.projection-value{font-size:20px;font-weight:700;color:var(--text-primary)}.projection-value.income-value{color:#22c55e}.projection-value.expense-value{color:#ef4444}.projection-note{font-size:11px;color:var(--text-secondary);margin-top:6px}.financial-tab,.taxes-tab{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.recharts-legend-wrapper{padding-top:10px!important}.recharts-legend-item-text{color:var(--text-secondary)!important;font-size:13px!important}.recharts-cartesian-axis-tick-value{fill:var(--text-secondary);font-size:12px}.settings{padding:0}.settings-tabs{display:flex;gap:4px;padding:0 24px;margin-bottom:0;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);overflow-x:auto}.settings-tab{display:flex;align-items:center;gap:8px;padding:14px 20px;background:transparent;border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;margin-bottom:-1px}.settings-tab:hover{color:var(--text-primary);background:rgba(var(--primary-rgb),.05)}.settings-tab.active{color:var(--primary-color);border-bottom-color:var(--primary-color);background:var(--bg-card)}.settings-tab svg{flex-shrink:0}@media (max-width: 768px){.settings-tabs{padding:0 16px}.settings-tab{padding:12px 16px;font-size:13px}.settings-tab span{display:none}.settings-tab svg{width:20px;height:20px}}.settings-container{max-width:800px;margin:0 auto;padding:24px}.settings-card{background:var(--bg-card);border-radius:12px;border:1px solid var(--border-color);padding:24px;margin-bottom:24px}.settings-card-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-color)}.settings-card-icon{width:48px;height:48px;border-radius:12px;background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-card-header h2{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--text-primary)}.settings-card-header p{margin:0;font-size:14px;color:var(--text-secondary)}.settings-section{display:flex;flex-direction:column;gap:20px}.setting-item{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:16px;background:var(--bg-secondary);border-radius:8px}.setting-label{flex:1}.setting-title{display:block;font-weight:500;color:var(--text-primary);margin-bottom:4px}.setting-description{display:block;font-size:13px;color:var(--text-secondary)}.setting-control{flex-shrink:0}.setting-select{padding:8px 12px;border:1px solid var(--border-color);border-radius:6px;background:var(--bg-card);color:var(--text-primary);font-size:14px;min-width:200px;cursor:pointer}.setting-select:disabled{opacity:.5;cursor:not-allowed}.setting-checkboxes{display:flex;gap:12px}.checkbox-card{display:flex;cursor:pointer}.checkbox-card input{display:none}.checkbox-card-content{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-card);border:2px solid var(--border-color);border-radius:8px;color:var(--text-secondary);transition:all .2s ease}.checkbox-card input:checked+.checkbox-card-content{background:var(--primary-light);border-color:var(--primary-color);color:var(--primary-color)}.checkbox-card.disabled .checkbox-card-content{opacity:.5;cursor:not-allowed}.toggle{position:relative;display:inline-block;width:52px;height:28px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--border-color);transition:.3s;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:22px;width:22px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%;box-shadow:0 2px 4px #0003}.toggle input:checked+.toggle-slider{background-color:var(--primary-color)}.toggle input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-with-status{display:flex;align-items:center;gap:12px}.toggle-status{font-size:13px;font-weight:600;padding:4px 10px;border-radius:6px;transition:all .2s ease;min-width:70px;text-align:center}.toggle-status.status-active{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.toggle-status.status-inactive{background:#6b728026;color:#6b7280;border:1px solid rgba(107,114,128,.3)}.validation-status-box{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:24px}.validation-status-header{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-secondary);margin-bottom:12px}.validation-status-header svg{color:var(--primary)}.validation-status-content{display:flex;flex-direction:column;gap:12px}.validation-status-date{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.validation-status-stats{display:flex;gap:16px;flex-wrap:wrap}.validation-stat{display:flex;align-items:center;gap:6px;background:var(--bg-primary);padding:8px 14px;border-radius:8px;border:1px solid var(--border)}.validation-stat .stat-value{font-size:18px;font-weight:700;color:var(--text-primary)}.validation-stat .stat-label{font-size:12px;color:var(--text-secondary)}.validation-stat.stat-success{background:#10b9811a;border-color:#10b9814d}.validation-stat.stat-success svg,.validation-stat.stat-success .stat-value{color:var(--success)}.validation-stat.stat-danger{background:#ef44441a;border-color:#ef44444d}.validation-stat.stat-danger svg,.validation-stat.stat-danger .stat-value{color:var(--danger)}.validation-stat.stat-warning{background:#f59e0b1a;border-color:#f59e0b4d}.validation-stat.stat-warning svg,.validation-stat.stat-warning .stat-value{color:var(--warning)}.validation-stat.stat-muted{opacity:.6}.validation-status-empty{font-size:13px;color:var(--text-secondary);font-style:italic}.settings-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border-color)}.settings-info{background:var(--bg-secondary);border-radius:12px;padding:20px 24px}.settings-info h3{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.settings-info ul{margin:0;padding:0;list-style:none}.settings-info li{padding:8px 0;font-size:14px;color:var(--text-secondary);border-bottom:1px solid var(--border-color)}.settings-info li:last-child{border-bottom:none}.settings-info strong{color:var(--text-primary)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary);gap:16px}.loading-container svg{color:var(--primary-color)}.settings-card-icon.ai-icon{background:linear-gradient(135deg,#8b5cf6,#a855f7)}.credits-loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:40px;color:var(--text-secondary)}.credits-container{padding:0 24px 24px}.credits-plan-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:2px solid;border-radius:20px;font-size:14px;font-weight:600;margin-bottom:20px;background:var(--bg-secondary)}.credits-progress-section{margin-bottom:24px}.credits-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.credits-label,.credits-count{font-size:14px;color:var(--text-secondary)}.credits-count strong{font-size:16px;color:var(--text-primary)}.credits-progress-bar{height:12px;background:var(--bg-tertiary);border-radius:6px;overflow:hidden}.credits-progress-fill{height:100%;border-radius:6px;transition:width .5s ease,background-color .3s ease}.credits-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px}.credits-stat{text-align:center;padding:16px;background:var(--bg-secondary);border-radius:12px}.credits-stat-value{font-size:28px;font-weight:700;margin-bottom:4px}.credits-stat-value.available{color:#10b981}.credits-stat-value.used{color:#6b7280}.credits-stat-value.total{color:#3b82f6}.credits-stat-label{font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.credits-reset-info{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#f0f9ff;border-radius:8px;font-size:13px;color:#0369a1;margin-bottom:16px}.credits-alert{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:13px;color:#dc2626;margin-bottom:16px}.credits-info-box{background:var(--bg-secondary);border-radius:12px;padding:16px 20px;margin-bottom:20px}.credits-info-box h4{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:12px}.credits-info-box ul{margin:0;padding-left:20px}.credits-info-box li{font-size:13px;color:var(--text-secondary);margin-bottom:6px}.credits-info-box li:last-child{margin-bottom:0}.credits-info-box strong{color:var(--text-primary)}.settings-card-icon.tickets-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.tickets-admin-content{padding:20px 0}.tickets-admin-description{padding:16px 20px;background:var(--bg-secondary);border-radius:8px;margin-bottom:20px}.tickets-admin-description p{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:0}.tickets-admin-actions{display:flex;justify-content:center;padding:20px 0}.tickets-admin-actions .btn-lg{padding:14px 28px;font-size:15px;gap:10px}.tickets-info-box{background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;padding:16px 20px;margin-top:20px}.tickets-info-box h4{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#b45309;margin-bottom:12px}.tickets-info-box p{font-size:13px;color:#92400e;margin-bottom:10px}.tickets-info-box ul{list-style:none;padding:0;margin:0}.tickets-info-box li{font-size:13px;color:#78350f;padding:4px 0 4px 20px;position:relative}.tickets-info-box li:before{content:"•";position:absolute;left:6px;color:#d97706}.tickets-info-box strong{color:#92400e;font-weight:600}.settings-card-icon.portal-icon{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.portal-config-content{display:flex;flex-direction:column;gap:20px}.portal-codes-grid{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}@media (max-width: 600px){.portal-codes-grid{grid-template-columns:1fr}}.code-box{background:linear-gradient(135deg,#3b82f614,#3b82f605);border:1px solid rgba(59,130,246,.2);border-radius:12px;padding:20px}.code-box label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.code-value{display:flex;align-items:center;gap:12px}.code-text{font-size:32px;font-weight:700;letter-spacing:6px;color:var(--primary);font-family:SF Mono,Monaco,Cascadia Code,monospace}.code-hint{display:block;font-size:12px;color:var(--text-secondary);margin-top:8px}.qr-box{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;background:#fff;border:1px solid var(--border);border-radius:12px}.qr-box .qr-image{width:100px;height:100px;border-radius:8px}.url-box-full{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px}.url-box-full label{display:block;font-size:12px;font-weight:600;color:var(--text-secondary);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.url-value{display:flex;align-items:center;gap:10px}.url-text{font-size:13px;color:var(--text-primary);word-break:break-all;flex:1;font-family:SF Mono,Monaco,Cascadia Code,monospace;background:var(--bg-secondary);padding:10px 14px;border-radius:8px}.btn-copy,.btn-external{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-secondary);cursor:pointer;transition:all .2s ease;flex-shrink:0}.btn-copy:hover,.btn-external:hover{background:var(--bg-secondary);color:var(--primary);border-color:var(--primary)}.btn-copy svg,.btn-external svg{width:18px;height:18px}.portal-branding-section{background:var(--bg-secondary);border-radius:12px;padding:24px}.branding-header h4{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--text-primary);margin:0 0 6px}.branding-description{font-size:13px;color:var(--text-secondary);margin:0 0 20px}.branding-form{display:flex;flex-direction:column;gap:20px}.branding-field{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px}.branding-field label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.branding-field .field-hint{font-size:12px;color:var(--text-secondary);margin:0 0 12px}.branding-field .form-input{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;transition:border-color .2s}.branding-field .form-input:focus{outline:none;border-color:var(--primary)}.period-selector{display:flex;align-items:center;gap:12px;margin-top:8px}.period-input{width:100px!important;text-align:center}.period-label{font-weight:500;color:var(--text-secondary)}.period-equiv{color:var(--text-secondary);font-size:13px;font-style:italic}.period-quick-options{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.period-option{padding:8px 16px;background:#fff;border:1px solid var(--border-color);border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s ease;color:var(--text-secondary)}.period-option:hover{border-color:var(--primary-color);background:#3b82f60d}.period-option.active{background:var(--primary-color);border-color:var(--primary-color);color:#fff;font-weight:600}.branding-field label{display:flex;align-items:center;gap:8px}.branding-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:4px}.logo-preview-container{position:relative;display:inline-block}.logo-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transition:opacity .2s ease;border-radius:8px}.logo-preview-container:hover .logo-overlay{opacity:1}.btn-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#fff;border:none;border-radius:8px;cursor:pointer;color:var(--text-primary);transition:all .2s ease}.btn-icon:hover{background:var(--primary);color:#fff}.btn-icon-danger:hover{background:var(--danger);color:#fff}.logo-badge{position:absolute;top:-8px;right:-8px;background:var(--primary);color:#fff;font-size:10px;font-weight:600;padding:3px 8px;border-radius:10px;text-transform:uppercase}.preview-btn{margin-top:4px}.loading-billing-code{display:flex;align-items:center;gap:12px;padding:40px 20px;color:var(--text-secondary);justify-content:center}.import-section-content{display:flex;flex-direction:column;gap:20px}.import-action-area{text-align:center;padding:20px;background:var(--bg-secondary);border-radius:12px}.import-info-box{background:#fffbeb;border:1px solid #fcd34d;border-radius:12px;padding:20px}.import-info-box h4{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:#92400e;margin:0 0 16px}.columns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}@media (max-width: 600px){.columns-grid{grid-template-columns:repeat(2,1fr)}}.column-item{background:#fff;border:1px solid #fcd34d;border-radius:8px;padding:10px 12px}.column-item.required{border-color:#f59e0b;background:#f59e0b0d}.column-item strong{display:block;font-size:13px;color:#92400e;margin-bottom:2px}.column-item span{font-size:11px;color:#b45309}.required-note{font-size:12px;color:#92400e;margin:0;font-style:italic}.billing-code-error{display:flex;align-items:center;gap:12px;padding:16px;background:#ef44441a;border-radius:8px;color:var(--danger)}.billing-code-error .btn-link{margin-left:auto;color:var(--danger);text-decoration:underline;background:none;border:none;cursor:pointer}.section-divider{border:none;border-top:1px solid var(--border);margin:24px 0}.subsection-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.portal-customization-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.portal-customization-section h4{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.customization-description{font-size:14px;color:var(--text-secondary);margin-bottom:20px}.customization-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px}@media (max-width: 768px){.customization-grid{grid-template-columns:1fr}}.customization-item{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px}.customization-item label{display:block;font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.customization-item .field-hint{font-size:12px;color:var(--text-secondary);margin:0 0 12px}.logo-upload-area{min-height:120px}.logo-upload-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;border:2px dashed var(--border);border-radius:10px;cursor:pointer;transition:all .2s ease;color:var(--text-secondary)}.logo-upload-placeholder:hover{border-color:var(--primary);background:#3b82f60d;color:var(--primary)}.logo-upload-placeholder span{font-size:14px;font-weight:500}.logo-upload-placeholder .upload-hint{font-size:12px;font-weight:400;opacity:.7}.logo-preview-container{display:flex;flex-direction:column;align-items:center;gap:12px}.logo-preview-img{max-width:150px;max-height:80px;object-fit:contain;border-radius:8px;border:1px solid var(--border)}.logo-preview-actions{display:flex;gap:8px}.logo-preview-actions .btn-sm{padding:6px 12px;font-size:12px;display:inline-flex;align-items:center;gap:6px}.btn-danger{background:var(--danger);color:#fff;border:none}.btn-danger:hover{background:#dc2626}.input-with-button{display:flex;gap:8px}.input-with-button .form-input{flex:1;padding:10px 14px;border:1px solid var(--border);border-radius:8px;font-size:14px;transition:border-color .2s}.input-with-button .form-input:focus{outline:none;border-color:var(--primary)}.input-with-button .btn{flex-shrink:0;padding:10px 14px}.portal-preview-toggle{margin-bottom:16px}.portal-preview-box{background:#fff;border:2px solid var(--border);border-radius:12px;overflow:hidden;box-shadow:0 4px 12px #00000014}.portal-preview-header{display:flex;align-items:center;gap:16px;padding:20px 24px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-bottom:1px solid var(--border)}.preview-logo{width:64px;height:64px;object-fit:contain;border-radius:8px;background:#fff;padding:4px;border:1px solid var(--border)}.preview-logo-placeholder{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,#1d4ed8 100%);border-radius:8px;color:#fff}.preview-empresa-info h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.preview-empresa-info span{font-size:12px;color:var(--text-secondary)}.portal-preview-body{padding:24px}.preview-form-mockup{display:flex;flex-direction:column;gap:12px}.mockup-field{height:40px;background:#e5e7eb;border-radius:8px;opacity:.6}.mockup-field.short{width:50%}.mockup-button{height:44px;width:140px;background:var(--primary);border-radius:8px;opacity:.8;margin-top:8px}@media (max-width: 600px){.qr-section{flex-direction:column;text-align:center}.code-text{font-size:22px;letter-spacing:2px}.url-text{font-size:12px}}.alert-close{background:none;border:none;padding:4px;cursor:pointer;color:inherit;opacity:.7;margin-left:auto}.alert-close:hover{opacity:1}.alert{display:flex;align-items:center;gap:12px}.filters-panel{background:var(--bg-primary);border-radius:16px;padding:0;margin-bottom:24px;box-shadow:var(--shadow);overflow:hidden;border:1px solid var(--border-color)}.active-filters{display:flex;align-items:center;gap:12px;padding:12px 20px;background:linear-gradient(135deg,#f0f9ff,#e0f2fe);border-bottom:1px solid #bae6fd;flex-wrap:wrap}.active-filters-label{font-size:12px;font-weight:600;color:#0369a1;text-transform:uppercase;letter-spacing:.5px}.filter-tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filter-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#fff;border:1px solid #0ea5e9;border-radius:20px;font-size:12px;font-weight:500;color:#0369a1;transition:all .2s ease}.filter-tag svg:first-child{color:#0ea5e9}.filter-tag button{display:flex;align-items:center;justify-content:center;padding:0;background:none;border:none;color:#94a3b8;cursor:pointer;transition:color .2s;margin-left:2px}.filter-tag button:hover{color:#ef4444}.clear-all-btn{padding:4px 12px;background:transparent;border:1px dashed #94a3b8;border-radius:20px;font-size:12px;color:#64748b;cursor:pointer;transition:all .2s}.clear-all-btn:hover{border-color:#ef4444;color:#ef4444;background:#fef2f2}.filters-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:0}@media (max-width: 1200px){.filters-sections{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.filters-sections{grid-template-columns:1fr}}.filter-section{padding:20px;border-right:1px solid var(--border-color)}.filter-section:last-child{border-right:none}@media (max-width: 1200px){.filter-section:nth-child(2){border-right:none}.filter-section:nth-child(3){border-top:1px solid var(--border-color);grid-column:span 2}}@media (max-width: 768px){.filter-section{border-right:none;border-bottom:1px solid var(--border-color)}.filter-section:last-child{border-bottom:none}.filter-section:nth-child(3){grid-column:span 1}}.filter-section-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid var(--primary-color)}.filter-section-title svg{color:var(--primary-color)}.filter-section-content{display:flex;flex-direction:column;gap:12px}.form-group-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filters-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#f8fafc;border-top:1px solid var(--border-color)}.filters-footer-left{display:flex;align-items:center}.filters-footer-right{display:flex;gap:12px}.form-group-inline{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary)}.form-group-inline label{margin-bottom:0}.select-small{padding:6px 12px;font-size:14px;min-width:70px}.btn-search{padding:10px 24px;font-weight:600}.filter-section .form-group label{font-size:12px;font-weight:500;color:var(--text-secondary);margin-bottom:6px;display:flex;align-items:center;gap:6px}.filter-section .form-group input,.filter-section .form-group select{padding:10px 12px;font-size:14px;border:1px solid var(--border-color);border-radius:8px;transition:all .2s;background:#fff}.filter-section .form-group input:focus,.filter-section .form-group select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #3b82f61a;outline:none}.filter-section .form-group input::placeholder{color:#94a3b8;font-size:13px}.cfdis .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.cfdis .page-header h1{font-size:28px;font-weight:700;color:var(--text-primary);margin:0}.cfdis .header-actions{display:flex;gap:12px}.cfdis .header-actions .btn-secondary{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#fff;border:1px solid var(--border-color);border-radius:8px;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.cfdis .header-actions .btn-secondary:hover{background:#f1f5f9;border-color:var(--primary-color);color:var(--primary-color)}.cfdis-stats{display:flex;gap:24px;margin-bottom:20px;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;border:1px solid var(--border-color)}.cfdis-stats .stat-item{display:flex;align-items:center;gap:8px}.cfdis-stats .stat-label{font-size:13px;color:var(--text-secondary)}.cfdis-stats .stat-value{font-size:15px;font-weight:700;color:var(--primary-color)}.deducibilidad-tab{padding:0}.deducibilidad-cards-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px}@media (max-width: 1200px){.deducibilidad-cards-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.deducibilidad-cards-grid{grid-template-columns:1fr}}.deducibilidad-card{display:flex;align-items:center;gap:16px;padding:20px;background:#fff;border-radius:12px;border:1px solid var(--border-color);transition:all .2s}.deducibilidad-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014}.deducibilidad-card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px}.deducibilidad-card.deducible .deducibilidad-card-icon{background:#dcfce7;color:#22c55e}.deducibilidad-card.parcial .deducibilidad-card-icon{background:#fef3c7;color:#f59e0b}.deducibilidad-card.no-deducible .deducibilidad-card-icon{background:#fee2e2;color:#ef4444}.deducibilidad-card.revision .deducibilidad-card-icon{background:#fef9c3;color:#eab308}.deducibilidad-card-content h4{margin:0 0 4px;font-size:13px;font-weight:500;color:var(--text-secondary)}.deducibilidad-card-value{margin:0;font-size:24px;font-weight:700;color:var(--text-primary)}.deducibilidad-card-count{margin:4px 0 0;font-size:12px;color:var(--text-secondary)}.deducibilidad-chart-wrapper{display:flex;justify-content:center}.categoria-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;background:#f1f5f9;color:#475569}.categoria-badge.servicios{background:#dbeafe;color:#1d4ed8}.categoria-badge.combustible{background:#fef3c7;color:#b45309}.categoria-badge.transporte{background:#e0e7ff;color:#4338ca}.categoria-badge.renta-arrendamiento{background:#f3e8ff;color:#7c3aed}.categoria-badge.alimentos{background:#ffedd5;color:#c2410c}.categoria-badge.hospedaje{background:#cffafe;color:#0891b2}.categoria-badge.oficina-papeleria{background:#f0fdf4;color:#15803d}.categoria-badge.equipo-computo{background:#f0f9ff;color:#0369a1}.categoria-badge.software{background:#fdf4ff;color:#a21caf}.categoria-badge.honorarios{background:#ecfdf5;color:#059669}.categoria-badge.medico{background:#fef2f2;color:#dc2626}.categoria-badge.seguros{background:#eff6ff;color:#2563eb}.porcentaje-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.porcentaje-badge.alto{background:#dcfce7;color:#15803d}.porcentaje-badge.medio{background:#fef3c7;color:#b45309}.porcentaje-badge.bajo{background:#fee2e2;color:#dc2626}.comparativa-fiscal-container{margin-top:24px;padding:24px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:12px;border:1px solid #cbd5e1}.comparativa-fiscal-container h3{display:flex;align-items:center;gap:8px;margin:0 0 20px;font-size:18px;color:#1e293b}.comparativa-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}@media (max-width: 1200px){.comparativa-cards{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.comparativa-cards{grid-template-columns:1fr}}.comparativa-card{display:flex;align-items:center;gap:16px;padding:20px;background:#fff;border-radius:12px;border:1px solid #e2e8f0;transition:all .2s ease}.comparativa-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #00000014}.comparativa-card.ingresos{border-left:4px solid #22c55e}.comparativa-card.ingresos .comparativa-icon{color:#22c55e;background:#dcfce7}.comparativa-card.gastos{border-left:4px solid #ef4444}.comparativa-card.gastos .comparativa-icon{color:#ef4444;background:#fee2e2}.comparativa-card.utilidad{border-left:4px solid #3b82f6}.comparativa-card.utilidad .comparativa-icon{color:#3b82f6;background:#dbeafe}.comparativa-card.isr{border-left:4px solid #f59e0b}.comparativa-card.isr .comparativa-icon{color:#f59e0b;background:#fef3c7}.comparativa-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;flex-shrink:0}.comparativa-content{display:flex;flex-direction:column;gap:4px}.comparativa-label{font-size:13px;color:#64748b;font-weight:500}.comparativa-value{font-size:22px;font-weight:700;color:#0f172a}.comparativa-count{font-size:12px;color:#94a3b8}.comparativa-disclaimer{margin-top:16px;font-size:12px;color:#64748b;font-style:italic;text-align:center}.beneficio-fiscal-container{margin-top:24px;padding:24px;background:linear-gradient(135deg,#f0fdf4,#dcfce7);border-radius:12px;border:1px solid #86efac}.beneficio-fiscal-container h3{display:flex;align-items:center;gap:8px;margin:0 0 20px;font-size:18px;color:#15803d}.beneficio-cards{display:flex;gap:20px;flex-wrap:wrap}.beneficio-card{flex:1;min-width:200px;padding:16px 20px;background:#fff;border-radius:8px;border:1px solid #86efac}.beneficio-card.highlight{background:#22c55e;border-color:#16a34a}.beneficio-card.highlight .beneficio-label{color:#ffffffe6}.beneficio-card.highlight .beneficio-value{color:#fff}.beneficio-label{display:block;font-size:13px;color:var(--text-secondary);margin-bottom:4px}.beneficio-value{display:block;font-size:24px;font-weight:700;color:var(--text-primary)}.beneficio-disclaimer{margin-top:16px;font-size:12px;color:#15803d;font-style:italic}.no-data-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;text-align:center;color:var(--text-secondary)}.no-data-container svg{color:#d1d5db;margin-bottom:16px}.no-data-container h3{margin:0 0 8px;color:var(--text-primary)}.no-data-container p{margin:0 0 20px}.landing{min-height:100vh;background:#fff;font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif}.landing-header{position:fixed;top:0;left:0;right:0;background:#0a0d22eb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid rgba(99,102,241,.1);z-index:1000}.landing-header-content{max-width:1280px;margin:0 auto;padding:16px 32px;display:flex;align-items:center;justify-content:space-between}.landing-logo{display:flex;align-items:center;gap:10px;font-size:22px;font-weight:700;color:#fff}.landing-nav{display:flex;gap:32px}.landing-nav a{color:#ffffffb3;text-decoration:none;font-weight:500;transition:color .2s;font-size:14px}.landing-nav a:hover{color:#fff}.landing-header-buttons{display:flex;align-items:center;gap:12px}.landing-header-buttons .btn-secondary,.landing-header-buttons .btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:10px 24px;font-size:14px;font-weight:600;border-radius:8px;white-space:nowrap;height:42px;box-sizing:border-box;width:auto;margin:0;line-height:1}.landing-header-buttons .btn-secondary{border:1px solid rgba(99,102,241,.2);color:#ffffffd9;background:#6366f114}.landing-header-buttons .btn-secondary:hover{background:#6366f126;border-color:#6366f14d;color:#fff}.landing-header-buttons .btn-primary{border:2px solid transparent}.btn-primary{background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;display:flex;align-items:center;gap:8px}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 20px #4f46e566}.btn-secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border);padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--primary)}.landing-hero .btn-outline{background:#ffffff26;color:#fff;border:2px solid rgba(255,255,255,.8);padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.landing-hero .btn-outline:hover{background:#ffffff40;border-color:#fff}.btn-white{background:#fff;color:var(--primary);border:none;padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:8px}.btn-white:hover{transform:translateY(-2px);box-shadow:0 4px 20px #0003}.btn-large{padding:14px 28px;font-size:16px}.hero-label,.section-label{font-family:Outfit,-apple-system,sans-serif;font-weight:500;font-size:11px;letter-spacing:3px;text-transform:uppercase;margin-bottom:16px}.hero-label{color:#ffffffb3;display:inline-flex;align-items:center;gap:8px;background:#ffffff1a;padding:6px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.15)}.section-label{color:#6366f1;text-align:center}.landing-hero{padding:140px 32px 80px;background:linear-gradient(135deg,#4f46e5,#3b82f6);display:flex;align-items:center;justify-content:center;gap:60px;min-height:100vh}.hero-content{flex:1;max-width:600px;color:#fff}.hero-content h1{font-family:Outfit,-apple-system,sans-serif;font-size:52px;font-weight:800;line-height:1.1;margin-bottom:24px;letter-spacing:-1px}.gradient-text{background:linear-gradient(90deg,#818cf8,#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:20px;color:#fffffff2;margin-bottom:32px;line-height:1.6}.hero-buttons{display:flex;gap:16px;margin-bottom:48px}.hero-stats{display:flex;gap:48px}.hero-stat{display:flex;flex-direction:column}.hero-stat .stat-number{font-size:32px;font-weight:700;color:#fff}.hero-stat .stat-label{font-size:14px;color:#fffffff2}.hero-visual{flex:1;max-width:500px}.hero-mockup{background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #0000004d;overflow:hidden}.mockup-header{background:var(--bg-tertiary);padding:12px 16px;display:flex;align-items:center;gap:12px}.mockup-dots{display:flex;gap:6px}.mockup-dots span{width:12px;height:12px;border-radius:50%;background:#e5e7eb}.mockup-dots span:first-child{background:#ef4444}.mockup-dots span:nth-child(2){background:#fbbf24}.mockup-dots span:last-child{background:#10b981}.mockup-title{font-size:13px;color:var(--text-secondary);font-weight:500}.mockup-content{padding:24px;display:flex;flex-direction:column;gap:16px}.mockup-card{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-secondary);border-radius:12px}.mockup-card-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff}.mockup-card-icon.green{background:var(--success)}.mockup-card-icon.yellow{background:var(--warning)}.mockup-card-icon.purple{background:#8b5cf6}.mockup-card-title{font-size:13px;color:var(--text-secondary);margin-bottom:4px}.mockup-card-value{font-size:18px;font-weight:600;color:var(--text-primary)}.section-header{text-align:center;margin-bottom:56px}.section-header h2{font-family:Outfit,-apple-system,sans-serif;font-size:36px;font-weight:700;color:var(--text-primary);margin-bottom:16px;letter-spacing:-.5px}.section-header p{font-size:18px;color:var(--text-secondary)}.landing-features{padding:100px 32px;background:var(--bg-secondary);max-width:1280px;margin:0 auto}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.feature-card{background:#fff;padding:32px;border-radius:16px;box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s}.feature-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.feature-icon{width:56px;height:56px;background:linear-gradient(135deg,#4f46e5,#3b82f6);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;margin-bottom:20px;transform:rotate(-6deg);box-shadow:0 8px 28px #4f46e559}.feature-card h3{font-family:Outfit,-apple-system,sans-serif;font-size:20px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.feature-card p{color:var(--text-secondary);line-height:1.6}.landing-how-it-works{padding:100px 32px;background:#fff}.steps-container{max-width:900px;margin:0 auto;display:flex;align-items:center;justify-content:center}.step{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;max-width:280px}.step-number{width:56px;height:56px;background:linear-gradient(135deg,#4f46e5,#3b82f6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-weight:700;margin-bottom:20px}.step-content h3{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.step-content p{color:var(--text-secondary);font-size:15px;line-height:1.6}.step-connector{width:80px;height:2px;background:linear-gradient(to right,#4f46e5,#3b82f6);margin:0 16px 60px}.landing-pricing{padding:100px 32px;background:var(--bg-secondary)}.pricing-grid{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.pricing-card{background:#fff;border-radius:16px;padding:32px;box-shadow:var(--shadow);display:flex;flex-direction:column;position:relative;transition:transform .3s,box-shadow .3s}.pricing-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg)}.pricing-card.highlighted{border:2px solid var(--primary);transform:scale(1.05)}.pricing-card.highlighted:hover{transform:scale(1.05) translateY(-8px)}.pricing-badge{position:absolute;top:-12px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff;padding:6px 16px;border-radius:20px;font-size:12px;font-weight:600}.pricing-header{text-align:center;padding-bottom:24px;border-bottom:1px solid var(--border);margin-bottom:24px}.pricing-header h3{font-family:Outfit,-apple-system,sans-serif;font-size:22px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.pricing-price{display:flex;align-items:baseline;justify-content:center;gap:4px}.price-amount{font-size:40px;font-weight:700;color:var(--text-primary)}.price-period{font-size:16px;color:var(--text-secondary)}.pricing-description{font-size:14px;color:var(--text-secondary);margin-top:8px}.pricing-features{list-style:none;flex:1;margin-bottom:24px}.pricing-features li{display:flex;align-items:center;gap:10px;padding:10px 0;color:var(--text-secondary);font-size:14px}.pricing-features li svg{color:var(--success);flex-shrink:0}.pricing-button{width:100%;padding:14px;font-size:15px}.landing-testimonials{padding:100px 32px;background:#fff}.testimonials-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.testimonial-card{background:var(--bg-secondary);padding:32px;border-radius:16px;transition:transform .3s}.testimonial-card:hover{transform:translateY(-4px)}.testimonial-rating{display:flex;gap:4px;margin-bottom:16px}.testimonial-text{font-size:16px;color:var(--text-primary);line-height:1.6;margin-bottom:24px;font-style:italic}.testimonial-author{display:flex;align-items:center;gap:16px}.author-avatar{width:48px;height:48px;background:linear-gradient(135deg,#4f46e5,#3b82f6);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:18px}.author-info{display:flex;flex-direction:column}.author-name{font-weight:600;color:var(--text-primary)}.author-role{font-size:14px;color:var(--text-secondary)}.author-company{font-size:13px;color:var(--primary)}.landing-faq{padding:100px 32px;background:var(--bg-secondary)}.faq-list{max-width:800px;margin:0 auto}.faq-item{background:#fff;border-radius:12px;margin-bottom:12px;overflow:hidden;box-shadow:var(--shadow)}.faq-question{width:100%;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;background:none;border:none;cursor:pointer;font-size:16px;font-weight:500;color:var(--text-primary);text-align:left;transition:background .2s}.faq-question:hover{background:var(--bg-secondary)}.faq-question svg{color:var(--text-secondary);flex-shrink:0}.faq-answer{padding:0 24px 20px}.faq-answer p{color:var(--text-secondary);line-height:1.6}.landing-cta{padding:100px 32px;background:linear-gradient(135deg,#4f46e5,#3b82f6);text-align:center}.cta-content{max-width:600px;margin:0 auto}.cta-content h2{font-family:Outfit,-apple-system,sans-serif;font-size:36px;font-weight:700;color:#fff;margin-bottom:16px;letter-spacing:-.5px}.cta-content p{font-size:18px;color:#ffffffe6;margin-bottom:32px}.cta-buttons{display:flex;justify-content:center;margin-bottom:20px}.cta-note{font-size:14px;color:#ffffffb3}.landing-footer{background:#0a0d22;color:#fff;padding:64px 32px 32px;font-family:DM Sans,-apple-system,sans-serif}.footer-content{max-width:1200px;margin:0 auto}.footer-main{display:flex;justify-content:space-between;margin-bottom:48px}.footer-brand{max-width:300px}.footer-brand .landing-logo{color:#fff;margin-bottom:16px}.footer-brand p{color:#fff9;font-size:14px;line-height:1.6}.footer-links{display:flex;gap:80px}.footer-column h4{font-size:14px;font-weight:600;margin-bottom:20px;color:#ffffffe6}.footer-column a{display:block;color:#fff9;text-decoration:none;font-size:14px;margin-bottom:12px;transition:color .2s}.footer-column a:hover{color:#fff}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:32px;display:flex;justify-content:space-between}.footer-bottom p{font-size:14px;color:#ffffff80}@media (max-width: 1024px){.landing-hero{flex-direction:column;padding:120px 24px 60px}.hero-content{text-align:center;max-width:100%}.hero-content h1{font-size:40px}.hero-buttons,.hero-stats{justify-content:center}.hero-visual{max-width:100%}.features-grid,.pricing-grid{grid-template-columns:repeat(2,1fr)}.pricing-card.highlighted{transform:none}.pricing-card.highlighted:hover{transform:translateY(-8px)}.testimonials-grid{grid-template-columns:1fr}.steps-container{flex-direction:column;gap:24px}.step-connector{width:2px;height:40px;margin:0}}@media (max-width: 768px){.landing-header-content{padding:12px 16px}.landing-nav{display:none}.hero-content h1{font-size:32px}.hero-subtitle{font-size:16px}.hero-buttons{flex-direction:column}.hero-stats{flex-direction:column;gap:24px}.features-grid,.pricing-grid{grid-template-columns:1fr}.section-header h2{font-size:28px}.footer-main{flex-direction:column;gap:40px}.footer-links{flex-wrap:wrap;gap:40px}.footer-bottom{flex-direction:column;gap:12px;text-align:center}}.facturacion-container{padding:0}.facturacion-tabs{display:flex;gap:0;background:var(--bg-primary);border-radius:12px 12px 0 0;border-bottom:1px solid var(--border);overflow-x:auto}.facturacion-tab{display:flex;align-items:center;gap:8px;padding:16px 24px;background:none;border:none;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s;border-bottom:3px solid transparent;white-space:nowrap}.facturacion-tab:hover{color:var(--text-primary);background:var(--bg-tertiary)}.facturacion-tab.active{color:var(--primary);border-bottom-color:var(--primary);background:var(--bg-secondary)}.facturacion-tab svg{flex-shrink:0}.facturacion-content{background:var(--bg-primary);border-radius:0 0 12px 12px;padding:24px;min-height:400px}.tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.tab-header h2{font-size:20px;color:var(--text-primary);margin:0}.tab-header-actions{display:flex;gap:12px;flex-wrap:wrap}.empty-state{text-align:center;padding:60px 20px;color:var(--text-secondary)}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state h3{font-size:18px;color:var(--text-primary);margin-bottom:8px}.empty-state p{margin-bottom:20px;max-width:400px;margin-left:auto;margin-right:auto}.factura-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.factura-modal{background:var(--bg-primary);border-radius:16px;width:100%;max-width:900px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.factura-modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.factura-modal-header h2{font-size:20px;color:var(--text-primary);margin:0}.factura-modal-close{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-secondary);border-radius:8px;transition:all .2s}.factura-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.factura-modal-body{flex:1;overflow-y:auto;padding:24px}.factura-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--border);background:var(--bg-secondary)}.stepper{display:flex;justify-content:center;margin-bottom:32px}.stepper-step{display:flex;align-items:center}.step-indicator{display:flex;flex-direction:column;align-items:center;gap:8px}.step-number{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;background:var(--bg-tertiary);color:var(--text-secondary);border:2px solid var(--border);transition:all .3s}.step-indicator.active .step-number{background:var(--primary);color:#fff;border-color:var(--primary)}.step-indicator.completed .step-number{background:var(--success);color:#fff;border-color:var(--success)}.step-label{font-size:12px;color:var(--text-secondary);font-weight:500}.step-indicator.active .step-label{color:var(--primary)}.step-indicator.completed .step-label{color:var(--success)}.step-connector{width:60px;height:2px;background:var(--border);margin:0 12px 24px}.step-connector.completed{background:var(--success)}.form-section{margin-bottom:24px}.form-section-title{font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-row-3{grid-template-columns:repeat(3,1fr)}.form-row-4{grid-template-columns:repeat(4,1fr)}.conceptos-table{width:100%;border-collapse:collapse;margin-bottom:16px}.conceptos-table th{text-align:left;padding:12px;background:var(--bg-secondary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border)}.conceptos-table td{padding:12px;border-bottom:1px solid var(--border);vertical-align:middle}.conceptos-table input,.conceptos-table select{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px}.conceptos-table .cantidad-input{width:80px}.conceptos-table .precio-input{width:120px}.btn-remove-concepto{background:none;border:none;color:var(--danger);cursor:pointer;padding:8px;border-radius:6px;transition:all .2s}.btn-remove-concepto:hover{background:#ef44441a}.btn-add-concepto{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-secondary);border:1px dashed var(--border);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:14px;transition:all .2s}.totales-box{background:var(--bg-secondary);border-radius:12px;padding:20px;margin-top:24px}.totales-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.totales-row.total{font-size:18px;font-weight:600;color:var(--text-primary);border-top:2px solid var(--border);margin-top:8px;padding-top:16px}.totales-label{color:var(--text-secondary)}.totales-value{font-weight:500;color:var(--text-primary)}.factura-preview{background:var(--bg-secondary);border-radius:12px;padding:24px;border:1px solid var(--border)}.factura-preview-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.preview-emisor h3,.preview-receptor h3{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:8px}.preview-rfc{font-size:16px;font-weight:600;color:var(--text-primary)}.preview-nombre{font-size:14px;color:var(--text-secondary)}.factura-preview-conceptos{margin-bottom:24px}.factura-preview-conceptos h4{font-size:14px;font-weight:600;margin-bottom:12px}.preview-concepto{display:flex;justify-content:space-between;padding:12px;background:var(--bg-primary);border-radius:8px;margin-bottom:8px}.preview-concepto-info{flex:1}.preview-concepto-desc{font-weight:500;color:var(--text-primary)}.preview-concepto-detail{font-size:13px;color:var(--text-secondary)}.preview-concepto-importe{font-weight:600;color:var(--text-primary)}.productos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.producto-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;padding:20px;transition:all .2s}.producto-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}.producto-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.producto-clave{font-size:12px;background:var(--bg-tertiary);padding:4px 8px;border-radius:4px;color:var(--text-secondary);font-family:monospace}.producto-actions{display:flex;gap:4px}.producto-nombre{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.producto-descripcion{font-size:14px;color:var(--text-secondary);margin-bottom:12px}.producto-precio{font-size:18px;font-weight:600;color:var(--primary)}.producto-unidad{font-size:12px;color:var(--text-secondary)}.receptores-table{width:100%;border-collapse:collapse}.receptores-table th{text-align:left;padding:12px 16px;background:var(--bg-secondary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border)}.receptores-table td{padding:16px;border-bottom:1px solid var(--border)}.receptores-table tr:hover{background:var(--bg-secondary)}.receptor-rfc{font-family:monospace;font-weight:600;color:var(--text-primary)}.receptor-nombre{color:var(--text-primary)}.receptor-regimen{font-size:12px;color:var(--text-secondary)}.series-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.serie-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;padding:20px}.serie-nombre{font-size:24px;font-weight:700;color:var(--primary);margin-bottom:8px}.serie-folio{font-size:14px;color:var(--text-secondary);margin-bottom:4px}.serie-folio span{font-weight:600;color:var(--text-primary)}.serie-tipo{display:inline-block;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:500;margin-top:12px}.serie-tipo.ingreso{background:#10b9811a;color:#059669}.serie-tipo.egreso{background:#ef44441a;color:#dc2626}.serie-tipo.pago{background:#3b82f61a;color:#2563eb}.csd-status-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;padding:24px;margin-bottom:16px}.csd-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.csd-rfc{font-size:18px;font-weight:600;font-family:monospace;color:var(--text-primary)}.csd-status-badge{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;font-size:13px;font-weight:500}.csd-status-badge.valid{background:#10b9811a;color:#059669}.csd-status-badge.invalid{background:#ef44441a;color:#dc2626}.csd-status-badge.pending{background:#f59e0b1a;color:#d97706}.csd-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.csd-detail{padding:12px;background:var(--bg-secondary);border-radius:8px}.csd-detail-label{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.csd-detail-value{font-weight:500;color:var(--text-primary)}.facturas-table{width:100%;border-collapse:collapse}.facturas-table th{text-align:left;padding:12px 16px;background:var(--bg-secondary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;border-bottom:1px solid var(--border)}.facturas-table td{padding:16px;border-bottom:1px solid var(--border)}.facturas-table tr:hover{background:var(--bg-secondary)}.col-checkbox{width:40px;min-width:40px;max-width:40px;text-align:center;padding:8px!important}.facturas-checkbox{width:16px;height:16px;cursor:pointer;accent-color:var(--primary);border-radius:3px}.facturas-row-selected{background:#3b82f614!important}.facturas-row-selected:hover{background:#3b82f61f!important}.bulk-actions-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-tertiary, #1e293b);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;gap:12px}.bulk-actions-info{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--primary)}.bulk-actions-buttons{display:flex;align-items:center;gap:8px}.btn-sm{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;border:none;border-radius:6px;cursor:pointer;transition:all .15s;white-space:nowrap}.btn-sm.btn-danger{background:#ef444426;color:#ef4444}.btn-sm.btn-danger:hover{background:#ef444440}.btn-sm.btn-warning{background:#f59e0b26;color:#f59e0b}.btn-sm.btn-warning:hover{background:#f59e0b40}.btn-sm.btn-ghost{background:transparent;color:var(--text-secondary);padding:6px}.btn-sm.btn-ghost:hover{background:var(--bg-secondary);color:var(--text-primary)}.factura-uuid{font-family:monospace;font-size:12px;color:var(--text-secondary)}.factura-serie-folio{font-weight:600;color:var(--text-primary)}.factura-fecha{color:var(--text-secondary);font-size:14px}.factura-total{font-weight:600;color:var(--text-primary)}.factura-estado{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.factura-estado.vigente{background:#10b9811a;color:#059669}.factura-estado.cancelada{background:#ef44441a;color:#dc2626}.factura-estado.pendiente{background:#f59e0b1a;color:#d97706}.factura-actions{display:flex;gap:4px}.btn-icon{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-secondary);border-radius:6px;transition:all .2s}.btn-icon:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-icon.danger:hover{background:#ef44441a;color:var(--danger)}.filters-bar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:13px;color:var(--text-secondary);white-space:nowrap}.filter-select,.filter-input{padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--bg-primary)}.filter-select:focus,.filter-input:focus{outline:none;border-color:var(--primary)}@media (max-width: 768px){.facturacion-tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.facturacion-tab{padding:12px 16px;font-size:13px}.facturacion-content{padding:16px}.form-row-3,.form-row-4{grid-template-columns:1fr}.factura-modal{max-height:100vh;border-radius:0}.stepper-step{flex-direction:column}.step-connector{width:2px;height:30px;margin:8px 0}.productos-grid,.series-grid{grid-template-columns:1fr}.facturas-table,.receptores-table{display:block;overflow-x:auto}.tab-header{flex-direction:column;align-items:flex-start}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-primary);border-radius:10px;box-shadow:0 4px 20px #00000026;animation:slideIn .3s ease;border-left:4px solid var(--primary)}.toast-exit{animation:slideOut .3s ease forwards}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast-success{border-left-color:var(--success)}.toast-success .toast-icon{color:var(--success)}.toast-error{border-left-color:var(--danger)}.toast-error .toast-icon{color:var(--danger)}.toast-warning{border-left-color:var(--warning)}.toast-warning .toast-icon{color:var(--warning)}.toast-info{border-left-color:var(--primary)}.toast-info .toast-icon{color:var(--primary)}.toast-message{flex:1;font-size:14px;color:var(--text-primary)}.toast-close{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);border-radius:4px;transition:all .2s}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.confirm-modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172a80}.confirm-modal{background:var(--bg-primary);border-radius:16px;max-width:440px;width:90%;animation:modalPop .25s cubic-bezier(.34,1.56,.64,1);overflow:hidden;position:relative;box-shadow:0 25px 50px -12px #00000040}@keyframes modalPop{0%{transform:scale(.9) translateY(10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.confirm-modal-close{position:absolute;top:12px;right:12px;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:1}.confirm-modal-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.confirm-modal-body{padding:32px 32px 24px;text-align:center}.confirm-modal-icon-ring{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.confirm-icon-danger{background:#ef44441a;color:var(--danger)}.confirm-icon-warning{background:#f59e0b1a;color:var(--warning)}.confirm-icon-info{background:#3b82f61a;color:var(--primary)}.confirm-modal h3{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.confirm-modal p{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0}.confirm-modal-actions{display:flex;gap:12px;padding:16px 32px 24px}.confirm-btn-cancel{flex:1;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);transition:all .15s}.confirm-btn-cancel:hover{background:var(--bg-tertiary)}.confirm-btn-action{flex:1;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;border:none;color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s}.confirm-btn-danger{background:var(--danger)}.confirm-btn-danger:hover{background:#dc2626;box-shadow:0 4px 12px #ef44444d}.confirm-btn-warning{background:var(--warning);color:#1a1a1a}.confirm-btn-warning:hover{background:#e09400}.confirm-btn-info{background:var(--primary)}.confirm-btn-info:hover{background:var(--primary-dark)}.confirm-btn-action:disabled,.confirm-btn-cancel:disabled{opacity:.6;cursor:not-allowed}.confirm-btn-loading{display:flex;align-items:center;gap:8px}.page-subtitle{color:var(--text-secondary);font-size:14px;margin-top:4px}.btn-lg{padding:12px 20px;font-size:15px}.btn-group{display:flex;gap:8px}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--text-secondary);padding:10px 16px;border-radius:8px;font-size:14px;cursor:pointer;transition:all .2s}.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:#3b82f60d}.header-actions-facturacion{display:flex;align-items:center;gap:10px}.btn-comprobante{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:1px solid;white-space:nowrap}.btn-factura-ingreso{background:var(--primary);border-color:var(--primary);color:#fff}.btn-factura-ingreso:hover{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:0 2px 8px #3b82f64d}.btn-nota-credito{background:#f59e0b14;border-color:#f59e0b40;color:#b45309}.btn-nota-credito:hover{background:#f59e0b26;border-color:#f59e0b66;box-shadow:0 2px 8px #f59e0b26}.btn-comp-pago{background:#10b98114;border-color:#10b98140;color:#047857}.btn-comp-pago:hover{background:#10b98126;border-color:#10b98166;box-shadow:0 2px 8px #10b98126}.onboarding-banner{background:linear-gradient(135deg,#3b82f61a,#8b5cf61a);border:1px solid rgba(59,130,246,.2);border-radius:12px;padding:20px 24px;margin-bottom:24px}.onboarding-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:20px}.onboarding-header svg{color:var(--primary);flex-shrink:0}.onboarding-header h3{font-size:16px;font-weight:600;margin-bottom:4px}.onboarding-header p{font-size:14px;color:var(--text-secondary)}.onboarding-steps{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.onboarding-step{display:flex;align-items:center;gap:8px}.onboarding-step .step-circle{width:32px;height:32px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all .3s}.onboarding-step.done .step-circle{background:var(--success);color:#fff}.onboarding-step .step-label{font-size:14px;font-weight:500;color:var(--text-secondary)}.onboarding-step.done .step-label{color:var(--success)}.onboarding-step .step-line{width:40px;height:2px;background:var(--border);margin:0 8px}.onboarding-step.done .step-line{background:var(--success)}.onboarding-step .step-action{background:var(--primary);color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:13px;cursor:pointer;margin-left:8px;transition:all .2s}.onboarding-step .step-action:hover{background:var(--primary-dark)}.tab-badge{background:var(--bg-tertiary);color:var(--text-secondary);padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500;margin-left:4px}.facturacion-tab.active .tab-badge{background:#fff3;color:#fff}.error-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;margin-bottom:16px;color:var(--danger)}.error-banner button{background:none;border:none;padding:4px;cursor:pointer;color:var(--danger);margin-left:auto}.loading-skeleton{padding:20px 0}.skeleton-header{display:flex;justify-content:space-between;margin-bottom:24px}.skeleton-line{background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px;height:20px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-title{width:200px;height:28px}.skeleton-btn{width:120px;height:36px}.skeleton-table{display:flex;flex-direction:column;gap:12px}.skeleton-row{display:flex;gap:16px;padding:16px;background:var(--bg-primary);border-radius:8px}.skeleton-cell{height:16px;flex:1;background:linear-gradient(90deg,var(--bg-tertiary) 25%,var(--bg-secondary) 50%,var(--bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:4px}.skeleton-cell-sm{max-width:80px}.skeleton-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.skeleton-card{background:var(--bg-primary);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}.skeleton-line-long{width:80%}.skeleton-line-short{width:40%}.tab-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;flex-wrap:wrap}.toolbar-actions{display:flex;gap:8px;align-items:center}.search-box{display:flex;align-items:center;gap:10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:8px 14px;min-width:280px;transition:all .2s}.search-box:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.search-box svg{color:var(--text-secondary);flex-shrink:0}.search-box input{border:none;background:none;flex:1;font-size:14px;color:var(--text-primary);outline:none}.search-box input::placeholder{color:var(--text-secondary)}.search-clear{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);border-radius:4px}.search-clear:hover{background:var(--bg-tertiary)}.filter-group{display:flex;gap:8px;align-items:center}.filter-group select{padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;cursor:pointer}.tab-info{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);background:var(--bg-secondary);padding:10px 14px;border-radius:8px}.tab-info.info-warning{background:#f59e0b1a;color:#b45309}.empty-state{text-align:center;padding:60px 24px}.empty-state-icon{width:80px;height:80px;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;color:var(--text-secondary)}.empty-state h3{font-size:18px;font-weight:600;margin-bottom:8px}.empty-state p{color:var(--text-secondary);max-width:360px;margin:0 auto 20px;line-height:1.5}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.status-success{background:#10b9811a;color:#059669}.status-danger{background:#ef44441a;color:#dc2626}.status-warning{background:#f59e0b1a;color:#d97706}.status-info{background:#3b82f61a;color:#2563eb}.status-secondary{background:var(--bg-tertiary);color:var(--text-secondary)}.type-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.type-primary{background:#3b82f61a;color:#2563eb}.type-warning{background:#f59e0b1a;color:#d97706}.type-info{background:#8b5cf61a;color:#7c3aed}.type-badge-lg{padding:8px 16px;font-size:14px;border-radius:8px}.table-responsive{overflow-x:auto;border-radius:12px;border:1px solid var(--border)}.data-table{width:100%;border-collapse:collapse;background:var(--bg-primary)}.data-table th{text-align:left;padding:14px 16px;background:var(--bg-secondary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}.data-table td{padding:16px;border-bottom:1px solid var(--border);vertical-align:middle}.data-table tbody tr{transition:background .2s;cursor:pointer}.data-table tbody tr:hover{background:var(--bg-secondary)}.data-table tbody tr:last-child td{border-bottom:none}.cell-main{font-weight:500;color:var(--text-primary)}.cell-sub{font-size:12px;color:var(--text-secondary);margin-top:2px}.cell-amount{font-size:16px;font-weight:600;color:var(--text-primary)}.uuid-cell{display:flex;align-items:center;gap:4px}.uuid-cell code{font-family:SF Mono,Monaco,monospace;background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:11px}.btn-copy{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-secondary);opacity:0;transition:opacity .2s}.uuid-cell:hover .btn-copy{opacity:1}.btn-copy:hover{color:var(--primary)}.action-buttons{display:flex;gap:4px;justify-content:center}.action-buttons .btn-icon{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-secondary);border-radius:6px;transition:all .2s;position:relative}.action-buttons .btn-icon:after{content:attr(title);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--text-primary);color:var(--bg-primary);padding:4px 10px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:100;box-shadow:0 2px 8px #00000026}.action-buttons .btn-icon:before{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:var(--text-primary);pointer-events:none;opacity:0;transition:opacity .15s;z-index:100}.action-buttons .btn-icon:hover:after,.action-buttons .btn-icon:hover:before{opacity:1}.action-buttons .btn-icon:hover{background:var(--bg-tertiary);color:var(--text-primary)}.action-buttons .btn-icon-danger:hover{background:#ef44441a;color:var(--danger)}.action-buttons .btn-icon-warning:hover{background:#f59e0b1a;color:var(--warning)}.action-buttons .btn-icon-success:hover{background:#10b9811a;color:var(--success)}.table-footer{padding:12px 16px;background:var(--bg-secondary);border-radius:0 0 12px 12px;font-size:13px;color:var(--text-secondary)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.card{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;padding:20px;transition:all .2s}.card:hover{border-color:var(--primary);box-shadow:0 4px 12px #00000014}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.card-actions{display:flex;gap:4px}.card-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:8px}.card-meta{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.meta-item{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-secondary)}.meta-label{color:var(--text-secondary)}.card-footer{padding-top:12px;border-top:1px solid var(--border);margin-top:12px}.precio-tag{font-size:20px;font-weight:700;color:var(--primary)}.email-tag,.vigencia-tag{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-mono{font-family:SF Mono,Monaco,monospace;background:var(--bg-tertiary);color:var(--text-secondary)}.badge-lg{padding:6px 12px;font-size:14px}.serie-card .serie-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.serie-letra{font-size:28px;font-weight:700;color:var(--primary)}.serie-descripcion{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.serie-meta{display:flex;justify-content:space-between;align-items:center}.serie-tipo{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.serie-folio .folio-label{font-size:12px;color:var(--text-secondary)}.serie-folio .folio-value{font-size:18px;font-weight:600;color:var(--text-primary);margin-left:4px}.csd-card.csd-active{border-color:var(--success)}.stepper{display:flex;justify-content:center;align-items:flex-start;padding:20px 0;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.stepper-step{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:default;padding:8px;border-radius:8px;transition:all .2s}.stepper-step[tabindex="0"]{cursor:pointer}.stepper-step[tabindex="0"]:hover{background:var(--bg-tertiary)}.stepper-icon{width:40px;height:40px;border-radius:50%;background:var(--bg-tertiary);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);border:2px solid var(--border);transition:all .3s}.stepper-step.active .stepper-icon{background:var(--primary);border-color:var(--primary);color:#fff}.stepper-step.completed .stepper-icon{background:var(--success);border-color:var(--success);color:#fff}.stepper-label{font-size:13px;font-weight:500;color:var(--text-secondary)}.stepper-step.active .stepper-label{color:var(--primary)}.stepper-step.completed .stepper-label{color:var(--success)}.stepper-line{width:60px;height:2px;background:var(--border);margin:-20px 8px 0;transition:background .3s}.form-section{padding:20px 0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.form-grid-3{grid-template-columns:repeat(3,1fr)}.form-grid-4{grid-template-columns:repeat(4,1fr)}.form-group{margin-bottom:0}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-group .required{color:var(--danger)}.form-group.has-error input,.form-group.has-error select{border-color:var(--danger)}.form-group.has-error input:focus,.form-group.has-error select:focus{box-shadow:0 0 0 3px #ef44441a}.error-text{display:block;font-size:12px;color:var(--danger);margin-top:4px}.help-text{display:block;font-size:12px;color:var(--text-secondary);margin-top:4px}.help-text.help-warning{color:var(--danger)}.form-group-span-2{grid-column:span 2}.input-with-prefix{display:flex;align-items:stretch}.input-prefix{display:flex;align-items:center;padding:0 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-right:none;border-radius:8px 0 0 8px;color:var(--text-secondary);font-size:14px}.input-with-prefix input{border-radius:0 8px 8px 0}.selected-receptor-info{background:var(--bg-secondary);border-radius:8px;padding:12px 16px;margin-bottom:16px}.selected-receptor-info .info-row{display:flex;justify-content:space-between;padding:4px 0;font-size:13px}.selected-receptor-info .info-label{color:var(--text-secondary)}.selected-receptor-info .info-value{color:var(--text-primary);font-weight:500}.conceptos-section{padding:20px 0}.conceptos-list{display:flex;flex-direction:column;gap:16px}.concepto-card{background:var(--bg-secondary);border-radius:12px;overflow:visible}.concepto-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);border-radius:12px 12px 0 0}.concepto-num{font-size:13px;font-weight:600;color:var(--text-secondary)}.concepto-body{padding:16px;display:flex;flex-direction:column;gap:12px}.unified-search{position:relative}.unified-search-input-wrap{position:relative;display:flex;align-items:center}.unified-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none;z-index:1;width:16px!important;height:16px!important;min-width:16px}.unified-search-input{width:100%;padding:10px 36px;padding-left:36px!important;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s}.unified-search-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.unified-search-input.has-error{border-color:var(--danger)}.unified-search-input::placeholder{color:var(--text-muted)}.unified-search-spinner{position:absolute;right:10px;color:var(--primary)}.unified-search-clear{position:absolute;right:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:4px}.unified-search-clear:hover{color:var(--text-primary);background:var(--bg-tertiary)}.unified-search-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000001f;max-height:300px;overflow-y:auto;padding:4px}.unified-search-section{padding:2px 0}.unified-search-section+.unified-search-section{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.unified-search-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:6px 12px 4px}.unified-search-item{display:flex;align-items:center;width:100%;padding:8px 12px;border:none;background:none;cursor:pointer;border-radius:8px;text-align:left;gap:10px;transition:background .15s}.unified-search-item:hover{background:var(--bg-tertiary)}.unified-search-item-local{justify-content:space-between}.unified-search-item-desc{font-size:13px;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unified-search-item-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.unified-search-item-badge{font-size:11px;color:var(--text-muted);background:var(--bg-secondary);padding:2px 8px;border-radius:4px;font-family:monospace;flex-shrink:0}.unified-search-item-precio{font-size:13px;color:var(--primary);font-weight:600;white-space:nowrap}.unified-search-empty{padding:16px;text-align:center;font-size:13px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;gap:8px}.concepto-catalog-select select{width:100%}.concepto-catalog-empty{display:flex;flex-direction:column;gap:4px;padding:10px 14px;background:var(--bg-tertiary);border-radius:8px;font-size:13px;color:var(--text-secondary)}.concepto-fields-divider{height:1px;background:var(--border);margin:4px 0}.guardar-catalogo-check{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:8px;cursor:pointer;font-size:13px;color:var(--text-secondary);transition:background .15s}.guardar-catalogo-check:hover{background:var(--primary-light);color:var(--primary)}.guardar-catalogo-check input[type=checkbox]{accent-color:var(--primary);width:16px;height:16px;cursor:pointer}.guardar-catalogo-check span{-webkit-user-select:none;user-select:none}.importe-display{padding:10px 12px;background:var(--bg-tertiary);border-radius:8px;font-size:16px;font-weight:600;color:var(--text-primary)}.btn-add-concepto{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:none;border:2px dashed var(--border);border-radius:12px;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;margin-top:16px}.btn-add-concepto:hover{border-color:var(--primary);color:var(--primary);background:#3b82f60d}.totales-card{background:var(--bg-secondary);border-radius:12px;padding:20px;margin-top:24px}.totales-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px;color:var(--text-secondary)}.totales-row span:last-child{font-weight:500;color:var(--text-primary)}.totales-total{border-top:2px solid var(--border);margin-top:8px;padding-top:16px;font-size:18px;font-weight:600}.totales-total span{color:var(--text-primary)!important}.preview-section{padding:20px 0}.preview-document{background:var(--bg-primary);border-radius:12px;padding:32px;border:1px solid var(--border);box-shadow:0 4px 6px -1px #0000000d,0 2px 4px -2px #0000000d}.preview-doc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--primary)}.preview-doc-tipo{display:flex;gap:8px;align-items:center}.preview-doc-serie{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.serie-label{font-size:11px;text-transform:uppercase;color:var(--text-secondary);font-weight:600}.serie-badge{background:var(--bg-tertiary);padding:6px 16px;border-radius:6px;font-family:SF Mono,Monaco,monospace;font-size:16px;font-weight:700;color:var(--text-primary)}.preview-parties-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.preview-party-card{display:flex;flex-direction:column;gap:4px;padding:16px;background:var(--bg-secondary);border-radius:10px;border-left:4px solid var(--secondary)}.preview-party-emisor{border-left-color:var(--primary)}.preview-party-receptor{border-left-color:var(--success)}.party-card-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.preview-party-emisor .party-card-label{color:var(--primary)}.preview-party-receptor .party-card-label{color:var(--success)}.party-card-rfc{font-family:SF Mono,Monaco,monospace;font-size:15px;font-weight:600;color:var(--text-primary)}.party-card-name{font-size:14px;font-weight:500;color:var(--text-primary)}.party-card-detail{font-size:12px;color:var(--text-secondary)}.preview-details-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:24px}.detail-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:12px 8px;background:var(--bg-tertiary);border-radius:10px}.detail-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);font-weight:600}.detail-value{font-size:13px;font-weight:600;color:var(--text-primary)}.preview-relacionado{display:flex;flex-direction:column;gap:4px;padding:12px 16px;background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:10px;margin-bottom:20px}.preview-conceptos-table{margin-bottom:24px}.preview-conceptos-table table{width:100%;border-collapse:collapse}.preview-conceptos-table th{padding:10px 12px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary);background:var(--bg-tertiary);border-bottom:2px solid var(--border)}.preview-conceptos-table td{padding:10px 12px;font-size:13px;color:var(--text-primary);border-bottom:1px solid var(--border)}.preview-conceptos-table tbody tr:last-child td{border-bottom:none}.preview-conceptos-table tbody tr:hover{background:var(--bg-secondary)}.preview-conceptos-table .col-num{width:40px;text-align:center;color:var(--text-secondary)}.preview-conceptos-table .col-clave{width:100px;font-family:SF Mono,Monaco,monospace;font-size:12px}.preview-conceptos-table .col-cant,.preview-conceptos-table .col-precio,.preview-conceptos-table .col-importe{text-align:right;width:110px}.preview-conceptos-table .col-importe{font-weight:600}.preview-totales-box{display:flex;flex-direction:column;gap:8px;margin-left:auto;max-width:300px}.preview-totales-box .totales-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;color:var(--text-secondary)}.preview-totales-box .totales-row span:last-child{font-weight:500;color:var(--text-primary)}.preview-total-highlight{background:var(--primary);color:#fff!important;padding:12px 16px!important;border-radius:8px;margin-top:4px}.preview-total-highlight span{color:#fff!important;font-weight:700!important;font-size:16px!important}.confirm-warning{display:flex;gap:12px;padding:16px;background:#f59e0b14;border:1px solid rgba(245,158,11,.2);border-radius:12px;margin-top:20px;color:#b45309}.confirm-warning strong{display:block;margin-bottom:4px}.confirm-warning p{font-size:13px;margin:0}.error-timbrado-banner{display:flex;gap:16px;padding:20px;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:12px;margin-bottom:20px}.error-timbrado-icon{color:var(--danger);flex-shrink:0;margin-top:2px}.error-timbrado-content h4{color:var(--danger);font-size:15px;margin-bottom:8px}.error-timbrado-message{font-size:14px;color:var(--text-primary);line-height:1.5;word-break:break-word}.error-factura-resumen{margin-bottom:20px}.error-factura-resumen h4{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.error-debug-section{margin-top:16px;border-top:1px solid var(--border);padding-top:16px}.error-debug-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;padding:8px 0}.error-debug-toggle:hover{color:var(--text-primary)}.error-debug-toggle .rotated{transform:rotate(90deg);transition:transform .2s}.error-debug-content{margin-top:12px}.debug-block{margin-bottom:16px}.debug-block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.debug-block-header span{font-size:13px;font-weight:600;color:var(--text-primary)}.debug-pre{background:var(--bg-tertiary);padding:12px;border-radius:8px;max-height:180px;overflow:auto;font-size:12px;font-family:SF Mono,Monaco,monospace;white-space:pre-wrap;word-wrap:break-word;color:var(--text-primary);border:1px solid var(--border)}.btn-icon-warning{color:var(--warning)!important}.btn-icon-warning:hover{background:#f59e0b1a!important}.btn-icon-success{color:var(--success)!important}.btn-icon-success:hover{background:#10b9811a!important}.btn-sm{padding:4px 10px;font-size:12px;border-radius:6px}.btn-outline-danger{color:var(--danger)!important;border-color:var(--danger)!important}.btn-outline-danger:hover{background:#ef444414!important}.footer-actions-left{display:flex;gap:8px}.cancelar-modal{max-width:520px}.cancelar-modal-header{display:flex;align-items:flex-start;gap:14px;padding:20px 24px;border-bottom:1px solid var(--border)}.cancelar-icon-wrapper{display:flex;align-items:center;justify-content:center;width:40px;height:40px;min-width:40px;border-radius:10px;background:#ef44441a;color:var(--danger)}.cancelar-header-text{flex:1}.cancelar-header-text h2{font-size:17px;font-weight:600;color:var(--text-primary);margin:0 0 2px}.cancelar-header-text p{font-size:13px;color:var(--text-secondary);margin:0}.cancelar-modal-body{padding:20px 24px;display:flex;flex-direction:column;gap:20px}.cancelar-factura-card{background:var(--bg-tertiary);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.cancelar-card-row{display:flex;justify-content:space-between;align-items:center}.cancelar-card-label{font-size:12px;color:var(--text-secondary);font-weight:500}.cancelar-card-value{font-size:13px;color:var(--text-primary);font-weight:500}.cancelar-card-total{font-weight:700;font-size:14px}.cancelar-card-uuid{font-family:SF Mono,Fira Code,monospace;font-size:11px;color:var(--text-secondary)}.cancelar-facturas-list{display:flex;flex-direction:column;gap:6px}.cancelar-list-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}.cancelar-factura-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-tertiary);border-radius:8px;font-size:13px}.cancelar-factura-folio{font-weight:600;color:var(--text-primary);min-width:70px}.cancelar-factura-receptor{flex:1;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cancelar-factura-total{font-weight:600;color:var(--text-primary);white-space:nowrap}.cancelar-factura-more{font-size:12px;color:var(--text-secondary);text-align:center;padding:4px}.cancelar-motivo-section{display:flex;flex-direction:column;gap:8px}.cancelar-section-label{font-size:13px;font-weight:600;color:var(--text-primary)}.cancelar-motivo-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cancelar-motivo-option{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;cursor:pointer;transition:all .15s;font-size:13px}.cancelar-motivo-option:hover{border-color:var(--primary);background:#3b82f60a}.cancelar-motivo-option.selected{border-color:var(--primary);background:#3b82f614}.cancelar-motivo-option input[type=radio]{display:none}.cancelar-motivo-code{display:flex;align-items:center;justify-content:center;width:24px;height:24px;min-width:24px;border-radius:6px;background:var(--bg-tertiary);font-size:11px;font-weight:700;color:var(--text-secondary)}.cancelar-motivo-option.selected .cancelar-motivo-code{background:var(--primary);color:#fff}.cancelar-motivo-desc{font-size:12px;color:var(--text-primary);line-height:1.3}.cancelar-modal-footer{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-top:1px solid var(--border);background:var(--bg-secondary);gap:12px}.cancelar-btn-confirm{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s;background:var(--danger);color:#fff;white-space:nowrap}.cancelar-btn-confirm:hover:not(:disabled){background:#dc2626;box-shadow:0 2px 8px #ef44444d}.cancelar-btn-confirm:disabled{opacity:.5;cursor:not-allowed}.cancelar-btn-back{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid var(--border);transition:all .2s;background:var(--bg-primary);color:var(--text-primary);white-space:nowrap}.cancelar-btn-back:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--text-secondary)}@media (max-width: 768px){.preview-parties-grid{grid-template-columns:1fr}.preview-details-grid{grid-template-columns:repeat(2,1fr)}.preview-document{padding:20px}.preview-conceptos-table .col-clave{display:none}.preview-totales-box{max-width:100%}}.total-amount{font-size:24px;font-weight:700}.factura-form-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-top:1px solid var(--border);background:var(--bg-secondary);gap:16px}.footer-step-indicator{font-size:12px;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.footer-nav{display:flex;align-items:center;gap:10px}.btn-footer{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .2s;white-space:nowrap}.btn-footer:disabled{opacity:.5;cursor:not-allowed}.btn-footer-cancel{background:transparent;color:var(--text-secondary);padding:10px 16px}.btn-footer-cancel:hover:not(:disabled){background:var(--bg-tertiary);color:var(--text-primary)}.btn-footer-back{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-footer-back:hover:not(:disabled){background:var(--border)}.btn-footer-next{background:var(--primary);color:#fff;padding:10px 24px}.btn-footer-next:hover:not(:disabled){background:var(--primary-dark)}.btn-footer-submit{background:var(--success);color:#fff;padding:10px 24px}.btn-footer-submit:hover:not(:disabled){background:#059669}.modal-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--border);background:var(--bg-secondary);gap:12px}.footer-actions{display:flex;align-items:center;gap:10px}.btn-success{background:var(--success)}.btn-success:hover{background:#059669}.comprobante-tipo-indicator{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#6366f10f;border:1px solid rgba(99,102,241,.15);border-radius:8px;margin-bottom:16px;font-size:14px;font-weight:500;color:var(--text-secondary)}.comprobante-tipo-indicator .type-badge{margin-left:4px}.factura-search-wrapper{display:flex;align-items:center;gap:10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:8px 14px;margin-bottom:8px;transition:all .2s}.factura-search-wrapper:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.factura-search-icon{color:var(--text-secondary);flex-shrink:0}.factura-search-input{border:none!important;background:none!important;flex:1;font-size:14px;color:var(--text-primary);outline:none!important;padding:0!important;box-shadow:none!important}.facturas-list{max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary)}.factura-list-item{padding:10px 14px;cursor:pointer;border-bottom:1px solid var(--border);transition:background .15s}.factura-list-item:last-child{border-bottom:none}.factura-list-item:hover{background:var(--bg-tertiary)}.factura-list-item.selected{background:#6366f114;border-left:3px solid var(--primary)}.factura-list-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.factura-list-folio{font-weight:600;font-size:14px;color:var(--text-primary)}.factura-list-total{font-weight:600;font-size:14px;color:var(--primary)}.factura-list-meta{display:flex;justify-content:space-between;align-items:center}.factura-list-uuid{font-size:11px;color:var(--text-muted);font-family:monospace;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.factura-list-fecha{font-size:12px;color:var(--text-secondary)}.factura-list-empty{padding:16px;text-align:center;color:var(--text-muted);font-size:13px}.btn-close{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-secondary);border-radius:8px;transition:all .2s}.btn-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.info-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--bg-secondary);border-radius:10px;margin-bottom:20px}.info-banner.info-warning{background:#f59e0b1a;color:#b45309}.info-banner p{margin:0;font-size:13px;line-height:1.5}.file-upload{position:relative}.file-upload input[type=file]{position:absolute;width:0;height:0;opacity:0}.file-upload-label{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--bg-secondary);border:2px dashed var(--border);border-radius:10px;cursor:pointer;transition:all .2s}.file-upload-label:hover{border-color:var(--primary);background:#3b82f60d}.file-upload-label svg{color:var(--text-secondary)}.file-upload-label span{font-size:14px;color:var(--text-secondary)}.font-mono{font-family:SF Mono,Monaco,Consolas,monospace}.text-right{text-align:right}.text-center{text-align:center}.modal-xl{max-width:900px}.factura-modal .modal-body{max-height:60vh;overflow-y:auto}@media (max-width: 768px){.toast-container{left:16px;right:16px;max-width:none}.page-header{flex-direction:column;align-items:flex-start;gap:16px}.header-actions,.header-actions-facturacion{width:100%;flex-wrap:wrap}.btn-group{flex:1}.onboarding-steps{flex-direction:column;align-items:flex-start}.onboarding-step .step-line{width:2px;height:24px;margin:0}.tab-toolbar{flex-direction:column;align-items:stretch}.search-box{min-width:auto;width:100%}.form-grid,.form-grid-3,.form-grid-4{grid-template-columns:1fr}.form-group-span-2{grid-column:span 1}.stepper{overflow-x:auto;justify-content:flex-start;padding:16px}.modal-xl{max-width:100%;height:100%;border-radius:0}.factura-modal .modal-body{max-height:calc(100vh - 200px)}.confirm-modal{margin:16px}}.sat-inline-search{position:relative}.sat-inline-input-wrap{position:relative;display:flex;align-items:center}.sat-inline-input-wrap input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s}.sat-inline-input-wrap input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.sat-inline-input-wrap input.has-error{border-color:var(--danger)}.sat-inline-spinner{position:absolute;right:10px;color:var(--primary)}.sat-inline-dropdown{position:absolute;top:100%;left:0;right:0;z-index:50;margin-top:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000001f;max-height:220px;overflow-y:auto;padding:4px}.sat-inline-item{display:flex;align-items:center;width:100%;padding:8px 12px;border:none;background:none;cursor:pointer;border-radius:8px;text-align:left;gap:10px;transition:background .15s}.sat-inline-item:hover{background:var(--bg-tertiary)}.sat-inline-item-clave{font-size:12px;font-family:monospace;font-weight:600;color:var(--primary);background:#3b82f614;padding:2px 8px;border-radius:4px;flex-shrink:0}.sat-inline-item-desc{font-size:13px;color:var(--text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sat-inline-empty{padding:16px;text-align:center;font-size:13px;color:var(--text-muted)}.modal-lg{max-width:600px}.qr-scanner-container{background:var(--bg-secondary);border-radius:12px;overflow:hidden}.qr-scanner-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.qr-scanner-header h4{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text-primary)}.qr-scanner-header h4 svg{color:var(--primary)}.qr-scanner-video{position:relative;width:100%;aspect-ratio:1;max-height:300px;background:#000}.qr-scanner-video #qr-reader{width:100%!important;height:100%!important}.qr-scanner-video #qr-reader video{width:100%!important;height:100%!important;object-fit:cover}.qr-scanner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#000000b3;color:#fff;gap:12px}.qr-scanner-overlay svg{opacity:.7}.qr-scanner-overlay p{font-size:14px;opacity:.9}.qr-scanner-frame{position:absolute;top:20%;right:20%;bottom:20%;left:20%;border:3px solid var(--primary);border-radius:16px;pointer-events:none;animation:qr-pulse 2s ease-in-out infinite}@keyframes qr-pulse{0%,to{opacity:1}50%{opacity:.5}}.qr-scanner-frame:before,.qr-scanner-frame:after{content:"";position:absolute;width:30px;height:30px;border:4px solid var(--success)}.qr-scanner-frame:before{top:-3px;left:-3px;border-right:none;border-bottom:none;border-radius:12px 0 0}.qr-scanner-frame:after{top:-3px;right:-3px;border-left:none;border-bottom:none;border-radius:0 12px 0 0}.qr-scanner-footer{padding:16px 20px;border-top:1px solid var(--border)}.qr-scanner-footer p{font-size:13px;color:var(--text-secondary);text-align:center}.qr-scanner-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;margin:16px 20px}.qr-scanner-error svg{color:var(--danger);flex-shrink:0}.qr-scanner-error p{font-size:13px;color:var(--danger)}.qr-scanner-success{display:flex;flex-direction:column;align-items:center;gap:12px;padding:30px 20px;text-align:center}.qr-scanner-success svg{color:var(--success)}.qr-scanner-success h4{font-size:16px;font-weight:600;color:var(--text-primary)}.qr-scanner-success p{font-size:13px;color:var(--text-secondary);font-family:var(--font-mono);background:var(--bg-tertiary);padding:8px 16px;border-radius:6px;max-width:100%;overflow:hidden;text-overflow:ellipsis}.portal-tickets{max-width:900px;margin:0 auto;padding:24px}.portal-header{text-align:center;margin-bottom:32px}.portal-header h1{font-size:28px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.portal-header p{font-size:15px;color:var(--text-secondary)}.wizard-steps{display:flex;justify-content:center;gap:8px;margin-bottom:32px}.wizard-step{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;font-size:13px;color:var(--text-tertiary);transition:all .2s}.wizard-step.active{background:var(--primary);border-color:var(--primary);color:#fff}.wizard-step.completed{background:#22c55e1a;border-color:var(--success);color:var(--success)}.wizard-step-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:50%;font-weight:600;font-size:12px}.wizard-step.active .wizard-step-number{background:#ffffff4d}.wizard-step.completed .wizard-step-number{background:var(--success);color:#fff}.wizard-connector{width:40px;height:2px;background:var(--border)}.wizard-connector.completed{background:var(--success)}.step-content{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:24px}.step-title{font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:20px;display:flex;align-items:center;gap:10px}.step-title svg{color:var(--primary)}.search-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.search-option{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;background:var(--bg-primary);border:2px solid var(--border);border-radius:12px;cursor:pointer;transition:all .2s}.search-option:hover{border-color:var(--primary);background:#0ea5e90d}.search-option.active{border-color:var(--primary);background:#0ea5e91a}.search-option svg{color:var(--primary)}.search-option h4{font-size:15px;font-weight:600;color:var(--text-primary)}.search-option p{font-size:13px;color:var(--text-secondary);text-align:center}.manual-search-form{display:flex;flex-direction:column;gap:16px}.search-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.search-field{display:flex;flex-direction:column;gap:6px}.search-field label{font-size:13px;font-weight:500;color:var(--text-secondary)}.search-field input{padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:border-color .2s}.search-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0ea5e926}.search-field input.error{border-color:var(--danger)}.field-error{font-size:12px;color:var(--danger)}.ticket-preview{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;overflow:hidden}.ticket-preview-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.ticket-preview-header h4{font-size:15px;font-weight:600;color:var(--text-primary)}.ticket-status{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.ticket-status.valid{background:#22c55e26;color:var(--success)}.ticket-status.invalid{background:#ef444426;color:var(--danger)}.ticket-status.pending{background:#fbbf2426;color:var(--warning)}.ticket-preview-body{padding:20px}.ticket-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.ticket-detail{display:flex;flex-direction:column;gap:4px}.ticket-detail.full-width{grid-column:1 / -1}.ticket-detail label{font-size:12px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.ticket-detail span{font-size:14px;color:var(--text-primary);font-weight:500}.ticket-detail span.mono{font-family:var(--font-mono)}.ticket-detail span.highlight{color:var(--primary);font-weight:600}.fiscal-form{display:flex;flex-direction:column;gap:20px}.fiscal-section{display:flex;flex-direction:column;gap:12px}.fiscal-section h5{font-size:14px;font-weight:600;color:var(--text-primary);padding-bottom:8px;border-bottom:1px solid var(--border)}.fiscal-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.fiscal-row.three-cols{grid-template-columns:repeat(3,1fr)}.fiscal-field{display:flex;flex-direction:column;gap:6px}.fiscal-field.full-width{grid-column:1 / -1}.fiscal-field label{font-size:13px;font-weight:500;color:var(--text-secondary)}.fiscal-field label .required{color:var(--danger)}.fiscal-field input,.fiscal-field select{padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:border-color .2s}.fiscal-field input:focus,.fiscal-field select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0ea5e926}.fiscal-field input.error,.fiscal-field select.error{border-color:var(--danger)}.confirmation-summary{display:flex;flex-direction:column;gap:20px}.summary-section{background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;overflow:hidden}.summary-section-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-size:14px;font-weight:600;color:var(--text-primary)}.summary-section-header svg{color:var(--primary)}.summary-section-body{padding:16px}.summary-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.summary-row:last-child{border-bottom:none}.summary-row label{font-size:13px;color:var(--text-secondary)}.summary-row span{font-size:13px;font-weight:500;color:var(--text-primary)}.summary-row.total{padding-top:12px;margin-top:8px;border-top:2px solid var(--border)}.summary-row.total label,.summary-row.total span{font-size:16px;font-weight:700}.summary-row.total span{color:var(--primary)}.step-actions{display:flex;justify-content:space-between;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.step-actions .btn{display:flex;align-items:center;gap:8px}.invoice-success{text-align:center;padding:40px 20px}.invoice-success .success-icon{width:80px;height:80px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:#22c55e26;border-radius:50%;color:var(--success)}.invoice-success h2{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.invoice-success p{font-size:15px;color:var(--text-secondary);margin-bottom:24px}.invoice-success .invoice-uuid{font-family:var(--font-mono);font-size:14px;background:var(--bg-tertiary);padding:12px 20px;border-radius:8px;margin-bottom:24px;display:inline-block}.invoice-success .download-buttons{display:flex;justify-content:center;gap:12px;margin-bottom:32px}.portal-tickets-container{max-width:700px;margin:0 auto;padding:24px}.portal-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;overflow:hidden}.portal-stepper{display:flex;align-items:center;justify-content:center;padding:20px 24px;background:var(--bg-tertiary);border-bottom:1px solid var(--border);gap:0}.stepper-item{display:flex;align-items:center}.stepper-step{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;transition:all .2s}.stepper-step.active{background:var(--primary);color:#fff}.stepper-step.completed{color:var(--success)}.stepper-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border-radius:50%}.stepper-step:not(.active):not(.completed) .stepper-icon{background:var(--bg-secondary);color:var(--text-tertiary)}.stepper-step.completed .stepper-icon{background:#22c55e26}.stepper-label{font-size:13px;font-weight:500}.stepper-step:not(.active):not(.completed) .stepper-label{color:var(--text-tertiary)}.stepper-line{width:40px;height:2px;background:var(--border);margin:0 8px}.stepper-line.completed{background:var(--success)}.portal-step{padding:32px 24px}.portal-step-header{text-align:center;margin-bottom:32px}.portal-step-header .step-icon{color:var(--primary);margin-bottom:16px}.portal-step-header .step-icon.success{color:var(--success)}.portal-step-header h2{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.portal-step-header p{font-size:15px;color:var(--text-secondary)}.portal-step-header.success{padding:20px 0}.success-icon-container{width:80px;height:80px;margin:0 auto 20px;display:flex;align-items:center;justify-content:center;background:#22c55e26;border-radius:50%;color:var(--success)}.portal-search-options{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:500px;margin:0 auto}.portal-option-card{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px 24px;background:var(--bg-primary);border:2px solid var(--border);border-radius:16px;cursor:pointer;transition:all .2s;text-align:center}.portal-option-card:hover{border-color:var(--primary);background:#0ea5e90d;transform:translateY(-2px)}.portal-option-card .option-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0ea5e926,#0ea5e90d);border-radius:20px;color:var(--primary)}.portal-option-card h3{font-size:16px;font-weight:600;color:var(--text-primary);margin:0}.portal-option-card p{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.option-badge{display:inline-block;padding:4px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:20px}.option-badge.recommended{background:#22c55e26;color:var(--success)}.portal-manual-search{max-width:450px;margin:0 auto}.back-link{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--text-secondary);margin-bottom:20px;background:none;border:none;cursor:pointer;padding:0}.back-link:hover{color:var(--primary)}.search-form{display:flex;flex-direction:column;gap:16px}.search-form .form-group{display:flex;flex-direction:column;gap:6px}.search-form .form-group label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--text-secondary)}.search-form .form-group label svg{color:var(--text-tertiary)}.search-form .form-group label .required{color:var(--danger)}.search-form .form-group input{padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px;transition:border-color .2s,box-shadow .2s}.search-form .form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0ea5e926}.search-form .form-group.has-error input{border-color:var(--danger)}.search-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.error-text{font-size:12px;color:var(--danger)}.search-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:var(--danger);font-size:13px}.form-actions{display:flex;gap:12px;margin-top:8px}.form-actions .btn-outline{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.form-actions .btn-outline:hover{border-color:var(--primary);color:var(--primary)}.form-actions .btn-primary{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:var(--primary);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.form-actions .btn-primary:hover:not(:disabled){background:var(--primary-dark)}.form-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}.ticket-details-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;overflow:hidden}.ticket-details-card .ticket-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.ticket-details-card .ticket-id{display:flex;flex-direction:column;gap:2px}.ticket-details-card .ticket-id .label{font-size:11px;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.ticket-details-card .ticket-id .value{font-size:15px;font-weight:600;font-family:var(--font-mono);color:var(--primary)}.ticket-details-card .ticket-date{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.ticket-details-card .ticket-location{display:flex;align-items:center;gap:6px;padding:12px 20px;border-bottom:1px solid var(--border);font-size:13px;color:var(--text-secondary)}.ticket-details-card .ticket-conceptos{padding:16px 20px;border-bottom:1px solid var(--border)}.ticket-details-card .ticket-conceptos h4{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.ticket-details-card .concepto-row{display:flex;align-items:center;padding:8px 0;border-bottom:1px dashed var(--border)}.ticket-details-card .concepto-row:last-child{border-bottom:none}.ticket-details-card .concepto-qty{width:40px;font-size:13px;font-weight:500;color:var(--text-secondary)}.ticket-details-card .concepto-desc{flex:1;font-size:13px;color:var(--text-primary)}.ticket-details-card .concepto-importe{font-size:13px;font-weight:500;color:var(--text-primary);font-family:var(--font-mono)}.ticket-details-card .ticket-totals{padding:16px 20px;background:var(--bg-tertiary)}.ticket-details-card .total-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;color:var(--text-secondary)}.ticket-details-card .total-row.total-final{padding-top:12px;margin-top:8px;border-top:2px solid var(--border);font-size:18px;font-weight:700;color:var(--text-primary)}.ticket-details-card .total-row.total-final span:last-child{color:var(--primary)}.portal-actions{display:flex;justify-content:space-between;margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.portal-actions.centered{justify-content:center}.portal-actions .btn-secondary,.portal-actions .btn-primary{display:flex;align-items:center;gap:8px;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.portal-actions .btn-secondary{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary)}.portal-actions .btn-secondary:hover{border-color:var(--text-tertiary)}.portal-actions .btn-primary{background:var(--primary);border:none;color:#fff}.portal-actions .btn-primary:hover:not(:disabled){background:var(--primary-dark)}.portal-actions .btn-primary.btn-success{background:var(--success)}.portal-actions .btn-primary.btn-success:hover:not(:disabled){background:#16a34a}.portal-actions .btn-primary:disabled{opacity:.6;cursor:not-allowed}.portal-step .fiscal-form .form-group,.portal-step .fiscal-form .form-row .form-group{display:flex;flex-direction:column;gap:6px}.portal-step .fiscal-form .form-group label{font-size:13px;font-weight:500;color:var(--text-secondary)}.portal-step .fiscal-form .form-group label .required{color:var(--danger)}.portal-step .fiscal-form .form-group input,.portal-step .fiscal-form .form-group select{padding:12px 14px;border:1px solid var(--border);border-radius:8px;background:var(--bg-primary);color:var(--text-primary);font-size:14px}.portal-step .fiscal-form .form-group input:focus,.portal-step .fiscal-form .form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #0ea5e926}.portal-step .fiscal-form .form-group.has-error input,.portal-step .fiscal-form .form-group.has-error select{border-color:var(--danger)}.portal-step .fiscal-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.factura-result-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:24px}.factura-result-card .factura-info{padding:20px}.factura-result-card .info-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.factura-result-card .info-row:last-child{border-bottom:none}.factura-result-card .info-row .label{font-size:13px;color:var(--text-secondary)}.factura-result-card .info-row .value{font-size:14px;font-weight:500;color:var(--text-primary)}.factura-result-card .info-row .value.uuid{font-family:var(--font-mono);font-size:12px;background:var(--bg-tertiary);padding:4px 8px;border-radius:4px}.factura-result-card .info-row .value.total{font-size:18px;font-weight:700;color:var(--primary)}.factura-result-card .download-buttons{display:flex;gap:12px;padding:0 20px 20px}.factura-result-card .btn-download{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;font-weight:500;text-decoration:none;transition:all .2s}.factura-result-card .btn-download:hover{border-color:var(--primary);color:var(--primary)}.factura-result-card .btn-download.primary{background:var(--primary);border-color:var(--primary);color:#fff}.factura-result-card .btn-download.primary:hover{background:var(--primary-dark)}.factura-result-card .email-notice{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 20px;background:#22c55e1a;border-top:1px solid var(--border);font-size:13px;color:var(--success)}@media (max-width: 768px){.portal-tickets-container{padding:16px}.portal-stepper{flex-wrap:wrap;gap:8px;padding:16px}.stepper-line{display:none}.stepper-step{padding:6px 10px}.stepper-label{display:none}.portal-step{padding:24px 16px}.portal-search-options{grid-template-columns:1fr;gap:16px}.portal-option-card{padding:24px 20px}.portal-option-card .option-icon{width:64px;height:64px;border-radius:16px}.portal-option-card .option-icon svg{width:32px;height:32px}.search-form .form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.portal-step .fiscal-form .form-row{grid-template-columns:1fr}.portal-actions{flex-direction:column;gap:12px}.portal-actions .btn-secondary,.portal-actions .btn-primary{width:100%;justify-content:center}.factura-result-card .download-buttons{flex-direction:column}.ticket-details-card .ticket-header{flex-direction:column;align-items:flex-start;gap:8px}}.ticket-importer{width:100%}.import-step{padding:24px}.import-header{text-align:center;margin-bottom:32px}.import-header .import-icon{color:var(--primary);margin-bottom:16px}.import-header h3{font-size:20px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.import-header p{color:var(--text-secondary);font-size:14px}.upload-zone{border:2px dashed var(--border);border-radius:12px;padding:48px 32px;text-align:center;cursor:pointer;transition:all .2s;background:var(--bg-secondary)}.upload-zone:hover{border-color:var(--primary);background:#3b82f60d}.upload-zone svg{color:var(--text-secondary);margin-bottom:16px}.upload-zone span{display:block;font-size:14px;color:var(--text-primary);margin-bottom:8px}.upload-zone small{font-size:12px;color:var(--text-secondary)}.template-download{text-align:center;margin-top:24px}.template-download .btn-link{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--primary);font-size:14px;cursor:pointer;text-decoration:underline}.template-download .btn-link:hover{color:var(--primary-dark)}.mapping-grid{display:flex;flex-direction:column;gap:16px;max-width:500px;margin:0 auto 24px}.mapping-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:center}.mapping-row label{font-size:14px;font-weight:500;color:var(--text-primary)}.mapping-row label .required{color:var(--danger)}.mapping-row select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:14px;background:#fff;color:var(--text-primary)}.mapping-row select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.import-errors{background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:16px;margin:16px 0}.import-errors .error-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--danger);margin-bottom:4px}.import-errors .error-item:last-child{margin-bottom:0}.import-help-section{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:20px;margin:24px 0}.import-help-section h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 16px}.import-fields-help{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.field-help{display:flex;flex-direction:column;gap:4px;padding:12px;background:#fff;border-radius:8px;border:1px solid var(--border)}.field-help strong{font-size:13px;color:var(--text-primary)}.field-help.required strong:after{content:" (requerido)";color:var(--danger);font-weight:400;font-size:11px}.field-help.optional strong{color:var(--text-secondary)}.field-help span{font-size:12px;color:var(--text-muted)}.import-note{display:flex;align-items:flex-start;gap:8px;margin-top:16px;padding:12px;background:#3b82f61a;border-radius:8px;font-size:13px;color:var(--primary)}.import-note svg{flex-shrink:0;margin-top:2px}@media (max-width: 600px){.import-fields-help{grid-template-columns:1fr}}.import-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.import-actions.centered{justify-content:center}.preview-table-container{overflow-x:auto;border:1px solid var(--border);border-radius:8px;margin-bottom:16px}.preview-table{width:100%;border-collapse:collapse;font-size:13px}.preview-table th{background:var(--bg-tertiary);padding:12px 16px;text-align:left;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.preview-table td{padding:12px 16px;border-bottom:1px solid var(--border);color:var(--text-primary)}.preview-table tbody tr:last-child td{border-bottom:none}.preview-table tbody tr:hover{background:var(--bg-secondary)}.preview-summary{text-align:center;font-size:14px;color:var(--text-secondary);padding:12px;background:var(--bg-secondary);border-radius:8px}.preview-summary strong{color:var(--primary)}.importing-progress{text-align:center;padding:48px}.importing-progress svg{color:var(--primary);margin-bottom:16px}.importing-progress p{color:var(--text-secondary)}.import-results{padding:24px}.result-stats{display:flex;justify-content:center;gap:32px;margin-bottom:24px}.result-stats .stat{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:500}.result-stats .stat.success{color:var(--success)}.result-stats .stat.error{color:var(--danger)}.result-errors{background:#ef44440d;border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:16px}.result-errors h4{font-size:14px;font-weight:600;color:var(--danger);margin-bottom:12px}.result-errors ul{list-style:disc;margin-left:20px;font-size:13px;color:var(--text-secondary)}.result-errors li{margin-bottom:4px}.import-header .success-icon,.import-header .error-icon{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.import-header .success-icon{background:#10b9811a;color:var(--success)}.import-header .error-icon{background:#ef44441a;color:var(--danger)}.modal-large{max-width:700px;width:90%}.modal-large .modal-body{padding:0}@media (max-width: 768px){.mapping-row{grid-template-columns:1fr;gap:8px}.result-stats{flex-direction:column;gap:12px}.preview-table{font-size:12px}.preview-table th,.preview-table td{padding:8px 12px}}.portal-facturacion-publico{min-height:100vh;background:linear-gradient(135deg,#f5f7fa,#e4e8ec);display:flex;align-items:center;justify-content:center;padding:20px}.portal-container{width:100%;max-width:600px;background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000001a;overflow:hidden}.portal-brand{background:linear-gradient(135deg,var(--primary) 0%,#1d4ed8 100%);color:#fff;padding:24px;text-align:center}.portal-brand h1{font-size:24px;font-weight:700;margin:0}.portal-brand span{font-size:14px;opacity:.9}.portal-tabs{display:flex;gap:0;background:var(--bg-tertiary);border-bottom:1px solid var(--border);padding:0}.portal-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 24px;background:var(--bg-secondary);border:none;border-bottom:3px solid transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.portal-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.portal-tab.active{background:var(--bg-primary);color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.portal-tab svg{transition:transform .2s ease}.portal-tab:hover svg{transform:scale(1.1)}.portal-progress{display:flex;justify-content:space-between;padding:24px 32px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.progress-step{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;position:relative}.progress-step span{width:32px;height:32px;border-radius:50%;background:var(--bg-secondary);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:var(--text-secondary);transition:all .3s ease}.progress-step label{font-size:12px;color:var(--text-muted);transition:color .3s ease}.progress-step.active span{background:var(--primary);border-color:var(--primary);color:#fff}.progress-step.active label{color:var(--primary);font-weight:500}.progress-step.completed span{background:var(--success);border-color:var(--success);color:#fff}.progress-step:after{content:"";position:absolute;top:16px;left:calc(50% + 20px);width:calc(100% - 40px);height:2px;background:var(--border)}.progress-step:last-child:after{display:none}.progress-step.completed:after{background:var(--success)}.portal-content{padding:32px}.portal-public-step{animation:fadeInPortal .3s ease}@keyframes fadeInPortal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.portal-public-header{text-align:center;margin-bottom:32px}.portal-public-header .portal-icon{color:var(--primary);margin-bottom:16px}.portal-public-header.success .portal-icon{color:var(--success)}.portal-public-header h1,.portal-public-header h2{font-size:24px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.portal-public-header p{color:var(--text-secondary);margin:0;font-size:14px}.portal-public-options{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.portal-option-card{padding:20px;border:2px solid var(--border);border-radius:12px;text-align:center;cursor:pointer;transition:all .2s ease}.portal-option-card:hover{border-color:var(--primary);background:#3b82f60d}.portal-option-card.active{border-color:var(--primary);background:#3b82f61a}.portal-option-card svg{color:var(--primary);margin-bottom:12px}.portal-option-card h3{font-size:14px;font-weight:600;margin:0 0 4px;color:var(--text-primary)}.portal-option-card p{font-size:12px;color:var(--text-secondary);margin:0}.portal-form{display:flex;flex-direction:column;gap:20px}.portal-form .form-group{display:flex;flex-direction:column;gap:6px}.portal-form .form-group label{font-size:13px;font-weight:500;color:var(--text-primary);display:flex;align-items:center;gap:6px}.portal-form .form-group label svg{color:var(--text-secondary)}.portal-form .form-group input,.portal-form .form-group select{padding:12px 16px;border:1px solid var(--border);border-radius:10px;font-size:15px;transition:all .2s ease}.portal-form .form-group input:focus,.portal-form .form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #3b82f61a}.portal-form .form-group input.input-code{font-size:24px;text-align:center;letter-spacing:4px;font-weight:600;text-transform:uppercase}.portal-form .form-group small{font-size:12px;color:var(--text-muted)}.portal-form .form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.portal-form .btn-primary{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-top:8px}.portal-form .btn-primary:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.portal-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.portal-form .btn-primary.btn-large{padding:16px 32px;font-size:16px}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:none;border:none;color:var(--text-secondary);font-size:13px;cursor:pointer;margin-bottom:16px;border-radius:6px;transition:all .2s ease}.btn-back:hover{background:var(--bg-secondary);color:var(--text-primary)}.portal-form .btn-secondary{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:10px;font-size:14px;cursor:pointer;transition:all .2s ease;margin-top:24px;width:100%}.portal-form .btn-secondary:hover{background:var(--bg-tertiary)}.empresa-banner{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#3b82f61a,#3b82f60d);border:1px solid rgba(59,130,246,.2);border-radius:12px;margin-bottom:24px}.empresa-banner svg{color:var(--primary)}.empresa-banner h3{font-size:16px;font-weight:600;margin:0;color:var(--text-primary)}.empresa-banner span{font-size:13px;color:var(--text-secondary)}.ticket-preview{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:24px}.ticket-preview h4{font-size:13px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;text-transform:uppercase;letter-spacing:.5px}.ticket-details{display:flex;flex-wrap:wrap;gap:16px}.ticket-details div{font-size:14px}.ticket-details span{color:var(--text-secondary)}.ticket-details strong{color:var(--text-primary);margin-left:4px}.resultado-step{display:flex;justify-content:center;padding:16px 0}.resultado-card{width:100%;max-width:480px;background:#fff;border-radius:16px;border:1px solid var(--border);overflow:hidden;box-shadow:0 4px 24px #0000000f}.resultado-header{text-align:center;padding:32px 24px 24px;background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border-bottom:1px solid #d1fae5}.resultado-check-icon{width:72px;height:72px;border-radius:50%;background:#dcfce7;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#16a34a}.resultado-header h2{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 6px}.resultado-header p{font-size:14px;color:var(--text-secondary);margin:0}.resultado-body{padding:24px}.resultado-total{text-align:center;padding:20px;background:var(--bg-tertiary);border-radius:12px;margin-bottom:20px}.resultado-total span{display:block;font-size:12px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.resultado-total strong{font-size:28px;font-weight:700;color:var(--text-primary)}.resultado-info-grid{display:flex;flex-direction:column;gap:12px}.resultado-info-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.resultado-info-item:last-child{border-bottom:none}.resultado-info-item span{font-size:13px;color:var(--text-secondary)}.resultado-info-item strong{font-size:13px;color:var(--text-primary);text-align:right;max-width:60%}.resultado-info-item strong.uuid-text{font-family:monospace;font-size:11px;word-break:break-all;line-height:1.4}.resultado-downloads{padding:20px 24px;border-top:1px solid var(--border);text-align:center}.resultado-downloads-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.3px}.resultado-download-buttons{display:flex;gap:10px;justify-content:center}.btn-resultado-download{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:1px solid var(--border);border-radius:10px;font-size:14px;font-weight:500;color:var(--text-primary);background:#fff;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-resultado-download:hover{background:var(--bg-secondary);border-color:var(--text-secondary)}.btn-resultado-download.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-resultado-download.primary:hover{background:#2563eb;border-color:#2563eb}.resultado-generating-msg{color:var(--text-secondary);font-size:13px;margin:0;padding:8px 0}.resultado-email-notice{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;background:#f0fdf4;font-size:13px;color:var(--text-secondary);border-top:1px solid var(--border)}.resultado-email-notice svg{color:#16a34a;flex-shrink:0}.resultado-email-notice strong{color:var(--text-primary)}.resultado-footer{padding:16px 24px 24px;text-align:center}.btn-resultado-otra{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border:1px dashed var(--border);border-radius:10px;font-size:14px;font-weight:500;color:var(--text-secondary);background:transparent;cursor:pointer;transition:all .2s ease;font-family:inherit;width:100%}.btn-resultado-otra:hover{border-color:var(--primary);color:var(--primary);background:#3b82f60a}@media (max-width: 480px){.resultado-card{border-radius:12px;margin:0 -8px}.resultado-header{padding:24px 16px 20px}.resultado-body{padding:16px}.resultado-total strong{font-size:24px}.resultado-download-buttons{flex-direction:column}.btn-resultado-download{justify-content:center}.resultado-downloads{padding:16px}.resultado-footer{padding:12px 16px 20px}}.portal-footer{text-align:center;padding:16px;border-top:1px solid var(--border);background:var(--bg-tertiary)}.portal-footer p{font-size:12px;color:var(--text-muted);margin:0}.spin{animation:spin 1s linear infinite}@media (max-width: 600px){.portal-facturacion-publico{padding:0}.portal-container{border-radius:0;min-height:100vh}.portal-content{padding:24px 20px}.portal-progress{padding:16px}.progress-step label{font-size:10px}.portal-public-options,.portal-form .form-row{grid-template-columns:1fr}.factura-actions{flex-direction:column}.factura-details{flex-direction:column;gap:8px}}.portal-facturacion-publico.branded{background:linear-gradient(135deg,#f8fafc,#e2e8f0)}.branded-container{max-width:560px}.portal-brand-empresa{display:flex;align-items:center;gap:16px;padding:24px 32px;background:#fff;border-bottom:1px solid var(--border)}.empresa-logo{width:64px;height:64px;object-fit:contain;border-radius:12px}.empresa-logo-placeholder{width:64px;height:64px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary) 0%,#1d4ed8 100%);border-radius:12px;color:#fff}.empresa-info{flex:1}.empresa-info h1{font-size:20px;font-weight:700;color:var(--text-primary);margin:0 0 4px;line-height:1.2}.empresa-info span{font-size:13px;color:var(--text-secondary)}.portal-progress.compact{padding:20px 32px}.loading-empresa{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--primary)}.loading-empresa p{color:var(--text-secondary);font-size:14px}.empresa-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;text-align:center;padding:32px}.empresa-error svg{color:var(--danger)}.empresa-error h2{font-size:20px;font-weight:600;color:var(--text-primary);margin:0}.empresa-error p{font-size:14px;color:var(--text-secondary);margin:0 0 16px}.empresa-error .btn-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;background:var(--primary);color:#fff;border-radius:10px;text-decoration:none;font-weight:500;transition:all .2s ease}.empresa-error .btn-primary:hover{background:#2563eb}.portal-footer.branded{background:transparent;border-top:none}.portal-footer.branded p{color:var(--text-muted)}.portal-footer.branded strong{color:var(--primary)}@media (max-width: 600px){.portal-brand-empresa{padding:16px 20px;gap:12px}.empresa-logo,.empresa-logo-placeholder{width:48px;height:48px}.empresa-logo-placeholder svg{width:24px;height:24px}.empresa-info h1{font-size:16px}.empresa-info span{font-size:12px}.portal-progress.compact{padding:16px 20px}}.chat-asistente{display:flex;flex-direction:column;height:600px;max-width:800px;margin:0 auto;background:var(--bg-primary);border-radius:12px;box-shadow:var(--shadow-lg);overflow:hidden}.chat-header{background:linear-gradient(135deg,var(--primary) 0%,#1d4ed8 100%);color:#fff;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.chat-header-info{display:flex;align-items:center;gap:12px}.chat-avatar{width:40px;height:40px;background:#fff3;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-header h3{font-size:16px;font-weight:600;margin:0}.chat-status{font-size:13px;opacity:.9;display:flex;align-items:center;gap:6px;margin-top:2px}.status-dot{width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.chat-badge{display:flex;align-items:center;gap:4px;background:#fff3;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px;background:var(--bg-secondary)}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:var(--secondary)}.message-wrapper{display:flex;gap:10px;max-width:80%;animation:messageSlideIn .3s ease-out}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message-wrapper.user{align-self:flex-end;flex-direction:row-reverse}.message-wrapper.assistant{align-self:flex-start}.message-wrapper .message-avatar{width:32px;height:32px;background:var(--bg-tertiary);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-secondary)}.message-wrapper.user .message-avatar{background:var(--primary);color:#fff}.message-content{display:flex;flex-direction:column;gap:8px;min-width:0}.message-bubble{background:#fff;padding:12px 16px;border-radius:16px;font-size:15px;line-height:1.5;word-wrap:break-word;box-shadow:0 1px 2px #0000000d;border:1px solid var(--border)}.message-wrapper.user .message-bubble{background:var(--primary);color:#fff;border-color:var(--primary)}.message-bubble.error{background:#fee2e2;color:#991b1b;border-color:#fecaca}.message-time{font-size:11px;color:var(--text-secondary);opacity:.7;padding:0 4px}.quick-replies{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.quick-reply-button{background:#fff;border:1px solid var(--border);border-radius:20px;padding:8px 16px;font-size:14px;color:var(--primary);cursor:pointer;transition:all .2s;white-space:nowrap}.quick-reply-button:hover{background:var(--primary);color:#fff;border-color:var(--primary);transform:translateY(-1px);box-shadow:0 2px 4px #3b82f633}.message-actions{display:flex;flex-direction:column;gap:6px}.action-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:#fff;border:1px solid var(--border);border-radius:8px;color:var(--primary);text-decoration:none;font-size:14px;cursor:pointer;font-family:inherit;transition:all .2s}.action-link:hover{background:var(--bg-tertiary);border-color:var(--primary)}.typing-indicator{background:#fff;padding:12px 16px;border-radius:16px;display:inline-flex;gap:4px;align-items:center;border:1px solid var(--border);box-shadow:0 1px 2px #0000000d}.typing-indicator span{width:8px;height:8px;background:var(--text-secondary);border-radius:50%;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.chat-input-container{border-top:1px solid var(--border);padding:16px 20px;background:#fff}.chat-input-wrapper{display:flex;gap:10px;align-items:center}.chat-input{flex:1;padding:12px 16px;border:1px solid var(--border);border-radius:24px;font-size:15px;outline:none;transition:all .2s;background:var(--bg-secondary)}.chat-input:focus{border-color:var(--primary);background:#fff;box-shadow:0 0 0 3px #3b82f61a}.chat-input:disabled{opacity:.6;cursor:not-allowed}.chat-send-button{width:44px;height:44px;background:var(--primary);color:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.chat-send-button:hover:not(:disabled){background:var(--primary-dark);transform:scale(1.05);box-shadow:0 4px 12px #3b82f64d}.chat-send-button:disabled{opacity:.5;cursor:not-allowed}.chat-send-button:active:not(:disabled){transform:scale(.95)}.chat-disclaimer{font-size:11px;color:var(--text-secondary);text-align:center;margin-top:8px;opacity:.7;display:flex;align-items:center;justify-content:center;gap:4px}.chat-validated-data{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:2px solid #86efac;border-radius:12px;padding:16px;margin:0 16px 16px}.validated-header{display:flex;align-items:center;gap:8px;font-weight:600;color:#166534;margin-bottom:12px;font-size:14px}.validated-header svg{color:#22c55e}.validated-items{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.validated-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#15803d;padding:6px 12px;background:#fff;border-radius:6px}.validated-item .check-icon{color:#22c55e;flex-shrink:0}.btn-fill-form{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-fill-form:hover{transform:translateY(-2px);box-shadow:0 4px 12px #22c55e4d}.form-card{background:linear-gradient(135deg,#fff,#f8fafc);border:2px solid #e2e8f0;border-radius:16px;margin:12px 0;overflow:hidden;box-shadow:0 4px 12px #00000014}.form-card-header{background:linear-gradient(135deg,var(--primary) 0%,#2563eb 100%);color:#fff;padding:16px 20px}.form-card-header h4{margin:0;font-size:16px;font-weight:600}.form-card-header p{margin:4px 0 0;font-size:13px;opacity:.9}.form-card-body{padding:20px;display:flex;flex-direction:column;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field label{font-size:13px;font-weight:600;color:var(--text-primary)}.form-field label .required{color:#ef4444;margin-left:2px}.input-wrapper{position:relative;display:flex;align-items:center}.input-prefix{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-secondary);font-weight:500;font-size:14px;pointer-events:none;z-index:1;-webkit-user-select:none;user-select:none}.input-wrapper input{width:100%;padding:10px 36px 10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;transition:all .2s ease}.input-wrapper.has-prefix input{padding-left:56px!important}.input-wrapper input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.input-wrapper input.error{border-color:#ef4444}.input-wrapper .error-icon{position:absolute;right:12px;color:#ef4444}.input-wrapper .success-icon{position:absolute;right:12px;color:#22c55e}.field-error{font-size:12px;color:#ef4444;margin-top:2px}.field-help{font-size:11px;color:var(--text-secondary);opacity:.8;margin-top:2px}.form-card-actions{display:flex;gap:12px;margin-top:16px;justify-content:flex-end}.btn-submit-form{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:linear-gradient(135deg,var(--primary) 0%,#2563eb 100%);color:#fff;border:none;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-submit-form:hover{transform:translateY(-2px);box-shadow:0 4px 12px #2563eb4d}.btn-submit-form:active{transform:translateY(0)}.btn-cancel-form{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;background:#fff;color:var(--text-secondary);border:2px solid #e2e8f0;border-radius:8px;font-weight:600;font-size:14px;cursor:pointer;transition:all .2s ease}.btn-cancel-form:hover{background:#f8fafc;border-color:#cbd5e1;color:var(--text-primary)}.btn-cancel-form:active{transform:scale(.98)}.alert-card{background:#fff;border-radius:12px;margin:12px 0;overflow:hidden;box-shadow:0 2px 8px #00000014;border-left:4px solid}.alert-card.error{border-left-color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fff)}.alert-card.warning{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fff)}.alert-card.info{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,#fff)}.alert-header{display:flex;align-items:center;gap:12px;padding:16px 20px 12px}.alert-icon.error{color:#ef4444}.alert-icon.warning{color:#f59e0b}.alert-icon.info{color:#3b82f6}.alert-header h4{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.alert-message{padding:0 20px;margin:8px 0;color:var(--text-secondary);font-size:14px;line-height:1.5}.alert-suggestions{padding:12px 20px 16px}.suggestions-title{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.alert-suggestions ul{margin:0;padding-left:20px}.alert-suggestions li{font-size:13px;color:var(--text-secondary);margin:4px 0;line-height:1.4}.alert-action-btn{margin:12px 20px 16px;padding:10px 20px;background:linear-gradient(135deg,var(--primary-color) 0%,#2563eb 100%);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 40px)}.alert-action-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.alert-action-btn:active{transform:translateY(0)}@media (max-width: 768px){.chat-asistente{height:500px;border-radius:0}.message-wrapper{max-width:90%}.quick-reply-button{font-size:13px;padding:6px 12px}}.factura-relacionada-info{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin-top:16px}.factura-relacionada-info h4{margin-top:0;margin-bottom:12px;font-size:14px;color:var(--text-secondary)}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.info-grid>div{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;color:var(--text-secondary);font-weight:500}.info-value{font-size:14px;color:var(--text-primary);font-family:SF Mono,Menlo,monospace}.detalle-modal .modal-body{padding:0}.detalle-hero{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 24px 16px;gap:16px}.detalle-hero-badges{display:flex;align-items:center;gap:8px;margin-bottom:8px}.detalle-folio{font-size:22px;font-weight:700;color:var(--text-primary);margin:0 0 4px}.detalle-fecha{font-size:13px;color:var(--text-secondary);margin:0}.detalle-hero-total{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.detalle-total-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:2px}.detalle-total-amount{font-size:26px;font-weight:700;color:var(--primary);line-height:1.2}.detalle-total-moneda{font-size:12px;color:var(--text-secondary);font-weight:500}.detalle-uuid-bar{display:flex;align-items:center;gap:8px;padding:8px 24px;background:var(--bg-tertiary);border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:12px}.detalle-uuid-label{font-weight:600;color:var(--text-secondary);white-space:nowrap}.detalle-uuid-value{font-family:SF Mono,Menlo,monospace;color:var(--text-muted);font-size:11px;word-break:break-all}.detalle-parties{display:flex;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--border)}.detalle-party{flex:1}.detalle-party-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 6px}.detalle-party-rfc{font-size:15px;font-weight:600;color:var(--text-primary);font-family:SF Mono,Menlo,monospace}.detalle-party-name{font-size:13px;color:var(--text-secondary);margin-top:2px}.detalle-party-extra{font-size:12px;color:var(--text-muted);margin-top:4px}.detalle-party-arrow{color:var(--text-muted);flex-shrink:0}.detalle-fiscal{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:0;padding:0 24px 20px;margin-top:16px}.detalle-fiscal-item{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid var(--border)}.detalle-fiscal-item:last-child{border-bottom:none}.detalle-fiscal-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.detalle-fiscal-value{font-size:14px;font-weight:500;color:var(--text-primary)}.detalle-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-top:1px solid var(--border);background:var(--bg-secondary);gap:16px}.detalle-modal-footer .footer-nav{display:flex;align-items:center;gap:10px}.pago-summary-card{background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff;border-radius:12px;padding:20px;margin-top:24px}.pago-summary-card h4{margin-top:0;margin-bottom:16px;font-size:16px;font-weight:600}.summary-row{display:flex;justify-content:space-between;padding:8px 0;font-size:14px}.summary-row.summary-total{border-top:2px solid rgba(255,255,255,.3);margin-top:8px;padding-top:12px;font-size:16px;font-weight:600}.highlight-amount{color:#4ade80;font-weight:600;font-size:16px}.preview-payment-details{background:var(--bg-secondary);border-radius:8px;padding:20px;margin:20px 0}.preview-payment-details h4{margin-top:0;margin-bottom:16px;color:var(--text-secondary);font-size:14px;text-transform:uppercase;letter-spacing:.5px}.detail-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border-color)}.detail-row:last-child{border-bottom:none}.detail-value{font-weight:600;color:var(--text-primary);text-align:right}.detail-uuid{font-size:11px;font-family:SF Mono,Menlo,monospace;max-width:300px;word-break:break-all}.highlight-payment{background:linear-gradient(90deg,#4ade801a,#4ade8033);border-radius:6px;padding:12px;margin:8px 0}.highlight-payment .total-amount{color:#4ade80;font-size:20px;font-weight:700}.type-badge.type-info{background:linear-gradient(135deg,#4f46e5,#3b82f6);color:#fff}.empty-state-small{padding:20px;text-align:center;color:var(--text-secondary);background:var(--bg-secondary);border-radius:8px;border:1px dashed var(--border-color)}.loading-text{padding:20px;text-align:center;color:var(--text-secondary)}.super-admin-dashboard{padding:24px;max-width:1400px;margin:0 auto}.super-admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.super-admin-header .header-title{display:flex;align-items:center;gap:12px}.super-admin-header .header-title h1{font-size:28px;font-weight:700;color:var(--text-primary)}.super-admin-badge{background:linear-gradient(135deg,#8b5cf6,#6366f1);color:#fff;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.dashboard-tabs-container{margin-bottom:24px}.dashboard-tabs{display:flex;gap:8px;background:var(--bg-secondary);padding:6px;border-radius:12px;width:fit-content}.tab-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;background:transparent;color:var(--text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s}.tab-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tab-btn.active{background:var(--primary);color:#fff}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center;color:var(--text-secondary)}.access-denied svg{color:var(--danger);margin-bottom:16px}.access-denied h2{color:var(--text-primary);margin-bottom:8px}.period-selector{display:flex;align-items:center;gap:12px;margin-bottom:20px}.period-selector span{color:var(--text-secondary);font-weight:500}.period-btn{padding:8px 16px;border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);border-radius:8px;cursor:pointer;transition:all .2s}.period-btn:hover{border-color:var(--primary);color:var(--primary)}.period-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.info-banner{display:flex;align-items:center;gap:12px;padding:16px;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:12px;margin-bottom:20px;color:#92400e}.cost-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.cost-card{background:var(--bg-primary);border-radius:12px;padding:20px;border:1px solid var(--border)}.cost-card.total{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none}.cost-card.total .cost-card-header,.cost-card.total .cost-card-subtitle{color:#ffffffd9}.cost-card-header{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-secondary);margin-bottom:8px}.cost-card-value{font-size:28px;font-weight:700;color:var(--text-primary)}.cost-card.total .cost-card-value{color:#fff}.cost-card-subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px}.cost-card-change{display:flex;align-items:center;gap:4px;font-size:13px;margin-top:8px}.cost-card-change.positive{color:var(--success)}.cost-card-change.negative{color:var(--danger)}.chart-container{background:var(--bg-primary);border-radius:12px;padding:24px;border:1px solid var(--border);margin-bottom:24px}.chart-container h3{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:16px;color:var(--text-primary)}.service-breakdown{background:var(--bg-primary);border-radius:12px;padding:24px;border:1px solid var(--border)}.service-breakdown h3{display:flex;align-items:center;gap:8px;margin-bottom:20px;font-size:16px;color:var(--text-primary)}.breakdown-content{display:grid;grid-template-columns:1fr 1fr;gap:24px}.service-table{width:100%;border-collapse:collapse}.service-table th,.service-table td{padding:12px;text-align:left;border-bottom:1px solid var(--border)}.service-table th{font-weight:600;color:var(--text-secondary);font-size:13px}.service-name{display:flex;align-items:center;gap:8px}.service-color{width:12px;height:12px;border-radius:3px}.custom-tooltip{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;padding:12px;box-shadow:var(--shadow-lg)}.tooltip-label{font-weight:600;margin-bottom:4px}.stats-section{margin-bottom:32px}.section-title{display:flex;align-items:center;gap:8px;font-size:18px;font-weight:600;color:var(--text-primary);margin-bottom:16px}.stat-card-modern{position:relative;background:var(--bg-primary);border-radius:16px;padding:20px;overflow:hidden;border:1px solid var(--border);transition:transform .2s,box-shadow .2s}.stat-card-modern:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.stat-card-bg{position:absolute;top:0;right:0;width:100px;height:100px;border-radius:50%;opacity:.1;transform:translate(30%,-30%)}.stat-card-purple .stat-card-bg{background:#8b5cf6}.stat-card-blue .stat-card-bg{background:#3b82f6}.stat-card-green .stat-card-bg{background:#10b981}.stat-card-orange .stat-card-bg{background:#f59e0b}.stat-card-pink .stat-card-bg{background:#ec4899}.stat-card-cyan .stat-card-bg{background:#06b6d4}.stat-card-purple .stat-header svg{color:#8b5cf6}.stat-card-blue .stat-header svg{color:#3b82f6}.stat-card-green .stat-header svg{color:#10b981}.stat-card-orange .stat-header svg{color:#f59e0b}.stat-card-pink .stat-header svg{color:#ec4899}.stat-card-cyan .stat-header svg{color:#06b6d4}.stat-card-content{position:relative}.stat-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.stat-label{font-size:14px;font-weight:500;color:var(--text-secondary)}.stat-value-large{font-size:32px;font-weight:700;color:var(--text-primary);line-height:1;margin-bottom:8px}.stat-footer{font-size:13px;color:var(--text-secondary)}.stat-highlight{font-weight:600;color:var(--primary)}.unit-costs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:20px}.unit-cost-card{display:flex;align-items:center;gap:16px;background:var(--bg-primary);border-radius:12px;padding:16px 20px;border:1px solid var(--border)}.unit-cost-icon{width:44px;height:44px;border-radius:10px;background:linear-gradient(135deg,#3b82f6,#2563eb);display:flex;align-items:center;justify-content:center;color:#fff}.unit-cost-info{flex:1;display:flex;flex-direction:column}.unit-cost-label{font-size:13px;color:var(--text-secondary)}.unit-cost-value{font-size:22px;font-weight:700;color:var(--text-primary)}.unit-cost-period{font-size:14px;font-weight:400;color:var(--text-secondary)}.unit-cost-detail{font-size:12px;color:var(--text-secondary);background:var(--bg-secondary);padding:4px 10px;border-radius:20px}.monthly-cost-banner{display:flex;align-items:center;gap:16px;background:linear-gradient(135deg,#10b981,#059669);border-radius:12px;padding:20px 24px;color:#fff}.monthly-cost-banner svg{width:32px;height:32px}.banner-content{display:flex;flex-direction:column}.banner-label{font-size:14px;opacity:.9}.banner-value{font-size:28px;font-weight:700}.ai-stats-container{background:var(--bg-primary);border-radius:16px;padding:24px;border:1px solid var(--border)}.ai-stats-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.ai-stat-item{display:flex;align-items:center;gap:12px;padding:16px;background:var(--bg-secondary);border-radius:12px}.ai-stat-item svg{color:#8b5cf6}.ai-stat-info{display:flex;flex-direction:column}.ai-stat-value{font-size:20px;font-weight:700;color:var(--text-primary)}.ai-stat-label{font-size:12px;color:var(--text-secondary)}.ai-chart-container h4{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.infra-section{background:var(--bg-primary);border-radius:16px;padding:24px;border:1px solid var(--border);margin-bottom:24px}.lambda-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.lambda-metric-card{background:var(--bg-secondary);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.metric-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.metric-icon.invocations{background:linear-gradient(135deg,#3b82f6,#2563eb)}.metric-icon.errors{background:linear-gradient(135deg,#ef4444,#dc2626)}.metric-icon.rate{background:linear-gradient(135deg,#f59e0b,#d97706)}.metric-icon.cost{background:linear-gradient(135deg,#10b981,#059669)}.metric-content{display:flex;flex-direction:column}.metric-value{font-size:24px;font-weight:700;color:var(--text-primary)}.metric-label{font-size:13px;color:var(--text-secondary)}.metric-trend{font-size:12px;font-weight:500;padding:4px 8px;border-radius:6px;width:fit-content}.metric-trend.positive{background:#10b9811a;color:var(--success)}.metric-trend.negative{background:#ef44441a;color:var(--danger)}.metric-trend.neutral{background:var(--bg-tertiary);color:var(--text-secondary)}.functions-table-container{overflow-x:auto}.modern-table{width:100%;border-collapse:collapse}.modern-table th,.modern-table td{padding:14px 16px;text-align:left}.modern-table th{background:var(--bg-secondary);font-weight:600;color:var(--text-secondary);font-size:13px;text-transform:uppercase;letter-spacing:.5px}.modern-table th:first-child{border-radius:8px 0 0 8px}.modern-table th:last-child{border-radius:0 8px 8px 0}.modern-table td{border-bottom:1px solid var(--border)}.modern-table tbody tr:hover{background:var(--bg-secondary)}.function-name{display:flex;align-items:center;gap:8px}.function-name code{font-weight:500}.rate-badge{padding:4px 10px;border-radius:20px;font-size:12px;font-weight:600}.rate-badge.low{background:#10b9811a;color:var(--success)}.rate-badge.high{background:#ef44441a;color:var(--danger)}.status-badge{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600}.status-badge.healthy{background:#10b9811a;color:var(--success)}.status-badge.warning{background:#f59e0b1a;color:var(--warning)}.storage-cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:24px}.storage-metric-card{background:var(--bg-secondary);border-radius:12px;padding:20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.storage-metric-card.main{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.storage-metric-card.main svg{color:#fff}.storage-metric-card svg{color:var(--primary)}.storage-metric-content{display:flex;flex-direction:column}.storage-metric-value{font-size:28px;font-weight:700}.storage-unit{font-size:16px;font-weight:400;opacity:.8}.storage-metric-label{font-size:13px;opacity:.8}.storage-cost{font-size:12px;opacity:.7}.buckets-container h4{font-size:14px;color:var(--text-secondary);margin-bottom:16px}.buckets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.bucket-card{background:var(--bg-secondary);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.bucket-header{display:flex;align-items:center;gap:8px}.bucket-header svg{color:var(--primary)}.bucket-name{font-size:13px;font-weight:500;word-break:break-all}.bucket-stats{display:flex;gap:24px}.bucket-stat{display:flex;flex-direction:column}.bucket-stat-value{font-size:18px;font-weight:700;color:var(--text-primary)}.bucket-stat-label{font-size:12px;color:var(--text-secondary)}.bucket-cost{font-size:12px;color:var(--text-secondary);background:var(--bg-tertiary);padding:4px 8px;border-radius:6px;width:fit-content}.spinning{animation:spin 1s linear infinite}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:16px}.loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.concept-toggle{display:flex;background:var(--bg-tertiary);border-radius:8px;padding:3px;gap:2px;margin-bottom:12px}.toggle-btn{flex:1;padding:8px 12px;border:none;background:transparent;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.toggle-btn.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px #0000001a;font-weight:600}.predefined-concepts{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.concept-chip{padding:8px 14px;border:1.5px solid var(--border);border-radius:20px;background:#fff;font-size:13px;color:var(--text-secondary);cursor:pointer;transition:all .2s}.concept-chip:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.concept-chip.selected{border-color:var(--primary);background:var(--primary);color:#fff;font-weight:500}.link-info-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:20px}.link-info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;color:var(--text-secondary)}.link-info-row span:last-child{font-weight:500;color:var(--text-primary)}.link-info-row.total{border-top:2px solid var(--border);margin-top:8px;padding-top:12px;font-size:18px;font-weight:700}.link-info-row.total span:last-child{color:var(--primary);font-weight:700}@media (max-width: 768px){.global-stats-grid,.breakdown-content,.unit-costs-grid{grid-template-columns:1fr}}
