body[data-page="admin"]{background:#f7f3ec}.admin-layout{min-height:100vh;display:grid;grid-template-columns:290px 1fr}.admin-sidebar{background:#111;color:#fff;padding:24px;position:sticky;top:0;height:100vh}.admin-sidebar .brand strong,.admin-sidebar .brand small{color:#fff}.admin-brand{margin-bottom:28px}.admin-nav{display:grid;gap:10px}.admin-tab{width:100%;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.06);color:#fff;border-radius:17px;padding:15px;text-align:left;font-weight:900}.admin-tab.active{background:var(--button);color:var(--button-text)}.admin-site-link{width:100%;margin-top:20px;border:1px solid rgba(255,255,255,.12)}.admin-content{padding:34px;min-width:0}.admin-topbar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:26px}.admin-topbar h1{font-size:clamp(32px,4vw,48px)}.admin-panel{display:none}.admin-panel.active{display:block}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stats-grid article,.admin-card,.theme-preview{background:#fff;border:1px solid var(--border);border-radius:26px;padding:22px;box-shadow:var(--shadow-soft)}.stats-grid span{display:block;color:var(--muted);font-weight:800}.stats-grid strong{display:block;font-size:34px;color:var(--title);margin-top:6px}.admin-actions{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.admin-actions h2{font-size:32px}.admin-actions p{margin:6px 0 0;color:var(--muted)}.action-row{display:flex;gap:10px;flex-wrap:wrap}.file-import{position:relative;overflow:hidden}.file-import input{position:absolute;inset:0;opacity:0;cursor:pointer}.table-tools{display:grid;grid-template-columns:1fr 260px;gap:12px;margin-bottom:18px}.admin-property-list{display:grid;gap:14px}.admin-property-card{display:grid;grid-template-columns:110px 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--border);border-radius:24px;padding:14px;box-shadow:var(--shadow-soft)}.admin-property-card img{width:110px;height:86px;object-fit:cover;border-radius:17px;background:#f1eadc}.admin-property-info h3{margin:0 0 6px;font-size:20px}.admin-property-info p{margin:0;color:var(--muted)}.admin-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.admin-tags span{border-radius:999px;padding:6px 9px;background:var(--surface-soft);border:1px solid var(--border);font-size:12px;font-weight:800}.admin-card-actions{display:flex;gap:8px}.icon-btn{border:1px solid var(--border);background:#fff;border-radius:14px;padding:10px 12px;font-weight:900}.icon-btn.danger{color:#b91c1c;border-color:#fecaca;background:#fff5f5}.appearance-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.appearance-form{display:grid;gap:14px}.appearance-form label{display:grid;gap:8px;font-weight:900}.appearance-form input[type=color]{height:52px;padding:5px}.theme-preview{min-height:300px}.theme-preview h3{font-size:34px;margin-bottom:12px}.theme-preview p{margin-bottom:22px}.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px}.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55)}.modal-dialog{position:relative;z-index:1;width:min(980px,100%);max-height:min(88vh,920px);overflow:auto;background:#fff;border-radius:34px;border:1px solid var(--border);box-shadow:var(--shadow)}.modal-header{position:sticky;top:0;z-index:2;background:#fff;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:24px;border-bottom:1px solid var(--border)}.modal-header h2{font-size:32px}.property-form{padding:24px}.check-row{display:flex!important;align-items:center;gap:10px}.check-row input{width:auto}.image-preview{margin-top:18px}.image-preview img{width:180px;height:130px;object-fit:cover;border-radius:18px;border:1px solid var(--border)}.modal-footer{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--border);padding:18px 0 0;display:flex;justify-content:flex-end;gap:10px}.toast{position:fixed;right:18px;bottom:18px;z-index:200;background:#111;color:#fff;padding:14px 18px;border-radius:16px;font-weight:800;box-shadow:var(--shadow)}@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:relative;height:auto;padding:18px}.admin-nav{grid-template-columns:repeat(3,1fr)}.admin-tab{text-align:center}.admin-content{padding:20px}.admin-topbar,.admin-actions{flex-direction:column}.admin-topbar .btn,.action-row,.action-row .btn,.file-import{width:100%}.stats-grid{grid-template-columns:repeat(2,1fr)}.table-tools,.appearance-grid{grid-template-columns:1fr}.admin-property-card{grid-template-columns:96px 1fr}.admin-card-actions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}.icon-btn{width:100%}}@media(max-width:640px){.admin-sidebar .brand{align-items:center}.admin-nav{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr}.admin-content{padding:16px}.admin-property-card{grid-template-columns:1fr}.admin-property-card img{width:100%;height:190px}.admin-card-actions{grid-template-columns:1fr}.modal{padding:0;align-items:stretch}.modal-dialog{width:100vw;min-height:100vh;max-height:100vh;border-radius:0;display:flex;flex-direction:column}.modal-header{align-items:flex-start;flex-direction:column;padding:18px}.modal-header .btn{width:100%}.property-form{flex:1;overflow:auto;padding:18px;padding-bottom:96px}.modal-footer{position:fixed;left:0;right:0;bottom:0;padding:12px;background:#fff;display:grid;grid-template-columns:1fr 1fr}.modal-footer .btn{width:100%}}


/* Proteção visual antes da validação de sessão */
html.admin-locked:not(.admin-authenticated) body[data-page="admin"] {
  visibility: hidden;
}

body[data-page="login"] {
  min-height: 100vh;
  background:
    radial-gradient(circle at 20% 10%, rgba(216, 163, 27, .18), transparent 32%),
    linear-gradient(135deg, #ffffff, #fbf7ef);
}

.login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px;
}

.login-card {
  width: min(100%, 520px);
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 34px;
  box-shadow: var(--shadow);
  padding: 30px;
}

.login-brand {
  margin-bottom: 26px;
}

.login-heading h1 {
  font-size: clamp(34px, 7vw, 52px);
}

.login-form {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.login-form label {
  display: grid;
  gap: 8px;
  color: var(--title);
  font-weight: 900;
  font-size: 14px;
}

.password-field {
  position: relative;
}

.password-field input {
  padding-right: 96px;
}

.password-field button {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border: 0;
  border-radius: 999px;
  padding: 9px 13px;
  background: var(--surface-soft);
  color: var(--title);
  font-weight: 900;
}

.login-error {
  margin: 0;
  background: #fff5f5;
  color: #b91c1c;
  border: 1px solid #fecaca;
  border-radius: 16px;
  padding: 12px 14px;
  font-weight: 800;
}

.login-note {
  margin-top: 22px;
  border-radius: 20px;
  background: var(--surface-soft);
  border: 1px solid var(--border);
  padding: 16px;
}

.login-note p {
  margin: 6px 0;
}

.login-note code {
  background: #ffffff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 2px 6px;
}

.admin-logout {
  width: 100%;
  margin-top: 10px;
  background: rgba(255,255,255,.06);
  color: #fff;
  border-color: rgba(255,255,255,.14);
}

@media (max-width: 640px) {
  .login-page {
    padding: 16px;
    align-items: stretch;
  }

  .login-card {
    min-height: calc(100vh - 32px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 28px;
    padding: 22px;
  }
}
