:root{--navy: #123a31;--navy-2: #0d2c25;--navy-line: #24463d;--brand: #21c697;--brand-dk: #0e9e75;--brand-600: #0b8663;--brand-050: #e4f7f0;--primary: #0e9e75;--ink: #18213a;--ink-2: #4a566e;--muted: #8a94a8;--bg: #f4f6fa;--surface: #fff;--surface-2: #fafbfd;--border: #e3e8f0;--border-2: #eef1f6;--ok: #2e9e5b;--ok-bg: #e7f5ec;--warn: #c8860c;--warn-bg: #fbf2df;--bad: #d0463f;--bad-bg: #fbeae9;--gray-bg: #eef1f6;--gray-tx: #6b7688;--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(20,29,49,.06), 0 8px 24px rgba(20,29,49,.06);--shadow-sm: 0 1px 2px rgba(20,29,49,.08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:#cdd5e2;border-radius:8px;border:2px solid transparent;background-clip:content-box}.layout{display:flex;min-height:100vh}.sidebar{width:248px;background:linear-gradient(168deg,#164a3d,#103228 58%,#0d2a22);color:#c4cde0;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.side-top{padding:18px 18px 14px;border-bottom:1px solid var(--navy-line)}.brand-logo{display:flex;align-items:center;gap:12px;color:#fff;font-weight:700;font-size:16px;letter-spacing:.3px}.brand-mark{width:32px;height:32px;border-radius:50%;background:var(--brand);display:flex;align-items:center;justify-content:center;flex-shrink:0}.brand-mark svg{width:100%;height:100%;display:block}.side-scroll{overflow-y:auto;flex:1;padding:12px 12px 20px}.nav-group-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:#7fa79b;padding:14px 12px 6px;font-weight:700}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:8px;color:#c4cde0;font-size:13.5px;font-weight:500;border:none;background:none;width:100%;text-align:left;transition:.12s;line-height:1.25}.nav-item svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;flex-shrink:0}.nav-item:hover:not(.disabled){background:var(--navy-line);color:#fff}.nav-item.active{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}.nav-item.disabled{color:#6c8b81;cursor:default}.nav-badge{margin-left:auto;background:#ffffff29;color:#fff;font-size:11px;font-weight:700;padding:1px 8px;border-radius:20px}.nav-item.p1 .nav-badge{background:var(--brand);color:#06251c}.nav-item .soon{margin-left:auto;font-size:9.5px;background:#ffffff1a;padding:1px 7px;border-radius:10px;color:#9fc0b6}.side-foot{padding:14px 18px;border-top:1px solid var(--navy-line);font-size:11.5px;color:#7fa79b}.main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.topbar{height:60px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:16px;padding:0 26px;position:sticky;top:0;z-index:20}.topsearch{flex:1;max-width:440px;position:relative}.topsearch input{width:100%;padding:9px 12px 9px 36px;border:1px solid var(--border);border-radius:20px;background:var(--surface-2);font-size:13.5px}.topsearch input:focus{outline:none;border-color:var(--brand);background:#fff}.topsearch svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;stroke:var(--muted);fill:none;stroke-width:2}.top-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.icon-btn{width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;position:relative}.icon-btn svg{width:18px;height:18px;stroke:var(--ink-2);fill:none;stroke-width:1.9}.icon-btn .dot{position:absolute;top:7px;right:9px;width:8px;height:8px;background:var(--bad);border-radius:50%;border:2px solid #fff}.user-chip{display:flex;align-items:center;gap:10px;padding:5px 10px 5px 5px;border-radius:24px;border:1px solid var(--border);background:var(--surface)}.avatar{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.user-chip .u-name{font-size:13px;font-weight:600;line-height:1.1}.user-chip .u-role{font-size:11px;color:var(--muted)}.content{padding:26px 30px 60px;max-width:1180px;width:100%;margin:0 auto;position:relative;z-index:1}.bg-waves{position:fixed;bottom:0;left:248px;right:0;width:auto;height:300px;z-index:0;pointer-events:none;opacity:.85;-webkit-mask-image:linear-gradient(to top,#000 55%,transparent 100%);mask-image:linear-gradient(to top,#000 55%,transparent 100%)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}.page-head h1{font-size:22px;font-weight:650;letter-spacing:-.2px}.crumb{font-size:12.5px;color:var(--muted);margin-bottom:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 15px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:13.5px}.btn.primary{background:var(--brand-dk);color:#fff}.btn.primary:hover{background:var(--brand-600)}.btn.primary:disabled{opacity:.6;cursor:default}.btn.ghost{background:#fff;border-color:var(--border);color:var(--ink-2)}.btn.ghost:hover{background:var(--surface-2)}.btn.danger{background:var(--bad);color:#fff}.btn.danger:hover{background:#b83a34}.toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap}.toolbar .search{flex:0 1 320px;padding:9px 13px;border:1px solid var(--border);border-radius:20px;background:var(--surface-2);font-size:13.5px}.toolbar .search:focus{outline:none;border-color:var(--brand);background:#fff}.toolbar select{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;font-size:13px;color:var(--ink)}.toolbar .spacer{flex:1}.tag{font-size:12px;font-weight:600;padding:4px 10px;border-radius:20px;background:var(--brand-050);color:var(--brand-dk)}.banner{padding:10px 14px;border-radius:8px;font-size:13px;margin-bottom:14px}.banner.error{background:var(--bad-bg);color:#a5322c;border:1px solid #f0c9c6}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}table{width:100%;border-collapse:collapse;font-size:13.5px}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--border);white-space:nowrap}td{padding:12px 16px;border-bottom:1px solid var(--border-2);vertical-align:middle}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}td.strong{font-weight:600}td.muted{color:var(--muted)}td.rut,.rut{font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}.right{text-align:right}.center{text-align:center}.empty{text-align:center;color:var(--muted);padding:26px}.row-act{display:inline-flex;gap:6px;justify-content:flex-end}.row-act button{width:30px;height:30px;border-radius:7px;border:1px solid var(--border);background:#fff;font-size:14px;line-height:1}.row-act button:hover{border-color:var(--brand);background:var(--brand-050)}.table-foot{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--border)}.pager{display:flex;gap:6px}.pager button{padding:6px 12px;border:1px solid var(--border);background:#fff;border-radius:7px;font-size:12.5px;color:var(--ink-2)}.pager button:disabled{opacity:.45;cursor:default}.pager button:not(:disabled):hover{border-color:var(--brand);color:var(--brand-dk)}.pill{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:20px}.pill.vigente{background:var(--ok-bg);color:var(--ok)}.pill.suspendido{background:var(--warn-bg);color:var(--warn)}.pill.inactivo{background:var(--gray-bg);color:var(--gray-tx)}.orden{display:inline-block;min-width:22px;padding:2px 8px;border-radius:20px;background:var(--brand-050);color:var(--brand-dk);font-weight:700;font-size:12px}td .rut{margin-left:6px;font-size:11.5px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#141d316b;display:flex;align-items:center;justify-content:center;padding:20px;z-index:60}.modal{background:#fff;border-radius:14px;width:100%;max-width:520px;box-shadow:0 24px 64px #141d3140;overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-2)}.modal-head h3{font-size:16px;font-weight:700}.modal-x{border:none;background:none;font-size:22px;color:var(--muted);width:30px;height:30px;border-radius:7px}.modal-x:hover{background:var(--surface-2)}.modal-body{padding:20px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--border-2);background:var(--surface-2)}.modal-foot.inline{margin:18px -20px -20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:block;margin-bottom:14px}.field span{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.field input,.field select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;background:var(--surface-2)}.field input:focus,.field select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-050);background:#fff}.form-error{background:var(--bad-bg);color:#a5322c;border:1px solid #f0c9c6;padding:9px 12px;border-radius:8px;font-size:13px;margin:4px 0 0}.toast{position:fixed;right:24px;bottom:24px;background:var(--navy);color:#fff;padding:12px 18px;border-radius:10px;font-size:13.5px;box-shadow:0 10px 30px #0003;z-index:70}@media (max-width: 900px){.sidebar{display:none}.bg-waves{left:0}.form-grid{grid-template-columns:1fr}}.filtro-mandante{display:block;max-width:460px;margin-bottom:20px}.filtro-mandante span{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}.filtro-mandante select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;background:var(--surface)}.filtro-mandante select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-050)}.asig-table td{padding:10px 16px}.asig-table td select{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13.5px;background:#fff;color:var(--ink)}.asig-table td select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-050)}.btn-del{width:34px;height:34px;border-radius:8px;border:none;background:var(--bad);color:#fff;font-size:15px;line-height:1}.btn-del:hover{background:#b83a34}.asig-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px}.filtros{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.filtros .search{flex:0 1 280px;padding:9px 13px;border:1px solid var(--border);border-radius:20px;background:var(--surface-2);font-size:13.5px}.filtros .search:focus{outline:none;border-color:var(--brand);background:#fff}.filtros select{padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;font-size:13px;color:var(--ink)}.filtros .f-fecha{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2)}.filtros .f-fecha input{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px}.filtros .btn.sm{padding:8px 12px;font-size:12.5px}.filtros .spacer{flex:1}th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}th.sortable:hover{color:var(--brand-dk)}.tabnum{font-variant-numeric:tabular-nums}.pill.info{background:var(--brand-050);color:var(--brand-dk)}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm)}.kpi .k-label{font-size:12.5px;color:var(--ink-2);font-weight:600}.kpi .k-val{font-size:26px;font-weight:700;margin-top:8px;letter-spacing:-.5px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden}.card-head{padding:14px 18px;border-bottom:1px solid var(--border-2)}.card-head h3{font-size:14.5px;font-weight:650}.card-body{padding:16px 18px}.barras{display:flex;flex-direction:column;gap:12px}.barra{display:grid;grid-template-columns:90px 1fr 34px 110px;align-items:center;gap:10px;font-size:13px}.barra .b-label{color:var(--ink-2);font-weight:600}.barra .b-track{height:10px;background:var(--gray-bg);border-radius:6px;overflow:hidden}.barra .b-fill{height:100%;border-radius:6px}.barra .b-val{font-weight:700;text-align:right}.barra .b-monto{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}@media (max-width: 900px){.kpi-row{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}}.nav-item.parent .chev{margin-left:auto;width:16px;height:16px;transition:transform .15s}.nav-item.parent.open .chev{transform:rotate(180deg)}.nav-item.parent.has-active:not(.open){color:#fff}.nav-sub{display:flex;flex-direction:column;gap:2px;padding-left:8px;border-left:2px solid var(--navy-line);margin:2px 0 4px 20px}.nav-item.sub{padding:8px 12px;font-size:12.5px}.nav-item.sub span{padding-left:2px}.page-head p.lead{color:var(--ink-2);font-size:13.5px;margin-top:6px;max-width:680px}.kpi-row.auto{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.kpi .k-sub{font-size:12px;color:var(--muted);margin-top:4px}.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.mod-card{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:6px;transition:.14s}.mod-card:not(:disabled):hover{border-color:var(--brand);box-shadow:var(--shadow);transform:translateY(-2px)}.mod-card:disabled{opacity:.7;cursor:default}.mod-card h4{font-size:14px;font-weight:650}.mod-card p{font-size:12px;color:var(--muted)}.mod-card .m-tag{margin-top:auto;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px;align-self:flex-start}.m-tag.p1{background:var(--warn-bg);color:var(--warn)}.m-tag.p2{background:var(--brand-050);color:var(--brand-dk)}.m-tag.ok{background:var(--ok-bg);color:var(--ok)}.m-tag.soon{background:var(--gray-bg);color:var(--gray-tx)}.act{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--border-2)}.act:last-child{border-bottom:none}.act .a-dot{width:9px;height:9px;border-radius:50%;margin-top:6px;flex-shrink:0}.act .a-body{font-size:13px}.act .a-time{font-size:11.5px;color:var(--muted);margin-top:2px}.rol-switch{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.rol-switch select{padding:6px 10px;border:1px solid var(--border);border-radius:20px;background:var(--surface-2);font-size:12.5px;color:var(--ink);font-weight:600}.tag.readonly{background:var(--gray-bg);color:var(--gray-tx)}.loader{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:15px}.tabs{display:inline-flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:4px;margin-bottom:18px}.tab{border:none;background:none;padding:8px 18px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink-2)}.tab:hover:not(.active){background:var(--surface-2)}.tab.active{background:var(--brand-dk);color:#fff}.callout-info{background:var(--brand-050);color:#0b6e58;border:1px solid #bfe8dc;border-radius:8px;padding:10px 14px;font-size:12.5px;margin-bottom:14px}.avatar.sm{width:28px;height:28px;font-size:11px}input[type=checkbox]{accent-color:var(--brand-dk);width:16px;height:16px;cursor:pointer}.matriz th{font-size:11px}.matriz td,.matriz th{padding:10px 12px}.btn.btn-xs{padding:6px 12px;font-size:12px}.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.login-panel{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:48px clamp(32px,7vw,92px);background:var(--surface)}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:40px}.login-brand .brand-mark{width:40px;height:40px}.lb-name{font-size:17px;font-weight:700;letter-spacing:.2px;line-height:1.1}.lb-sub{font-size:12.5px;color:var(--muted);letter-spacing:.4px}.login-panel h1{font-size:30px;font-weight:650;letter-spacing:-.4px;margin-bottom:10px}.login-lead{color:var(--ink-2);font-size:14.5px;max-width:40ch;margin-bottom:30px}.btn-ms{display:inline-flex;align-items:center;gap:12px;padding:12px 22px 12px 18px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:14.5px;font-weight:600;color:var(--ink);box-shadow:var(--shadow-sm);transition:.14s}.btn-ms svg{width:20px;height:20px;flex-shrink:0}.btn-ms:hover:not(:disabled){border-color:var(--brand);background:var(--brand-050)}.btn-ms:disabled{opacity:.6;cursor:default}.login-error{margin-top:16px;background:var(--bad-bg);color:#97302b;border:1px solid #f2cdca;border-radius:8px;padding:10px 14px;font-size:13px;max-width:46ch}.login-dev{margin-top:22px;background:var(--warn-bg);color:#7a5406;border:1px solid #ecd9a8;border-radius:8px;padding:11px 14px;font-size:12.5px;line-height:1.45;max-width:48ch}.login-foot{margin-top:auto;padding-top:42px;font-size:12.5px;color:var(--muted)}.login-foot a{color:var(--brand-dk)}.login-aside{background:linear-gradient(168deg,#164a3d,#103228 58%,#0d2a22);color:#c4cde0;display:flex;align-items:center;padding:48px clamp(32px,5vw,68px)}.la-inner{max-width:34ch}.login-aside h2{color:#fff;font-size:23px;font-weight:650;letter-spacing:-.2px;margin-bottom:22px}.login-aside ul{list-style:none;display:flex;flex-direction:column;gap:13px}.login-aside li{position:relative;padding-left:24px;font-size:14px;line-height:1.45}.login-aside li:before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:var(--brand)}.la-foot{margin-top:40px;font-size:11.5px;color:#7fa79b;letter-spacing:.3px}@media (max-width: 900px){.login{grid-template-columns:1fr}.login-aside{display:none}}.btn-salir{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface)}.btn-salir svg{width:17px;height:17px;stroke:var(--ink-2);fill:none;stroke-width:1.9}.btn-salir:hover{border-color:var(--bad);background:var(--bad-bg)}.btn-salir:hover svg{stroke:var(--bad)}.dir-linea{display:block;font-size:12px;color:var(--muted);margin-top:2px}.col-check{width:42px}.oc-barra{display:flex;align-items:center;gap:12px;background:var(--brand-050);border:1px solid #bfe8dc;border-radius:8px;padding:10px 14px;margin-bottom:14px;font-size:13.5px;color:#0b6e58}.oc-barra .spacer{flex:1}.orden-fila{display:flex;align-items:center;gap:6px}.orden-fila button{width:26px;height:26px;border-radius:6px;border:1px solid var(--border);background:#fff;font-size:11px;line-height:1;color:var(--ink-2)}.orden-fila button:not(:disabled):hover{border-color:var(--brand);color:var(--brand-dk)}.orden-fila button:disabled{opacity:.35;cursor:default}.fila-inactiva td{opacity:.55}.banner.ok{background:var(--ok-bg);color:#1d7a42;border:1px solid #bfe3cc}.btn.sm{padding:7px 12px;font-size:12.5px}.page-head .row-act{gap:10px}.filtros .f-fecha select{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;background:#fff;color:var(--ink)}.tabs.compacto{margin-bottom:0;padding:3px}.tabs.compacto .tab{padding:6px 13px;font-size:12.5px}.tab-n{display:inline-block;margin-left:6px;font-size:11px;font-weight:700;background:var(--gray-bg);color:var(--gray-tx);padding:1px 7px;border-radius:20px}.tab.active .tab-n{background:#ffffff38;color:#fff}.regla{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline;background:var(--brand-050);border:1px solid #bfe8dc;color:#0b6e58;border-radius:8px;padding:9px 14px;font-size:12.5px;margin-bottom:16px}.regla code{background:#0b6e581f;padding:1px 6px;border-radius:4px;font-size:11.5px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.grupo{margin-bottom:16px}.grupo-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:13px 16px;background:var(--surface-2);border-bottom:1px solid var(--border)}.grupo-head h3{font-size:14px;font-weight:700;letter-spacing:.2px}.grupo-tipos{display:flex;gap:6px;flex-wrap:wrap}.grupo-total{margin-left:auto;font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}.pill.bad{background:var(--bad-bg);color:var(--bad)}.carga-subida{margin-bottom:18px}.carga-subida .card-body{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.carga-ayuda{flex-basis:100%;font-size:12.5px;margin:0}.carga-motivos{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.carga-detalle{max-width:360px}.carga-detalle .aviso{display:block;font-size:12px;color:var(--warn);margin-top:3px}
