/* 1. Identidad visual / variables */
/* Paleta: azul #176b87, turquesa #20a4a8, fondo #f4f7f9.
 * Valores directos conservados para mantener el aspecto y compatibilidad actuales.
 * Los componentes de pagina quedan acotados a .cpo-page;
 * el breadcrumb global utiliza exclusivamente .cpo-breadcrumb. */

/* 2. Estructura de paginas */
.cpo-page{background:#f4f7f9;padding:20px;border-radius:12px;color:#243746;min-width:0}

/* Navegacion global: conserva niveles, enlaces y contenido del widget Yii. */
.breadcrumb.cpo-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0;margin:0 0 18px;padding:10px 14px;max-width:100%;min-width:0;list-style:none;background:#fff;border:1px solid #e3e9ed;border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,.035);font-family:"Helvetica Neue",Arial,sans-serif;font-size:14px;line-height:1.6}
.breadcrumb.cpo-breadcrumb>li{display:flex;align-items:center;max-width:100%;min-width:0;white-space:normal;overflow-wrap:anywhere}
.breadcrumb.cpo-breadcrumb>li+li:before{content:"\203A";display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0 10px;color:#8ba0aa;font-size:18px;line-height:1.2}
.cpo-breadcrumb>li>a{display:inline-block;min-width:0;max-width:100%;padding:5px 7px;border-radius:6px;color:#176b87;white-space:normal;overflow-wrap:anywhere;text-decoration:none;transition:background-color .15s ease,color .15s ease}
.cpo-breadcrumb>li>a:hover{background:#eaf7f8;color:#087f8c;text-decoration:none}
.cpo-breadcrumb>li>a:focus{background:#eaf7f8;outline:2px solid #176b87;outline-offset:2px}
.cpo-breadcrumb>li.active{padding:5px 9px;background:#eef7f8;border-radius:7px;color:#365b68;font-weight:600}
@media(max-width:767px){
    .breadcrumb.cpo-breadcrumb{padding:8px 10px;font-size:14px;row-gap:8px}
    .cpo-breadcrumb>li>a{padding:10px 6px;min-height:44px}
}


/* Navbar global Bootstrap 3: solo presentacion, collapse y dropdowns originales. */
.cpo-navbar.navbar{min-height:60px;margin-bottom:0;border:0;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(135deg,#124e65,#147b80);box-shadow:0 3px 12px rgba(18,78,101,.18);font-family:"Helvetica Neue",Arial,sans-serif}
.cpo-shell.wrap>.container{padding-top:84px}
.cpo-navbar .navbar-brand{display:flex;align-items:center;gap:9px;height:60px;padding:12px 15px;color:#fff;font-size:19px;font-weight:700;letter-spacing:-.3px}
.cpo-navbar .navbar-brand:before{content:"\e139";font-family:"Glyphicons Halflings";font-size:21px;font-weight:400;line-height:1}
.cpo-navbar .navbar-brand:hover,.cpo-navbar .navbar-brand:focus{color:#fff}
.cpo-navbar .navbar-nav{margin-top:0;margin-bottom:0}
.cpo-navbar .navbar-nav>li>a,.cpo-navbar .navbar-nav>li>form>button.logout{display:flex;align-items:center;min-height:44px;padding:12px 14px;border-radius:8px;color:#edf9fa;font-size:14px;font-weight:500;line-height:20px;white-space:normal;overflow-wrap:anywhere;transition:background-color .15s ease}
.cpo-navbar .navbar-nav>li>a:hover,.cpo-navbar .navbar-nav>li>a:focus,.cpo-navbar .navbar-nav>li>form>button.logout:hover,.cpo-navbar .navbar-nav>li>form>button.logout:focus{background:rgba(255,255,255,.12);color:#fff;text-decoration:none}
.cpo-navbar .navbar-nav>.active>a,.cpo-navbar .navbar-nav>.active>a:hover,.cpo-navbar .navbar-nav>.active>a:focus,.cpo-navbar .navbar-nav>.open>a,.cpo-navbar .navbar-nav>.open>a:hover,.cpo-navbar .navbar-nav>.open>a:focus{background:rgba(255,255,255,.18);color:#fff;box-shadow:inset 0 -2px 0 #75dddb}
.cpo-navbar a:focus,.cpo-navbar button:focus{outline:2px solid #75dddb;outline-offset:-2px}
.cpo-navbar .navbar-nav>li>form{margin:0;min-width:0}
.cpo-navbar .navbar-nav>li>form>button.logout{width:100%;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.08);text-align:left}
.cpo-navbar .caret{margin-left:7px;flex-shrink:0}
.cpo-navbar .dropdown-menu{min-width:240px;max-width:calc(100vw - 30px);padding:8px;border:1px solid #e3e9ed;border-radius:10px;background:#fff;box-shadow:0 8px 24px rgba(24,57,70,.16)}
.cpo-navbar .navbar-nav .open .dropdown-menu>li>a{padding:10px 12px;min-height:40px;border-radius:6px;color:#365461;font-size:14px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
.cpo-navbar .navbar-nav .open .dropdown-menu>li>a:hover,.cpo-navbar .navbar-nav .open .dropdown-menu>li>a:focus,.cpo-navbar .navbar-nav .open .dropdown-menu>.active>a{background:#eaf7f8;color:#176b87}
.cpo-navbar .dropdown-menu .divider{background:#e3e9ed;margin:6px 0}
.cpo-navbar .navbar-toggle{width:44px;height:44px;margin:8px 15px 8px 0;padding:11px;border:1px solid rgba(255,255,255,.35);border-radius:8px}
.cpo-navbar .navbar-toggle:hover,.cpo-navbar .navbar-toggle:focus{background:rgba(255,255,255,.12)}
.cpo-navbar .navbar-toggle .icon-bar{width:20px;background:#fff}
@media(min-width:992px){
    .cpo-navbar>.container{display:flex;align-items:center;min-height:60px}
    .cpo-navbar>.container:before,.cpo-navbar>.container:after{display:none}
    .cpo-navbar .navbar-header{flex:0 0 auto}
    .cpo-navbar .navbar-collapse{flex:1;min-width:0;padding-right:0}
    .cpo-navbar .navbar-nav{display:flex;align-items:center;justify-content:flex-end;gap:4px;float:none;margin:8px 0}
    .cpo-navbar .navbar-nav>li{float:none;min-width:0}
    .cpo-navbar .navbar-nav>li:last-child{max-width:300px}
}
@media(max-width:991px){
    .cpo-navbar .navbar-header{float:none;margin:0 -15px}
    .cpo-navbar .navbar-brand{max-width:calc(100% - 64px);padding-right:0;font-size:18px}
    .cpo-navbar .navbar-toggle{display:block}
    /* Precedencia localizada: Bootstrap 3 fuerza collapse visible desde 768px. */
    .cpo-navbar .navbar-collapse.collapse:not(.in){display:none!important}
    .cpo-navbar .navbar-collapse{clear:both;margin:0;padding:8px 0;border-top:1px solid rgba(255,255,255,.16);box-shadow:none;max-height:calc(100vh - 60px);overflow-y:auto}
    .cpo-navbar .navbar-nav{float:none;margin:0}
    .cpo-navbar .navbar-nav>li{float:none;margin:4px 0;min-width:0}
    .cpo-navbar .navbar-nav>li>a,.cpo-navbar .navbar-nav>li>form>button.logout{width:100%;min-height:48px;font-size:16px}
    .cpo-navbar .navbar-nav .open .dropdown-menu{position:static;float:none;width:100%;max-width:100%;min-width:0;margin:6px 0;padding:8px;box-shadow:none}
    .cpo-navbar .navbar-nav .open .dropdown-menu>li>a{min-height:44px;font-size:15px}
}

/* 3. Hero / encabezados */
.cpo-page .cpo-hero{background:linear-gradient(135deg,#176b87,#20a4a8);color:white;padding:24px;border-radius:12px;margin-bottom:18px}
.cpo-page .cpo-hero-left{display:flex;align-items:center;gap:14px;min-width:0}
.cpo-page .cpo-hero-left>div:last-child{min-width:0;overflow-wrap:break-word}
.cpo-page .cpo-hero-icon{display:flex;align-items:center;justify-content:center;flex:0 0 52px;height:52px;background:rgba(255,255,255,.17);border-radius:12px;font-size:25px}
.cpo-page .cpo-hero h2{margin:0 0 6px;font-size:25px}
.cpo-page .cpo-hero p{margin:0;line-height:1.5}

/* 4. Tarjetas */
.cpo-page .kv-panel,.cpo-page .cpo-card{background:#fff;border:1px solid #e3e9ed;border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.06)}
.cpo-page .panel-primary>.panel-heading{background:#eef7f8;color:#243746;border-color:#e3e9ed;border-radius:11px 11px 0 0}
/* Las tarjetas y sus secciones moviles se definen en la seccion 11. */

/* 5. GridView / tablas */
.cpo-page .table>thead>tr>th{background:#f5f9fa;color:#49616b;border-color:#e3e9ed}
.cpo-page .table>tbody>tr>td{padding:16px 12px;border-color:#e3e9ed;border-bottom:8px solid #f4f7f9;vertical-align:middle;line-height:1.65}
.cpo-page .table>tbody>tr:nth-child(odd){background:#fff}
.cpo-page .table>tbody>tr:nth-child(even){background:#f6fafb}
.cpo-page .table>tbody>tr:hover{background:#eef8f9}
.cpo-page .table td p{margin-bottom:8px}
.cpo-page .table td .btn{min-width:40px;min-height:40px}
.cpo-page .summary{color:#6f7f8d;font-size:13px;padding:8px 0}

/* Detalles reutilizables: conserva la tabla y el contenido de DetailView. */
.cpo-detail .cpo-card-body{padding:20px;min-width:0}
.cpo-detail .detail-view{width:100%;table-layout:fixed;margin-bottom:0;border:0}
.cpo-detail .detail-view>tbody>tr>th,.cpo-detail .detail-view>tbody>tr>td{padding:14px 16px;border:0;border-bottom:1px solid #e3e9ed;vertical-align:top;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
.cpo-detail .detail-view>tbody>tr>th{width:36%;color:#526a75;font-weight:600}
.cpo-detail .detail-view>tbody>tr:last-child>th,.cpo-detail .detail-view>tbody>tr:last-child>td{border-bottom:0}
.cpo-detail .cpo-detail-actions .btn{display:flex;align-items:center;justify-content:center;min-height:48px;font-size:16px}

/* 6. Botones y acciones */
.cpo-page .cpo-top-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-bottom:18px}
.cpo-page .btn{border-radius:8px;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.cpo-page .btn-primary,.cpo-page .cpo-action-primary{background:#3578e5;border-color:#3578e5}
.cpo-page .btn-success,.cpo-page .cpo-action-success{background:#18a56f;border-color:#18a56f}
.cpo-page .btn-warning,.cpo-page .cpo-action-warning{background:#e79b32;border-color:#e79b32}
.cpo-page .btn-danger,.cpo-page .cpo-action-danger{background:#dc5964;border-color:#dc5964}
.cpo-page a:focus,.cpo-page button:focus{outline:2px solid #176b87;outline-offset:3px}
.cpo-page .cpo-top-actions .btn{min-height:44px;padding:11px 14px;white-space:normal}

/* 7. Estados */
/* Se conservan los estados y colores funcionales existentes; sin reglas nuevas. */

/* 8. Formularios */
.cpo-page .filters input{height:38px;border:1px solid #d9e4e8;border-radius:7px}


/* Formularios reutilizables; solo se aplican a paginas con cpo-form. */
.cpo-form{font-family:"Helvetica Neue",Arial,sans-serif}
.cpo-form .cpo-form-section{margin-bottom:20px;min-width:0}
.cpo-form .cpo-form-section-title{margin:0;padding:16px 20px;background:#eaf7f8;border-bottom:1px solid #e3e9ed;border-radius:11px 11px 0 0;color:#176b87;font-size:15px;font-weight:600;line-height:1.5;overflow-wrap:break-word}
.cpo-form .cpo-form-section-title i{margin-right:8px}
.cpo-form .cpo-card-body{padding:20px;border-top:0;min-width:0}
.cpo-form .row{margin-left:0;margin-right:0}
.cpo-form .row>[class*="col-"]{min-width:0}
.cpo-form .cpo-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}
.cpo-form .cpo-form-grid:before,.cpo-form .cpo-form-grid:after{display:none}
.cpo-form .cpo-form-grid>.form-group{float:none;width:auto;padding:0;margin-bottom:0;min-width:0}
.cpo-form .cpo-form-grid>.form-group>.form-group{margin-bottom:0}
.cpo-form .form-group{margin-bottom:16px;min-width:0}
.cpo-form label.control-label{color:#526a75;font-size:14px;font-weight:600;margin-bottom:8px;overflow-wrap:break-word}
.cpo-form .form-control{width:100%;max-width:100%;min-width:0;height:44px;border:1px solid #d7e3e7;border-radius:8px;box-shadow:none;background:#fff;font-size:16px}
.cpo-form textarea.form-control{height:auto;min-height:120px;resize:vertical;line-height:1.6}
.cpo-form .form-control:focus{border-color:#20a4a8;box-shadow:0 0 0 2px rgba(32,164,168,.12)}
.cpo-form .form-control[readonly],.cpo-form .form-control[disabled]{background:#f5f8f9;color:#526a75}
.cpo-form .has-error .form-control{border-color:#a94442}
.cpo-form .has-error label.control-label{color:#a94442}
.cpo-form div.required label.control-label:after{content:" * ";color:#dc5964}
.cpo-form .help-block{overflow-wrap:break-word}
.cpo-form .cpo-form-help{background:#fff7f7;border-left:4px solid #dc5964;border-radius:8px;padding:14px 16px;margin:0 0 16px;line-height:1.6;overflow-wrap:break-word}
.cpo-form .cpo-form-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin:16px 0 0;padding-top:16px;border-top:1px solid #e3e9ed}
.cpo-form .cpo-form-actions .btn{display:flex;align-items:center;justify-content:center;min-width:120px;min-height:48px;padding:12px 18px;font-size:16px;font-weight:600;white-space:normal;text-decoration:none}
.cpo-form .cpo-form-actions .btn-default{background:#edf2f4;border-color:#d9e4e8;color:#536771}

/* Facturacion por periodo: filas con columnas y gutters nativos de Bootstrap 3. */
.cpo-fp-form .row{margin-left:-15px;margin-right:-15px}
.cpo-fp-form .row>[class*="col-"]{padding-left:15px;padding-right:15px}
.cpo-fp-form .control-label{display:block;white-space:normal;overflow-wrap:break-word}
.cpo-fp-form .form-control{max-width:none}
.cpo-fp-form .cpo-fp-field-invoice-message textarea.form-control{height:96px;min-height:96px}
.cpo-fp-form .cpo-fp-field-email-message textarea.form-control{height:120px;min-height:120px}
@media(max-width:767px){
    .cpo-fp-form .cpo-fp-field-email-message textarea.form-control{height:144px;min-height:144px}
}

/* Distribucion financiera reutilizable: orden visual independiente del procesamiento PHP. */
.cpo-form .cpo-form-grid.cpo-financial-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"property" "amount" "description"}
.cpo-form .cpo-form-grid.cpo-financial-grid-sequence{grid-template-areas:"sequence" "property" "amount" "description"}
.cpo-financial-grid>.cpo-financial-property{grid-area:property}
.cpo-financial-grid>.cpo-financial-amount{grid-area:amount}
.cpo-financial-grid>.cpo-financial-description{grid-area:description}
.cpo-financial-grid>.cpo-financial-sequence{grid-area:sequence}
@media(min-width:768px){
    .cpo-form .cpo-form-grid.cpo-financial-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"property amount" "description description"}
    .cpo-form .cpo-form-grid.cpo-financial-grid-sequence{grid-template-areas:"sequence property" "amount description"}
}
@media(min-width:1200px){
    .cpo-form .cpo-form-grid.cpo-financial-grid{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,2.75fr);grid-template-areas:"property amount description"}
    .cpo-form .cpo-form-grid.cpo-financial-grid-sequence{grid-template-columns:minmax(0,.55fr) minmax(0,1.25fr) minmax(0,1fr) minmax(0,2.75fr);grid-template-areas:"sequence property amount description"}
}

/* Otros Cobros sin consecutivo: fila 25/20/55 desde desktop, descontando los gaps. */
@media(min-width:992px){
    .cpo-form .cpo-form-grid.cpo-financial-grid:not(.cpo-financial-grid-sequence){grid-template-columns:minmax(0,25fr) minmax(0,20fr) minmax(0,55fr);grid-template-areas:"property amount description";align-items:start}
}

/* Filtros y Select2 reutilizables. El ancho inline de Select2 requiere precedencia local. */
.cpo-form .cpo-filter-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.cpo-form .cpo-select-field .select2-container{width:100%!important;max-width:100%;min-width:0}
.cpo-form .cpo-select-field .select2-selection--single{height:auto;min-height:44px;border-radius:8px;border-color:#d7e3e7;font-size:16px}
.cpo-form .cpo-select-field .select2-selection__rendered{white-space:normal;overflow-wrap:anywhere;padding-right:30px;line-height:1.5}
.cpo-form .cpo-select-field .select2-selection__arrow{height:42px}

/* FileInput reutilizable: conserva estados y controles del plugin. */
.cpo-form .cpo-file-input{min-width:0;max-width:100%}
.cpo-file-input .file-preview-frame{max-width:calc(100% - 16px)}
.cpo-file-input .file-preview-frame .kv-file-content{max-width:100%}
.cpo-file-input .file-preview-frame .file-thumbnail-footer{height:auto;min-height:70px}
.cpo-file-input .file-caption-info,.cpo-file-input .file-size-info{width:100%;height:auto;white-space:normal;overflow:visible;overflow-wrap:anywhere}
.cpo-file-input .file-error-message,.cpo-file-input .file-error-message pre{white-space:pre-wrap;overflow-wrap:anywhere}

/* 9. Componentes moviles */
.cpo-page .cpo-desktop-grid{display:block}
.cpo-page .cpo-mobile-list{display:none}
/* cpo-mobile-card, cpo-card-header, cpo-card-body, cpo-mobile-actions
 * y cpo-mobile-pagination mantienen sus reglas dentro del breakpoint actual. */

/* 10. Componentes especificos de Facturacion por Periodo */
/* cpo-facturacion-cargos: distribucion OC1-OC4 / OC5-NC-ND-CE / DES-$ .
 * cpo-facturacion-procesos: fila flexible de los procesos existentes.
 * Solo tienen estilos en smartphone; ver seccion 11. */

/* Unidades: accesos y administracion, acotados a este listado. */
.cpo-unidades .cpo-unidades-grid-modulos .btn{height:44px;padding:12px 0;border:0;color:#fff;font-size:16px}
.cpo-unidades .cpo-unidades-grid-modulos a{display:inline-block}
.cpo-unidades .cpo-unidades-edit{color:#fff;border:0;min-height:44px;min-width:44px;border-radius:8px}
.cpo-unidades .cpo-unidades-delete{color:#fff;border:0;border-radius:8px}
.cpo-unidades .cpo-unidades-name{font-size:20px;font-weight:700;color:#176b87;line-height:1.3;margin-bottom:12px;overflow-wrap:anywhere}
.cpo-unidades .cpo-unidades-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;font-size:14px}
.cpo-unidades .cpo-unidades-meta span{min-width:0;overflow-wrap:anywhere}
.cpo-unidades .cpo-unidades-meta strong{display:inline}
.cpo-unidades .cpo-unidades-section-title{font-size:12px;font-weight:700;color:#526a75;text-transform:uppercase;letter-spacing:.4px;margin-bottom:12px}
.cpo-unidades .cpo-unidades-modulos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.cpo-unidades .cpo-unidades-modulos a{display:block;min-width:0;text-decoration:none}
.cpo-unidades .cpo-unidades-module-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;border-radius:8px;color:#fff;font-size:20px;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.cpo-unidades .cpo-unidades-admin{display:grid;grid-template-columns:minmax(0,1fr)}
.cpo-unidades .cpo-unidades-admin .cpo-unidades-edit{display:flex;align-items:center;justify-content:center;white-space:normal;min-height:52px;font-size:16px;text-decoration:none}

/* Identidad semantica unica de los 12 modulos, compartida por desktop y smartphone. */
.cpo-page .cpo-module-inmuebles{background:#2f80ed}
.cpo-page .cpo-module-areas{background:#27ae60}
.cpo-page .cpo-module-buzon{background:#9b51e0}
.cpo-page .cpo-module-documentos{background:#eb5757}
.cpo-page .cpo-module-proyectos{background:#f2994a}
.cpo-page .cpo-module-personal{background:#00a8a8}
.cpo-page .cpo-module-proveedores{background:#6c5ce7}
.cpo-page .cpo-module-recordatorios{background:#e67e22}
.cpo-page .cpo-module-facturacion{background:#16a085}
.cpo-page .cpo-module-notificaciones{background:#3498db}
.cpo-page .cpo-module-usuarios{background:#8e44ad}
.cpo-page .cpo-module-parqueaderos{background:#d35400}

/* 11. Responsive / media queries */
/* Breakpoint, orden y declaraciones conservados del CSS original.
 * El !important localizado conserva precedencia sobre los anchos inline
 * de los botones existentes de cargos y procesos. */
@media(max-width:991px){
.cpo-form .cpo-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:767px){
.cpo-page{padding:8px}
.cpo-page .cpo-desktop-grid{display:none}
.cpo-page .cpo-mobile-list{display:block;width:100%;min-width:0}
.cpo-page .cpo-hero{padding:16px}
.cpo-page .cpo-hero-left{align-items:flex-start;gap:12px}
.cpo-page .cpo-hero-icon{flex-basis:44px;height:44px;font-size:22px}
.cpo-page .cpo-hero h2{font-size:21px}
.cpo-page .cpo-hero p{font-size:13px}
.cpo-page .cpo-top-actions{flex-direction:column;align-items:stretch;font-size:0}
.cpo-page .cpo-top-actions>.btn,.cpo-page .cpo-top-actions>.btn-group{width:100%;margin:0;font-size:14px}
.cpo-page .cpo-top-actions>.btn-group{display:flex;min-width:0}
.cpo-page .cpo-top-actions>.btn-group>.btn:first-child{flex:1;min-width:0}
.cpo-page .cpo-top-actions .dropdown-menu{left:auto;right:0;max-width:100%;min-width:0}
.cpo-page .cpo-top-actions .dropdown-menu>li>a{white-space:normal;padding:12px}
.cpo-page .cpo-mobile-card{background:#fff;border:1px solid #e3e9ed;border-radius:12px;box-shadow:0 4px 14px rgba(0,0,0,.06);margin-bottom:20px;min-width:0}
.cpo-page .cpo-card-header{background:#eaf7f8;border-left:5px solid #20a4a8;border-radius:11px 11px 0 0;padding:16px 14px;line-height:1.8;overflow-wrap:break-word}
.cpo-page .cpo-card-header strong{display:block;color:#176b87;margin-bottom:5px}
.cpo-page .cpo-card-body{padding:14px;border-top:1px solid #edf1f3;min-width:0}
.cpo-page .cpo-card-body h3{font-size:12px;font-weight:700;color:#526a75;margin:0 0 12px;text-transform:uppercase;letter-spacing:.4px}
.cpo-page .cpo-facturacion-cargos p{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 8px}
.cpo-page .cpo-facturacion-cargos p:last-child{margin-bottom:0}
.cpo-page .cpo-facturacion-cargos a,.cpo-page .cpo-facturacion-procesos a,.cpo-page .cpo-mobile-actions a{display:block;min-width:0;text-align:center;text-decoration:none}
.cpo-page .cpo-facturacion-cargos .btn,.cpo-page .cpo-facturacion-procesos .btn{display:flex;align-items:center;justify-content:center;width:100%!important;min-width:0;height:48px;padding:0 3px;font-size:15px}
.cpo-page .cpo-facturacion-procesos{display:flex;flex-wrap:wrap;gap:8px}
.cpo-page .cpo-facturacion-procesos p{display:contents}
.cpo-page .cpo-facturacion-procesos a{flex:1 0 44px}
.cpo-page .cpo-mobile-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.cpo-page .cpo-mobile-actions p{margin:0;min-width:0}
.cpo-page .cpo-mobile-actions .btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;height:52px;padding:0 6px;font-size:16px}
.cpo-page .cpo-mobile-actions .cpo-admin-edit:after{content:"EDITAR";font:600 13px Arial,sans-serif}
.cpo-page .cpo-mobile-actions .cpo-admin-delete:after{content:"ELIMINAR";font:600 13px Arial,sans-serif}
/* Formularios: una columna y controles tactiles, sin afectar el listado. */
.cpo-form .cpo-form-grid{grid-template-columns:minmax(0,1fr);gap:16px}
.cpo-form .cpo-form-section-title{padding:14px;font-size:15px}
.cpo-form .cpo-card-body{padding:14px}
.cpo-form .row>[class*="col-"]{padding-left:0;padding-right:0}
.cpo-form .form-control{height:48px;font-size:16px}
.cpo-form textarea.form-control{height:auto;min-height:144px}
.cpo-form .cpo-form-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cpo-form .cpo-form-actions .btn{width:100%;min-width:0;min-height:52px;padding:12px 8px}
.cpo-form .cpo-form-actions .btn:only-child{grid-column:1 / -1}

/* FileInput: nombre y controles en filas independientes. */
.cpo-file-input .file-caption .input-group{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.cpo-file-input .file-caption .file-caption-name{float:none;width:100%;border-radius:8px}
.cpo-file-input .file-caption .input-group-btn{display:flex;flex-wrap:wrap;gap:8px;width:100%;white-space:normal}
.cpo-file-input .input-group-btn>.btn{min-height:48px;margin-left:0;padding:12px;white-space:normal;border-radius:8px;font-size:16px}
.cpo-file-input .file-preview-frame{float:none;width:calc(100% - 16px)}
.cpo-file-input .krajee-default.file-preview-frame:not([data-template="audio"]) .kv-file-content{width:100%}

/* DetailView: cada etiqueta encima de su valor, sin duplicar datos. */
.cpo-detail .cpo-card-body{padding:14px;border-top:0}
.cpo-detail .detail-view,.cpo-detail .detail-view>tbody{display:block}
.cpo-detail .detail-view>tbody>tr{display:block;padding:14px 0;border-bottom:1px solid #e3e9ed}
.cpo-detail .detail-view>tbody>tr:last-child{border-bottom:0}
.cpo-detail .detail-view>tbody>tr>th,.cpo-detail .detail-view>tbody>tr>td{display:block;width:100%;padding:0;border:0;font-size:16px}
.cpo-detail .detail-view>tbody>tr>th{margin-bottom:6px;font-size:14px}
.cpo-detail .cpo-detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cpo-detail .cpo-detail-actions>.btn{min-width:0;min-height:52px;margin:0;font-size:16px}

/* Unidades y filtros: cuatro accesos por fila con columnas que pueden encogerse. */
.cpo-unidades .cpo-hero-left{min-width:0}
.cpo-unidades .cpo-card-header{overflow-wrap:anywhere}
.cpo-unidades .cpo-unidades-modulos{gap:6px}
.cpo-form .cpo-filter-grid{grid-template-columns:minmax(0,1fr)}
.cpo-form .cpo-select-field .select2-selection--single{min-height:48px}
.cpo-form .cpo-select-field .select2-selection__arrow{height:46px}

}

@media(max-width:360px){
.cpo-unidades .cpo-unidades-meta{grid-template-columns:minmax(0,1fr)}
}

/* Formularios reutilizables con pestañas Bootstrap 3. */
.cpo-form-note{color:#526a75;line-height:1.6;overflow-wrap:anywhere;margin:16px 0}
.cpo-tabs{min-width:0;max-width:100%}
.cpo-tabs>.nav-tabs{display:flex;flex-wrap:wrap;gap:8px;border:0}
.cpo-tabs>.nav-tabs:before,.cpo-tabs>.nav-tabs:after{display:none}
.cpo-tabs>.nav-tabs>li{float:none;margin:0;min-width:0}
.cpo-tabs>.nav-tabs>li>a{display:flex;align-items:center;justify-content:center;min-height:48px;margin:0;padding:12px 16px;border:1px solid #d7e3e7;border-radius:8px;color:#176b87;background:#f4f7f9;font-weight:600;white-space:normal;overflow-wrap:anywhere}
.cpo-tabs>.nav-tabs>li.active>a,.cpo-tabs>.nav-tabs>li>a:hover,.cpo-tabs>.nav-tabs>li>a:focus{background:#eaf7f8;border-color:#20a4a8;color:#176b87}
.cpo-tabs .tab-content,.cpo-tabs .tab-pane{min-width:0;max-width:100%;overflow-wrap:anywhere}
.cpo-tabs .tab-content{padding-top:12px}
.cpo-tabs .input-group{width:100%;min-width:0}
.cpo-tabs img,.cpo-tabs iframe{max-width:100%}
@media(max-width:767px){
    .cpo-tabs>.nav-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
    .cpo-tabs>.nav-tabs>li:last-child:nth-child(odd){grid-column:1/-1}
    .cpo-tabs>.nav-tabs>li>a{height:100%;padding:12px 8px;font-size:16px}
    .cpo-tabs .file-input>.input-group{display:flex;flex-direction:column;gap:8px}
    .cpo-tabs .file-input>.input-group>.file-caption{width:100%;float:none;border-radius:8px}
    .cpo-tabs .file-input>.input-group>.input-group-btn{display:flex;flex-wrap:wrap;gap:8px;width:100%;white-space:normal}
    .cpo-tabs .file-input>.input-group>.input-group-btn>.btn{max-width:100%;min-height:48px;margin:0;white-space:normal;font-size:16px}
}

/* Listas reutilizables de acciones y procesos. */
.cpo-action-list{display:grid;gap:16px;min-width:0}
.cpo-action-card{display:flex;align-items:center;gap:20px;padding:20px;min-width:0}
.cpo-action-card-content{flex:1;min-width:0;overflow-wrap:anywhere}
.cpo-action-card-content h2{margin:0;color:#176b87;font-size:17px;font-weight:600;line-height:1.5}
.cpo-action-card-content p{margin:8px 0 0;line-height:1.6;color:#526a75}
.cpo-action-card-actions{flex-shrink:0;min-width:0}
.cpo-action-card-actions .btn{display:flex;align-items:center;justify-content:center;min-width:64px;min-height:52px;border-radius:8px;font-size:22px}
.cpo-action-card-actions .btn-default{background:#edf2f4;border-color:#d9e4e8;color:#536771}
@media(max-width:767px){
    .cpo-action-card{display:block;padding:16px}
    .cpo-action-card-actions{margin-top:14px}
    .cpo-action-card-actions .btn{width:100%}
}

/* Cargas masivas: cinco menus independientes en una sola fila. */
.cpo-cargas-card{padding:14px;margin-bottom:18px;min-width:0}
.cpo-cargas-title{margin-bottom:12px;color:#526a75;font-size:12px;font-weight:700;text-align:center;text-transform:uppercase}
.cpo-cargas-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;position:relative;width:100%;max-width:640px;margin:0 auto;min-width:0}
.cpo-page .cpo-cargas-list>.btn-group{display:flex;position:static;margin:0;min-width:0;border-radius:8px}
.cpo-page .cpo-cargas-list>.btn-group>.btn{float:none;min-width:0;height:52px;margin:0;padding:0 2px;border:0;box-shadow:none;color:#fff;font-size:17px}
.cpo-page .cpo-cargas-list>.btn-group>.btn:first-child{flex:1;border-radius:8px 0 0 8px}
.cpo-page .cpo-cargas-list>.btn-group>.dropdown-toggle{flex:0 0 18px;border-left:1px solid rgba(255,255,255,.28);border-radius:0 8px 8px 0}
.cpo-cargas-list>.btn-group>.dropdown-menu{left:0;right:0;top:100%;width:100%;min-width:0;border-radius:8px}
.cpo-cargas-list .dropdown-menu>li>a{padding:12px;white-space:normal;overflow-wrap:anywhere}
/* Identidad de cada carga definida una vez, sin diferencias por breakpoint. */
.cpo-page .cpo-cargas-inmuebles{background:#3578e5;border-color:#3578e5}
.cpo-page .cpo-cargas-habitantes{background:#8e5ad7;border-color:#8e5ad7}
.cpo-page .cpo-cargas-mascotas{background:#ef6c73;border-color:#ef6c73}
.cpo-page .cpo-cargas-vehiculos{background:#17a2a4;border-color:#17a2a4}
.cpo-page .cpo-cargas-bienes{background:#e79b32;border-color:#e79b32}

/* Inmuebles: mismos callbacks, datos y colores en ambas presentaciones. */
.cpo-inmuebles .cpo-inmuebles-action{display:inline-flex;align-items:center;justify-content:center;width:40px;height:44px;margin:2px;border-radius:8px;color:#fff;box-shadow:0 2px 6px rgba(0,0,0,.08)}
.cpo-inmuebles .cpo-inmuebles-habitantes,.cpo-inmuebles .cpo-inmuebles-edit{background:#3578e5}
.cpo-inmuebles .cpo-inmuebles-mascotas{background:#ef6c73}
.cpo-inmuebles .cpo-inmuebles-vehiculos{background:#17a2a4}
.cpo-inmuebles .cpo-inmuebles-bienes{background:#e79b32}
.cpo-inmuebles .cpo-inmuebles-delete{background:#dc5964}
.cpo-inmuebles-action:hover{filter:brightness(.95)}
.cpo-inmuebles-filters{margin-bottom:18px}
.cpo-inmuebles-filters>summary{padding:16px;min-height:48px;cursor:pointer;font-weight:600;color:#176b87;overflow-wrap:anywhere}
.cpo-inmuebles-sort{margin-top:8px;line-height:1.6;overflow-wrap:anywhere}
.cpo-inmuebles-data{margin:0;display:grid;gap:12px}
.cpo-inmuebles-data>div,.cpo-inmuebles-data dt,.cpo-inmuebles-data dd{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.cpo-inmuebles-data dt{font-size:13px;color:#526a75}
.cpo-inmuebles-data dd{margin:4px 0 0;font-size:16px}
.cpo-inmuebles .cpo-card-header{overflow-wrap:anywhere}
.cpo-inmuebles-modules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.cpo-inmuebles-admin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.cpo-inmuebles-modules>a,.cpo-inmuebles-admin>a{display:block;min-width:0;text-align:center;text-decoration:none}
.cpo-inmuebles .cpo-inmuebles-modules .cpo-inmuebles-action,.cpo-inmuebles .cpo-inmuebles-admin .cpo-inmuebles-action{width:100%;height:52px;margin:0;gap:6px;font-size:18px}
.cpo-inmuebles-admin .cpo-inmuebles-edit:after{content:"EDITAR";font:600 12px Arial,sans-serif}
.cpo-inmuebles-admin .cpo-inmuebles-delete:after{content:"ELIMINAR";font:600 12px Arial,sans-serif}

.cpo-page .cpo-inmuebles-new{background:#fff;color:#087f8c;border:0;font-weight:700}
.cpo-inmuebles-data img,.cpo-inmuebles-data iframe,.cpo-inmuebles .cpo-card-header img{max-width:100%;height:auto}

/* Acciones reutilizables de un registro: conservan las clases de color Bootstrap. */
.cpo-page .cpo-record-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;min-width:0}
.cpo-page .cpo-record-actions>a{display:block;min-width:0;text-align:center;text-decoration:none}
.cpo-page .cpo-record-actions .btn{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:52px;padding:0 4px;font-size:20px;white-space:normal}

/* Datos y ordenamiento reutilizables de listas móviles, sin anchos fijos. */
.cpo-page .cpo-record-data{margin:0 0 20px;min-width:0}
.cpo-page .cpo-record-data>div{padding:8px 0;border-bottom:1px solid #edf1f3;min-width:0}
.cpo-page .cpo-record-data dt{color:#526a75;font-size:13px}
.cpo-page .cpo-record-data dd{margin:4px 0 0;font-size:16px;overflow-wrap:anywhere}
.cpo-page .cpo-list-sort{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.cpo-page .cpo-list-sort>a{display:flex;align-items:center;min-height:44px;max-width:100%;padding:8px 12px;border:1px solid #d7e3e7;border-radius:8px;overflow-wrap:anywhere}

/* Importaciones con espera: conserva IDs y JavaScript del formulario existente. */
.cpo-import-page{position:relative}
.cpo-import-page .cpo-import-loader{position:absolute;width:100%;height:100%;left:0;top:0;background:rgba(255,255,255,.5);z-index:999999;border-radius:12px}
.cpo-import-page .cpo-import-spinner{position:fixed;left:50%;top:50%;width:200px;max-width:calc(100vw - 32px);margin-left:-100px;margin-top:-100px}
@media(max-width:767px){
    .cpo-import-page .cpo-file-input .file-input>.input-group{display:flex;flex-direction:column;gap:8px;min-width:0}
    .cpo-import-page .cpo-file-input .file-input>.input-group>.file-caption{float:none;width:100%;min-width:0;border-radius:8px}
    .cpo-import-page .cpo-file-input .file-input>.input-group>.input-group-btn{display:flex;flex-wrap:wrap;gap:8px;width:100%;white-space:normal}
    .cpo-import-page .cpo-file-input .input-group-btn>.btn{max-width:100%;min-height:48px;margin:0;white-space:normal;font-size:16px}
}

/* Composicion reutilizable: CKEditor y adjuntos conservan sus widgets/configuracion. */
.cpo-compose .cpo-compose-meta{grid-template-columns:minmax(0,7fr) minmax(0,3fr) minmax(0,2fr)}
.cpo-compose .cpo-compose-wide{grid-template-columns:minmax(0,1fr)}
.cpo-compose .cke,.cpo-compose .cke_inner,.cpo-compose .cke_contents{max-width:100%;min-width:0}
.cpo-compose .cke{width:100%;box-sizing:border-box}
.cpo-compose .cke_top{white-space:normal}
.cpo-compose .cke_toolbar{max-width:100%;white-space:normal}
.cpo-compose .cke_toolgroup{max-width:100%;white-space:normal}
.cpo-compose .cke_toolgroup a.cke_button{float:none;display:inline-block}
.cpo-compose .cke_contents iframe{width:100%;max-width:100%}
@media(max-width:991px){
    .cpo-compose .cpo-compose-meta{grid-template-columns:minmax(0,1fr)}
}

/* Prueba UI/UX de Conjunto Residencial: aislada del resto de modulos. */
.cpo-conjunto-trial{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;padding:16px}
.cpo-conjunto-trial .cpo-hero{padding:18px 20px;margin-bottom:12px}
.cpo-conjunto-trial .cpo-top-actions{margin-bottom:12px}
.cpo-conjunto-trial .cpo-top-actions:empty{display:none}
.cpo-conjunto-trial .btn{box-shadow:none}
.cpo-conjunto-trial .kv-panel,.cpo-conjunto-trial .cpo-card,.cpo-conjunto-trial .cpo-mobile-card{border-color:#e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cpo-conjunto-trial .cpo-mobile-card{margin-bottom:10px}
.cpo-conjunto-trial .cpo-card-header{background:#fff;border-left:0;padding:9px 10px 4px;line-height:1.4}
.cpo-conjunto-trial .cpo-card-body{padding:4px 10px 8px;border-top:0}
.cpo-conjunto-trial .cpo-conjunto-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
.cpo-conjunto-trial .cpo-unidades-name{flex:1;min-width:0;margin:0;color:#1f2937;font-size:16px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.cpo-conjunto-trial .cpo-unidades-meta{display:flex;flex-wrap:wrap;gap:2px 0;margin-top:3px;color:#6b7280;font-size:12px;line-height:1.5}
.cpo-conjunto-trial .cpo-unidades-meta>span{max-width:100%;min-width:0;overflow-wrap:anywhere}
.cpo-conjunto-trial .cpo-unidades-meta>span+span:before{content:"\2022";margin:0 7px;color:#9ca3af}
.cpo-conjunto-trial .cpo-unidades-meta strong{display:inline;color:inherit;font-weight:500;margin:0}
.cpo-conjunto-trial .cpo-conjunto-state{flex:0 1 auto;max-width:45%;padding:3px 7px;border-radius:20px;font-size:10px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.cpo-conjunto-trial .cpo-conjunto-state-active{background:#e8f7ed;color:#166534}
.cpo-conjunto-trial .cpo-conjunto-state-cancelled{background:#fcecef;color:#9f1239}
.cpo-conjunto-trial .cpo-conjunto-state-neutral{background:#f0f1f3;color:#4b5563}
.cpo-conjunto-trial .cpo-conjunto-state-warning{background:#fff4dc;color:#854d0e}
.cpo-conjunto-trial .cpo-conjunto-state-info{background:#eaf7f8;color:#176b87}
.cpo-conjunto-trial .cpo-conjunto-toggle{display:flex;align-items:center;gap:8px;width:auto;max-width:100%;min-width:0;min-height:44px;padding:8px 10px;border:1px solid #176b87;border-radius:7px;background:#176b87;color:#fff;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;text-align:left;white-space:normal;cursor:pointer}
.cpo-conjunto-trial .cpo-conjunto-toggle:hover{background:#147e8d;border-color:#147e8d}
.cpo-conjunto-trial .cpo-conjunto-toggle>span{flex:1;min-width:0}
.cpo-conjunto-trial .cpo-conjunto-chevron{margin-left:auto;transition:transform .15s}
.cpo-conjunto-trial .cpo-conjunto-toggle[aria-expanded="true"] .cpo-conjunto-chevron{transform:rotate(90deg)}
.cpo-conjunto-trial .cpo-conjunto-modules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:8px;min-width:0}
.cpo-conjunto-trial .cpo-conjunto-modules .cpo-conjunto-module{display:flex;align-items:center;gap:7px;min-width:0;min-height:44px;padding:8px;border:1px solid #e5e7eb;border-radius:7px;background:#f8f9fa;color:#1f2937;text-align:left;text-decoration:none;font-size:13px;line-height:1.35}
.cpo-conjunto-trial .cpo-conjunto-module>i{flex:0 0 18px;text-align:center;color:#176b87;font-size:16px}
.cpo-conjunto-trial .cpo-conjunto-module>span{min-width:0;overflow-wrap:anywhere}
.cpo-conjunto-trial .cpo-conjunto-module:hover,.cpo-conjunto-trial .cpo-conjunto-module:focus{background:#20a4a8;border-color:#20a4a8;text-decoration:none}
.cpo-conjunto-trial .cpo-conjunto-module:hover>i,.cpo-conjunto-trial .cpo-conjunto-module:focus>i{color:#fff}
.cpo-conjunto-trial .cpo-conjunto-card-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.cpo-conjunto-trial .cpo-conjunto-card-edit{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;font-size:15px}
.cpo-conjunto-trial .cpo-conjunto-desktop-modules{display:flex;flex-wrap:nowrap;gap:6px;width:498px}
.cpo-conjunto-trial .cpo-conjunto-desktop-modules .cpo-conjunto-module{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;padding:0;border:1px solid #e5e7eb;border-radius:8px;background:#f8f9fa;text-decoration:none;transition:background-color .15s,border-color .15s,transform .15s,box-shadow .15s}
.cpo-conjunto-trial .cpo-conjunto-desktop-modules .cpo-conjunto-module:hover,.cpo-conjunto-trial .cpo-conjunto-desktop-modules .cpo-conjunto-module:focus{background:#20a4a8;border-color:#20a4a8;transform:translateY(-2px);box-shadow:0 3px 8px rgba(23,107,135,.16)}
.cpo-conjunto-trial .cpo-conjunto-filter-toggle{display:inline-flex;align-items:center;gap:8px;min-height:44px;max-width:100%;padding:8px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#176b87;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}
.cpo-conjunto-trial .cpo-conjunto-filter-toggle:hover{background:#eaf7f8}
.cpo-conjunto-trial .cpo-conjunto-filter-toggle[aria-expanded="true"] .cpo-conjunto-chevron{transform:rotate(90deg)}
.cpo-conjunto-trial .cpo-conjunto-search.cpo-card{background:transparent;border:0;box-shadow:none}
.cpo-conjunto-trial .cpo-conjunto-search>.collapse>.cpo-card-body,.cpo-conjunto-trial .cpo-conjunto-search>.collapsing>.cpo-card-body{margin-top:8px;background:#fff;border:1px solid #e5e7eb;border-radius:8px}
.cpo-conjunto-trial .table{width:100%;table-layout:fixed}
.cpo-conjunto-trial .table>tbody>tr>td{padding:10px;border-color:#e5e7eb;border-bottom-width:1px;line-height:1.4;overflow-wrap:anywhere}
.cpo-conjunto-trial .table>tbody>tr:nth-child(even){background:#fafbfc}
.cpo-conjunto-trial .table>tbody>tr:hover{background:#f0f8f9}
.cpo-conjunto-trial .table .filters input{max-width:100%;min-width:0}
.cpo-conjunto-trial .cpo-conjunto-search{font-family:inherit;margin-bottom:12px}
.cpo-conjunto-trial .cpo-conjunto-search .cpo-card-body{padding:12px}
.cpo-conjunto-trial .cpo-conjunto-search .cpo-filter-grid{gap:10px;margin-bottom:8px}
.cpo-conjunto-trial .cpo-conjunto-search label.control-label{margin-bottom:5px;font-size:13px}
.cpo-conjunto-trial .cpo-conjunto-search .cpo-form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:8px;margin-top:8px}
.cpo-conjunto-trial .cpo-conjunto-search .cpo-form-actions .btn{width:auto;min-width:88px;min-height:44px;padding:8px 12px;font-size:14px}
/* 12 iconos requieren 498px: usar cards en tablets estrechas sin comprimir la barra. */
@media(max-width:991px){
    .cpo-conjunto-trial .cpo-desktop-grid{display:none}
    .cpo-conjunto-trial .cpo-mobile-list{display:block;width:100%;min-width:0}
    .cpo-conjunto-trial .cpo-mobile-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;min-width:0}
    .cpo-conjunto-trial .cpo-card-header{border-radius:11px 11px 0 0}
}
@media(max-width:767px){
    .cpo-conjunto-trial{padding:8px}
    .cpo-conjunto-trial .cpo-hero{padding:14px;margin-bottom:10px}
    .cpo-conjunto-trial .cpo-conjunto-search .form-control{height:44px;font-size:16px}
    .cpo-conjunto-trial .cpo-conjunto-search .select2-selection--single{min-height:44px}
    .cpo-conjunto-trial .cpo-conjunto-search .select2-selection__arrow{height:42px}
}
@media(max-width:360px){
    .cpo-conjunto-trial .cpo-conjunto-modules{grid-template-columns:minmax(0,1fr)}
}

/* Paginacion global SaaS: HTML nativo de LinkPager/Bootstrap 3 dentro de cpo-shell. */
.cpo-shell .pagination{display:flex;flex-wrap:wrap;align-items:center;gap:5px;max-width:100%;padding:0;margin:16px 0;background:transparent;border:0;border-radius:0;box-shadow:none;list-style:none}
.cpo-shell .pagination>li{display:block;flex:0 0 auto;max-width:100%;margin:0;padding:0}
.cpo-shell .pagination>li>a,.cpo-shell .pagination>li>span{display:flex;align-items:center;justify-content:center;float:none;box-sizing:border-box;min-width:36px;min-height:36px;max-width:100%;margin:0;padding:6px 10px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;font-size:14px;line-height:1.4;text-decoration:none;box-shadow:none;overflow-wrap:anywhere;transition:background-color .15s,border-color .15s,color .15s}
.cpo-shell .pagination>li:not(.active):not(.disabled)>a:hover,.cpo-shell .pagination>li:not(.active):not(.disabled)>a:focus{background:#eaf7f8;border-color:#176b87;color:#176b87}
.cpo-shell .pagination>li>a:focus-visible{outline:2px solid #176b87;outline-offset:2px}
.cpo-shell .pagination>.active>a,.cpo-shell .pagination>.active>span,.cpo-shell .pagination>.active>a:hover,.cpo-shell .pagination>.active>a:focus{background:#176b87;border-color:#176b87;color:#fff;font-weight:600}
.cpo-shell .pagination>.disabled:not(.active)>a,.cpo-shell .pagination>.disabled:not(.active)>span,.cpo-shell .pagination>.disabled:not(.active)>a:hover,.cpo-shell .pagination>.disabled:not(.active)>a:focus{background:#f4f5f6;border-color:#e5e7eb;color:#9ca3af;cursor:not-allowed;box-shadow:none}
@media(max-width:767px){
    .cpo-shell .pagination{justify-content:center;gap:4px;margin:10px 0}
    .cpo-shell .pagination>li>a,.cpo-shell .pagination>li>span{min-width:44px;min-height:44px;padding:6px 8px}
}

/* Variante compacta reutilizable: opt-in, sin alterar modulos existentes. */
.cpo-compact{padding:16px}
.cpo-compact .cpo-hero{padding:16px 18px;margin-bottom:12px}
.cpo-compact .cpo-hero h2{font-size:23px}
.cpo-compact .cpo-hero-icon{width:42px;height:42px;font-size:22px}
.cpo-compact .cpo-card,.cpo-compact .cpo-mobile-card,.cpo-compact .kv-panel{border-color:#e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cpo-compact .cpo-top-actions{margin-bottom:12px}
.cpo-compact .cpo-top-actions .btn{min-height:36px;padding:7px 12px;font-size:14px}
.cpo-compact .cpo-card-body{padding:12px}
.cpo-compact .cpo-form-section{margin-bottom:12px}
.cpo-compact .cpo-form-section-title{padding:10px 12px;font-size:15px;background:#f8fafb}
.cpo-compact .cpo-form-grid{gap:12px;margin-bottom:12px}
.cpo-compact .cpo-form-grid-five{grid-template-columns:repeat(5,minmax(0,1fr))}
.cpo-compact .cpo-form-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.cpo-compact .cpo-form-actions .btn{min-height:44px;padding:9px 16px}
.cpo-compact.cpo-detail .detail-view>tbody>tr>th,.cpo-compact.cpo-detail .detail-view>tbody>tr>td{padding:9px 12px;line-height:1.4}
.cpo-state{display:inline-block;padding:3px 8px;border-radius:20px;font-size:11px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.cpo-state-success{background:#e8f7ed;color:#166534}
.cpo-state-warning{background:#fff4dc;color:#854d0e}
.cpo-state-info{background:#eaf7f8;color:#176b87}
.cpo-state-neutral{background:#f0f1f3;color:#4b5563}
.cpo-action-toggle{display:inline-flex;align-items:center;gap:7px;min-height:44px;min-width:0;padding:8px 10px;border:1px solid #176b87;border-radius:8px;background:#176b87;color:#fff;font-size:13px;font-weight:600;white-space:normal;text-align:left;cursor:pointer}
.cpo-action-toggle:hover,.cpo-action-toggle:focus{background:#147e8d}
.cpo-action-chevron{transition:transform .15s}
.cpo-action-toggle[aria-expanded="true"] .cpo-action-chevron{transform:rotate(90deg)}
/* Facturacion: callbacks comunes para GridView y cards, sin cambiar procesos. */
.cpo-fp .table{width:100%;table-layout:fixed}
.cpo-fp .table>tbody>tr>td{padding:10px;border-color:#e5e7eb;border-bottom-width:1px;overflow-wrap:anywhere}
.cpo-fp .cpo-fp-period-column{width:18%}
.cpo-fp .cpo-fp-concepts-column{width:63%}
.cpo-fp .cpo-fp-process-column{width:12%}
.cpo-fp .cpo-fp-admin-column{width:7%}
.cpo-fp-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.cpo-fp-heading>strong{font-size:17px;color:#1f2937;overflow-wrap:anywhere}
.cpo-fp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:2px 4px;margin-top:4px;font-size:13px;color:#64748b;line-height:1.5}
.cpo-fp-meta>span{flex:0 0 auto;min-width:0;max-width:100%;overflow-wrap:anywhere}
.cpo-fp-meta>span:not(:last-child):after{content:" ·";margin-left:4px;color:#94a3b8}
.cpo-fp-accesses,.cpo-fp-admin{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0}
.cpo-fp-accesses>p{display:contents}
.cpo-fp-accesses>a,.cpo-fp-admin>a{display:inline-flex;text-decoration:none;min-width:0}
.cpo-fp .cpo-fp-accesses .btn,.cpo-fp .cpo-fp-admin .btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;width:36px;min-width:36px;min-height:36px;padding:5px;border-radius:8px;font-size:14px;box-shadow:none;white-space:normal;transition:background-color .15s,border-color .15s,color .15s}
.cpo-fp .cpo-fp-accesses .cpo-fp-nav{border:1px solid #e5e7eb;background:#f8fafb;color:#176b87}
.cpo-fp .cpo-fp-nav:hover,.cpo-fp .cpo-fp-nav:focus{background:#eaf7f8;border-color:#176b87;color:#176b87}
.cpo-fp .cpo-fp-accesses .cpo-fp-nav{width:44px}
.cpo-fp-code{display:inline-flex;align-items:center;justify-content:center;order:-1;flex:0 0 auto;box-sizing:border-box;min-width:34px;padding:3px 5px;border-radius:5px;background:#e4f3f5;color:#176b87;font-family:Arial,sans-serif;font-size:11px;font-weight:600;line-height:1.3;white-space:nowrap}
.cpo-fp-label{display:none;font-family:Arial,sans-serif;line-height:1.35;font-size:13px;font-weight:400;overflow-wrap:anywhere}
.cpo-fp .cpo-mobile-card{margin-bottom:10px;min-width:0}
.cpo-fp .cpo-card-header{padding:10px 12px 6px;background:#fff;border-left:0}
.cpo-fp-card-actions{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:4px 12px 10px;min-width:0}
.cpo-fp .cpo-card-body h3{margin:0 0 8px;font-size:13px;font-weight:600;color:#526a75}
@media(max-width:1199px){
    .cpo-compact .cpo-form-grid-five,.cpo-compact .cpo-form-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:991px){
    .cpo-fp .cpo-desktop-grid{display:none}
    .cpo-fp .cpo-mobile-list{display:block;min-width:0;width:100%}
    .cpo-fp .cpo-mobile-list .cpo-fp-accesses{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
    .cpo-fp .cpo-mobile-list .cpo-fp-accesses>a{width:100%;min-width:0}
    .cpo-fp .cpo-mobile-list .cpo-fp-accesses .btn{justify-content:flex-start;width:100%;min-width:0;min-height:44px;padding:9px;gap:7px;text-align:left}
    .cpo-fp .cpo-mobile-list .cpo-fp-label{display:inline;min-width:0}
    .cpo-fp .cpo-mobile-list .cpo-fp-admin{flex-wrap:nowrap;gap:5px}
    .cpo-fp .cpo-mobile-list .cpo-fp-admin .btn{width:44px;min-width:44px;min-height:44px}
    .cpo-fp .cpo-mobile-list .cpo-fp-admin .cpo-fp-label{display:none}
}
@media(max-width:767px){
    .cpo-compact{padding:8px}
    .cpo-compact .cpo-hero{padding:12px}
    .cpo-compact .cpo-hero h2{font-size:20px}
    .cpo-compact .cpo-top-actions .btn{min-height:44px}
    .cpo-compact .cpo-form-grid-five,.cpo-compact .cpo-form-grid-four{grid-template-columns:minmax(0,1fr)}
    .cpo-compact.cpo-detail .detail-view>tbody>tr{padding:9px 0}
    .cpo-compact.cpo-detail .detail-view>tbody>tr>th,.cpo-compact.cpo-detail .detail-view>tbody>tr>td{padding:0}
}
@media(max-width:360px){
    .cpo-fp .cpo-mobile-list .cpo-fp-accesses{grid-template-columns:minmax(0,1fr)}
    .cpo-fp-card-actions{flex-wrap:wrap}
}


/* Barra operativa del periodo: conceptos y recaudos separados, callbacks intactos. */
.cpo-fp-concepts-recaudos{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,112px);align-items:center;gap:12px;min-width:0}
.cpo-fp-recaudos{padding-left:12px;border-left:1px solid #e5e7eb;min-width:0}
.cpo-fp-recaudos>a{display:flex;min-width:0;text-decoration:none}
.cpo-fp .cpo-fp-recaudos-button{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;min-width:0;min-height:36px;padding:7px 8px;border:1px solid #16835f;border-radius:8px;background:#16835f;color:#fff;font-family:Arial,sans-serif;font-size:13px;font-weight:600;white-space:normal;box-shadow:0 1px 2px rgba(22,131,95,.12);transition:background-color .15s,border-color .15s}
.cpo-fp .cpo-fp-recaudos-button:hover,.cpo-fp .cpo-fp-recaudos-button:focus{background:#116c4e;border-color:#116c4e;color:#fff}
@media(min-width:992px){
    .cpo-fp .table>tbody>tr>td{vertical-align:middle;border-left:0;border-right:0;padding:10px 8px;line-height:1.4}
    .cpo-fp .table>tbody>tr{background:#fff}
    .cpo-fp .table>tbody>tr:hover{background:#f5fafb}
    .cpo-fp .table>tbody>tr>td.cpo-fp-process-column{border-left:1px solid #e5e7eb;vertical-align:middle}
    .cpo-fp .cpo-fp-process-column>.cpo-fp-accesses{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px}
    .cpo-fp .cpo-fp-accesses .btn{width:32px;min-width:32px;min-height:32px;padding:4px}
    .cpo-fp .cpo-fp-concepts .cpo-fp-nav{width:46px;min-width:46px;gap:3px}
    .cpo-fp .cpo-fp-code{font-size:11px}
    .cpo-fp .cpo-fp-accesses{gap:4px}
    .cpo-fp .cpo-fp-admin{justify-content:flex-end}
    .cpo-fp .cpo-fp-admin .btn{width:32px;min-width:32px;min-height:32px}
    .cpo-fp .cpo-fp-heading{flex-wrap:wrap;justify-content:flex-start}
    .cpo-fp .cpo-fp-heading>strong{font-weight:600}
    .cpo-fp .table{table-layout:auto}
    .cpo-fp .cpo-fp-period-column{width:1%}
    .cpo-fp .cpo-fp-meta{flex-wrap:nowrap;white-space:nowrap;font-size:13px}
    .cpo-fp .kv-panel{box-shadow:none}
}
@media(max-width:991px){
    .cpo-fp-concepts-recaudos{grid-template-columns:minmax(0,1fr);gap:8px}
    .cpo-fp-recaudos{padding:8px 0 0;border-left:0;border-top:1px solid #e5e7eb}
    .cpo-fp .cpo-fp-recaudos-button{min-height:44px;justify-content:flex-start;padding:9px}
}

/* Familia de conceptos: cinco accesos desktop, cobros en lista desplegable. */
.cpo-fp-concepts-family{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px;min-width:0}
.cpo-fp-concepts-dropdown{min-width:0;max-width:100%}
.cpo-fp-concepts-toggle{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:36px;padding:7px 9px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafb;color:#1f2937;font-size:12px;font-weight:600;line-height:1.4;white-space:normal;text-align:left;cursor:pointer;transition:background-color .15s,border-color .15s}
.cpo-fp-concepts-toggle>i{color:#176b87}
.cpo-fp-concepts-toggle:hover,.cpo-fp-concepts-toggle:focus{background:#eaf7f8;border-color:#176b87}
.cpo-fp-concepts-toggle[aria-expanded="true"] .cpo-action-chevron{transform:rotate(180deg)}
.cpo-fp .cpo-fp-concepts-panel{position:static;float:none;width:340px;max-width:100%;min-width:0;margin:8px 0 0;padding:0;border:1px solid #e5e7eb;border-radius:8px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cpo-fp .cpo-fp-concepts-dropdown.open>.cpo-fp-concepts-panel{display:block}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts{display:flex;flex-direction:column;gap:0}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts>a{display:flex;width:100%;min-width:0}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts>a+a{border-top:1px solid #e5e7eb}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts .cpo-fp-nav{width:100%;min-width:0;min-height:44px;padding:9px 12px;border:0;border-radius:0;background:#fff;justify-content:flex-start;gap:8px;text-align:left;color:#1f2937}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts>a:first-child .cpo-fp-nav{border-radius:7px 7px 0 0}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts>a:last-child .cpo-fp-nav{border-radius:0 0 7px 7px}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-nav:hover,.cpo-fp .cpo-fp-concepts-panel .cpo-fp-nav:focus{background:#eaf7f8}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-nav>i,.cpo-fp .cpo-fp-direct-concepts .cpo-fp-nav>i{color:#176b87;flex:0 0 auto}
.cpo-fp .cpo-fp-concepts-panel .cpo-fp-label{display:inline;min-width:0;font-size:13px;font-weight:600}
.cpo-fp-concept-name{display:block;margin-top:2px;color:#64748b;font-size:11px;font-weight:400;line-height:1.4}
.cpo-fp .cpo-fp-direct-concepts{gap:6px}
.cpo-fp .cpo-fp-direct-concepts .cpo-fp-nav{width:auto;min-width:0;min-height:36px;padding:7px 9px;gap:6px;color:#1f2937}
.cpo-fp .cpo-fp-direct-concepts .cpo-fp-label{display:inline;min-width:0;font-size:12px}
@media(min-width:992px){
    .cpo-fp-concepts-recaudos{align-items:start}
    .cpo-fp-recaudos{padding-top:0}
}
@media(max-width:991px){
    .cpo-fp-concepts-family{display:block}
    .cpo-fp .cpo-fp-concepts-toggle{display:none}
    .cpo-fp .cpo-fp-concepts-panel{display:block;width:100%;margin:0;padding:0;border:0;box-shadow:none}
    .cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
    .cpo-fp .cpo-fp-concepts-panel .cpo-fp-label{flex:1;min-width:0}
    .cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts>a+a{border-top:0}
    .cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts .cpo-fp-nav{padding:9px;border:1px solid #e5e7eb;border-radius:8px;background:#f8fafb}
    .cpo-fp .cpo-mobile-list .cpo-fp-direct-concepts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:6px}
    .cpo-fp .cpo-mobile-list .cpo-fp-direct-concepts .cpo-fp-nav{width:100%;min-height:44px;padding:9px}
}
@media(max-width:360px){
    .cpo-fp .cpo-fp-concepts-panel .cpo-fp-concepts{grid-template-columns:minmax(0,1fr)}
}


/* Configuraciones de facturación: columnas nativas Bootstrap 3, sin Grid/Flex. */
.cpo-fpc.cpo-form .row{margin-left:-15px;margin-right:-15px}
.cpo-fpc.cpo-form .row>[class*="col-"]{padding-left:15px;padding-right:15px}
.cpo-fpc.cpo-form .control-label{display:block;white-space:normal;overflow-wrap:break-word}
.cpo-fpc.cpo-form .form-control{max-width:none}
.cpo-fpc .cpo-form-note{margin:12px 0 0;font-size:13px}

/* PDF auxiliar para el dialogo nativo de impresion del navegador. */
.cpo-recibos-print-frame{position:fixed;left:0;bottom:0;width:1px;height:1px;border:0;opacity:0;pointer-events:none}
.cpo-recibos-print-status{font-size:14px;color:#526a75;overflow-wrap:break-word}
.cpo-recibos-print-status:empty{display:none}

/* Espera de generacion e impresion de recibos de caja. */
.cpo-recibos-print-wait{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1060;background:rgba(15,23,42,.62)}
.cpo-recibos-print-wait-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - 32px);max-width:340px;padding:26px 24px 24px;text-align:center;color:#1f2937;background:#fff;border:1px solid #E5E7EB;border-top:4px solid #20a4a8;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cpo-recibos-print-wait-image{display:block;margin:20px auto 16px;width:96px;max-width:100%;height:auto}
.cpo-recibos-print-wait-content p{margin:0;font-size:16px;font-weight:600;color:#176b87;overflow-wrap:break-word}
.cpo-recibos-print-wait-heading{font-size:18px;font-weight:600}
.cpo-recibos-print-wait-heading i{margin-right:7px;color:#176b87}
.cpo-recibos-print-wait-note{display:block;margin-top:10px;font-size:13px;line-height:1.5;color:#64748b;overflow-wrap:break-word}

/* Estados de viviendas: centrar los iconos de factura, correo, WhatsApp y saldos. */
.cpo-inmuebles .cpo-desktop-grid .cpo-estado-action-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;line-height:1;vertical-align:middle;top:0}
.cpo-inmuebles .cpo-mobile-list .cpo-estado-action-icon{display:flex;align-items:center;justify-content:center;padding:0;line-height:1;top:0}

/* Login exclusivo de administracion. */
.cpo-admin-login-layout{background:#f4f7f9;color:#1f2937;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.cpo-admin-login-layout .wrap{min-height:100vh;margin:0;padding:0}
.cpo-admin-login-layout .wrap>.container{width:100%;max-width:1200px;padding:24px 16px}
.cpo-admin-login{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 48px)}
.cpo-admin-login-card{width:100%;max-width:940px;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"story brand" "story content" "story footer";background:#fff;border:1px solid #E5E7EB;border-radius:16px;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cpo-admin-login-brand{grid-area:brand;padding:30px 36px 16px;text-align:center;border-bottom:1px solid #eef2f5}
.cpo-admin-login-brand img{display:block;width:100%;max-width:230px;height:auto;margin:0 auto}
.cpo-admin-login-content{grid-area:content;padding:26px 36px 12px;min-width:0}
.cpo-admin-login-kicker{color:#176b87;font-size:12px;font-weight:700;letter-spacing:1px}
.cpo-admin-login-content h1{margin:10px 0;font-size:28px;line-height:1.2;font-weight:600;color:#1f2937}
.cpo-admin-login-intro{margin:0 0 24px;color:#64748b;font-size:15px;line-height:1.5}
.cpo-admin-login-content .control-label{color:#334155;font-weight:600}
.cpo-admin-login-content .form-control{height:48px;border:1px solid #cbd5e1;border-radius:8px;box-shadow:none;font-size:16px}
.cpo-admin-login-content .form-control:focus{border-color:#20a4a8;box-shadow:0 0 0 3px rgba(32,164,168,.12)}
.cpo-admin-login-content .has-error .form-control{border-color:#a94442}
.cpo-admin-login-content .help-block{overflow-wrap:break-word}
.cpo-admin-login-content .checkbox label{display:flex;align-items:center;min-height:44px;padding-left:24px;color:#475569}
.cpo-admin-login-content .checkbox input{margin-top:0}
.cpo-admin-login-submit{width:100%;min-height:48px;background:#176b87;border-color:#176b87;border-radius:8px;font-size:16px;font-weight:600}
.cpo-admin-login-submit:hover,.cpo-admin-login-submit:focus{background:#12586f;border-color:#12586f}
.cpo-admin-login-footer{grid-area:footer;padding:18px 24px;text-align:center;border-top:1px solid #eef2f5;color:#64748b;font-size:12px}
.cpo-admin-login-footer img{display:block;width:110px;max-width:100%;height:auto;margin:8px auto 0}
@media(max-width:480px){
    .cpo-admin-login-layout .wrap>.container{padding:16px 12px}
    .cpo-admin-login{min-height:calc(100vh - 32px)}
    .cpo-admin-login-brand{padding:22px 24px 18px}
    .cpo-admin-login-content{padding:22px 24px 10px}
    .cpo-admin-login-content h1{font-size:25px}
}

.cpo-admin-login-story{grid-area:story;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:44px 36px;background:linear-gradient(135deg,#176b87,#20a4a8);border-radius:15px 0 0 15px;color:#fff}
.cpo-admin-login-story-tag{font-size:12px;letter-spacing:1.5px;font-weight:600;color:#d8f3f4}
.cpo-admin-login-story h2{margin:24px 0 18px;font-size:36px;font-weight:600;line-height:1.2;color:#fff}
.cpo-admin-login-story p{font-size:16px;line-height:1.7;color:#e3f4f6}
.cpo-admin-login-story ul{list-style:none;margin:26px 0;padding:0}
.cpo-admin-login-story li{display:flex;align-items:center;gap:12px;margin:16px 0;font-size:15px}
.cpo-admin-login-story li i{display:flex;align-items:center;justify-content:center;flex:0 0 36px;height:36px;border-radius:8px;background:rgba(255,255,255,.14)}
.cpo-admin-login-story-note{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.2);font-size:13px;color:#e3f4f6}
@media(max-width:767px){
    .cpo-admin-login-card{max-width:460px;grid-template-columns:minmax(0,1fr);grid-template-areas:"brand" "content" "footer";border-top:4px solid #20a4a8}
    .cpo-admin-login-story{display:none}
}

/* Módulos administrativos: componentes compartidos, acotados al alcance aprobado. */
.cpo-module-page{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
.cpo-module-page .cpo-card,.cpo-module-page .kv-panel,.cpo-module-page .cpo-mobile-card,.cpo-module-page .cpo-module-table .panel{border-color:#e5e7eb;box-shadow:0 1px 3px rgba(0,0,0,.08)}
.cpo-module-page .cpo-module-table .panel{background:#fff;border-radius:12px}
.cpo-module-page .cpo-mobile-card{margin-bottom:10px}
.cpo-module-page .table>tbody>tr>td{padding:9px 10px;border-bottom-width:1px;line-height:1.5}
.cpo-module-page .cpo-module-table .table{width:100%;table-layout:fixed}
.cpo-module-page .cpo-module-table .table th,.cpo-module-page .cpo-module-table .table td{white-space:normal;overflow-wrap:anywhere}
.cpo-module-page .cpo-module-table .form-control{width:100%;min-width:0}
.cpo-module-page .cpo-module-table .kv-grid-container{position:relative;min-width:0;max-width:100%}
.cpo-module-page .cpo-module-action{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-width:36px;min-height:36px;padding:8px;border-radius:8px;white-space:normal}
.cpo-module-page .cpo-module-action>i{top:0;line-height:1}
.cpo-module-page .table td .cpo-module-action{min-width:36px;min-height:36px}
.cpo-module-page .cpo-module-action-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);overflow:hidden}
.cpo-module-page .cpo-module-navigation{background:#f8f9fa;border:1px solid #e5e7eb;color:#176b87}
.cpo-module-page a:hover .cpo-module-navigation,.cpo-module-page a:focus .cpo-module-navigation{background:#20a4a8;color:#fff}
.cpo-module-page .cpo-module-toggle{min-height:44px;background:#f8f9fa;border-color:#e5e7eb;color:#176b87}
.cpo-module-page .cpo-module-toggle[aria-expanded="true"] .glyphicon-chevron-down{transform:rotate(180deg)}
.cpo-module-page .cpo-module-filter-toggle{margin-bottom:8px}
.cpo-module-page .cpo-module-table .filters.collapse:not(.in){display:none}
.cpo-module-page .cpo-module-table .filters.collapse.in{display:table-row}
.cpo-module-page .cpo-module-card-actions{display:flex;flex-wrap:wrap;gap:6px;padding-top:8px}
.cpo-module-page .cpo-module-cards .cpo-card-header{padding:10px 12px 4px;font-size:16px;overflow-wrap:anywhere;background:#fff;border-left:0}
.cpo-module-page .cpo-module-cards .cpo-card-header strong{color:#1f2937;font-weight:600}
.cpo-module-page .cpo-module-cards .cpo-card-body{padding:6px 12px 10px;min-width:0}
.cpo-module-page .cpo-record-data{margin-bottom:8px}
.cpo-module-page .cpo-record-data>div{padding:5px 0}
.cpo-module-page .cpo-record-data dd{font-size:14px;margin-top:2px}
.cpo-module-page .cpo-record-data img{max-width:100%;height:auto;border-radius:8px}
.cpo-module-form .row{margin-left:-10px;margin-right:-10px}
.cpo-module-form .row>[class*="col-"]{padding-left:10px;padding-right:10px}
.cpo-module-form .row>.form-group{margin-bottom:0}
.cpo-module-form .cpo-card-body{padding:14px}
.cpo-module-form label.control-label{display:block;white-space:normal;margin-bottom:5px}
.cpo-module-form .form-control{max-width:none}
.cpo-module-form .cpo-form-actions .btn-primary{background:#18a56f;border-color:#18a56f;color:#fff}
.cpo-module-form .file-input{min-width:0;max-width:100%}
.cpo-module-form .file-preview-frame{max-width:calc(100% - 16px)}
.cpo-module-form .file-preview-frame .kv-file-content{max-width:100%}
@media(min-width:768px) and (max-width:991px){
    .cpo-module-form .row>[class*="col-"]:nth-child(2n+1){clear:left}
}
@media(max-width:991px){
    .cpo-module-page .cpo-module-cards{display:block}
    .cpo-module-page .cpo-top-actions{flex-direction:row;align-items:center;font-size:14px}
    .cpo-module-page .cpo-top-actions>.btn{width:auto;max-width:100%}
    /* Conserva una única instancia de filtros, IDs y eventos nativos del GridView. */
    .cpo-module-page .cpo-module-table table{display:block;width:100%!important;min-width:0;table-layout:auto}
    .cpo-module-page .cpo-module-table colgroup,.cpo-module-page .cpo-module-table tbody,.cpo-module-page .cpo-module-table tfoot,.cpo-module-page .cpo-module-table .pagination{display:none}
    .cpo-module-page .cpo-module-table thead{display:block}
    .cpo-module-page .cpo-module-table thead>tr{display:flex;flex-wrap:wrap}
    .cpo-module-page .cpo-module-table .filters.collapse.in{display:flex}
    .cpo-module-page .cpo-module-table thead>tr>th{display:block;width:auto!important;max-width:none!important;flex:0 1 auto;padding:6px;border:0}
    .cpo-module-page .cpo-module-table thead>tr>th:empty{display:none}
    .cpo-module-page .cpo-module-table thead>tr>th>a{display:block;padding:10px 7px;min-height:44px;overflow-wrap:anywhere}
    .cpo-module-page .cpo-module-table .filters>td{display:block;width:50%!important;max-width:none!important;min-width:0;padding:8px;border:0;text-align:left!important}
    .cpo-module-page .cpo-module-table .filters>td:before{display:block;content:attr(data-label);font-size:13px;font-weight:600;color:#526a75;margin-bottom:4px;overflow-wrap:anywhere}
    .cpo-module-page .cpo-module-table .filters>td .form-control{width:100%;min-width:0;height:44px;font-size:16px}
    .cpo-module-page .cpo-module-table .filters>td:not([data-label]){display:none}
    .cpo-module-page .cpo-module-table .kv-grid-container{overflow:visible!important}
    .cpo-module-page .cpo-module-table .kv-panel-before,.cpo-module-page .cpo-module-table .panel-heading{min-width:0;overflow-wrap:anywhere}
    .cpo-module-page .cpo-module-table .kv-panel-after,.cpo-module-page .cpo-module-table .panel-footer{display:none}
    .cpo-module-page .cpo-module-cards .cpo-module-action{min-height:44px;min-width:44px}
    .cpo-module-page .cpo-module-cards .cpo-module-action-label{position:static;width:auto;height:auto;padding:0;margin:0;clip:auto;overflow:visible;font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}
    .cpo-module-form .file-input>.input-group{display:flex;flex-direction:column;gap:8px}
    .cpo-module-form .file-input>.input-group>.file-caption{width:100%;border-radius:8px}
    .cpo-module-form .file-input>.input-group>.input-group-btn{display:flex;flex-wrap:wrap;width:100%;white-space:normal;gap:6px}
    .cpo-module-form .file-input .input-group-btn>.btn{min-height:44px;max-width:100%;margin:0;white-space:normal}
}
@media(max-width:767px){
    .cpo-module-form .row>[class*="col-"]{padding-left:10px;padding-right:10px}
    .cpo-module-page .cpo-module-table .filters>td{width:100%!important}
}

/* Zona de arrastre: exclusivamente los selectores de importación. */
.cpo-import-preview .file-drop-zone{min-height:140px;border:2px dashed #9ec9d1;border-radius:10px;background:#f4fafb;transition:background .15s,border-color .15s}
.cpo-import-preview .file-drop-zone-title{padding:24px 12px;color:#176b87;font-size:16px;line-height:1.5;overflow-wrap:break-word}
.cpo-import-preview .file-drop-zone:hover,.cpo-import-preview .file-drop-zone.file-highlighted{background:#e8f5f6;border-color:#20a4a8}
.cpo-import-preview.file-preview{min-width:0}

/* Estados de viviendas: número del inmueble destacado en ambas presentaciones. */
.cpo-inmuebles .cpo-estado-inmueble{display:block;font-size:16px;font-weight:600;line-height:1.25;overflow-wrap:break-word}

@media(max-width:767px){
    .cpo-inmuebles .cpo-mobile-list .cpo-card-header .cpo-estado-inmueble{font-size:36px;font-weight:700;line-height:1.15;margin-top:6px}
}
