@import"https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap";:root{--color-primary: #4A4AFF;--color-orange: #FF6600;--color-green: #80E078;--color-pink: #FFC7CE;--color-sidebar-bg: #10188e;--color-sidebar-hover: #1a22a3;--color-sidebar-border: #1a22a3;--color-sidebar-text: #b7b7ff;--color-sidebar-text-active: #fff;--color-accent: #4A4AFF;--color-accent-hover: #3a3ae0;--color-accent-light: rgba(74, 74, 255, .1);--color-bg: #F6F8FC;--color-surface: #FFFFFF;--color-text-primary: #4C4C4C;--color-text-secondary: #6e6e6e;--color-text-muted: #8E8E93;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-gap-extreme: #FACC15;--color-gap-good: #4ADE80;--color-gap-moderate: #15803D;--color-gap-poor: #EF143F;--color-alert: #EF143F;--color-alert-bg: #fef2f2;--color-opportunity: #F59E0B;--color-opportunity-bg: #fefce8;--color-strength: #48BC66;--color-strength-bg: #f0fdf4;--font-family: "Poppins", -apple-system, "Segoe UI", Roboto, sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 18px;--font-size-xl: 24px;--font-size-2xl: 32px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .08);--sidebar-width: 256px;--header-height: 64px;--transition-fast: .15s ease;--transition-normal: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text-primary);background:var(--color-bg);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased}.layout{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--color-sidebar-bg);color:var(--color-sidebar-text);display:flex;flex-direction:column;overflow-y:auto}.sidebar-brand{padding:var(--space-6);border-bottom:1px solid var(--color-sidebar-border);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);text-align:center;text-decoration:none;color:inherit;cursor:pointer;transition:opacity var(--transition-fast)}.sidebar-brand:hover{opacity:.85}.sidebar-logo{width:100%;max-width:180px;height:auto;border-radius:var(--radius-md);object-fit:contain}.sidebar-brand h1{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:#fff;letter-spacing:-.02em}.sidebar-brand span{font-size:var(--font-size-xs);color:var(--color-text-muted);display:block;margin-top:var(--space-1)}.sidebar nav{flex:1;padding:var(--space-3) 0;display:flex;flex-direction:column;gap:var(--space-1)}.sidebar nav a{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);color:var(--color-sidebar-text);text-decoration:none;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border-left:3px solid transparent;transition:all var(--transition-fast)}.sidebar nav a:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-text-active)}.sidebar nav a.active{background:linear-gradient(90deg,rgba(74,74,255,.18) 0%,transparent 100%);border-left-color:var(--color-accent);color:var(--color-sidebar-text-active);font-weight:var(--font-weight-semibold)}.sidebar nav a.active:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-accent);margin-left:auto;box-shadow:0 0 8px var(--color-accent);animation:sidebar-pulse 2s ease-in-out infinite}@keyframes sidebar-pulse{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.sidebar nav a svg{width:18px;height:18px;flex-shrink:0;opacity:.7}.sidebar nav a.active svg,.sidebar nav a:hover svg{opacity:1}.sidebar-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-sidebar-border);font-size:var(--font-size-xs);color:var(--color-text-muted);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.sidebar-footer-logo{height:36px;width:auto;border-radius:4px;object-fit:contain;margin-right:var(--space-4)}.sidebar-build{padding:6px var(--space-6) var(--space-4);font-size:10px;color:#ffffff59;text-align:center;font-variant-numeric:tabular-nums;font-family:Menlo,Consolas,monospace}.sidebar-user{margin:var(--space-3) var(--space-5);padding:10px 12px;background:#ffffff0a;border:1px solid var(--color-sidebar-border);border-radius:var(--radius-md, 8px);display:flex;align-items:center;gap:10px;min-width:0}.sidebar-user-avatar{width:32px;height:32px;min-width:32px;border-radius:50%;background:linear-gradient(135deg,#4a4aff,#6366f1);color:#fff;font-family:var(--font-family);font-size:12px;font-weight:700;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000002e;-webkit-user-select:none;user-select:none}.sidebar-user-meta{display:flex;flex-direction:column;min-width:0;gap:1px}.sidebar-user-email{font-size:12px;font-weight:var(--font-weight-medium);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-sidebar-text)}.sidebar-logout{display:flex;align-items:center;gap:var(--space-3);margin:var(--space-3) var(--space-5);padding:8px 12px;background:transparent;border:1px solid var(--color-sidebar-border);border-radius:var(--radius-sm, 6px);color:var(--color-sidebar-text);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.sidebar-logout:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-text-active);border-color:var(--color-accent)}.sidebar-logout svg{width:16px;height:16px;opacity:.7}.sidebar-logout:hover svg{opacity:1}.login-page{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-8);background:radial-gradient(at 80% 0%,rgba(74,74,255,.35) 0%,transparent 50%),radial-gradient(at 0% 80%,rgba(99,102,241,.35) 0%,transparent 55%),linear-gradient(135deg,#0b1230,#10188e 60%,#1e1f4d);overflow:hidden}.login-bg-decoration{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.login-bg-orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.55}.login-bg-orb-1{width:360px;height:360px;top:-120px;right:-120px;background:radial-gradient(circle,#4A4AFF 0%,transparent 70%);animation:login-float 14s ease-in-out infinite}.login-bg-orb-2{width:280px;height:280px;bottom:-80px;left:-60px;background:radial-gradient(circle,#6366F1 0%,transparent 70%);animation:login-float 18s ease-in-out -3s infinite}.login-bg-orb-3{width:220px;height:220px;top:40%;left:12%;background:radial-gradient(circle,#818CF8 0%,transparent 70%);animation:login-float 22s ease-in-out -8s infinite;opacity:.4}@keyframes login-float{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,30px) scale(1.08)}}.login-page .login-card{position:relative;z-index:2}.login-card{width:100%;max-width:400px;background:#10188e99;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:0 24px 64px #0006,inset 0 1px #ffffff14;display:flex;flex-direction:column;gap:var(--space-4)}.login-logo{width:160px;height:auto;margin:0 auto var(--space-2);border-radius:var(--radius-md);object-fit:contain}.login-card h1{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:#fff;text-align:center;letter-spacing:-.02em}.login-subtitle{font-size:var(--font-size-sm);color:#ffffffbf;text-align:center;margin-bottom:var(--space-2)}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:#ffffffbf;text-transform:uppercase;letter-spacing:.05em}.login-card label input{padding:10px 12px;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-sm);color:#fff;background:#ffffff14;text-transform:none;letter-spacing:normal;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.login-card label input:focus{outline:none;border-color:#fff;background:#ffffff26;box-shadow:0 0 0 3px #ffffff26}.login-error{font-size:var(--font-size-sm);color:#fff;background:#dc262673;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(254,202,202,.4)}.login-info{font-size:var(--font-size-sm);color:#ecfdf5;background:#10b98159;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid rgba(110,231,183,.4)}.login-alt-action{background:transparent;border:none;color:#ffffffbf;font-family:inherit;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;padding:6px;text-align:center;text-transform:none;letter-spacing:normal;transition:color var(--transition-fast)}.login-alt-action:hover{color:#fff;text-decoration:underline}.skeleton{display:inline-block;background:linear-gradient(90deg,#e2e8f0,#f1f5f9,#e2e8f0);background-size:200% 100%;border-radius:6px;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-text{height:14px}.skeleton-circle{border-radius:50%}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.help-fab{position:fixed;bottom:24px;right:24px;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#4a4aff,#6366f1);color:#fff;border:none;cursor:pointer;box-shadow:0 6px 20px #4a4aff73,0 2px 4px #0000001a;display:inline-flex;align-items:center;justify-content:center;z-index:900;font-family:inherit;transition:transform .18s ease,box-shadow .18s ease}.help-fab:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 10px 28px #4a4aff8c,0 2px 6px #0000001f}.help-fab:focus-visible{outline:3px solid rgba(74,74,255,.45);outline-offset:2px}.help-fab:active{transform:translateY(0) scale(.98)}.help-fab-pulse{animation:help-fab-jiggle 2.4s ease-in-out infinite}.help-fab-pulse:after{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:50%;border:2px solid rgba(74,74,255,.55);animation:help-fab-ripple 2s ease-out infinite;pointer-events:none}@keyframes help-fab-ripple{0%{transform:scale(.85);opacity:1}to{transform:scale(1.4);opacity:0}}@keyframes help-fab-jiggle{0%,to{transform:translateY(0)}10%{transform:translateY(-2px) rotate(-3deg)}20%{transform:translateY(0) rotate(3deg)}30%{transform:translateY(0) rotate(0)}}@media(prefers-reduced-motion:reduce){.login-bg-orb,.help-fab-pulse,.help-fab-pulse:after,.skeleton,.sidebar nav a.active:after,.auth-splash-spinner,.sync-spinner{animation:none!important}.help-fab-pulse:after{opacity:.6;transform:scale(1.1)}.skeleton{background:#e2e8f0}}.auth-splash-spinner{width:36px;height:36px;border:3px solid rgba(74,74,255,.18);border-top-color:var(--color-accent);border-radius:50%;animation:auth-splash-spin .8s linear infinite}@keyframes auth-splash-spin{to{transform:rotate(360deg)}}.login-remember{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;gap:8px;font-size:var(--font-size-sm)!important;font-weight:var(--font-weight-normal);text-transform:none!important;letter-spacing:normal!important;color:#ffffffd9;cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:-4px}.login-remember input[type=checkbox]{width:16px;height:16px;margin:0;padding:0;flex-shrink:0;cursor:pointer;accent-color:#4A4AFF}.login-remember span{line-height:1.2}.login-submit{margin-top:var(--space-2);padding:13px 24px;background:#fff;color:var(--color-sidebar-bg);border:none;border-radius:999px;font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:-.005em;cursor:pointer;box-shadow:0 6px 18px #ffffff26;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.login-submit:hover:not(:disabled){background:#e5e7ff;transform:translateY(-1px);box-shadow:0 10px 24px #ffffff38}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.login-footer{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid rgba(255,255,255,.15);font-size:var(--font-size-xs);color:#ffffffb3}.login-footer-logo{height:24px;width:auto;object-fit:contain;border-radius:3px}.content{flex:1;overflow-y:auto;padding:var(--space-8)}.page-header{margin-bottom:var(--space-6)}.page-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.02em;line-height:var(--line-height-tight)}.page-header p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-1)}.page-header-centered{text-align:center}.export-btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-sm, 13px);font-weight:var(--font-weight-semibold, 600);letter-spacing:-.005em;padding:9px 18px;border-radius:999px;cursor:pointer;box-shadow:0 1px 2px #0f172a0a;transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}.export-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:#eef2ff;box-shadow:0 4px 12px #4a4aff26}.export-btn svg{width:14px;height:14px}.export-row{display:flex;justify-content:flex-end;margin-bottom:var(--space-4)}.filter-bar{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-4) 0;margin-bottom:var(--space-6);border-bottom:1px solid var(--color-border-light);flex-wrap:wrap}.filter-bar label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.filter-bar select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' stroke='%2394a3b8' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.filter-bar select:hover{border-color:var(--color-accent)}.filter-bar select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.filter-group{display:flex;align-items:center;gap:var(--space-2)}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.kpi-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);transition:box-shadow var(--transition-fast),transform var(--transition-fast),border-color var(--transition-fast);position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--color-accent) 0%,#6366F1 100%);opacity:0;transition:opacity var(--transition-fast)}.kpi-card:hover{border-color:#4a4aff66;box-shadow:0 4px 16px #4a4aff14;transform:translateY(-1px)}.kpi-card:hover:before{opacity:1}.kpi-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.kpi-card-with-icon .kpi-label{margin-bottom:0}.kpi-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--color-accent-light);color:var(--color-accent);flex-shrink:0}.kpi-card .kpi-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.kpi-card .kpi-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.kpi-card .kpi-detail{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:var(--space-1)}.heatmap-container{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);overflow-x:auto;margin-bottom:var(--space-6)}.heatmap-container h2{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);padding:var(--space-5) var(--space-5) var(--space-3);color:var(--color-text-primary)}.heatmap-title-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-5) var(--space-2) 0;flex-wrap:wrap}.heatmap-title-row h2{padding-bottom:0}.heatmap-sort-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs, 12px);font-weight:var(--font-weight-semibold, 600);padding:6px 12px;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .15s ease;white-space:nowrap}.heatmap-sort-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.heatmap-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.heatmap-table th{padding:var(--space-3) var(--space-3);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);white-space:nowrap;position:relative;cursor:pointer;transition:color var(--transition-fast)}.heatmap-table th:hover{color:var(--color-accent)}.heatmap-table th:first-child{text-align:left;padding-left:var(--space-5);position:sticky;left:0;background:var(--color-surface);z-index:2;min-width:140px;cursor:default}.heatmap-table th.col-promedio,.heatmap-table td.col-promedio{border-right:2px solid var(--color-border);font-weight:var(--font-weight-bold);cursor:default}.heatmap-table th.col-zone,.heatmap-table td.col-zone{cursor:default;font-weight:var(--font-weight-bold)}.heatmap-table th.col-zone-last,.heatmap-table td.col-zone-last{border-right:2px solid var(--color-border)}.heatmap-table td.col-zone-empty{background:repeating-linear-gradient(45deg,transparent,transparent 6px,rgba(203,213,225,.25) 6px,rgba(203,213,225,.25) 12px)}.heatmap-table tr.row-zone td{font-weight:var(--font-weight-bold)}.heatmap-table tr.row-zone-first td,.heatmap-table tr.row-after-zones td{border-top:2px solid var(--color-border)}.heatmap-sort-btn.active{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-light, #fef3c7)}.heatmap-table td{padding:var(--space-3) 9px;text-align:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-border-light);transition:transform var(--transition-fast);cursor:default;white-space:nowrap}.heatmap-table td:first-child{text-align:left;padding-left:var(--space-5);font-weight:var(--font-weight-medium);color:var(--color-text-primary);position:sticky;left:0;background:var(--color-surface);z-index:1}.heatmap-table .row-tpl td{font-weight:var(--font-weight-bold);border-bottom:2px solid var(--color-border)}.heatmap-table .row-tpl td:first-child{font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.heatmap-table .row-selected td{background:#eef2ff}.heatmap-table .row-selected td:first-child{border-left:3px solid var(--color-accent);font-weight:var(--font-weight-bold);color:var(--color-accent)}.heatmap-table tbody tr:not(.row-tpl):hover td:first-child{color:var(--color-accent)}.heatmap-table td.cell-lit,.heatmap-table th.col-lit{background:var(--color-bg)}.gap-cell{border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);display:inline-block;min-width:56px}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);margin-bottom:var(--space-6)}.card h2{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.trend-header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.trend-header h2{margin-bottom:0}.trend-title-group{display:flex;flex-direction:column;gap:2px}.trend-subtitle{font-size:var(--font-size-sm, 13px);color:var(--color-text-secondary, #64748b);margin:0}.trend-controls{display:inline-flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}.range-pills{display:inline-flex;background:var(--color-border-light);border-radius:999px;padding:3px;gap:2px}.range-pill{border:none;background:transparent;padding:4px 12px;font-size:var(--font-size-xs, 12px);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-secondary, #64748b);border-radius:999px;cursor:pointer;transition:background .15s ease,color .15s ease}.range-pill:hover{color:var(--color-text-primary)}.range-pill.active{background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.cards-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--space-6);margin-bottom:var(--space-6)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:999px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.badge-alert{background:var(--color-alert-bg);color:var(--color-alert)}.badge-opportunity{background:var(--color-opportunity-bg);color:var(--color-opportunity)}.badge-strength{background:var(--color-strength-bg);color:var(--color-strength)}.opportunity-section{margin-bottom:var(--space-8)}.opportunity-section h2{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.opportunity-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-3)}.opportunity-card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-4);border:1px solid var(--color-border-light);display:flex;justify-content:space-between;align-items:center;transition:box-shadow var(--transition-fast)}.opportunity-card:hover{box-shadow:var(--shadow-md)}.opportunity-card.clickable{cursor:pointer}.opportunity-card.clickable:hover{border-color:var(--color-accent)}.opportunity-card .opp-info h3{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.opportunity-card .opp-info p{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.opportunity-card .opp-value{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);text-align:right}.opportunity-card .opp-trend{font-size:var(--font-size-xs);color:var(--color-text-muted)}.back-link{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted);text-decoration:none;margin-bottom:var(--space-4);transition:color var(--transition-fast)}.back-link:hover{color:var(--color-accent)}.detail-header{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2)}.detail-header h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.detail-header .detail-gap{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold)}.product-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.product-table th{text-align:left;padding:var(--space-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--color-border)}.product-table td{padding:var(--space-3);border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary)}.product-table tr:hover td{background:var(--color-bg)}.opportunities-home{margin-top:var(--space-6)}.opportunities-home .section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--space-4)}.opp-sections-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4)}.opportunity-section.compact{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border-light);box-shadow:var(--shadow-sm);margin-bottom:0}.opportunity-section.compact h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.opportunity-section.compact .opportunity-list{grid-template-columns:1fr;gap:var(--space-2)}.opportunity-section.compact .opportunity-card{padding:var(--space-3)}.opportunity-section.compact .opportunity-card .opp-info h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.opportunity-section.compact .opportunity-card .opp-info p{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-top:2px}.opportunity-section.compact .opp-value{font-size:var(--font-size-md)}.detail-store-tag{color:var(--color-accent);font-weight:var(--font-weight-semibold)}.product-table-wrapper{overflow-x:auto}.product-table-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap}.product-table-header h2{margin:0}.product-search-input{flex:0 1 320px;min-width:220px;padding:8px 12px;font-size:var(--font-size-sm);font-family:inherit;border:1px solid var(--color-border);border-radius:6px;background:#fff;color:var(--color-text-primary);outline:none;transition:border-color .15s ease,box-shadow .15s ease}.product-search-input:focus{border-color:#4a4aff;box-shadow:0 0 0 3px #4a4aff1f}.product-search-input::placeholder{color:var(--color-text-muted)}.product-code-cell{font-family:Menlo,Consolas,monospace;font-size:12px;color:var(--color-text-muted);white-space:nowrap}.detail-controls{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) 0;margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border-light);flex-wrap:wrap}.detail-controls .filter-group{display:flex;align-items:center;gap:var(--space-2)}.detail-controls label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.detail-controls select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-8) var(--space-2) var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' stroke='%2394a3b8' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.detail-controls select:hover{border-color:var(--color-accent)}.detail-controls select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.view-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.view-toggle button{padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.view-toggle button:not(:last-child){border-right:1px solid var(--color-border)}.view-toggle button.active{background:var(--color-accent);color:#fff}.view-toggle button:hover:not(.active){background:var(--color-bg)}.toggle-btn{padding:var(--space-2) var(--space-4);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);min-width:52px}.toggle-btn.toggle-off{background:var(--color-surface);color:var(--color-text-muted)}.toggle-btn.toggle-on{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.detail-table-container{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-light);overflow:auto;max-height:calc(100vh - 260px)}.detail-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.detail-table thead{position:sticky;top:0;z-index:3}.detail-table th{padding:var(--space-3);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-surface);border-bottom:2px solid var(--color-border);white-space:nowrap;text-transform:uppercase;letter-spacing:.03em}.detail-table th.col-code{text-align:left;width:110px;min-width:110px;position:sticky;left:0;z-index:4}.detail-table th.col-brand-code{text-align:left;min-width:64px;width:64px;position:sticky;left:0;z-index:4}.detail-table td.col-brand-code{text-align:left;position:sticky;left:0;background:var(--color-surface);z-index:1}.brand-code-badge{display:inline-block;padding:2px 8px;background:var(--color-surface-alt, #f1f5f9);border:1px solid var(--color-border-light, #e2e8f0);border-radius:6px;font-family:var(--font-mono, ui-monospace, SFMono-Regular, monospace);font-size:12px;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);letter-spacing:.04em}.detail-table th.col-brand{text-align:left;min-width:200px;position:sticky;left:64px;z-index:4}.detail-table td.col-brand{text-align:left;position:sticky;left:64px;background:var(--color-surface);z-index:1}.detail-table th.col-count{min-width:70px}.detail-table td.col-count{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.detail-table tr.brand-row{cursor:pointer;transition:background var(--transition-fast)}.detail-table tr.brand-row:hover td{background:var(--color-bg)}.detail-table th.col-product{text-align:left;min-width:280px;position:sticky;left:110px;z-index:4}.detail-table th.col-category{text-align:left;min-width:160px}.detail-table td.col-code{text-align:left;font-family:Menlo,Consolas,monospace;font-size:12px;color:var(--color-text-muted);white-space:nowrap;position:sticky;left:0;background:var(--color-surface);z-index:1}.detail-table th.col-price,.detail-table th.col-store{min-width:100px}.detail-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-light);text-align:center;white-space:nowrap}.detail-table td.col-product{text-align:left;font-weight:var(--font-weight-medium);color:var(--color-text-primary);position:sticky;left:110px;background:var(--color-surface);z-index:1;max-width:320px;overflow:hidden;text-overflow:ellipsis}.detail-table td.col-category{text-align:left;color:var(--color-text-secondary);font-size:var(--font-size-xs)}.detail-table td.col-price{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.detail-table td.col-store{font-weight:var(--font-weight-medium)}.detail-table tr:hover td,.detail-table tr:hover td.col-product{background:var(--color-bg)}.gap-badge{font-weight:var(--font-weight-semibold)}.detail-table th.col-avg{min-width:80px}.detail-table td.col-avg{text-align:center;font-weight:var(--font-weight-bold)}.detail-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.detail-table th.sortable:hover{color:var(--color-accent)}.text-green{color:var(--color-gap-good)}.text-red{color:var(--color-gap-poor)}.text-muted{color:var(--color-text-muted)}.text-center{text-align:center}.mt-4{margin-top:var(--space-4)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.sync-page{max-width:800px;margin:0 auto;padding:var(--space-8) var(--space-6);display:flex;flex-direction:column;gap:var(--space-6)}.sync-page-header h1{font-size:24px;margin-bottom:var(--space-2)}.sync-page-subtitle{color:var(--color-text-muted);line-height:1.5;font-size:14px}.sync-card{background:var(--color-bg-card, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:8px;padding:var(--space-6)}.sync-card h2{font-size:16px;margin-bottom:var(--space-4);font-weight:600}.sync-status-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.sync-stat{padding:var(--space-4);background:var(--color-bg);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.sync-stat:hover{border-color:#4a4aff4d;box-shadow:0 2px 8px #4a4aff0f}.sync-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:600}.sync-value{font-size:14px;font-weight:500;margin-top:2px}.sync-input{width:100%;margin-top:var(--space-2);margin-bottom:var(--space-4);padding:10px 12px;border:1px solid var(--color-border, #e5e7eb);border-radius:6px;font-size:14px;font-family:inherit}.sync-input:focus{outline:2px solid var(--color-accent, #f97316);border-color:transparent}.sync-button-primary{background:var(--color-accent, #4A4AFF);color:#fff;border:none;padding:11px 24px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;letter-spacing:-.005em;box-shadow:0 2px 8px #4a4aff4d;transition:background .15s ease,box-shadow .15s ease,transform .15s ease}.sync-button-primary:hover:not(:disabled){background:#10188e;box-shadow:0 6px 18px #4a4aff66;transform:translateY(-1px)}.sync-button-primary:active:not(:disabled){transform:translateY(0)}.sync-button-primary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.sync-button-secondary{background:#fff;color:var(--color-text-primary);border:1px solid var(--color-border, #E2E8F0);padding:10px 22px;border-radius:999px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:6px;letter-spacing:-.005em;transition:background .15s ease,color .15s ease,border-color .15s ease;box-shadow:0 1px 2px #0f172a0a}.sync-button-secondary:hover{background:#eef2ff;color:var(--color-accent, #4A4AFF);border-color:var(--color-accent, #4A4AFF)}.sync-hint{font-size:12px;color:var(--color-text-muted);margin-top:var(--space-3);line-height:1.5}.sync-hint code{background:#f3f4f6;padding:1px 5px;border-radius:3px;font-size:11px}.sync-msg{margin-top:var(--space-3);font-size:13px;color:var(--color-gap-poor, #dc2626)}.sync-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;z-index:1000}.sync-modal{background:#fff;border-radius:12px;padding:var(--space-8);max-width:480px;width:90%;text-align:center;box-shadow:0 20px 60px #0003}.sync-modal h3{font-size:18px;margin-bottom:var(--space-3)}.sync-modal p{font-size:14px;color:var(--color-text-muted);line-height:1.5}.sync-modal-actions{margin-top:var(--space-6);display:flex;gap:var(--space-3);justify-content:center}.sync-spinner{width:48px;height:48px;border:4px solid #e5e7eb;border-top-color:var(--color-accent, #f97316);border-radius:50%;margin:0 auto var(--space-4);animation:sync-spin .8s linear infinite}@keyframes sync-spin{to{transform:rotate(360deg)}}@keyframes liq-spin{to{transform:rotate(360deg)}}.sync-check{width:48px;height:48px;margin:0 auto var(--space-4);border-radius:50%;background:#16a34a;color:#fff;font-size:28px;line-height:48px;font-weight:700}.sync-cross{width:48px;height:48px;margin:0 auto var(--space-4);border-radius:50%;background:#dc2626;color:#fff;font-size:28px;line-height:48px;font-weight:700}.sync-result-list{list-style:none;padding:0;text-align:left;margin:var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-2)}.sync-result-list li{padding:8px 12px;background:#f9fafb;border-radius:6px;font-size:13px}.sync-error-msg{background:#fef2f2;border:1px solid #fecaca;padding:var(--space-3);border-radius:6px;color:#991b1b!important;font-family:monospace;font-size:12px;text-align:left;word-break:break-word}.evoluciones-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);flex-wrap:wrap}.evoluciones-header h1{font-size:28px;font-weight:700;color:var(--color-text-primary);margin:4px 0;line-height:1.2}.evoluciones-header .page-subtitle{font-size:14px;color:var(--color-text-muted);margin:0}.evoluciones-header .catalog-date{font-size:12px;color:var(--color-text-muted);opacity:.7;margin:6px 0 0}.breadcrumb{font-size:13px;color:var(--color-text-muted);display:flex;gap:6px;align-items:center}.breadcrumb a{color:var(--color-text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--color-accent)}.breadcrumb .current{color:var(--color-text-primary);font-weight:500}.header-actions{display:flex;gap:12px;align-items:center}.back-link-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text-primary);font-size:13px;font-weight:500;text-decoration:none;transition:all .15s}.back-link-pill:hover{border-color:var(--color-accent);color:var(--color-accent)}.filters-card{display:flex;flex-wrap:wrap;gap:16px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:12px;padding:18px 20px;margin-bottom:var(--space-5);box-shadow:0 1px 3px #00000008}.filter-cell{display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-width:0}.filter-cell--compact{flex:0 1 110px}.filter-cell label{font-size:11px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.filter-cell select{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:9px 30px 9px 12px;font-family:var(--font-family);font-size:13px;color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5l3 3 3-3' stroke='%2394a3b8' fill='none' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.filter-cell input[type=text],.filter-cell input[type=search]{width:100%;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:9px 12px;font-family:var(--font-family);font-size:13px;color:var(--color-text-primary);outline:none;transition:border-color var(--transition-fast)}.filter-cell input[type=text]:hover,.filter-cell input[type=search]:hover{border-color:var(--color-accent)}.filter-cell input[type=text]:focus,.filter-cell input[type=search]:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #4a4aff1f}.filter-cell input[type=search]::-webkit-search-cancel-button{cursor:pointer}.filter-cell select:hover:not(:disabled){border-color:var(--color-accent)}.filter-cell select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.filter-cell select:disabled{background-color:#f5f6f8;color:#94a3b8;cursor:not-allowed}.pill-toggle{display:flex;background:#f1f3f7;border-radius:8px;padding:3px;height:38px}.pill-toggle button{flex:1;border:none;background:transparent;padding:0 12px;font-family:var(--font-family);font-size:13px;font-weight:500;color:var(--color-text-muted);cursor:pointer;border-radius:6px;transition:all .15s;white-space:nowrap}.pill-toggle button.active{background:var(--color-accent);color:#fff;box-shadow:0 1px 3px #5b5bd640}.pill-toggle button:not(.active):hover{color:var(--color-text-primary)}.multiselect{position:relative;width:100%}.multiselect-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:9px 12px;height:38px;font-family:var(--font-family);font-size:13px;color:var(--color-text-primary);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);text-align:left}.multiselect-trigger:hover{border-color:var(--color-accent)}.multiselect-trigger.is-open{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.multiselect-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multiselect-chevron{color:#94a3b8;flex-shrink:0;transition:transform .18s ease}.multiselect-trigger.is-open .multiselect-chevron{transform:rotate(180deg)}.multiselect-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px #0f172a14,0 2px 4px #0f172a0d;padding:6px;z-index:50;max-height:320px;overflow-y:auto;animation:multiselect-fade-in .12s ease-out}@keyframes multiselect-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.multiselect-option{display:flex;align-items:center;gap:10px;padding:8px 10px;font-family:var(--font-family);font-size:13px;color:var(--color-text-primary);border-radius:6px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .12s}.multiselect-option:hover{background:#f1f3f7}.multiselect-option input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--color-accent);flex-shrink:0}.multiselect-option-all{font-weight:600}.multiselect-divider{height:1px;background:var(--color-border);margin:4px 0}.sidebar-toggle,.sidebar-backdrop{display:none}@media(max-width:1024px){.filters-card{gap:12px}.filter-cell{flex:1 1 calc(50% - 6px);min-width:160px}.filter-cell--compact{flex:1 1 calc(50% - 6px)}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.opp-sections-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;height:100vh;transform:translate(-100%);transition:transform .28s ease;z-index:1000;box-shadow:2px 0 16px #0000002e}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;border:none;z-index:999;cursor:pointer}.sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;position:fixed;top:12px;left:12px;width:42px;height:42px;z-index:998;background:var(--color-sidebar-bg);color:var(--color-sidebar-text);border:none;border-radius:10px;cursor:pointer;box-shadow:0 2px 8px #0000002e}.content{padding:var(--space-4);padding-top:64px}.filters-card{gap:12px;padding:14px 16px}.filter-cell label{font-size:10px}.detail-table th,.detail-table td{padding:var(--space-2) 8px;font-size:12px}.heatmap-table td{padding:var(--space-2) 6px}.product-table th,.product-table td{padding:var(--space-2) 8px}.cards-grid,.opp-sections-grid{grid-template-columns:1fr}.evoluciones-header{flex-direction:column;align-items:flex-start;gap:12px}.evoluciones-header h1{font-size:20px}.header-actions{width:100%;flex-wrap:wrap}.heatmap-title-row{flex-wrap:wrap;gap:8px}.section-title{font-size:var(--font-size-md)}}@media(max-width:480px){.filters-card{gap:8px;padding:12px 14px}.filter-cell,.filter-cell--compact{flex:1 1 100%;min-width:0}.pill-toggle{height:36px}.pill-toggle button{padding:0 8px;font-size:12px}.content{padding:var(--space-3);padding-top:60px}.detail-table th,.detail-table td{padding:var(--space-1) 6px;font-size:11px}.heatmap-table td{font-size:11px}.gap-cell{min-width:44px}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-2)}.opportunity-list{grid-template-columns:1fr}.evoluciones-header h1{font-size:18px}.breadcrumb{flex-wrap:wrap}}
