/* ============================================================================
   SERRA — Sistema de design
   Aluguel Quixadá · Gestão de Aluguéis
   Montanhas em camadas, névoa e verdes minimalistas. Tipografia do sistema
   (San Francisco no Apple, Inter nas demais plataformas).
   ========================================================================== */

/* ----- Tokens · modo escuro (floresta à noite) --------------------------- */
:root{
  /* superfícies — verde-floresta profundo */
  --void:#0d1411;
  --stone:#131d18;
  --stone-2:#1a261f;
  --stone-3:#213027;
  --edge:#2a3b32;          /* hairlines / contornos */
  --edge-2:#3a5046;
  /* texto */
  --bone:#e9f1ea;          /* primário — névoa clara */
  --sand:#94a89c;          /* secundário — sálvia */
  --sand-dim:#6b7e73;
  /* acentos */
  --ember:#4fa97c;         /* esmeralda — ação primária */
  --ember-2:#3c8e64;
  --ember-soft:rgba(79,169,124,.15);
  --gilt:#8fc7a6;          /* jade claro — valores / destaque */
  --gilt-soft:rgba(143,199,166,.14);
  --dusk:#57a89b;          /* verde-água — informação */
  --dusk-soft:rgba(87,168,155,.14);
  --moss:#6fbb8c;          /* disponível / positivo */
  --moss-soft:rgba(111,187,140,.14);
  --rust:#d98363;          /* perigo (terracota suave p/ contraste) */
  --rust-soft:rgba(217,131,99,.14);

  --r:14px; --r-sm:9px; --r-lg:20px;
  --shadow:0 22px 48px -28px rgba(0,0,0,.7);
  --shadow-sm:0 8px 22px -16px rgba(0,0,0,.55);
  --ff-display:-apple-system,BlinkMacSystemFont,'SF Pro Display','Inter',system-ui,'Segoe UI',Roboto,sans-serif;
  --ff-ui:-apple-system,BlinkMacSystemFont,'SF Pro Text','Inter',system-ui,'Segoe UI',Roboto,sans-serif;
  --ff-mono:ui-monospace,'SF Mono','JetBrains Mono','Space Mono',Menlo,monospace;
  --side-w:266px;
  --topbar-h:70px;
}

/* ----- Tokens · modo claro (névoa da serra) ------------------------------ */
html[data-theme="light"]{
  --void:#eef3ee;
  --stone:#ffffff;
  --stone-2:#f3f8f3;
  --stone-3:#e8f0e9;
  --edge:#dae5dc;
  --edge-2:#c2d3c6;
  --bone:#16241d;
  --sand:#566b60;
  --sand-dim:#8ba395;
  --ember:#2f8a5e;
  --ember-2:#236d49;
  --ember-soft:rgba(47,138,94,.10);
  --gilt:#357a59;
  --gilt-soft:rgba(53,122,89,.12);
  --dusk:#2e7d6e;
  --dusk-soft:rgba(46,125,110,.12);
  --moss:#3f8a5c;
  --moss-soft:rgba(63,138,92,.12);
  --rust:#b5552f;
  --rust-soft:rgba(181,85,47,.10);
  --shadow:0 22px 44px -30px rgba(25,55,40,.28);
  --shadow-sm:0 8px 20px -16px rgba(25,55,40,.22);
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:var(--ff-ui);
  background:var(--void);
  color:var(--bone);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  line-height:1.5;
  min-height:100vh;
}
/* sol poente: brilho âmbar muito tênue no alto da página */
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(120% 80% at 78% -20%, rgba(79,169,124,.10), transparent 55%);
}
a{color:inherit;text-decoration:none;}
::selection{background:var(--ember-soft);color:var(--bone);}

/* ====================================================================== */
/* LAYOUT — o monólito (sidebar) + conteúdo                                */
/* ====================================================================== */
.app{display:flex;min-height:100vh;position:relative;z-index:1;}

