/* InmoBúsqueda — tokens y componentes. Colores solo vía custom properties; ámbar solo para foco/atención. */
:root {
  --ground: #EEF0EC; --ink: #1E2622; --ink-2: #36403A; --muted: #4C5650;
  --line: #C9CEC6; --line-soft: #E1E4DE; --field: #9AA39A;
  --river: #1F4E5F; --river-2: #2C6577; --admin: #26302B;
  --amber: #E2A93B; --amber-soft: #F9E9C6; --amber-ink: #5A4210;
  --ok: #2F6B4F; --ok-soft: #DCEBE2; --no: #7A2F1F; --no-soft: #F3DCD5;
  /* Derivados del canvas */
  --paper: #FFFFFF; --paper-2: #F6F7F4; --track: #D9DED6; --river-ink: #123542;
  --on-dark: #EEF0EC; --on-dark-2: #C9D6D9; --on-dark-3: #A9BEC4; --nav-ink: #D6E1E4; --nav-group: #9FB0A7; --admin-on: #3A4A42;
  --scrim: rgba(30, 38, 34, .55); --scrim-strong: rgba(30, 38, 34, .9);
  --radius: 6px; --radius-lg: 10px;
  --font: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--ground); color: var(--ink); font-family: var(--font); font-size: 16px; line-height: 1.5; }
a { color: var(--river); }
a:hover { color: var(--river-ink); }
h1, h2, h3 { margin: 0; line-height: 1.15; }
h1 { font-size: 36px; font-weight: 750; font-stretch: 115%; }
h2 { font-size: 20px; font-weight: 700; font-stretch: 112%; }
h3 { font-size: 16px; font-weight: 700; font-stretch: 112%; }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--amber); outline-offset: 2px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
[hidden] { display: none !important; }

/* Campos */
label { display: block; font-size: 14px; font-weight: 600; margin-bottom: 4px; }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  width: 100%; min-height: 44px; border: 1px solid var(--field); border-radius: var(--radius); padding: 0 14px;
  font: inherit; font-size: 16px; background: var(--paper); color: var(--ink);
}
textarea { padding: 12px 14px; min-height: 96px; line-height: 1.5; resize: vertical; }
input[type=checkbox], input[type=radio] { width: 18px; height: 18px; accent-color: var(--river); }
input[aria-invalid=true] { border-color: var(--no); }
.fld { display: flex; flex-direction: column; gap: 6px; }
.fld label { margin: 0; }
.fld .hint { font-size: 13px; color: var(--muted); }
.fld .opt { font-weight: 400; color: var(--muted); }
.fld-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
label.check { display: inline-flex; gap: 8px; align-items: center; min-height: 44px; font-weight: 400; font-size: 15px; margin: 0 12px 0 0; }

/* Botones */
button, .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px;
  border: 1px solid var(--ink); border-radius: var(--radius); background: var(--ink); color: var(--paper);
  font: inherit; font-size: 15px; font-weight: 650; cursor: pointer; text-decoration: none; line-height: 1.2;
}
.btn:hover { color: var(--paper); }
.btn.dark, button.dark { background: var(--ink); color: var(--paper); }
.btn.primary, button.primary { background: var(--river); border-color: var(--river); color: var(--paper); }
.btn.line, button.line, button.secondary { background: var(--paper); color: var(--ink); border-color: var(--ink); }
.btn.line:hover { color: var(--ink); background: var(--paper-2); }
.btn.danger, button.danger, button.bad { background: var(--no); border-color: var(--no); color: var(--paper); }
button.ok { background: var(--ok); border-color: var(--ok); color: var(--paper); }
.btn.block, button.block { width: 100%; min-height: 48px; font-size: 16px; }
button:disabled, .btn[aria-disabled=true] { opacity: .55; cursor: default; }
.link-btn { min-height: 44px; padding: 0 4px; margin-right: -4px; border: 0; background: none; color: var(--river); font-weight: 400; font-size: 14px; text-decoration: underline; }
.link-btn:hover { color: var(--river-ink); }

/* Avisos */
.notice { display: flex; gap: 10px; align-items: flex-start; border-radius: var(--radius); padding: 12px 14px; font-size: 14px; line-height: 1.45;
  background: var(--amber-soft); color: var(--amber-ink); }
