/* ===== Paleta de marca TIKAL Desarrolladora ===== */
:root{
  --tikal-black:#0b0d0c;
  --tikal-black-2:#17140d;
  --tikal-black-3:#211c12;
  --tikal-gold:#d9a53d;
  --tikal-gold-light:#f0c96a;
  --tikal-gold-dark:#a9791e;
  --tikal-cream:#f6f1e4;
  --tikal-body-bg:#f7f5f0;
  --tikal-muted-gold:#8a6a2c;
}

body{background:var(--tikal-body-bg);color:#1f1d19}

/* ---- Barra superior ---- */
.navbar-tikal{background:linear-gradient(180deg,#141210 0%,var(--tikal-black) 100%);border-bottom:2px solid var(--tikal-gold);box-shadow:0 2px 10px #00000040}
.navbar-tikal .navbar-brand{display:flex;align-items:center;gap:10px}
.navbar-tikal .navbar-brand img{height:34px;width:auto}
.navbar-tikal .navbar-brand .brand-sub{font-size:.68rem;letter-spacing:.06em;color:var(--tikal-gold-light);opacity:.85;text-transform:uppercase;display:block;line-height:1}
.navbar-tikal .session-info{color:var(--tikal-cream);font-size:.92rem}
.navbar-tikal .session-info b{color:var(--tikal-gold-light)}
.navbar-tikal .btn-outline-light{border-color:var(--tikal-gold);color:var(--tikal-gold-light)}
.navbar-tikal .btn-outline-light:hover{background:var(--tikal-gold);color:#1a1305;border-color:var(--tikal-gold)}

/* ---- Menú lateral ---- */
.sidebar{width:250px;min-height:calc(100vh - 58px);background:var(--tikal-black);border-right:1px solid #000;padding-top:.5rem}
.sidebar a{display:flex;align-items:center;gap:8px;color:#cfc9bd;text-decoration:none;padding:10px 14px;border-radius:8px;margin:2px 8px;font-size:.94rem;border-left:3px solid transparent}
.sidebar a:hover{background:var(--tikal-black-2);color:#fff}
.sidebar a.active{background:var(--tikal-black-2);color:var(--tikal-gold-light);border-left:3px solid var(--tikal-gold);font-weight:600}
.sidebar a.portal-link{margin-top:10px;border-top:1px solid #2a2419;padding-top:14px;color:var(--tikal-gold-light);opacity:.9}

/* ---- Submenú de Reportes: oculto, aparece al pasar el mouse ---- */
.sidebar .nav-group{position:relative}
.sidebar .nav-group>a.has-active-child{color:var(--tikal-gold-light)}
.sidebar .nav-group .submenu{max-height:0;overflow:hidden;opacity:0;transition:max-height .18s ease,opacity .18s ease;padding-left:14px;border-left:1px solid #2a2419;margin-left:22px}
.sidebar .nav-group .submenu a{font-size:.86rem;padding:7px 12px;color:#b6ae9c}
.sidebar .nav-group .submenu a:hover{color:#fff}
.sidebar .nav-group:hover .submenu,.sidebar .nav-group .submenu:has(a.active){max-height:220px;opacity:1}

.content{min-width:0}

/* ---- Tarjetas y tipografía ---- */
.card{border:0;box-shadow:0 2px 12px #00000012;border-radius:12px}
.kpi{font-size:2rem;font-weight:700;color:#1f1d19}
.kpi-card{border-left:4px solid var(--tikal-gold)}
.property-img{height:190px;object-fit:cover}
.property-thumb{width:64px;height:48px;object-fit:cover;border-radius:6px}
.property-thumb-empty{background:#eee6cf;border-radius:6px}
.table td,.table th{vertical-align:middle}

main h2,main h1{position:relative;padding-bottom:.5rem;margin-bottom:1.25rem;font-weight:700;color:#1a1812}
main h2::after,main h1::after{content:'';position:absolute;left:0;bottom:0;width:54px;height:3px;background:linear-gradient(90deg,var(--tikal-gold),var(--tikal-gold-light))}

/* ---- Botones ---- */
.btn-primary{background:linear-gradient(135deg,var(--tikal-gold-light),var(--tikal-gold-dark));border-color:var(--tikal-gold-dark);color:#1a1305;font-weight:600}
.btn-primary:hover,.btn-primary:focus{background:linear-gradient(135deg,var(--tikal-gold-light),var(--tikal-gold));border-color:var(--tikal-gold-dark);color:#1a1305;filter:brightness(1.03)}
.btn-outline-primary{color:var(--tikal-muted-gold);border-color:var(--tikal-gold-dark)}
.btn-outline-primary:hover{background:var(--tikal-gold);border-color:var(--tikal-gold-dark);color:#1a1305}
.btn-outline-secondary:hover{background:var(--tikal-black-2);border-color:var(--tikal-black-2);color:#fff}

/* ---- Login / Portal (páginas dark) ---- */
.tikal-auth-page{min-height:100vh;background:radial-gradient(circle at 50% 0%,#1c1810 0%,var(--tikal-black) 70%);display:flex;align-items:center}
.tikal-auth-card{max-width:430px;width:100%;background:var(--tikal-black-2);border:1px solid #2a2419;border-radius:16px;box-shadow:0 10px 40px #00000060}
.tikal-auth-card .card-body{padding:2.25rem}
.tikal-auth-logo{display:block;margin:0 auto 1.5rem;height:56px}
.tikal-auth-card h3{color:var(--tikal-cream);font-weight:700}
.tikal-auth-card p.text-muted{color:#a89f8c!important}
.tikal-auth-card label{color:#cfc9bd;font-size:.85rem;margin-bottom:.2rem}
.tikal-auth-card .form-control{background:#0f0d09;border:1px solid #332c1c;color:#f2ede1}
.tikal-auth-card .form-control:focus{background:#0f0d09;border-color:var(--tikal-gold);color:#fff;box-shadow:0 0 0 .2rem #d9a53d33}
.tikal-auth-card .form-control::placeholder{color:#786f5c}
.tikal-auth-card a{color:var(--tikal-gold-light)}

.navbar-portal{background:linear-gradient(180deg,#141210 0%,var(--tikal-black) 100%);border-bottom:2px solid var(--tikal-gold)}
.navbar-portal .navbar-brand{color:var(--tikal-gold-light)!important;font-weight:700}

@media(max-width:800px){.sidebar{display:none}}

/* ---- Portal del cliente: tablas como tarjetas en pantallas angostas ---- */
.progress-tikal{height:10px;border-radius:6px;background:#eee6cf;overflow:hidden}
.progress-tikal>span{display:block;height:100%;background:linear-gradient(90deg,var(--tikal-gold-dark),var(--tikal-gold-light))}
.advisor-box{background:#faf7ef;border:1px solid #eee0bd;border-radius:10px;padding:.9rem}
.wa-btn{background:#25D366;color:#fff;border:0}
.wa-btn:hover{background:#1ebd5a;color:#fff}
.pay-alert-banner{border-left:4px solid var(--tikal-gold-dark)}
@media(max-width:700px){
 table.table-mobile-cards thead{display:none}
 table.table-mobile-cards,table.table-mobile-cards tbody,table.table-mobile-cards tr,table.table-mobile-cards td{display:block;width:100%}
 table.table-mobile-cards tr{margin-bottom:.75rem;border:1px solid #e8e2d3;border-radius:10px;padding:.4rem .6rem;background:#fff}
 table.table-mobile-cards td{border:0!important;display:flex;justify-content:space-between;gap:.5rem;padding:.35rem .2rem;text-align:right}
 table.table-mobile-cards td::before{content:attr(data-label);font-weight:600;color:#6b6455;text-align:left}
}

@media print{.sidebar,.navbar,.navbar-tikal,.btn,form{display:none!important}.content{padding:0!important}.card{box-shadow:none}main h2::after,main h1::after{display:none}}