/* --- O MONÓLITO: laje vertical fixa à esquerda --- */
.monolith{
  position:fixed;top:0;left:0;bottom:0;width:var(--side-w);z-index:40;
  display:flex;flex-direction:column;
  background:linear-gradient(95deg, #0a120e 0%, var(--stone) 62%, var(--stone-2) 100%);
  border-right:1px solid var(--edge);
}
html[data-theme="light"] .monolith{
  background:linear-gradient(100deg, #14241c 0%, #1b2f24 70%, #21382b 100%);
  color:#eef5ef;
}
/* face iluminada no gume direito (cume pegando luz) */
.monolith::after{
  content:"";position:absolute;top:0;right:0;width:1px;height:100%;
  background:linear-gradient(180deg, transparent, rgba(111,187,140,.5) 40%, rgba(143,199,166,.32) 75%, transparent);
}

.mono-brand{padding:26px 22px 22px;display:flex;align-items:center;gap:13px;}
.mono-brand .glyph{flex:0 0 auto;width:40px;height:34px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));}
.mono-brand .wm{display:flex;flex-direction:column;line-height:1;}
.mono-brand .wm b{
  font-family:var(--ff-display);font-weight:600;font-size:22px;letter-spacing:.5px;
  color:#eef5ef;font-optical-sizing:auto;
}
.mono-brand .wm span{
  font-family:var(--ff-mono);font-size:9.5px;letter-spacing:2.4px;text-transform:uppercase;
  color:var(--gilt);margin-top:6px;
}

.mono-nav{flex:1;overflow-y:auto;padding:8px 14px 14px;}
.mono-nav::-webkit-scrollbar{width:6px;}
.mono-nav::-webkit-scrollbar-thumb{background:var(--edge-2);border-radius:3px;}
.nav-group{margin-top:18px;}
.nav-group .gl{
  font-family:var(--ff-mono);font-size:9.5px;letter-spacing:2px;text-transform:uppercase;
  color:var(--sand-dim);padding:0 12px 8px;
}
html[data-theme="light"] .nav-group .gl{color:rgba(233,241,234,.45);}
.nav-item{
  display:flex;align-items:center;gap:12px;position:relative;
  padding:11px 13px;border-radius:10px;margin-bottom:2px;
  color:rgba(233,241,234,.72);font-size:14px;font-weight:500;
  transition:background .15s, color .15s;
}
.monolith .nav-item{color:rgba(233,241,234,.66);}
.nav-item i{width:19px;text-align:center;font-size:15px;opacity:.85;}
.nav-item:hover{background:rgba(233,241,234,.06);color:#eef5ef;}
.nav-item.active{background:rgba(233,241,234,.07);color:#fff;}
.nav-item.active::before{
  content:"";position:absolute;left:-14px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;
  background:linear-gradient(180deg,var(--ember),var(--gilt));box-shadow:0 0 14px var(--ember);
}
.nav-item.active i{opacity:1;color:var(--ember);}
.nav-item .tag{
  margin-left:auto;font-family:var(--ff-mono);font-size:10px;
  background:rgba(233,241,234,.10);color:#eef5ef;padding:2px 7px;border-radius:20px;
}

.mono-range{margin-top:auto;height:74px;line-height:0;pointer-events:none;}
.mono-range svg{width:100%;height:100%;display:block;}
.mono-foot{padding:14px;border-top:1px solid rgba(233,241,234,.08);}
.mono-user{display:flex;align-items:center;gap:11px;padding:8px 6px;}
.mono-user .av{
  width:38px;height:38px;border-radius:10px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--ember),var(--gilt));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--ff-display);font-weight:600;color:#0d1411;font-size:16px;
}
.mono-user .uw{min-width:0;line-height:1.25;}
.mono-user .uw b{display:block;font-size:13px;font-weight:600;color:#eef5ef;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mono-user .uw span{font-size:11px;color:rgba(233,241,234,.5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;}
.mono-logout{
  display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:10px;
  padding:9px;border-radius:9px;border:1px solid rgba(233,241,234,.12);
  color:rgba(233,241,234,.72);background:transparent;cursor:pointer;font-size:13px;font-weight:500;
  font-family:inherit;transition:.15s;
}
.mono-logout:hover{border-color:var(--rust);color:var(--rust);background:var(--rust-soft);}

/* --- Coluna de conteúdo --- */
.canvas{flex:1;min-width:0;margin-left:var(--side-w);display:flex;flex-direction:column;}

.topbar{
  height:var(--topbar-h);position:sticky;top:0;z-index:30;
  display:flex;align-items:center;gap:16px;padding:0 32px;
  background:color-mix(in srgb, var(--void) 82%, transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--edge);
}
.topbar .burger{display:none;background:none;border:none;color:var(--bone);font-size:20px;cursor:pointer;}
.topbar .crumb{display:flex;flex-direction:column;line-height:1.2;min-width:0;}
.topbar .crumb .ey{font-family:var(--ff-mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--gilt);}
.topbar .crumb h1{margin:3px 0 0;font-family:var(--ff-display);font-weight:560;font-size:20px;letter-spacing:.2px;color:var(--bone);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.topbar .spacer{flex:1;}
.icon-btn{
  width:40px;height:40px;border-radius:11px;border:1px solid var(--edge);background:var(--stone);
  color:var(--sand);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:15px;transition:.15s;
}
.icon-btn:hover{color:var(--bone);border-color:var(--edge-2);}
.topbar .today{font-family:var(--ff-mono);font-size:12px;color:var(--sand);letter-spacing:.5px;}

.page{padding:34px 32px 60px;max-width:1320px;width:100%;}

/* ====================================================================== */
/* TÍPOGRAFIA & CABEÇALHO DE PÁGINA                                        */
/* ====================================================================== */
.page-head{margin-bottom:26px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;}
.page-head .pt-eyebrow{font-family:var(--ff-mono);font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:var(--gilt);}
.page-head h2{font-family:var(--ff-display);font-weight:560;font-size:30px;letter-spacing:.2px;margin:8px 0 0;color:var(--bone);}
.page-head p{margin:7px 0 0;color:var(--sand);font-size:14.5px;max-width:60ch;}

.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 16px;}
.section-head h3{font-family:var(--ff-display);font-weight:560;font-size:19px;margin:0;color:var(--bone);}
.eyebrow{font-family:var(--ff-mono);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--sand-dim);}

