@font-face { font-family: 'Instrument Sans'; src: url('../fonts/InstrumentSans-Regular.ttf') format('truetype'); font-weight: 400 600; font-display: swap; }
@font-face { font-family: 'Instrument Sans'; src: url('../fonts/InstrumentSans-Bold.ttf') format('truetype'); font-weight: 700; font-display: swap; }
@font-face { font-family: Outfit; src: url('../fonts/Outfit-Regular.ttf') format('truetype'); font-weight: 400 600; font-display: swap; }
@font-face { font-family: Outfit; src: url('../fonts/Outfit-Bold.ttf') format('truetype'); font-weight: 700; font-display: swap; }
body.upcn-internal { margin: 0; padding: 0; min-height: 100vh; display: flex; flex-direction: column; background: #f7f9fa; color: #183247; font: 16px/1.5 'Instrument Sans', Arial, sans-serif; }
.upcn-internal * { box-sizing: border-box; }
.upcn-internal .grid { width: calc(100% - 40px); max-width: 1320px; margin-inline: auto; float: none; }
.upcn-internal a { color: #2d5e86; }
.upcn-internal :focus-visible { outline: 3px solid #6192b8; outline-offset: 3px; }
.upcn-internal .upcn-skip { position: absolute; top: -100px; left: 12px; padding: 12px; background: white; z-index: 2000; }
.upcn-internal .upcn-skip:focus { top: 12px; }
/* Same institutional header and navigation as Ayuda Escolar. */
.upcn-internal .upcn-internal-header { background:#102f4e; color:white; }
.upcn-internal .upcn-internal-header .grid { max-width:1280px; width:calc(100% - 48px); }
.upcn-internal .upcn-internal-topbar { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:96px; padding:14px 0; }
.upcn-internal .upcn-internal-brand { display:flex; align-items:center; gap:20px; color:white; text-decoration:none; min-width:0; }
.upcn-internal .upcn-internal-brand img { width:142px; height:56px; object-fit:contain; }
.upcn-internal .upcn-internal-brand > span { border-left:1px solid #ffffff50; padding-left:20px; font:400 24px/1.3 Outfit,Arial,sans-serif; }
.upcn-internal .upcn-internal-brand small { display:block; font:12px/1.5 'Instrument Sans',Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; color:#c4d7e6; }
.upcn-internal .upcn-internal-session { text-align:right; font-size:14px; min-width:0; overflow-wrap:anywhere; }
.upcn-internal .upcn-internal-session > span { display:block; margin-bottom:4px; }
.upcn-internal .upcn-internal-session a { color:white; }
.upcn-internal .upcn-internal-nav { margin:0; border:0; border-top:1px solid #ffffff25; border-radius:0; background:#163b5c; box-shadow:none; }
.upcn-internal .navbar-collapse { padding:0; }
.upcn-internal .navbar-nav { display:flex; flex-wrap:wrap; float:none; margin:0; gap:4px; }
.upcn-internal .navbar-nav > li { float:none; }
.upcn-internal .navbar-nav > li > a, .upcn-internal .navbar-nav > li > button { display:block; padding:13px 14px; color:white; background:transparent; border:0; font:inherit; text-decoration:none; min-height:48px; }
.upcn-internal .navbar-nav > li > a:hover, .upcn-internal .navbar-nav > li > button:hover,
.upcn-internal .navbar-nav > .active > a, .upcn-internal .navbar-nav > .open > button { background:#ffffff18; color:white; }
.upcn-internal .navbar-nav > .dropdown.active { background:transparent !important; }
.upcn-internal .dropdown-menu { padding:8px; border:1px solid #d7e0e5; border-radius:8px; box-shadow:0 12px 32px #102f4e20; font-size:14px; }
.upcn-internal .dropdown-menu > li > a { padding:10px 14px; border-radius:4px; color:#102f4e; }
.upcn-internal .upcn-menu-label { display:none; }
.upcn-internal .upcn-internal-page { flex: 1; padding: 28px 0 48px; min-width: 0; }
.upcn-internal .upcn-internal-title { margin: 0 0 24px; font: 400 clamp(28px, 3vw, 40px)/1.2 Outfit, sans-serif; }
.upcn-internal .upcn-internal-content { padding: 24px; border: 1px solid #d7e0e5; border-radius: 8px; background: white; box-shadow: 0 12px 32px #102f4e0d; min-width: 0; display: flow-root; }
.upcn-internal .upcn-internal-content > .row { margin-bottom: 20px; }
.upcn-internal .upcn-internal-content > .row:last-child { margin-bottom: 0; }
.upcn-internal .fieldset_solicitud { min-width: 0; padding: 20px 12px; margin: 0 0 22px; border: 1px solid #d7e0e5; border-radius: 8px; background: white; display: flow-root; }
.upcn-internal legend { width: auto; max-width: 100%; margin-bottom: 14px; padding: 0 8px; border: 0; font: 700 18px Outfit, sans-serif; color: #102f4e; }
.upcn-internal .form_titulo { font: 700 19px Outfit, sans-serif; color: #102f4e; }
.upcn-internal .datos_afiliado { margin-bottom: 10px; overflow-wrap: anywhere; }
.upcn-internal .btn { min-height: 40px; border-radius: 6px; padding: 9px 14px; font-size: 14px; font-weight: 700; white-space: normal; }
.upcn-internal .btn-primary { background: #2d5e86; border-color: #2d5e86; color: white; }
.upcn-internal .btn-info { background: #e6eff5; border-color: #a9c2d5; color: #183247; }
.upcn-internal .btn-default { background: white; border-color: #afbec7; color: #183247; }
.upcn-internal .btn-error { background: #a63d36; color: white; }
.upcn-internal .form-control, .upcn-internal input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=submit]), .upcn-internal select, .upcn-internal textarea { max-width: 100%; min-height: 40px; padding: 8px 10px; border: 1px solid #afbec7; border-radius: 6px; color: #183247; font: inherit; background: white; }
.upcn-internal textarea { width: 100%; }
.upcn-internal .datepicker { width: 170px; }
.upcn-internal input[type=checkbox], .upcn-internal input[type=radio] { accent-color: #2d5e86; }
.upcn-internal .form-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.upcn-internal .form-inline .form-group { max-width: 100%; }
.upcn-internal .table { margin-block: 12px; background: white; }
.upcn-internal .table th { background: #edf3f6; color: #102f4e; font-weight: 700; }
.upcn-internal .table td, .upcn-internal .table th { padding: 12px 10px; border-color: #d7e0e5; vertical-align: middle; }
.upcn-internal .table tbody tr:hover { background: #f7f9fa; }
.upcn-internal .upcn-table-scroll { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain; margin-bottom: 16px; border-radius: 6px; }
.upcn-internal .upcn-table-scroll > table { min-width: 640px; margin-bottom: 0; }
.upcn-internal .pagination { display: flex; flex-wrap: wrap; gap: 2px; }
.upcn-internal .pagination > li { display: block; }
.upcn-internal .pagination > li > a { min-height: 40px; padding: 8px 12px; }
.upcn-internal .alert { border-radius: 8px; text-align: left; }
.upcn-internal .modal-dialog { max-width: calc(100% - 24px); }
.upcn-internal .modal-content { border-radius: 8px; color: #183247; }
.upcn-internal .modal-header { font: 700 19px Outfit, sans-serif; }
.upcn-internal .upcn-login-card { width: 100%; max-width: 420px; margin: 16px auto; }
.upcn-internal .upcn-login-card label { margin-top: 16px; }
.upcn-internal .upcn-login-card .btn { width: 100%; margin-top: 24px; }
.upcn-internal .upcn-internal-footer { margin-top: auto; background: #102f4e; color: #d2e2ec; padding: 26px 0; }
.upcn-internal .upcn-internal-footer .grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px; }
.upcn-internal .upcn-internal-footer p { margin: 0; }
.upcn-internal .upcn-internal-footer strong, .upcn-internal .upcn-internal-footer a { color: white; }
.upcn-internal .upcn-internal-footer a { display: inline-block; margin: 5px 0 5px 18px; }
@media (max-width: 767px) {
    .upcn-internal .grid { width: calc(100% - 24px); }
    .upcn-internal .upcn-internal-topbar { gap: 12px; min-height: 80px; }
    .upcn-internal .upcn-internal-brand { gap: 10px; font-size: 20px; }
    .upcn-internal .upcn-internal-brand img { width: 90px; height: 42px; }
    .upcn-internal .upcn-internal-brand span { padding-left: 10px; }
    .upcn-internal .upcn-internal-brand small, .upcn-internal .upcn-internal-session strong { display: none; }
    .upcn-internal .upcn-internal-session { font-size: 13px; max-width: 80px; }
    .upcn-internal .upcn-menu-label { display: inline-block; padding: 15px; color: #183247; font-size: 14px; }
    .upcn-internal .navbar-header { float: none; }
    .upcn-internal .navbar-nav { display: block; }
    .upcn-internal .navbar-nav > li > a { padding: 14px; }
    .upcn-internal .navbar-nav .open .dropdown-menu > li > a { white-space: normal; padding: 12px 24px; }
    .upcn-internal .upcn-internal-page { padding-top: 22px; }
    .upcn-internal .upcn-internal-content { padding: 16px; }
    .upcn-internal .upcn-internal-content .row { margin-left: -8px; margin-right: -8px; }
    .upcn-internal .upcn-internal-content [class*="col-"] { padding-left: 8px; padding-right: 8px; }
    .upcn-internal .form-inline { display: flex; flex-direction: column; align-items: stretch; }
    .upcn-internal .form-inline > *, .upcn-internal .form-inline .form-control { width: 100%; }
    .upcn-internal .fieldset_solicitud { padding: 14px 4px; }
    .upcn-internal .upcn-internal-content .search { margin-bottom: 12px; }
    .upcn-internal .upcn-internal-content .search form { display: flex; gap: 8px; }
    .upcn-internal .modal-footer .btn { margin: 4px 0; width: 100%; }
    .upcn-internal .upcn-internal-footer a { margin-left: 0; margin-right: 14px; }
    .upcn-internal .dataTables_wrapper .dataTables_length, .upcn-internal .dataTables_wrapper .dataTables_filter { text-align: left; float: none; }
}
@media print {
    body.upcn-internal { display: block; background: white; font-size: 11pt; }
    .upcn-internal .upcn-internal-header, .upcn-internal .upcn-internal-footer, .upcn-internal .btn, .upcn-internal .pagination, .upcn-internal .upcn-skip { display: none !important; }
    .upcn-internal .grid { width: 100%; max-width: none; }
    .upcn-internal .upcn-internal-content { box-shadow: none; padding: 0; border: 0; }
    .upcn-internal .upcn-table-scroll { overflow: visible; }
    .upcn-internal .upcn-table-scroll > table { min-width: 0; width: 100% !important; }
}
.upcn-internal .search .form-control { min-width: 0; }
.upcn-internal .table td > a[title]:has(.glyphicon) { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; }
@media (max-width: 767px) {
    .upcn-internal .dataTables_wrapper .dataTables_length label,
    .upcn-internal .dataTables_wrapper .dataTables_filter label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: 100%; white-space: normal; }
    .upcn-internal .dataTables_wrapper .dataTables_filter input { width: 100%; min-width: 0; margin-left: 0; }
    .upcn-internal .dataTables_wrapper .dataTables_length select { width: auto; min-width: 72px; }
}
.upcn-internal .dataTables_wrapper.form-inline { display: block; }
.upcn-internal .dataTables_wrapper .dataTables_info { white-space: normal; }
.upcn-internal .dataTables_wrapper .dataTables_filter label { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.upcn-internal .dataTables_wrapper .dataTables_filter input { max-width: 100%; margin-left: 0; }
.upcn-internal .btn-success { background: #24734b; border-color: #24734b; color: white; }

.upcn-internal .ui-account-eyebrow { color:#2d5e86; font:700 12px/1.5 'Instrument Sans',Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; margin:0 0 8px; }
@media(max-width:1024px) {
 .upcn-internal .upcn-internal-header .grid { width:calc(100% - 32px); }
 .upcn-internal .navbar-nav > li > a, .upcn-internal .navbar-nav > li > button { padding-inline:10px; }
}
@media(max-width:767px) {
 .upcn-internal .upcn-internal-session > span { display:none; }
 .upcn-internal .upcn-menu-label { color:white; }
 .upcn-internal .navbar-default .navbar-toggle { border-color:#ffffff60; }
 .upcn-internal .navbar-default .navbar-toggle .icon-bar { background:white; }
 .upcn-internal .navbar-default .navbar-toggle:hover, .upcn-internal .navbar-default .navbar-toggle:focus { background:#ffffff18; }
 .upcn-internal .navbar-default .navbar-collapse { border-color:#ffffff25; }
 .upcn-internal .navbar-nav > li > button { width:100%; text-align:left; padding:14px; }
 .upcn-internal .navbar-nav .open .dropdown-menu { background:#102f4e; }
 .upcn-internal .navbar-nav .open .dropdown-menu > li > a { color:white; }
 .upcn-internal .navbar-nav .open .dropdown-menu > li > a:hover { background:#ffffff18; }
}
.upcn-internal .navbar-nav > li > .dropdown-menu { border-radius:8px; margin-top:2px; }
.upcn-internal .upcn-internal-nav .dropdown-menu .divider { display:none; }
