:root{--brand: #1863dc;--brand-dark: #0b4fbf;--brand-soft: #eef4ff;--brand-ring: #bcd2fb;--accent: #ff2e63;--bg: #f6f6f7;--panel: #ffffff;--panel-2: #f4f4f5;--border: #e4e4e7;--border-strong: #d4d4d8;--text: #18181b;--text-dim: #71717a;--text-faint: #a1a1aa;--green: #16a34a;--green-soft: #f0fdf4;--yellow: #ca8a04;--yellow-soft: #fefce8;--orange: #ea580c;--red: #dc2626;--red-soft: #fef2f2;--g-allianz: #e7eefc;--g-axa: #eafaf1;--g-asisa: #fff3e6;--g-helvetia: #e2f4f3;--g-santalucia: #f0ecfb;--g-resto: #eef1f6;--radius: 8px;--radius-sm: 6px;--radius-lg: 12px;--radius-xl: 16px;--shadow-xs: 0 1px 2px rgba(24, 24, 27, .04);--shadow-sm: 0 1px 3px rgba(24, 24, 27, .06), 0 1px 2px rgba(24, 24, 27, .04);--shadow-md: 0 4px 12px rgba(24, 24, 27, .08);--shadow-lg: 0 12px 40px rgba(24, 24, 27, .16)}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"cv02","cv03","cv04","cv11";background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}*::-webkit-scrollbar-track{background:transparent}.app{display:flex;min-height:100vh}.sidebar{width:232px;background:var(--panel);border-right:1px solid var(--border);padding:20px 14px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh}.brand{font-weight:700;font-size:15px;padding:4px 10px 20px;letter-spacing:-.01em;color:var(--text)}.brand small{display:block;color:var(--text-dim);font-weight:400;font-size:11.5px;margin-top:3px;letter-spacing:0}.nav-item{text-align:left;background:none;border:none;color:var(--text-dim);padding:9px 12px;border-radius:var(--radius);cursor:pointer;font-size:13.5px;font-weight:500;display:flex;align-items:center;gap:10px;transition:background .12s ease,color .12s ease}.nav-item:hover{background:var(--panel-2);color:var(--text)}.nav-item.active{background:var(--brand-soft);color:var(--brand-dark);font-weight:600}.nav-item:disabled{opacity:.4;cursor:not-allowed}.nav-item:disabled:hover{background:none;color:var(--text-dim)}.sidebar-footer{margin-top:auto;font-size:11.5px;color:var(--text-dim);padding:12px 10px 4px;line-height:1.7;border-top:1px solid var(--border)}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;gap:10px;padding:12px 28px;border-bottom:1px solid var(--border);background:#fffc;-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);position:sticky;top:0;z-index:20;flex-wrap:wrap}.topbar .spacer{flex:1}.content{padding:28px;overflow:auto}.chip{font-size:11.5px;padding:3px 10px;border-radius:999px;font-weight:500;border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;background:var(--panel-2);display:inline-flex;align-items:center;gap:6px}.chip.ok{color:var(--green);border-color:#bbf7d0;background:var(--green-soft)}.chip.warn{color:var(--orange);border-color:#fed7aa;background:#fff7ed}button.btn{background:var(--brand);color:#fff;border:1px solid transparent;padding:0 14px;height:36px;border-radius:var(--radius);cursor:pointer;font-size:13px;font-weight:500;letter-spacing:-.005em;display:inline-flex;align-items:center;justify-content:center;gap:7px;box-shadow:var(--shadow-xs);transition:background .12s ease,box-shadow .12s ease,border-color .12s ease,opacity .12s ease}button.btn:hover{background:var(--brand-dark)}button.btn.ghost{background:var(--panel);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-xs)}button.btn.ghost:hover{background:var(--panel-2);border-color:var(--border-strong)}button.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--brand-ring)}button.btn:disabled{opacity:.5;cursor:default;box-shadow:none}button.btn:disabled:hover{background:var(--brand)}button.btn.ghost:disabled:hover{background:var(--panel);border-color:var(--border)}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-xl);padding:64px 40px;text-align:center;max-width:620px;margin:60px auto;background:var(--panel);box-shadow:var(--shadow-xs)}.dropzone h2{margin:0 0 8px;font-size:19px;font-weight:650;letter-spacing:-.02em}.dropzone p{color:var(--text-dim);margin:6px 0 20px;line-height:1.6}.kpi-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:24px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px;min-width:150px;flex:1;box-shadow:var(--shadow-xs);transition:box-shadow .15s ease,border-color .15s ease}.kpi:hover{box-shadow:var(--shadow-sm);border-color:var(--border-strong)}.kpi .label{color:var(--text-dim);font-size:12px;font-weight:500;letter-spacing:-.005em}.kpi .value{font-size:26px;font-weight:680;margin-top:6px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.kpi .sub{font-size:12px;color:var(--text-dim);margin-top:4px}.section-title{font-size:16px;font-weight:700;margin:30px 0 10px;color:var(--text);letter-spacing:-.015em}.nota{font-size:11.5px;color:var(--text-dim);opacity:.72;line-height:1.55;margin:6px 0 0;max-width:950px}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-xs);max-height:calc(100vh - 210px)}table{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}th,td{padding:9px 14px;text-align:left;white-space:nowrap;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}th:last-child,td:last-child{border-right:none}tbody tr:last-child td{border-bottom:none}thead th{position:sticky;top:0;z-index:3;background:var(--panel-2);color:var(--text-dim);font-weight:600;border-bottom:1px solid var(--border-strong);font-size:11px;text-transform:uppercase;letter-spacing:.045em;padding-top:11px;padding-bottom:11px}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s ease}thead th.sortable:hover{color:var(--brand)}tbody tr{transition:background .1s ease}tbody tr:hover td{background:#18181b09}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.group-head td{background:var(--panel-2);font-weight:650;color:var(--text);letter-spacing:-.005em}table.compacta{font-size:12px}table.compacta th,table.compacta td{padding:5px 8px}table.compacta thead th{padding-top:7px;padding-bottom:7px;font-size:10px}tr.sep-prod>td{border-top:2px solid var(--border-strong)}table.resizable{table-layout:fixed}table.resizable th,table.resizable td{overflow:hidden;text-overflow:ellipsis}th.resizable-th{position:relative}.col-resize{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none}.col-resize:hover{background:var(--brand);opacity:.35}tr.row-alerta>td{background:var(--red-soft)!important;color:#991b1b}tr.row-alerta:hover>td{background:#fee2e2!important}.badge{padding:2px 9px;border-radius:var(--radius-sm);font-size:11.5px;font-weight:600;letter-spacing:-.005em}.mini-bar{height:6px;border-radius:999px;background:var(--panel-2);overflow:hidden;min-width:60px}.mini-bar>span{display:block;height:100%;border-radius:999px}.neg{color:var(--red)}.pos{color:var(--green)}.dim{color:var(--text-dim)}.controls{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}select,input[type=text],input[type=date],input[type=number]{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:0 10px;height:36px;border-radius:var(--radius);font-size:13px;transition:border-color .12s ease,box-shadow .12s ease}select{cursor:pointer}input:focus,select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}input::placeholder{color:var(--text-faint)}.error{color:var(--red);padding:14px}.loading{color:var(--text-dim);padding:40px;text-align:center}.grp-allianz{background:var(--g-allianz)!important}.grp-axa{background:var(--g-axa)!important}.grp-asisa{background:var(--g-asisa)!important}.grp-helvetia{background:var(--g-helvetia)!important}.grp-santalucia{background:var(--g-santalucia)!important}.grp-resto{background:var(--g-resto)!important}.grp-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:7px;vertical-align:middle}.pct-box{width:36px;height:32px;text-align:center;padding:0;font-variant-numeric:tabular-nums;font-size:13px}.pct-box::-webkit-outer-spin-button,.pct-box::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.pct-box[type=number]{-moz-appearance:textfield}.pct-group{display:inline-flex;gap:5px}.plantilla-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 16px;margin-bottom:16px}.no-spin::-webkit-outer-spin-button,.no-spin::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.no-spin{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}
