 :root {
     --supara-primary: #00a3d7;
     --supara-primary-dark: #0079a8;
     --supara-secondary: #dff2fa;
     --supara-border: #cfe7f0;
     --supara-text: #1f2d3d;
     --supara-muted: #6c757d;
     --supara-bg: #f5f9fb;
     --supara-white: #ffffff;
 }

 body {
     background: linear-gradient(180deg, #f6fbfd 0%, #eef6fa 100%);
     color: var(--supara-text);
     font-family: "Segoe UI", Roboto, Arial, sans-serif;
 }

 .page-wrapper {
     max-width: 1180px;
     margin: 30px auto 50px;
     padding: 0 16px;
 }

 .institutional-header {
     background: linear-gradient(90deg, #083246 0%, #0d4d69 45%, #0079a8 100%);
     border-radius: 22px;
     overflow: hidden;
     box-shadow: 0 14px 36px rgba(8, 50, 70, 0.18);
     margin-bottom: 28px;
 }

 .institutional-header-inner {
     padding: 14px 22px;
     display: flex;
     align-items: center;
     gap: 20px;
     flex-wrap: wrap;
 }

 .logo-box {
     flex: 0 0 auto;
     min-width: 220px;
     max-width: 360px;
 }

 .logo-box img {
     max-width: 100%;
     max-height: 58px;
     display: block;
     object-fit: contain;

     filter: brightness(0) invert(1);
 }

 .header-text {
     flex: 1;
     color: #fff;
     min-width: 260px;
 }

 .header-text .eyebrow {
     font-size: 0.72rem;
     /* padding: 4px 8px; */
     margin-bottom: 6px;
 }

 .header-text h1 {
     font-size: 1.45rem;
     margin: 0;
     font-weight: 700;
 }

 .header-text p {
     margin: 6px 0 0;
     font-size: 0.9rem;
     opacity: 0.96;
 }

 .hero-card {
     background: var(--supara-white);
     border: 1px solid var(--supara-border);
     border-radius: 20px;
     box-shadow: 0 12px 40px rgba(10, 79, 117, 0.08);
     overflow: hidden;
     margin-bottom: 28px;
 }

 .hero-body {
     padding: 24px 28px;
     background: var(--supara-white);
 }

 .subtle-box {
     background: var(--supara-bg);
     border: 1px dashed var(--supara-border);
     border-radius: 14px;
     padding: 14px 16px;
     color: var(--supara-muted);
     font-size: 0.95rem;
 }

 .section-card {
     background: var(--supara-white);
     border: 1px solid var(--supara-border);
     border-radius: 18px;
     box-shadow: 0 8px 24px rgba(10, 79, 117, 0.06);
     overflow: hidden;
     margin-bottom: 24px;
 }

 .section-header {
     background: #dff2fa;
     color: var(--supara-text);
     padding: 16px 22px;
     font-size: 1.2rem;
     font-weight: 700;
     border-bottom: 1px solid var(--supara-border);
 }

 .section-body {
     padding: 24px 22px 20px;
 }

 .form-label {
     font-weight: 600;
     color: #425466;
     margin-bottom: 8px;
 }

 .form-control,
 .form-select {
     min-height: 50px;
     border-radius: 12px;
     border: 1px solid #d7e4ea;
     background-color: #fbfdfe;
     padding-left: 14px;
     padding-right: 14px;
     box-shadow: none;
     transition: all 0.2s ease;
 }

 /*  textarea.form-control {
     min-height: 130px;
     resize: vertical;
 } */

 .form-control:focus,
 .form-select:focus {
     border-color: var(--supara-primary);
     box-shadow: 0 0 0 0.2rem rgba(0, 163, 215, 0.15);
     background-color: #fff;
 }

 .form-check-input:checked {
     background-color: var(--supara-primary);
     border-color: var(--supara-primary);
 }

 .btn-supara {
     background: linear-gradient(90deg, var(--supara-primary-dark), var(--supara-primary));
     border: 0;
     color: #ffffff !important;
     font-weight: 700;
     border-radius: 12px;
     padding: 13px 24px;
     min-width: 180px;
     box-shadow: 0 10px 24px rgba(0, 121, 168, 0.22);
 }

 .btn-supara:hover {
     background: linear-gradient(90deg, #006d97, #0097c8);
     color: #fff;
 }

 .btn-outline-supara {
     border: 1px solid var(--supara-primary);
     color: var(--supara-primary-dark);
     background: #fff;
     font-weight: 600;
     border-radius: 12px;
     padding: 13px 24px;
 }

 .required {
     color: #d63384;
 }

 .footer-note {
     font-size: 0.92rem;
     color: var(--supara-muted);
 }

 .legal-footer {
     background: #0f2f40;
     color: rgba(255, 255, 255, 0.92);
     border-radius: 18px;
     padding: 22px 24px;
     box-shadow: 0 10px 28px rgba(8, 50, 70, 0.14);
 }

 .legal-footer h6 {
     margin-bottom: 10px;
     font-weight: 700;
     font-size: 1rem;
 }

 .legal-footer p {
     margin: 0 0 10px;
     font-size: 0.93rem;
     line-height: 1.55;
 }

 .legal-footer .small-line {
     opacity: 0.82;
     font-size: 0.88rem;
 }

 @media (max-width: 767.98px) {

     .institutional-header-inner,
     .hero-body,
     .section-body,
     .legal-footer {
         padding-left: 16px;
         padding-right: 16px;
     }

     .section-header {
         padding: 14px 16px;
         font-size: 1.05rem;
     }

     .header-text h1 {
         font-size: 1.55rem;
     }

     .logo-box {
         min-width: 100%;
         max-width: 100%;
     }

     .logo-box img {
         max-height: 74px;
         margin: 0 auto;
     }
 }

 #observaciones {
     min-height: 110px;
 }

 /* Tarjetas */
 .prestamo-card {
     border: 1px solid #d7e4ea;
     border-radius: 16px;
     background: #ffffff;
     height: 100%;
     cursor: pointer;
     transition: all 0.2s ease;
     box-shadow: 0 6px 18px rgba(10, 79, 117, 0.05);
 }

 .prestamo-card:hover {
     border-color: var(--supara-primary);
     transform: translateY(-2px);
     box-shadow: 0 12px 24px rgba(0, 121, 168, 0.12);
 }

 .prestamo-card.selected {
     border: 2px solid var(--supara-primary);
     background: linear-gradient(180deg, #f8fdff 0%, #eef9fd 100%);
     box-shadow: 0 14px 26px rgba(0, 121, 168, 0.18);
 }

 .prestamo-card .card-body {
     padding: 18px;
 }

 .prestamo-top {
     display: flex;
     align-items: flex-start;
     gap: 12px;
 }

 .prestamo-badge {
     display: inline-block;
     font-size: 0.78rem;
     font-weight: 700;
     padding: 5px 10px;
     border-radius: 999px;
     background: #dff2fa;
     color: var(--supara-primary-dark);
     margin-bottom: 12px;
 }

 .prestamo-nombre {
     font-size: 1rem;
     font-weight: 700;
     color: var(--supara-text);
     margin-bottom: 10px;
 }

 .prestamo-monto {
     font-size: 1.45rem;
     font-weight: 800;
     color: var(--supara-primary-dark);
     margin-bottom: 12px;
 }

 .prestamo-meta {
     font-size: 0.95rem;
     color: #506070;
     margin-bottom: 6px;
 }

 .prestamo-check {
     width: 22px;
     height: 22px;
     border-radius: 50%;
     border: 2px solid #b8d8e4;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     margin-left: auto;
     flex-shrink: 0;
     color: transparent;
 }

 .prestamo-card.selected .prestamo-check {
     border-color: var(--supara-primary);
     background: var(--supara-primary);
     color: #fff;
 }

 /* Tarjetas adjuntos DNI */
 .dni-upload-card {
     border: 1px solid #d7e4ea;
     border-radius: 16px;
     background: #fbfdfe;
     padding: 18px;
     height: 100%;
 }

 .dni-upload-title {
     font-size: 1rem;
     font-weight: 700;
     color: var(--supara-text);
     margin-bottom: 8px;
 }

 .dni-upload-help {
     font-size: 0.92rem;
     color: #6c757d;
     line-height: 1.45;
     margin-bottom: 14px;
 }

 .dni-upload-dropzone {
     display: block;
     border: 2px dashed #b9dbe8;
     border-radius: 14px;
     background: #f4fbfe;
     text-align: center;
     padding: 26px 16px;
     cursor: pointer;
     transition: all 0.2s ease;
 }

 .dni-upload-dropzone:hover {
     border-color: var(--supara-primary);
     background: #eef9fd;
 }

 .dni-upload-card.has-file .dni-upload-dropzone {
     border-color: #198754;
     background: #f1fbf5;
 }

 .dni-upload-card.has-error .dni-upload-dropzone {
     border-color: #dc3545;
     background: #fff8f8;
 }

 .dni-upload-icon {
     font-size: 2rem;
     margin-bottom: 8px;
 }

 .dni-upload-text {
     color: var(--supara-text);
     font-size: 0.95rem;
     line-height: 1.45;
 }

 .dni-upload-subtext {
     margin-top: 8px;
     font-size: 0.85rem;
     color: #6c757d;
 }

 .dni-file-name {
     font-size: 0.9rem;
     color: #0d4d69;
     font-weight: 600;
     word-break: break-word;
 }

.firma-card {
    border: 2px dashed var(--supara-border);
    border-radius: 12px;
    background: var(--supara-white);
    overflow: hidden;
    cursor: crosshair;
}

.firma-canvas {
    display: block;
    width: 100%;
    height: 180px;
    touch-action: none;
}