/* CONDO ABC — Responsive V1. Capa visual adicional, sin cambios financieros. */
:root { --responsive-sidebar-width:230px; }
html,body { max-width:100%; }
.app-screen,.main-content,.content-area,.page-section { min-width:0; }
.app-screen { height:100dvh; }
.main-content { height:100dvh; }
.content-area { min-width:0; }
.login-card { width:min(420px,100%) !important; max-width:calc(100vw - 24px) !important; }
.login-screen { min-height:100dvh; padding:12px; overflow-y:auto; }
.login-card h1 { overflow-wrap:anywhere; font-size:clamp(20px,3.2vw,28px); }
.login-card { padding:clamp(18px,4vw,42px); min-height:0 !important; }
.login-card input { min-width:0; }
.reference-grid,.dashboard-modern-grid,.dashboard-grid { min-width:0; }
.reference-grid > *, .dashboard-modern-grid > *, .dashboard-grid > * { min-width:0; }
.dashboard-hero-text h1 { overflow-wrap:anywhere; }
.owners-modal,.units-modal { max-width:calc(100vw - 20px); }
.owners-modal-body,.units-modal-body { min-width:0; }
.owners-tabs { scrollbar-width:thin; }
.owners-table-wrap,.units-table-wrap,.cap-table-wrap { max-width:100%; overflow-x:auto; }
.responsive-menu-button,.responsive-menu-backdrop { display:none; }
@media(max-width:1180px) {
 .dashboard-modern-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .dashboard-hero-content { padding:24px; }
 .dashboard-hero-text h1 { font-size:clamp(25px,3vw,36px); }
 .owners-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px) {
 .reference-heading h1 { font-size:clamp(22px,4vw,30px); }
 .dashboard-modern-grid { gap:12px; }
 .dashboard-hero-logo { width:150px; }
 .dashboard-hero-logo img { width:130px; height:130px; }
 .owners-modal,.units-modal { width:calc(100vw - 20px); }
 .owners-modal-actions,.units-modal-actions { flex-wrap:wrap; }
 .owners-panel .owners-toolbar,.units-panel .units-toolbar { flex-wrap:wrap; }
}
@media(max-width:780px) {
 /* Menú accesible en móvil/tablet, en vez de barra de iconos sin logout. */
 .app-screen .sidebar { position:fixed!important; top:0; bottom:0; left:0; width:min(290px,84vw)!important; min-width:0!important; height:100dvh; z-index:100002; transform:translateX(-105%); transition:transform .22s ease; box-shadow:8px 0 30px #001b4b44; }
 .app-screen.responsive-menu-open .sidebar { transform:translateX(0); }
 .app-screen .sidebar-title,.app-screen .menu-item span:not(.menu-icon),.app-screen .logged-user .user-info,.app-screen .logout-button { display:initial; }
 .app-screen .sidebar-title,.app-screen .logged-user .user-info { display:flex; }
 .app-screen .sidebar-header { justify-content:flex-start; padding:13px 12px; }
 .app-screen .sidebar-logo { margin:0; width:64px; height:64px; flex:0 0 64px; }
 .app-screen .menu-item { justify-content:flex-start; padding:0 13px; }
 .app-screen .menu-icon { margin-right:7px; }
 .app-screen .sidebar-bottom { display:block; }
 .app-screen .logged-user { margin-bottom:12px; }
 .app-screen .user-avatar { margin-right:9px; }
 .app-screen .logout-button { display:block; }
 .app-screen .main-content { width:100%; flex:1; }
 .app-screen .topbar { width:100%; }
 .responsive-menu-button { display:inline-flex; position:fixed; z-index:100000; top:10px; left:10px; align-items:center; gap:7px; padding:9px 12px; min-height:40px; background:#064d99; border:1px solid #ffffff55; color:white; border-radius:10px; font:600 13px inherit; cursor:pointer; box-shadow:0 3px 14px #173d6655; }
 .responsive-menu-backdrop:not([hidden]) { display:block; position:fixed; inset:0; z-index:100001; border:0; background:#071b39aa; }
 .app-screen .content-area { padding-top:52px; }
 .app-screen .reference-hero { min-height:135px; height:auto; padding:22px 12px; }
 .app-screen .reference-heading { padding-left:0; max-width:calc(100% - 88px); }
 .reference-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .metric-card,.metric-wide { grid-column:span 1; }
 .dashboard-modern-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .owners-panel,.units-panel { margin:8px!important; padding:12px!important; }
 .owners-modal-head,.units-modal-header { padding:12px!important; }
 .owners-modal-body,.units-modal-body { padding:12px!important; }
 .owners-modal { height:calc(100dvh - 16px); }
 .units-modal { height:calc(100dvh - 16px); }
 #section-control-acceso-portal { padding:10px; }
}
@media(max-width:560px) {
 .reference-grid,.dashboard-modern-grid,.dashboard-grid { grid-template-columns:1fr; }
 .dashboard-finance { grid-column:span 1; }
 .reference-heading h1 { font-size:23px; }
 .reference-heading p { font-size:12px; }
 .dashboard-hero-content { flex-direction:column; align-items:flex-start; }
 .dashboard-hero-logo { align-self:center; }
 .owners-fields { grid-template-columns:1fr; }
 .owners-toolbar input,.units-toolbar input { flex-basis:100%; min-width:0; }
 .owners-heading,.units-heading { flex-wrap:wrap; }
 .owners-modal-actions button,.units-modal-actions button { flex:1 1 auto; }
 .cap-banner { padding:14px; }
 .cap-toolbar { gap:10px; }
 .cap-search-group { flex-basis:100%; }
 .login-card { padding:22px 18px; }
}
@media(prefers-reduced-motion:reduce) { .app-screen .sidebar { transition:none; } }


/* CONDO ABC — Mobile vertical scrolling fix (2026-10-25).
   Overrides loaded last to avoid clipping in mobile browsers. */
@media (max-width:780px) {
  html, body { width:100%; max-width:100%; height:100%; overflow-x:hidden; }
  #app-screen.app-screen { height:100dvh; min-height:0; overflow:hidden; }
  #app-screen .main-content { height:100dvh; min-height:0; display:flex; flex-direction:column; overflow:hidden; }
  #app-screen .content-area { flex:1 1 auto; min-height:0; height:auto; overflow-x:hidden; overflow-y:auto!important; -webkit-overflow-scrolling:touch; overscroll-behavior-y:contain; padding-bottom:calc(28px + env(safe-area-inset-bottom, 0px)); }
  #app-screen .sidebar { height:100dvh; overflow-y:auto; overscroll-behavior:contain; padding-bottom:env(safe-area-inset-bottom, 0px); }
  #section-propietarios, #section-unidades { height:auto!important; min-height:100%; overflow:visible!important; }
  #propietarios-content, #unidades-content { height:auto!important; min-height:0; overflow:visible!important; }
  #section-propietarios .owners-panel, #section-unidades .units-panel { height:auto; min-height:0; max-width:100%; overflow:visible!important; margin:8px!important; padding:12px!important; }
  .owners-table-wrap, .units-table-wrap { max-height:55dvh; overflow:auto!important; -webkit-overflow-scrolling:touch; }
  .owners-overlay, .units-overlay { padding:8px!important; align-items:center; }
  .owners-modal, .units-modal { max-height:calc(100dvh - 16px)!important; height:calc(100dvh - 16px)!important; display:flex; flex-direction:column; }
  .owners-modal-body, .units-modal-body, #units-modal-content { min-height:0; overflow-y:auto; -webkit-overflow-scrolling:touch; }
  .owners-modal-actions, .units-modal-actions { flex-shrink:0; padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px))!important; }
  .login-screen { min-height:100dvh; height:auto; overflow-y:auto; padding-bottom:calc(20px + env(safe-area-inset-bottom, 0px)); }
}
@supports not (height:100dvh) {
  @media (max-width:780px) {
    #app-screen.app-screen, #app-screen .main-content, #app-screen .sidebar { height:var(--condo-mobile-vh, 100vh); }
  }
}