/* ====================================================================== */
/* BLOCOS DE ESTATÍSTICA (lajes de pedra)                                  */
/* ====================================================================== */
.slabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:30px;}
.slab{
  position:relative;background:var(--stone);border:1px solid var(--edge);border-radius:var(--r);
  padding:20px 20px 18px;overflow:hidden;box-shadow:var(--shadow-sm);
}
.slab::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--edge-2),transparent);}
.slab .sl-lbl{font-family:var(--ff-mono);font-size:10px;letter-spacing:1.6px;text-transform:uppercase;color:var(--sand-dim);}
.slab .sl-val{font-family:var(--ff-display);font-weight:600;font-size:34px;line-height:1;margin-top:12px;color:var(--bone);}
.slab .sl-val.sm{font-size:26px;}
.slab .sl-foot{margin-top:10px;font-size:12.5px;color:var(--sand);display:flex;align-items:center;gap:6px;}
.slab .sl-ic{position:absolute;right:16px;top:16px;font-size:18px;opacity:.5;}
.slab.is-ember .sl-val{color:var(--ember);} .slab.is-ember .sl-ic{color:var(--ember);}
.slab.is-gilt .sl-val{color:var(--gilt);}   .slab.is-gilt .sl-ic{color:var(--gilt);}
.slab.is-dusk .sl-val{color:var(--dusk);}   .slab.is-dusk .sl-ic{color:var(--dusk);}
.slab.is-moss .sl-val{color:var(--moss);}   .slab.is-moss .sl-ic{color:var(--moss);}

