:root{--navy:#153b5b;--blue:#1879a8;--green:#5cb85c;--ink:#1e2f3d;--muted:#667788;--bg:#f4f7f9;--line:#dbe4ea;--white:#fff;--danger:#b73c3c;--warning:#9a6714}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--bg)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.app-shell{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);padding:22px 16px;position:sticky;top:0;height:100vh}.brand{display:block;background:white;border-radius:10px;padding:8px;margin-bottom:24px}.brand img{display:block;width:100%;height:auto}.sidebar nav{display:grid;gap:6px}.sidebar nav a{color:white;padding:11px 12px;border-radius:7px}.sidebar nav a:hover{background:rgba(255,255,255,.12);text-decoration:none}.main{min-width:0}.topbar{height:68px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:10px 24px;gap:12px;position:sticky;top:0;z-index:5}.menu-toggle{display:none;border:0;background:var(--navy);color:white;border-radius:7px;font-size:20px;padding:8px 11px}.global-search{display:flex;width:min(760px,100%);gap:8px}.global-search input,.filters input,.filters select{min-width:0;width:100%;padding:10px 11px;border:1px solid #bccbd5;border-radius:7px;background:white}.global-search button,.button{border:0;background:var(--blue);color:white;border-radius:7px;padding:10px 15px;cursor:pointer;display:inline-block}.button:hover{text-decoration:none}.button.secondary{background:var(--navy)}.page{padding:26px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.page-heading h1{margin:0 0 6px;font-size:28px}.page-heading p{margin:0;color:var(--muted)}.quick-actions,.export-actions{display:flex;gap:8px;flex-wrap:wrap}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:22px}.metric{background:white;border:1px solid var(--line);border-radius:12px;padding:17px;box-shadow:0 2px 8px rgba(20,50,70,.04)}.metric span{display:block;color:var(--muted);font-size:13px}.metric strong{display:block;font-size:26px;margin-top:8px;color:var(--navy)}.metric small{display:block;margin-top:4px}.metric.danger{border-left:4px solid var(--danger)}.metric.warning{border-left:4px solid var(--warning)}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:20px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel h2{margin:0 0 14px}.table-wrap{overflow-x:auto;width:100%}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#536676;background:#f7f9fa}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.empty{text-align:center;color:var(--muted);padding:30px}.status{font-size:12px;background:#e9f3f7;border-radius:999px;padding:4px 8px}.filters{display:flex;align-items:end;gap:10px;flex-wrap:wrap;background:white;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:16px}.filters label{display:grid;gap:5px;min-width:170px;font-size:12px;color:var(--muted)}.pagination{display:flex;gap:5px;flex-wrap:wrap;padding-top:15px}.pagination a{min-width:32px;text-align:center;padding:7px;border:1px solid var(--line);border-radius:6px}.pagination a.active{background:var(--navy);color:white}.report-links{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.report-links a{background:white;border:1px solid var(--line);padding:14px;border-radius:9px;text-align:center}.report-links a:hover{text-decoration:none;border-color:var(--blue)}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.report-links{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;top:0;width:240px;z-index:20;transition:left .2s ease}.sidebar.open{left:0}.menu-toggle{display:block}.topbar{padding:10px 14px}.page{padding:18px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading{flex-direction:column}.global-search input{font-size:16px}}
@media(max-width:420px){.page{padding:12px}.topbar{height:auto;align-items:stretch}.global-search{display:grid;grid-template-columns:1fr auto}.global-search input{min-width:0}.metric-grid{grid-template-columns:1fr}.report-links{grid-template-columns:1fr 1fr}.filters{display:grid}.filters label{min-width:0}.page-heading h1{font-size:24px}.panel{padding:10px}.export-actions,.quick-actions{width:100%}.export-actions .button,.quick-actions .button{flex:1;text-align:center}}

/* Authentication */
.login-page{min-height:100vh;background:linear-gradient(145deg,#eef4f7 0%,#f8fbfc 55%,#edf5f2 100%)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:32px 18px}
.login-card{width:min(440px,100%);background:var(--white);border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:0 18px 55px rgba(21,59,91,.12)}
.login-brand{display:flex;justify-content:center;margin-bottom:24px}
.login-brand img{display:block;width:min(280px,82%);height:auto}
.login-heading{text-align:center;margin-bottom:24px}
.login-heading h1{margin:4px 0 8px;color:var(--navy);font-size:30px}
.login-heading p{margin:0;color:var(--muted);line-height:1.5}
.login-heading .login-eyebrow{color:var(--blue);font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.login-alert{margin:0 0 18px;padding:12px 14px;border:1px solid #e4b2b2;border-radius:9px;background:#fff3f3;color:var(--danger);font-size:14px}
.login-form{display:grid;gap:17px}
.login-field{display:grid;gap:7px;color:var(--ink);font-size:14px;font-weight:700}
.login-field input{width:100%;min-height:46px;border:1px solid #b8c7d1;border-radius:9px;background:#fff;padding:10px 12px;color:var(--ink);font:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease}
.login-field input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(24,121,168,.13)}
.login-submit{min-height:46px;border:0;border-radius:9px;background:var(--navy);color:#fff;font-size:15px;font-weight:700;padding:11px 16px;cursor:pointer;transition:background .15s ease,transform .05s ease}
.login-submit:hover{background:var(--blue)}
.login-submit:active{transform:translateY(1px)}
@media(max-width:520px){.login-shell{padding:20px 14px}.login-card{padding:26px 20px;border-radius:14px}.login-heading h1{font-size:26px}.login-brand img{width:min(250px,88%)}}
.password-field {
        position: relative;
    }

    .password-field input {
        width: 100%;
        padding-right: 72px;
    }

    .password-toggle {
        position: absolute;
        right: 10px;
        top: 50%;
        transform: translateY(-50%);
        border: 0;
        background: transparent;
        cursor: pointer;
        font: inherit;
        font-size: 0.85rem;
        font-weight: 700;
        color: #1d496c;
        padding: 4px 6px;
    }
/* Admin workspace */
.sidebar{display:flex;flex-direction:column;box-shadow:10px 0 30px rgba(15,39,61,.08)}
.sidebar-section{margin:2px 12px 8px;color:#a8c2d4;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.sidebar nav a{display:flex;align-items:center;min-height:43px;font-weight:600;letter-spacing:.01em}
.sidebar nav a.active{background:rgba(255,255,255,.17);box-shadow:inset 3px 0 0 #43c46b}
.sidebar-footer{margin-top:auto;padding:14px 12px 2px;color:#d7e4ed;display:grid;gap:3px;border-top:1px solid rgba(255,255,255,.13)}
.sidebar-role{font-weight:700;color:#fff}.sidebar-footer small{font-size:11px;color:#a8c2d4}
.topbar{justify-content:space-between;box-shadow:0 2px 10px rgba(15,39,61,.035)}
.topbar-user{display:flex;align-items:center;gap:12px;margin-left:auto;white-space:nowrap}.topbar-user>div{display:grid;text-align:right;line-height:1.15}.topbar-user strong{font-size:13px;color:var(--navy)}.topbar-user span{font-size:11px;color:var(--muted)}.topbar-user form{margin:0}.button.ghost{background:#eef4f7;color:var(--navy);border:1px solid var(--line)}
.page{max-width:1500px;width:100%;margin:0 auto}.page>h1{margin:0 0 8px;color:var(--navy);font-size:28px}.page>h1+p{margin-top:0;color:var(--muted)}
.page>h2{color:var(--navy);margin-top:24px}.page>p>a{font-weight:600}
.form-card,.page>form:not(.global-search):not(.filters){background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 5px 18px rgba(20,50,70,.045);margin:18px 0 22px}
.form-grid,.page>form:not(.global-search):not(.filters){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px;align-items:start}
.field,.page>form:not(.global-search):not(.filters)>label{display:grid;gap:7px;color:#344c5d;font-size:13px;font-weight:700;min-width:0}
.page input,.page select,.page textarea{width:100%;min-width:0;border:1px solid #bdcbd5;border-radius:8px;background:#fff;color:var(--ink);padding:10px 11px;font:inherit;transition:border-color .15s ease,box-shadow .15s ease}
.page input:focus,.page select:focus,.page textarea:focus{outline:0;border-color:var(--blue);box-shadow:0 0 0 3px rgba(24,121,168,.12)}
.page textarea{resize:vertical;min-height:92px}.page button{font:inherit}.page>form:not(.global-search):not(.filters)>button[type=submit]{justify-self:start;border:0;background:var(--navy);color:#fff;border-radius:8px;padding:11px 18px;font-weight:700;cursor:pointer}
.page>form:not(.global-search):not(.filters)>button[type=submit]:hover{background:#0f314d}
.page>form:not(.global-search):not(.filters)>fieldset,.page>form:not(.global-search):not(.filters)>table,.page>form:not(.global-search):not(.filters)>h2,.page>form:not(.global-search):not(.filters)>p,.page>form:not(.global-search):not(.filters)>br{grid-column:1/-1}
.page fieldset{border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:0}.page legend{font-weight:700;color:var(--navy);padding:0 5px}.page fieldset label{display:inline-flex;align-items:center;gap:7px;margin:5px 14px 5px 0;font-size:13px}.page fieldset input[type=radio],.page fieldset input[type=checkbox]{width:auto}
.page table{background:#fff;border:1px solid var(--line);border-radius:12px;overflow-x:auto;display:block;max-width:100%;box-shadow:0 3px 12px rgba(20,50,70,.035)}.page table thead,.page table tbody{display:table;width:100%;table-layout:auto}.page table tr:hover td{background:#fbfdfe}
.page td input,.page td select{padding:8px 9px;min-width:110px}.page td:first-child,.page th:first-child{padding-left:14px}.page td:last-child,.page th:last-child{padding-right:14px}
.page dl{display:grid;grid-template-columns:180px 1fr;background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px 20px;gap:0;margin:16px 0 20px}.page dt,.page dd{padding:10px 0;border-bottom:1px solid var(--line);margin:0}.page dt{font-weight:700;color:var(--muted)}.page dd{color:var(--ink)}.page dl>*:nth-last-child(-n+2){border-bottom:0}
.page .button,.page a.button{font-weight:700}.page .status{display:inline-flex;align-items:center;font-weight:700}
.notice{padding:12px 14px;border-radius:9px;background:#eef7fb;border:1px solid #cce4ef;color:#27536d}.notice.warning{background:#fff7e8;border-color:#edd4a0;color:#77500c}.notice.danger{background:#fff0f0;border-color:#efc1c1;color:#8d2e2e}
.section-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;margin:18px 0}.section-card h2{margin-top:0}
@media(max-width:1000px){
    .topbar-user>div{
        display:none
    }

    .global-search{
        max-width:none
    }

    .page dl{
        grid-template-columns:140px 1fr
    }
}
@media(max-width:700px){
    .form-grid,
    .page>form:not(.global-search):not(.filters){
        grid-template-columns:1fr
    }
}
@media(max-width:800px){.topbar-user{gap:6px}.topbar-user .button{padding:9px 10px}.sidebar{box-shadow:18px 0 40px rgba(15,39,61,.2)}.page>h1{font-size:25px}}
@media(max-width:520px){.topbar{flex-wrap:wrap}.global-search{order:2;width:100%}.topbar-user{margin-left:auto}.page>form:not(.global-search):not(.filters),.form-card{padding:15px}.page dl{grid-template-columns:1fr}.page dt{border-bottom:0;padding-bottom:2px}.page dd{padding-top:2px}.page table{font-size:13px}.page fieldset label{display:flex;margin-right:0}.page>h1{font-size:23px}}

/* Contract cancellation */
.button.danger{background:var(--danger)}
.contract-cancellation{margin-top:14px}
.contract-cancellation form{margin-top:12px}
.contract-cancelled{margin-top:14px}


/* Task 7.5 - contract revision change emphasis */
.revision-changed {
  background: #fff4cc !important;
  box-shadow: inset 4px 0 0 #b97800;
}
.change-badge {
  display: inline-block;
  padding: .2rem .5rem;
  border-radius: 999px;
  background: #b97800;
  color: #fff;
  font-size: .78rem;
  font-weight: 700;
}

/* Task 14 - biweekly contract weekday */
[data-biweekly-weekday-panel]{grid-column:1/-1;margin:0}
[data-first-payment-weekday]{font-weight:400;color:var(--muted)}
[data-weekday-mismatch] .button{margin:8px 0}
.installment-overdue {
    background: #fde8e8;
}

.installment-overdue td {
    color: #b42318;
    font-weight: 600;
}

.installment-upcoming {
    background: #fff4cc;
}

.installment-upcoming td {
    color: #9a6700;
    font-weight: 600;
}
.status-badge {
    display: inline-block;
    padding: .2rem .5rem;
    border-radius: 999px;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.badge-overdue {
    background: #fde8e8;
    color: #b42318;
}

.badge-upcoming {
    background: #fff4cc;
    color: #9a6700;
}

.badge-paid {
    background: #e7f6ec;
    color: #207a3c;
}

.badge-partial {
    background: #e8f1fb;
    color: #245b9b;
}

.badge-cancelled {
    background: #eceff1;
    color: #5f6b73;
}

.badge-pending {
    background: #f3f4f6;
    color: #4b5563;
}

.clients-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

.clients-table th,
.clients-table td {
    text-align: left;
    vertical-align: middle;
    padding: 10px 12px;
}

.clients-table th {
    white-space: nowrap;
}

.clients-table td {
    overflow-wrap: break-word;
}

/* Tabla de clientes: mantener encabezados y datos alineados */
.page table.clients-table {
    display: table;
    width: 100%;
    table-layout: fixed;
}

.page table.clients-table thead {
    display: table-header-group;
    width: auto;
}

.page table.clients-table tbody {
    display: table-row-group;
    width: auto;
}

.page table.clients-table tr {
    display: table-row;
}

.page table.clients-table th,
.page table.clients-table td {
    display: table-cell;
    text-align: left;
    vertical-align: middle;
}

/* Responsive - listado de clientes */
@media (max-width: 760px) {
    .clients-table,
    .clients-table thead,
    .clients-table tbody,
    .clients-table tr,
    .clients-table th,
    .clients-table td {
        display: block !important;
        width: 100% !important;
    }

    .clients-table colgroup,
    .clients-table thead {
        display: none !important;
    }

    .clients-table {
        border: 0;
        background: transparent;
        box-shadow: none;
    }

    .clients-table tbody {
        display: grid !important;
        gap: 12px;
    }

    .clients-table tr {
        background: #fff;
        border: 1px solid var(--line);
        border-radius: 12px;
        padding: 12px 14px;
        box-shadow: 0 2px 8px rgba(20, 50, 70, .04);
    }

    .clients-table td {
        display: grid !important;
        grid-template-columns: 105px minmax(0, 1fr);
        gap: 10px;
        padding: 7px 0 !important;
        border-bottom: 1px solid var(--line);
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .clients-table td:last-child {
        border-bottom: 0;
    }

    .clients-table td::before {
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: .04em;
        color: var(--muted);
    }

    .clients-table td:nth-child(1)::before {
        content: "Nombre";
    }

    .clients-table td:nth-child(2)::before {
        content: "Pareja";
    }

    .clients-table td:nth-child(3)::before {
        content: "Correo";
    }

    .clients-table td:nth-child(4)::before {
        content: "Teléfono";
    }

    .clients-table td:nth-child(5)::before {
        content: "Seguro Social";
    }

    .clients-table td:first-child a {
        font-size: 17px;
        font-weight: 700;
    }

    .table-wrap {
        overflow-x: visible;
    }

    .page-heading {
        gap: 12px;
    }

    .page-heading .button {
        width: 100%;
        text-align: center;
    }

    .page > form:not(.global-search):not(.filters) {
        grid-template-columns: 1fr;
    }
}


/* Clientes - vista móvil */
@media (max-width: 900px) {

    .page .table-wrap {
        overflow-x: visible !important;
        width: 100% !important;
    }

    .page table.clients-table {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        table-layout: auto !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }

    .page table.clients-table colgroup {
        display: none !important;
    }

    .page table.clients-table thead {
        display: none !important;
    }

    .page table.clients-table tbody {
        display: grid !important;
        width: 100% !important;
        gap: 12px !important;
    }

    .page table.clients-table tbody tr {
        display: block !important;
        width: 100% !important;
        background: #fff !important;
        border: 1px solid var(--line) !important;
        border-radius: 12px !important;
        padding: 12px 14px !important;
        box-shadow: 0 2px 8px rgba(20, 50, 70, .05) !important;
    }

    .page table.clients-table tbody td {
        display: grid !important;
        grid-template-columns: 95px minmax(0, 1fr) !important;
        width: 100% !important;
        padding: 8px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid var(--line) !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        text-align: left !important;
    }

    .page table.clients-table tbody td:last-child {
        border-bottom: 0 !important;
    }

    .page table.clients-table tbody td::before {
        display: block;
        font-size: 11px;
        font-weight: 700;
        text-transform: uppercase;
        color: var(--muted);
    }

    .page table.clients-table tbody td:nth-child(1)::before {
        content: "Nombre";
    }

    .page table.clients-table tbody td:nth-child(2)::before {
        content: "Pareja";
    }

    .page table.clients-table tbody td:nth-child(3)::before {
        content: "Correo";
    }

    .page table.clients-table tbody td:nth-child(4)::before {
        content: "Teléfono";
    }

    .page table.clients-table tbody td:nth-child(5)::before {
        content: "Seguro Social";
    }

    .page table.clients-table tbody td:first-child a {
        font-size: 17px;
        font-weight: 700;
    }
}

/* ACRRF - distribución final */

.form-grid > .acrrf-panel {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

/* Contenedor general del ACRRF */
.acrrf-panel .acrrf-grid {
    display: block !important;
    width: 100% !important;
}

/* Encabezado de dirección anterior */
.acrrf-section-heading {
    margin-bottom: 14px;
}

/* Dirección anterior: DOS columnas */
.acrrf-panel .acrrf-address-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    column-gap: 18px !important;
    row-gap: 16px !important;
    width: 100% !important;
}

.acrrf-panel .acrrf-address-grid > .field {
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0 !important;
}

/* Reportes solicitados: UNA columna */
.acrrf-panel .acrrf-reports {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    width: 100% !important;
    margin-top: 22px;
}

.acrrf-panel .acrrf-reports > * {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

.acrrf-reports h3 {
    margin-bottom: 4px;
}

/* Móvil */
@media (max-width: 700px) {
    .acrrf-panel .acrrf-address-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Sobres de correo */
.mailing-envelope-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 16px;
    margin: 16px 0 18px;
}

.mailing-envelope-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    cursor: pointer;
}

.mailing-envelope-option input[type="checkbox"] {
    width: auto;
    margin-top: 3px;
}

.mailing-envelope-option span {
    display: grid;
    gap: 3px;
}

.mailing-envelope-option strong {
    color: var(--navy);
}

.mailing-envelope-option small {
    color: var(--muted);
    font-weight: 400;
    line-height: 1.35;
}

@media (max-width: 700px) {
    .mailing-envelope-options {
        grid-template-columns: 1fr;
    }
}

.mailing-address-edit-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    min-width: 420px;
}

@media (max-width: 900px) {
    .mailing-address-edit-grid {
        grid-template-columns: 1fr;
        min-width: 280px;
    }
}
.catalog-home-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 20px;
}

.catalog-home-card {
    display: grid;
    gap: 6px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    text-decoration: none;
    box-shadow: 0 3px 12px rgba(20, 50, 70, .04);
}

.catalog-home-card strong {
    color: var(--navy);
    font-size: 18px;
}

.catalog-home-card span {
    color: var(--muted);
    font-size: 13px;
}

.catalog-home-card:hover {
    border-color: var(--blue);
}

@media (max-width: 700px) {
    .catalog-home-grid {
        grid-template-columns: 1fr;
    }
}

/* Tabla de direcciones postales */
.page table.mailing-address-table {
    width: 100%;
    table-layout: fixed;
}

.mailing-address-table th,
.mailing-address-table td {
    vertical-align: top;
    text-align: left;
}

.mailing-address-table th:nth-child(1),
.mailing-address-table td:nth-child(1) {
    width: 25%;
    text-align:center;
}

.mailing-address-table th:nth-child(2),
.mailing-address-table td:nth-child(2) {
    width: 42%;
    text-align:center;
}

.mailing-address-table th:nth-child(3),
.mailing-address-table td:nth-child(3) {
    width: 10%;
    text-align:center;
}

.mailing-address-table th:nth-child(4),
.mailing-address-table td:nth-child(4) {
    width: 10%;
    text-align:center;
}

.mailing-address-table th:nth-child(5),
.mailing-address-table td:nth-child(5) {
    width: 13%;
    text-align:center;
}

.mailing-address-type {
    width: auto !important;
    min-width: 0 !important;
    margin-top: 6px;
    padding: 3px 24px 3px 6px !important;
    font-size: 12px !important;
    line-height: 1.2;
}

.mailing-address-table input,
.mailing-address-table select {
    width: 100%;
    box-sizing: border-box;
}

.mailing-address-table .quick-actions {
    align-items: flex-start;
}

/* Grupo de configuración de frecuencia */
.frequency-group {
    grid-column: 1 / -1;
    width: 100%;
    border: 3px solid var(--blue);
    border-radius: 14px;
    padding: 20px;
    margin: 4px 0 6px;
    background: #f8fcfe;
    box-shadow: 0 4px 14px rgba(24, 121, 168, .10);
}

.frequency-group-heading {
    color: var(--navy);
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 16px;
}

.frequency-group > label {
    display: grid;
    gap: 7px;
    color: #344c5d;
    font-size: 13px;
    font-weight: 700;
}

.frequency-group [data-biweekly-weekday-panel],
.frequency-group [data-monthly-pattern-panel] {
    margin-top: 16px;
    margin-bottom: 0;
}

.frequency-group [data-days-of-month-panel] {
    margin-top: 16px;
}

/* ========================================
   GC4Y - TABLAS ESTILO EXCEL
   ======================================== */

.table-wrap table {
    width: 100%;
    border-collapse: collapse;
    border: 1px solid #b8c8d5;
}

/* Lineas verticales y horizontales */
.table-wrap table th,
.table-wrap table td {
    border: 1px solid #cbd5e1;
    padding: 10px 12px;
    vertical-align: middle;
}

/* Encabezados */
.table-wrap table thead th {
    background: #e8f0f6;
    color: #173b63;
    font-weight: 700;
    text-align: center !important;
    border: 1px solid #b8c8d5;
}

/* Filas alternadas */
.table-wrap table tbody > tr:nth-child(even) {
    background: #f7f9fc;
}

/* Resaltar fila al pasar el mouse */
.table-wrap table tbody > tr:hover {
    background: #edf5fb;
}

/* Importes y cantidades */
.table-wrap table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Tablas dentro de detalles desplegables */
.table-wrap details {
    min-width: 150px;
}

.table-wrap details summary {
    color: #1879a8;
    font-weight: 600;
    cursor: pointer;
}

/* GC4Y - TABLA DE VENCIDOS */

table.overdue-table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

table.overdue-table > thead > tr > th,
table.overdue-table > tbody > tr > td {
    border: 1px solid #cbd5e1;
    padding: 10px 12px;
    vertical-align: middle;
}

table.overdue-table > thead > tr > th {
    text-align: center !important;
    background: #e8f0f6;
    color: #173b63;
}

table.overdue-table > tbody > tr > td.num {
    text-align: right;
}

.overdue-detail-content {
    padding: 12px;
    background: #f3f7fb;
}

.overdue-detail-content > strong {
    display: block;
    margin-bottom: 12px;
}

table.overdue-detail-table {
    width: 100%;
    border-collapse: collapse;
}

table.overdue-detail-table th,
table.overdue-detail-table td {
    border: 1px solid #cbd5e1;
}

table.overdue-detail-table th {
    text-align: center !important;
    background: #dce9f3;
}

.overdue-table details summary {
    color: #1879a8;
    font-weight: 600;
    cursor: pointer;
}

.overdue-table details[open] summary {
    margin-bottom: 10px;
}

/* =========================================
   GC4Y - CORRECCION DEFINITIVA VENCIDOS
   ========================================= */

/* Restaurar comportamiento normal de tabla */
.page table.overdue-table {
    display: table !important;
    table-layout: fixed !important;
    width: 100%;
    overflow: visible;
    border-collapse: collapse;
}

/* Encabezado y cuerpo comparten columnas */
.page table.overdue-table > thead {
    display: table-header-group !important;
    width: auto !important;
}

.page table.overdue-table > tbody {
    display: table-row-group !important;
    width: auto !important;
}

/* Filas y celdas */
.page table.overdue-table > thead > tr,
.page table.overdue-table > tbody > tr {
    display: table-row !important;
}

.page table.overdue-table > thead > tr > th,
.page table.overdue-table > tbody > tr > td {
    display: table-cell !important;
    border: 1px solid #cbd5e1;
}

/* Centrar encabezados */
.page table.overdue-table > thead > tr > th {
    text-align: center !important;
}

/* Mantener ocultas las filas de detalle */
.page table.overdue-table > tbody > tr[hidden] {
    display: none !important;
}

/* Corregir tambien la tabla interior */
.page table.overdue-detail-table {
    display: table !important;
    width: 100%;
    border-collapse: collapse;
}

.page table.overdue-detail-table > thead {
    display: table-header-group !important;
    width: auto !important;
}

.page table.overdue-detail-table > tbody {
    display: table-row-group !important;
    width: auto !important;
}

/* GC4Y - DETALLE VENCIDOS A TODO EL ANCHO */

/* Cada grupo conserva la estructura de tabla */
.page table.overdue-table > tbody.overdue-client-group {
    display: table-row-group !important;
    width: auto !important;
}

/* Ocultar el checkbox sin impedir su funcionamiento */
.overdue-check {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
}

/* Enlace visual para expandir */
.overdue-expand {
    display: inline-block;
    color: #1879a8;
    font-weight: 600;
    cursor: pointer;
}

.overdue-expand::before {
    content: "▶ ";
}

/* Ocultar la fila de detalle inicialmente */
.page table.overdue-table > tbody.overdue-client-group > tr.overdue-expanded-row {
    display: none !important;
}

/* Mostrar el detalle al seleccionar el checkbox */
.page table.overdue-table > tbody.overdue-client-group > tr:has(.overdue-check:checked)
    + tr.overdue-expanded-row {
    display: table-row !important;
}

/* Cambiar indicador al expandir */
.overdue-client-group:has(.overdue-check:checked) .overdue-expand::before {
    content: "▼ ";
}

/* Detalle ocupa el ancho completo */
.overdue-expanded-row > td {
    padding: 14px !important;
    background: #f3f7fb;
}

.overdue-expanded-row .overdue-detail-content {
    width: 100%;
}

.overdue-expanded-row .overdue-detail-table {
    width: 100%;
}