/*
 * InmoPlus ERP 6.0 — Biblioteca visual estable
 * Versión: 1.0.0
 * Alcance: tokens, shell, cabecera, sidebar, tarjetas y responsive.
 * Regla: este archivo se carga al final y es la fuente visual definitiva.
 */
:root{
  --imp-brand-green:#80c342;
  --imp-brand-green-700:#5f9e25;
  --imp-brand-teal:#005c67;
  --imp-brand-teal-900:#003e49;
  --imp-brand-teal-950:#002f38;
  --imp-accent-blue:#2f80d0;
  --imp-accent-purple:#6f4fd2;
  --imp-accent-orange:#f59b18;
  --imp-danger:#e83945;
  --imp-bg:#f5f7fa;
  --imp-surface:#ffffff;
  --imp-surface-soft:#f9fbfc;
  --imp-text:#172033;
  --imp-muted:#6b7788;
  --imp-border:#e2e8ef;
  --imp-radius-sm:10px;
  --imp-radius-md:14px;
  --imp-radius-lg:18px;
  --imp-shadow-sm:0 5px 18px rgba(22,42,70,.055);
  --imp-shadow-md:0 14px 34px rgba(15,42,58,.10);
  --imp-sidebar-width:270px;
  --imp-topbar-height:72px;
  --imp-mobile-nav-height:72px;
  --imp-font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

body.inmoplus-role-dashboard-active,
body.inmoplus-client-portal-active{margin:0!important;background:var(--imp-bg)!important;color:var(--imp-text)!important;overflow-x:hidden!important;font-family:var(--imp-font)!important}
body.inmoplus-role-dashboard-active .site-header,
body.inmoplus-role-dashboard-active header.site-header,
body.inmoplus-role-dashboard-active .site-footer,
body.inmoplus-role-dashboard-active footer.site-footer,
body.inmoplus-client-portal-active .site-header,
body.inmoplus-client-portal-active header.site-header,
body.inmoplus-client-portal-active .site-footer,
body.inmoplus-client-portal-active footer.site-footer{display:none!important}

.ipx-app,.ipx-app *{box-sizing:border-box}
.ipx-app{min-height:100vh;width:100%;background:var(--imp-bg);color:var(--imp-text);font-family:var(--imp-font);display:grid;grid-template-columns:var(--imp-sidebar-width) minmax(0,1fr);position:relative;isolation:isolate}
.ipx-main,.inm-client-main{min-width:0;background:var(--imp-bg)}

/* Sidebar */
.ipx-sidebar,.inm-client-sidebar{background:linear-gradient(180deg,var(--imp-brand-teal-900) 0%,var(--imp-brand-teal) 58%,#004651 100%)!important;color:#fff!important;padding:18px 16px!important;position:sticky;top:0;height:100vh;overflow-y:auto;overflow-x:hidden;z-index:1002}
.ipx-sidebar *,.inm-client-sidebar *{color:inherit}
.ipx-brand{height:92px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:7px 4px 18px!important;overflow:hidden!important}
.ipx-brand img{display:block!important;width:100%!important;max-width:222px!important;height:66px!important;max-height:66px!important;object-fit:contain!important;object-position:center!important;margin:0 auto!important;filter:none!important;border:0!important;background:transparent!important}
.ipx-nav-title{font-size:11px!important;letter-spacing:.1em!important;text-transform:uppercase;color:#bfe1e4!important;margin:22px 12px 8px!important}
.ipx-nav a{display:flex!important;align-items:center!important;gap:12px!important;color:#f7ffff!important;text-decoration:none!important;padding:12px 13px!important;border-radius:10px!important;margin:3px 0!important;font-weight:650!important;font-size:14px!important;line-height:1.35!important;transition:background .18s ease,transform .18s ease!important}
.ipx-nav a:hover,.ipx-nav a:focus-visible,.ipx-nav a.is-active{background:linear-gradient(90deg,#67b713,var(--imp-brand-green))!important;color:#fff!important;transform:translateX(1px)}
.ipx-nav .dashicons{color:inherit!important;font-size:20px!important;width:20px!important;height:20px!important;flex:0 0 20px!important}
.ipx-logout-side{margin-top:12px!important;border:1px solid rgba(255,255,255,.18)!important;background:rgba(232,57,69,.12)!important;color:#fff!important}
.ipx-logout-side:hover{background:rgba(232,57,69,.28)!important}

/* Header */
.ipx-topbar,.inm-client-topbar{height:var(--imp-topbar-height)!important;background:#fff!important;border-bottom:1px solid var(--imp-border)!important;display:flex!important;align-items:center!important;padding:0 26px!important;gap:16px!important;position:sticky!important;top:0!important;z-index:1000!important;box-shadow:0 2px 12px rgba(15,23,42,.035)!important;color:var(--imp-text)!important}
.ipx-menu{display:none;border:0!important;background:var(--imp-brand-green)!important;color:#fff!important;width:42px!important;height:42px!important;border-radius:11px!important;place-items:center!important;padding:0!important;cursor:pointer!important;flex:0 0 42px!important}
.ipx-menu .dashicons{color:#fff!important;font-size:24px!important;width:24px!important;height:24px!important}
.ipx-top-title{font-weight:800!important;font-size:18px!important;white-space:nowrap!important;color:var(--imp-text)!important;line-height:1!important}
.ipx-search{max-width:420px!important;flex:1!important;margin:0 auto!important;position:relative!important}
.ipx-search input{width:100%!important;height:42px!important;border:1px solid #dbe2ea!important;border-radius:10px!important;padding:0 44px 0 14px!important;background:#fafbfd!important;color:var(--imp-text)!important}
.ipx-search .dashicons{position:absolute!important;right:14px!important;top:10px!important;color:#173454!important}
.ipx-top-actions{display:flex!important;align-items:center!important;gap:5px!important;margin-left:auto!important}
.ipx-top-actions>a{width:48px!important;height:48px!important;display:grid!important;place-items:center!important;align-content:center!important;gap:1px!important;color:#173454!important;text-decoration:none!important;position:relative!important;border-radius:10px!important}
.ipx-top-actions>a:hover{background:#eef7ea!important;color:#2b8e25!important}
.ipx-top-actions .dashicons{font-size:23px!important;width:23px!important;height:23px!important}
.ipx-top-actions small{font-size:9px!important;color:#526174!important}
.ipx-top-actions b,.ipx-nav a i{position:absolute!important;background:var(--imp-danger)!important;color:#fff!important;border-radius:999px!important;min-width:18px!important;height:18px!important;display:grid!important;place-items:center!important;font:700 10px/1 var(--imp-font)!important}
.ipx-top-actions b{right:4px!important;top:2px!important}
.ipx-userbox{display:flex!important;align-items:center!important;gap:9px!important;text-decoration:none!important;color:var(--imp-text)!important;margin-left:4px!important}
.ipx-userbox img{width:40px!important;height:40px!important;border-radius:50%!important;object-fit:cover!important;background:#eef1f4!important}
.ipx-userbox strong,.ipx-userbox small{display:block!important}.ipx-userbox small{color:var(--imp-muted)!important;font-size:11px!important}

/* Content */
.ipx-content,.inm-client-content{padding:26px!important;max-width:1450px!important;margin:0 auto!important;width:100%!important;color:var(--imp-text)!important;background:var(--imp-bg)!important}
.ipx-card,.inm-client-card,.inm-client-panel{background:var(--imp-surface)!important;border:1px solid var(--imp-border)!important;border-radius:var(--imp-radius-md)!important;box-shadow:var(--imp-shadow-sm)!important;color:var(--imp-text)!important}
.ipx-card h1,.ipx-card h2,.ipx-card h3,.inm-client-content h1,.inm-client-content h2,.inm-client-content h3{color:var(--imp-text)!important}
.ipx-card p,.inm-client-content p{color:var(--imp-muted)}
.ipx-greeting{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:20px!important;margin-bottom:22px!important}.ipx-greeting h1{font-size:28px!important;line-height:1.2!important;margin:0 0 6px!important}.ipx-greeting p{margin:0!important;color:#66758a!important}
.ipx-approved{background:#eaf7dc!important;color:#4b8d0b!important;border:1px solid #cbe8ae!important;padding:8px 12px!important;border-radius:999px!important;font-weight:700!important;font-size:13px!important;white-space:nowrap!important}
.ipx-kpis{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important;margin-bottom:20px!important}
.ipx-kpi{background:#fff!important;border:1px solid var(--imp-border)!important;border-radius:var(--imp-radius-md)!important;padding:18px!important;box-shadow:var(--imp-shadow-sm)!important;display:flex!important;gap:14px!important;align-items:center!important;min-height:120px!important}
.ipx-kpi-icon{width:48px!important;height:48px!important;border-radius:50%!important;display:grid!important;place-items:center!important;color:#fff!important;background:#1daf4b!important;flex:0 0 48px!important}.ipx-kpi:nth-child(2) .ipx-kpi-icon{background:var(--imp-accent-purple)!important}.ipx-kpi:nth-child(3) .ipx-kpi-icon{background:var(--imp-accent-blue)!important}.ipx-kpi:nth-child(4) .ipx-kpi-icon{background:var(--imp-accent-orange)!important}.ipx-kpi strong{display:block!important;font-size:23px!important;color:var(--imp-text)!important}.ipx-kpi small{color:#718096!important}
.ipx-tools{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:14px!important;padding:18px!important}.ipx-tool{display:flex!important;align-items:center!important;gap:13px!important;padding:15px!important;border:1px solid var(--imp-border)!important;border-radius:12px!important;text-decoration:none!important;color:var(--imp-text)!important;background:#fff!important;transition:.18s!important}.ipx-tool:hover{border-color:var(--imp-brand-green)!important;transform:translateY(-2px)!important;box-shadow:0 8px 20px rgba(51,91,15,.08)!important}.ipx-tool-icon{width:42px!important;height:42px!important;border-radius:10px!important;background:#edf7e4!important;color:#539b12!important;display:grid!important;place-items:center!important;flex:0 0 auto!important}.ipx-tool strong{display:block!important;color:var(--imp-text)!important}.ipx-tool small{display:block!important;color:#748296!important;margin-top:3px!important;line-height:1.3!important}
.inm-client-content .inm-client-hero{background:linear-gradient(120deg,var(--imp-brand-teal),#087985)!important;color:#fff!important;border-radius:var(--imp-radius-lg)!important;box-shadow:var(--imp-shadow-md)!important}.inm-client-content .inm-client-hero *{color:#fff!important}
.ipx-profile-strip{background:linear-gradient(105deg,#004a7c 0%,#006473 53%,#5caf44 100%)!important;color:#fff!important}.ipx-profile-strip *{color:#fff!important}

/* Overlay + bottom nav */
.ipx-overlay{display:none;position:fixed;inset:0;background:rgba(3,24,35,.58);z-index:1001;opacity:0;pointer-events:none;transition:opacity .22s ease}
.ipx-bottom,.ipx-mobile-nav{display:none}

/* Desktop */
@media (min-width:1024px){
  .ipx-app{grid-template-columns:var(--imp-sidebar-width) minmax(0,1fr)!important}
  .ipx-sidebar,.inm-client-sidebar{display:block!important;transform:none!important;visibility:visible!important}
  .ipx-menu,.ipx-overlay,.ipx-bottom,.ipx-mobile-nav{display:none!important}
  .inm-client-main{padding-bottom:30px!important}
  .inm-client-content{padding:24px 28px 34px!important}
  .ipc-global-back,.ipc-global-top-logout,.ipc-top-logout{display:none!important}
}

/* Tablet + mobile */
@media (max-width:1023px){
  body.inmoplus-role-dashboard-active,body.inmoplus-client-portal-active{padding:0 0 var(--imp-mobile-nav-height)!important}
  .ipx-app{display:block!important;min-height:100vh!important;width:100%!important;overflow-x:hidden!important}
  .ipx-sidebar,.inm-client-sidebar{position:fixed!important;left:0!important;top:0!important;bottom:0!important;width:min(86vw,330px)!important;height:100dvh!important;transform:translate3d(-105%,0,0)!important;transition:transform .24s ease!important;z-index:1002!important;padding:16px 18px 92px!important;box-shadow:18px 0 50px rgba(0,0,0,.22)!important;visibility:hidden!important}
  .ipx-app.is-open .ipx-sidebar,.ipx-app.is-menu-open .ipx-sidebar{transform:translate3d(0,0,0)!important;visibility:visible!important}
  .ipx-overlay{display:block!important}.ipx-app.is-open>.ipx-overlay,.ipx-app.is-menu-open>.ipx-overlay{opacity:1!important;pointer-events:auto!important}
  .ipx-brand{height:98px!important;padding:8px 0 16px!important}.ipx-brand img{max-width:238px!important;height:72px!important;max-height:72px!important}
  .ipx-nav a{color:#fff!important;font-size:15px!important;padding:13px 12px!important}.ipx-nav-title{color:#c7e4e6!important}
  .ipx-main,.inm-client-main{padding:0 0 78px!important;width:100%!important;min-height:100vh!important}
  .ipx-topbar,.inm-client-topbar{height:64px!important;padding:0 14px!important;gap:10px!important;background:#fff!important}
  .ipx-menu{display:grid!important}.ipx-top-title{font-size:18px!important;max-width:145px!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .ipx-search{display:none!important}.ipx-top-actions{margin-left:auto!important;gap:0!important}.ipx-top-actions a{width:40px!important;height:40px!important}.ipx-top-actions small{display:none!important}.ipx-userbox{display:none!important}
  .ipx-content,.inm-client-content{padding:16px 14px 22px!important;margin:0!important;max-width:none!important;background:var(--imp-bg)!important}
  .ipx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.ipx-kpi{min-height:154px!important;padding:15px!important;align-items:flex-start!important}.ipx-kpi-icon{width:44px!important;height:44px!important;flex-basis:44px!important}.ipx-tools{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:14px!important;gap:12px!important}.ipx-tool{min-height:120px!important;display:grid!important;place-items:center!important;text-align:center!important}
  .inm-client-content .inm-client-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.inm-client-content .inm-client-columns{grid-template-columns:1fr!important}.inm-client-content .inm-client-hero{padding:20px!important;min-height:170px!important;overflow:hidden!important}.inm-client-content .inm-client-hero h1{font-size:30px!important}
  .ipx-bottom,.ipx-mobile-nav{display:grid!important;grid-template-columns:repeat(5,1fr)!important;align-items:end!important;position:fixed!important;left:0!important;right:0!important;bottom:0!important;height:var(--imp-mobile-nav-height)!important;background:#fff!important;border-top:1px solid #e5eaf0!important;z-index:1000!important;padding:4px 8px calc(4px + env(safe-area-inset-bottom))!important;box-shadow:0 -8px 24px rgba(15,23,42,.09)!important}
  .ipx-bottom a,.ipx-bottom button,.ipx-mobile-nav a,.ipx-mobile-nav button{border:0!important;background:transparent!important;text-decoration:none!important;color:#465466!important;display:grid!important;place-items:center!important;gap:2px!important;font:inherit!important;padding:0!important;position:relative!important}.ipx-bottom small,.ipx-mobile-nav{font-size:10px!important}.ipx-bottom-fab,.ipx-mobile-nav .is-primary{width:54px!important;height:54px!important;border-radius:50%!important;background:linear-gradient(145deg,#2ca825,var(--imp-brand-green))!important;color:#fff!important;justify-self:center!important;align-self:start!important;margin-top:-20px!important;box-shadow:0 7px 18px rgba(41,145,38,.35)!important}
  body.ipx-menu-locked{overflow:hidden!important;touch-action:none!important}
}

@media (max-width:620px){
  .ipx-greeting h1{font-size:24px!important}.ipx-approved{font-size:11px!important;padding:6px 8px!important}.ipx-kpi strong{font-size:20px!important}.ipx-card-head{padding:16px!important}.ipx-card-head h2{font-size:18px!important}
}

/* Accesibilidad y estabilidad */
.ipx-app a:focus-visible,.ipx-app button:focus-visible,.ipx-app input:focus-visible,.ipx-app select:focus-visible,.ipx-app textarea:focus-visible{outline:3px solid rgba(128,195,66,.36)!important;outline-offset:2px!important}
.ipx-app img{max-width:100%}
