/* ==========================================================================
   imotrack redesign design system
   Distilled from the Claude Design package ("Page propriété Imotrack").
   Warm-canvas, Schibsted Grotesk, navy sidebar, white rounded cards.
   Loaded app-wide via base.html. Custom class names are namespaced or
   distinctive enough not to clash with Bootstrap (which still ships).
   Accessibility: text colors below are all AA on their intended bg.
   ========================================================================== */

:root {
  /* canvas + ink */
  --rd-canvas:      #EAE9E4;   /* warm paper background */
  --rd-ink:         #16181D;   /* primary text (AAA on canvas/white) */
  --rd-muted:       #5A5F69;   /* secondary text — AA on white & canvas */
  --rd-muted-2:     #6E727C;   /* tertiary text: AA (>=4.5:1) on white and card-2. Darkened from #7A7F89 which fell at 4.02:1. */
  --rd-faint:       #9A9EA8;   /* decorative only: icons, never body text on light bg */

  /* surfaces */
  --rd-card:        #ffffff;
  --rd-card-2:      #FAFAF7;   /* subtle inset panel */
  --rd-border:      #E5E4DE;   /* card / divider border */
  --rd-border-2:    #E2E1DB;   /* topbar / input border */
  --rd-hover:       #F1F1ED;   /* ghost button hover */
  --rd-row-hover:   #FAFAF7;

  /* sidebar */
  --rd-nav-grad-a:  #13213A;
  --rd-nav-grad-b:  #0E1828;
  --rd-nav-text:    #C3CBD8;   /* lightened from #A9B2C2 for AA on navy */
  --rd-nav-muted:   #8C97AC;
  --rd-nav-section: #7E8BA3;   /* lightened from #5E6B82 for AA */

  /* accents */
  --rd-green:       #1E9E63;   --rd-green-soft:  #EAF6EF;  --rd-green-ink:  #126843;
  --rd-red:         #C94A4A;   --rd-red-soft:    #FBEAEA;  --rd-red-ink:    #9A2E2E;
  --rd-blue:        #3E6FE0;   --rd-blue-soft:   #ECF2FD;  --rd-blue-ink:   #214C9E;
  --rd-orange:      #C77A18;   --rd-orange-soft: #FCF3DC;  --rd-orange-ink: #8A560F;
  --rd-violet:      #7C5CE0;   --rd-violet-soft: #F2EDFC;  --rd-violet-ink: #5436A8;

  /* spacing / shape */
  --rd-radius-card: 22px;
  --rd-radius-md:   14px;
  --rd-radius-sm:   11px;
  --rd-pill:        999px;

  /* elevation */
  --rd-shadow-card: 0 1px 2px rgba(20,22,28,.05), 0 18px 40px -24px rgba(20,22,28,.2);
  --rd-shadow-pop:  0 18px 50px rgba(18,20,26,.22);

  --rd-font: 'Schibsted Grotesk', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

/* ──────────────────────────────────────────────────────────────────────────
   Base — scoped to the redesigned shell so we never fight the legacy
   landing / email templates that don't opt in.
   ────────────────────────────────────────────────────────────────────────── */
body.rd { background: var(--rd-canvas); color: var(--rd-ink); font-family: var(--rd-font); -webkit-font-smoothing: antialiased; }
body.rd ::selection { background: var(--rd-ink); color: #fff; }
.rd, .rd button, .rd input, .rd select, .rd textarea { font-family: var(--rd-font); }

/* generic helpers */
.rd-h1 { margin: 0; font-size: 30px; font-weight: 800; letter-spacing: -.02em; color: var(--rd-ink); }

/* Centred content column so card grids don't stretch edge-to-edge on wide
   monitors. Pair with .rd-grid below. */
.rd-page { max-width: 1180px; margin-left: auto; margin-right: auto; }

/* Tax-declaration export body styles now live inline in the partial
   _tax_export_body.html (co-located with its markup so they always ship
   together and cannot desync from a stale-cached redesign.css). */

/* Equal-height card grid. Fixed 3 columns on desktop (the design intent:
   3 cards per row, photos keep a sensible width), dropping to 2 then 1 on
   smaller viewports. grid-auto-rows:1fr keeps every card the same height. */
.rd-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  gap: 18px;
}
@media (max-width: 1040px) { .rd-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px)  { .rd-grid { grid-template-columns: minmax(0, 1fr); } }

/* Denser grid for simpler cards (managers): smaller cards, more per row. */
.rd-grid-dense {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(240px, 100%), 1fr));
  grid-auto-rows: 1fr;
  gap: 16px;
}
.rd-sub { font-size: 14px; font-weight: 600; color: var(--rd-muted); }
.rd-muted { color: var(--rd-muted); }
.rd-mono { font-variant-numeric: tabular-nums; }

