/* === Paleta Brudy (rediseño en curso) — mantengo variables antiguas hasta migrar todo === */
:root {
    --ink: #0a0a0a;
    --ink-2: #1e1e1e;
    --ink-soft: #444;
    --muted: #7a7a80;
    --muted-2: #a3a3a8;
    --line: #ececec;
    --line-hair: #f4f4f4;
    --bg: #ffffff;
    --panel: #fafafa;
    --pill-bg: #f4f4f5;
    --accent-purple: #7c3aed;
    --accent-purple-2: #a78bfa;
    --accent-purple-3: #ede9fe;
    /* --- Antiguas Brokade (se van retirando por bloque) --- */
    --beige: #ede8db;
    --beige-soft: #faf8f1;
    --gold: #9a8e6e;
    --gold-soft: #d4c89c;
    --accent: #9a8e6e;

    /* Paleta cromática apagada — los acentos reales de Brokade */
    --blue:        #4a6a85;   /* azul grisáceo (info) */
    --blue-soft:   #e6edf3;
    --blue-deep:   #2d4b66;
    --terracotta:  #b5705a;   /* terracota apagado (siniestro) */
    --terracotta-soft: #f3e5df;
    --olive:       #6e8a64;   /* verde oliva (resuelto / ok) */
    --olive-soft:  #ebf1e6;
    --gold-deep:   #b08a3e;   /* dorado (presupuesto) */
    --gold-deep-soft: #f7efd9;
    --plum:        #7a5a78;   /* ciruela (modificación) */
    --plum-soft:   #f1eaf0;
    --slate:       #535b6b;   /* slate (recibos) */
    --slate-soft:  #ebedf1;

    --ok: #16a34a;
    --ok-bg: #dcfce7;
    --warn: #d97706;
    --warn-bg: #fef3c7;
    --info: #0369a1;
    --info-bg: #e0f2fe;
    --danger: #dc2626;
    --danger-bg: #fee2e2;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; background: #fafafa; }
body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
    line-height: 1.5;
}
a { color: inherit; text-decoration: none; }

/* === TOPBAR (rediseño Brudy) === */
.topbar {
    background: #ffffff;
    border-bottom: 1px solid var(--line);
    display: flex;
    align-items: center;
    gap: 32px;
    padding: 14px clamp(24px, 4vw, 56px);
    position: sticky;
    top: 0;
    z-index: 10;
}
.topbar-left {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: 1;
}
.brand {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    font-weight: 700;
    font-size: 17px;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1;
}
.brand-sub {
    font-size: 12.5px;
    color: var(--muted);
    font-weight: 500;
    padding-left: 12px;
    border-left: 1px solid var(--line);
    margin-left: 2px;
}
.topbar-nav { display: flex; gap: 6px; justify-content: center; }
.topbar-nav a {
    font-size: 13.5px;
    font-weight: 500;
    color: var(--muted);
    cursor: pointer;
    padding: 7px 14px;
    border: 1px solid transparent;
    border-radius: 999px;
    transition: color .15s ease, background .15s ease, border-color .15s ease;
}
.topbar-nav a:hover {
    color: var(--ink);
    background: var(--panel);
}
.topbar-nav a.is-on {
    color: #ffffff;
    background: var(--ink);
    border-color: var(--ink);
    font-weight: 500;
}
.topbar-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1;
    justify-content: flex-end;
}
/* Pill del teléfono en el topbar */
.phone-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--bg);
    border: 1px solid var(--line);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -0.005em;
    font-variant-numeric: tabular-nums;
}
.phone-pill svg { color: var(--muted); flex-shrink: 0; }
.range-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--ok-bg);
    border: 1px solid transparent;
    padding: 6px 12px 6px 10px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 500;
    color: #14532d;
    cursor: default;
}
.range-pill-dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 3px rgba(34, 197, 94, .18);
}
.user-pill {
    width: 32px; height: 32px; border-radius: 50%;
    background: var(--ink);
    color: #fff;
    display: grid; place-items: center;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
}

/* Menú del usuario: se despliega al pulsar el avatar */
.user-menu { position: relative; display: inline-block; }
.user-menu .user-pill { border: 0; padding: 0; cursor: pointer; font-family: inherit; }
.user-menu .user-pill:hover { background: var(--ink-2); }
.user-pop {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.15);
    padding: 6px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    z-index: 100;
    min-width: 210px;
    animation: chipPopIn 0.14s ease;
}
.user-pop[hidden] { display: none; }
.user-pop-email {
    padding: 8px 12px 10px;
    font-size: 11.5px;
    color: var(--muted);
    border-bottom: 1px solid var(--line);
    margin-bottom: 4px;
    word-break: break-all;
}
.user-pop a, .user-pop button {
    background: transparent;
    border: 0;
    text-align: left;
    padding: 9px 12px;
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    color: var(--ink-2);
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
}
.user-pop a:hover, .user-pop button:hover { background: var(--bg); color: var(--ink); }
.user-pop button { color: var(--terracotta); }

/* === PAGE (ancho pantalla, aire) === */
.page {
    max-width: 1600px;
    margin: 0 auto;
    padding: 44px clamp(24px, 4vw, 56px) 80px;
    display: flex;
    flex-direction: column;
    gap: 44px;
}
.page > .view {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.page > .view[hidden] { display: none; }

.section-label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
    margin: 0 0 18px;
}