/* ====================================================================== */
/* BOTÕES                                                                  */
/* ====================================================================== */
.btn{
  display:inline-flex;align-items:center;gap:8px;border:1px solid transparent;cursor:pointer;
  font-family:inherit;font-weight:600;font-size:13.5px;padding:10px 17px;border-radius:10px;
  transition:.15s;white-space:nowrap;line-height:1;
}
.btn i{font-size:13px;}
.btn-primary{background:linear-gradient(135deg,var(--ember),var(--ember-2));color:#fff;box-shadow:0 10px 22px -12px var(--ember);}
.btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px);}
.btn-ghost{background:var(--stone);border-color:var(--edge);color:var(--bone);}
.btn-ghost:hover{border-color:var(--edge-2);background:var(--stone-2);}
.btn-danger{background:transparent;border-color:var(--rust);color:var(--rust);}
.btn-danger:hover{background:var(--rust);color:#fff;}
.btn-sm{padding:7px 12px;font-size:12.5px;border-radius:8px;}
.btn-icon{padding:8px 10px;}

/* ====================================================================== */
/* CARTÕES DE IMÓVEL (catálogo)                                            */
/* ====================================================================== */
.grid-imoveis{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:20px;}
.card-imovel{
  background:var(--stone);border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;
  box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .18s, border-color .18s;
}
.card-imovel:hover{transform:translateY(-3px);border-color:var(--edge-2);}
.card-imovel .photo{height:188px;background:var(--stone-3) center/cover no-repeat;position:relative;display:flex;align-items:center;justify-content:center;}
.card-imovel .photo .empty{font-size:34px;color:var(--sand-dim);opacity:.5;}
.card-imovel .photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,8,5,.55));}
.badge{
  position:absolute;top:12px;left:12px;z-index:2;padding:5px 11px;border-radius:30px;font-size:11px;font-weight:700;
  letter-spacing:.4px;font-family:var(--ff-mono);text-transform:uppercase;backdrop-filter:blur(4px);
}
.badge.disp{background:var(--moss-soft);color:var(--moss);border:1px solid var(--moss);}
.badge.alug{background:var(--rust-soft);color:var(--rust);border:1px solid var(--rust);}
.card-imovel .body{padding:16px 17px;display:flex;flex-direction:column;gap:9px;flex:1;}
.card-imovel .ti{font-family:var(--ff-display);font-weight:560;font-size:17px;color:var(--bone);}
.card-imovel .price{font-family:var(--ff-display);font-weight:600;font-size:24px;color:var(--gilt);line-height:1;}
.card-imovel .price small{font-family:var(--ff-ui);font-size:12px;color:var(--sand);font-weight:500;}
.card-imovel .meta{font-size:13px;color:var(--sand);display:flex;align-items:center;gap:7px;}
.card-imovel .meta i{width:15px;color:var(--sand-dim);}
.card-imovel .meta a{color:var(--moss);}
.card-imovel .acts{display:flex;gap:8px;margin-top:auto;padding-top:6px;flex-wrap:wrap;}

/* ====================================================================== */
/* TABELAS                                                                 */
/* ====================================================================== */
.panel{background:var(--stone);border:1px solid var(--edge);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);}
.table-scroll{overflow-x:auto;}
table.tbl{width:100%;border-collapse:collapse;font-size:14px;}
table.tbl th{
  text-align:left;padding:14px 16px;background:var(--stone-2);color:var(--sand-dim);
  font-family:var(--ff-mono);font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;
  border-bottom:1px solid var(--edge);white-space:nowrap;font-weight:400;
}
table.tbl td{padding:14px 16px;border-bottom:1px solid var(--edge);vertical-align:middle;color:var(--bone);}
table.tbl tr:last-child td{border-bottom:none;}
table.tbl tbody tr{transition:background .12s;}
table.tbl tbody tr:hover td{background:var(--stone-2);}
table.tbl td strong{font-weight:600;}
table.tbl td .sub{display:block;font-family:var(--ff-mono);font-size:11px;color:var(--sand-dim);margin-top:2px;}
table.tbl tfoot td{background:var(--stone-2);font-weight:700;border-top:2px solid var(--edge-2);}
.wa{color:var(--moss);font-size:13px;}
.lk{color:var(--dusk);}

