:root {
    --brand: #0C6231;
    --brand-2: #127A3A;
    --brand-dark: #08150C;
    --brand-soft: #E8F5EC;
    --brand-border: #C7E6D2;
    --ink: #0B0F0C;
    --muted: #667085;
    --line: #D0D9D3;
    --bg: #F5F8F6;
    --surface: #FFFFFF;
    --surface-2: #F9FBFA;
    --danger: #991B1B;
    --danger-soft: #FEE2E2;
    --warning: #92400E;
    --warning-soft: #FEF3C7;
    --info: #1E40AF;
    --info-soft: #DBEAFE;
    --radius: 16px;
    --radius-sm: 10px;
    --shadow: 0 14px 40px rgba(12, 98, 49, .08);
    --sidebar: 236px;
    --header: 72px;
    --font: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    min-width: 320px;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--font);
    font-size: 15px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { max-width: 100%; display: block; }

.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
:focus-visible { outline: 3px solid rgba(18, 122, 58, .35); outline-offset: 2px; }

.app-shell {
    display: grid;
    grid-template-columns: var(--sidebar) minmax(0, 1fr);
    min-height: 100vh;
}
.app-sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    background: linear-gradient(180deg, #0A1D10 0%, #0C6231 100%);
    color: #fff;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    z-index: 40;
}
.brand-panel {
    border-radius: 18px;
    background: rgba(255,255,255,.95);
    color: var(--ink);
    padding: 12px;
    box-shadow: 0 12px 28px rgba(0,0,0,.12);
}
.brand-logo { width: 164px; margin: 0 auto 10px; border-radius: 10px; }
.brand-copy { display: grid; gap: 1px; }
.brand-copy strong { font-size: 20px; letter-spacing: -.02em; }
.brand-copy span { color: var(--muted); font-size: 13px; }
.main-nav { display: grid; gap: 5px; }
.nav-item {
    display: flex; align-items: center; gap: 10px;
    min-height: 40px;
    padding: 9px 11px;
    border-radius: 12px;
    color: rgba(255,255,255,.88);
    font-weight: 680;
    border: 1px solid transparent;
}
.nav-item:hover { background: rgba(255,255,255,.12); color: #fff; }
.nav-item.is-active { background: #fff; color: var(--brand); box-shadow: 0 10px 22px rgba(0,0,0,.16); }
.nav-icon { width: 22px; height: 22px; display: grid; place-items: center; font-weight: 900; }
.sidebar-account { margin-top: auto; display: grid; gap: 10px; }
.account-badge {
    width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center;
    background: #fff; color: var(--brand); font-weight: 900;
}
.account-meta { display: grid; gap: 1px; }
.account-meta strong { font-size: 14px; }
.account-meta span { font-size: 12px; color: rgba(255,255,255,.72); }
.sidebar-account { grid-template-columns: auto 1fr; align-items: center; }
.logout-link {
    grid-column: 1 / -1;
    text-align: center;
    padding: 9px;
    border-radius: 12px;
    background: rgba(255,255,255,.10);
    color: #fff;
    font-weight: 700;
}
.app-main { min-width: 0; display: flex; flex-direction: column; }
.app-header {
    min-height: var(--header);
    position: sticky;
    top: 0;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 22px;
    background: rgba(245,248,246,.88);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(208,217,211,.8);
}
.header-left { display: flex; gap: 13px; align-items: center; min-width: 0; }
.eyebrow { margin: 0 0 2px; color: var(--brand); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
h1 { margin: 0; font-size: clamp(22px, 2vw, 28px); line-height: 1.15; letter-spacing: -.03em; }
.page-subtitle { margin: 3px 0 0; color: var(--muted); font-size: 14px; }
.header-actions, .section-actions, .toolbar-actions, .filter-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.page-content { padding: 18px 22px 28px; min-width: 0; }

.btn, button.btn, a.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    min-height: 38px;
    border-radius: 11px;
    padding: 8px 13px;
    border: 1px solid transparent;
    font-weight: 780;
    font-size: 14px;
    line-height: 1;
    white-space: nowrap;
    transition: background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-primary { background: var(--brand); color: #fff; box-shadow: 0 10px 20px rgba(12,98,49,.16); }
.btn-primary:hover { background: var(--brand-2); }
.btn-ghost { background: #fff; color: var(--brand); border-color: var(--brand-border); }
.btn-ghost:hover { background: var(--brand-soft); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-block { width: 100%; }

.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.menu-toggle span:not(.sr-only), .menu-toggle::before, .menu-toggle::after {
    content: ""; display: block; width: 18px; height: 2px; background: var(--ink); margin: 4px auto; border-radius: 2px;
}
.drawer-backdrop { position: fixed; inset: 0; background: rgba(8,21,12,.48); z-index: 35; }

.quick-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.quick-card {
    min-height: 96px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 16px;
    background: #fff;
    box-shadow: var(--shadow);
    display: grid;
    align-content: space-between;
}
.quick-card span { color: var(--muted); font-weight: 700; }
.quick-card strong { font-size: 21px; letter-spacing: -.03em; color: var(--brand); }
.quick-card.warning strong { color: var(--warning); }
.quick-card.danger strong { color: var(--danger); }
.quick-card.neutral strong { color: #334155; }
.metrics-grid { display: grid; grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: 12px; margin-bottom: 16px; }
.metric {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 15px;
    box-shadow: var(--shadow);
}
.metric .label { color: var(--muted); font-size: 13px; font-weight: 720; }
.metric .value { margin-top: 5px; font-size: clamp(22px, 2.4vw, 30px); font-weight: 880; letter-spacing: -.04em; }
.metric .hint { color: var(--muted); font-size: 12px; margin-top: 4px; }
.dashboard-panels { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.panel-card, .workbench {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 16px;
    min-width: 0;
}
.section-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.section-header h2 { margin: 0; font-size: 19px; letter-spacing: -.02em; }
.section-header p { margin: 3px 0 0; color: var(--muted); font-size: 14px; }
.section-header.compact { margin-bottom: 12px; }

.filter-bar { display: block; margin-bottom: 10px; }
.filter-form fieldset {
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 11px;
    margin: 0;
    background: var(--surface-2);
    display: grid;
    grid-template-columns: minmax(240px, 2fr) repeat(4, minmax(110px, .8fr)) auto;
    gap: 9px;
    align-items: end;
}
.field { display: grid; gap: 4px; min-width: 0; }
.field span { font-size: 12px; color: var(--muted); font-weight: 760; }
input, select, textarea {
    width: 100%;
    min-height: 38px;
    border: 1px solid var(--line);
    border-radius: 11px;
    padding: 8px 10px;
    background: #fff;
    color: var(--ink);
}
textarea { resize: vertical; }
.active-filters { display: flex; gap: 6px; flex-wrap: wrap; margin: 8px 0 12px; }
.filter-chip { border: 1px solid var(--brand-border); background: var(--brand-soft); color: var(--brand); border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 750; }
.table-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 10px 0; }
#resultCount { color: var(--muted); font-weight: 720; }

.table-wrap { width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: #fff; max-height: calc(100vh - 285px); }
table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; min-width: 960px; }
caption { text-align: left; color: var(--muted); font-weight: 700; padding: 10px 12px; background: #fbfdfc; border-bottom: 1px solid var(--line); }
th, td { padding: 10px 11px; border-bottom: 1px solid #EBF0ED; vertical-align: top; }
thead th { position: sticky; top: 0; z-index: 2; background: #F0F7F2; color: #173B24; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; white-space: nowrap; }
tbody th[scope="row"] { font-weight: 840; color: var(--ink); white-space: nowrap; }
tbody tr:hover th, tbody tr:hover td { background: #FBFFF7; }
.col-money, td.col-money { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.col-date { white-space: nowrap; }
.col-client { min-width: 220px; }
.col-actions { width: 90px; }
.row-muted { color: var(--muted); font-size: 12px; }

.status-badge {
    display: inline-flex; align-items: center; min-height: 24px;
    border-radius: 999px; padding: 4px 9px;
    font-size: 11px; font-weight: 860; letter-spacing: .02em;
    border: 1px solid transparent; white-space: nowrap;
}
.status-cancelada, .status-pagada { background: #DCFCE7; color: #166534; border-color: #BBF7D0; }
.status-pendiente, .status-en-gestion { background: var(--warning-soft); color: var(--warning); border-color: #FDE68A; }
.status-vencida, .status-rechazada { background: var(--danger-soft); color: var(--danger); border-color: #FECACA; }
.status-revisar { background: #FFEDD5; color: #9A3412; border-color: #FED7AA; }
.status-anulada, .status-otro, .status-sin-estado { background: #F1F5F9; color: #334155; border-color: #E2E8F0; }
.status-emitida { background: var(--info-soft); color: var(--info); border-color: #BFDBFE; }

.mobile-cards { display: none; }
.invoice-card {
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fff;
    padding: 13px;
    display: grid;
    gap: 9px;
}
.invoice-card header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.invoice-card h3 { margin: 0; font-size: 17px; }
.invoice-card .client { font-weight: 740; }
.card-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.card-field { color: var(--muted); font-size: 12px; }
.card-field strong { display: block; color: var(--ink); font-size: 14px; margin-top: 2px; }
.card-actions { display: flex; gap: 8px; }
.load-more-wrap { display: flex; justify-content: center; margin-top: 12px; }

.edit-dialog {
    border: 0; border-radius: 18px; padding: 0; width: min(900px, calc(100vw - 24px));
    box-shadow: 0 24px 70px rgba(0,0,0,.28);
}
.edit-dialog::backdrop { background: rgba(8,21,12,.52); }
.dialog-body { margin: 0; }
.dialog-header, .dialog-actions { padding: 16px 18px; background: #FAFCFB; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.dialog-header h2 { margin: 0; font-size: 20px; }
.dialog-actions { border-top: 1px solid var(--line); border-bottom: 0; justify-content: flex-end; }
.icon-btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: #fff; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 18px; }
.form-section { grid-column: 1 / -1; border: 1px solid var(--line); border-radius: 14px; padding: 13px; background: #fff; }
.form-section h3 { margin: 0 0 10px; font-size: 15px; color: var(--brand); }
.form-section-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.form-grid label { display: grid; gap: 5px; font-size: 12px; font-weight: 780; color: var(--muted); }
.form-grid .full { grid-column: 1 / -1; }
.readonly-field { min-height: 38px; border: 1px dashed var(--line); border-radius: 10px; padding: 8px 10px; background: #F8FAF9; color: var(--muted); }

.details-card, .info-card {
    border: 1px solid var(--line); border-radius: var(--radius); background: #fff; padding: 14px;
}
.info-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.mono-input { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; }
.link-list { display: grid; gap: 8px; padding-left: 18px; }
.catalog-list { display: flex; gap: 6px; flex-wrap: wrap; }
.catalog-pill { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 6px 10px; font-weight: 720; font-size: 13px; }

.loading, .empty-state, .error-state { padding: 28px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 14px; background: #fff; }
.error-state { color: var(--danger); background: #FFF7F7; }
.toast-region { position: fixed; right: 16px; bottom: 16px; z-index: 70; display: grid; gap: 8px; }
.toast { background: var(--ink); color: #fff; border-radius: 12px; padding: 10px 12px; box-shadow: 0 12px 30px rgba(0,0,0,.22); }
.back-to-top { position: fixed; right: 16px; bottom: 16px; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: #fff; color: var(--brand); box-shadow: var(--shadow); display: none; z-index: 60; }
.back-to-top.is-visible { display: block; }

.login-screen { background: radial-gradient(circle at 20% 20%, #1A8E4C 0%, #0C6231 36%, #08150C 100%); min-height: 100vh; display: grid; place-items: center; padding: 22px; }
.login-layout { width: min(980px, 100%); display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; align-items: stretch; }
.login-hero, .login-card { background: rgba(255,255,255,.96); border-radius: 24px; padding: clamp(22px, 4vw, 38px); box-shadow: 0 24px 70px rgba(0,0,0,.22); }
.login-logo { width: min(300px, 80%); margin-bottom: 26px; border-radius: 14px; }
.login-hero h1 { font-size: clamp(32px, 5vw, 54px); }
.login-hero p { color: var(--muted); font-size: 18px; max-width: 520px; }
.login-card h2 { font-size: 28px; margin: 0 0 18px; }
.login-form { display: grid; gap: 10px; }
.login-form label { font-weight: 760; color: var(--muted); }
.alert { border-radius: 12px; padding: 10px 12px; }
.alert-error { background: var(--danger-soft); color: var(--danger); }

@media (max-width: 1280px) {
    .metrics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .filter-form fieldset { grid-template-columns: minmax(220px, 1.4fr) repeat(2, minmax(120px, 1fr)); }
    .filter-actions { grid-column: 1 / -1; }
}
@media (max-width: 1024px) {
    :root { --sidebar: 214px; }
    .quick-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-panels, .info-grid { grid-template-columns: 1fr; }
    .header-actions { display: none; }
}
@media (max-width: 768px) {
    body { font-size: 16px; }
    .app-shell { display: block; }
    .app-sidebar {
        position: fixed; inset: 0 auto 0 0; width: min(280px, 86vw); height: 100dvh;
        transform: translateX(-105%); transition: transform .18s ease; box-shadow: 24px 0 50px rgba(0,0,0,.24);
    }
    body.menu-open .app-sidebar { transform: translateX(0); }
    .menu-toggle { display: block; }
    .app-header { position: sticky; padding: 12px 14px; }
    .page-content { padding: 14px; }
    .page-subtitle { font-size: 13px; }
    .quick-actions, .metrics-grid { grid-template-columns: 1fr; }
    .filter-form fieldset { grid-template-columns: 1fr; }
    .filter-bar { display: none; }
    body.filters-open .filter-bar { display: block; }
    .table-toolbar { align-items: flex-start; flex-direction: column; }
    .toolbar-actions { width: 100%; }
    .toolbar-actions .btn { flex: 1; }
    .table-wrap { display: none; }
    .mobile-cards { display: grid; gap: 10px; }
    .form-section-grid { grid-template-columns: 1fr; }
    .login-layout { grid-template-columns: 1fr; }
    .login-hero { display: none; }
}
@media (max-width: 480px) {
    .section-header { flex-direction: column; align-items: stretch; }
    .section-actions .btn, .filter-actions .btn, .card-actions .btn { flex: 1; }
    .card-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
@media print {
    .app-sidebar, .app-header, .filter-bar, .table-toolbar, .section-actions, .back-to-top, .toast-region, .quick-actions { display: none !important; }
    .app-shell { display: block; }
    .page-content { padding: 0; }
    .panel-card, .workbench { box-shadow: none; border: 0; }
    .table-wrap { display: block; max-height: none; overflow: visible; }
    .mobile-cards { display: none; }
}


/* =========================================================
   LYNTEC UI PATCH: compact logo/sidebar + dashboard charts
   ========================================================= */
:root {
    --sidebar: 228px;
    --sidebar-compact: 208px;
    --chart-green: #16A34A;
    --chart-yellow: #F59E0B;
    --chart-red: #DC2626;
    --chart-orange: #EA580C;
    --chart-blue: #2563EB;
    --chart-gray: #64748B;
}

.app-sidebar {
    padding: 12px;
    gap: 10px;
    overflow: hidden;
}
.sidebar-topline {
    display: flex;
    align-items: center;
    gap: 8px;
}
.brand-panel.compact-brand {
    flex: 1;
    min-height: 72px;
    padding: 10px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.055));
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
    box-shadow: none;
    backdrop-filter: blur(10px);
}
.brand-panel.compact-brand:hover {
    background: linear-gradient(135deg, rgba(255,255,255,.16), rgba(255,255,255,.08));
}
.brand-mark-wrap {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    flex: 0 0 auto;
}
.brand-mark {
    width: 30px;
    height: 30px;
    object-fit: contain;
}
.compact-brand .brand-copy strong {
    color: #fff;
    font-size: 17px;
    line-height: 1.1;
}
.compact-brand .brand-copy span {
    color: rgba(255,255,255,.72);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.sidebar-close {
    display: none;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.10);
    color: #fff;
    font-size: 24px;
    line-height: 1;
}
.main-nav {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding-right: 1px;
    scrollbar-width: thin;
}
.nav-item {
    min-height: 34px;
    padding: 7px 9px;
    border-radius: 10px;
    gap: 8px;
    font-size: 14px;
    font-weight: 720;
}
.nav-icon {
    width: 20px;
    height: 20px;
    opacity: .85;
}
.nav-item.is-active {
    box-shadow: none;
    background: rgba(255,255,255,.94);
    color: var(--brand);
}
.sidebar-account {
    flex: 0 0 auto;
    margin-top: 0;
    border-radius: 15px;
    padding: 10px;
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.12);
    grid-template-columns: 34px 1fr auto;
    gap: 8px;
}
.account-badge {
    width: 34px;
    height: 34px;
    font-size: 14px;
}
.account-meta strong {
    font-size: 13px;
}
.account-meta span {
    font-size: 11px;
}
.logout-link {
    grid-column: auto;
    padding: 8px 10px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: rgba(255,255,255,.16);
    font-size: 13px;
}
.logout-link:hover {
    background: rgba(255,255,255,.24);
}
.btn-logout-top {
    display: none;
}

.metrics-grid {
    grid-template-columns: repeat(6, minmax(150px, 1fr));
}
.metric {
    min-height: 118px;
    padding: 17px 18px;
}
.metric.metric-link {
    color: inherit;
}
.metric .value {
    font-size: clamp(26px, 3vw, 40px);
    letter-spacing: -.05em;
}
.metric .label {
    font-size: 13px;
    font-weight: 820;
}
.metric .hint {
    font-size: 13px;
}

.chart-card {
    display: grid;
    gap: 16px;
}
.status-chart-card {
    grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
    align-items: center;
}
.donut-wrap {
    display: grid;
    place-items: center;
    min-height: 240px;
}
.donut-chart {
    width: min(230px, 72vw);
    aspect-ratio: 1;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(var(--donut));
    position: relative;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,.04), 0 14px 34px rgba(12,98,49,.10);
}
.donut-chart::before {
    content: '';
    position: absolute;
    inset: 18%;
    border-radius: 50%;
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--line);
}
.donut-center {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    gap: 0;
}
.donut-center strong {
    font-size: 30px;
    letter-spacing: -.04em;
}
.donut-center span {
    color: var(--muted);
    font-size: 12px;
}
.chart-legend {
    display: grid;
    gap: 7px;
}
.legend-row {
    display: grid;
    grid-template-columns: 12px minmax(0, 1fr) auto 52px;
    gap: 9px;
    align-items: center;
    min-height: 34px;
    padding: 7px 9px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: #fff;
}
.legend-row:hover {
    background: var(--brand-soft);
    border-color: var(--brand-border);
}
.legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}
.legend-label {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-weight: 750;
}
.legend-row small {
    color: var(--muted);
    text-align: right;
}
.year-chart-card {
    min-height: 260px;
}
.year-bars {
    display: grid;
    gap: 9px;
}
.year-bar-row {
    display: grid;
    grid-template-columns: 62px minmax(120px, 1fr) 58px;
    align-items: center;
    gap: 10px;
    min-height: 34px;
    padding: 7px 9px;
    border-radius: 11px;
    border: 1px solid var(--line);
    background: #fff;
}
.year-bar-row:hover {
    background: var(--brand-soft);
    border-color: var(--brand-border);
}
.year-label {
    font-weight: 820;
}
.bar-track {
    height: 10px;
    border-radius: 999px;
    background: #E5ECE8;
    overflow: hidden;
}
.bar-fill {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand), var(--brand-2));
}
.year-bar-row strong {
    text-align: right;
}

.token-control {
    display: grid;
    gap: 9px;
}
.token-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.token-actions .btn {
    flex: 1;
}
.integration-panel .mono-input {
    letter-spacing: .04em;
    background: #F8FAF9;
}

.login-screen-v2 {
    background:
        radial-gradient(circle at 16% 18%, rgba(47, 181, 101, .34), transparent 34%),
        radial-gradient(circle at 85% 20%, rgba(255,255,255,.11), transparent 26%),
        linear-gradient(135deg, #08150C 0%, #0C6231 55%, #082311 100%);
}
.login-shell-v2 {
    width: min(940px, 100%);
    display: grid;
    grid-template-columns: .95fr .75fr;
    gap: 18px;
    align-items: stretch;
}
.login-brand-v2 {
    border-radius: 26px;
    padding: clamp(26px, 5vw, 46px);
    color: #fff;
    background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.045));
    border: 1px solid rgba(255,255,255,.14);
    box-shadow: 0 24px 70px rgba(0,0,0,.25);
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.login-mark {
    width: 70px;
    height: 70px;
    border-radius: 22px;
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.16);
    margin-bottom: 18px;
}
.login-mark img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}
.login-brand-v2 h1 {
    color: #fff;
    font-size: clamp(34px, 6vw, 58px);
    letter-spacing: -.055em;
    max-width: 560px;
}
.login-brand-v2 p {
    color: rgba(255,255,255,.76);
    font-size: 18px;
    max-width: 520px;
}
.login-eyebrow {
    color: rgba(255,255,255,.74);
}
.login-card-v2 {
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(10px);
}

@media (max-height: 760px) and (min-width: 769px) {
    :root { --sidebar: var(--sidebar-compact); }
    .app-sidebar { padding: 10px; gap: 8px; }
    .brand-panel.compact-brand { min-height: 62px; padding: 8px; }
    .brand-mark-wrap { width: 36px; height: 36px; border-radius: 12px; }
    .brand-mark { width: 26px; height: 26px; }
    .compact-brand .brand-copy strong { font-size: 16px; }
    .compact-brand .brand-copy span { font-size: 11px; }
    .nav-item { min-height: 31px; padding: 6px 8px; font-size: 13px; }
    .nav-icon { width: 18px; height: 18px; }
    .sidebar-account { padding: 8px; }
}
@media (max-width: 1280px) {
    .metrics-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1024px) {
    .status-chart-card { grid-template-columns: 1fr; }
    .donut-wrap { min-height: 210px; }
    .chart-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
    .sidebar-close { display: grid; place-items: center; }
    .brand-panel.compact-brand { min-height: 66px; }
    .sidebar-account { grid-template-columns: 34px 1fr auto; }
    .logout-link { grid-column: auto; }
    .btn-logout-top { display: inline-flex; }
    .status-chart-card { grid-template-columns: 1fr; }
    .chart-legend { grid-template-columns: 1fr; }
    .year-bar-row { grid-template-columns: 52px minmax(90px, 1fr) 48px; }
    .login-shell-v2 { grid-template-columns: 1fr; }
    .login-brand-v2 { display: none; }
}
@media (max-width: 480px) {
    .metrics-grid { grid-template-columns: 1fr; }
    .metric { min-height: 96px; }
    .donut-chart { width: min(210px, 84vw); }
}


/* =========================================================
   Lyntec UI - logo limpio, métricas compactas y reportes
   ========================================================= */
:root{
  --sidebar-w: 230px;
  --green:#0C6231;
  --green-2:#127A3A;
  --green-dark:#08150C;
  --line:#D0D9D3;
  --surface:#FFFFFF;
  --text:#0B0F0C;
  --muted:#667085;
}
.app-shell{grid-template-columns:var(--sidebar-w) minmax(0,1fr);}
.app-sidebar{width:var(--sidebar-w);padding:12px 10px;gap:10px;height:100dvh;overflow:hidden;background:linear-gradient(180deg,#07130b 0%,#0C6231 58%,#127A3A 100%);} 
.sidebar-topline{margin-bottom:4px;}
.brand-clean{min-height:58px;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.14),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.20);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);}
.brand-clean .brand-icon{width:42px;height:42px;flex:0 0 42px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);overflow:hidden;}
.brand-clean .brand-icon img{width:42px;height:42px;display:block;object-fit:contain;}
.brand-clean .brand-copy{min-width:0;line-height:1.05;}
.brand-clean .brand-copy strong{display:block;font-size:18px;font-weight:850;color:#fff;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.brand-clean .brand-copy span{display:block;margin-top:5px;font-size:11px;font-weight:750;letter-spacing:.14em;text-transform:uppercase;color:#DDF7E7;}
.main-nav{gap:3px;padding:2px 0;}
.nav-item{min-height:38px;padding:8px 10px;border-radius:12px;font-size:14px;gap:9px;}
.nav-icon{width:22px;min-width:22px;font-size:14px;opacity:.9;}
.nav-item.is-active{background:rgba(255,255,255,.92);color:var(--green);}
.sidebar-account{margin-top:auto;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border-radius:16px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);}
.account-badge{width:34px;height:34px;border-radius:12px;font-size:14px;background:#fff;color:var(--green);}
.account-meta strong{font-size:13px;color:#fff;max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.account-meta span{font-size:11px;color:#DDF7E7;}
.logout-link{padding:7px 9px;border-radius:10px;background:rgba(255,255,255,.90);color:var(--green);font-size:12px;font-weight:850;}
.app-header{min-height:76px;padding:14px 20px;}
.page-content{padding:16px 18px 24px;}
.quick-actions{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px;}
.quick-card{min-height:78px;padding:14px 16px;border-radius:18px;}
.quick-card strong{font-size:clamp(20px,2.2vw,28px);}
.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:10px;margin:10px 0 14px;}
.metric{min-width:0;padding:13px 14px;border-radius:18px;min-height:118px;overflow:hidden;}
.metric .label{font-size:13px;font-weight:800;color:#1f2937;}
.metric .value{font-size:clamp(24px,3vw,40px);line-height:1.05;letter-spacing:-.04em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.metric .hint{font-size:12px;line-height:1.25;color:var(--muted);}
.metric-compact{min-height:104px;display:flex;flex-direction:column;justify-content:space-between;}
.metric-compact .compact-value{font-size:clamp(23px,2.5vw,36px);}
.dashboard-panels{gap:12px;align-items:start;}
.panel-card{border-radius:18px;padding:14px;}
.section-header{margin-bottom:10px;}
.section-header h2{font-size:19px;}
.chart-card{padding:10px;border-radius:16px;}
.status-chart-card{grid-template-columns:minmax(170px,220px) minmax(0,1fr);gap:12px;align-items:center;}
.donut-chart{width:clamp(170px,20vw,230px);height:clamp(170px,20vw,230px);}
.compact-donut{width:clamp(150px,18vw,210px);height:clamp(150px,18vw,210px);}
.donut-center strong{font-size:clamp(26px,3vw,44px);}
.chart-legend{gap:5px;}
.legend-row{min-height:34px;padding:6px 8px;border-radius:10px;font-size:13px;}
.legend-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.year-bars{gap:5px;}
.year-bar-row{grid-template-columns:48px minmax(90px,1fr) 54px;min-height:34px;padding:6px 8px;border-radius:10px;font-size:13px;}
.table-wrap{max-height:min(68vh,720px);}
.login-compact{background:radial-gradient(circle at 20% 20%,#15803d 0,#0c6231 35%,#07130b 100%);}
.login-shell-pro{min-height:100dvh;display:grid;grid-template-columns:minmax(330px,560px) minmax(320px,420px);gap:clamp(18px,4vw,56px);align-items:center;justify-content:center;padding:clamp(20px,5vw,64px);}
.login-brand-pro{min-height:420px;border-radius:28px;padding:clamp(24px,4vw,44px);background:linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.18);box-shadow:0 24px 70px rgba(0,0,0,.18);display:flex;flex-direction:column;justify-content:space-between;color:#fff;}
.login-logo-clean{width:min(260px,80%);height:auto;display:block;}
.login-brand-copy h1{font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.06em;margin:0 0 16px;}
.login-brand-copy p{max-width:480px;color:#E8F5EC;font-size:clamp(16px,1.7vw,20px);line-height:1.5;}
.login-card-pro{border-radius:26px;padding:clamp(22px,3vw,34px);box-shadow:0 24px 70px rgba(0,0,0,.18);}
.login-card-pro h2{font-size:clamp(28px,3.2vw,42px);margin:0 0 18px;}
.report-toolbar{padding:14px;}
.report-form{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;align-items:end;}
.report-form label{display:grid;gap:4px;font-size:12px;font-weight:800;color:var(--muted);}
.report-form input,.report-form select{min-height:40px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:14px;background:white;color:var(--text);}
.report-form .span-2{grid-column:span 2;}
.report-actions{grid-column:span 6;display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;}
.report-note{margin:8px 0 0;color:var(--muted);font-size:13px;}
.report-panels{margin-top:12px;}
.money,.metric-value,.col-money{font-variant-numeric:tabular-nums;}
@media (max-height:760px) and (min-width:901px){
  .app-sidebar{padding:8px 8px}.brand-clean{min-height:52px;padding:7px}.brand-clean .brand-icon{width:36px;height:36px;flex-basis:36px}.brand-clean .brand-icon img{width:36px;height:36px}.nav-item{min-height:34px;padding:6px 9px;font-size:13px}.sidebar-account{padding:6px}.app-header{min-height:66px;padding:10px 16px}.page-content{padding:12px 14px 20px}.metric{min-height:92px;padding:10px 12px}.quick-card{min-height:66px;padding:12px 14px}.quick-card strong{font-size:22px}.panel-card{padding:12px}.section-header h2{font-size:18px}
}
@media (max-width:1180px){
  :root{--sidebar-w:210px}.report-form{grid-template-columns:repeat(3,minmax(120px,1fr));}.report-actions{grid-column:span 3}.report-form .span-2{grid-column:span 2;}
}
@media (max-width:900px){
  .app-shell{grid-template-columns:1fr}.app-sidebar{width:min(86vw,300px);padding:12px}.login-shell-pro{grid-template-columns:1fr;max-width:480px;margin:auto}.login-brand-pro{min-height:auto;padding:20px}.login-logo-clean{width:210px}.login-brand-copy h1{font-size:34px}.login-brand-copy p{font-size:15px}.status-chart-card{grid-template-columns:1fr}.donut-wrap{justify-content:center}.report-form{grid-template-columns:1fr}.report-actions,.report-form .span-2{grid-column:auto}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.metric{min-height:96px}.metric .value{font-size:clamp(24px,8vw,34px)}
}
@media (max-width:560px){
  .metrics-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr}.app-header{padding:12px}.page-content{padding:12px}.metric{min-height:auto}.dashboard-panels{grid-template-columns:1fr}.year-bar-row{grid-template-columns:44px 1fr 48px}.login-shell-pro{padding:16px}.login-brand-pro{display:none}.login-card-pro{padding:22px}.report-actions .btn{width:100%;justify-content:center;}
}
@media print{.app-sidebar,.app-header,.back-to-top,.toast-region,.no-print{display:none!important}.app-shell{display:block}.page-content{padding:0}.panel-card,.metric{box-shadow:none!important;border:1px solid #ddd}body{background:#fff;color:#000}}


/* Limpieza de columnas técnicas de origen */
.btn-danger { background: #b91c1c !important; color: #fff !important; }
.alert.warning { background: #fff7ed; color: #9a3412; border: 1px solid #fed7aa; }
.clean-list { display: grid; gap: .5rem; padding-left: 1.2rem; }
.clean-form { display: grid; gap: 1rem; max-width: 520px; margin-top: 1rem; }
.clean-form input { width: 100%; }


/* =========================================================
   Lyntec Brand Simétrico - logo real + mejor uso de espacios
   ========================================================= */
:root {
  --sidebar-w: 218px;
  --brand-deep: #06140A;
  --brand-green: #0C6231;
  --brand-green-2: #127A3A;
  --brand-green-3: #159447;
  --space-page: clamp(14px, 1.6vw, 22px);
}

.app-shell { grid-template-columns: var(--sidebar-w) minmax(0,1fr); }
.app-sidebar {
  width: var(--sidebar-w);
  padding: 12px 10px;
  gap: 9px;
  background:
    radial-gradient(circle at 18% 0%, rgba(39, 174, 96, .32), transparent 34%),
    linear-gradient(180deg, #07120B 0%, #0B3B20 38%, #0C6231 100%);
}
.sidebar-topline { margin-bottom: 2px; }
.brand-panel.brand-clean {
  min-height: 64px;
  display: grid;
  grid-template-columns: 48px minmax(0,1fr);
  align-items: center;
  gap: 11px;
  padding: 10px 11px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,.13), rgba(255,255,255,.055));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 16px 34px rgba(0,0,0,.10);
  overflow: hidden;
}
.brand-panel.brand-clean::after {
  content: "";
  position: absolute;
  inset: auto 10px 6px 70px;
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,.36), transparent);
  opacity: .55;
}
.brand-panel.brand-clean { position: relative; }
.brand-clean .brand-icon-real,
.brand-clean .brand-icon {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
}
.brand-clean .brand-icon-real img,
.brand-clean .brand-icon img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,.18));
}
.brand-clean .brand-copy strong {
  font-size: 18px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: .025em;
}
.brand-clean .brand-copy span {
  margin-top: 4px;
  font-size: 12px;
  font-weight: 750;
  letter-spacing: .01em;
  text-transform: none;
  color: rgba(232,245,236,.86);
}
.main-nav { gap: 3px; padding-top: 4px; }
.nav-item { min-height: 36px; padding: 7px 10px; border-radius: 12px; font-size: 13.5px; }
.nav-icon { width: 21px; min-width: 21px; }
.sidebar-account { padding: 8px; border-radius: 16px; }
.account-meta strong { max-width: 70px; }
.logout-link { min-height: 32px; display: grid; place-items: center; }

.app-header { min-height: 68px; padding: 12px var(--space-page); }
.page-content { padding: 14px var(--space-page) 22px; }

.quick-actions { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 10px; margin-bottom: 10px; }
.quick-card { min-height: 66px; padding: 12px 14px; border-radius: 17px; }
.quick-card span { font-size: 12px; }
.quick-card strong { font-size: clamp(18px, 1.8vw, 24px); }
.metrics-grid { grid-template-columns: repeat(6, minmax(138px,1fr)); gap: 10px; margin: 10px 0 12px; }
.metric { min-height: 94px; padding: 11px 12px; border-radius: 17px; }
.metric .label { font-size: 12.5px; }
.metric .value { font-size: clamp(23px, 2.1vw, 34px); line-height: 1; }
.metric .hint { font-size: 12px; }
.dashboard-panels { grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr); gap: 12px; }
.panel-card { padding: 13px; border-radius: 18px; }
.status-chart-card { grid-template-columns: minmax(150px, 210px) minmax(0, 1fr); }
.compact-donut { width: clamp(150px, 16vw, 196px); height: clamp(150px, 16vw, 196px); }
.chart-legend { max-height: 230px; overflow: auto; padding-right: 2px; }
.year-bars { max-height: 300px; overflow: auto; padding-right: 2px; }

/* Login simétrico con marca Lyntec real */
.login-balanced {
  min-height: 100dvh;
  background:
    radial-gradient(circle at 16% 18%, rgba(34,197,94,.34), transparent 34%),
    radial-gradient(circle at 82% 82%, rgba(20,184,166,.18), transparent 32%),
    linear-gradient(135deg, #06110A 0%, #0C6231 54%, #072011 100%);
  color: #fff;
}
.login-shell-balanced {
  min-height: 100dvh;
  width: min(1120px, calc(100vw - 40px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(420px, 1.08fr) minmax(340px, .72fr);
  align-items: center;
  gap: clamp(20px, 4vw, 56px);
  padding: clamp(20px, 5vw, 56px) 0;
}
.login-hero-balanced,
.login-card-balanced {
  min-height: min(520px, calc(100dvh - 80px));
  border-radius: 30px;
}
.login-hero-balanced {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(26px, 4vw, 48px);
  background:
    radial-gradient(circle at 20% 16%, rgba(40, 220, 104, .35), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.16), rgba(255,255,255,.055));
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 30px 80px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.16);
  overflow: hidden;
  position: relative;
}
.login-hero-balanced::after {
  content: "";
  position: absolute;
  right: -120px;
  bottom: -120px;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
}
.login-brand-row { display:flex; align-items:center; gap:14px; position:relative; z-index:1; }
.login-brand-mark { width:58px; height:58px; display:grid; place-items:center; flex:0 0 58px; }
.login-brand-mark img { width:58px; height:58px; object-fit:contain; filter: drop-shadow(0 10px 18px rgba(0,0,0,.18)); }
.login-brand-title { display:grid; gap:1px; }
.login-brand-title strong { font-size:23px; line-height:1; font-weight:900; letter-spacing:.035em; }
.login-brand-title small { color:#DDF7E7; font-weight:750; font-size:14px; }
.login-hero-copy { position:relative; z-index:1; max-width: 560px; }
.login-hero-copy h1 { margin: 0 0 16px; font-size: clamp(44px, 5.4vw, 72px); line-height:.96; letter-spacing:-.065em; }
.login-hero-copy p:not(.eyebrow) { margin:0; max-width: 520px; color:rgba(255,255,255,.88); font-size: clamp(16px, 1.55vw, 20px); line-height:1.48; }
.login-eyebrow { color:#DDF7E7; }
.login-hero-footer { position:relative; z-index:1; display:flex; gap:8px; flex-wrap:wrap; }
.login-hero-footer span { padding:7px 10px; border-radius:999px; background:rgba(255,255,255,.12); color:#E8F5EC; font-size:12px; font-weight:800; }
.login-card-balanced {
  align-self: center;
  padding: clamp(24px, 3vw, 36px);
  display:flex;
  flex-direction:column;
  justify-content:center;
  background: rgba(255,255,255,.96);
  color: var(--ink);
  border: 1px solid rgba(255,255,255,.60);
  box-shadow: 0 30px 80px rgba(0,0,0,.20);
}
.login-card-balanced .eyebrow { color: var(--brand-green); }
.login-form-header h2 { margin: 0 0 8px; font-size: clamp(30px, 3.4vw, 44px); letter-spacing:-.04em; }
.login-form-header p:not(.eyebrow) { margin:0 0 24px; color: var(--muted); }
.login-card-balanced .login-form { gap: 10px; }
.login-card-balanced .login-form input { min-height: 48px; border-radius: 14px; }
.login-card-balanced .btn-block { min-height: 48px; margin-top: 8px; }

@media (max-width: 1280px) {
  :root { --sidebar-w: 208px; }
  .metrics-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .quick-actions { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-height: 760px) and (min-width: 901px) {
  .brand-panel.brand-clean { min-height: 56px; grid-template-columns: 40px minmax(0,1fr); padding: 8px 9px; }
  .brand-clean .brand-icon-real, .brand-clean .brand-icon { width:40px;height:40px;flex-basis:40px; }
  .brand-clean .brand-icon-real img, .brand-clean .brand-icon img { width:40px;height:40px; }
  .brand-clean .brand-copy strong { font-size:16px; }
  .brand-clean .brand-copy span { font-size:11px; margin-top:3px; }
  .nav-item { min-height: 33px; padding: 6px 9px; }
  .login-hero-balanced, .login-card-balanced { min-height: 440px; }
}
@media (max-width: 900px) {
  .app-shell { grid-template-columns: 1fr; }
  .app-sidebar { width: min(86vw, 292px); }
  .quick-actions { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dashboard-panels { grid-template-columns: 1fr; }
  .login-shell-balanced { grid-template-columns: 1fr; width: min(520px, calc(100vw - 28px)); gap: 16px; }
  .login-hero-balanced { min-height: auto; padding: 22px; }
  .login-card-balanced { min-height: auto; }
  .login-hero-copy h1 { font-size: 40px; }
  .login-hero-footer { display:none; }
}
@media (max-width: 560px) {
  .quick-actions, .metrics-grid { grid-template-columns: 1fr; }
  .metric .value { font-size: 30px; }
  .login-hero-balanced { display:none; }
  .login-shell-balanced { min-height:100dvh; padding: 16px 0; align-content:center; }
}


/* ===== Excel original columns + vencimientos ===== */
.operational-table table{min-width:1500px;}
.col-notes{max-width:220px;white-space:normal;}
.strong-money{font-weight:800;color:#0b2f1b;}
.due-badge{display:inline-flex;flex-direction:column;gap:2px;border-radius:999px;padding:5px 9px;font-size:12px;line-height:1.15;border:1px solid #d7e3dc;background:#f8faf8;white-space:nowrap;}
.due-badge strong{font-size:11px;letter-spacing:.02em;}
.due-badge small{font-size:11px;color:#647067;}
.due-badge.status-vencida,.due-badge.status-vencidas{background:#fee2e2;color:#991b1b;border-color:#fecaca;}
.due-badge.status-por-vencer{background:#ffedd5;color:#9a3412;border-color:#fed7aa;}
.due-badge.status-vigente,.due-badge.status-cancelada,.due-badge.status-pagada{background:#dcfce7;color:#166534;border-color:#bbf7d0;}
.due-badge.status-revisar,.due-badge.status-sin-fecha{background:#f1f5f9;color:#334155;border-color:#cbd5e1;}
.metric .value.compact-value{font-size:clamp(1.45rem,2.2vw,2.4rem);line-height:1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.form-section-grid label input[readonly]{background:#f1f5f9;color:#64748b;}
@media (max-width: 900px){.operational-table{display:none}.mobile-cards{display:grid}.due-badge{white-space:normal}.metric .value.compact-value{font-size:clamp(1.4rem,8vw,2rem)}}


/* Clientes/RUT matching */
.client-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.action-card span { width: 34px; height: 34px; display: inline-grid; place-items: center; border-radius: 12px; background: var(--brand-green, #0C6231); color: #fff; font-weight: 900; margin-bottom: 10px; }
.compact-metrics .metric-card { min-width: 0; }
.two-cols { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.7fr); gap: 16px; align-items: start; }
.narrow-panel { max-width: 820px; }
.stack-form { display: grid; gap: 16px; }
.button-row { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.muted { color: var(--text-muted, #667085); }
.row-actions { white-space: nowrap; }
.btn-small { min-height: 34px; padding: 7px 10px; border-radius: 10px; font-size: 13px; }
.print-body { background:#fff; }
.print-report { max-width: 1120px; margin: 24px auto; padding: 24px; background:#fff; border-radius: 18px; box-shadow: 0 16px 50px rgba(0,0,0,.08); }
.print-header { display:flex; gap:16px; align-items:center; margin-bottom:20px; }
.print-header img { width: 120px; height:auto; }
@media (max-width: 980px) { .client-actions { grid-template-columns: repeat(2, minmax(0,1fr)); } .two-cols { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .client-actions { grid-template-columns: 1fr; } .button-row { flex-direction: column; align-items: stretch; } }


/* ============================================================
   Lyntec Gestión - CRM + ERP liviano
   ============================================================ */
.brand-gestion{align-items:center;gap:.75rem;min-height:74px}.brand-gestion .brand-copy small{display:block;font-size:.68rem;font-weight:700;line-height:1.1;opacity:.72;letter-spacing:.01em}.erp-nav .nav-group{margin:.15rem 0}.nav-summary{cursor:pointer;list-style:none}.nav-summary::-webkit-details-marker{display:none}.nav-chevron{margin-left:auto;opacity:.72}.nav-subitems{display:grid;gap:.12rem;margin:.15rem 0 .25rem 2.15rem}.nav-subitem{display:block;padding:.52rem .75rem;border-radius:14px;color:rgba(255,255,255,.78);text-decoration:none;font-weight:700;font-size:.92rem}.nav-subitem:hover,.nav-subitem.is-active{background:rgba(255,255,255,.16);color:#fff}.global-search input{min-width:260px;border:1px solid rgba(12,98,49,.18);background:#fff;border-radius:999px;padding:.72rem 1rem;font-weight:700}.erp-header-actions{gap:.55rem}.login-gestion{background:radial-gradient(circle at 25% 20%,rgba(24,167,87,.92),transparent 36%),linear-gradient(135deg,#09152a 0%,#073a22 45%,#0c7a3b 100%)}.login-hero-gestion{background:linear-gradient(145deg,rgba(8,86,42,.94),rgba(18,145,76,.78));border:1px solid rgba(255,255,255,.18)}.login-hero-gestion h1{max-width:640px}.erp-quick-actions{grid-template-columns:repeat(4,minmax(180px,1fr))}.erp-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.metric-card.wide{grid-column:span 2}.action-list{display:grid;gap:.65rem}.action-list a{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border:1px solid rgba(12,98,49,.14);border-radius:18px;text-decoration:none;font-weight:800;color:#0f2b1f;background:#f9fcfa}.toolbar-card{background:#fff;border:1px solid rgba(12,98,49,.12);border-radius:24px;padding:1rem;box-shadow:0 12px 32px rgba(13,45,30,.06);margin-bottom:1rem}.filters-grid{display:grid;grid-template-columns:minmax(240px,1fr) 180px auto auto;gap:.75rem;align-items:center}.filters-grid input,.filters-grid select,.erp-form input,.erp-form select,.erp-form textarea{width:100%;border:1px solid rgba(12,98,49,.18);border-radius:16px;padding:.85rem 1rem;font:inherit;background:#fff}.client-view-switch{display:flex;gap:.55rem;margin:.75rem 0 1rem}.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.client-card{background:#fff;border:1px solid rgba(12,98,49,.13);border-radius:24px;padding:1rem;box-shadow:0 16px 40px rgba(13,45,30,.07);display:flex;flex-direction:column;gap:.9rem;min-width:0}.client-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.client-card h2{font-size:1.05rem;line-height:1.2;margin:0;color:#0f1d2d}.rut-pill,.status-pill{display:inline-flex;align-items:center;border-radius:999px;background:#eef8f1;color:#0c6231;font-weight:900;font-size:.78rem;padding:.36rem .58rem;white-space:nowrap}.client-card dl{display:grid;gap:.45rem;margin:0}.client-card dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7b73;font-weight:900}.client-card dd{margin:0;color:#24342d;font-weight:700;overflow-wrap:anywhere}.client-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.65rem;border-radius:18px;background:#f5faf7;color:#41514a}.client-card footer,.toolbar-row,.detail-actions{display:flex;flex-wrap:wrap;gap:.5rem}.clients-table[hidden],.clients-grid[hidden]{display:none}.client-detail-hero{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.client-detail-hero h2{font-size:clamp(1.5rem,3vw,2.35rem);margin:.2rem 0}.client-rut-line{font-size:1.05rem}.detail-grid{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr);gap:1rem;margin-top:1rem}.clean-list{margin:.75rem 0 0;padding-left:1.1rem}.small-table table{font-size:.9rem}.form-panel{max-width:900px}.erp-form{display:grid;gap:1rem}.erp-form label{display:grid;gap:.35rem;font-weight:900;color:#25352e}.migration-card{max-width:920px}.migration-log{padding:.65rem .85rem;border-radius:14px;background:#eef8f1;margin:.45rem 0;font-weight:700}.empty-state{grid-column:1/-1;background:#fff;border-radius:24px;padding:2rem;text-align:center;border:1px dashed rgba(12,98,49,.24);color:#60736b;font-weight:800}.contacts-grid .contact-card{border-left:5px solid #0c8f4e}@media (max-width:1100px){.global-search input{min-width:180px}.erp-quick-actions{grid-template-columns:repeat(2,1fr)}.metric-card.wide{grid-column:span 1}.detail-grid{grid-template-columns:1fr}}@media (max-width:760px){.filters-grid{grid-template-columns:1fr}.client-detail-hero{display:grid}.erp-quick-actions{grid-template-columns:1fr}.clients-grid{grid-template-columns:1fr}.global-search{display:none}.login-shell-gestion{grid-template-columns:1fr}.login-hero-gestion{min-height:auto}.client-card-meta{grid-template-columns:1fr}}


/* =========================================================
   LYNTEC GESTIÓN — parche ejecutivo visual y funcional
   ========================================================= */
:root {
  --sidebar: 220px;
  --enterprise-bg: #F3F6F4;
  --enterprise-panel: rgba(255,255,255,.84);
  --enterprise-line: rgba(15, 42, 28, .10);
  --success: #0F8A45;
}

/* Login: logo más protagonista, textos negros menores y composición simétrica */
.login-executive { background: radial-gradient(circle at 18% 22%, rgba(13,142,70,.90) 0, rgba(13,142,70,.12) 33%, transparent 45%), linear-gradient(135deg,#081225 0%,#0A2717 44%,#0E7B3E 100%); }
.login-shell-executive { width: min(1120px, calc(100vw - 44px)); grid-template-columns: minmax(440px, 1.05fr) minmax(350px, 430px); gap: clamp(22px, 5vw, 64px); align-items: center; }
.login-hero-executive { min-height: 488px; padding: clamp(28px, 4vw, 46px); justify-content: space-between; background: linear-gradient(145deg, rgba(255,255,255,.90), rgba(255,255,255,.72)); color: #07130B; border: 1px solid rgba(255,255,255,.42); box-shadow: 0 30px 90px rgba(0,0,0,.20); overflow: hidden; }
.login-hero-executive::after { opacity: .32; background: radial-gradient(circle at 70% 10%, rgba(12,98,49,.45), transparent 34%), radial-gradient(circle at 80% 82%, rgba(6,148,82,.42), transparent 36%); }
.executive-brand-row { gap: 18px; align-items: center; }
.executive-login-mark { width: 92px; height: 92px; flex: 0 0 92px; border-radius: 26px; background: rgba(12,98,49,.09); border: 1px solid rgba(12,98,49,.13); box-shadow: inset 0 0 0 1px rgba(255,255,255,.50); }
.executive-login-mark img { width: 74px; height: 74px; filter: none; object-fit: contain; }
.executive-login-title strong { color: #07130B; font-size: 23px; letter-spacing: .02em; font-weight: 900; }
.executive-login-title small { color: #26352D; font-size: 15px; font-weight: 780; }
.executive-login-copy { max-width: 580px; }
.executive-login-copy .eyebrow { color: var(--brand); }
.executive-login-copy h1 { color: #07130B; font-size: clamp(38px, 5vw, 62px); line-height: .98; letter-spacing: -.06em; max-width: 560px; }
.executive-login-copy p:not(.eyebrow) { color: #304237; font-size: clamp(16px, 1.4vw, 18px); max-width: 535px; }
.executive-login-pills span { background: rgba(12,98,49,.10); color: #0B3D22; border: 1px solid rgba(12,98,49,.12); }
.login-card-executive { border-radius: 28px; box-shadow: 0 28px 90px rgba(0,0,0,.20); }
.login-card-executive .btn-primary { background: linear-gradient(135deg, #0C6231, #0F8A45); }

/* Sidebar: branding compacto y submenús más funcionales */
.app-sidebar.erp-sidebar { width: var(--sidebar); padding: 12px 10px; gap: 8px; }
.brand-gestion.compact-brand { min-height: 74px; padding: 10px; border-radius: 18px; background: rgba(255,255,255,.92); color: var(--ink); align-items: center; gap: 11px; }
.brand-gestion.compact-brand .brand-mark-wrap { width: 48px; height: 48px; border-radius: 15px; background: linear-gradient(135deg,#0C6231,#0F8A45); border: 1px solid rgba(255,255,255,.25); }
.brand-gestion.compact-brand .brand-mark { width: 34px; height: 34px; }
.brand-gestion.compact-brand .brand-copy strong { color: #07130B; font-size: 17px; letter-spacing: .03em; line-height: 1; }
.brand-gestion.compact-brand .brand-copy span { color: #0C6231; font-size: 13px; font-weight: 850; }
.brand-gestion.compact-brand .brand-copy small { color: #5B6B61; font-size: 10px; line-height: 1.15; max-width: 125px; }
.erp-nav .nav-item { min-height: 38px; padding: 8px 10px; border-radius: 13px; font-size: 14px; }
.erp-nav .nav-group { border-radius: 15px; }
.erp-nav .nav-summary { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); }
.erp-nav .nav-group[open] .nav-summary { background: rgba(255,255,255,.94); color: var(--brand); }
.nav-subitems { margin: 6px 0 8px 28px; border-left: 1px solid rgba(255,255,255,.18); padding-left: 8px; }
.nav-subitem { min-height: 34px; display:flex; align-items:center; padding: 7px 10px; border-radius: 11px; font-size: 13px; font-weight: 760; }
.sidebar-account { padding: 8px; grid-template-columns: 32px minmax(0,1fr) auto; }
.logout-link { min-height: 32px; padding: 6px 9px; }

/* Header operativo compacto */
.erp-header { padding: 11px 18px 10px; min-height: 68px; }
.command-bar { gap: 10px; align-items:center; }
.quick-command-group { display:flex; align-items:center; gap:6px; padding: 4px; background: rgba(255,255,255,.68); border: 1px solid var(--enterprise-line); border-radius: 999px; }
.command-link { min-height: 34px; display:inline-flex; align-items:center; justify-content:center; padding: 0 12px; border-radius: 999px; font-weight: 820; font-size: 13px; color:#0E2D1A; }
.command-link:hover { background: var(--brand-soft); color:var(--brand); }
.command-link.primary { background:#071225; color:#fff; padding-inline: 14px; box-shadow: 0 10px 22px rgba(7,18,37,.14); }
.command-link.subtle { color:#475569; }
.global-search input { min-height: 42px; min-width: min(330px, 26vw); box-shadow: 0 10px 28px rgba(12,98,49,.05); }

/* Barra superior de indicadores chilenos y notificaciones */
.status-strip { display:grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, 1fr) auto; gap: 10px; align-items:center; padding: 9px 18px; border-bottom: 1px solid var(--enterprise-line); background: rgba(255,255,255,.72); backdrop-filter: blur(12px); position: sticky; top: 68px; z-index: 24; }
.status-indicators, .status-notifications { display:flex; gap: 8px; align-items:center; min-width:0; overflow:hidden; }
.indicator-chip, .notification-chip { display:inline-flex; align-items:center; gap: 7px; min-height: 32px; padding: 6px 9px; border-radius: 999px; border:1px solid var(--enterprise-line); background:#fff; white-space:nowrap; box-shadow: 0 8px 22px rgba(15,42,28,.04); }
.indicator-chip strong { color: var(--brand); font-size: 11px; letter-spacing:.06em; }
.indicator-chip b { font-size: 13px; font-variant-numeric: tabular-nums; }
.indicator-chip small { color: var(--muted); font-size: 11px; }
.notification-chip { font-weight:800; font-size:12px; }
.notification-chip strong { padding: 2px 6px; border-radius: 999px; background: rgba(0,0,0,.06); }
.notification-chip.danger { color:#991B1B; background:#FFF1F2; border-color:#FFE4E6; }
.notification-chip.warning { color:#92400E; background:#FFFBEB; border-color:#FEF3C7; }
.notification-chip.info { color:#1E40AF; background:#EFF6FF; border-color:#DBEAFE; }
.notification-chip.success { color:#166534; background:#F0FDF4; border-color:#DCFCE7; }
.status-source { color: var(--muted); font-size: 12px; font-weight: 760; }

/* Dashboard ejecutivo */
.page-content { padding: 16px 18px 26px; }
.executive-hero { display:flex; justify-content:space-between; gap: 16px; align-items:center; margin-bottom: 14px; padding: 18px; border-radius: 24px; background: linear-gradient(135deg, rgba(255,255,255,.92), rgba(232,245,236,.84)); border: 1px solid var(--enterprise-line); box-shadow: 0 16px 42px rgba(12,98,49,.06); }
.executive-hero h2 { margin:0; font-size: clamp(24px, 2.8vw, 38px); letter-spacing: -.05em; }
.executive-hero p { margin: 6px 0 0; color: var(--muted); }
.executive-hero-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.executive-metrics { grid-template-columns: repeat(4, minmax(170px, 1fr)); gap: 10px; margin-bottom: 14px; }
.executive-metrics .metric { min-height: 108px; padding: 14px 15px; border-radius: 20px; box-shadow: 0 12px 30px rgba(15,42,28,.05); }
.metric-link.danger .value, .metric-link.danger .label { color:#991B1B; }
.metric-link.warning .value, .metric-link.warning .label { color:#92400E; }
.metric.money-card .value { font-size: clamp(22px, 2.6vw, 34px); white-space: nowrap; overflow:hidden; text-overflow: ellipsis; }
.metric.wide { grid-column: span 2; }
.dashboard-analytics-grid { display:grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 14px; }
.analytics-panel { min-height: 250px; overflow:hidden; }
.status-panel-wide { grid-row: span 2; }
.top-debt-panel { grid-column: 1 / -1; }
.status-chart-card { grid-template-columns: minmax(180px, 230px) minmax(0,1fr); }
.donut-wrap { min-height: 210px; }
.donut-chart { width: clamp(170px, 17vw, 220px); }
.chart-legend { max-height: 260px; overflow:auto; }
.year-bar-row { min-height: 38px; }
.debt-list { display:grid; gap:8px; }
.debt-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding: 11px 12px; border-radius: 16px; background:#fff; border:1px solid var(--enterprise-line); }
.debt-row:hover { background: var(--brand-soft); border-color: var(--brand-border); }
.debt-row span { display:grid; gap:2px; min-width:0; }
.debt-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.debt-row small { color: var(--muted); }
.debt-row b { color: #991B1B; font-variant-numeric: tabular-nums; }
.executive-actions a::after { content:'→'; opacity:.45; }

/* Responsive */
@media (max-width: 1180px) {
  .status-strip { grid-template-columns: 1fr; position: static; }
  .status-indicators, .status-notifications { overflow:auto; padding-bottom:2px; }
  .dashboard-analytics-grid { grid-template-columns: 1fr; }
  .status-panel-wide, .top-debt-panel { grid-column:auto; grid-row:auto; }
  .executive-metrics { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 1024px) {
  .header-actions.command-bar { display:none; }
  .status-strip { padding: 8px 14px; }
  .login-shell-executive { grid-template-columns: 1fr; width:min(540px, calc(100vw - 28px)); }
  .login-hero-executive { min-height:auto; }
  .login-card-executive { min-height:auto; }
}
@media (max-width: 768px) {
  .app-sidebar.erp-sidebar { width:min(300px,86vw); }
  .executive-hero { align-items:flex-start; flex-direction:column; }
  .executive-hero-actions .btn { flex:1; }
  .executive-metrics { grid-template-columns: 1fr; }
  .metric.wide { grid-column:auto; }
  .status-chart-card { grid-template-columns:1fr; }
  .login-hero-executive { display:none; }
}


/* =========================================================
   LYNTEC GESTIÓN — Sidebar OS Menu Pro
   Menú compacto, limpio e intuitivo inspirado en sistemas operativos modernos.
   No modifica base de datos ni lógica de negocio.
   ========================================================= */
:root {
  --sidebar-width: 264px;
  --sidebar-bg-1: #06130B;
  --sidebar-bg-2: #0B4B25;
  --sidebar-bg-3: #0C6231;
  --sidebar-card-bg: rgba(255,255,255,.94);
  --sidebar-card-border: rgba(255,255,255,.34);
  --sidebar-text: #F7FFF9;
  --sidebar-muted: rgba(226,245,232,.78);
  --sidebar-active-bg: rgba(255,255,255,.96);
  --sidebar-active-text: #0C6231;
  --sidebar-hover-bg: rgba(255,255,255,.105);
  --sidebar-sub-bg: rgba(255,255,255,.045);
  --sidebar-radius: 18px;
  --sidebar-gap: 8px;
  --sidebar-icon-size: 20px;
  --sidebar-brand-height: 82px;
  --sidebar-nav-item-h: 40px;
}

.app-shell,
.erp-shell {
  grid-template-columns: var(--sidebar-width) minmax(0, 1fr) !important;
}

.app-sidebar,
.erp-sidebar {
  width: var(--sidebar-width) !important;
  height: 100dvh !important;
  padding: 12px 10px !important;
  gap: 10px !important;
  overflow: hidden !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(34,197,94,.22), transparent 34%),
    linear-gradient(180deg, var(--sidebar-bg-1) 0%, var(--sidebar-bg-2) 48%, var(--sidebar-bg-3) 100%) !important;
  border-right: 1px solid rgba(255,255,255,.10);
}

.sidebar-topline {
  flex: 0 0 auto !important;
  margin: 0 0 2px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

/* Marca compacta horizontal: logo pequeño + textos proporcionados. */
.brand-panel.sidebar-brand-pro,
.brand-gestion.sidebar-brand-pro,
.app-sidebar .brand-panel.brand-gestion,
.app-sidebar .brand-panel.brand-clean {
  min-height: var(--sidebar-brand-height) !important;
  max-height: var(--sidebar-brand-height) !important;
  padding: 12px 13px !important;
  display: grid !important;
  grid-template-columns: 52px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  border-radius: 20px !important;
  color: #101914 !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.98), rgba(244,250,246,.90)) !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  box-shadow: 0 14px 32px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,255,255,.74) !important;
  overflow: hidden !important;
  position: relative !important;
  flex: 0 0 auto !important;
}

.brand-panel.sidebar-brand-pro::after,
.brand-gestion.sidebar-brand-pro::after,
.app-sidebar .brand-panel.brand-gestion::after,
.app-sidebar .brand-panel.brand-clean::after {
  content: "" !important;
  position: absolute !important;
  left: 78px !important;
  right: 14px !important;
  bottom: 10px !important;
  height: 1px !important;
  background: linear-gradient(90deg, rgba(12,98,49,.23), transparent) !important;
  opacity: .8 !important;
  pointer-events: none !important;
}

.sidebar-brand-logo,
.brand-panel.sidebar-brand-pro .brand-icon,
.brand-gestion.sidebar-brand-pro .brand-icon,
.app-sidebar .brand-panel.brand-gestion .brand-icon,
.app-sidebar .brand-panel.brand-clean .brand-icon,
.app-sidebar .brand-panel.brand-clean .brand-icon-real {
  width: 52px !important;
  height: 52px !important;
  flex: 0 0 52px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 16px !important;
  background: #FFFFFF !important;
  border: 1px solid rgba(12,98,49,.12) !important;
  box-shadow: 0 8px 20px rgba(12,98,49,.12) !important;
  overflow: hidden !important;
}

.sidebar-brand-logo img,
.brand-panel.sidebar-brand-pro .brand-icon img,
.brand-gestion.sidebar-brand-pro .brand-icon img,
.app-sidebar .brand-panel.brand-gestion .brand-icon img,
.app-sidebar .brand-panel.brand-clean .brand-icon img,
.app-sidebar .brand-panel.brand-clean .brand-icon-real img {
  width: 38px !important;
  height: 38px !important;
  object-fit: contain !important;
  opacity: 1 !important;
  filter: none !important;
}

.brand-panel.sidebar-brand-pro .brand-copy,
.brand-gestion.sidebar-brand-pro .brand-copy,
.app-sidebar .brand-panel.brand-gestion .brand-copy,
.app-sidebar .brand-panel.brand-clean .brand-copy {
  min-width: 0 !important;
  display: grid !important;
  gap: 2px !important;
  line-height: 1.08 !important;
  align-content: center !important;
}

.brand-panel.sidebar-brand-pro .brand-copy strong,
.brand-gestion.sidebar-brand-pro .brand-copy strong,
.app-sidebar .brand-panel.brand-gestion .brand-copy strong,
.app-sidebar .brand-panel.brand-clean .brand-copy strong {
  display: block !important;
  color: #07130B !important;
  font-size: 18px !important;
  font-weight: 880 !important;
  letter-spacing: .03em !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-shadow: none !important;
}

.brand-panel.sidebar-brand-pro .brand-copy span,
.brand-gestion.sidebar-brand-pro .brand-copy span,
.app-sidebar .brand-panel.brand-gestion .brand-copy span,
.app-sidebar .brand-panel.brand-clean .brand-copy span {
  display: block !important;
  color: #0C6231 !important;
  font-size: 13px !important;
  font-weight: 760 !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  opacity: 1 !important;
}

.brand-panel.sidebar-brand-pro .brand-copy small,
.brand-gestion.sidebar-brand-pro .brand-copy small,
.app-sidebar .brand-panel.brand-gestion .brand-copy small,
.app-sidebar .brand-panel.brand-clean .brand-copy small {
  display: block !important;
  color: #52645B !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  max-width: 142px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  opacity: 1 !important;
}

.sidebar-close {
  flex: 0 0 auto !important;
}

/* Navegación: comportamiento tipo sistema operativo, claro y compacto. */
.main-nav,
.erp-nav {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: grid !important;
  align-content: start !important;
  gap: 4px !important;
  padding: 4px 2px 6px 0 !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(255,255,255,.28) transparent !important;
}

.main-nav::-webkit-scrollbar,
.erp-nav::-webkit-scrollbar { width: 7px; }
.main-nav::-webkit-scrollbar-thumb,
.erp-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.24); border-radius: 999px; }

.nav-item,
.nav-summary {
  min-height: var(--sidebar-nav-item-h) !important;
  padding: 8px 10px !important;
  border-radius: 14px !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  color: rgba(248,255,250,.90) !important;
  background: transparent !important;
  border: 1px solid transparent !important;
  font-size: 14px !important;
  font-weight: 760 !important;
  letter-spacing: -.01em !important;
  line-height: 1.1 !important;
  transition: background .15s ease, color .15s ease, transform .15s ease, border-color .15s ease !important;
  cursor: pointer !important;
  user-select: none !important;
}

.nav-item:hover,
.nav-summary:hover {
  background: var(--sidebar-hover-bg) !important;
  border-color: rgba(255,255,255,.10) !important;
  color: #FFFFFF !important;
}

.nav-item.is-active,
.nav-summary.is-active,
.nav-group[open] > .nav-summary {
  background: var(--sidebar-active-bg) !important;
  color: var(--sidebar-active-text) !important;
  border-color: rgba(255,255,255,.52) !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.10) !important;
}

.nav-icon {
  width: var(--sidebar-icon-size) !important;
  min-width: var(--sidebar-icon-size) !important;
  height: var(--sidebar-icon-size) !important;
  display: grid !important;
  place-items: center !important;
  opacity: .88 !important;
  font-size: 14px !important;
  line-height: 1 !important;
}

.nav-item.is-active .nav-icon,
.nav-summary.is-active .nav-icon,
.nav-group[open] > .nav-summary .nav-icon { opacity: 1 !important; }

.nav-group {
  margin: 0 !important;
  border-radius: 15px !important;
}

.nav-summary {
  list-style: none !important;
}
.nav-summary::-webkit-details-marker { display: none !important; }

.nav-chevron {
  margin-left: auto !important;
  opacity: .72 !important;
  font-size: 14px !important;
  transform: rotate(0deg) !important;
  transition: transform .16s ease !important;
}
.nav-group[open] .nav-chevron { transform: rotate(180deg) !important; }

.nav-subitems {
  display: grid !important;
  gap: 2px !important;
  margin: 5px 0 7px 31px !important;
  padding: 2px 0 2px 10px !important;
  border-left: 1px solid rgba(255,255,255,.20) !important;
  background: transparent !important;
}

.nav-subitem {
  min-height: 34px !important;
  display: flex !important;
  align-items: center !important;
  padding: 7px 10px !important;
  border-radius: 12px !important;
  color: rgba(244,255,247,.78) !important;
  background: transparent !important;
  font-size: 13px !important;
  font-weight: 720 !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  transition: background .15s ease, color .15s ease, transform .15s ease !important;
}

.nav-subitem:hover {
  background: rgba(255,255,255,.105) !important;
  color: #FFFFFF !important;
}

.nav-subitem.is-active {
  background: rgba(255,255,255,.92) !important;
  color: #0C6231 !important;
  font-weight: 820 !important;
  box-shadow: 0 8px 18px rgba(0,0,0,.08) !important;
}

/* Footer usuario siempre útil y compacto. */
.sidebar-account {
  flex: 0 0 auto !important;
  margin-top: 0 !important;
  display: grid !important;
  grid-template-columns: 36px minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.16) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08) !important;
}

.account-badge {
  width: 36px !important;
  height: 36px !important;
  border-radius: 13px !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.95) !important;
  color: #0C6231 !important;
  font-size: 14px !important;
  font-weight: 900 !important;
}

.account-meta { min-width: 0 !important; }
.account-meta strong {
  display: block !important;
  max-width: 82px !important;
  color: #FFFFFF !important;
  font-size: 13px !important;
  font-weight: 820 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.account-meta span {
  display: block !important;
  color: rgba(226,245,232,.78) !important;
  font-size: 11px !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.logout-link {
  grid-column: auto !important;
  min-height: 34px !important;
  padding: 7px 10px !important;
  border-radius: 12px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(255,255,255,.94) !important;
  color: #0C6231 !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  font-size: 12px !important;
  font-weight: 850 !important;
}
.logout-link:hover { background: #FFFFFF !important; transform: translateY(-1px); }

/* Mejor uso de altura en notebooks. */
@media (max-height: 820px) and (min-width: 769px) {
  :root {
    --sidebar-width: 246px;
    --sidebar-brand-height: 72px;
    --sidebar-nav-item-h: 35px;
  }
  .app-sidebar,
  .erp-sidebar { padding: 9px 8px !important; gap: 7px !important; }
  .brand-panel.sidebar-brand-pro,
  .brand-gestion.sidebar-brand-pro,
  .app-sidebar .brand-panel.brand-gestion,
  .app-sidebar .brand-panel.brand-clean {
    padding: 9px 10px !important;
    grid-template-columns: 44px minmax(0, 1fr) !important;
    gap: 10px !important;
  }
  .sidebar-brand-logo,
  .brand-panel.sidebar-brand-pro .brand-icon,
  .brand-gestion.sidebar-brand-pro .brand-icon,
  .app-sidebar .brand-panel.brand-gestion .brand-icon,
  .app-sidebar .brand-panel.brand-clean .brand-icon,
  .app-sidebar .brand-panel.brand-clean .brand-icon-real {
    width: 44px !important;
    height: 44px !important;
    flex-basis: 44px !important;
    border-radius: 14px !important;
  }
  .sidebar-brand-logo img,
  .brand-panel.sidebar-brand-pro .brand-icon img,
  .brand-gestion.sidebar-brand-pro .brand-icon img,
  .app-sidebar .brand-panel.brand-gestion .brand-icon img,
  .app-sidebar .brand-panel.brand-clean .brand-icon img,
  .app-sidebar .brand-panel.brand-clean .brand-icon-real img {
    width: 32px !important;
    height: 32px !important;
  }
  .brand-panel.sidebar-brand-pro .brand-copy strong,
  .brand-gestion.sidebar-brand-pro .brand-copy strong,
  .app-sidebar .brand-panel.brand-gestion .brand-copy strong,
  .app-sidebar .brand-panel.brand-clean .brand-copy strong { font-size: 16px !important; }
  .brand-panel.sidebar-brand-pro .brand-copy span,
  .brand-gestion.sidebar-brand-pro .brand-copy span,
  .app-sidebar .brand-panel.brand-gestion .brand-copy span,
  .app-sidebar .brand-panel.brand-clean .brand-copy span { font-size: 12px !important; }
  .brand-panel.sidebar-brand-pro .brand-copy small,
  .brand-gestion.sidebar-brand-pro .brand-copy small,
  .app-sidebar .brand-panel.brand-gestion .brand-copy small,
  .app-sidebar .brand-panel.brand-clean .brand-copy small { font-size: 10px !important; max-width: 126px !important; }
  .nav-item,
  .nav-summary { padding: 6px 9px !important; font-size: 13px !important; }
  .nav-subitem { min-height: 30px !important; padding: 5px 9px !important; font-size: 12.5px !important; }
  .sidebar-account { padding: 7px !important; grid-template-columns: 32px minmax(0, 1fr) auto !important; }
  .account-badge { width: 32px !important; height: 32px !important; }
}

@media (max-width: 900px) {
  .app-shell,
  .erp-shell { grid-template-columns: 1fr !important; }
  .app-sidebar,
  .erp-sidebar {
    width: min(86vw, 300px) !important;
    padding: 12px !important;
  }
  .sidebar-close { display: grid !important; place-items: center !important; }
}

@media (max-width: 520px) {
  .brand-panel.sidebar-brand-pro,
  .brand-gestion.sidebar-brand-pro,
  .app-sidebar .brand-panel.brand-gestion,
  .app-sidebar .brand-panel.brand-clean {
    grid-template-columns: 46px minmax(0,1fr) !important;
    min-height: 76px !important;
    max-height: 76px !important;
  }
}


/* ==========================================================
   LYNTEC GESTIÓN — SIDEBAR STATE FIX 2026-05-19
   Corrige dos problemas UX:
   1) branding superior descentrado;
   2) grupo desplegado no debe verse como página activa.
   ========================================================== */
:root {
  --sidebar-active-bg-strong: rgba(255,255,255,.97);
  --sidebar-expanded-bg: rgba(255,255,255,.135);
  --sidebar-expanded-border: rgba(255,255,255,.20);
  --sidebar-expanded-text: rgba(250,255,252,.96);
  --sidebar-sub-active-bg: rgba(255,255,255,.94);
  --sidebar-sub-active-text: #0A5A2C;
}

/* Branding: composición más centrada y simétrica */
.app-sidebar .brand-panel.sidebar-brand-pro,
.app-sidebar .brand-gestion.sidebar-brand-pro,
.app-sidebar .brand-panel.brand-gestion,
.app-sidebar .brand-panel.brand-clean {
  min-height: 82px !important;
  max-height: 82px !important;
  grid-template-columns: 46px minmax(0, 1fr) !important;
  gap: 13px !important;
  padding: 13px 15px !important;
  align-items: center !important;
  justify-items: stretch !important;
}

.app-sidebar .brand-panel.sidebar-brand-pro::after,
.app-sidebar .brand-gestion.sidebar-brand-pro::after,
.app-sidebar .brand-panel.brand-gestion::after,
.app-sidebar .brand-panel.brand-clean::after {
  left: 74px !important;
  right: 16px !important;
  bottom: 11px !important;
}

.app-sidebar .sidebar-brand-logo,
.app-sidebar .brand-panel.sidebar-brand-pro .brand-icon,
.app-sidebar .brand-gestion.sidebar-brand-pro .brand-icon,
.app-sidebar .brand-panel.brand-gestion .brand-icon,
.app-sidebar .brand-panel.brand-clean .brand-icon,
.app-sidebar .brand-panel.brand-clean .brand-icon-real {
  width: 46px !important;
  height: 46px !important;
  flex-basis: 46px !important;
  border-radius: 15px !important;
  align-self: center !important;
  justify-self: center !important;
}

.app-sidebar .sidebar-brand-logo img,
.app-sidebar .brand-panel.sidebar-brand-pro .brand-icon img,
.app-sidebar .brand-gestion.sidebar-brand-pro .brand-icon img,
.app-sidebar .brand-panel.brand-gestion .brand-icon img,
.app-sidebar .brand-panel.brand-clean .brand-icon img,
.app-sidebar .brand-panel.brand-clean .brand-icon-real img {
  width: 34px !important;
  height: 34px !important;
  object-fit: contain !important;
}

.app-sidebar .brand-panel.sidebar-brand-pro .brand-copy,
.app-sidebar .brand-gestion.sidebar-brand-pro .brand-copy,
.app-sidebar .brand-panel.brand-gestion .brand-copy,
.app-sidebar .brand-panel.brand-clean .brand-copy {
  align-content: center !important;
  justify-content: start !important;
  gap: 3px !important;
  transform: translateY(0) !important;
}

.app-sidebar .brand-panel.sidebar-brand-pro .brand-copy strong,
.app-sidebar .brand-gestion.sidebar-brand-pro .brand-copy strong,
.app-sidebar .brand-panel.brand-gestion .brand-copy strong,
.app-sidebar .brand-panel.brand-clean .brand-copy strong {
  font-size: 18px !important;
  line-height: .98 !important;
}

.app-sidebar .brand-panel.sidebar-brand-pro .brand-copy span,
.app-sidebar .brand-gestion.sidebar-brand-pro .brand-copy span,
.app-sidebar .brand-panel.brand-gestion .brand-copy span,
.app-sidebar .brand-panel.brand-clean .brand-copy span {
  font-size: 13px !important;
  line-height: 1.05 !important;
}

.app-sidebar .brand-panel.sidebar-brand-pro .brand-copy small,
.app-sidebar .brand-gestion.sidebar-brand-pro .brand-copy small,
.app-sidebar .brand-panel.brand-gestion .brand-copy small,
.app-sidebar .brand-panel.brand-clean .brand-copy small {
  font-size: 10.25px !important;
  line-height: 1.1 !important;
  max-width: 150px !important;
}

/* Jerarquía correcta: activo ≠ expandido */
.app-sidebar .nav-item.is-active:not(.nav-summary) {
  background: var(--sidebar-active-bg-strong) !important;
  color: var(--sidebar-active-text) !important;
  border-color: rgba(255,255,255,.60) !important;
  box-shadow: 0 9px 18px rgba(0,0,0,.13) !important;
}

/* El summary de un grupo abierto NO es página activa. */
.app-sidebar .nav-group[open] > .nav-summary,
.app-sidebar .nav-summary.is-expanded,
.app-sidebar .nav-group.has-active-child > .nav-summary {
  background: var(--sidebar-expanded-bg) !important;
  color: var(--sidebar-expanded-text) !important;
  border-color: var(--sidebar-expanded-border) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}

.app-sidebar .nav-group[open] > .nav-summary:hover,
.app-sidebar .nav-summary.is-expanded:hover,
.app-sidebar .nav-group.has-active-child > .nav-summary:hover {
  background: rgba(255,255,255,.18) !important;
  color: #FFFFFF !important;
}

.app-sidebar .nav-group[open] > .nav-summary .nav-icon,
.app-sidebar .nav-summary.is-expanded .nav-icon,
.app-sidebar .nav-group.has-active-child > .nav-summary .nav-icon {
  opacity: 1 !important;
}

/* Subopción activa: esta sí representa la página real dentro del grupo. */
.app-sidebar .nav-subitem.is-active {
  position: relative !important;
  background: var(--sidebar-sub-active-bg) !important;
  color: var(--sidebar-sub-active-text) !important;
  font-weight: 860 !important;
  box-shadow: 0 7px 16px rgba(0,0,0,.10) !important;
}

.app-sidebar .nav-subitem.is-active::before {
  content: "" !important;
  position: absolute !important;
  left: -11px !important;
  top: 8px !important;
  bottom: 8px !important;
  width: 3px !important;
  border-radius: 999px !important;
  background: #FFFFFF !important;
}

.app-sidebar .nav-subitems {
  margin-top: 6px !important;
  margin-bottom: 8px !important;
  border-left-color: rgba(255,255,255,.22) !important;
}

/* Evitar que dos opciones parezcan activas cuando se abre un grupo manualmente. */
.app-sidebar .nav-summary.is-active {
  background: var(--sidebar-expanded-bg) !important;
  color: var(--sidebar-expanded-text) !important;
  border-color: var(--sidebar-expanded-border) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}

/* Accesibilidad: foco claro sin romper la estética */
.app-sidebar .nav-item:focus-visible,
.app-sidebar .nav-summary:focus-visible,
.app-sidebar .nav-subitem:focus-visible,
.app-sidebar .logout-link:focus-visible,
.app-sidebar .brand-panel:focus-visible {
  outline: 3px solid rgba(255,255,255,.55) !important;
  outline-offset: 2px !important;
}

@media (max-height: 820px) and (min-width: 769px) {
  .app-sidebar .brand-panel.sidebar-brand-pro,
  .app-sidebar .brand-gestion.sidebar-brand-pro,
  .app-sidebar .brand-panel.brand-gestion,
  .app-sidebar .brand-panel.brand-clean {
    min-height: 70px !important;
    max-height: 70px !important;
    grid-template-columns: 40px minmax(0, 1fr) !important;
    padding: 9px 11px !important;
    gap: 10px !important;
  }
  .app-sidebar .sidebar-brand-logo,
  .app-sidebar .brand-panel.sidebar-brand-pro .brand-icon,
  .app-sidebar .brand-gestion.sidebar-brand-pro .brand-icon,
  .app-sidebar .brand-panel.brand-gestion .brand-icon,
  .app-sidebar .brand-panel.brand-clean .brand-icon,
  .app-sidebar .brand-panel.brand-clean .brand-icon-real {
    width: 40px !important;
    height: 40px !important;
    flex-basis: 40px !important;
  }
  .app-sidebar .sidebar-brand-logo img,
  .app-sidebar .brand-panel.sidebar-brand-pro .brand-icon img,
  .app-sidebar .brand-gestion.sidebar-brand-pro .brand-icon img,
  .app-sidebar .brand-panel.brand-gestion .brand-icon img,
  .app-sidebar .brand-panel.brand-clean .brand-icon img,
  .app-sidebar .brand-panel.brand-clean .brand-icon-real img {
    width: 30px !important;
    height: 30px !important;
  }
  .app-sidebar .brand-panel.sidebar-brand-pro::after,
  .app-sidebar .brand-gestion.sidebar-brand-pro::after,
  .app-sidebar .brand-panel.brand-gestion::after,
  .app-sidebar .brand-panel.brand-clean::after { display: none !important; }
}


/* =========================================================
   LYNTEC GESTIÓN — Header operativo fijo y dashboard limpio
   Métricas chilenas + alertas + búsqueda compacta + acciones únicas.
   ========================================================= */
:root {
  --topbar-height: 62px;
  --statusbar-height: 38px;
  --header-bg: rgba(248, 251, 249, .92);
  --header-border: rgba(15, 42, 28, .10);
  --metric-chip-bg: rgba(255,255,255,.80);
  --metric-chip-text: #10251A;
  --alert-danger-bg: #FFF1F2;
  --alert-danger-text: #991B1B;
  --alert-warning-bg: #FFFBEB;
  --alert-warning-text: #92400E;
  --quick-action-bg: #071225;
  --quick-action-text: #FFFFFF;
}

.app-header.app-operational-header {
  position: sticky;
  top: 0;
  z-index: 34;
  display: block;
  min-height: auto;
  padding: 0;
  background: var(--header-bg);
  border-bottom: 1px solid var(--header-border);
  box-shadow: 0 14px 34px rgba(15,42,28,.055);
  backdrop-filter: blur(18px);
}
.topbar-row {
  min-height: var(--topbar-height);
  display: grid;
  grid-template-columns: minmax(180px, .72fr) minmax(520px, 1.28fr);
  align-items: center;
  gap: 14px;
  padding: 10px 18px 8px;
}
.topbar-title { min-width: 0; }
.topbar-title .eyebrow { font-size: 11px; margin-bottom: 0; }
.topbar-title h1 { font-size: clamp(24px, 2.1vw, 34px); line-height: 1.04; }
.topbar-title .page-subtitle { max-width: 440px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.topbar-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  min-width: 0;
}
.global-search.global-search-compact {
  position: relative;
  flex: 1 1 340px;
  max-width: 420px;
  min-width: 220px;
}
.global-search.global-search-compact .search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #6B7B73;
  font-weight: 900;
  z-index: 1;
  pointer-events: none;
}
.global-search.global-search-compact input {
  min-width: 0;
  width: 100%;
  min-height: 40px;
  padding: 9px 14px 9px 36px;
  border-radius: 999px;
  border: 1px solid rgba(12,98,49,.14);
  background: rgba(255,255,255,.86);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 10px 22px rgba(12,98,49,.045);
  font-weight: 760;
}
.quick-command-group.topbar-actions {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px;
  background: rgba(255,255,255,.64);
  border: 1px solid rgba(15,42,28,.10);
  border-radius: 999px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.70);
}
.quick-command-group.topbar-actions .command-link {
  border: 0;
  min-height: 34px;
  padding: 0 11px;
  border-radius: 999px;
  background: transparent;
  color: #163426;
  font-size: 13px;
  font-weight: 850;
  white-space: nowrap;
}
.quick-command-group.topbar-actions .command-link:hover { background: rgba(12,98,49,.09); color: var(--brand); }
.quick-command-group.topbar-actions .command-link.primary { background: var(--quick-action-bg); color: var(--quick-action-text); box-shadow: 0 10px 22px rgba(7,18,37,.14); }
.quick-command-group.topbar-actions .command-link.subtle { color: #475569; }
.notification-button { cursor: pointer; }
.notification-button b {
  min-width: 21px;
  height: 21px;
  display: inline-grid;
  place-items: center;
  margin-left: 5px;
  border-radius: 999px;
  background: #FEE2E2;
  color: #991B1B;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.notification-panel {
  position: absolute;
  right: 18px;
  top: calc(var(--topbar-height) - 2px);
  width: min(390px, calc(100vw - 34px));
  background: rgba(255,255,255,.98);
  border: 1px solid rgba(15,42,28,.12);
  border-radius: 20px;
  box-shadow: 0 28px 70px rgba(7,18,37,.18);
  padding: 10px;
  z-index: 80;
}
.notification-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 5px 9px;
  border-bottom: 1px solid rgba(15,42,28,.08);
}
.notification-panel-head button {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 10px;
  background: #F3F6F4;
  font-size: 20px;
  line-height: 1;
}
.notification-list { display: grid; gap: 7px; padding-top: 9px; }
.notification-row {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 2px 10px;
  padding: 10px 11px;
  border-radius: 15px;
  border: 1px solid rgba(15,42,28,.08);
  background: #FBFDFC;
}
.notification-row span { font-weight: 850; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.notification-row strong { font-variant-numeric: tabular-nums; }
.notification-row small { grid-column: 1 / -1; color: var(--muted); font-size: 12px; }
.notification-row.danger { background: var(--alert-danger-bg); color: var(--alert-danger-text); border-color:#FFE4E6; }
.notification-row.warning { background: var(--alert-warning-bg); color: var(--alert-warning-text); border-color:#FEF3C7; }
.notification-row.info { background:#EFF6FF; color:#1E40AF; border-color:#DBEAFE; }
.notification-row.success { background:#F0FDF4; color:#166534; border-color:#DCFCE7; }
.notification-empty { padding: 14px; color: var(--muted); font-weight: 760; }

.status-strip.operational-statusbar {
  position: relative;
  top: auto;
  z-index: auto;
  display: block;
  padding: 0 18px 10px;
  background: transparent;
  border-bottom: 0;
  backdrop-filter: none;
}
.status-scroll {
  min-height: var(--statusbar-height);
  display: flex;
  align-items: center;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  padding: 2px 0 3px;
}
.metric-chip {
  flex: 0 0 auto;
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(15,42,28,.10);
  background: var(--metric-chip-bg);
  color: var(--metric-chip-text);
  white-space: nowrap;
  box-shadow: 0 8px 20px rgba(15,42,28,.035);
  font-size: 12px;
  font-weight: 780;
}
.metric-chip span { color: #486155; font-size: 11px; text-transform: uppercase; letter-spacing: .045em; font-weight: 900; }
.metric-chip strong { font-size: 13px; font-variant-numeric: tabular-nums; color: #0B1710; }
.metric-chip small { color: #7A8A82; font-size: 11px; }
.metric-chip.economic span { color: var(--brand); }
.metric-chip.danger { background: var(--alert-danger-bg); color: var(--alert-danger-text); border-color:#FFE4E6; }
.metric-chip.danger span, .metric-chip.danger strong { color: var(--alert-danger-text); }
.metric-chip.warning { background: var(--alert-warning-bg); color: var(--alert-warning-text); border-color:#FEF3C7; }
.metric-chip.warning span, .metric-chip.warning strong { color: var(--alert-warning-text); }
.metric-chip.info { background:#EFF6FF; border-color:#DBEAFE; }
.metric-chip.info span, .metric-chip.info strong { color:#1E40AF; }
.metric-chip.success { background:#F0FDF4; border-color:#DCFCE7; }
.metric-chip.success span, .metric-chip.success strong { color:#166534; }
.metric-chip.money strong { max-width: 116px; overflow: hidden; text-overflow: ellipsis; }

.page-content { padding: 18px 18px 26px; }
.executive-hero {
  margin-bottom: 12px;
  padding: 16px 18px;
  min-height: auto;
  display: block;
}
.executive-hero h2 { font-size: clamp(24px, 2.4vw, 36px); max-width: 760px; }
.executive-hero p { max-width: 760px; }
.executive-hero-actions { display: none !important; }
.dashboard-analytics-grid .executive-actions { display: none !important; }
.dashboard-analytics-grid article:has(.executive-actions) { display: none; }
.executive-metrics { margin-top: 0; }

@media (max-width: 1280px) {
  .topbar-row { grid-template-columns: minmax(150px,.55fr) minmax(420px,1.45fr); }
  .quick-command-group.topbar-actions .command-link.subtle { display: none; }
  .global-search.global-search-compact { max-width: 350px; }
}
@media (max-width: 1120px) {
  .topbar-row { grid-template-columns: 1fr; gap: 8px; }
  .topbar-tools { justify-content: space-between; }
  .global-search.global-search-compact { max-width: none; }
}
@media (max-width: 860px) {
  .app-header.app-operational-header { position: sticky; }
  .topbar-row { padding: 9px 12px 8px; }
  .topbar-tools { display: grid; grid-template-columns: 1fr auto; align-items:center; }
  .quick-command-group.topbar-actions { max-width: 100%; overflow-x: auto; }
  .quick-command-group.topbar-actions .command-link { padding-inline: 10px; }
  .status-strip.operational-statusbar { padding: 0 12px 8px; }
  .topbar-title .page-subtitle { display: none; }
}
@media (max-width: 620px) {
  .topbar-tools { grid-template-columns: 1fr; }
  .global-search.global-search-compact input { min-height: 38px; }
  .quick-command-group.topbar-actions { width: 100%; justify-content: flex-start; }
  .quick-command-group.topbar-actions .command-link:nth-of-type(1) { display: inline-flex; }
  .quick-command-group.topbar-actions .command-link { min-height: 32px; font-size: 12px; }
  .metric-chip { min-height: 30px; padding: 5px 9px; }
  .executive-hero { padding: 14px; border-radius: 20px; }
}
@media print {
  .app-header.app-operational-header { display:none!important; }
}


/* =========================================================
   LYNTEC GESTIÓN — Topbar no redundante y barra minimalista
   El header muestra solo indicadores rápidos; el dashboard conserva
   métricas completas, montos y análisis visual.
   ========================================================= */
.status-strip.operational-statusbar.statusbar-minimal {
  padding: 0 18px 8px;
}
.statusbar-minimal .status-scroll {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 7px;
  overflow: visible;
  flex-wrap: wrap;
  padding: 0;
  scrollbar-width: none;
}
.statusbar-minimal .status-scroll::-webkit-scrollbar { display: none; }
.statusbar-minimal .metric-chip {
  min-height: 30px;
  padding: 5px 10px;
  gap: 6px;
  box-shadow: none;
  border-color: rgba(15,42,28,.09);
}
.statusbar-minimal .metric-chip span {
  font-size: 10.5px;
  letter-spacing: .04em;
}
.statusbar-minimal .metric-chip strong {
  font-size: 12.5px;
}
.statusbar-minimal .metric-chip small {
  font-size: 10.5px;
  opacity: .72;
}
.statusbar-minimal .metric-chip.money,
.statusbar-minimal .metric-chip.info,
.statusbar-minimal .metric-chip.success,
.statusbar-minimal .metric-chip.notice {
  display: none !important;
}
@media (min-width: 861px) {
  .statusbar-minimal .status-scroll {
    overflow-x: visible;
  }
}
@media (max-width: 860px) {
  .status-strip.operational-statusbar.statusbar-minimal { padding: 0 12px 8px; }
  .statusbar-minimal .status-scroll {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 2px;
  }
}

/* =========================================================
   LYNTEC GESTIÓN — Ajuste statusbar derecha + fecha/hora + acciones neutrales
   ========================================================= */
.status-strip.operational-statusbar.statusbar-minimal.statusbar-right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding: 0 18px 8px;
}
.statusbar-right .status-scroll {
  width: auto;
  max-width: 100%;
  margin-left: auto;
  justify-content: flex-end;
}
.statusbar-right .metric-chip.time {
  background: rgba(255,255,255,.72);
  border-color: rgba(15,42,28,.08);
  color: #334155;
}
.statusbar-right .metric-chip.time span,
.statusbar-right .metric-chip.time strong {
  color: #334155;
}
.statusbar-right .metric-chip.time small {
  color: #64748B;
}
.quick-command-group.topbar-actions .command-link.primary,
.quick-command-group.topbar-actions .command-link[aria-current="page"] {
  background: rgba(12,98,49,.10) !important;
  color: var(--brand) !important;
  box-shadow: none !important;
}
.quick-command-group.topbar-actions .command-link.primary:hover,
.quick-command-group.topbar-actions .command-link[aria-current="page"]:hover {
  background: rgba(12,98,49,.16) !important;
}
@media (max-width: 860px) {
  .status-strip.operational-statusbar.statusbar-minimal.statusbar-right {
    justify-content: flex-start;
    padding: 0 12px 8px;
  }
  .statusbar-right .status-scroll {
    width: 100%;
    margin-left: 0;
    justify-content: flex-start;
  }
}


/* ============================================================
   Lyntec Gestión — Visual Pro Dashboard, gráficos interactivos y reportes
   Mantiene intactos sidebar y topbar aprobados.
   ============================================================ */
.executive-hero{
  padding:18px 22px;margin:16px 0 14px;border-radius:26px;
  background:linear-gradient(135deg,rgba(255,255,255,.86),rgba(246,251,248,.72));
  border:1px solid rgba(12,98,49,.12);box-shadow:0 18px 44px rgba(14,43,28,.055);
}
.executive-hero h2{font-size:clamp(2rem,4vw,3.35rem);line-height:1.06;max-width:850px;margin:.1rem 0 .35rem;letter-spacing:-.045em}
.executive-hero p:not(.eyebrow){max-width:700px;margin:0;color:#64746d;font-weight:650;font-size:clamp(.95rem,1.25vw,1.05rem)}
.metric-pro{display:grid;grid-template-columns:1fr auto;grid-template-areas:"label value" "hint value";align-items:center;column-gap:14px;row-gap:2px;min-width:0;position:relative;overflow:hidden}
.metric-pro .label{grid-area:label;align-self:end;white-space:normal;line-height:1.12;color:#1d3428;font-weight:900;letter-spacing:-.015em}
.metric-pro .value{grid-area:value;justify-self:end;align-self:center;font-variant-numeric:tabular-nums;letter-spacing:-.05em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.metric-pro .hint{grid-area:hint;align-self:start;color:#7a8b83;font-weight:650;line-height:1.15;white-space:normal;max-width:12rem}
.metric-pro.money-card .value{font-size:clamp(1.65rem,2.35vw,2.65rem)}
.metric-pro::after{content:"";position:absolute;inset:auto 14px 10px 14px;height:2px;border-radius:999px;background:linear-gradient(90deg,rgba(12,98,49,.20),transparent);opacity:.55}
.dashboard-analytics-grid{align-items:start}.analytics-panel{overflow:hidden}.analytics-panel .section-header h2{letter-spacing:-.025em}.analytics-panel .section-header p{font-size:.92rem;line-height:1.2}
.chart-card{min-width:0}.chart-3d-card{display:grid;grid-template-columns:minmax(190px,.85fr) minmax(260px,1.15fr);gap:18px;align-items:center}.donut-wrap{display:grid;place-items:center;min-height:220px;perspective:900px}.donut-chart{border:0;cursor:pointer}.donut-3d{width:clamp(178px,18vw,234px);height:clamp(178px,18vw,234px);border-radius:50%;background:conic-gradient(var(--donut));position:relative;display:grid;place-items:center;box-shadow:inset 0 -14px 22px rgba(0,0,0,.18),0 26px 44px rgba(11,33,22,.14);transform:rotateX(12deg);transition:transform .2s ease,box-shadow .2s ease}.donut-3d::before{content:"";position:absolute;inset:16%;border-radius:50%;background:linear-gradient(145deg,#fff,#eff8f2);box-shadow:inset 0 8px 20px rgba(15,42,28,.10)}.donut-3d:hover{transform:rotateX(8deg) translateY(-2px);box-shadow:inset 0 -14px 22px rgba(0,0,0,.18),0 30px 54px rgba(11,33,22,.18)}.donut-center{position:relative;z-index:1;text-align:center;color:#15261d}.donut-center strong{display:block;font-size:clamp(1.8rem,3vw,2.65rem);letter-spacing:-.06em;line-height:1}.donut-center small{font-size:.78rem;color:#738278;font-weight:800}
.legend-pro{display:grid;gap:7px}.legend-row{width:100%;border:1px solid rgba(12,98,49,.10);background:rgba(255,255,255,.72);border-radius:14px;padding:8px 10px;display:grid;grid-template-columns:12px minmax(0,1fr) auto 44px;gap:9px;align-items:center;text-align:left;cursor:pointer;transition:.16s ease}.legend-row:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(11,33,22,.08);border-color:rgba(12,98,49,.22)}.legend-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 4px rgba(0,0,0,.03)}.legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:850;color:#27382f}.legend-row strong,.legend-row small{font-variant-numeric:tabular-nums;text-align:right}.legend-row small{color:#72847a;font-weight:750}
.traffic-chart,.bar-list-pro{display:grid;gap:9px;min-width:0}.traffic-row,.bar-row-pro{width:100%;border:1px solid rgba(12,98,49,.10);background:rgba(255,255,255,.74);border-radius:16px;padding:9px 11px;display:grid;grid-template-columns:minmax(92px,.36fr) minmax(130px,1fr) minmax(48px,auto);gap:12px;align-items:center;text-align:left;cursor:pointer;transition:.16s ease}.traffic-row:hover,.bar-row-pro:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(11,33,22,.08);border-color:rgba(12,98,49,.22)}.traffic-label,.bar-label{display:flex;align-items:center;gap:8px;font-weight:950;letter-spacing:-.02em;color:#17251d;min-width:0}.traffic-label i{width:10px;height:10px;border-radius:999px;box-shadow:0 0 0 4px rgba(0,0,0,.04);flex:0 0 auto}.bar-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-track{height:12px;border-radius:999px;background:linear-gradient(180deg,rgba(20,43,31,.12),rgba(20,43,31,.06));overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.10)}.bar-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0c6231,#16a34a);box-shadow:inset 0 -3px 5px rgba(0,0,0,.14),0 7px 18px rgba(12,98,49,.16);transition:width .5s ease}.bar-3d{height:14px}.traffic-row strong,.bar-row-pro strong{font-variant-numeric:tabular-nums;text-align:right;color:#15261d}.responsible-row-pro{grid-template-columns:minmax(116px,.42fr) minmax(130px,1fr) minmax(48px,auto)}
.debt-row-click{border:0;width:100%;font:inherit;cursor:pointer;text-align:left}.debt-row-click:hover{transform:translateY(-1px)}
.chart-insight-dialog{border:0;padding:0;background:transparent;max-width:min(520px,92vw)}.chart-insight-dialog::backdrop{background:rgba(8,15,12,.42);backdrop-filter:blur(3px)}.chart-insight-card{background:#fff;border-radius:24px;border:1px solid rgba(12,98,49,.12);padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.25);position:relative}.chart-insight-close{position:absolute;top:12px;right:14px;width:34px;height:34px;border:0;border-radius:50%;background:#f0f5f2;font-size:22px;cursor:pointer}.chart-insight-card h2{font-size:1.65rem;margin:.1rem 2.4rem .35rem 0;letter-spacing:-.04em}.insight-subtitle{margin:0 0 14px;color:#687870;font-weight:700}.insight-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.insight-kpis div{border:1px solid #dfe9e3;border-radius:16px;padding:12px;background:#f8fcfa}.insight-kpis span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#66766d;font-weight:900}.insight-kpis strong{display:block;font-size:1.45rem;letter-spacing:-.045em}.insight-list{display:grid;gap:7px;margin:12px 0}.insight-list a{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border-radius:12px;background:#f4faf6;color:#13251b;text-decoration:none;font-weight:800}.insight-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insight-list strong{font-variant-numeric:tabular-nums}
.report-form .span-2 input::placeholder{color:#829189}.report-panels .table-wrap,#recent-activity .table-wrap{max-width:100%;overflow:auto;border-radius:16px;border:1px solid rgba(12,98,49,.10)}#recent-activity table{table-layout:auto;min-width:980px;font-size:.86rem}#recent-activity th,#recent-activity td{padding:.62rem .7rem;vertical-align:top}#recent-activity th{white-space:nowrap;color:#1f3529;background:#edf8f1}#recent-activity td{overflow-wrap:anywhere}.compact-metrics .metric-pro{min-height:84px}.compact-metrics .metric-pro .value{font-size:clamp(1.45rem,2.1vw,2.1rem)}
@media (max-width: 1180px){.chart-3d-card{grid-template-columns:1fr}.traffic-row,.bar-row-pro{grid-template-columns:minmax(86px,.42fr) minmax(120px,1fr) 44px}.executive-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric.wide{grid-column:auto}}
@media (max-width: 720px){.metric-pro{grid-template-columns:1fr;grid-template-areas:"label" "value" "hint";align-items:start}.metric-pro .value{justify-self:start;text-align:left}.executive-hero{padding:14px}.executive-hero h2{font-size:2rem}.traffic-row,.bar-row-pro{grid-template-columns:1fr;gap:7px}.traffic-row strong,.bar-row-pro strong{text-align:left}.chart-insight-card{padding:18px}.insight-kpis{grid-template-columns:1fr}#recent-activity table{min-width:820px}.donut-3d{width:184px;height:184px}}
@media print{.chart-insight-dialog{display:none!important}.metric-pro{box-shadow:none!important}.donut-3d{box-shadow:none!important;transform:none}.report-table-wrap,.table-wrap{overflow:visible!important}}

/* ============================================================
   Lyntec Gestión — Optimización de espacios dashboard/contenido
   Mantiene intactos menú superior y menú lateral aprobados.
   ============================================================ */
:root{
  --content-gap-tight: clamp(8px, 1vw, 14px);
  --card-pad-tight: clamp(11px, 1vw, 15px);
  --panel-pad-tight: clamp(12px, 1.15vw, 16px);
}

/* Solo contenido principal: reduce aire improductivo sin tocar topbar/sidebar. */
.page-content{
  padding-top: clamp(10px, 1.05vw, 16px);
}

/* Hero compacto con resumen útil a la derecha para no dejar paneles vacíos. */
.executive-hero.density-hero{
  min-height: auto;
  padding: clamp(12px, 1.25vw, 18px) clamp(14px, 1.6vw, 22px);
  margin: 6px 0 var(--content-gap-tight);
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(280px, .72fr);
  align-items: center;
  gap: clamp(12px, 1.5vw, 22px);
  border-radius: 22px;
}
.executive-hero.density-hero .hero-copy{min-width:0;}
.executive-hero.density-hero .eyebrow{margin-bottom: 2px;}
.executive-hero.density-hero h2{
  font-size: clamp(1.8rem, 3vw, 2.75rem);
  line-height: 1.02;
  max-width: 760px;
  margin: 0 0 4px;
}
.executive-hero.density-hero p:not(.eyebrow){
  margin: 0;
  font-size: clamp(.9rem, 1vw, 1rem);
  max-width: 640px;
}
.hero-summary{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  align-items: stretch;
}
.hero-summary-item{
  min-width: 0;
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255,255,255,.70);
  border: 1px solid rgba(12,98,49,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65);
}
.hero-summary-item span{
  font-size: .72rem;
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: #607069;
  font-weight: 900;
  white-space: nowrap;
}
.hero-summary-item strong{
  min-width: 0;
  color: #14251c;
  font-size: clamp(1.05rem, 1.45vw, 1.45rem);
  line-height: 1.05;
  letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.hero-summary-item.danger strong{color: var(--danger);}
.hero-summary-item.warning strong{color: var(--warning);}

/* KPIs: más compactos, sin cards de doble ancho que dejan huecos internos. */
.executive-metrics{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--content-gap-tight);
  margin: 0 0 var(--content-gap-tight);
}
.executive-metrics .metric,
.executive-metrics .metric-pro{
  min-height: clamp(76px, 8.2vw, 94px);
  padding: var(--card-pad-tight);
  border-radius: 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content;
  grid-template-areas:
    "label value"
    "hint  value";
  align-items: center;
  column-gap: clamp(8px, 1vw, 14px);
  row-gap: 2px;
}
.executive-metrics .metric.wide,
.executive-metrics .metric.money-card{
  grid-column: auto !important;
}
.executive-metrics .metric .label,
.executive-metrics .metric-pro .label{
  grid-area: label;
  align-self: end;
  font-size: clamp(.76rem, .9vw, .86rem);
  line-height: 1.12;
  white-space: normal;
}
.executive-metrics .metric .hint,
.executive-metrics .metric-pro .hint{
  grid-area: hint;
  align-self: start;
  margin: 0;
  font-size: clamp(.72rem, .82vw, .82rem);
  line-height: 1.16;
  max-width: 11.5rem;
}
.executive-metrics .metric .value,
.executive-metrics .metric-pro .value{
  grid-area: value;
  justify-self: end;
  align-self: center;
  max-width: min(46vw, 10rem);
  font-size: clamp(1.35rem, 2.05vw, 2.18rem);
  line-height: 1;
  text-align: right;
}
.executive-metrics .metric.money-card .value,
.executive-metrics .metric-pro.money-card .value{
  font-size: clamp(1.28rem, 1.85vw, 2rem);
}
.executive-metrics .metric-pro::after{display:none;}

/* Grillas de análisis: suben gráficos, reducen contenedores vacíos y equilibran columnas. */
.dashboard-analytics-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(300px, .9fr);
  gap: var(--content-gap-tight);
  align-items: start;
  grid-auto-flow: dense;
}
.dashboard-analytics-grid .panel-card,
.dashboard-analytics-grid .analytics-panel{
  min-height: 0;
  padding: var(--panel-pad-tight);
  border-radius: 18px;
}
.dashboard-analytics-grid .status-panel-wide{
  grid-row: auto !important;
}
.dashboard-analytics-grid .top-debt-panel{
  grid-column: 1 / -1;
}
.analytics-panel .section-header{
  margin-bottom: 8px;
  gap: 10px;
  align-items: center;
}
.analytics-panel .section-header h2{
  font-size: clamp(1.02rem, 1.25vw, 1.25rem);
  line-height: 1.1;
}
.analytics-panel .section-header p{
  margin-top: 2px;
  font-size: .82rem;
  line-height: 1.14;
}
.analytics-panel .btn.btn-ghost{
  min-height: 32px;
  padding: 7px 10px;
  font-size: .78rem;
  border-radius: 10px;
}

/* Donut y leyendas más densos para que no queden medios paneles vacíos. */
.chart-3d-card,
.status-chart-card.chart-3d-card{
  grid-template-columns: minmax(150px, .68fr) minmax(230px, 1.32fr);
  gap: clamp(10px, 1.2vw, 16px);
}
.donut-wrap{
  min-height: clamp(150px, 17vw, 196px) !important;
}
.donut-3d,
.donut-chart{
  width: clamp(148px, 15vw, 196px) !important;
  height: clamp(148px, 15vw, 196px) !important;
}
.donut-center strong{
  font-size: clamp(1.45rem, 2.35vw, 2.15rem);
}
.legend-pro,
.chart-legend{
  gap: 5px;
  max-height: 224px;
}
.legend-row{
  min-height: 31px;
  padding: 6px 8px;
  border-radius: 12px;
  grid-template-columns: 10px minmax(0, 1fr) auto 40px;
  gap: 7px;
}
.legend-label{font-size:.82rem;}
.legend-row strong,
.legend-row small{font-size:.82rem;}

/* Semáforo y barras: más compactas y con ancho útil. */
.traffic-chart,
.bar-list-pro{
  gap: 6px;
}
.traffic-row,
.bar-row-pro{
  min-height: 34px;
  padding: 7px 9px;
  border-radius: 13px;
  grid-template-columns: minmax(92px, .34fr) minmax(150px, 1fr) minmax(42px, auto);
  gap: 10px;
}
.traffic-label,
.bar-label{
  font-size: .86rem;
  line-height: 1.08;
}
.bar-track{height:10px;}
.bar-3d{height:11px;}
.traffic-row strong,
.bar-row-pro strong{font-size:.9rem;}
.responsible-row-pro{
  grid-template-columns: minmax(120px, .38fr) minmax(160px, 1fr) minmax(42px, auto);
}

/* Deuda/top clientes: compacto para cierre de pantalla. */
.debt-list{gap:6px;}
.debt-row{
  padding: 8px 10px;
  border-radius: 13px;
}
.debt-row small{font-size:.76rem;}

/* Reportes/tablas: aprovechan ancho sin salirse del marco. */
.report-panels .panel-card,
.report-panels .workbench{padding: var(--panel-pad-tight);}
.report-panels .table-wrap,
.report-table-wrap,
#recent-activity .table-wrap{
  max-height: min(66vh, 680px);
}
.report-panels table,
#recent-activity table{
  font-size: .82rem;
  line-height: 1.24;
}
.report-panels th,
.report-panels td,
#recent-activity th,
#recent-activity td{
  padding: .48rem .55rem;
}

@media (max-width: 1260px){
  .executive-hero.density-hero{grid-template-columns: 1fr;}
  .hero-summary{grid-template-columns: repeat(3, minmax(0, 1fr));}
  .executive-metrics{grid-template-columns: repeat(2, minmax(0, 1fr));}
  .dashboard-analytics-grid{grid-template-columns: 1fr;}
  .chart-3d-card,.status-chart-card.chart-3d-card{grid-template-columns:minmax(150px,.45fr) minmax(260px,1fr);}
}
@media (max-width: 760px){
  .executive-hero.density-hero{padding: 12px;}
  .hero-summary{grid-template-columns: 1fr;}
  .executive-metrics{grid-template-columns: 1fr;}
  .executive-metrics .metric,
  .executive-metrics .metric-pro{
    min-height: 76px;
    grid-template-columns: minmax(0,1fr) auto;
    grid-template-areas:"label value" "hint value";
  }
  .chart-3d-card,.status-chart-card.chart-3d-card{grid-template-columns:1fr;}
  .traffic-row,.bar-row-pro,.responsible-row-pro{grid-template-columns: 1fr; gap: 7px;}
  .traffic-row strong,.bar-row-pro strong{text-align:left;}
}


/* =========================================================
   LYNTEC GESTIÓN — ajuste final de contenido central
   Objetivo: gráficos legibles, menos espacios muertos y sin Banco/Cheques al día.
   No modifica menú superior ni menú izquierdo.
   ========================================================= */
:root{
  --dash-gap-final: clamp(8px, .9vw, 14px);
  --dash-pad-final: clamp(12px, 1.15vw, 18px);
}
.page-main, .page-content, .content-main{min-width:0;}
.executive-hero.density-hero{
  min-height: 0 !important;
  padding: clamp(12px, 1.25vw, 18px) !important;
  margin-bottom: var(--dash-gap-final) !important;
  grid-template-columns: minmax(0, 1fr) minmax(260px, .66fr) !important;
  gap: var(--dash-gap-final) !important;
}
.executive-hero.density-hero h2{font-size:clamp(1.7rem,2.7vw,2.45rem) !important;max-width:680px !important;}
.executive-hero.density-hero p:not(.eyebrow){font-size:.9rem !important;line-height:1.25 !important;}
.hero-summary{align-self:center;}
.hero-summary-item{padding:8px 10px !important;border-radius:14px !important;}
.hero-summary-item strong{font-size:clamp(1rem,1.25vw,1.25rem) !important;}

.executive-metrics{gap:var(--dash-gap-final) !important;margin-bottom:var(--dash-gap-final) !important;}
.executive-metrics .metric,
.executive-metrics .metric-pro{
  min-height: clamp(70px, 7vw, 86px) !important;
  padding: 12px 14px !important;
  border-radius: 16px !important;
  overflow:hidden !important;
}
.executive-metrics .metric .value,
.executive-metrics .metric-pro .value{max-width:11rem !important;}

.dashboard-analytics-grid{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  gap:var(--dash-gap-final) !important;
  align-items:start !important;
}
.dashboard-analytics-grid .panel-card,
.dashboard-analytics-grid .analytics-panel{
  padding:var(--dash-pad-final) !important;
  border-radius:18px !important;
  min-height:0 !important;
  overflow:hidden !important;
}
.analytics-panel .section-header{margin-bottom:8px !important;min-height:0 !important;}
.analytics-panel .section-header h2{font-size:clamp(1rem,1.15vw,1.22rem) !important;}
.analytics-panel .section-header p{font-size:.82rem !important;line-height:1.18 !important;}

/* Donut: separación real entre gráfico y leyenda; hover sin invadir ni deformar layout. */
#estadoChart .chart-balanced,
#estadoChart .status-chart-card,
.status-panel-wide .status-chart-card{
  display:grid !important;
  grid-template-columns:minmax(168px, 235px) minmax(270px, 1fr) !important;
  gap:clamp(18px,2vw,32px) !important;
  align-items:center !important;
  min-width:0 !important;
}
#estadoChart .donut-wrap{
  min-height:clamp(168px,17vw,222px) !important;
  padding:4px clamp(8px,1vw,16px) 4px 0 !important;
  overflow:visible !important;
}
#estadoChart .donut-3d,
#estadoChart .donut-chart{
  width:clamp(164px,16vw,212px) !important;
  height:clamp(164px,16vw,212px) !important;
}
#estadoChart .legend-pro,
#estadoChart .chart-legend{
  max-height:none !important;
  overflow:visible !important;
  padding-left:clamp(4px,.8vw,12px) !important;
  display:grid !important;
  gap:7px !important;
}
#estadoChart .legend-row,
.legend-row.legend-click{
  min-height:34px !important;
  padding:7px 10px !important;
  border-radius:13px !important;
  grid-template-columns:12px minmax(0, 1fr) minmax(44px,auto) minmax(38px,auto) !important;
  gap:9px !important;
  transform:none !important;
  box-shadow:none !important;
  contain:layout paint !important;
}
#estadoChart .legend-row:hover,
#estadoChart .legend-row.is-selected{
  transform:none !important;
  background:linear-gradient(90deg, rgba(12,98,49,.075), rgba(255,255,255,.78)) !important;
  border-color:rgba(12,98,49,.22) !important;
  box-shadow:inset 3px 0 0 rgba(12,98,49,.35) !important;
}
#estadoChart .legend-label{font-size:.86rem !important;line-height:1.05 !important;}
#estadoChart .legend-row strong,
#estadoChart .legend-row small{font-size:.84rem !important;line-height:1 !important;white-space:nowrap !important;}

/* Barras: menos aire, más alineación y comparación rápida. */
.traffic-chart,.bar-list-pro{gap:6px !important;}
.traffic-row,.bar-row-pro{
  min-height:32px !important;
  padding:7px 9px !important;
  border-radius:12px !important;
  grid-template-columns:minmax(105px,.35fr) minmax(160px,1fr) minmax(42px,auto) !important;
  gap:10px !important;
  transform:none !important;
  box-shadow:none !important;
}
.traffic-row:hover,.bar-row-pro:hover{
  transform:none !important;
  background:rgba(255,255,255,.88) !important;
  border-color:rgba(12,98,49,.20) !important;
}
.responsible-row-pro{grid-template-columns:minmax(132px,.38fr) minmax(170px,1fr) minmax(42px,auto) !important;}
.traffic-label,.bar-label{font-size:.84rem !important;line-height:1.05 !important;}
.bar-track,.bar-3d{height:10px !important;}
.traffic-row strong,.bar-row-pro strong{font-size:.85rem !important;}

/* Tabla operativa: anchos más compactos. Las columnas Banco/Cheques se eliminan desde JS/PHP por nombre de encabezado. */
.operational-table table{min-width:1180px !important;}
.operational-table th,.operational-table td{padding:.56rem .62rem !important;}
.col-notes{display:none !important;}

/* Reportes: no mostrar columnas bancarias ni hacer que la tabla se salga del marco. */
.report-table-wrap table th,
.report-table-wrap table td,
#recent-activity table th,
#recent-activity table td{max-width:240px;overflow-wrap:anywhere;}
.report-table-wrap table,
#recent-activity table{table-layout:auto;min-width:min(100%, 980px);}
@media print{
  th[data-key="banco"],td[data-key="banco"],th[data-key="cheques_al_dia"],td[data-key="cheques_al_dia"]{display:none !important;}
}

@media (max-width:1260px){
  .executive-hero.density-hero{grid-template-columns:1fr !important;}
  .dashboard-analytics-grid{grid-template-columns:1fr !important;}
  #estadoChart .chart-balanced,#estadoChart .status-chart-card,.status-panel-wide .status-chart-card{grid-template-columns:minmax(170px,.46fr) minmax(270px,1fr) !important;}
}
@media (max-width:760px){
  #estadoChart .chart-balanced,#estadoChart .status-chart-card,.status-panel-wide .status-chart-card{grid-template-columns:1fr !important;}
  #estadoChart .legend-pro,#estadoChart .chart-legend{padding-left:0 !important;}
  .traffic-row,.bar-row-pro,.responsible-row-pro{grid-template-columns:1fr !important;}
}


/* ==========================================================
   LYNTEC GESTIÓN — Corrección de KPIs monetarios y espacios
   Evita truncados tipo "$2..." y mantiene tarjetas simétricas.
   ========================================================== */
.executive-metrics {
  grid-template-columns: repeat(4, minmax(190px, 1fr)) !important;
  align-items: stretch;
}
.executive-metrics .metric {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) max-content;
  grid-template-areas:
    "label value"
    "hint value";
  align-items: center;
  column-gap: 12px;
  row-gap: 2px;
  min-height: 84px !important;
  padding: 14px 16px !important;
  overflow: visible !important;
}
.executive-metrics .metric .label {
  grid-area: label;
  min-width: 0;
  align-self: end;
  line-height: 1.12;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.executive-metrics .metric .hint {
  grid-area: hint;
  min-width: 0;
  align-self: start;
  line-height: 1.16;
  overflow-wrap: normal;
}
.executive-metrics .metric .value {
  grid-area: value;
  justify-self: end;
  align-self: center;
  min-width: max-content;
  max-width: none !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: clamp(1.7rem, 2.15vw, 2.35rem) !important;
  line-height: .95 !important;
  letter-spacing: -.055em;
  font-variant-numeric: tabular-nums;
}
.executive-metrics .metric.money-card .value {
  font-size: clamp(1.6rem, 2vw, 2.15rem) !important;
}
.executive-metrics .metric.wide {
  grid-column: span 2;
}
.dashboard-analytics-grid .top-debt-panel,
.dashboard-analytics-grid .analytics-panel {
  min-width: 0;
}
.debt-list {
  max-height: none;
  overflow: visible;
}
.debt-row {
  grid-template-columns: minmax(0, 1fr) max-content;
  gap: 12px;
}
.debt-row span,
.debt-row strong,
.debt-row small {
  min-width: 0;
}
.debt-row b {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 1180px) {
  .executive-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .executive-metrics .metric.wide { grid-column: span 1; }
}
@media (max-width: 640px) {
  .executive-metrics { grid-template-columns: 1fr !important; }
  .executive-metrics .metric {
    min-height: 76px !important;
    padding: 12px 14px !important;
  }
  .executive-metrics .metric .value,
  .executive-metrics .metric.money-card .value {
    font-size: clamp(1.55rem, 8vw, 2rem) !important;
  }
}


/* ==========================================================
   LYNTEC GESTIÓN — Fix definitivo KPIs monetarios en Reportes
   Evita truncados tipo "$2..." y mejora legibilidad sin tocar menús.
   ========================================================== */
#reportes-dashboard.compact-metrics{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(172px,1fr)) !important;
  gap:10px !important;
  align-items:stretch !important;
  margin:10px 0 14px !important;
}
#reportes-dashboard .metric-pro.report-kpi,
#reportes-dashboard .metric-pro{
  min-height:78px !important;
  padding:12px 14px !important;
  border-radius:16px !important;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) max-content !important;
  grid-template-areas:"label value" "hint value" !important;
  column-gap:12px !important;
  row-gap:2px !important;
  align-items:center !important;
  overflow:visible !important;
  min-width:0 !important;
}
#reportes-dashboard .metric-pro.report-kpi.money-card,
#reportes-dashboard .metric-pro.money-card{
  grid-column:span 2 !important;
  grid-template-columns:minmax(0,1fr) max-content !important;
}
#reportes-dashboard .metric-pro .label{
  grid-area:label !important;
  align-self:end !important;
  min-width:0 !important;
  font-size:.82rem !important;
  line-height:1.08 !important;
  font-weight:900 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  color:#1d3428 !important;
}
#reportes-dashboard .metric-pro .hint{
  grid-area:hint !important;
  align-self:start !important;
  min-width:0 !important;
  font-size:.76rem !important;
  line-height:1.1 !important;
  color:#667085 !important;
  white-space:normal !important;
  overflow:visible !important;
}
#reportes-dashboard .metric-pro .value,
#reportes-dashboard .metric-pro .value.compact-value{
  grid-area:value !important;
  justify-self:end !important;
  align-self:center !important;
  min-width:max-content !important;
  max-width:none !important;
  width:auto !important;
  overflow:visible !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
  text-align:right !important;
  font-size:clamp(1.55rem,2vw,2.08rem) !important;
  line-height:.95 !important;
  letter-spacing:-.055em !important;
  font-variant-numeric:tabular-nums !important;
}
#reportes-dashboard .metric-pro.money-card .value,
#reportes-dashboard .metric-pro.money-card .value.compact-value{
  font-size:clamp(1.45rem,1.78vw,1.92rem) !important;
}
#reportes-dashboard .metric-pro.danger .value,
#reportes-dashboard .metric-pro.danger .label{color:#7A1E2E !important;}
#reportes-dashboard .metric-pro.warning .value,
#reportes-dashboard .metric-pro.warning .label{color:#815300 !important;}
#reportes-dashboard .metric-pro::after{display:none !important;}
@media (max-width:1180px){
  #reportes-dashboard.compact-metrics{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  #reportes-dashboard .metric-pro.money-card{grid-column:span 1 !important;}
}
@media (max-width:640px){
  #reportes-dashboard.compact-metrics{grid-template-columns:1fr !important;}
  #reportes-dashboard .metric-pro.report-kpi,
  #reportes-dashboard .metric-pro{
    min-height:72px !important;
    grid-template-columns:minmax(0,1fr) max-content !important;
  }
  #reportes-dashboard .metric-pro .value,
  #reportes-dashboard .metric-pro.money-card .value{
    font-size:clamp(1.45rem,7vw,1.9rem) !important;
  }
}