/* ──────────────────────────────────────────────────────────────────────────
   App shell: sidebar + main
   ────────────────────────────────────────────────────────────────────────── */
.rd-shell { display: flex; min-height: 100vh; background: var(--rd-canvas); }

.rd-sidebar {
  width: 248px; flex: none;
  background: linear-gradient(180deg, var(--rd-nav-grad-a) 0%, var(--rd-nav-grad-b) 100%);
  color: var(--rd-nav-text);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
  z-index: 100;
}
.rd-sidebar .rd-brand { display: flex; align-items: center; gap: 10px; padding: 22px 22px 18px; text-decoration: none; }
.rd-nav { display: flex; flex-direction: column; gap: 2px; padding: 6px 12px; flex: 1; overflow-y: auto; }
.navi {
  display: flex; align-items: center; gap: 11px;
  padding: 10px 12px; border-radius: var(--rd-radius-sm);
  font-size: 13.5px; font-weight: 600; cursor: pointer;
  color: var(--rd-nav-text); text-decoration: none;
  background: none; border: none; text-align: left; width: 100%;
  transition: background .12s, color .12s;
}
.navi:hover { background: rgba(255,255,255,.07); color: #fff; }
.navi.active { color: #fff; font-weight: 700; background: rgba(255,255,255,.10); }
.navi svg, .navi .navi-ic { width: 18px; height: 18px; flex: none; }
.rd-nav-section {
  font-size: 10.5px; font-weight: 700; letter-spacing: .09em;
  color: var(--rd-nav-section); text-transform: uppercase;
  padding: 16px 12px 7px;
}
.rd-sidebar-foot { padding: 12px; border-top: 1px solid rgba(255,255,255,.07); }
.sb-credits { background: rgba(124,92,224,.16); border: 1px solid rgba(124,92,224,.34); border-radius: 13px; padding: 11px 12px; margin-bottom: 10px; }
.sb-credits-row { display: flex; align-items: center; justify-content: space-between; font-size: 11.5px; font-weight: 700; color: #CFC3F7; }
.sb-credits-bar { height: 6px; background: rgba(255,255,255,.14); border-radius: var(--rd-pill); margin-top: 8px; overflow: hidden; }
.sb-credits-bar > i { display: block; height: 100%; background: linear-gradient(90deg, #7C5CE0, #3E6FE0); border-radius: var(--rd-pill); }
.sb-credits-note { font-size: 11px; color: #97A1B6; font-weight: 600; margin-top: 7px; }
.sb-user { display: flex; align-items: center; gap: 10px; padding: 8px; border-radius: var(--rd-radius-sm); text-decoration: none; }
.sb-user:hover { background: rgba(255,255,255,.08); }
.sb-avatar { width: 34px; height: 34px; border-radius: var(--rd-pill); background: linear-gradient(135deg,#3E6FE0,#2BAFB6); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12.5px; font-weight: 700; flex: none; }
.sb-user-name { font-size: 13.5px; font-weight: 700; color: #fff; }
.sb-user-sub { font-size: 11.5px; color: var(--rd-nav-muted); font-weight: 600; }

.rd-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rd-content { padding: 24px 30px 80px; }

/* ──────────────────────────────────────────────────────────────────────────
   Topbar
   ────────────────────────────────────────────────────────────────────────── */
.rd-topbar {
  display: flex; align-items: center; gap: 16px;
  padding: 16px 30px;
  border-bottom: 1px solid var(--rd-border-2);
  background: rgba(234,233,228,.88); backdrop-filter: blur(6px);
  position: sticky; top: 0; z-index: 40;
}
.rd-search { flex: 1; max-width: 460px; position: relative; }
.rd-search svg { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); }
.rd-search input {
  width: 100%; border: 1px solid var(--rd-border-2); background: #fff;
  border-radius: var(--rd-pill); padding: 11px 16px 11px 40px;
  font-size: 13.5px; font-weight: 600; color: var(--rd-ink); outline: none;
}
.rd-search input::placeholder { color: var(--rd-muted-2); }
.rd-search input { text-overflow: ellipsis; } /* long placeholders clip with … not mid-letter */
.rd-spacer { flex: 1; }

/* round icon buttons (notifications, docs) */
.icon-btn {
  position: relative; width: 42px; height: 42px; border-radius: var(--rd-pill);
  background: #fff; border: 1px solid var(--rd-border-2);
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; color: var(--rd-ink); text-decoration: none;
  transition: background .12s, box-shadow .12s, border-color .12s;
}
.icon-btn:hover { background: var(--rd-hover); color: var(--rd-ink); }
.icon-badge {
  position: absolute; top: -5px; right: -5px; min-width: 17px; height: 17px;
  padding: 0 4px; border-radius: var(--rd-pill);
  color: #fff; font-size: 10px; font-weight: 800;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--rd-canvas);
}
.icon-badge.red  { background: #D83A33; }
.icon-badge.blue { background: var(--rd-blue); }

/* segmented control ("Mi parte / Vista global") */
.seg { display: inline-flex; background: #fff; border: 1px solid var(--rd-border-2); border-radius: var(--rd-radius-sm); padding: 4px; gap: 3px; box-shadow: 0 1px 2px rgba(20,22,28,.05); }
.seg > a, .seg > button {
  display: inline-flex; align-items: center; gap: 6px;
  border: none; background: none; cursor: pointer; text-decoration: none;
  border-radius: 8px; padding: 7px 13px; font-size: 12.5px; font-weight: 700;
  color: var(--rd-muted);
}
.seg > .on { background: var(--rd-ink); color: #fff; }

/* ──────────────────────────────────────────────────────────────────────────
   Buttons
   ────────────────────────────────────────────────────────────────────────── */
.qbtn { transition: background .12s, transform .12s, box-shadow .12s, border-color .12s; }
.qbtn:hover { background: var(--rd-hover); }
.rd-btn {
  display: inline-flex; align-items: center; gap: 7px;
  border-radius: var(--rd-radius-sm); padding: 11px 16px;
  font-size: 13.5px; font-weight: 700; cursor: pointer; border: 1px solid transparent;
  text-decoration: none; transition: background .12s, transform .12s, box-shadow .12s, border-color .12s;
  line-height: 1.1;
}
.rd-btn-dark   { background: var(--rd-ink); color: #fff; }
.rd-btn-dark:hover { background: #000; color: #fff; }
.rd-btn-light  { background: #fff; border-color: var(--rd-border-2); color: var(--rd-ink); }
.rd-btn-light:hover { background: var(--rd-hover); }
.rd-btn-soft   { background: #F2F1ED; color: var(--rd-muted); }
.rd-btn-soft:hover { background: #E8E7E1; }
.rd-btn-green  { background: var(--rd-green); color: #fff; }
.rd-btn-green:hover { background: #178052; color: #fff; }
.rd-btn-sm { padding: 9px 14px; font-size: 12.5px; border-radius: 10px; }
.rd-btn-block { width: 100%; justify-content: center; }

/* ──────────────────────────────────────────────────────────────────────────
   Cards
   ────────────────────────────────────────────────────────────────────────── */
.rd-card {
  background: var(--rd-card); border: 1px solid var(--rd-border);
  border-radius: var(--rd-radius-card); box-shadow: var(--rd-shadow-card);
}
.rd-card-pad { padding: 22px 24px; }
.rd-card-title { font-size: 16px; font-weight: 800; color: var(--rd-ink); }
.rd-card-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; gap: 12px; }
.rd-link { font-size: 12.5px; font-weight: 700; color: var(--rd-blue); cursor: pointer; text-decoration: none; }
.rd-link:hover { text-decoration: underline; color: var(--rd-blue); }

/* hover-lift cards (property cards, kpis) */
.kpi  { transition: transform .12s, box-shadow .12s; }
.kpi:hover  { transform: translateY(-2px); box-shadow: 0 10px 30px -10px rgba(20,22,28,.18); }
.pcard { transition: transform .14s, box-shadow .14s; }
.pcard:hover { transform: translateY(-3px); box-shadow: 0 20px 46px -22px rgba(20,22,28,.4); }

/* KPI tile */
.kpi-tile { background: #fff; border: 1px solid var(--rd-border); border-radius: var(--rd-radius-card); padding: 18px 20px; box-shadow: var(--rd-shadow-card); }
.kpi-label { font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--rd-muted-2); }
.kpi-value { font-size: 25px; font-weight: 800; letter-spacing: -.02em; margin-top: 6px; color: var(--rd-ink); }
.kpi-foot  { font-size: 11.5px; font-weight: 600; color: var(--rd-muted-2); }

/* ──────────────────────────────────────────────────────────────────────────
   Pills / badges / chips
   ────────────────────────────────────────────────────────────────────────── */
.rd-pill { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: var(--rd-pill); white-space: nowrap; }
.rd-pill.green  { background: var(--rd-green-soft);  color: var(--rd-green-ink); }
.rd-pill.red    { background: var(--rd-red-soft);    color: var(--rd-red-ink); }
.rd-pill.blue   { background: var(--rd-blue-soft);   color: var(--rd-blue-ink); }
.rd-pill.orange { background: var(--rd-orange-soft); color: var(--rd-orange-ink); }
.rd-pill.violet { background: var(--rd-violet-soft); color: var(--rd-violet-ink); }
.rd-pill.grey   { background: #F0EFEA; color: var(--rd-muted); }

/* ──────────────────────────────────────────────────────────────────────────
   Forms
   ────────────────────────────────────────────────────────────────────────── */
.rd-label { font-size: 12.5px; font-weight: 700; color: var(--rd-muted); display: block; margin-bottom: 6px; }
.fin {
  width: 100%; border: 1px solid var(--rd-border-2); border-radius: var(--rd-radius-sm);
  padding: 11px 13px; font-size: 14px; font-weight: 600; background: #fff;
  color: var(--rd-ink); outline: none; transition: border-color .14s, box-shadow .14s;
}
.fin::placeholder { color: var(--rd-muted-2); }
.fin:focus { border-color: var(--rd-ink); box-shadow: 0 0 0 3px rgba(22,24,29,.08); }
select.fin { cursor: pointer; }
.fin-group { display: flex; align-items: center; border: 1px solid var(--rd-border-2); border-radius: var(--rd-radius-sm); overflow: hidden; background: #fff; }
.fin-group input { flex: 1; border: none; padding: 11px 13px; font-size: 14px; font-weight: 600; outline: none; background: transparent; }
.fin-group .suffix { padding: 0 13px; font-size: 13px; font-weight: 600; color: var(--rd-muted-2); }

/* ──────────────────────────────────────────────────────────────────────────
   Tables / list rows
   ────────────────────────────────────────────────────────────────────────── */
.rd-table { background: #fff; border: 1px solid var(--rd-border); border-radius: 20px; box-shadow: var(--rd-shadow-card); overflow: hidden; }
.rd-thead { display: flex; gap: 12px; padding: 12px 22px; font-size: 10.5px; font-weight: 700; letter-spacing: .03em; color: var(--rd-muted-2); text-transform: uppercase; border-bottom: 1px solid #F1F0EB; }
.trow { display: flex; align-items: center; gap: 12px; padding: 13px 22px; border-bottom: 1px solid #F5F4EF; transition: background .1s; }
.trow:last-child { border-bottom: none; }
.trow:hover { background: var(--rd-row-hover); }

/* sub-tab underline nav */
.rd-tabs { display: flex; gap: 24px; border-bottom: 2px solid #E6E5DF; margin-bottom: 18px; flex-wrap: wrap; }
.rd-tab { padding: 11px 2px; font-size: 15px; font-weight: 700; background: none; border: none; border-bottom: 2px solid transparent; color: var(--rd-muted-2); cursor: pointer; margin-bottom: -2px; text-decoration: none; }
.rd-tab.on { border-bottom-color: var(--rd-ink); color: var(--rd-ink); }

/* pill sub-nav (submenu) — app-wide standard, mirrors the property page subtabs.
   Pair with .rd-tabs/.rd-tab above for the menu (text + underline) level.
   Active marker is `.on` (matches .rd-tab) or `.active`. */
.rd-subnav { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; margin-bottom: 20px; }
.rd-navpill { display: inline-flex; align-items: center; gap: 7px; background: #fff; border: 1px solid var(--rd-border); border-radius: 999px; padding: 9px 17px; font-size: 13.5px; font-weight: 700; color: var(--rd-ink); cursor: pointer; white-space: nowrap; text-decoration: none; box-shadow: 0 1px 2px rgba(20,22,28,.05); transition: background .15s, color .15s, border-color .15s; flex-shrink: 0; }
.rd-navpill:hover { background: #F4F3EF; color: var(--rd-ink); }
.rd-navpill.on, .rd-navpill.active { background: var(--rd-ink); color: #fff; border-color: var(--rd-ink); box-shadow: 0 1px 2px rgba(20,22,28,.18), 0 4px 12px -2px rgba(20,22,28,.22); }
.rd-navpill.on:hover, .rd-navpill.active:hover { background: var(--rd-ink); color: #fff; }

/* dropzone (AI import) */
.drop { transition: border-color .15s, background .15s; border: 1.5px dashed #C9BEF0; background: #FBFAFF; border-radius: var(--rd-radius-md); cursor: pointer; }
.drop:hover { border-color: var(--rd-violet); background: #FBFAFF; }

/* AI gradient ring (re-uses brand AI halo when present, fallback here) */
.rd-ai-ring { background: linear-gradient(120deg,#7C5CE0,#3E6FE0,#EC5B9E); border-radius: 18px; padding: 2px; box-shadow: 0 14px 36px -24px rgba(124,92,224,.6); }
.rd-ai-ring > .rd-ai-inner { background: #fff; border-radius: 16px; height: 100%; }
.rd-ai-badge { display: inline-flex; align-items: center; gap: 6px; background: linear-gradient(135deg,#7C5CE0,#3E6FE0); color: #fff; font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: var(--rd-pill); }

/* dropdown popover (notifications / docs buzón) */
.rd-pop { position: absolute; right: 0; top: calc(100% + 10px); background: #fff; border-radius: 16px; box-shadow: var(--rd-shadow-pop); z-index: 60; overflow: hidden; }
.rd-pop-head { display: flex; justify-content: space-between; align-items: center; padding: 15px 16px 12px; border-bottom: 1px solid #F2F1EC; }

/* sidebar scrollbar tidy */
.rd-nav::-webkit-scrollbar { width: 6px; }
.rd-nav::-webkit-scrollbar-thumb { background: rgba(255,255,255,.12); border-radius: 999px; }

/* ──────────────────────────────────────────────────────────────────────────
   Responsive — collapse sidebar on small screens (mobile drawer reuses
   legacy .mob-open / .mob-overlay machinery from base.html).
   ────────────────────────────────────────────────────────────────────────── */
@media (max-width: 767.98px) {
  .rd-sidebar {
    position: fixed; left: 0; top: 0; bottom: 0;
    transform: translateX(-100%); transition: transform .22s ease;
    box-shadow: 0 0 40px rgba(0,0,0,.3);
    /* Must sit ABOVE the .mob-overlay (z-index:199, backdrop-filter blur):
       the overlay dims/blurs the PAGE behind the drawer, not the drawer
       itself. Without this the navy drawer (legacy base z-index:100) rendered
       behind the frosted overlay, blurring its own nav text illegibly. */
    z-index: 250;
  }
  .rd-sidebar.mob-open { transform: translateX(0); }
  .rd-content { padding: 18px 16px 80px; }
  .rd-topbar { padding: 14px 16px; }
  .rd-search { max-width: none; min-width: 0; }
  /* When the lead slot holds the search, the trailing spacer was stealing
     half the free width (both flex:1), crushing the pill to a few chars
     ("Bı"). Give the search all remaining space on phones. */
  .rd-search + .rd-spacer { flex: 0 0 0px; }
}

/* The FAB is mobile-only: desktop uses the topbar "+ Añadir" button. */
@media (min-width: 768px) { .fab-wrap { display: none !important; } }

/* Logout + legal links inside the new navy sidebar foot. */
.rd-sidebar .sb-logout { display: inline-flex; align-items: center; gap: 6px; color: #FF8E8E; text-decoration: none; padding: .32rem .7rem; border-radius: 8px; font-size: .8rem; transition: background .12s; }
.rd-sidebar .sb-logout:hover { background: rgba(255,142,142,.12); color: #FF8E8E; }
.rd-sidebar .sidebar-footer-legal { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: .58rem; line-height: 1.3; margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,.08); }
.rd-sidebar .sidebar-footer-legal a { color: rgba(255,255,255,.6); text-decoration: none; white-space: nowrap; }
.rd-sidebar .sidebar-footer-legal a:hover { color: #fff; }
.rd-sidebar .sidebar-footer-legal .sep { color: rgba(255,255,255,.25); }
.rd-sidebar .sidebar-footer-legal .copy { color: rgba(255,255,255,.4); white-space: nowrap; }

/* ──────────────────────────────────────────────────────────────────────────
   Auth split-panel (login / register / forgot / reset). Breaks out of the
   legacy .container via the 100vw trick so the navy brand panel is full-bleed.
   ────────────────────────────────────────────────────────────────────────── */
.rd-auth { width: 100vw; margin-left: calc(50% - 50vw); display: flex; min-height: 100vh; background: var(--rd-canvas); }
.rd-auth-brand {
  width: 46%; max-width: 620px; flex: none;
  background: linear-gradient(160deg, #13213A 0%, #0E1828 60%, #0B1322 100%);
  color: #fff; display: flex; flex-direction: column; justify-content: space-between;
  padding: 42px 48px; position: relative; overflow: hidden;
}
.rd-auth-brand .glow1 { position: absolute; top: -80px; right: -80px; width: 280px; height: 280px; border-radius: 999px; background: radial-gradient(circle, rgba(124,92,224,.35), transparent 70%); }
.rd-auth-brand .glow2 { position: absolute; bottom: -60px; left: -40px; width: 240px; height: 240px; border-radius: 999px; background: radial-gradient(circle, rgba(62,111,224,.28), transparent 70%); }
.rd-auth-brand h1 { font-size: 34px; font-weight: 800; letter-spacing: -.03em; line-height: 1.12; margin: 0 0 16px; max-width: 420px; }
.rd-auth-brand p.lead { font-size: 15px; font-weight: 500; color: #A9B2C2; line-height: 1.55; max-width: 400px; margin: 0 0 28px; }
.rd-auth-brand .feat { display: flex; align-items: center; gap: 11px; font-size: 14px; font-weight: 600; color: #D5DAE3; margin-bottom: 13px; }
.rd-auth-brand .feat .tick { width: 24px; height: 24px; border-radius: 7px; background: rgba(43,182,115,.18); color: #5FD79B; display: flex; align-items: center; justify-content: center; flex: none; }
.rd-auth-brand .foot { position: relative; font-size: 12.5px; font-weight: 500; color: #6E7A90; }
.rd-auth-form { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 28px; }
.rd-auth-form-inner { width: 100%; max-width: 380px; }
.rd-auth h2 { font-size: 25px; font-weight: 800; letter-spacing: -.02em; margin: 0 0 6px; color: var(--rd-ink); }
.rd-auth .sub { font-size: 14px; font-weight: 600; color: var(--rd-muted); margin: 0 0 24px; }
.gbtn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; border: 1px solid #DCDBD3; background: #fff; border-radius: 12px; padding: 12px; font-size: 14px; font-weight: 700; color: #3C4043; cursor: pointer; text-decoration: none; transition: background .12s, border-color .12s; }
.gbtn:hover { background: #FAFAF8; border-color: #C9C8C0; }
.rd-auth-or { display: flex; align-items: center; gap: 12px; margin: 20px 0; }
.rd-auth-or > span { font-size: 12px; font-weight: 600; color: var(--rd-muted-2); }
.rd-auth-or > .ln { flex: 1; height: 1px; background: #DEDDD6; }
.rd-auth .pw-toggle { border: none; background: none; padding: 0 13px; cursor: pointer; color: var(--rd-muted-2); }
.rd-auth .lang-row { display: flex; justify-content: center; gap: 8px; margin-top: 28px; }
.rd-auth .lang-row a { font-size: 12.5px; font-weight: 600; color: var(--rd-muted-2); border: 1px solid transparent; border-radius: 999px; padding: 4px 12px; cursor: pointer; text-decoration: none; }
.rd-auth .lang-row a.active { color: var(--rd-ink); font-weight: 700; border-color: #D8D7CF; background: #fff; }
@media (max-width: 860px) { .rd-auth-brand { display: none; } }

/* ──────────────────────────────────────────────────────────────────────────
   Property-detail 2-level nav: 4 section pills + per-section subtab strips
   ────────────────────────────────────────────────────────────────────────── */
.prop-section-nav { margin-top: 26px; margin-bottom: 0; }
/* Both classes (.prop-tab-nav.prop-subtab-strip) to beat the inline
   .prop-tab-nav{display:flex} rule that loads after redesign.css. */
.prop-tab-nav.prop-subtab-strip { display: none; margin-top: 12px; }
.prop-tab-nav.prop-subtab-strip.section-active { display: flex; }

/* KPI hero (cash flow): full-width emphasis above the 3 support cards. */
.stat-card-hero { padding: 18px 22px; }
.stat-card-hero .stat-lbl { font-size: .82rem; }
.stat-card-hero .stat-val { font-size: 2.1rem; line-height: 1.05; }
/* "Indicadores" sub-heading separating demoted metrics (occupation/gain). */
.kpi-indicadores-head { font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rd-muted-2); margin: 4px 2px -4px; }