.notice svg { flex: none; margin-top: 1px; }
.notice.ok { background: var(--ok-soft); color: var(--ok); }
.notice.no { background: var(--no-soft); color: var(--no); }

/* Paneles, tablas, chips, estados */
.panel { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; margin-bottom: 16px; }
.table-wrap { overflow-x: auto; }
table { border-collapse: collapse; width: 100%; font-size: 15px; }
th { text-align: left; font-size: 13px; font-weight: 600; color: var(--muted); padding: 10px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; }
td { padding: 14px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; text-align: left; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.chip { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; padding: 0 12px; border: 1px solid var(--field); border-radius: 17px; font-size: 14px; background: var(--paper-2); }
.st { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; }
.st::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--field); }
.st.terminada::before, .st.activa::before, .st.aprobado::before { background: var(--ok); }
.st.corriendo::before, .st.en_cola::before, .st.pendiente::before { background: var(--amber); }
.st.error::before, .st.rechazada::before, .st.rechazado::before, .st.suspendida::before { background: var(--no); }
.meter { height: 8px; background: var(--track); border-radius: 4px; overflow: hidden; }
.meter > span { display: block; height: 100%; background: var(--river); }
.meter > span.hot { background: var(--no); }
.meter > span.live { background: var(--amber); }

/* Glifo de fachada: una ventana por unidad (máx. 12), ver facadeHtml() en js/format.js */
.facade { --cols: 3; display: inline-grid; grid-template-columns: repeat(var(--cols), 8px); gap: 3px; padding: 4px;
  border: 2px solid var(--river); border-radius: 2px; vertical-align: middle; }
.facade .win { display: block; width: 8px; height: 10px; border-radius: 1px; background: var(--river-2); }
.facade .win.lit { background: var(--amber); }

/* Marco con menú lateral (se apila arriba en < 720 px) */
.shell { display: flex; flex-wrap: wrap; min-height: 100vh; }
nav.side { flex: 1 1 220px; max-width: 260px; background: var(--river); padding: 24px 14px; display: flex; flex-direction: column; gap: 6px; }
nav.side.admin { background: var(--admin); gap: 4px; }
nav.side a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 14px; border-radius: var(--radius); color: var(--nav-ink); text-decoration: none; font-size: 15px; }
nav.side a:hover { color: var(--paper); background: var(--river-2); }
nav.side.admin a:hover { background: var(--admin-on); }
nav.side a.on { background: var(--river-2); color: var(--paper); font-weight: 600; }
nav.side.admin a.on { background: var(--admin-on); }
nav.side .side-brand { color: var(--paper); font-size: 18px; font-weight: 700; font-stretch: 112%; padding: 0 10px; margin-bottom: 16px; }
nav.side .side-brand:hover { background: none; }
nav.side .logo { color: var(--on-dark); flex: none; }
.logo .lit { fill: var(--amber); }
nav.side .side-group { font-size: 13px; color: var(--nav-group); padding: 16px 14px 4px; }
nav.side .side-fill { flex: 1; }
nav.side .side-user { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 14px; border-top: 1px solid var(--river-2); color: var(--nav-ink); font-size: 14px; }
nav.side.admin .side-user { border-top-color: var(--admin-on); }
nav.side .side-logout { min-height: 44px; padding: 0; border: 0; background: none; color: var(--paper); text-decoration: underline; font-weight: 400; font-size: 14px; }
.shell > main { flex: 999 1 560px; min-width: 0; padding: 36px 40px 56px; }
.page { max-width: 1040px; display: flex; flex-direction: column; gap: 24px; }
.page-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; }
@media (max-width: 719px) {
  nav.side { flex-basis: 100%; max-width: none; flex-direction: row; flex-wrap: wrap; padding: 12px; gap: 4px; }
  nav.side .side-brand { flex-basis: 100%; margin-bottom: 4px; }
  nav.side .side-group { flex-basis: 100%; padding: 8px 14px 0; }
  nav.side .side-fill { display: none; }
  nav.side .side-user { flex-basis: 100%; flex-direction: row; align-items: center; justify-content: space-between; padding: 8px 14px 0; }
  .shell > main { padding: 24px 16px 40px; }
  h1 { font-size: 28px; }
}