/* === HEAD === */
.page-head { display: flex; flex-direction: column; }
.page-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: clamp(32px, 3.2vw, 44px);
    line-height: 1.1;
    letter-spacing: -0.015em;
    color: var(--ink);
    margin: 0 0 16px;
    max-width: 720px;
}
.page-title br { display: none; }
.page-title .accent {
    color: var(--ink);
    font-style: italic;
    font-weight: 400;
    padding-left: 6px;
}
.page-sub {
    font-size: 15px;
    color: var(--muted);
    line-height: 1.6;
    max-width: 620px;
    margin: 0;
}

/* Selector de periodo (mes natural) — chips estilo Brudy */
.month-filter-wrap {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-top: 22px;
    flex-wrap: wrap;
}
.month-filter-wrap label {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
}
.chip-filter {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.chip-filter__chip {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    color: var(--ink-2);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
    white-space: nowrap;
}
.chip-filter__chip:hover { border-color: var(--ink); }
.chip-filter__chip.is-on {
    background: var(--ink);
    color: #ffffff;
    border-color: var(--ink);
}

/* Selector "Personalizada" — popover con date range */
.chip-filter__slot { position: relative; display: inline-block; }
.chip-filter__pop {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 20px 40px -10px rgba(15, 23, 42, 0.15);
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    z-index: 100;
    min-width: 260px;
    animation: chipPopIn 0.14s ease;
}
@keyframes chipPopIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: translateY(0); } }
.chip-filter__pop[hidden] { display: none; }
.chip-filter__pop label {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.chip-filter__pop label span {
    font-size: 10.5px;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}
.chip-filter__pop input[type="date"] {
    padding: 9px 12px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-family: inherit;
    font-size: 13px;
    color: var(--ink);
    background: #ffffff;
    outline: none;
    transition: border-color .15s ease;
}
.chip-filter__pop input[type="date"]:focus { border-color: var(--ink); }
.chip-filter__pop-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 4px;
}
.chip-filter__pop-cancel,
.chip-filter__pop-apply {
    padding: 8px 14px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    border-radius: 8px;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}
.chip-filter__pop-cancel {
    background: #ffffff;
    color: var(--ink);
    border: 1px solid var(--line);
}
.chip-filter__pop-cancel:hover { border-color: var(--ink); background: var(--panel); }
.chip-filter__pop-apply {
    background: var(--ink);
    color: #ffffff;
    border: 1px solid var(--ink);
}
.chip-filter__pop-apply:hover { background: var(--ink-2); }
.calls-toolbar .month-filter-wrap { margin-top: 0; }

.page-head-meta {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 22px 26px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    box-shadow: 0 1px 2px rgba(10, 10, 10, .04);
}
.meta-row {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 13.5px;
    padding: 12px 0;
    border-bottom: 1px solid var(--line-hair);
}
.meta-row:last-child { border-bottom: 0; }
.meta-row span { color: var(--muted); font-weight: 500; }
.meta-row strong { color: var(--ink); font-weight: 500; letter-spacing: -0.01em; }

/* === KPIs === */
.kpis {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}
.kpi {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 24px 26px 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 156px;
    position: relative;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(10, 10, 10, .04);
    transition: box-shadow .18s ease, transform .18s ease;
}
.kpi:hover {
    box-shadow: 0 8px 30px -14px rgba(10, 10, 10, .12);
    transform: translateY(-1px);
}
.kpi--featured { border-color: var(--line); background: #ffffff; }
.kpi-label {
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
}
.kpi-value {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 46px;
    line-height: 1;
    color: var(--ink);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-top: auto;
}
.kpi-pct {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background: var(--ok-bg);
    color: #14532d;
    font-family: 'Inter', sans-serif;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
    border-radius: 999px;
}
.kpi-delta { font-size: 12px; font-weight: 500; }
.kpi-delta.up { color: var(--ok); }
.kpi-delta.down { color: var(--danger); }
.kpi-foot {
    font-size: 12.5px;
    color: var(--muted);
    line-height: 1.5;
}
.kpi-spark { margin-top: 6px; height: 50px; }
.kpi-spark svg { width: 100%; height: 100%; display: block; }
.rating {
    margin-top: 6px;
    height: 6px;
    background: var(--pill-bg);
    border-radius: 999px;
    overflow: hidden;
}
.rating-fill {
    display: block;
    height: 100%;
    background: var(--ink);
}

/* === ROWS / CARDS === */
.row { display: grid; gap: 24px; }
.row-2 { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
.card {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 28px 30px;
    box-shadow: 0 1px 2px rgba(10, 10, 10, .04);
}
.card-full { padding: 28px 30px 24px; }
.card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 22px;
    gap: 16px;
}
.card-label {
    display: block;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
    margin-bottom: 8px;
}
.card-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 26px;
    line-height: 1.2;
    color: var(--ink);
    margin: 0;
    letter-spacing: -0.015em;
}
.hint { font-size: 12px; color: var(--muted); white-space: nowrap; }

.legend { display: inline-flex; gap: 16px; align-items: center; }
.legend-item { font-size: 12px; color: var(--muted); display: inline-flex; align-items: center; gap: 6px; }
.dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; }
.dot-dark { background: var(--olive); }
.dot-accent { background: var(--terracotta); }

/* === Chart === */
.chart-wrap { position: relative; }
.chart { width: 100%; height: 240px; display: block; }
.chart-axis {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    font-size: 11px;
    color: var(--muted);
}