.pill{padding:4px 11px;border-radius:30px;font-size:11.5px;font-weight:700;font-family:var(--ff-mono);display:inline-block;letter-spacing:.3px;}
.pill.ok{background:var(--moss-soft);color:var(--moss);}
.pill.off{background:rgba(168,150,124,.14);color:var(--sand);}
.pill.warn{background:var(--gilt-soft);color:var(--gilt);}
.pill.late{background:var(--rust-soft);color:var(--rust);}

.empty{text-align:center;padding:64px 22px;color:var(--sand);}
.empty .mtn-empty{width:180px;max-width:64%;height:auto;display:block;margin:0 auto 18px;}
.empty i{font-size:42px;color:var(--sand-dim);opacity:.45;display:block;margin-bottom:16px;}
.empty b{display:block;font-family:var(--ff-display);font-size:18px;color:var(--bone);font-weight:560;margin-bottom:6px;}
.empty p{margin:0 0 18px;font-size:14px;}

/* ====================================================================== */
/* MENSAGENS (flash)                                                       */
/* ====================================================================== */
.flash{display:flex;align-items:center;gap:11px;padding:13px 16px;border-radius:11px;margin-bottom:20px;font-size:14px;font-weight:500;border:1px solid;}
.flash i{font-size:16px;}
.flash.ok{background:var(--moss-soft);border-color:var(--moss);color:var(--moss);}
.flash.err{background:var(--rust-soft);border-color:var(--rust);color:var(--rust);}

/* ====================================================================== */
/* MODAIS                                                                  */
/* ====================================================================== */
.modal{position:fixed;inset:0;background:rgba(7,5,3,.72);z-index:9999;display:none;align-items:flex-start;justify-content:center;padding:38px 16px;overflow-y:auto;backdrop-filter:blur(3px);}
.modal.open{display:flex;animation:fade .18s ease;}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal .box{background:var(--stone);border:1px solid var(--edge-2);border-radius:18px;width:100%;max-width:660px;box-shadow:0 40px 90px -30px rgba(0,0,0,.75);animation:rise .22s ease;}
.modal .box.lg{max-width:800px;}
@keyframes rise{from{transform:translateY(14px);opacity:.6}to{transform:translateY(0);opacity:1}}
.modal .mhead{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--edge);}
.modal .mhead h3{margin:0;font-family:var(--ff-display);font-weight:560;font-size:19px;color:var(--bone);}
.modal .mclose{background:none;border:none;color:var(--sand);font-size:24px;cursor:pointer;line-height:1;transition:.15s;}
.modal .mclose:hover{color:var(--rust);}
.modal .mbody{padding:24px;}
.modal .mfoot{padding:18px 24px;border-top:1px solid var(--edge);display:flex;justify-content:flex-end;gap:11px;}

