:root,[data-theme=light]{--bg: #eef4f1;--bg-accent: #d9ebe3;--bg-warm: #f3efe6;--surface: #ffffff;--surface-2: #f6faf8;--text: #16332c;--text-muted: #5a726a;--border: #c9dbd3;--border-strong: #a8c4b8;--primary: #0f7668;--primary-hover: #0b5f54;--primary-soft: rgba(15, 118, 104, .12);--accent: #c9842a;--accent-soft: rgba(201, 132, 42, .14);--danger: #b42318;--success: #1f7a4d;--shadow: 0 12px 40px rgba(22, 51, 44, .08);--shadow-sm: 0 4px 16px rgba(22, 51, 44, .06);--header-bg: rgba(255, 255, 255, .78);--input-bg: #ffffff;--readonly-bg: #e8f2ee;--table-head: #f0f7f4;--ring: rgba(15, 118, 104, .35);color-scheme:light}[data-theme=dark]{--bg: #0d1714;--bg-accent: #143028;--bg-warm: #1a2218;--surface: #152420;--surface-2: #1b2d28;--text: #e7f2ed;--text-muted: #9bb5ab;--border: #2a4038;--border-strong: #3d5a4e;--primary: #3dbaa8;--primary-hover: #5ecdbd;--primary-soft: rgba(61, 186, 168, .16);--accent: #e0a84a;--accent-soft: rgba(224, 168, 74, .16);--danger: #f97066;--success: #47c08a;--shadow: 0 16px 48px rgba(0, 0, 0, .45);--shadow-sm: 0 6px 20px rgba(0, 0, 0, .3);--header-bg: rgba(21, 36, 32, .82);--input-bg: #101c19;--readonly-bg: #1e3330;--table-head: #1a2e29;--ring: rgba(61, 186, 168, .4);color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:Manrope,system-ui,sans-serif;background:radial-gradient(1200px 600px at 10% -10%,var(--bg-accent),transparent 55%),radial-gradient(900px 500px at 95% 0%,var(--bg-warm),transparent 50%),var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit}button,input,select,textarea{font:inherit}.brand-mark-text{font-family:Fraunces,Georgia,serif;font-weight:700;letter-spacing:-.02em}.theme-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .75rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer;transition:background .2s ease,border-color .2s ease,transform .15s ease}.theme-toggle:hover{border-color:var(--border-strong);background:var(--surface-2)}.theme-toggle:active{transform:scale(.97)}.theme-toggle-icon{display:inline-flex}.theme-toggle-label{font-size:.8rem;font-weight:600}.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:.7rem 1.2rem;border:none;border-radius:10px;background:var(--primary);color:#fff;font-weight:600;cursor:pointer;transition:background .2s ease,transform .15s ease,box-shadow .2s ease;box-shadow:0 6px 18px var(--primary-soft)}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-primary:disabled{opacity:.55;cursor:default}.btn-ghost{padding:.45rem .85rem;border:1px solid var(--border);border-radius:10px;background:transparent;color:var(--text);font-size:.88rem;font-weight:500;cursor:pointer;transition:background .2s ease,border-color .2s ease}.btn-ghost:hover{background:var(--surface-2);border-color:var(--border-strong)}.login-page{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;overflow:hidden}.login-ambiance{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 50% at 20% 30%,var(--primary-soft),transparent),radial-gradient(ellipse 50% 40% at 80% 70%,var(--accent-soft),transparent);pointer-events:none}.login-topbar{position:absolute;top:1.25rem;right:1.25rem;z-index:2}.login-card{position:relative;z-index:1;background:var(--surface);padding:2.4rem 2.2rem;border-radius:18px;border:1px solid var(--border);box-shadow:var(--shadow);width:min(100%,380px);display:flex;flex-direction:column;animation:rise-in .45s ease both}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.login-kicker{margin:0 0 .35rem;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.login-card h1{margin:0;font-size:2.4rem;line-height:1.1;color:var(--text)}.login-card .subtitle{margin:.4rem 0 1.6rem;color:var(--text-muted);font-size:.95rem}.login-card label{font-size:.82rem;font-weight:600;margin-bottom:.3rem;margin-top:.85rem;color:var(--text-muted)}.login-card input{padding:.7rem .85rem;border:1px solid var(--border);border-radius:10px;font-size:1rem;background:var(--input-bg);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.login-card input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.login-card .btn-primary{margin-top:1.5rem;width:100%}.login-card .error{color:var(--danger);font-size:.85rem;margin:.75rem 0 0}.app-shell{width:min(100%,1680px);max-width:1680px;margin:0 auto;padding:1.25rem clamp(1rem,2vw,2rem) 2.75rem}.app-header{position:sticky;top:.75rem;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.15rem;margin-bottom:1.5rem;border:1px solid var(--border);border-radius:16px;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);animation:rise-in .4s ease both}.header-brand{display:flex;align-items:center;gap:1.25rem;min-width:0;flex-wrap:wrap}.brand-mark{display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--text)}.brand-mark-dot{width:.65rem;height:.65rem;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--accent));box-shadow:0 0 0 3px var(--primary-soft)}.brand-mark-text{font-size:1.35rem}.main-nav{display:flex;flex-wrap:wrap;gap:.35rem}.main-nav a{color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;padding:.4rem .7rem;border-radius:8px;transition:color .15s ease,background .15s ease}.main-nav a:hover{color:var(--text);background:var(--primary-soft)}.main-nav a.active{color:var(--primary);background:var(--primary-soft);font-weight:700}.header-actions{display:flex;align-items:center;gap:.55rem;flex-shrink:0}.user-chip{display:none;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:600;color:var(--text-muted);padding:.35rem .65rem;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}@media (min-width: 720px){.user-chip{display:inline-block}}.app-main{animation:rise-in .5s ease .05s both}.page-hero{margin-bottom:1.35rem}.page-kicker{margin:0 0 .35rem;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.page h2,.page-hero h2{margin:0;font-family:Fraunces,Georgia,serif;font-size:clamp(1.7rem,2.4vw,2.25rem);font-weight:650;letter-spacing:-.02em;line-height:1.2}.page-lead{margin:.5rem 0 0!important;max-width:48rem;color:var(--text-muted)!important;font-size:1.02rem}.alertas-vencimiento{margin:0 0 1.25rem;padding:1rem 1.15rem;border-radius:14px;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface));box-shadow:var(--shadow-sm)}.alertas-title{margin:0 0 .75rem;font-size:.95rem;font-weight:700;color:var(--text)}.alertas-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}.alerta-item{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;padding:.7rem .85rem;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.alerta-item.alerta-urgente{border-color:color-mix(in srgb,var(--danger) 50%,var(--border));background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.alerta-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.alerta-main strong{font-size:.95rem;color:var(--text)}.alerta-main span,.alerta-meta span{font-size:.8rem;color:var(--text-muted)}.alerta-meta{display:flex;align-items:center;font-weight:600}.alerta-urgente .alerta-meta span{color:var(--danger)}.alerta-link{display:inline-block;margin-top:.85rem;font-size:.88rem;font-weight:700;color:var(--primary);text-decoration:none}.alerta-link:hover{text-decoration:underline}.page p{margin:0;color:var(--text-muted)}.page-wide{max-width:none}.cab-back{display:inline-block;margin:0 0 1rem;font-size:.88rem;font-weight:650;color:var(--primary);text-decoration:none}.cab-back:hover{text-decoration:underline}.cab-resumen{display:flex;flex-direction:column;gap:.85rem;padding:1rem 1.15rem 1.1rem;margin-bottom:1rem}.cab-resumen-total{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .85rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.cab-resumen-total strong{font-size:1.15rem;color:var(--text)}.cab-resumen-label{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.cab-resumen-areas{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.55rem}.cab-resumen-area{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .7rem;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.cab-resumen-area strong{font-size:1.05rem;color:var(--text)}.cab-resumen-area span:last-child{font-size:.78rem;color:var(--text-muted)}.cab-resumen-area.is-empty{opacity:.45}.home-card-disabled{cursor:default;opacity:.72}.home-card-disabled:hover{transform:none;border-color:var(--border);box-shadow:var(--shadow-sm)}.panel-title{margin:0 0 1rem;font-size:1rem;font-weight:700;color:var(--text)}.form-req-hint{margin:-.35rem 0 1rem!important}.surface-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm)}.cab-hub{display:flex;flex-direction:column;gap:1.35rem}.cab-grupo{padding:1.15rem 1.2rem 1.25rem;border:1px solid var(--border);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-sm)}.cab-grupo-head{margin-bottom:.95rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.cab-grupo-kicker{margin:0 0 .2rem;font-size:.7rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--primary)}.cab-grupo-head h3{margin:0;font-size:1.12rem;color:var(--text)}.cab-grupo-head p{margin:.25rem 0 0;font-size:.88rem}.home-actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.15rem}.home-card{display:flex;flex-direction:column;gap:.4rem;padding:1.45rem 1.5rem;min-height:8.5rem;text-decoration:none;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-sm);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.home-card:hover{transform:translateY(-2px);border-color:var(--primary);box-shadow:var(--shadow)}.home-card-label{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}.home-card strong{font-size:1.1rem;color:var(--text)}.home-card-desc{font-size:.9rem;color:var(--text-muted)}.ct-top-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:1.25rem;align-items:stretch}.ct-form,.ct-resumen{padding:1.45rem 1.5rem 1.6rem;margin-top:0;height:100%}.resumen-lead{margin:-.35rem 0 1rem!important;font-size:.88rem;color:var(--text-muted)!important}.resumen-table-wrap{overflow-x:auto;margin-bottom:1.15rem}.resumen-table{width:100%;border-collapse:collapse;font-size:.82rem}.resumen-table th,.resumen-table td{padding:.45rem .4rem;text-align:center;border-bottom:1px solid var(--border)}.resumen-table th:first-child,.resumen-table td:first-child{text-align:left}.resumen-table th{font-size:.7rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text-muted)}.resumen-table tfoot td{border-bottom:none;padding-top:.65rem;color:var(--text)}.resumen-count{display:inline-flex;min-width:1.6rem;justify-content:center;font-weight:700}.estado-chip-activo{color:var(--success)}.estado-chip-abandono{color:var(--danger)}.estado-chip-asegurado{color:var(--accent)}.estado-chip-finalizado{color:var(--primary)}.resumen-search{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--text-muted)}.resumen-search input{padding:.6rem .75rem;border:1px solid var(--border);border-radius:10px;font-size:.95rem;font-weight:500;background:var(--input-bg);color:var(--text)}.resumen-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.coincidencias-panel{margin-top:.35rem;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);overflow:hidden}.coincidencias-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto}.coincidencia-item{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;padding:.65rem .8rem;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:background .15s ease}.coincidencia-item:hover{background:var(--primary-soft)}.coincidencias-list li:last-child .coincidencia-item{border-bottom:none}.coincidencia-nombre{font-size:.9rem;font-weight:600}.coincidencia-nombre mark{background:var(--accent-soft);color:var(--text);border-radius:3px;padding:0 .1em}.coincidencia-meta{font-size:.75rem;font-weight:500;color:var(--text-muted)}.coincidencias-empty{margin:0;padding:.75rem .85rem;font-size:.85rem;font-weight:500;color:var(--text-muted)}.coincidencias-hint{margin:0;padding:.45rem .8rem .55rem;border-top:1px solid var(--border);background:var(--surface)}.ct-table mark{background:var(--accent-soft);color:var(--text);border-radius:3px;padding:0 .1em}.ct-list-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.ct-list-header .panel-title{margin:0}.ct-list-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.registros-filtros{padding:1rem 1.15rem 1.1rem;margin-bottom:1rem}.search-select{position:relative}.ct-form .search-select input{width:100%}.search-select-list{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:40;margin:0;padding:0;list-style:none;max-height:14rem;overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.search-select-item{width:100%;padding:.55rem .75rem;border:none;border-bottom:1px solid var(--border);background:transparent;color:var(--text);font-size:.85rem;font-weight:600;text-align:left;cursor:pointer}.search-select-item:hover{background:var(--primary-soft)}.search-select-list li:last-child .search-select-item{border-bottom:none}.search-select-empty{padding:.7rem .75rem;font-size:.82rem;font-weight:500;color:var(--text-muted)}.search-select mark{background:var(--accent-soft);color:var(--text);border-radius:3px}.persona-search{position:relative;display:flex;flex-direction:column;gap:.35rem;max-width:420px;font-size:.82rem;font-weight:600;color:var(--text-muted)}.persona-search input{padding:.6rem .75rem;border:1px solid var(--border);border-radius:10px;font-size:.95rem;font-weight:500;background:var(--input-bg);color:var(--text)}.persona-search input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.persona-sugerencias{position:absolute;top:calc(100% + .25rem);left:0;right:0;z-index:30;margin:0;padding:0;list-style:none;max-height:16rem;overflow:auto;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.persona-sugerencias li{border-bottom:1px solid var(--border)}.persona-sugerencias li:last-child{border-bottom:none}.persona-sugerencia{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .85rem;border:none;background:transparent;color:var(--text);text-align:left;cursor:pointer;transition:background .15s ease}.persona-sugerencia:hover{background:var(--primary-soft)}.persona-sugerencia-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.persona-sugerencia-nombre{font-size:.9rem;font-weight:700}.persona-sugerencia-nombre mark{background:var(--accent-soft);color:var(--text);border-radius:3px;padding:0 .1em}.persona-sugerencia-meta{font-size:.75rem;font-weight:500;color:var(--text-muted)}.persona-sugerencia-empty{padding:.75rem .85rem;font-size:.85rem;font-weight:500;color:var(--text-muted)}.estado-pill{flex-shrink:0;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.2}.estado-pill.estado-activo{background:color-mix(in srgb,var(--success) 18%,var(--surface));color:var(--success)}.estado-pill.estado-abandono{background:color-mix(in srgb,var(--danger) 18%,var(--surface));color:var(--danger)}.estado-pill.estado-asegurado{background:color-mix(in srgb,var(--accent) 20%,var(--surface));color:var(--accent)}.estado-pill.estado-finalizado{background:color-mix(in srgb,var(--primary) 18%,var(--surface));color:var(--primary)}.registros-filtros-hint{margin:.55rem 0 0}.ct-chart-block{margin-top:1.75rem;padding:1.5rem 1.5rem 1.65rem}.ct-chart-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.85rem 1rem;margin-bottom:1rem}.ct-chart-header .panel-title{margin:0}.ct-chart-header .resumen-lead{margin:.35rem 0 0!important}.chart-body{display:grid;grid-template-columns:1fr;gap:1.35rem;align-items:start}.chart-visual{min-width:0}.chart-month-filter{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--text-muted)}.chart-month-filter input{padding:.5rem .7rem;border:1px solid var(--border);border-radius:10px;font-size:.9rem;font-weight:500;background:var(--input-bg);color:var(--text);min-width:11rem}.chart-month-filter input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.chart-legend{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin-bottom:1rem}.chart-legend-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--text-muted)}.chart-swatch{width:.75rem;height:.75rem;border-radius:3px}.bar-chart{display:grid;grid-template-columns:2.4rem 1fr;gap:.6rem;min-height:300px}.bar-chart-y{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;padding:.25rem 0 1.6rem;font-size:.72rem;font-weight:600;color:var(--text-muted)}.bar-chart-plot{position:relative;display:flex;flex-direction:column;min-height:280px}.bar-chart-grid{position:absolute;top:0;right:0;bottom:1.6rem;left:0;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}.bar-chart-grid span{display:block;border-top:1px dashed var(--border)}.bar-chart-groups{position:relative;z-index:1;flex:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:end;padding-bottom:1.6rem;min-height:240px}.bar-group{display:flex;flex-direction:column;align-items:center;gap:.45rem;height:100%}.bar-group-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:.35rem;min-height:200px}.bar{position:relative;flex:1;max-width:2rem;min-height:2px;border-radius:6px 6px 2px 2px;transition:height .35s ease}.bar-value{position:absolute;top:-1.15rem;left:50%;transform:translate(-50%);font-size:.72rem;font-weight:700;color:var(--text)}.bar-group-label{font-size:.9rem;font-weight:700;color:var(--text)}.tipo-contrato,.chart-swatch.tipo-contrato{background:var(--primary)}.tipo-eventual,.chart-swatch.tipo-eventual{background:var(--accent)}.tipo-jornalero,.chart-swatch.tipo-jornalero{background:var(--success)}.tipo-pasantia,.chart-swatch.tipo-pasantia{background:color-mix(in srgb,var(--primary) 45%,#7c9cff)}.chart-summary{margin-top:0;padding-top:0;border-top:none;min-width:0}.chart-summary-title{margin:0 0 .75rem;font-size:.95rem;font-weight:700;color:var(--text)}.chart-summary-table{background:var(--surface-2);border-radius:10px;overflow:hidden;width:100%}.chart-summary-table th,.chart-summary-table td{padding:.65rem .75rem}.chart-th{justify-content:center;font-size:.72rem;text-transform:none;letter-spacing:0}.qty-chip{display:inline-flex;min-width:1.85rem;justify-content:center;align-items:center;padding:.2rem .45rem;border-radius:6px;font-weight:700;font-size:.85rem;color:#fff}.qty-chip.tipo-contrato{background:var(--primary)}.qty-chip.tipo-eventual{background:var(--accent)}.qty-chip.tipo-jornalero{background:var(--success)}.qty-chip.tipo-pasantia{background:color-mix(in srgb,var(--primary) 45%,#7c9cff)}@media (max-width: 640px){.bar-chart-groups{gap:.4rem}.bar{max-width:1.1rem}}@media (max-width: 1100px){.ct-top-grid{grid-template-columns:1fr}}@media (min-width: 1200px){.chart-body{grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);gap:1.5rem;align-items:stretch}.chart-summary{padding-left:1.25rem;border-left:1px solid var(--border)}}@media (min-width: 1440px){.app-shell{width:min(100%,1760px);max-width:1760px}.ct-top-grid{grid-template-columns:minmax(0,1.7fr) minmax(360px,1fr);gap:1.5rem}.bar-chart,.bar-chart-plot{min-height:340px}.bar-group-bars{min-height:260px}.bar{max-width:2.35rem}}.ct-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.95rem 1rem}.ct-form label,.ct-full{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--text-muted)}.ct-full{grid-column:1 / -1;margin-top:.15rem}@media (max-width: 720px){.ct-grid{grid-template-columns:1fr}}.ct-form input,.ct-form select,.ct-form textarea{padding:.6rem .75rem;border:1px solid var(--border);border-radius:10px;font-size:.95rem;font-weight:500;background:var(--input-bg);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.ct-form input:focus,.ct-form select:focus,.ct-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.ct-form input.readonly{background:var(--readonly-bg);color:var(--text);font-weight:700;border-style:dashed}.ct-form input:disabled,.ct-form select:disabled{opacity:.65;cursor:not-allowed;background:var(--readonly-bg)}.field-hint{font-size:.72rem;font-weight:500;color:var(--text-muted)}.ct-form .btn-primary{margin-top:1.25rem}.form-error{color:var(--danger)!important;margin-top:.75rem!important;font-size:.9rem;font-weight:600}.form-ok{color:var(--success)!important;margin-top:.75rem!important;font-size:.9rem;font-weight:600}.muted{color:var(--text-muted);margin-top:.5rem!important}.ct-list-block{margin-top:1.75rem}#registros{scroll-margin-top:6.5rem}.ct-table-wrap{overflow-x:auto}.ct-table{width:100%;border-collapse:collapse;font-size:.9rem}.ct-table th,.ct-table td{padding:.78rem .9rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.ct-table td.cell-obs{white-space:normal;max-width:16rem}.ct-table th{background:var(--table-head);font-weight:700;color:var(--text-muted);font-size:.78rem;letter-spacing:.03em;text-transform:uppercase}.ct-table tbody tr{transition:background .15s ease}.ct-table tbody tr:hover{background:var(--primary-soft)}.ct-table tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:.15rem .5rem;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-weight:700;font-size:.78rem}.cell-strong{font-weight:700;color:var(--text)}.estado-select{min-width:8.5rem;padding:.35rem .5rem;border:1px solid var(--border);border-radius:8px;font-size:.8rem;font-weight:600;background:var(--input-bg);color:var(--text);cursor:pointer}.estado-select:disabled{opacity:.75;cursor:not-allowed}.estado-select.estado-abandono:disabled,.estado-select.estado-finalizado:disabled{opacity:1;cursor:not-allowed}.estado-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.estado-activo{border-color:color-mix(in srgb,var(--success) 45%,var(--border));background:color-mix(in srgb,var(--success) 12%,var(--input-bg));color:var(--success)}.estado-abandono{border-color:color-mix(in srgb,var(--danger) 45%,var(--border));background:color-mix(in srgb,var(--danger) 12%,var(--input-bg));color:var(--danger)}.estado-asegurado{border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 14%,var(--input-bg));color:var(--accent)}.estado-finalizado{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));background:color-mix(in srgb,var(--primary) 12%,var(--input-bg));color:var(--primary)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:#0a14128c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:rise-in .2s ease both}.modal-card{width:min(100%,440px);padding:1.4rem 1.4rem 1.25rem;box-shadow:var(--shadow)}.modal-card-wide{width:min(100%,820px);max-height:min(92vh,900px);overflow:auto}.btn-edit{font-size:.8rem;padding:.35rem .65rem}.modal-card h3{margin:0;font-family:Fraunces,Georgia,serif;font-size:1.35rem}.modal-lead{margin:.5rem 0 1.1rem!important;font-size:.9rem;color:var(--text-muted)!important}.modal-form{display:flex;flex-direction:column;gap:.9rem}.modal-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;color:var(--text-muted)}.modal-form input,.modal-form select,.modal-form textarea{padding:.6rem .75rem;border:1px solid var(--border);border-radius:10px;font-size:.95rem;font-weight:500;background:var(--input-bg);color:var(--text);font-family:inherit}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.modal-form input.readonly{background:var(--readonly-bg);color:var(--text);font-weight:700;border-style:dashed}.modal-form .ct-grid{margin-bottom:.25rem}.modal-preview{display:flex;flex-direction:column;gap:.25rem;padding:.75rem .85rem;border-radius:10px;background:var(--primary-soft);border:1px dashed var(--border-strong);font-size:.85rem;color:var(--text-muted)}.modal-preview strong{color:var(--text)}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.35rem}.loading{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--text-muted);font-weight:500}@media (max-width: 640px){.app-header{flex-direction:column;align-items:stretch}.header-actions{justify-content:flex-end}.theme-toggle-label{display:none}}.irp-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 1.5rem;margin:0 0 1rem}.irp-toolbar label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:650}.irp-toolbar select{min-width:7rem;padding:.45rem .6rem;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--text)}.irp-toolbar .field-hint{flex:1;min-width:220px;margin:0}.irp-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1rem}.irp-chart{padding:1rem 1.1rem .85rem}.irp-bars{display:flex;align-items:flex-end;gap:.45rem;height:160px;padding-top:.4rem}.irp-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:.3rem}.irp-bar-pair{flex-direction:row;flex-wrap:wrap;align-content:flex-end;justify-content:center;gap:.15rem .2rem}.irp-bar-fill{display:block;width:70%;min-height:2px;border-radius:6px 6px 2px 2px;background:var(--primary)}.irp-bar-pair .irp-bar-fill{width:38%;align-self:flex-end}.irp-bar-irp{background:var(--accent)}.irp-bar-alta{background:var(--primary)}.irp-bar-baja{background:var(--danger)}.irp-bar small{font-size:.62rem;color:var(--text-muted);width:100%;text-align:center}.irp-legend{display:flex;align-items:center;gap:.45rem;margin:.55rem 0 0;font-size:.78rem;color:var(--text-muted)}.irp-dot{width:.65rem;height:.65rem;border-radius:999px;margin-left:.55rem}.irp-dot:first-child{margin-left:0}.irp-dot.alta{background:var(--primary)}.irp-dot.baja{background:var(--danger)}.irp-table-wrap{overflow-x:auto}.irp-table{min-width:980px}.irp-table th,.irp-table td{text-align:right;white-space:nowrap}.irp-table th:first-child,.irp-table th:nth-child(2),.irp-table tbody th{text-align:left}.irp-table .irp-area-start th,.irp-table .irp-total-start th{border-top:2px solid var(--border-strong)}.irp-table .irp-total td,.irp-table .irp-total-start td,.irp-table .irp-total th,.irp-table .irp-total-start th{font-weight:700;background:var(--table-head)}.irp-table .irp-pct{color:var(--accent)}
