:root{--bg:#f4f7fb;--card:#fff;--text:#17243c;--muted:#64748b;--primary:#173b6c;--accent:#82ca19;--border:#e5eaf1}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Arial,sans-serif;background:var(--bg);color:var(--text)}a{color:var(--primary);text-decoration:none}.login-body{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#101d33,#173b6c)}.login-card{width:min(420px,92vw);background:#fff;border-radius:22px;padding:34px;box-shadow:0 25px 80px #0005}.brand-mark{width:58px;height:58px;border-radius:18px;background:var(--accent);display:grid;place-items:center;font-weight:900;font-size:20px}.login-card h1{margin-bottom:4px}.login-card p{color:var(--muted)}label{display:grid;gap:7px;font-size:14px;font-weight:650;margin-bottom:14px}input,select,textarea{width:100%;padding:12px 13px;border:1px solid var(--border);border-radius:10px;background:#fff;font:inherit}textarea{min-height:76px}.btn{display:inline-flex;justify-content:center;align-items:center;padding:10px 15px;border:0;border-radius:10px;background:#e8edf5;color:var(--text);cursor:pointer;font-weight:700}.btn.primary{background:var(--primary);color:#fff;width:100%}.layout{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{background:#111d32;color:#fff;padding:25px 18px}.logo{font-size:20px;font-weight:900;margin-bottom:30px}.logo span{color:var(--accent)}.sidebar nav{display:grid;gap:6px}.sidebar nav a{color:#dbe6f7;padding:11px 12px;border-radius:10px}.sidebar nav a:hover{background:#ffffff12}.content{min-width:0}.topbar{height:72px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 26px}.topbar small{display:block;color:var(--muted)}.main{padding:24px}.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 5px 25px #17243c0a}.card.stat span{color:var(--muted);font-size:14px}.card.stat strong{display:block;font-size:27px;margin-top:8px}.card h2{font-size:18px;margin:0 0 18px}.card-head{display:flex;align-items:center;justify-content:space-between}.grid.two{display:grid;grid-template-columns:minmax(300px,420px) 1fr;gap:18px}.form-grid{display:grid}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--border);white-space:nowrap}th{font-size:12px;text-transform:uppercase;color:var(--muted)}.badge{padding:5px 8px;border-radius:999px;background:#eef2f7;font-size:12px}.alert{padding:12px 14px;border-radius:10px;margin-bottom:15px}.alert.success{background:#e9f8d9}.alert.danger{background:#fee8e8;color:#991b1b}@media(max-width:900px){.layout{grid-template-columns:1fr}.sidebar{display:none}.cards{grid-template-columns:repeat(2,1fr)}.grid.two{grid-template-columns:1fr}}@media(max-width:520px){.cards{grid-template-columns:1fr}.topbar{padding:0 14px;font-size:13px}.main{padding:14px}}

/* v3.4 CRUD en modales */
.card-full{width:100%}.toolbar-wrap{gap:16px;flex-wrap:wrap;margin-bottom:18px}.toolbar-wrap h2{margin-bottom:4px}.muted,.field-help{color:var(--muted)}.auto-width{width:auto!important}.btn-sm{padding:7px 10px;font-size:12px}.actions{display:flex;gap:7px;align-items:center}.inline-form{display:inline-flex;margin:0}.data-table td{vertical-align:middle}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fef3c7;color:#92400e}.badge-muted{background:#eef2f7;color:#64748b}.modal{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;padding:18px}.modal.is-open{display:flex}.modal-backdrop{position:absolute;inset:0;background:#0f172acc;backdrop-filter:blur(3px)}.modal-dialog{position:relative;width:min(560px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 30px 90px #0006}.modal-lg{width:min(820px,96vw)}.modal-header,.modal-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border)}.modal-footer{border-top:1px solid var(--border);border-bottom:0;justify-content:flex-end}.modal-header h2{margin:0 0 3px}.modal-close{border:0;background:transparent;font-size:30px;line-height:1;cursor:pointer;color:var(--muted)}.modal-body{padding:20px}.modal-open{overflow:hidden}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.span-2{grid-column:1/-1}.checkbox-label{display:flex;grid-template-columns:auto 1fr;align-items:center;gap:10px}.checkbox-label input{width:auto;margin:0}.field-help{display:block;font-size:12px;font-weight:400;margin-top:3px}@media(max-width:680px){.form-grid-2{grid-template-columns:1fr}.span-2{grid-column:auto}.actions{min-width:240px}.modal{padding:8px}.modal-dialog{max-height:96vh}}

/* v3.5 controles */
.btn-danger{background:#fee2e2;color:#991b1b}.btn:disabled{opacity:.65;cursor:not-allowed}

/* v3.2 Calendario restaurado */
.calendar-card{margin-bottom:18px}.calendar-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}.calendar-toolbar h2{margin-bottom:5px}.calendar-toolbar p{margin:0;color:var(--muted);font-size:14px}.calendar-nav{display:flex;align-items:center;gap:9px;white-space:nowrap}.calendar-nav strong{min-width:150px;text-align:center}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px 18px;padding:11px 0 16px;border-top:1px solid var(--border);font-size:13px}.calendar-legend span{display:inline-flex;align-items:center;gap:7px}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-dot.pagado{background:#16a34a}.legend-dot.parcial{background:#eab308}.legend-dot.vencido{background:#dc2626}.legend-dot.hoy{background:#f97316}.legend-dot.proximo{background:#2563eb}.calendar-scroll{overflow-x:auto;padding-bottom:3px}.calendar-grid{min-width:980px;display:grid;grid-template-columns:repeat(7,minmax(140px,1fr))}.calendar-weekdays{background:#f8fafc;border:1px solid var(--border);border-bottom:0;border-radius:12px 12px 0 0}.calendar-weekdays div{text-align:center;padding:10px;font-size:12px;font-weight:800;text-transform:uppercase;color:var(--muted)}.calendar-days{border-left:1px solid var(--border);border-top:1px solid var(--border)}.calendar-day{min-height:145px;padding:9px;background:#fff;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.calendar-day.empty{background:#f8fafc}.calendar-day.is-today{box-shadow:inset 0 0 0 2px #f97316}.calendar-day-number{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:7px}.calendar-day-number>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800}.calendar-day.is-today .calendar-day-number>span{background:#f97316;color:#fff}.calendar-day-number small{color:var(--muted);font-size:10px}.calendar-events{display:grid;gap:5px}.calendar-event{display:block;padding:6px 7px;border-radius:8px;border-left:4px solid;background:#f8fafc;color:var(--text);font-size:11px;line-height:1.25;overflow:hidden}.calendar-event strong,.calendar-event span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event span{margin-top:2px;opacity:.82}.calendar-event.pagado{border-color:#16a34a;background:#ecfdf3}.calendar-event.parcial{border-color:#eab308;background:#fefce8}.calendar-event.vencido{border-color:#dc2626;background:#fef2f2}.calendar-event.hoy{border-color:#f97316;background:#fff7ed}.calendar-event.proximo{border-color:#2563eb;background:#eff6ff}.status-pagado{background:#dcfce7;color:#166534}.status-parcial{background:#fef9c3;color:#854d0e}.status-vencido{background:#fee2e2;color:#991b1b}.status-pendiente{background:#dbeafe;color:#1d4ed8}@media(max-width:700px){.calendar-toolbar{display:grid}.calendar-nav{justify-content:space-between}.calendar-nav strong{min-width:0}.calendar-card{padding:14px}}


/* v4.0 Estados de cuenta */
.statement-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.statement-toolbar h1{margin:0 0 5px;font-size:25px}.statement-toolbar p{margin:0;color:var(--muted)}.statement-filters{display:grid;grid-template-columns:2fr repeat(3,minmax(145px,1fr)) auto auto;gap:12px;align-items:end;margin-bottom:18px}.statement-filters label{margin:0}.statement-check{align-self:center;margin-top:18px!important}.statement-filter-actions{display:flex;gap:8px;align-items:center}.statement-person-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.statement-person-header h2{margin:3px 0}.statement-person-header p{margin:0;color:var(--muted)}.statement-person-header>div:last-child{text-align:right}.statement-person-header strong{display:block;margin-top:6px}.statement-cards small{display:block;color:var(--muted);margin-top:7px}.statement-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}.statement-tabs button{border:1px solid var(--border);background:#fff;color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer;font-weight:750}.statement-tabs button.is-active{background:var(--primary);color:#fff;border-color:var(--primary)}.statement-tab{display:none}.statement-tab.is-active{display:block}.table-subline{display:block;color:var(--muted);margin-top:3px}.progress{width:120px;height:8px;border-radius:99px;background:#e7edf5;overflow:hidden;display:inline-block;margin-right:7px}.progress span{display:block;height:100%;background:var(--accent);border-radius:inherit}.statement-tab .card-head strong{font-size:20px}@media(max-width:1200px){.statement-filters{grid-template-columns:repeat(3,1fr)}.statement-filter-actions{grid-column:auto}.statement-check{margin-top:0!important}}@media(max-width:720px){.statement-toolbar,.statement-person-header{display:grid}.statement-person-header>div:last-child{text-align:left}.statement-filters{grid-template-columns:1fr}.statement-filter-actions{grid-column:auto}.statement-cards{grid-template-columns:1fr 1fr}}
@media print{body{background:#fff}.sidebar,.topbar,.no-print,.alert{display:none!important}.layout{display:block}.main{padding:0}.card{box-shadow:none;border-color:#bbb;break-inside:avoid}.statement-tab{display:block!important;margin-bottom:18px}.statement-tabs{display:none}.cards{grid-template-columns:repeat(4,1fr)}th,td{padding:7px;font-size:10px}.statement-toolbar{display:block}.content{width:100%}}

/* v4.5 Adaptación global y navegación móvil */
html{min-width:320px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
button,input,select,textarea{max-width:100%}
.content{width:100%;overflow:hidden}
.main{width:100%;max-width:1600px;margin:0 auto}
.sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.nav-toggle,.nav-close{display:none;border:0;cursor:pointer}
.sidebar-backdrop{display:none;position:fixed;inset:0;z-index:1090;border:0;background:rgba(15,23,42,.62);backdrop-filter:blur(2px)}
.sidebar nav a.is-active{background:#ffffff18;color:#fff;font-weight:800;box-shadow:inset 3px 0 0 var(--accent)}
.sidebar-mobile-user{display:none;margin-top:auto;padding:18px 12px 4px;border-top:1px solid #ffffff1f;color:#dbe6f7}
.sidebar-mobile-user strong,.sidebar-mobile-user small,.sidebar-mobile-user a{display:block}
.sidebar-mobile-user small{margin:4px 0 12px;color:#9fb0c8}
.sidebar-mobile-user a{color:#fff;padding:7px 0}
.topbar-start{display:flex;align-items:center;gap:12px;min-width:0}
.topbar-title{min-width:0}.topbar-title b,.topbar-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-user{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:0}.topbar-user span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.card-head,.toolbar-wrap,.statement-toolbar,.statement-person-header{flex-wrap:wrap}
.actions,.usr-actions,.usr-row-actions,.statement-filter-actions,.rem-actions{flex-wrap:wrap}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.table-wrap.is-scrollable{background-image:linear-gradient(to right,#fff,#fff),linear-gradient(to right,#fff,#fff),linear-gradient(to right,rgba(15,23,42,.10),transparent),linear-gradient(to left,rgba(15,23,42,.10),transparent);background-position:left center,right center,left center,right center;background-repeat:no-repeat;background-size:24px 100%,24px 100%,12px 100%,12px 100%;background-attachment:local,local,scroll,scroll}
table{min-width:max-content}
th,td{max-width:360px}
td{white-space:normal}th{white-space:nowrap}
.inline-form{max-width:100%;flex-wrap:wrap}.inline-form input,.inline-form select{min-width:130px;flex:1 1 150px}
.modal-dialog,.rem-modal-box,.usr-box{max-width:calc(100vw - 24px)}

@media (max-width:1200px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .main{padding:20px}
  .grid.two{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}
}

@media (max-width:1023px){
  .layout{display:block;min-height:100vh}
  .sidebar{display:flex;flex-direction:column;position:fixed;z-index:1100;inset:0 auto 0 0;width:min(320px,86vw);padding:20px 16px;transform:translateX(-105%);transition:transform .22s ease;box-shadow:18px 0 55px rgba(0,0,0,.28);overflow-y:auto}
  .nav-open .sidebar{transform:translateX(0)}
  .nav-open .sidebar-backdrop{display:block}
  .nav-open{overflow:hidden}
  .nav-close{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#ffffff14;color:#fff;font-size:27px}
  .nav-toggle{display:grid;place-items:center;flex:0 0 auto;width:42px;height:42px;border-radius:11px;background:#e8edf5;color:var(--text);font-size:22px}
  .sidebar-mobile-user{display:block}
  .topbar{position:sticky;top:0;z-index:1000;height:auto;min-height:68px;padding:10px 18px;gap:12px}
  .topbar-user span{display:none}
  .grid.two{grid-template-columns:1fr}
}

@media (max-width:760px){
  .main{padding:14px}
  .topbar{padding:9px 12px}
  .topbar-user a:first-of-type{display:none}
  .cards,.statement-cards,.rem-summary,.usr-grid{grid-template-columns:1fr!important}
  .card{padding:15px;border-radius:13px}
  .card-head{align-items:flex-start;gap:12px}
  .card-head>.btn,.toolbar-wrap>.btn{width:100%!important}
  .actions{width:100%}.actions>.btn,.actions>form,.actions>form>.btn{flex:1 1 140px}
  .btn{min-height:42px}
  input,select,textarea{font-size:16px}
  .modal{padding:0;align-items:flex-end}
  .modal-dialog{width:100%;max-width:100%;max-height:94dvh;border-radius:18px 18px 0 0}
  .modal-header,.modal-footer,.modal-body{padding:15px}
  .modal-footer{position:sticky;bottom:0;background:#fff;z-index:2;flex-wrap:wrap}
  .modal-footer .btn{flex:1 1 140px}
  .calendar-grid{min-width:840px;grid-template-columns:repeat(7,minmax(120px,1fr))}
  .calendar-day{min-height:125px}
  .statement-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px}.statement-tabs button{flex:0 0 auto}
  .login-card{width:min(100% - 24px,440px);padding:24px;border-radius:18px}
}

@media (max-width:420px){
  .topbar-user a{font-size:13px}
  .topbar-title b{font-size:15px}.topbar-title small{font-size:11px}
  .main{padding:10px}
  .card{padding:12px}
  .btn{width:100%}
  .calendar-card{padding:10px}
  .calendar-nav{display:grid;grid-template-columns:auto 1fr auto;width:100%}.calendar-nav .btn{width:auto}
}

@media (hover:none) and (pointer:coarse){
  .sidebar nav a,.btn,button{min-height:44px}
}

/* v4.5.3 - Ajustes exclusivos del calendario. No modifica menú ni layout global. */
.calendar-open-day{display:none;width:100%;margin-top:4px;padding:5px 6px;border:1px solid var(--border);border-radius:7px;background:#fff;color:var(--primary);font-size:10px;font-weight:800;cursor:pointer}
.calendar-open-day:hover{background:#f8fafc}

@media (max-width:1024px){
  .calendar-grid{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr))}
  .calendar-scroll{overflow-x:visible}
  .calendar-day{min-height:112px;padding:6px}
  .calendar-weekdays div{padding:8px 2px;font-size:10px}
  .calendar-event{font-size:10px;padding:5px}
}

@media (max-width:700px){
  .calendar-card{padding:10px}
  .calendar-toolbar{display:grid;gap:10px;margin-bottom:10px}
  .calendar-toolbar p{display:none}
  .calendar-nav{display:grid;grid-template-columns:42px 1fr 42px;gap:6px;width:100%;align-items:center}
  .calendar-nav strong{min-width:0;text-align:center;font-size:14px}
  .calendar-nav .btn{min-width:0;width:auto;padding:8px 6px}
  .calendar-nav .btn:last-child:not(:nth-child(3)){grid-column:1/-1;width:100%}
  .calendar-legend{gap:6px 9px;padding:8px 0 10px;font-size:10px}
  .calendar-weekdays div{padding:7px 1px;font-size:9px}
  .calendar-day,.calendar-day.empty{position:relative;min-height:88px;padding:4px 3px;overflow:hidden}
  .calendar-day-number{margin:0;align-items:flex-start}
  .calendar-day-number>span{width:22px;height:22px;font-size:11px}
  .calendar-count-desktop,.calendar-day-summary,.calendar-click-hint{display:none!important}
  .calendar-count-mobile{display:grid;place-items:center;position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#e8edf5;color:var(--text);font-size:9px;font-weight:800}
  .calendar-events{display:block;margin-top:3px}
  .calendar-event{display:block;min-height:20px;padding:3px 4px;border-radius:5px;border-left-width:3px;font-size:8px;line-height:1.1}
  .calendar-event:nth-child(n+2){display:none}
  .calendar-event span{display:none!important}
  .calendar-more-desktop{display:none!important}
  .calendar-more-mobile{display:none!important}
  .calendar-open-day{display:block}
  .calendar-modal-backdrop{padding:0;align-items:stretch}
  .calendar-modal-dialog{width:100%;max-width:none;max-height:100vh;height:100vh;border-radius:0;padding:12px}
  .calendar-modal-dialog .modal-header{top:-12px;margin:-12px -12px 0;padding:12px}
  .calendar-detail-totals{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar-detail-modal .table-wrap{overflow:auto}
}

@media (max-width:420px){
  .calendar-card{padding:8px}
  .calendar-weekdays div{font-size:8px}
  .calendar-day,.calendar-day.empty{min-height:82px}
  .calendar-open-day{font-size:8px;padding:4px 2px}
}


/* v4.5.4 - Vistas Día / Semana / Mes del calendario */
.calendar-viewbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:4px 0 12px}
.calendar-view-switch{display:inline-grid;grid-template-columns:repeat(3,1fr);padding:4px;background:#eef2f7;border-radius:12px;min-width:260px}
.calendar-view-btn{display:block;padding:9px 14px;border-radius:9px;text-align:center;color:var(--text);font-weight:800;text-decoration:none}
.calendar-view-btn.is-active{background:#fff;color:var(--primary);box-shadow:0 2px 10px rgba(15,23,42,.12)}
.calendar-period-nav{display:flex;align-items:center;gap:8px}.calendar-period-nav strong{min-width:150px;text-align:center}
.calendar-week-view{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:8px;overflow-x:auto;padding-bottom:5px}
.calendar-week-day{display:flex;flex-direction:column;min-height:310px;border:1px solid var(--border);border-radius:13px;background:#f8fafc;overflow:hidden}
.calendar-week-day.is-today{outline:2px solid var(--accent);outline-offset:-2px}
.calendar-week-head{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px;padding:10px;background:#fff;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text)}
.calendar-week-head span{font-weight:800}.calendar-week-head strong{grid-row:1/3;grid-column:2;font-size:24px;color:var(--primary)}.calendar-week-head small{color:var(--muted)}
.calendar-week-events{display:grid;gap:7px;padding:8px;align-content:start;flex:1}
.calendar-list-event{display:grid;gap:3px;padding:8px;border-radius:9px;background:#fff;border-left:4px solid #94a3b8;text-decoration:none;color:var(--text);box-shadow:0 1px 4px rgba(15,23,42,.06)}
.calendar-list-event.pagado{border-left-color:#16a34a}.calendar-list-event.parcial{border-left-color:#f59e0b}.calendar-list-event.vencido{border-left-color:#dc2626}.calendar-list-event.hoy{border-left-color:#7c3aed}.calendar-list-event.proximo{border-left-color:#0284c7}
.calendar-list-event span,.calendar-list-event small{font-size:12px}.calendar-list-event small{color:var(--muted)}
.calendar-full-day-btn{display:block;margin:8px;padding:9px;border-radius:9px;background:var(--primary);color:#fff;text-align:center;text-decoration:none;font-weight:800}
.calendar-empty-state{padding:16px;text-align:center;color:var(--muted);font-size:13px}.calendar-empty-state.large{padding:44px 18px;border:1px dashed var(--border);border-radius:12px;background:#f8fafc}
.calendar-day-view{display:grid;gap:14px}.calendar-day-view-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px;border:1px solid var(--border);border-radius:12px;background:#f8fafc}.calendar-day-view-head h3{margin:3px 0 0}.calendar-day-view-head small{color:var(--muted)}
.calendar-day-list{display:grid;gap:10px}.calendar-day-item{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(180px,.7fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid var(--border);border-left:5px solid #94a3b8;border-radius:12px;background:#fff}
.calendar-day-item.pagado{border-left-color:#16a34a}.calendar-day-item.parcial{border-left-color:#f59e0b}.calendar-day-item.vencido{border-left-color:#dc2626}.calendar-day-item.hoy{border-left-color:#7c3aed}.calendar-day-item.proximo{border-left-color:#0284c7}
.calendar-day-main,.calendar-day-money{display:grid;gap:4px}.calendar-day-main span,.calendar-day-main small,.calendar-day-money span{color:var(--muted)}.calendar-day-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.calendar-day-actions .btn{white-space:nowrap}
@media(max-width:900px){.calendar-week-view{grid-template-columns:repeat(7,minmax(180px,1fr))}.calendar-day-item{grid-template-columns:1fr 1fr}.calendar-day-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:700px){
 .calendar-viewbar{display:grid}.calendar-view-switch{width:100%;min-width:0;position:sticky;top:70px;z-index:20}.calendar-view-btn{padding:10px 5px}
 .calendar-period-nav{display:grid;grid-template-columns:1fr auto 1fr;width:100%}.calendar-period-nav .btn{width:auto;padding:8px}.calendar-period-nav strong{min-width:0;font-size:12px}
 .calendar-week-view{display:grid;grid-template-columns:1fr;overflow:visible}.calendar-week-day{min-height:0}.calendar-week-events{max-height:none}.calendar-week-head{grid-template-columns:1fr auto}.calendar-full-day-btn{margin-top:0}
 .calendar-day-view-head{align-items:flex-start}.calendar-day-view-head strong{font-size:12px}
 .calendar-day-item{grid-template-columns:1fr;padding:12px}.calendar-day-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.calendar-day-actions .btn.primary{grid-column:1/-1}.calendar-day-actions .btn{width:100%}
}


/* v4.5.5 - Modal Cobranza del día optimizado para móvil */
.calendar-day-detail-cards{display:none}
@media(max-width:700px){
  .calendar-modal-backdrop{padding:0!important;align-items:stretch!important;background:#f4f7fb!important;backdrop-filter:none!important}
  .calendar-modal-dialog.calendar-detail-modal{display:flex;flex-direction:column;width:100%!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:0!important;border-radius:0!important;box-shadow:none!important;background:#f4f7fb!important;overflow:hidden!important}
  .calendar-modal-dialog.calendar-detail-modal .modal-header{position:sticky!important;top:0!important;flex:0 0 auto;margin:0!important;padding:14px 16px!important;background:#fff!important;border-bottom:1px solid var(--border)!important;box-shadow:0 2px 12px rgba(15,23,42,.08)}
  .calendar-modal-dialog.calendar-detail-modal .modal-header h2{margin:0 36px 3px 0;font-size:20px;line-height:1.2}
  .calendar-modal-dialog.calendar-detail-modal .modal-header p{margin:0;font-size:12px;line-height:1.35}
  .calendar-modal-dialog.calendar-detail-modal .modal-close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:12px;font-size:25px}
  .calendar-detail-totals{display:flex!important;gap:8px;overflow-x:auto;flex:0 0 auto;margin:0!important;padding:12px 12px 8px!important;scrollbar-width:none}
  .calendar-detail-totals::-webkit-scrollbar{display:none}
  .calendar-detail-total{flex:0 0 132px;min-width:132px;padding:10px!important;border-radius:12px!important}
  .calendar-detail-total span{font-size:11px}.calendar-detail-total strong{font-size:20px}.calendar-detail-total small{font-size:10px}
  .calendar-day-detail-table{display:none!important}
  .calendar-day-detail-cards{display:grid;gap:12px;align-content:start;flex:1 1 auto;overflow-y:auto;padding:4px 12px 24px;-webkit-overflow-scrolling:touch}
  .calendar-mobile-charge{display:grid;gap:13px;padding:14px;background:#fff;border:1px solid var(--border);border-left:5px solid #0284c7;border-radius:15px;box-shadow:0 4px 16px rgba(15,23,42,.07)}
  .calendar-mobile-charge.pagado{border-left-color:#16a34a}.calendar-mobile-charge.parcial{border-left-color:#f59e0b}.calendar-mobile-charge.vencido{border-left-color:#dc2626}.calendar-mobile-charge.hoy{border-left-color:#7c3aed}
  .calendar-mobile-charge-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
  .calendar-mobile-charge-head>div{display:grid;gap:4px;min-width:0}.calendar-mobile-charge-head strong{font-size:16px;line-height:1.25}.calendar-mobile-charge-head span:not(.calendar-status-pill){font-size:13px;color:var(--muted);line-height:1.3}
  .calendar-mobile-charge-head .calendar-status-pill{white-space:nowrap;font-size:10px;padding:5px 7px}
  .calendar-mobile-money{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .calendar-mobile-money>div{display:grid;gap:3px;padding:10px;background:#f8fafc;border-radius:10px}
  .calendar-mobile-money small{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
  .calendar-mobile-money strong{font-size:14px}.calendar-mobile-money .is-balance{grid-column:1/-1;background:#fff7ed;border:1px solid #fed7aa}.calendar-mobile-money .is-balance strong{font-size:21px;color:#9a3412}
  .calendar-mobile-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .calendar-mobile-actions .btn{width:100%;min-height:44px;padding:10px 8px;font-size:13px}
  .calendar-mobile-actions .btn.primary{grid-column:1/-1}
}
@media(max-width:380px){
  .calendar-mobile-charge{padding:12px}.calendar-mobile-charge-head{grid-template-columns:1fr}.calendar-mobile-charge-head .calendar-status-pill{justify-self:start}.calendar-mobile-actions{grid-template-columns:1fr}
}

/* v4.6 Adaptación móvil global y recursiva */
html{max-width:100%;overflow-x:hidden}body{max-width:100%;overflow-x:hidden}.content,.main,.card,.card-full{min-width:0;max-width:100%}img,svg,video,canvas{max-width:100%;height:auto}.mobile-menu-button,.mobile-menu-overlay{display:none}
.table-wrap{width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-wrap table{min-width:720px}.toolbar-wrap,.card-head,.statement-toolbar,.usr-head,.rem-head{min-width:0}.toolbar-wrap>*:first-child,.card-head>*:first-child{min-width:0}.actions,.usr-row-actions,.rem-actions{flex-wrap:wrap}
@media(max-width:1024px){
 body.mobile-menu-open{overflow:hidden}.layout{display:block;min-height:100vh}.content{width:100%}.sidebar{display:block!important;position:fixed;left:0;top:0;bottom:0;width:min(310px,86vw);z-index:10050;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;padding:22px 16px;box-shadow:12px 0 35px #0004}.mobile-menu-open .sidebar{transform:translateX(0)}.mobile-menu-overlay{display:block;position:fixed;inset:0;z-index:10040;background:#0f172a99;opacity:0;visibility:hidden;transition:.22s}.mobile-menu-open .mobile-menu-overlay{opacity:1;visibility:visible}.mobile-menu-button{display:inline-grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:#edf2f7;color:var(--text);font-size:24px;cursor:pointer;flex:0 0 auto}.topbar{height:auto;min-height:66px;padding:10px 16px;gap:10px;position:sticky;top:0;z-index:1000}.topbar-left{display:flex;align-items:center;gap:10px;min-width:0}.topbar-title{min-width:0}.topbar-title b,.topbar-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-user{font-size:13px;text-align:right}.sidebar-mobile-user{display:block!important;margin-top:22px;padding-top:16px;border-top:1px solid #ffffff22;color:#dbe6f7}.sidebar-mobile-user a{display:block;margin-top:9px;color:#fff}.main{padding:18px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}.statement-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
 .main{padding:12px}.topbar{padding:8px 10px}.topbar-user{display:none}.card{padding:14px;border-radius:14px}.cards,.statement-cards,.usr-grid,.rem-grid{grid-template-columns:1fr!important;gap:10px}.card.stat strong{font-size:23px}.toolbar-wrap,.card-head,.statement-toolbar,.statement-person-header,.usr-head,.rem-head{display:grid!important;grid-template-columns:1fr;align-items:stretch!important;gap:10px}.toolbar-wrap .btn,.card-head .btn,.statement-toolbar .btn,.usr-actions .btn,.usr-actions button,.rem-actions .btn,.rem-actions button{width:100%!important}.statement-filters,.form-grid-2,.usr-form,.rem-form{grid-template-columns:1fr!important}.span-2,.full{grid-column:auto!important}.statement-filter-actions,.usr-actions,.rem-actions{display:grid!important;grid-template-columns:1fr;gap:8px}.statement-filter-actions .btn{width:100%}.statement-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px}.statement-tabs button{white-space:nowrap;flex:0 0 auto}.modal{padding:0!important;align-items:flex-end}.modal-dialog,.modal-dialog.modal-lg,.usr-box,.rem-box{width:100%!important;max-width:none!important;max-height:96dvh!important;border-radius:18px 18px 0 0!important;overflow:hidden!important;display:flex;flex-direction:column}.modal-header,.usr-modal-head,.rem-modal-head{padding:14px 16px;position:sticky;top:0;background:#fff;z-index:2}.modal-body{padding:14px 16px;overflow-y:auto}.modal-footer,.usr-foot,.rem-foot{padding:12px 16px;display:grid!important;grid-template-columns:1fr;position:sticky;bottom:0;background:#fff;z-index:2}.modal-footer .btn,.usr-foot .btn,.rem-foot .btn{width:100%!important;min-height:44px}.btn{min-height:42px}.btn-sm{min-height:38px}.actions,.usr-row-actions,.rem-row-actions{display:grid!important;grid-template-columns:1fr;min-width:150px!important}.actions .btn,.actions form,.actions form .btn,.usr-row-actions .btn,.rem-row-actions .btn{width:100%!important}.login-card{width:calc(100vw - 24px);padding:22px}.table-wrap.mobile-card-table{overflow:visible}.table-wrap.mobile-card-table table{min-width:0!important;display:block}.table-wrap.mobile-card-table thead{display:none}.table-wrap.mobile-card-table tbody{display:grid;gap:12px}.table-wrap.mobile-card-table tr{display:block;background:#fff;border:1px solid var(--border);border-radius:14px;padding:8px 12px;box-shadow:0 3px 14px #17243c0a}.table-wrap.mobile-card-table tr.mobile-empty-row{padding:14px}.table-wrap.mobile-card-table td{display:grid;grid-template-columns:minmax(105px,40%) 1fr;gap:10px;align-items:start;width:100%;padding:9px 0;border-bottom:1px solid var(--border);white-space:normal!important;overflow-wrap:anywhere}.table-wrap.mobile-card-table td:last-child{border-bottom:0}.table-wrap.mobile-card-table td::before{content:attr(data-label);font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:800}.table-wrap.mobile-card-table td[colspan]::before{display:none}.table-wrap.mobile-card-table td[colspan]{display:block}.table-wrap.mobile-card-table td.actions-cell{display:block}.table-wrap.mobile-card-table td.actions-cell::before{display:block;margin-bottom:7px}.progress{width:100%;max-width:180px}.calendar-scroll{max-width:100%}
}
@media(max-width:420px){.main{padding:9px}.card{padding:12px}.topbar-title b{font-size:14px}.topbar-title small{font-size:11px}.table-wrap.mobile-card-table td{grid-template-columns:1fr;gap:3px}.table-wrap.mobile-card-table td::before{font-size:10px}}