/* Páginas de acceso */
.auth-split { min-height: 100vh; display: flex; flex-wrap: wrap; }
.auth-hero { flex: 1 1 520px; background: var(--river); color: var(--on-dark); padding: 56px 64px; display: flex; flex-direction: column; justify-content: space-between; gap: 48px; }
.auth-hero .brand { display: flex; align-items: center; gap: 12px; font-size: 22px; font-weight: 700; font-stretch: 112%; }
.auth-hero .brand .logo { color: var(--on-dark); }
.auth-hero .pitch { display: flex; flex-direction: column; gap: 28px; max-width: 520px; }
.auth-hero h1 { font-size: 52px; line-height: 1.02; font-weight: 750; font-stretch: 118%; letter-spacing: -0.01em; }
.auth-hero .lead { font-size: 18px; line-height: 1.55; color: var(--on-dark-2); max-width: 460px; }
.auth-hero .host { font-size: 14px; color: var(--on-dark-3); }
.hero-windows { display: grid; grid-template-columns: repeat(6, 14px); gap: 6px; }
.hero-windows i { width: 14px; height: 18px; border-radius: 1px; background: var(--amber); }
.hero-windows i.off { background: var(--river-2); }
.auth-side { flex: 1 1 440px; display: flex; align-items: center; justify-content: center; padding: 56px 32px; }
.auth-form { width: 100%; max-width: 380px; display: flex; flex-direction: column; gap: 22px; }
.auth-form .intro { display: flex; flex-direction: column; gap: 8px; }
.auth-form h2 { font-size: 30px; font-weight: 700; font-stretch: 110%; }
.auth-form .intro p, .auth-card .intro p { color: var(--muted); }
.auth-solo { min-height: 100vh; display: flex; flex-direction: column; align-items: center; padding: 48px 20px; gap: 36px; }
.auth-solo .brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--ink); font-size: 20px; font-weight: 700; font-stretch: 112%; }
.auth-solo .brand .logo { color: var(--river); }
.auth-card { width: 100%; max-width: 440px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 36px; display: flex; flex-direction: column; gap: 20px; }
.auth-card .intro { display: flex; flex-direction: column; gap: 8px; }
.auth-card h1 { font-size: 28px; font-weight: 700; font-stretch: 110%; }
.auth-card .foot { font-size: 15px; color: var(--muted); text-align: center; }
.auth-card .body { font-size: 16px; line-height: 1.55; color: var(--ink-2); }
.state-icon { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--amber-soft); color: var(--amber-ink); }
.state-icon.ok { background: var(--ok-soft); color: var(--ok); }
@media (max-width: 719px) {
  .auth-hero { padding: 32px 20px; gap: 28px; }
  .auth-hero h1 { font-size: 34px; }
  .auth-side { padding: 32px 16px 48px; }
  .auth-card { padding: 24px 20px; }
}

/* Toast y diálogo */
#toast { position: fixed; bottom: 20px; right: 20px; left: auto; max-width: min(420px, calc(100vw - 40px)); padding: 12px 16px; border-radius: var(--radius);
  background: var(--ink); color: var(--paper); display: none; z-index: 20; font-size: 15px; }
#toast.show { display: block; }
#toast.error { background: var(--no); }
dialog.confirm { border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 24px; max-width: min(460px, calc(100vw - 32px)); color: var(--ink); background: var(--paper); }
dialog.confirm::backdrop { background: var(--scrim); }
dialog.confirm form { display: flex; flex-direction: column; gap: 14px; }
.row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.row.end { justify-content: flex-end; }
.muted { color: var(--muted); }
.small { font-size: 13px; }

