/* =====================================================================
   IMOB — Painel Admin
   ===================================================================== */
:root{
  --navy:#0E1A2B; --navy-2:#13233A; --navy-3:#0A1422; --navy-soft:#1B2E47;
  --cream:#EEE9DF; --paper:#F3F1EC; --ink:#14202E; --ink-soft:#5a6675;
  --champagne:#C7A977; --champagne-d:#A98948; --line:rgba(20,32,46,.12);
  --line-gold:rgba(199,169,119,.28);
  --ok:#2f7d4f; --err:#b3463a; --warn:#b8862b;
  --radius:4px; --sidebar:16rem;
  --font-serif:"Cormorant Garamond",Georgia,serif;
  --font-sans:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --t:.25s cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ font-size:100%; }
body{ font-family:var(--font-sans); font-size:.92rem; line-height:1.6; color:var(--ink); background:var(--paper); -webkit-font-smoothing:antialiased; }
a{ color:inherit; text-decoration:none; }
img{ display:block; max-width:100%; }
button{ cursor:pointer; font:inherit; border:none; background:none; }
h1,h2,h3{ font-family:var(--font-serif); font-weight:600; line-height:1.1; }
::selection{ background:var(--champagne); color:var(--navy); }

/* ---------- Login ---------- */
.login-wrap{ min-height:100vh; display:grid; place-items:center; padding:1.5rem;
  background:linear-gradient(160deg,var(--navy) 0%, var(--navy-3) 100%); }
.login-card{ width:100%; max-width:26rem; background:#fff; border-radius:var(--radius); padding:clamp(1.8rem,5vw,3rem); box-shadow:0 2rem 5rem -1rem rgba(0,0,0,.5); }
.login-card .brand{ font-family:var(--font-serif); font-size:2.2rem; color:var(--navy); text-align:center; margin-bottom:.2rem; }
.login-card .brand b span{ color:var(--champagne); }
.login-card .sub{ text-align:center; color:var(--ink-soft); font-size:.78rem; letter-spacing:.2em; text-transform:uppercase; margin-bottom:2rem; }

/* ---------- Layout ---------- */
.layout{ display:grid; grid-template-columns:var(--sidebar) 1fr; min-height:100vh; }
.sidebar{ background:var(--navy); color:var(--cream); position:sticky; top:0; height:100vh; display:flex; flex-direction:column; padding:1.5rem 0; }
.sidebar__brand{ font-family:var(--font-serif); font-size:1.8rem; padding:0 1.5rem 1.5rem; border-bottom:1px solid var(--line-gold); margin-bottom:1rem; }
.sidebar__brand span{ color:var(--champagne); }
.sidebar__brand small{ display:block; font-family:var(--font-sans); font-size:.55rem; letter-spacing:.3em; text-transform:uppercase; color:var(--champagne); margin-top:.2rem; }
.sidebar nav{ flex:1; display:flex; flex-direction:column; gap:.15rem; padding:0 .8rem; }
.sidebar nav a{ display:flex; align-items:center; gap:.8rem; padding:.75rem 1rem; border-radius:var(--radius); color:rgba(238,233,223,.75); font-size:.82rem; letter-spacing:.04em; transition:var(--t); }
.sidebar nav a:hover{ background:var(--navy-soft); color:var(--cream); }
.sidebar nav a.active{ background:var(--champagne); color:var(--navy); font-weight:600; }
.sidebar nav a svg{ width:1.15rem; height:1.15rem; flex-shrink:0; }
.sidebar__foot{ padding:1rem .8rem 0; border-top:1px solid var(--line-gold); margin-top:1rem; display:flex; flex-direction:column; gap:.15rem; }
.sidebar__foot a{ display:flex; align-items:center; gap:.8rem; padding:.65rem 1rem; border-radius:var(--radius); color:rgba(238,233,223,.7); font-size:.8rem; transition:var(--t); }
.sidebar__foot a:hover{ background:var(--navy-soft); color:var(--cream); }
.sidebar__foot svg{ width:1.1rem; height:1.1rem; }

.main{ padding:clamp(1.2rem,3vw,2.5rem); min-width:0; }
.topbar{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:2rem; flex-wrap:wrap; }
.topbar h1{ font-size:clamp(1.6rem,3vw,2.2rem); color:var(--navy); }
.topbar .sub{ color:var(--ink-soft); font-size:.85rem; }
.mobile-bar{ display:none; align-items:center; justify-content:space-between; background:var(--navy); color:var(--cream); padding:.8rem 1.2rem; }
.mobile-bar .brand{ font-family:var(--font-serif); font-size:1.4rem; }
.mobile-bar .brand span{ color:var(--champagne); }
.menu-btn{ color:var(--cream); display:grid; place-items:center; width:2.5rem; height:2.5rem; }

/* ---------- Cards de estatística ---------- */
.stat-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap:1rem; margin-bottom:2rem; }
.stat-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem 1.5rem; position:relative; overflow:hidden; }
.stat-card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--champagne); }
.stat-card .n{ font-family:var(--font-serif); font-size:2.4rem; color:var(--navy); line-height:1; }
.stat-card .l{ font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); margin-top:.4rem; }
.stat-card .ico{ position:absolute; right:1rem; top:1rem; width:1.5rem; height:1.5rem; color:var(--champagne); opacity:.5; }

