@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--primary: #D97A12;--primary-rgb: 217, 122, 18;--primary-accent: #D97A12;--primary-light: #f9f0e6;--primary-dark: #b8650d;--bg: #f5f5f7;--surface: #ffffff;--surface-hover: #fafafa;--border: #d2d2d7;--text: #1d1d1f;--text-muted: #6e6e73;--muted: #6e6e73;--success: #1a8a1a;--success-bg: #edfaed;--warning: #b35c00;--warning-bg: #fff4e6;--danger: #c00;--danger-bg: #fff0f0;--shadow-sm: 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 12px rgba(0,0,0,.05);--shadow-md: 0 8px 24px rgba(217,122,18,.08);--shadow-lg: 0 16px 40px rgba(0,0,0,.08);--radius-sm: 8px;--radius: 12px;--radius-lg: 20px;--radius-xl: 28px;--sidebar-w: 240px;--topbar-h: 56px;--transition: .15s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg)}.spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}.spinner-sm{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.access-error-screen{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg);padding:24px}.access-error-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:48px 40px;text-align:center;max-width:380px;box-shadow:var(--shadow)}.access-error-icon{font-size:48px;margin-bottom:16px;color:var(--muted)}.access-error-card h2{font-size:20px;font-weight:600;margin-bottom:8px}.access-error-card p{color:var(--muted);font-size:14px;line-height:1.5;margin-bottom:24px}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg);padding:24px}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);padding:56px 48px;width:100%;max-width:440px;box-shadow:var(--shadow-lg)}.login-brand{text-align:center;margin-bottom:36px}.brand-dot-lg{width:12px;height:12px;background:var(--primary);border-radius:50%;display:inline-block;margin-bottom:12px}.login-title{font-size:28px;font-weight:700;letter-spacing:-.03em;margin-bottom:6px}.login-subtitle{font-size:14px;color:var(--muted)}.login-form{display:flex;flex-direction:column;gap:18px}.login-footer{margin-top:24px;text-align:center;font-size:12px;color:var(--muted)}.layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;transition:transform var(--transition);z-index:100}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 16px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:8px}.brand-dot{width:8px;height:8px;background:var(--primary);border-radius:50%}.brand-name{font-size:15px;font-weight:700;letter-spacing:-.02em}.sidebar-close{display:none}.sidebar-nav{flex:1;padding:12px 8px;display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:14px;font-weight:500;color:var(--muted);text-decoration:none;transition:background var(--transition),color var(--transition)}.nav-item:hover{background:var(--primary-light);color:var(--primary)}.nav-item--active{background:var(--primary);color:#fff;box-shadow:var(--shadow-md)}.nav-item--active:hover{background:var(--primary-dark);color:#fff}.nav-expandable{display:flex;flex-direction:column}.nav-expandable-children{overflow:hidden;max-height:0;transition:max-height .22s ease}.nav-expandable--open .nav-expandable-children{max-height:300px}.nav-item--parent{width:100%;text-align:left;background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit}.nav-item-chevron{margin-left:auto;transition:transform .22s ease;flex-shrink:0}.nav-expandable--open .nav-item-chevron{transform:rotate(180deg)}.nav-item--child{padding-left:40px;font-size:13px;opacity:.9}.page-familia-badge{font-size:11px;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.07em;margin:0 0 2px}.sidebar-footer{padding:16px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}.user-info{flex:1;display:flex;align-items:center;gap:10px;overflow:hidden}.user-avatar{width:32px;height:32px;background:var(--primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;flex-shrink:0}.user-details{overflow:hidden}.user-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:11px;color:var(--muted);text-transform:capitalize}.main-wrapper{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:var(--topbar-h);border-bottom:1px solid var(--border);background:var(--surface);display:flex;align-items:center;padding:0 20px;gap:12px}.topbar-menu{display:none}.topbar-brand{font-size:15px;font-weight:700;flex:1;letter-spacing:-.02em}.main-content{flex:1;overflow-y:auto;padding:40px}.sidebar-overlay{display:none}@media(max-width:768px){.sidebar{position:fixed;inset-y:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar-overlay{display:block;position:fixed;inset:0;background:#0000004d;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.topbar-menu,.sidebar-close{display:flex}.main-content{padding:20px 16px 32px}}.btn-primary{display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;border:none;border-radius:999px;padding:10px 20px;font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background var(--transition),transform var(--transition),box-shadow var(--transition)}.btn-primary:hover{background:var(--primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-full{width:100%;justify-content:center;padding:12px 20px;border-radius:var(--radius-sm)}.btn-ghost{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:999px;padding:9px 18px;font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background var(--transition)}.btn-ghost:hover{background:var(--bg)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--muted);border:none;border-radius:8px;padding:6px;cursor:pointer;transition:background var(--transition),color var(--transition);font-family:var(--font)}.btn-icon:hover{background:var(--bg);color:var(--text)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn-icon--danger:hover{background:#fff0f0;color:#c00}.field,.form-group{display:flex;flex-direction:column;gap:6px}.field label,.form-group label{font-size:13px;font-weight:600;color:var(--text-muted, var(--muted));margin-left:2px;letter-spacing:.01em}.field input,.field select,.field textarea,.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--border);background:#fff;color:var(--text);padding:10px 14px;border-radius:var(--radius-sm);font-size:14px;font-family:var(--font);outline:none;transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);width:100%;appearance:none;box-shadow:var(--shadow-sm)}.field input:hover,.field select:hover,.field textarea:hover,.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#b8b8be;background-color:#fafafa}.field input:focus,.field select:focus,.field textarea:focus,.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb),.12);background-color:#fff}.field input:disabled,.field select:disabled,.field textarea:disabled,.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--bg);color:var(--text-muted, var(--muted));cursor:not-allowed;border-color:#e0e0e5}.field input::placeholder,.field textarea::placeholder,.form-group input::placeholder,.form-group textarea::placeholder{color:#b8b8c2}.field select,.form-group select{padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236e6e73' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;cursor:pointer}.field select:focus,.form-group select:focus{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23D97A12' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}.field--checkbox{flex-direction:row;align-items:flex-start;gap:10px}.field--checkbox label{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text);cursor:pointer;font-weight:400;margin-left:0}.field--checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;padding:0;accent-color:var(--primary)}.field-hint{font-size:12px;color:var(--text-muted, var(--muted));margin-top:2px;margin-left:4px}.field--search{position:relative}.field--search input{padding-left:40px}.field-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted, var(--muted));pointer-events:none}.error-banner{background:#fff0f0;border:1px solid #ffd0d0;color:#c00;border-radius:var(--radius-sm);padding:10px 14px;font-size:13px;display:flex;align-items:center;gap:8px}.page{max-width:1200px;width:100%;margin:0 auto;animation:page-in .4s ease}.page--stretch{max-width:none;height:100%;display:flex;flex-direction:column}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap}.page-title{font-size:24px;font-weight:700;letter-spacing:-.03em}.page-subtitle{font-size:14px;color:var(--muted);margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px;display:flex;align-items:center;gap:16px;cursor:pointer;text-align:left;font-family:var(--font);transition:box-shadow var(--transition),transform var(--transition);box-shadow:var(--shadow)}.dashboard-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);border-color:var(--primary-accent)}.dashboard-card-icon{width:44px;height:44px;background:var(--primary-light);color:var(--primary);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-card-body{flex:1}.dashboard-card-body h3{font-size:15px;font-weight:600;margin-bottom:4px}.dashboard-card-body p{font-size:13px;color:var(--muted);line-height:1.4}.dashboard-card-arrow{color:var(--muted);flex-shrink:0}.dashboard-summary{margin-bottom:8px}.dashboard-summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.dashboard-summary-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.dashboard-summary-cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:24px}.dashboard-summary-empty{font-size:13px;color:var(--muted);padding:12px 0}.summary-stat{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:var(--radius);border:1.5px solid var(--border);background:var(--surface);min-width:150px;flex:1;box-shadow:var(--shadow)}.summary-stat-label{font-size:12px;color:var(--muted);margin-bottom:2px}.summary-stat-value{font-size:26px;font-weight:700;line-height:1}.summary-stat--warning{border-color:var(--primary)}.summary-stat--warning .summary-stat-icon{color:var(--primary)}.summary-stat--success{border-color:#22c55e}.summary-stat--success .summary-stat-icon{color:#22c55e}.summary-stat--neutral .summary-stat-icon{color:var(--muted)}.summary-stat--skeleton{height:72px;flex:1;min-width:150px;background:linear-gradient(90deg,var(--border) 25%,var(--surface-alt, #f4f4f4) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius);border:none}.ffmm-grid{display:flex;flex-direction:column;gap:16px}.ffmm-filters{padding:20px 24px 16px!important}.ffmm-filters-row{display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}.ffmm-filters-row .form-group{flex:1;min-width:130px}.ffmm-search{flex:2!important;min-width:200px!important}.ffmm-filters-actions{display:flex;gap:8px;align-items:flex-end;padding-bottom:1px}.ffmm-filter-summary{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}.ffmm-filter-sep{color:var(--border)}.ffmm-filter-selected{color:var(--primary);font-weight:600}.table-scroll{overflow-x:auto}.table-scroll table{width:100%;border-collapse:collapse;font-size:13px}.table-scroll thead th{padding:12px 14px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:2px solid var(--border);white-space:nowrap;background:var(--surface)}.table-scroll tbody td{padding:11px 14px;border-bottom:1px solid var(--border);vertical-align:middle}.table-scroll tbody tr:last-child td{border-bottom:none}.table-scroll tbody tr:hover td{background:var(--hover, rgba(0,0,0,.025))}.row-selected td{background:color-mix(in srgb,var(--primary) 8%,transparent)!important}.checkbox-cell{width:42px;padding:0 10px!important;vertical-align:middle}.skeleton-line{height:16px;background:linear-gradient(90deg,var(--border) 25%,var(--surface-alt, #f4f4f4) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:4px;margin:6px 4px}.ffmm-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;color:var(--muted);font-size:14px}.ffmm-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:16px;flex-wrap:wrap}.ffmm-toolbar-info{font-size:13px;color:var(--muted)}.input-icon-wrap{position:relative}.input-icon-wrap .input-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.input-icon-wrap input{padding-left:32px}.badge-warning{background:color-mix(in srgb,var(--primary) 12%,transparent);color:var(--primary);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent)}.badge-success{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.toolbar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end;margin-bottom:16px;box-shadow:var(--shadow)}.toolbar-actions{display:flex;gap:8px;align-items:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.card-body{padding:24px}.card-body.center{text-align:center}.card-title{font-size:15px;font-weight:600;padding:16px 16px 4px}.card-subtitle{font-size:13px;color:var(--muted);padding:0 16px 8px}.card--iframe{flex:1;display:flex;flex-direction:column;min-height:0}.card--iframe iframe{flex:1;width:100%;min-height:500px;border:0;background:transparent}.card--chart{display:flex;flex-direction:column;height:400px;position:relative}.chart-container{flex:1;min-height:0;padding:8px 12px 12px}.card-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#fffc;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:var(--radius);font-size:14px;color:var(--muted);z-index:2}.card--table{height:340px;display:flex;flex-direction:column}.kpi-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.kpi-card{background:var(--surface-2, #fff);border:1px solid var(--border, #d2d2d7);border-radius:14px;padding:16px 20px;box-shadow:0 4px 14px #0000000f}.kpi-card__label{font-size:12px;color:var(--text-muted, #6e6e73);margin-bottom:4px}.kpi-card__value{font-size:20px;font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-card__sub{font-size:11px;color:var(--text-muted, #6e6e73);margin-top:3px}.kpi-card--proy .kpi-card__value{color:#ff5c05}.kpi-card--diff-pos .kpi-card__value{color:#1a8c3e}.kpi-card--diff-neg .kpi-card__value{color:#c20}@media(max-width:960px){.kpi-strip{grid-template-columns:1fr}}.report-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:16px}@media(max-width:960px){.report-grid{grid-template-columns:1fr}.card--chart{height:320px}.toolbar{grid-template-columns:1fr 1fr}}@media(max-width:560px){.toolbar{flex-direction:column}}.table-scroll{overflow:auto;max-height:280px;flex:1}.card--table .table-scroll{max-height:none}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:12px 16px;border-bottom:1px solid #f0f0f0}th{color:var(--text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0;background:#f8fafc;z-index:1}tr:last-child td{border-bottom:none}tr:hover td{background:#fafafb}.td-empty{text-align:center;color:var(--muted);padding:32px}.td-mono{font-family:SF Mono,Fira Code,monospace;font-size:12px}.td-name{font-weight:500}.td-date{color:var(--muted)}.table-actions{display:flex;gap:4px}.badge-pill{display:inline-block;border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--muted);margin-top:4px}.role-badge{display:inline-block;border-radius:6px;padding:3px 10px;font-size:11px;font-weight:600;border:1px solid transparent}.role-badge--admin{background:var(--danger-bg);color:var(--danger);border-color:#ffd0d0}.role-badge--user{background:var(--success-bg);color:var(--success);border-color:#c6edc6}.role-badge--viewer{background:var(--bg);color:var(--text-muted);border-color:var(--border)}.status-dot{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500}.status-dot--active{color:#1a8a1a}.status-dot--inactive{color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--radius-xl);width:100%;max-width:640px;box-shadow:0 24px 64px #0000002e;animation:modal-in .3s ease;overflow:hidden}@keyframes modal-in{0%{transform:scale(.95) translateY(10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:32px 32px 16px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:17px;font-weight:600;color:var(--primary)}.modal-body{padding:16px 32px 32px;display:flex;flex-direction:column;gap:20px}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 32px;background:var(--bg);border-top:1px solid var(--border)}.flex-center{display:flex;align-items:center}.gap-sm{gap:8px}.text-muted{color:var(--muted)}code{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-size:12px;font-family:SF Mono,Fira Code,monospace}.mock-banner{background:#fffbe6;border-bottom:1px solid #f5d26a;color:#7a5c00;font-size:13px;font-weight:500;padding:8px 20px;text-align:center;letter-spacing:.01em}.btn-danger{display:inline-flex;align-items:center;gap:6px;background:var(--danger-bg);color:var(--danger);border:1px solid #ffd0d0;border-radius:999px;padding:10px 20px;font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background var(--transition),transform var(--transition)}.btn-danger:hover{background:#ffe0e0;transform:translateY(-1px)}.btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-success{display:inline-flex;align-items:center;gap:6px;background:var(--success-bg);color:var(--success);border:1px solid #c6edc6;border-radius:999px;padding:10px 20px;font-size:14px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background var(--transition),transform var(--transition)}.btn-success:hover{background:#ddf5dd;transform:translateY(-1px)}.btn-success:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-add{display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 16px;font-size:13px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background var(--transition)}.btn-add:hover{background:var(--primary-dark)}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.badge--success{background:var(--success-bg);color:var(--success)}.badge--warning{background:var(--warning-bg);color:var(--warning)}.badge--danger{background:var(--danger-bg);color:var(--danger)}.badge--primary{background:var(--primary-light);color:var(--primary)}.badge--neutral{background:var(--bg);color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px 24px;box-shadow:var(--shadow);transition:transform var(--transition),box-shadow var(--transition)}.stat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.stat-card__label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted);margin-bottom:8px}.stat-card__value{font-size:24px;font-weight:700;letter-spacing:-.02em}.stat-card--primary .stat-card__label svg{color:var(--primary)}.stat-card--warning .stat-card__label svg{color:var(--warning)}.stepper{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:24px;padding:16px 0}.stepper-step{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:80px}.stepper-step span{font-size:12px;font-weight:500;color:var(--muted)}.stepper-circle{width:32px;height:32px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--muted);background:var(--surface);transition:all .2s ease}.stepper-step.active .stepper-circle{background:var(--primary);border-color:var(--primary);color:#fff}.stepper-step.active span{color:var(--primary);font-weight:600}.stepper-step.completed .stepper-circle{background:var(--success);border-color:var(--success);color:#fff}.stepper-step.completed span{color:var(--success)}.stepper-line{flex:1;height:2px;background:var(--border);max-width:80px;margin-bottom:24px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group-full{grid-column:1 / -1}.form-hint{font-size:12px;color:var(--muted);margin-top:2px}.field-error{font-size:12px;color:var(--danger, #cc2200);margin-top:2px;margin-left:2px}.input-error{border-color:var(--danger, #cc2200)!important;box-shadow:0 0 0 4px #cc22001a!important}@media(max-width:640px){.form-grid{grid-template-columns:1fr}}.familia-selector{display:flex;flex-wrap:wrap;gap:10px}.familia-card{display:flex;align-items:center;gap:8px;padding:14px 28px;border:1.5px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;font-size:15px;font-weight:600;font-family:var(--font);color:var(--text);transition:border-color var(--transition),background var(--transition),box-shadow var(--transition);box-shadow:var(--shadow)}.familia-card:hover{border-color:var(--primary);background:var(--primary-light)}.familia-card--active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.15)}.operacion-selector{display:flex;gap:12px;flex-wrap:wrap}.operacion-radio{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border:1.5px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:15px;font-weight:500;font-family:var(--font);color:var(--text);transition:border-color var(--transition),background var(--transition);-webkit-user-select:none;user-select:none}.operacion-radio input[type=radio]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:2px solid var(--border);border-radius:50%;flex-shrink:0;padding:0;cursor:pointer;background:#fff;transition:border-color var(--transition),background var(--transition),box-shadow var(--transition)}.operacion-radio--active input[type=radio]{border-color:var(--primary);background:var(--primary);box-shadow:inset 0 0 0 3px #fff}.operacion-radio:hover{border-color:var(--primary);background:var(--primary-light)}.operacion-radio--active{border-color:var(--primary);background:var(--primary-light);color:var(--primary);font-weight:600;box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1)}.card-header{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.card-header h2{font-size:16px;font-weight:600;margin:0}.card-body{padding:20px}.card-actions{display:flex;align-items:center;gap:12px;padding:16px 0}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.summary-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px}.summary-card-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}.summary-card-value{font-size:15px;font-weight:600;color:var(--text)}.table-totals td{background:#f9f9fb;border-top:2px solid var(--border)}.cuadre-indicator{display:flex;align-items:center;gap:8px;padding:12px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;margin-bottom:8px}.cuadre-ok{background:var(--success-bg);color:var(--success)}.cuadre-error{background:var(--danger-bg);color:var(--danger)}.resultado-success{text-align:center;padding:40px 20px;margin-bottom:24px}.resultado-icon{color:var(--success);margin-bottom:16px}.resultado-success h2{font-size:22px;font-weight:700;margin-bottom:8px}.resultado-success p{font-size:15px;color:var(--muted);max-width:500px;margin:0 auto}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:14px}.alert-warning{background:#fff8e1;border:1px solid #f59e0b;color:#92400e}.txt-preview{background:#1d1d1f;color:#e0e0e0;border-radius:var(--radius-sm);padding:20px;font-family:SF Mono,Fira Code,Consolas,monospace;font-size:12px;line-height:1.6;overflow-x:auto;max-height:400px;overflow-y:auto;white-space:pre}.confirm-dialog-backdrop{border:none;padding:0;background:transparent;max-width:100vw;max-height:100vh}.confirm-dialog-backdrop::backdrop{background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog{background:var(--surface);border-radius:var(--radius);padding:32px;max-width:420px;width:90vw;text-align:center;box-shadow:var(--shadow-lg)}.confirm-dialog-icon{margin-bottom:16px}.confirm-dialog-title{font-size:18px;font-weight:700;margin-bottom:8px}.confirm-dialog-message{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:24px}.confirm-dialog-actions{display:flex;gap:12px;justify-content:center}.confirm-dialog-actions .btn{min-width:120px}.config-sections{display:flex;flex-direction:column;gap:12px}.config-section-card{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px 24px;cursor:pointer;transition:all .15s ease;text-align:left;width:100%;font-family:inherit;color:inherit}.config-section-card:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.config-section-icon{width:44px;height:44px;border-radius:var(--radius-sm);background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.config-section-body{flex:1}.config-section-body h3{font-size:15px;font-weight:600;margin-bottom:2px}.config-section-body p{font-size:13px;color:var(--muted)}.config-section-arrow{color:var(--muted);flex-shrink:0}.filter-bar{margin-bottom:16px}.editing-row td{background:var(--primary-light);vertical-align:top;padding:8px 10px}.editing-row input,.editing-row select{width:100%;font-size:13px}.row-inactive td{opacity:.5}.badge-success{background:var(--success-bg);color:var(--success);border:1px solid var(--success);cursor:pointer;font-size:11px;padding:2px 8px;border-radius:12px;font-weight:600}.badge-muted{background:var(--bg);color:var(--muted);border:1px solid var(--border);cursor:pointer;font-size:11px;padding:2px 8px;border-radius:12px;font-weight:600}.badge-info{background:#e8f4fd;color:#0a6dc2;font-size:11px;padding:2px 8px;border-radius:12px;font-weight:600}.badge-warning{background:var(--warning-bg);color:var(--warning);font-size:11px;padding:2px 8px;border-radius:12px;font-weight:600}.btn-lg{padding:12px 28px;font-size:15px}.btn-sm{padding:6px 14px;font-size:13px}.btn-ghost{background:transparent;border:none;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:14px;font-weight:500;padding:8px 12px;border-radius:var(--radius-sm);transition:all .15s ease}.btn-ghost:hover{color:var(--text);background:var(--bg)}.btn-icon{background:transparent;border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:6px;border-radius:6px;color:var(--muted);transition:all .15s ease}.btn-icon:hover{color:var(--text);background:var(--bg)}.btn-icon.btn-success{color:var(--success)}.btn-icon.btn-success:hover{background:var(--success-bg)}.btn-icon.btn-danger-ghost{color:var(--muted)}.btn-icon.btn-danger-ghost:hover{color:var(--danger);background:var(--danger-bg)}.btn-group{display:inline-flex;gap:4px}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:inherit;transition:all .15s ease}.btn-secondary:hover{border-color:var(--text);background:var(--bg)}.btn-danger{background:var(--danger);color:#fff;border:none;border-radius:var(--radius-sm);padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:inherit}.btn-danger:hover{opacity:.9}.params-list{display:flex;flex-direction:column;gap:16px}.param-row{display:flex;align-items:center;gap:16px}.param-info{flex:1}.param-info label{display:block;font-size:14px;font-weight:500;margin-bottom:2px}.param-key{font-size:12px;color:var(--muted);font-family:SF Mono,Fira Code,Consolas,monospace}.param-input{width:250px;flex-shrink:0}.save-confirmation{font-size:13px;color:var(--success);font-weight:500}@media(max-width:640px){.param-row{flex-direction:column;align-items:stretch}.param-input{width:100%}}.stat-card--success .stat-card__label svg{color:var(--success)}.stat-card--danger .stat-card__label svg{color:var(--danger)}.nav-group{margin-bottom:4px}.nav-group-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;border:none;border-radius:10px;background:none;color:var(--text-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;font-family:var(--font);cursor:pointer;transition:background var(--transition)}.nav-group-toggle:hover{background:var(--surface-hover)}.nav-group-toggle svg{transition:transform .3s ease}.nav-group--open .nav-group-toggle svg{transform:rotate(180deg)}.nav-group-content{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease,opacity .3s ease;opacity:0;overflow:hidden}.nav-group--open .nav-group-content{grid-template-rows:1fr;opacity:1}.nav-group-inner{min-height:0}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;box-shadow:var(--shadow-lg);font-size:14px;min-width:280px;max-width:420px;animation:toast-in .3s ease}.toast--success{border-left:4px solid var(--success)}.toast--error{border-left:4px solid var(--danger)}.toast--warning{border-left:4px solid var(--warning)}.toast-icon{flex-shrink:0}.toast--success .toast-icon{color:var(--success)}.toast--error .toast-icon{color:var(--danger)}.toast--warning .toast-icon{color:var(--warning)}.toast-message{flex:1;line-height:1.4}.toast-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;border-radius:4px;transition:background var(--transition)}.toast-close:hover{background:var(--bg)}@keyframes toast-in{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.flex{display:flex}.flex-column{display:flex;flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mt-1{margin-top:4px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-8{margin-top:32px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.p-0{padding:0}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-6{padding:24px}.grid{display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.col-span-2{grid-column:span 2}.text-xs{font-size:12px}.text-sm{font-size:14px}.text-muted{color:var(--text-muted)}.text-primary{color:var(--primary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.font-medium{font-weight:500}.italic{font-style:italic}.small{font-size:12px}.bg-bg{background:var(--bg)}.rounded{border-radius:var(--radius)}.rounded-full{border-radius:9999px}.relative{position:relative}.absolute{position:absolute}