/* Componentes heredados (tabla de inmobiliarias, badges, tarjetas) */
.panel > h2 { font-size: 18px; margin: 0 0 12px; display: flex; gap: 8px; align-items: center; }
.grid-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.span2 { grid-column: span 2; }
.badge { display: inline-block; padding: 2px 8px; border-radius: 99px; font-size: 12px; background: var(--line-soft); color: var(--ink-2); }
.badge.ok, .badge.aprobado, .badge.terminada, .badge.listo { background: var(--ok-soft); color: var(--ok); }
.badge.error, .badge.rechazado, .badge.bloqueado { background: var(--no-soft); color: var(--no); }
.badge.pendiente, .badge.corriendo, .badge.interrumpida { background: var(--amber-soft); color: var(--amber-ink); }
.badge.deshabilitado, .badge.cancelada { background: var(--line-soft); color: var(--muted); }
.badge.nueva { background: var(--river); color: var(--paper); }
.badge.manual { background: var(--line); color: var(--ink); }
.badge.prev.aprobado { background: var(--ok-soft); color: var(--ok); } .badge.prev.rechazado { background: var(--no-soft); color: var(--no); }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(340px, 100%), 1fr)); gap: 16px; }
.card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-direction: column; }
.card.aprobado { border-color: var(--ok); }
.card.rechazado { opacity: .6; }
.card img.thumb { width: 100%; height: 200px; object-fit: cover; object-position: top; cursor: zoom-in; background: var(--line-soft); display: block; }
.card .body { padding: 12px; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.card .price { font-size: 18px; font-weight: 700; }
.card textarea { min-height: 44px; }
.card .manual-text:not([hidden]) { display: flex; flex-direction: column; gap: 6px; }
.card .memory { gap: 6px; }
.chips span { background: var(--line-soft); border-radius: 4px; padding: 2px 6px; margin-right: 4px; font-size: 12px; display: inline-block; margin-bottom: 2px; }
.score { font-weight: 700; }
.score.hi { color: var(--ok); } .score.mid { color: var(--amber-ink); } .score.lo { color: var(--no); }
ul.reasons { margin: 0; padding-left: 16px; font-size: 13px; }
ul.reasons li.m { color: var(--ok); } ul.reasons li.x { color: var(--no); } ul.reasons li.w { color: var(--amber-ink); }
.modal { position: fixed; inset: 0; background: var(--scrim-strong); display: none; overflow: auto; z-index: 10; padding: 24px; cursor: zoom-out; }
.modal.open { display: block; }
.modal img { max-width: 100%; display: block; margin: 0 auto; }
.progress-site { display: grid; grid-template-columns: 200px 140px 1fr; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--line-soft); }
pre.log { max-height: 220px; overflow: auto; background: var(--paper-2); border: 1px solid var(--line-soft); padding: 8px; font-size: 12px; white-space: pre-wrap; }
.cov-warn { color: var(--amber-ink); }