.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.field{display:flex;flex-direction:column;gap:6px;}
.field.full{grid-column:1/-1;}
.field label{font-size:12.5px;font-weight:600;color:var(--sand);}
.field input,.field select,.field textarea{
  background:var(--stone-2);border:1px solid var(--edge);color:var(--bone);
  border-radius:9px;padding:11px 13px;font-size:14px;font-family:inherit;width:100%;transition:border-color .15s, box-shadow .15s;
}
.field input::placeholder,.field textarea::placeholder{color:var(--sand-dim);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ember);box-shadow:0 0 0 3px var(--ember-soft);}
.field textarea{resize:vertical;min-height:78px;}
.field small{font-size:11.5px;color:var(--sand-dim);}
.field small.warn{color:var(--gilt);}
.thumbs{display:flex;gap:9px;flex-wrap:wrap;margin-top:8px;}
.thumb{position:relative;width:78px;height:78px;border-radius:9px;overflow:hidden;border:1px solid var(--edge-2);}
.thumb img{width:100%;height:100%;object-fit:cover;}
.thumb button{position:absolute;top:3px;right:3px;background:rgba(221,107,80,.92);border:none;color:#fff;width:22px;height:22px;border-radius:7px;cursor:pointer;font-size:12px;line-height:1;}

/* galeria editável (arrastar / capa / excluir) */
.thumbs.gal,.thumbs.gal-new{margin-top:10px;}
.thumbs.gal .thumb{width:104px;height:104px;cursor:grab;border-radius:11px;}
.thumbs.gal .thumb.is-capa{border-color:var(--gilt);box-shadow:0 0 0 2px var(--gilt-soft);}
.thumbs.gal .thumb.dragging{opacity:.45;cursor:grabbing;}
.thumbs.gal .thumb button{position:static;}
.capa-tag{position:absolute;top:5px;left:5px;background:var(--gilt);color:#1a130a;
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.6px;text-transform:uppercase;
  padding:2px 7px;border-radius:20px;font-weight:700;}
.thumb-tools{position:absolute;left:0;right:0;bottom:0;display:flex;gap:2px;justify-content:center;
  padding:5px 4px;background:linear-gradient(transparent,rgba(10,16,13,.82));opacity:0;transition:opacity .14s;}
.thumb:hover .thumb-tools,.thumb:focus-within .thumb-tools{opacity:1;}
.thumb-tools .tg{width:24px;height:24px;border-radius:7px;border:none;cursor:pointer;
  background:rgba(255,255,255,.16);color:#fff;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;}
.thumb-tools .tg:hover{background:rgba(255,255,255,.30);}
.thumb-tools .tg.star:hover{background:var(--gilt);color:#1a130a;}
.thumb-tools .tg.del:hover{background:rgba(221,107,80,.95);}
.thumb.nova{width:104px;height:104px;border-radius:11px;border-style:dashed;}
.nova-tag{position:absolute;top:5px;left:5px;background:var(--moss,#4fa97c);color:#06140d;
  font-family:var(--ff-mono);font-size:9px;letter-spacing:.6px;text-transform:uppercase;padding:2px 7px;border-radius:20px;font-weight:700;}
@media(hover:none){ .thumb-tools{opacity:1;} }

/* visualização de imóvel */
.view-price{font-family:var(--ff-display);font-weight:600;font-size:30px;color:var(--gilt);}
.view-price small{font-family:var(--ff-ui);font-size:13px;color:var(--sand);font-weight:500;}
.view-line{margin-top:11px;color:var(--bone);font-size:14px;}
.view-line i{width:22px;color:var(--sand-dim);}
.view-gallery{display:flex;gap:9px;overflow-x:auto;margin-bottom:18px;padding-bottom:4px;}
.view-gallery img{height:210px;border-radius:11px;}

/* ====================================================================== */
/* LOGIN — o monólito ao pôr do sol                                        */
/* ====================================================================== */
.login-stage{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;position:relative;z-index:1;}
.login-art{
  position:relative;overflow:hidden;
  background:#cdded2;
  display:flex;align-items:flex-end;padding:56px;
}
.login-art .skyline{position:absolute;inset:0;width:100%;height:100%;z-index:1;}
.login-art .horizon{position:absolute;left:0;right:0;bottom:0;height:40%;z-index:2;
  background:linear-gradient(180deg, transparent, rgba(15,38,28,.55));}
.login-art .quote{position:relative;z-index:3;color:#eef5ef;max-width:24ch;}
.login-art .quote .eq{font-family:var(--ff-mono);font-size:11px;letter-spacing:2.6px;text-transform:uppercase;color:#aed6bf;}
.login-art .quote p{font-family:var(--ff-display);font-weight:600;font-size:33px;line-height:1.18;margin:16px 0 0;letter-spacing:-.8px;text-shadow:0 2px 18px rgba(0,0,0,.35);}
.login-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px;background:var(--void);}
.login-card{width:100%;max-width:392px;}
.login-card .lbrand{display:flex;align-items:center;gap:13px;margin-bottom:34px;}
.login-card .lbrand .glyph{width:40px;height:34px;}
.login-card .lbrand b{font-family:var(--ff-display);font-weight:600;font-size:22px;letter-spacing:-.4px;color:var(--bone);}
.login-card .lbrand span{display:block;font-family:var(--ff-mono);font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--gilt);margin-top:4px;}
.login-card h1{font-family:var(--ff-display);font-weight:680;font-size:33px;letter-spacing:-1px;line-height:1.05;margin:0 0 8px;color:var(--bone);}
.login-card .lsub{color:var(--sand);font-size:15px;line-height:1.5;margin:0 0 28px;}
.login-card .field{margin-bottom:16px;}
.login-card .field label{font-size:13px;font-weight:600;letter-spacing:-.1px;}
.login-card .btn-primary{width:100%;justify-content:center;padding:14px;font-size:15px;font-weight:600;letter-spacing:-.2px;margin-top:8px;}
.login-card .lfoot{margin-top:26px;font-size:12px;color:var(--sand-dim);text-align:center;font-family:var(--ff-mono);letter-spacing:.5px;}

/* ====================================================================== */
/* UTIL                                                                    */
/* ====================================================================== */
.scrim{display:none;}
@media(max-width:1024px){
  .slabs{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:860px){
  :root{--side-w:0px;}
  .monolith{transform:translateX(-100%);transition:transform .25s ease;width:266px;box-shadow:0 0 60px rgba(0,0,0,.6);}
  body.nav-open .monolith{transform:translateX(0);}
  .canvas{margin-left:0;}
  .topbar .burger{display:block;}
  .scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:39;}
  body.nav-open .scrim{display:block;}
  .login-stage{grid-template-columns:1fr;}
  .login-art{display:none;}
}
/* ── lista chave/valor (Minha Conta) ── */
.kv{margin:0;}
.kv-row{display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:13px 0;border-bottom:1px solid var(--edge);}
.kv-row:last-child{border-bottom:none;}
.kv-row dt{margin:0;font-size:12.5px;font-family:var(--ff-mono);letter-spacing:.4px;
  text-transform:uppercase;color:var(--sand-dim);}
.kv-row dd{margin:0;font-size:14.5px;color:var(--bone);text-align:right;font-weight:500;}

@media(max-width:860px){
  .dash-cols{grid-template-columns:1fr!important;}
}
@media(max-width:560px){
  .slabs{grid-template-columns:1fr;}
  .fgrid{grid-template-columns:1fr;}
  .page,.topbar{padding-left:18px;padding-right:18px;}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
}
/* ====================================================================== */
/* EMPREENDIMENTOS — grupos, cabeçalhos e unidades                         */
/* ====================================================================== */
.ph-actions{display:flex;gap:10px;flex-wrap:wrap;}
.tright{text-align:right;white-space:nowrap;}

/* ícone do empreendimento (laje com luz) */
.emp-icon{
  width:46px;height:46px;border-radius:12px;flex:0 0 auto;
  display:flex;align-items:center;justify-content:center;font-size:18px;color:#0d1411;
  background:linear-gradient(135deg,var(--ember),var(--gilt));
  box-shadow:0 8px 18px -10px var(--ember);
}
.emp-icon.ghost{background:var(--stone-3);color:var(--sand);box-shadow:none;border:1px solid var(--edge);}
.emp-icon.has-photo{background-size:cover;background-position:center;color:transparent;}

/* minimizar/expandir grupos */
.cat-toggle{flex:0 0 auto;width:30px;height:30px;border-radius:9px;cursor:pointer;
  background:var(--stone-3);border:1px solid var(--edge);color:var(--sand);
  display:flex;align-items:center;justify-content:center;font-size:13px;transition:background .14s;}
.cat-toggle:hover{background:var(--stone-2,var(--stone));color:var(--bone);}
.cat-toggle i{transition:transform .18s ease;}
.cat-group.collapsed .cat-toggle i{transform:rotate(-90deg);}
.cat-group.collapsed .cat-body{display:none;}
.cat-group.collapsed .cat-head{margin-bottom:0;}

/* chips de comodidades (formulário) */
.checkrow{display:flex;flex-wrap:wrap;gap:9px;margin-top:6px;}
.checkchip{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border-radius:11px;cursor:pointer;
  background:var(--stone-3);border:1px solid var(--edge);color:var(--sand);font-size:13px;user-select:none;transition:.14s;}
.checkchip i{color:var(--sand-dim);}
.checkchip input{accent-color:var(--moss);width:15px;height:15px;cursor:pointer;}
.checkchip:hover{border-color:var(--edge-2);color:var(--bone);}
.checkchip:has(input:checked){border-color:var(--moss);color:var(--bone);background:var(--moss-soft);}
.checkchip:has(input:checked) i{color:var(--moss);}

/* specs no card (quartos/banheiros/vagas) */
.card-imovel .meta.specs{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.meta.specs .dot-sep{opacity:.4;}
.meta.specs i{color:var(--gilt);opacity:.85;margin-right:2px;}

/* chips de características (modal "ver imóvel") */
.vfeats{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px;}
.vfeat{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:20px;font-size:12.5px;
  background:var(--stone-3);border:1px solid var(--edge);color:var(--bone);}
.vfeat i{color:var(--gilt);}

/* etiqueta "empreendimento · unidade" dentro do card de imóvel */
.emp-tag{
  display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
  font-family:var(--ff-mono);font-size:10px;letter-spacing:.5px;text-transform:uppercase;
  color:var(--gilt);background:var(--gilt-soft);padding:4px 10px;border-radius:20px;
}
.emp-tag i{font-size:10px;}

/* ── Catálogo de Imóveis: grupos (cat-*) ── */
.cat-group{margin-bottom:34px;}
.cat-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:16px 18px;margin-bottom:18px;position:relative;overflow:hidden;
  background:var(--stone);border:1px solid var(--edge);border-radius:var(--r);box-shadow:var(--shadow-sm);
}
.cat-head::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--edge-2),transparent);}
.cat-head.simple{background:transparent;border-style:dashed;box-shadow:none;}
.cat-head.simple::before{display:none;}
.cat-id{display:flex;align-items:center;gap:14px;min-width:0;}
.cat-id h3{font-family:var(--ff-display);font-weight:560;font-size:18px;margin:0;color:var(--bone);}
.cat-sub{display:flex;align-items:center;gap:7px 13px;flex-wrap:wrap;margin-top:6px;font-size:13px;color:var(--sand);}
.cat-sub i{color:var(--sand-dim);margin-right:3px;}
.cat-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.cat-empty{
  padding:22px;border:1px dashed var(--edge-2);border-radius:var(--r);
  color:var(--sand);font-size:13.5px;background:var(--stone);
}
.cat-empty strong{color:var(--bone);}

/* ── Página Empreendimentos: cartões (emp-*) ── */
.emp-list{display:flex;flex-direction:column;gap:22px;}
.emp-card{padding:0;}
.emp-top{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:18px 20px;border-bottom:1px solid var(--edge);
}
.emp-id{display:flex;align-items:flex-start;gap:14px;min-width:0;}
.emp-id h3{font-family:var(--ff-display);font-weight:560;font-size:19px;margin:0;color:var(--bone);}
.emp-sub{display:flex;align-items:center;gap:7px 13px;flex-wrap:wrap;margin-top:6px;font-size:13px;color:var(--sand);}
.emp-sub i{color:var(--sand-dim);margin-right:3px;}
.emp-owner{margin-top:8px;font-size:13px;color:var(--sand);}
.emp-owner i{color:var(--sand-dim);margin-right:4px;}
.emp-owner strong{color:var(--bone);font-weight:600;}
.emp-owner a{color:var(--moss);}
.emp-acts{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.emp-units-empty{padding:22px 20px;color:var(--sand);font-size:13.5px;}
.emp-units-empty strong{color:var(--bone);}

@media(max-width:600px){
  .cat-head,.emp-top{flex-direction:column;align-items:stretch;}
  .cat-acts,.emp-acts{justify-content:flex-start;}
}