:root{--color-bg: #FAFBFC;--color-surface: #FFFFFF;--color-ink: #12181F;--color-ink-soft: #5B6672;--color-primary: #1E4FA3;--color-primary-hover: #17417F;--color-primary-soft: #E8F0FC;--color-border: #E2E6EB;--color-success: #1E8A5F;--color-success-soft: #E7F5EE;--color-warning: #B8791E;--color-warning-soft: #FBF1E4;--font-heading: "Manrope", "Inter", sans-serif;--font-body: "Inter", sans-serif;--font-size-base: 17px;--radius: 10px;--shadow-card: 0 1px 3px rgba(18, 24, 31, .06)}*{box-sizing:border-box}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:400;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;margin:0 0 .5em}.btn{font-family:var(--font-body);font-size:1rem;font-weight:600;padding:.85rem 1.5rem;border-radius:var(--radius);border:none;cursor:pointer;white-space:nowrap}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-ink);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-bg)}.btn-primary-soft{background:var(--color-primary-soft);color:var(--color-primary)}.btn-primary-soft:hover{background:#d7e4f7}.btn-warning-soft{background:var(--color-warning-soft);color:var(--color-warning)}.btn-warning-soft:hover{background:#f6e6cb}.btn-success-soft{background:var(--color-success-soft);color:var(--color-success)}.btn-success-soft:hover{background:#d8eee3}.btn-danger-soft{background:#fbe9e7;color:#b3261e}.btn-danger-soft:hover{background:#f6d3cf}.btn-danger{background:#b3261e;color:#fff}.btn-danger:hover{background:#8f1d17}.btn:disabled{opacity:.45;cursor:not-allowed}.buscador-tabla{padding:1rem 1.5rem;border-bottom:1px solid var(--color-border)}.buscador-tabla input[type=text]{width:100%;max-width:360px;font-family:var(--font-body);font-size:1rem;padding:.65rem .9rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink)}.buscador-tabla input[type=text]:focus{outline:2px solid var(--color-primary);outline-offset:1px}.paginador-tabla{display:flex;justify-content:center;align-items:center;gap:1.25rem;flex-wrap:wrap;padding:1rem 1.5rem;border-top:1px solid var(--color-border)}.paginador-flecha{font-family:var(--font-body);font-size:.9rem;font-weight:600;color:var(--color-primary);background:transparent;border:1px solid var(--color-border);border-radius:999px;padding:.5rem 1rem;cursor:pointer}.paginador-flecha:hover:not(:disabled){background:var(--color-primary-soft)}.paginador-flecha:disabled{color:var(--color-ink-soft);opacity:.5;cursor:not-allowed}.paginador-numero{font-size:.88rem;color:var(--color-ink-soft);white-space:nowrap}.paginador-total{color:var(--color-ink-soft)}.bar-chart-barra{transition:transform .15s ease,filter .15s ease}.bar-chart-barra:hover{transform:scaleY(1.02);filter:brightness(1.08)}.campo{display:flex;flex-direction:column;gap:.4rem}.campo label{font-weight:600;font-size:.95rem}.campo input,.campo select{font-family:var(--font-body);font-size:1rem;padding:.75rem .9rem;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink)}.campo select{cursor:pointer}.campo input:focus,.campo select:focus{outline:2px solid var(--color-primary);outline-offset:1px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:1.5rem;overflow-x:auto}.tabla{width:100%;min-width:640px;border-collapse:collapse}.tabla th{text-align:left;font-size:.9rem;color:var(--color-ink-soft);font-weight:600;padding:.75rem 1rem;border-bottom:1px solid var(--color-border)}.tabla td{padding:.9rem 1rem;border-bottom:1px solid var(--color-border);font-size:1rem;vertical-align:middle}.tabla tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:.3rem .75rem;border-radius:999px;font-size:.85rem;font-weight:600}.badge-success{background:var(--color-success-soft);color:var(--color-success)}.badge-warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge-neutral{background:var(--color-bg);color:var(--color-ink-soft);border:1px solid var(--color-border)}.fila-perfil{display:flex;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--color-border);flex-wrap:wrap}.fila-perfil:last-child{border-bottom:none}.fila-perfil-etiqueta{flex:0 0 230px;font-weight:600;color:var(--color-ink-soft);font-size:.9rem}.fila-perfil-valor{flex:1 1 220px;white-space:pre-wrap}.foto-perfil{width:96px;height:96px;border-radius:50%;object-fit:cover;border:2px solid var(--color-primary-soft);background:var(--color-bg)}.foto-perfil-vacia{width:96px;height:96px;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.6rem}.app-main{flex:1;padding:2rem;min-width:0}.sidebar{width:0;min-height:100vh;background:var(--color-surface);border-right:none;padding:1.75rem 0;flex-shrink:0;overflow:hidden;transition:width .2s ease}.sidebar.sidebar-abierto{width:240px;padding:1.75rem 1.25rem;border-right:1px solid var(--color-border)}.sidebar-overlay{display:none}.hamburger-btn{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;background:#ffffff1f;border:none;border-radius:var(--radius);color:#fff;font-size:1.4rem;line-height:1;cursor:pointer;flex-shrink:0}.header-subtitulo{font-size:.95rem;opacity:.85}@media (max-width: 860px){.app-main{padding:1.25rem}.header-subtitulo{display:none}.sidebar{position:fixed;inset:0 auto 0 0;z-index:1100;width:260px;max-width:82vw;padding:1.75rem 1.25rem;border-right:1px solid var(--color-border);transform:translate(-100%);transition:transform .2s ease;box-shadow:0 0 28px #12181f40;overflow-y:auto}.sidebar.sidebar-abierto{width:260px;transform:translate(0)}.sidebar-overlay.activo{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#12181f73;z-index:1090}.dashboard-grid{grid-template-columns:1fr!important}}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.75rem;align-items:start}