/* Panel de usuario (inicio, resultados, aprobadas, cuenta) */
.load-error { align-items: center; justify-content: space-between; flex-wrap: wrap; }
.usage { min-width: 260px; display: flex; flex-direction: column; gap: 6px; }
.usage .usage-row { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.usage .usage-row .num { font-weight: 600; }
.panel.stack { display: flex; flex-direction: column; gap: 16px; }
.panel .panel-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px; }
.panel .lead-label { font-size: 15px; font-weight: 600; }
.interpreted { border-top: 1px solid var(--line-soft); padding-top: 18px; display: flex; flex-direction: column; gap: 14px; }
.interpreted h2 { font-size: 16px; }
.chips-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.launch-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; }
.criteria-form { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(180px, 100%), 1fr)); gap: 14px; padding: 16px; border: 1px solid var(--line-soft); border-radius: var(--radius); background: var(--paper-2); }
.criteria-form .wide { grid-column: 1 / -1; }
.criteria-form fieldset { border: 0; padding: 0; margin: 0; }
.criteria-form legend { font-size: 14px; font-weight: 600; margin-bottom: 4px; padding: 0; }
.meter.big { height: 10px; border-radius: 5px; }
.counters { display: flex; flex-wrap: wrap; gap: 8px 24px; font-size: 14px; color: var(--ink-2); }
.counters strong { font-variant-numeric: tabular-nums; }
.st.cancelada::before, .st.interrumpida::before { background: var(--amber-ink); }
.empty { padding: 32px 24px; background: var(--paper); border: 1px dashed var(--field); border-radius: var(--radius-lg); text-align: center; color: var(--ink-2); }
.tabs { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.tab { min-height: 44px; padding: 0 16px; border-radius: 22px; border: 1px solid var(--field); background: var(--paper); color: var(--ink); font-size: 14px; font-weight: 600; }
.tab[aria-pressed=true] { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.toolbar { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.toolbar .fld { min-width: 160px; }
.toolbar select { width: auto; min-width: 160px; }
.results { display: flex; flex-direction: column; gap: 16px; }
.result { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; display: flex; flex-wrap: wrap; }
.result.aprobado { border-color: var(--ok); }
.result.rechazado .result-body { opacity: .75; }
.result .shot { flex: 1 1 240px; max-width: 300px; min-height: 200px; background: repeating-linear-gradient(135deg, var(--line-soft) 0 12px, var(--paper-2) 12px 24px);
  display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 13px; }
.result .shot-btn { width: 100%; height: 100%; min-height: 200px; padding: 0; border: 0; border-radius: 0; background: none; cursor: zoom-in; display: block; }
.result .shot-btn img { width: 100%; height: 100%; max-height: 320px; object-fit: cover; object-position: top; display: block; }
.result-body { flex: 999 1 380px; min-width: 0; padding: 22px 24px; display: flex; flex-direction: column; gap: 12px; }
.result-head { display: flex; gap: 16px; align-items: flex-start; }
.result-title { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.result-title h2 { font-size: 19px; line-height: 1.25; overflow-wrap: anywhere; }
.result-title p { font-size: 14px; }
.score-box { width: 64px; height: 64px; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; flex: none; font-size: 11px; }
.score-box .n { font-size: 24px; font-weight: 750; line-height: 1; }
.score-box.top { background: var(--river); color: var(--paper); }
.score-box.warm { background: var(--amber-soft); color: var(--amber-ink); }
.score-box.none { background: var(--paper-2); color: var(--muted); border: 1px solid var(--line); }
.result-facts { display: flex; flex-wrap: wrap; gap: 12px 22px; align-items: center; }
.result-facts .price { font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }
.result-facts .units { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; font-weight: 600; }
.result .why { font-size: 15px; color: var(--ink-2); }
.result .paste-box:not([hidden]) { display: flex; flex-direction: column; gap: 8px; }
.result-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.result-actions .orig { margin-left: auto; display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; }
.tag { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 13px; font-size: 13px; font-weight: 600; }
.tag.aprobado { background: var(--ok-soft); color: var(--ok); }
.tag.rechazado { background: var(--no-soft); color: var(--no); }
.badge.nueva { background: var(--amber-soft); color: var(--amber-ink); }
dialog.shot-view { border: 0; padding: 0; max-width: min(1100px, calc(100vw - 32px)); max-height: calc(100vh - 32px); background: var(--paper); border-radius: var(--radius-lg); }
dialog.shot-view::backdrop { background: var(--scrim-strong); }
dialog.shot-view .bar { position: sticky; top: 0; display: flex; justify-content: flex-end; padding: 8px; background: var(--paper); }
dialog.shot-view img { display: block; max-width: 100%; }
.back-link { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; align-self: flex-start; }
.head-text { display: flex; flex-direction: column; gap: 8px; max-width: 640px; }
.head-text h1 { font-size: 32px; overflow-wrap: anywhere; }
select.export-scope { width: auto; }
td.nowrap { white-space: nowrap; }
#running { display: flex; flex-direction: column; gap: 16px; }
#running:empty { display: none; }
#running .panel { margin-bottom: 0; }
.form-narrow { max-width: 460px; display: flex; flex-direction: column; gap: 16px; }
@media (max-width: 719px) {
  .result .shot { max-width: none; }
  .result-body { padding: 18px 16px; }
  .result-actions .orig { margin-left: 0; }
  .head-text h1 { font-size: 26px; }
  .result .shot { min-height: 120px; }
}

/* Panel de administración (resumen, cuentas, búsquedas, inmobiliarias, IA y límites) */
.page.narrow { max-width: 860px; }
.page.wide { max-width: 1600px; }
.panel.stack > h2, .split > .panel > h2 { margin: 0; }
.head-sub { font-size: 14px; color: var(--muted); }
.month-pick { display: flex; flex-direction: column; gap: 6px; }
.month-pick input { width: auto; min-width: 190px; }
.spend { display: flex; flex-wrap: wrap; gap: 32px; align-items: stretch; }
.spend-total { flex: 1 1 260px; display: flex; flex-direction: column; gap: 10px; }
.spend-total h2 { font-size: 16px; color: var(--ink-2); }
.spend-total .big { font-size: 44px; font-weight: 750; font-stretch: 112%; font-variant-numeric: tabular-nums; line-height: 1.1; }
.spend-total .sub { font-size: 14px; color: var(--muted); }
.spend-chart { flex: 2 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.bars { display: flex; gap: 4px; height: 150px; align-items: stretch; }
.bars .col { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; }
.bars .col i { display: block; width: 100%; max-width: 22px; background: var(--river); border-radius: 3px 3px 0 0; }
.bars .col.peak i { background: var(--amber); }
.bars-axis { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: 13px; color: var(--muted); }
.split { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
.split > .panel { margin-bottom: 0; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.split > .wide-col { flex: 3 1 520px; }
.split > .narrow-col { flex: 2 1 300px; }
.cap-cell { display: flex; align-items: center; gap: 8px; min-width: 140px; }
.cap-cell .meter { flex: 1; min-width: 90px; }
.cap-cell .num { font-size: 13px; }
.cap-cell .num.hot { font-weight: 600; color: var(--no); }
.pending-list { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.pending-list li { display: flex; flex-direction: column; gap: 8px; padding-bottom: 14px; border-bottom: 1px solid var(--line-soft); }
.pending-list li:last-child { border-bottom: 0; padding-bottom: 0; }
.pending-list .who { font-weight: 600; }
.pending-list .meta { font-size: 13px; color: var(--muted); overflow-wrap: anywhere; }
.btn-row { display: flex; flex-wrap: wrap; gap: 6px; }
.btn-row button { padding: 0 12px; font-size: 14px; white-space: nowrap; }
.tag.activa { background: var(--ok-soft); color: var(--ok); }
.tag.pendiente { background: var(--amber-soft); color: var(--amber-ink); }
.tag.suspendida { background: var(--line-soft); color: var(--ink-2); }
.tag.rechazada { background: var(--no-soft); color: var(--no); }
.user-cell .who { font-weight: 600; }
.user-cell .meta { font-size: 13px; color: var(--muted); overflow-wrap: anywhere; }
input.cap { width: 88px; text-align: right; padding: 0 10px; }
.accounts th { white-space: normal; }
.accounts th, .accounts td { padding-left: 8px; padding-right: 8px; }
.accounts select { width: auto; min-width: 112px; padding: 0 8px; }
.accounts .user-cell { min-width: 140px; }
.accounts .btn-row { flex-direction: column; align-items: stretch; min-width: 120px; }
.accounts .btn-row button { white-space: normal; padding: 6px 10px; }
.foot-note { font-size: 14px; color: var(--muted); }
.opts { display: flex; flex-wrap: wrap; gap: 12px; }
label.opt { flex: 1 1 260px; display: flex; gap: 12px; align-items: flex-start; border: 1px solid var(--line); border-radius: 8px; padding: 16px; cursor: pointer; margin: 0; font-weight: 400; }
label.opt:has(input:checked) { border: 2px solid var(--river); padding: 15px; background: var(--paper-2); }
label.opt input { margin: 2px 0 0; flex: none; }
.opt-text { display: flex; flex-direction: column; gap: 4px; }
.opt-text .t { font-weight: 650; font-size: 15px; }
.fld-row { display: flex; flex-wrap: wrap; gap: 16px; }
.fld-row > .fld { flex: 1 1 260px; }
.key-row { display: flex; gap: 10px; flex-wrap: wrap; }
.key-row input { flex: 1 1 300px; width: auto; }
.conn { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; }
.conn.ok { color: var(--ok); }
.conn.no { color: var(--no); }
label.check-block { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; margin: 0; font-weight: 400; }
label.check-block input { margin: 2px 0 0; flex: none; }
.actions-end { display: flex; gap: 12px; justify-content: flex-end; flex-wrap: wrap; }
.temp-pass { display: flex; gap: 8px; flex-wrap: wrap; }
.temp-pass input { flex: 1 1 200px; width: auto; font-family: ui-monospace, Consolas, monospace; }
.sites-table td { font-size: 14px; }
.sites-table .depth { display: flex; gap: 6px; }
.sites-table .depth input { width: 84px; padding: 0 8px; }
.sites-table .btn-row { min-width: 250px; }
.sites-table .url { overflow-wrap: anywhere; min-width: 160px; }
@media (max-width: 719px) {
  .spend-total .big { font-size: 36px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