/* ---------- Painel / tabela ---------- */
.panel{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-bottom:1.5rem; }
.panel__head{ display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.1rem 1.4rem; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.panel__head h2{ font-size:1.3rem; color:var(--navy); }
.panel__body{ padding:1.4rem; }
.table-wrap{ overflow-x:auto; }
table.data{ width:100%; border-collapse:collapse; font-size:.85rem; }
table.data th{ text-align:left; font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); padding:.8rem 1rem; border-bottom:1px solid var(--line); white-space:nowrap; }
table.data td{ padding:.8rem 1rem; border-bottom:1px solid var(--line); vertical-align:middle; }
table.data tr:last-child td{ border-bottom:none; }
table.data tr:hover td{ background:#faf9f6; }
.thumb-sm{ width:4rem; height:3rem; object-fit:cover; border-radius:2px; background:var(--navy-2); }
.t-title{ font-weight:600; color:var(--navy); }
.t-ref{ font-size:.72rem; color:var(--ink-soft); }
.price{ font-family:var(--font-serif); font-size:1.1rem; color:var(--navy); white-space:nowrap; }

/* ---------- Badges / pills ---------- */
.pill{ display:inline-block; padding:.25em .7em; border-radius:2rem; font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; font-weight:600; }
.pill--ok{ background:#e6f2ea; color:var(--ok); }
.pill--warn{ background:#f7eedb; color:var(--warn); }
.pill--off{ background:#f1e4e2; color:var(--err); }
.pill--muted{ background:#eceef1; color:var(--ink-soft); }
.pill--gold{ background:var(--champagne); color:var(--navy); }

/* ---------- Botões ---------- */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5em; padding:.65rem 1.2rem; border-radius:var(--radius); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; background:var(--navy); color:var(--cream); border:1px solid var(--navy); transition:var(--t); white-space:nowrap; }
.btn:hover{ background:var(--navy-soft); }
.btn--gold{ background:var(--champagne); color:var(--navy); border-color:var(--champagne); }
.btn--gold:hover{ background:var(--champagne-d); color:#fff; }
.btn--ghost{ background:transparent; color:var(--navy); border-color:var(--line); }
.btn--ghost:hover{ border-color:var(--navy); background:#faf9f6; }
.btn--danger{ background:transparent; color:var(--err); border-color:rgba(179,70,58,.4); }
.btn--danger:hover{ background:var(--err); color:#fff; border-color:var(--err); }
.btn--sm{ padding:.45rem .8rem; font-size:.66rem; }
.btn svg{ width:1em; height:1em; }
.btn--block{ width:100%; }
.actions-row{ display:flex; gap:.4rem; flex-wrap:wrap; }

/* ---------- Form ---------- */
.form-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr)); gap:1rem 1.2rem; }
.fld{ display:flex; flex-direction:column; }
.fld.col-2{ grid-column:span 2; }
.fld.col-full{ grid-column:1 / -1; }
.fld label{ font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--champagne-d); font-weight:600; margin-bottom:.4rem; }
.fld input, .fld select, .fld textarea{ width:100%; padding:.7rem .85rem; border:1px solid var(--line); border-radius:var(--radius); background:#fff; color:var(--ink); font-size:.9rem; transition:border-color var(--t); }
.fld input:focus, .fld select:focus, .fld textarea:focus{ outline:none; border-color:var(--champagne); }
.fld textarea{ resize:vertical; min-height:5rem; }
.fld .hint{ font-size:.72rem; color:var(--ink-soft); margin-top:.3rem; }
fieldset{ border:1px solid var(--line); border-radius:var(--radius); padding:1.3rem; margin-bottom:1.5rem; }
fieldset legend{ font-family:var(--font-serif); font-size:1.25rem; color:var(--navy); padding:0 .6rem; }
.check-inline{ display:inline-flex; align-items:center; gap:.5rem; cursor:pointer; }
.check-inline input{ width:auto; }

/* Características (chips) */
.feature-chips{ display:flex; flex-wrap:wrap; gap:.5rem; }
.feature-chips label{ cursor:pointer; }
.feature-chips input{ position:absolute; opacity:0; }
.feature-chips span{ display:inline-block; padding:.4rem .85rem; border:1px solid var(--line); border-radius:2rem; font-size:.8rem; color:var(--ink-soft); transition:var(--t); }
.feature-chips input:checked + span{ background:var(--navy); color:var(--cream); border-color:var(--navy); }

/* Upload de imagens */
.uploader{ border:2px dashed var(--line-gold); border-radius:var(--radius); padding:2rem 1.5rem; text-align:center; transition:var(--t); background:#fbfaf7; cursor:pointer; }
.uploader.drag{ border-color:var(--champagne); background:#f6efe0; }
.uploader svg{ width:2.2rem; height:2.2rem; color:var(--champagne); margin:0 auto .8rem; }
.uploader b{ color:var(--navy); }
.uploader input{ display:none; }
.img-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(8rem,1fr)); gap:.8rem; margin-top:1.2rem; }
.img-item{ position:relative; aspect-ratio:4/3; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); background:var(--navy-2); }
.img-item img{ width:100%; height:100%; object-fit:cover; }
.img-item__bar{ position:absolute; inset:auto 0 0 0; display:flex; gap:.2rem; padding:.3rem; background:linear-gradient(transparent,rgba(0,0,0,.7)); }
.img-item__bar button{ flex:1; color:#fff; font-size:.6rem; letter-spacing:.06em; text-transform:uppercase; padding:.3rem; border-radius:2px; background:rgba(255,255,255,.12); transition:var(--t); }
.img-item__bar button:hover{ background:rgba(255,255,255,.28); }
.img-item__bar .del:hover{ background:var(--err); }
.img-item.is-cover{ outline:2px solid var(--champagne); outline-offset:-2px; }
.img-item .cover-flag{ position:absolute; top:.4rem; left:.4rem; background:var(--champagne); color:var(--navy); font-size:.58rem; letter-spacing:.08em; text-transform:uppercase; font-weight:700; padding:.2rem .5rem; border-radius:2px; }

.form-foot{ display:flex; gap:.8rem; justify-content:flex-end; flex-wrap:wrap; margin-top:1rem; position:sticky; bottom:0; background:var(--paper); padding:1rem 0; }

/* Alerts */
.alert{ padding:.9rem 1.2rem; border-radius:var(--radius); margin-bottom:1.2rem; font-size:.88rem; border:1px solid; }
.alert--ok{ background:#e9f4ee; border-color:#bfe0cd; color:var(--ok); }
.alert--err{ background:#f8e8e6; border-color:#e6c3bd; color:var(--err); }
.alert--info{ background:#eaf0f7; border-color:#c7d6ea; color:#2f4a6b; }

.empty-state{ text-align:center; padding:3rem 1rem; color:var(--ink-soft); }
.empty-state svg{ width:2.6rem; height:2.6rem; color:var(--champagne); margin:0 auto 1rem; }

.search-inline{ display:flex; gap:.5rem; }
.search-inline input{ padding:.55rem .85rem; border:1px solid var(--line); border-radius:var(--radius); font-size:.85rem; min-width:14rem; }
.search-inline input:focus{ outline:none; border-color:var(--champagne); }

.lead-msg{ color:var(--ink-soft); font-size:.85rem; max-width:30rem; }

.backdrop{ display:none; position:fixed; inset:0; background:rgba(8,14,22,.5); z-index:40; }

/* ---------- Responsivo ---------- */
@media (max-width: 56rem){
  .layout{ grid-template-columns:1fr; }
  .sidebar{ position:fixed; left:0; top:0; z-index:50; width:var(--sidebar); transform:translateX(-100%); transition:var(--t); }
  .sidebar.is-open{ transform:translateX(0); }
  .backdrop.is-open{ display:block; }
  .mobile-bar{ display:flex; }
  .fld.col-2{ grid-column:span 1; }
}