/* === Reason list === */
.reason-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.reason-list li {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) 44px;
    align-items: center;
    gap: 14px;
    font-size: 13.5px;
}
.reason-list-color li { grid-template-columns: 10px minmax(0, 1.2fr) minmax(0, 1fr) 44px; }
.reason-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; background: var(--ink); }
.reason-name { color: var(--ink-2); font-weight: 500; }
.reason-bar {
    height: 6px;
    background: var(--pill-bg);
    border-radius: 999px;
    overflow: hidden;
}
.reason-bar > span {
    display: block;
    height: 100%;
    background: var(--ink);
    border-radius: 999px;
}
.reason-list-accent .reason-bar > span { background: var(--accent-purple); }
.reason-val { text-align: right; font-weight: 600; font-size: 13px; color: var(--ink); font-variant-numeric: tabular-nums; }

/* === Hour grid === */
.hour-grid { display: flex; flex-direction: column; gap: 10px; }
.hour-row {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) 44px;
    align-items: center;
    gap: 14px;
    font-size: 12.5px;
}
.hour-lbl { color: var(--muted); font-variant-numeric: tabular-nums; font-weight: 500; }
.hour-bar {
    height: 6px;
    background: var(--pill-bg);
    border-radius: 999px;
    overflow: hidden;
}
.hour-bar > span {
    display: block;
    height: 100%;
    background: var(--ink);
    border-radius: 999px;
}
.hour-val { text-align: right; font-weight: 600; color: var(--ink); font-variant-numeric: tabular-nums; }
.hour-note {
    margin-top: 20px;
    padding: 16px 18px;
    background: var(--panel);
    border: 1px solid var(--line-hair);
    border-radius: 12px;
    font-size: 12.5px;
    color: var(--ink-soft);
    line-height: 1.55;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.hour-note strong { color: var(--ink); font-weight: 600; }

/* === Segmented === */
.seg {
    display: inline-flex;
    background: #f3f1ea;
    border-radius: 999px;
    padding: 3px;
}
.seg button {
    background: transparent;
    border: 0;
    padding: 6px 14px;
    font-family: inherit;
    font-size: 12px;
    color: var(--muted);
    font-weight: 500;
    cursor: pointer;
    border-radius: 999px;
    transition: background .15s, color .15s;
}
.seg button.is-on { background: #fff; color: var(--ink); box-shadow: 0 1px 2px rgba(0,0,0,0.06); }
.seg button:hover:not(.is-on) { color: var(--ink); }

/* === Table === */
.table-wrap { overflow-x: auto; margin: 0 -30px; }
.table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.table thead th {
    text-align: left;
    padding: 12px 30px;
    font-weight: 600;
    color: var(--muted);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    background: var(--panel);
}
.table th.r, .table td.r { text-align: right; }
.table tbody td {
    padding: 16px 30px;
    border-bottom: 1px solid var(--line-hair);
    vertical-align: middle;
    color: var(--ink);
}
.table tbody tr:last-child td { border-bottom: 0; }
.table tbody tr:hover td { background: var(--panel); }
.muted { color: var(--muted); font-size: 11.5px; }
.tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: -0.005em;
    white-space: nowrap;
}
.tag::before {
    content: '';
    width: 6px; height: 6px; border-radius: 50%;
    flex-shrink: 0;
}
.tag-ai { background: var(--info-bg); color: var(--info); }
.tag-ai::before { background: #0284c7; }
.tag-ok { background: var(--ok-bg); color: #14532d; }
.tag-ok::before { background: #22c55e; }
.tag-escal { background: var(--warn-bg); color: #713f12; }
.tag-escal::before { background: #eab308; }
.live { color: var(--danger); font-weight: 600; font-size: 12px; }
.live::before { content: '●'; margin-right: 4px; animation: blink 1.2s ease-in-out infinite; }
@keyframes blink { 0%,100% { opacity: 1; } 50% { opacity: 0.3; } }
.link { color: var(--muted); border: 0; text-decoration: none; cursor: pointer; font-size: 13px; font-weight: 500; transition: color .15s ease; }
.link:hover { color: var(--ink); }

/* === Transcript === */
.transcript {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--ink);
    max-height: 320px;
    overflow-y: auto;
}
.t-line {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 16px;
    border-radius: 10px;
    border-left: 3px solid var(--line);
    background: #ffffff;
}
.t-who {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--muted);
    font-weight: 700;
}
.t-msg { color: var(--ink); line-height: 1.55; }
.t-bot { border-left-color: var(--accent-purple); }
.t-bot .t-who { color: var(--accent-purple); }
.t-cli { border-left-color: var(--ink); background: #ffffff; }
.t-cli .t-who { color: var(--ink); }
.t-msg .tool-chip { margin-top: 6px; }
.t-tags {
    margin-top: 14px;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}
.t-tag {
    background: var(--pill-bg);
    color: var(--ink-2);
    font-size: 11.5px;
    padding: 5px 11px;
    border-radius: 999px;
    font-weight: 500;
}
.t-tag-ok { background: var(--ok-bg); color: #14532d; font-weight: 500; }

/* === Impact === */
.card-impact { background: linear-gradient(160deg, #2d4b66 0%, #4a6a85 100%); border-color: transparent; color: #fff; }
.card-impact .card-title { color: #fff; }
.card-impact .card-label { color: var(--gold-soft); }
.impact-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 16px;
}
.impact-item {
    background: rgba(255,255,255,0.08);
    border-radius: 10px;
    padding: 16px 18px;
    display: flex; flex-direction: column; gap: 4px;
    border: 1px solid rgba(255,255,255,0.12);
}
.impact-item:nth-child(1) { background: rgba(110,138,100,0.18); border-color: rgba(110,138,100,0.35); }
.impact-item:nth-child(2) { background: rgba(212,200,156,0.15); border-color: rgba(212,200,156,0.32); }
.impact-item:nth-child(3) { background: rgba(176,138,62,0.18); border-color: rgba(176,138,62,0.38); }
.impact-item:nth-child(4) { background: rgba(181,112,90,0.18); border-color: rgba(181,112,90,0.38); }
.impact-val {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 30px;
    color: #fff;
    line-height: 1;
    letter-spacing: -0.4px;
}
.impact-lbl { font-size: 11.5px; color: rgba(255,255,255,0.72); line-height: 1.5; }
.impact-foot { padding-top: 4px; }
.impact-bar-bg {
    height: 14px;
    background: rgba(255,255,255,0.1);
    border-radius: 999px;
    overflow: hidden;
}
.impact-bar-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--olive) 0%, var(--gold-soft) 100%);
    border-radius: 999px;
}
.impact-bar-labels {
    margin-top: 10px;
    display: flex; justify-content: space-between;
    font-size: 11.5px;
    color: rgba(255,255,255,0.78);
    font-weight: 500;
}
.impact-bar-labels {
    margin-top: 8px;
    display: flex; justify-content: space-between;
    font-size: 11.5px;
    color: var(--ink-soft);
    font-weight: 500;
}

.footer-note {
    margin-top: 28px;
    text-align: center;
    font-size: 11.5px;
    color: var(--muted);
    letter-spacing: 0.02em;
}

/* === PÁGINA LLAMADAS === */
.calls-mini {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
}
.calls-mini-item {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 22px 24px;
    display: flex; flex-direction: column; gap: 10px;
    box-shadow: 0 1px 2px rgba(10, 10, 10, .04);
    min-height: 108px;
    transition: box-shadow .18s ease, transform .18s ease;
}
.calls-mini-item:hover {
    box-shadow: 0 8px 30px -14px rgba(10, 10, 10, .12);
    transform: translateY(-1px);
}
.calls-mini-val {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 32px;
    line-height: 1;
    color: var(--ink);
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    margin-top: auto;
}
.calls-mini-lbl {
    font-size: 11px;
    color: var(--muted);
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.calls-toolbar {
    background: transparent;
    border: 0;
    border-radius: 0;
    padding: 0;
    display: flex;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
}
.calls-search {
    display: flex; align-items: center; gap: 10px;
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 9px 18px;
    flex: 1;
    min-width: 280px;
    max-width: 480px;
    color: var(--muted);
    box-shadow: 0 1px 2px rgba(10, 10, 10, .04);
    transition: border-color .15s ease;
}
.calls-search:focus-within { border-color: var(--ink); }
.calls-search svg { flex-shrink: 0; }
.calls-search input {
    border: 0; outline: 0; background: transparent;
    font-family: inherit; font-size: 13.5px;
    flex: 1; color: var(--ink);
}
.calls-search input::placeholder { color: var(--muted); }
.calls-filters {
    display: flex; align-items: center; gap: 10px;
    flex-wrap: wrap;
}

.btn-ghost {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 8px 16px;
    font-family: inherit; font-size: 13px; font-weight: 500; color: var(--ink-2);
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 7px;
    transition: border-color .15s ease, background .15s ease;
}
.btn-ghost:hover { border-color: var(--ink); }
.btn-primary {
    background: var(--ink);
    color: #ffffff;
    border: 1px solid var(--ink);
    border-radius: 999px;
    padding: 9px 18px;
    font-family: inherit; font-size: 13px; font-weight: 500;
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    transition: background .15s ease;
}
.btn-primary:hover { background: var(--ink-2); }

/* Tabla llamadas */
.table-calls tbody tr { cursor: pointer; }
.table-calls td { font-size: 13px; }
.mono { font-variant-numeric: tabular-nums; font-family: 'SF Mono', Menlo, monospace; font-size: 12.5px; }
.prod-tag {
    display: inline-block;
    background: var(--bg);
    border: 1px solid var(--c, var(--line));
    color: var(--c, var(--ink));
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 500;
}
.action-count {
    display: inline-block;
    background: var(--blue-soft);
    color: var(--blue-deep);
    font-weight: 600;
    padding: 2px 9px;
    border-radius: 999px;
    font-size: 11.5px;
}
.tag-lost { background: #f0eeea; color: var(--muted); }

/* Pager */
.pager {
    display: flex; justify-content: space-between; align-items: center;
    padding: 16px 24px 20px;
    border-top: 1px solid var(--line);
    margin: 0 -24px;
}
.pager-info { font-size: 12.5px; color: var(--muted); }
.pager-info strong { color: var(--ink); }
.pager-btns { display: inline-flex; align-items: center; gap: 6px; }
.pager-btn {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 6px 12px;
    font-family: inherit; font-size: 12.5px;
    color: var(--ink-soft); cursor: pointer;
}
.pager-btn:hover:not([disabled]) { background: var(--bg); }
.pager-btn[disabled] { opacity: 0.4; cursor: not-allowed; }
.pager-num { min-width: 32px; padding: 6px 10px; }
.pager-num.is-on { background: var(--ink); color: #fff; border-color: var(--ink); }
.pager-dots { color: var(--muted); font-size: 12px; padding: 0 4px; }

/* === Modal detalle de llamada === */
.call-modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; }
.call-modal[hidden] { display: none; }
.call-modal-bg { position: absolute; inset: 0; background: rgba(10,10,10,0.45); backdrop-filter: blur(4px); }
.call-modal-body {
    position: relative;
    background: #ffffff;
    width: min(940px, calc(100vw - 32px));
    max-height: calc(100vh - 60px);
    overflow-y: auto;
    border-radius: 16px;
    box-shadow: 0 40px 80px -20px rgba(10, 10, 10, 0.35);
    display: flex; flex-direction: column;
}
.call-modal-head {
    padding: 28px 32px 24px;
    border-bottom: 1px solid var(--line);
    display: flex; justify-content: space-between; align-items: flex-start;
    gap: 18px;
}
.call-modal-eyebrow {
    font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
    color: var(--muted);
    font-weight: 600;
    margin-bottom: 10px;
}
.call-modal-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 30px;
    color: var(--ink);
    margin: 0 0 8px;
    letter-spacing: -0.02em;
    line-height: 1.15;
}
.call-modal-meta { font-size: 13.5px; color: var(--muted); margin: 0; line-height: 1.5; }
.call-modal-close {
    width: 34px; height: 34px;
    background: var(--panel); border: 1px solid var(--line); border-radius: 999px;
    color: var(--muted); cursor: pointer;
    font-size: 20px; line-height: 1;
    display: grid; place-items: center;
    flex-shrink: 0;
    transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.call-modal-close:hover { background: #ffffff; border-color: var(--ink); color: var(--ink); }

.call-modal-stats {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px;
    padding: 24px 32px;
    background: var(--panel);
    border-bottom: 1px solid var(--line);
}
.call-modal-stats > div { display: flex; flex-direction: column; gap: 6px; }
.call-modal-stats span { font-size: 10.5px; color: var(--muted); letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600; }
.call-modal-stats strong {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 24px; color: var(--ink);
    letter-spacing: -0.02em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.call-modal-grid {
    padding: 24px 32px;
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 28px;
}
.call-modal-grid .card-label { display: block; margin-bottom: 10px; font-size: 11px; }
.t-sys { color: var(--muted); font-style: italic; }
.cm-info { display: flex; flex-direction: column; gap: 4px; }
.cm-info-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid #f4f3ee;
    font-size: 12.5px;
}
.cm-info-row:last-child { border-bottom: 0; }
.cm-info-row span { color: var(--muted); }
.cm-info-row strong { color: var(--ink); font-weight: 600; }

.cm-actions { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cm-actions li {
    background: var(--olive-soft);
    color: var(--ok);
    font-size: 12.5px;
    padding: 8px 12px 8px 28px;
    border-radius: 8px;
    position: relative;
    line-height: 1.45;
}
.cm-actions li::before {
    content: '';
    position: absolute;
    left: 11px; top: 14px;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--olive);
}

.call-modal-foot {
    padding: 18px 32px;
    border-top: 1px solid var(--line);
    display: flex; justify-content: flex-end; gap: 10px;
    background: #fff;
}

@media (max-width: 900px) {
    .call-modal-head { padding: 22px 22px 16px; }
    .call-modal-stats { grid-template-columns: 1fr 1fr; padding: 16px 22px; }
    .call-modal-grid { grid-template-columns: 1fr; padding: 22px; gap: 18px; }
    .call-modal-foot { padding: 14px 22px; }
}

/* === PÁGINA CONFIGURACIÓN === */
.cfg-status {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: 18px 22px;
    display: flex; flex-direction: column; gap: 8px;
}
.cfg-status-row {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 12.5px;
    padding: 6px 0;
    border-bottom: 1px solid #f4f3ee;
}
.cfg-status-row:last-child { border-bottom: 0; }
.cfg-status-row span { color: var(--muted); }
.cfg-status-row strong { color: var(--ink); font-weight: 600; }
.cfg-on { color: var(--ok); font-weight: 600; }
.cfg-off { color: var(--terracotta); font-weight: 600; }

.cfg-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 24px;
    align-items: start;
}
.cfg-side {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 10px;
    display: flex; flex-direction: column; gap: 2px;
    position: sticky;
    top: 92px;
}
.cfg-side-btn {
    background: transparent;
    border: 0;
    text-align: left;
    padding: 11px 14px;
    border-radius: 10px;
    font-family: inherit;
    font-size: 13.5px;
    color: var(--ink-soft);
    cursor: pointer;
    display: flex; align-items: center; gap: 12px;
    transition: background .15s, color .15s;
}
.cfg-side-btn svg { flex-shrink: 0; color: var(--muted); }
.cfg-side-btn:hover { background: var(--bg); color: var(--ink); }
.cfg-side-btn.is-on { background: var(--ink); color: #fff; font-weight: 500; }
.cfg-side-btn.is-on svg { color: var(--gold-soft); }

.cfg-content { display: flex; flex-direction: column; gap: 18px; }
.cfg-pane { display: none; flex-direction: column; gap: 18px; }
.cfg-pane.is-on { display: flex; }

.cfg-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}
.cfg-field { display: flex; flex-direction: column; gap: 6px; }
.cfg-field--wide { grid-column: span 2; }
.cfg-field > span {
    font-size: 11.5px;
    color: var(--muted);
    letter-spacing: 0.02em;
    font-weight: 500;
}
.cfg-field input, .cfg-field select, .cfg-field textarea {
    font-family: inherit;
    font-size: 13.5px;
    color: var(--ink);
    background: var(--bg);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 10px 12px;
    outline: 0;
    transition: border-color .15s, background .15s;
}
.cfg-field textarea { resize: vertical; line-height: 1.55; }
.cfg-field input:focus, .cfg-field select:focus, .cfg-field textarea:focus {
    border-color: var(--ink);
    background: #fff;
}
.cfg-field input:disabled { color: var(--muted); cursor: not-allowed; }

.cfg-users { display: flex; flex-direction: column; gap: 8px; }
.cfg-user {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 14px;
    background: var(--bg);
    border-radius: 10px;
}
.cfg-user .user-pill { width: 36px; height: 36px; font-size: 12px; }
.cfg-user-info { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.cfg-user-info strong { font-size: 13.5px; color: var(--ink); }
.cfg-user-info span { font-size: 11.5px; color: var(--muted); }

/* Toggles */
.cfg-toggle {
    display: inline-block;
    width: 38px; height: 22px;
    background: #d6d2c8;
    border-radius: 999px;
    position: relative;
    cursor: pointer;
    transition: background .2s;
    flex-shrink: 0;
}
.cfg-toggle > span {
    position: absolute;
    top: 3px; left: 3px;
    width: 16px; height: 16px;
    background: #fff;
    border-radius: 50%;
    transition: left .2s;
    box-shadow: 0 1px 2px rgba(0,0,0,0.18);
}
.cfg-toggle.is-on { background: var(--olive); }
.cfg-toggle.is-on > span { left: 19px; }

/* Horario */
.cfg-hours { display: flex; flex-direction: column; gap: 6px; }
/* Columnas: dia | casilla "Cerrado" | abre | cierra. Anchos fijos para que las
   dos horas queden alineadas entre filas y no se estiren con la pantalla. */
.cfg-hours-row {
    display: grid;
    grid-template-columns: 120px 110px 130px 130px;
    justify-content: start;
    align-items: center;
    gap: 18px;
    padding: 12px 14px;
    background: var(--bg);
    border-radius: 10px;
    font-size: 13px;
}
.cfg-hours-row .cfg-day-after { white-space: nowrap; }
.cfg-hours-row input[type="time"] { width: 100%; }
/* Cabecera con los rotulos de las columnas (misma rejilla, sin fondo). */
.cfg-hours-head {
    display: grid;
    grid-template-columns: 120px 110px 130px 130px;
    justify-content: start;
    gap: 18px;
    padding: 0 14px 2px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--muted);
}
@media (max-width: 720px) {
    .cfg-hours-row { grid-template-columns: 1fr 1fr; gap: 10px; }
    .cfg-hours-head { display: none; }
}
.cfg-day { font-weight: 600; color: var(--ink); }
.cfg-day-time { color: var(--ink); font-variant-numeric: tabular-nums; }
.cfg-day-after { color: var(--muted); font-size: 11.5px; }

/* Reglas */
.cfg-rules { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.cfg-rules li {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 16px;
    align-items: flex-start;
    padding: 14px 16px;
    background: var(--bg);
    border-radius: 10px;
}
.cfg-rules li strong { display: block; font-size: 13.5px; color: var(--ink); margin-bottom: 3px; }
.cfg-rules li span { font-size: 12px; color: var(--muted); line-height: 1.5; }

/* Equipo / mediadores */
.cfg-team { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cfg-mediator {
    background: var(--bg);
    border-radius: 12px;
    padding: 16px 18px;
    border-left: 3px solid var(--c, var(--ink));
    display: flex; flex-direction: column; gap: 10px;
}
.cfg-mediator-avatar {
    width: 40px; height: 40px; border-radius: 50%;
    color: #fff; display: grid; place-items: center;
    font-size: 13px; font-weight: 600; letter-spacing: 0.04em;
}
.cfg-mediator-info { display: flex; flex-direction: column; gap: 2px; }
.cfg-mediator-info strong { font-size: 14px; color: var(--ink); }
.cfg-mediator-info span { font-size: 11.5px; color: var(--muted); }
.cfg-mediator-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.cfg-mediator-status {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 11.5px;
    padding-top: 8px;
    border-top: 1px solid #ede9dc;
}

/* Plan */
.cfg-plan-current { background: linear-gradient(160deg, #fdfaf0 0%, #f3ecd8 100%); border-color: var(--gold-soft); }
.cfg-plan-stats {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
    margin-bottom: 18px;
}
.cfg-plan-stats > div {
    background: #fff;
    border-radius: 10px;
    padding: 14px 16px;
    display: flex; flex-direction: column; gap: 4px;
    border: 1px solid #ede5cc;
}
.cfg-plan-stats span { font-size: 11px; color: var(--muted); letter-spacing: 0.04em; text-transform: uppercase; font-weight: 600; }
.cfg-plan-stats strong {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-weight: 500;
    font-size: 22px;
    color: var(--ink);
    letter-spacing: -0.3px;
}
.cfg-plan-stats small {
    font-size: 10.5px;
    color: var(--muted);
    margin-top: 1px;
    letter-spacing: 0;
    text-transform: none;
    font-weight: 500;
}
.cfg-plan-meter-bar {
    height: 16px;
    background: rgba(255,255,255,0.6);
    border: 1px solid #ede5cc;
    border-radius: 999px;
    overflow: hidden;
}
.cfg-plan-meter-bar > span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--gold-deep) 0%, var(--terracotta) 100%);
}
.cfg-plan-meter-foot {
    margin-top: 8px;
    display: flex; justify-content: space-between;
    font-size: 12.5px;
    color: var(--ink-soft);
}
.cfg-plan-meter-foot strong { color: var(--ink); }

/* Payment */
.cfg-payment { display: flex; gap: 20px; align-items: center; }
.cfg-card-visual {
    width: 220px; height: 130px;
    background: linear-gradient(135deg, var(--blue-deep) 0%, var(--blue) 100%);
    border-radius: 12px;
    padding: 18px;
    color: #fff;
    display: flex; flex-direction: column; justify-content: space-between;
    font-family: 'Inter', sans-serif;
    flex-shrink: 0;
    box-shadow: 0 8px 20px rgba(45,75,102,0.25);
}
.cfg-card-brand { font-family: 'Cormorant Garamond', serif; font-size: 22px; font-weight: 500; letter-spacing: 0.04em; }
.cfg-card-num { font-size: 14px; letter-spacing: 0.12em; }
.cfg-card-exp { font-size: 11px; color: rgba(255,255,255,0.7); }
.cfg-payment-info { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.cfg-payment-info strong { font-size: 14px; color: var(--ink); }
.cfg-payment-info span { font-size: 12.5px; color: var(--muted); line-height: 1.55; }

/* Save bar */
.cfg-save-bar {
    position: sticky;
    bottom: 18px;
    background: var(--ink);
    color: #fff;
    padding: 14px 22px;
    border-radius: 12px;
    display: flex; justify-content: space-between; align-items: center;
    gap: 16px;
    box-shadow: 0 12px 30px rgba(17,17,17,0.18);
    font-size: 13px;
    margin-top: 8px;
}
.cfg-save-bar > div { display: flex; gap: 10px; }
.cfg-save-bar .btn-ghost { background: rgba(255,255,255,0.1); color: #fff; border-color: rgba(255,255,255,0.2); }
.cfg-save-bar .btn-ghost:hover { background: rgba(255,255,255,0.2); }
.cfg-save-bar .btn-primary { background: #fff; color: var(--ink); }
.cfg-save-bar .btn-primary:hover { background: #ececec; }

@media (max-width: 1100px) {
    .cfg-layout { grid-template-columns: 1fr; }
    .cfg-side { flex-direction: row; flex-wrap: wrap; position: static; }
    .cfg-team { grid-template-columns: 1fr; }
    .cfg-payment { flex-direction: column; align-items: stretch; }
    .cfg-card-visual { width: 100%; }
}
@media (max-width: 720px) {
    .cfg-grid-2 { grid-template-columns: 1fr; }
    .cfg-field--wide { grid-column: span 1; }
    .cfg-plan-stats { grid-template-columns: 1fr 1fr; }
    .cfg-hours-row { grid-template-columns: 80px 40px 110px 1fr; gap: 8px; }
    .cfg-hours-row { font-size: 12px; }
}

/* === Responsive === */
@media (max-width: 1200px) {
    .kpis { grid-template-columns: 1fr 1fr 1fr; }
    .kpi--featured { grid-column: span 3; }
    .row-2 { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .topbar { flex-wrap: wrap; padding: 12px 18px; }
    .topbar-nav { order: 3; flex-basis: 100%; gap: 14px; overflow-x: auto; }
    .page { padding: 28px 18px 40px; }
    .page-head-row { grid-template-columns: 1fr; gap: 22px; }
    .kpis { grid-template-columns: 1fr 1fr; }
    .kpi--featured { grid-column: span 2; }
}

/* === Añadidos del panel real === */
.is-loading { color: var(--muted); font-size: 13px; padding: 12px 0; }
.empty-state { color: var(--muted); font-size: 13.5px; text-align: center; padding: 28px 0; }
.lang-pill { display:inline-block; background:var(--beige); color:var(--ink-soft); font-size:11px; padding:2px 8px; border-radius:999px; text-transform:uppercase; letter-spacing:.04em; font-weight:600; }
.tag-fail { background: var(--terracotta-soft); color: #7a3f2c; }
.tag-unknown { background: #f0eeea; color: var(--muted); }
.tag-derivada { background: var(--blue-soft); color: var(--blue-deep); }

/* === Configuración del agente === */
.agente-form { display:flex; flex-direction:column; gap:18px; }
.agente-form .cfg-field span { font-size:12px; font-weight:600; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em; }
.agente-form .cfg-field span em { text-transform:none; letter-spacing:0; color:var(--gold-deep); font-style:normal; font-weight:500; }
.agente-form input[type="text"], .agente-form textarea {
    width:100%; box-sizing:border-box; margin-top:6px;
    padding:11px 13px; border:1px solid var(--line); border-radius:10px;
    font-family:inherit; font-size:14px; color:var(--ink); background:#fff;
}
.agente-form textarea { resize:vertical; line-height:1.5; }
.agente-form #ag-instrucciones { font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace; font-size:12.5px; }
.agente-form input:focus, .agente-form textarea:focus { outline:none; border-color:var(--gold); }
.cfg-hint-line { display:block; margin-top:5px; font-size:12px; color:var(--muted); }
.cfg-warning { display:block; margin-top:7px; font-size:12.5px; color:#7a3f2c; background:var(--terracotta-soft); border-radius:8px; padding:8px 11px; line-height:1.45; }
.agente-actions { display:flex; gap:10px; align-items:center; }
.call-modal-summary { margin: 8px 0 0; font-size: 14px; line-height: 1.6; color: var(--ink-soft); background: var(--beige-soft); border-radius: 10px; padding: 14px 16px; }
.tool-chip { display:inline-block; background:var(--blue-soft); color:var(--blue-deep); font-size:11px; padding:2px 9px; border-radius:999px; font-weight:500; margin-left:6px; }
.btn-mini { background:#fff; border:1px solid var(--line); border-radius:8px; padding:5px 11px; font-family:inherit; font-size:12px; color:var(--ink); cursor:pointer; }
.btn-mini:hover { background: var(--bg); }
.btn-danger { color:#9a2f1f; border-color:#e7cfc8; }
.btn-danger:hover { background:#f9eeea; }
.fest-add { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin-top:14px; padding-top:16px; border-top:1px solid var(--line); }
.fest-add .cfg-field { gap:5px; }
.cfg-hours-row.is-closed { opacity:.6; }
.toast { position:fixed; bottom:22px; left:50%; transform:translateX(-50%); background:var(--ink); color:#fff; padding:12px 22px; border-radius:10px; font-size:13px; box-shadow:0 12px 30px rgba(0,0,0,.25); z-index:200; opacity:0; transition:opacity .2s, transform .2s; pointer-events:none; }
.toast.show { opacity:1; transform:translateX(-50%) translateY(-4px); }
.toast.err { background:#9a2f1f; }

/* === Consumo y facturación === */
.consumo { border-top: 0; }
.consumo .card-title .accent { color: var(--ink); font-style: italic; font-weight: 400; }
.consumo-cuota { display:flex; flex-direction:column; align-items:flex-end; line-height:1.15; }
#consumo-cuota { font-family:"Cormorant Garamond",serif; font-size:34px; font-weight:500; color:var(--ink); letter-spacing:-.02em; }
.consumo-cuota small { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.14em; margin-top:4px; font-weight:600; }

.consumo-bar-wrap { margin:24px 0 4px; }
.consumo-bar { height:10px; background:var(--pill-bg); border-radius:999px; overflow:hidden; }
#consumo-bar-fill { display:block; height:100%; width:0; background:var(--ink); border-radius:999px; transition:width .6s ease; }
#consumo-bar-fill.over { background:var(--danger); }
.consumo-bar-legend { display:flex; justify-content:space-between; margin-top:10px; font-size:13px; color:var(--muted); }
.consumo-bar-legend strong { color:var(--ink); font-weight:600; }

.consumo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:32px; }
.consumo-stat { border:1px solid var(--line); border-radius:14px; padding:20px 20px 18px; display:flex; flex-direction:column; gap:6px; background:var(--bg); }
.consumo-stat--total { background:var(--panel); border-color:var(--line); }
.consumo.is-over .consumo-stat--total { background:var(--danger-bg); border-color:#f5c4c4; }
.consumo-stat-lbl { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); font-weight:600; }
.consumo-stat-val { font-family:"Cormorant Garamond",serif; font-size:32px; font-weight:500; color:var(--ink); letter-spacing:-.02em; line-height:1.05; margin-top:4px; }
.consumo-stat--total .consumo-stat-val { color:var(--ink); }
.consumo.is-over .consumo-stat--total .consumo-stat-val { color:#7f1d1d; }
.consumo-stat-foot { font-size:12px; color:var(--muted); margin-top:2px; }
.consumo-note { margin:18px 0 0; font-size:12.5px; color:var(--muted); font-style:normal; line-height:1.5; }

@media (max-width: 760px) {
    .consumo-grid { grid-template-columns:1fr 1fr; }
}

/* === Botón salir === */
.logout-btn { background:var(--bg); border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-family:inherit; font-size:12.5px; font-weight:500; color:var(--ink-2); cursor:pointer; transition: border-color .15s ease, background .15s ease; }
.logout-btn:hover { background:var(--panel); color:var(--ink); border-color:var(--ink); }

/* === Login === */
/* === LOGIN (estilo Brudy) === */
.login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fafafa;
    padding: 24px;
}
.login-wrap {
    width: 100%;
    max-width: 400px;
    text-align: center;
}
.login-card {
    background: #ffffff;
    border: 1px solid var(--line);
    border-radius: 16px;
    padding: 44px 40px 36px;
    box-shadow: 0 20px 60px -20px rgba(10, 10, 10, .12), 0 4px 12px -4px rgba(10, 10, 10, .04);
}
.login-brand {
    font-family: "Cormorant Garamond", Georgia, serif;
    font-size: 34px;
    font-weight: 500;
    color: var(--ink);
    letter-spacing: -0.02em;
    line-height: 1;
}
.login-sub {
    margin: 8px 0 32px;
    color: var(--muted);
    font-size: 13.5px;
    letter-spacing: -0.005em;
}
.login-form {
    display: flex;
    flex-direction: column;
    gap: 18px;
    text-align: left;
}
.login-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.login-field span {
    font-size: 11px;
    font-weight: 600;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.14em;
}
.login-field input {
    padding: 12px 16px;
    border: 1px solid var(--line);
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    color: var(--ink);
    background: #ffffff;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.login-field input:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px rgba(10, 10, 10, .06);
}
.login-btn {
    margin-top: 8px;
    padding: 13px;
    background: var(--ink);
    color: #ffffff;
    border: 1px solid var(--ink);
    border-radius: 10px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    letter-spacing: -0.005em;
    transition: background .15s ease;
}
.login-btn:hover { background: var(--ink-2); }
.login-btn:disabled { opacity: .5; cursor: default; }
.login-error {
    margin: 4px 0 0;
    color: var(--danger);
    font-size: 13px;
    text-align: center;
    letter-spacing: -0.005em;
}
.login-ok {
    color: var(--muted);
}
.login-olvido {
    margin: 2px 0 0;
    text-align: center;
    font-size: 12px;
}
.login-olvido a {
    color: var(--muted);
    text-decoration: none;
    border-bottom: 1px solid transparent;
}
.login-olvido a:hover {
    border-bottom-color: currentColor;
}
.login-foot {
    margin-top: 24px;
    color: var(--muted);
    font-size: 12px;
    letter-spacing: -0.005em;
}
