/* Institutional design shared with Turismo; fonts are served locally. */
@font-face { font-family:'Instrument Sans'; src:url(/build/fonts/InstrumentSans-Regular.00006c50.ttf) format('truetype'); font-weight:400 600; font-display:swap; }
@font-face { font-family:'Instrument Sans'; src:url(/build/fonts/InstrumentSans-Bold.7f35fda7.ttf) format('truetype'); font-weight:700; font-display:swap; }
@font-face { font-family:Outfit; src:url(/build/fonts/Outfit-Regular.662b97eb.ttf) format('truetype'); font-weight:400 600; font-display:swap; }
@font-face { font-family:Outfit; src:url(/build/fonts/Outfit-Bold.a5115d45.ttf) format('truetype'); font-weight:700; font-display:swap; }
.upcn-ui { --ui-brand:#102f4e; --ui-primary:#2d5e86; --ui-text:#183247; --ui-muted:#607382; --ui-border:#d7e0e5; --ui-soft:#edf3f6; margin:0; min-height:100vh; display:flex; flex-direction:column; background:#f7f9fa; color:var(--ui-text); font:16px/1.5 'Instrument Sans',Arial,sans-serif; }
.upcn-ui *, .upcn-ui *::before, .upcn-ui *::after { box-sizing:border-box; }
.upcn-ui a { color:var(--ui-primary); }
.upcn-ui :focus-visible { outline:3px solid #6192b8; outline-offset:3px; }
.upcn-ui h1,.upcn-ui h2,.upcn-ui h3,.upcn-ui h4,.upcn-ui h5,.upcn-ui h6 { color:var(--ui-brand); font-family:Outfit,Arial,sans-serif; }
.upcn-ui h1 { font-size:clamp(28px,3vw,40px); font-weight:400; line-height:1.2; }
.upcn-ui h2 { font-size:26px; } .upcn-ui h3 { font-size:22px; } .upcn-ui h4 { font-size:20px; }
.upcn-ui .ui-shell { width:calc(100% - 48px); max-width:1280px; margin-inline:auto; min-width:0; }
.upcn-ui .ui-skip { position:absolute; top:-100px; left:12px; padding:12px 18px; background:white; border-radius:6px; z-index:2000; }
.upcn-ui .ui-skip:focus { top:12px; }
.upcn-ui .ui-header { background:var(--ui-brand); color:white; }
.upcn-ui .ui-topbar { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:96px; padding-block:14px; }
.upcn-ui .ui-brand { display:flex; align-items:center; gap:20px; color:white; text-decoration:none; min-width:0; }
.upcn-ui .ui-brand img { width:142px; height:56px; object-fit:contain; }
.upcn-ui .ui-brand > span { border-left:1px solid #ffffff50; padding-left:20px; font:400 24px/1.3 Outfit,Arial,sans-serif; }
.upcn-ui .ui-brand small { display:block; color:#c4d7e6; font:12px/1.5 'Instrument Sans',Arial,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.upcn-ui .ui-session { min-width:0; text-align:right; font-size:14px; overflow-wrap:anywhere; }
.upcn-ui .ui-session > span { display:block; margin-bottom:4px; }
.upcn-ui .ui-session a { color:white; text-decoration:none; }
.upcn-ui .ui-session a:hover { text-decoration:underline; }
.upcn-ui .ui-session-label { color:#c4d7e6; font-size:14px; }
.upcn-ui .ui-nav { padding:0; border-top:1px solid #ffffff25; background:#163b5c; }
.upcn-ui .ui-nav > .ui-shell { display:flex; flex-wrap:wrap; align-items:center; }
.upcn-ui .ui-nav .navbar-nav { flex-wrap:wrap; gap:2px; margin:0 !important; }
.upcn-ui .ui-nav .nav-link { padding:13px 11px; min-height:48px; color:#ecf3f8; font-size:14px; }
.upcn-ui .ui-nav .nav-link:hover,.upcn-ui .ui-nav .nav-link.active,.upcn-ui .ui-nav .nav-link.show { background:#ffffff18; color:white; }
.upcn-ui .ui-menu-label { display:none; }
.upcn-ui .dropdown-menu { padding:8px; max-width:min(420px,calc(100vw - 32px)); border:1px solid var(--ui-border); border-radius:8px; box-shadow:0 12px 32px #102f4e20; font-size:14px; }
.upcn-ui .ui-content .dropdown-menu { max-height:min(420px,calc(50vh - 48px)); overflow-y:auto; }
.upcn-ui .dropdown-item { padding:10px 14px; border-radius:4px; color:var(--ui-text); white-space:normal; }
.upcn-ui .dropdown-item:hover,.upcn-ui .dropdown-item:focus { background:var(--ui-soft); color:var(--ui-brand); }
.upcn-ui .dropdown-item.active { background:var(--ui-primary); color:white; }
.upcn-ui .ui-page { flex:1; padding-block:32px 56px; }
.upcn-ui .ui-page-heading { margin-bottom:28px; }
.upcn-ui .ui-page-heading h1 { margin:0; }
.upcn-ui .ui-page-heading p:not(.ui-eyebrow) { max-width:740px; margin:12px 0 0; color:var(--ui-muted); }
.upcn-ui .ui-eyebrow { margin:0 0 8px; color:var(--ui-primary); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.upcn-ui .ui-content { min-width:0; display:flow-root; }
.upcn-ui .card,.upcn-ui .ui-surface { min-width:0; background:white; border:1px solid var(--ui-border); border-radius:8px; box-shadow:0 8px 28px #102f4e08; }
.upcn-ui .ui-content > .card,.upcn-ui .ui-content > div[id] > .card { margin-bottom:24px; }
.upcn-ui .card-header { padding:16px 24px; border-color:var(--ui-border); background:#fafcfd; color:var(--ui-brand); font:700 18px/1.4 Outfit,Arial,sans-serif; border-radius:8px 8px 0 0; }
.upcn-ui .card-body,.upcn-ui .ui-surface { padding:24px; }
.upcn-ui .card .card { box-shadow:none; }
.upcn-ui .card-body > .row + .row { margin-top:12px; }
.upcn-ui form > .row,.upcn-ui form > div > .row { margin-top:0; margin-bottom:20px; row-gap:18px; }
.upcn-ui .card-body form > .row:first-child { margin-top:0 !important; }
.upcn-ui [class*='col-'] { min-width:0; }
.upcn-ui label,.upcn-ui .form-label { font-weight:600; margin-bottom:8px; font-size:14px; }
.upcn-ui .form-control,.upcn-ui .form-select,.upcn-ui .select2-container--bootstrap-5 .select2-selection { min-height:44px; border-color:#afbec7; border-radius:6px; padding:9px 12px; color:var(--ui-text); font-family:inherit; box-shadow:none; }
.upcn-ui .form-control:focus,.upcn-ui .form-select:focus,.upcn-ui .select2-container--bootstrap-5.select2-container--focus .select2-selection { border-color:#6192b8; box-shadow:0 0 0 3px #6192b826; }
.upcn-ui .form-control:disabled,.upcn-ui .form-control[readonly],.upcn-ui .form-select:disabled { background:var(--ui-soft); color:#506877; }
.upcn-ui .form-select[multiple] { min-height:130px; }
.upcn-ui textarea.form-control { min-height:110px; }
.upcn-ui .form-check { padding-top:3px; }
.upcn-ui .form-check-input { width:18px; height:18px; border-color:#afbec7; }
.upcn-ui .form-check-input:checked { background-color:var(--ui-primary); border-color:var(--ui-primary); }
.upcn-ui .form-check-label { font-weight:400; }
.upcn-ui .form-text,.upcn-ui small { color:var(--ui-muted); }
.upcn-ui .form-error,.upcn-ui .invalid-feedback { color:#a63d36; font-size:14px; margin-top:6px; }
.upcn-ui .form-control.invalid,.upcn-ui .form-control.is-invalid { border-color:#a63d36; }
.upcn-ui .select2-container { max-width:100%; }
.upcn-ui .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered { padding:0; color:var(--ui-text); }
.upcn-ui .btn { min-height:42px; padding:9px 16px; font-size:14px; font-weight:700; border-radius:6px; white-space:normal; line-height:1.5; }
.upcn-ui .btn-primary { background:var(--ui-primary); border-color:var(--ui-primary); color:white; }
.upcn-ui .btn-primary:hover,.upcn-ui .btn-primary:active,.upcn-ui .btn-primary:focus { background:#214968; border-color:#214968; }
.upcn-ui .btn-secondary,.upcn-ui .btn-outline-secondary { background:white; color:var(--ui-text); border-color:#afbec7; }
.upcn-ui .btn-secondary:hover,.upcn-ui .btn-outline-secondary:hover { background:var(--ui-soft); border-color:#7f9bad; color:var(--ui-brand); }
.upcn-ui .btn-info { background:#e6eff5; color:#183247; border-color:#a9c2d5; }
.upcn-ui .btn-success { background:#24734b; border-color:#24734b; color:white; }
.upcn-ui .btn-danger { background:#a63d36; border-color:#a63d36; color:white; }
.upcn-ui .btn-sm { min-height:36px; padding:6px 10px; font-size:13px; }
.upcn-ui .ui-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:24px; padding-top:20px; border-top:1px solid var(--ui-border); }
.upcn-ui .ui-actions .ui-action-end { margin-left:auto; }
.upcn-ui .table { margin-block:12px; color:var(--ui-text); font-size:14px; --bs-table-striped-bg:#f7f9fa; --bs-table-hover-bg:#edf3f6; }
.upcn-ui .table > :not(caption) > * > * { padding:13px 14px; border-color:var(--ui-border); vertical-align:middle; }
.upcn-ui .table th,.upcn-ui .table-dark { background:var(--ui-soft); color:var(--ui-brand); --bs-table-bg:#edf3f6; --bs-table-color:#102f4e; --bs-table-border-color:#d7e0e5; font-weight:700; }
.upcn-ui .table tbody tr:hover > td { background-color:#f0f5f8; }
.upcn-ui .table td.bg-danger { background:#a63d36 !important; color:white; }
.upcn-ui .table caption { padding:12px 0; color:var(--ui-muted); }
.upcn-ui .table-responsive { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; border-radius:6px; margin-bottom:16px; }
.upcn-ui .table-responsive > .table { margin-bottom:0; }
.upcn-ui .table td .btn,.upcn-ui .table td form { margin-block:3px; }
.upcn-ui .ui-results-title { display:flex; align-items:center; gap:8px; margin-bottom:18px; color:var(--ui-muted); font:400 14px/1.5 'Instrument Sans',Arial,sans-serif; }
.upcn-ui .ui-results-title b { color:var(--ui-brand); background:var(--ui-soft); border-radius:5px; padding:4px 10px; }
.upcn-ui .pagination { flex-wrap:wrap; gap:4px; margin-block:20px 0; }
.upcn-ui .page-link { padding:9px 14px; border:1px solid var(--ui-border); border-radius:6px !important; color:var(--ui-primary); }
.upcn-ui .page-item.active .page-link { background:var(--ui-primary); border-color:var(--ui-primary); }
.upcn-ui .page-item.disabled .page-link { background:#f7f9fa; }
.upcn-ui .breadcrumb { margin:0; font:400 14px/1.5 'Instrument Sans',Arial,sans-serif; overflow-wrap:anywhere; }
.upcn-ui .nav-tabs { flex-wrap:wrap; gap:4px; border-bottom-color:var(--ui-border); }
.upcn-ui .nav-tabs .nav-link { padding:12px 16px; color:var(--ui-muted); font-size:14px; font-weight:600; }
.upcn-ui .nav-tabs .nav-link.active { color:var(--ui-primary); background:var(--ui-soft); border-color:var(--ui-border) var(--ui-border) white; }
.upcn-ui .tab-content > .tab-pane { padding-block:24px; }
.upcn-ui .accordion-item { border-color:var(--ui-border); border-radius:6px; }
.upcn-ui .accordion-button { padding:16px 20px; color:var(--ui-brand); font:600 16px/1.5 'Instrument Sans',Arial,sans-serif; }
.upcn-ui .accordion-button:not(.collapsed) { background:var(--ui-soft); color:var(--ui-brand); box-shadow:none; }
.upcn-ui .accordion-body { padding:20px; }
.upcn-ui .list-group-item { padding:12px 16px; border-color:var(--ui-border); color:var(--ui-text); overflow-wrap:anywhere; }
.upcn-ui .ui-notice { background:#e6eff5; border-color:#a9c2d5; color:#183247; }
.upcn-ui .ui-danger { background:#fff0ee; border-color:#edc2be; color:#a63d36; }
.upcn-ui .alert { padding:16px 20px; border-radius:8px; font-size:14px; }
.upcn-ui .alert-primary,.upcn-ui .alert-info { background:#e6eff5; border-color:#a9c2d5; color:#183247; }
.upcn-ui .alert-danger { background:#fff0ee; border-color:#edc2be; color:#a63d36; }
.upcn-ui .alert-success { background:#edf7f0; border-color:#b9dac6; color:#24613f; }
.upcn-ui .alert-warning { background:#fff8e8; border-color:#ecd9a7; color:#765a20; }
.upcn-ui .modal-content { border:1px solid var(--ui-border); border-radius:8px; box-shadow:0 16px 60px #102f4e26; }
.upcn-ui .modal-header,.upcn-ui .modal-footer { padding:18px 24px; border-color:var(--ui-border); }
.upcn-ui .modal-body { padding:24px; }
.upcn-ui #overlay { position:fixed; inset:0; background:#f7f9faCC; z-index:2000; }
.upcn-ui #overlay > div { height:100%; align-items:center; }
.upcn-ui #overlay .spinner-border { color:var(--ui-primary); }
.upcn-ui .uppercase { text-transform:uppercase; }
.upcn-ui hr { border-color:var(--ui-border) !important; opacity:1; height:1px; }
.upcn-ui .ui-login { max-width:440px; margin:0 auto; padding:28px; }
.upcn-ui .ui-login h2 { margin:0 0 10px; font-size:24px; font-weight:400; }
.upcn-ui .ui-login p { margin-bottom:24px; color:var(--ui-muted); }
.upcn-ui .ui-login .btn { width:100%; margin-top:8px; min-height:44px; }
.upcn-ui .ui-login .mb-3 { margin-bottom:20px !important; }
.upcn-ui .ui-profile-photo { width:178px; max-width:100%; margin:0 auto 20px; }
.upcn-ui .ui-profile-photo img { display:block; width:100%; border-radius:8px; border:1px solid var(--ui-border); }
.upcn-ui .ui-footer { margin-top:auto; padding-block:26px; background:var(--ui-brand); color:#d2e2ec; font-size:14px; }
.upcn-ui .ui-footer .ui-shell { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:18px; }
.upcn-ui .ui-footer strong,.upcn-ui .ui-footer a { color:white; }
.upcn-ui .ui-footer p { margin:4px 0 0; }
.upcn-ui .ui-footer a { text-decoration:none; }
.upcn-ui .ui-footer a:hover { text-decoration:underline; }
.upcn-ui .ui-footer i { margin-left:8px; }
@media(max-width:1199px) {
 .upcn-ui .ui-menu-label { display:block; padding-block:14px; color:white; font-size:14px; }
 .upcn-ui .navbar-toggler { margin-left:auto; border-color:#ffffff60; }
 .upcn-ui .ui-nav .navbar-collapse { flex-basis:100%; border-top:1px solid #ffffff25; }
 .upcn-ui .ui-nav .nav-link { padding:12px; }
 .upcn-ui .ui-nav .dropdown-menu { background:#102f4e; box-shadow:none; border-color:#ffffff25; max-width:100%; }
 .upcn-ui .ui-nav .dropdown-item { color:white; }
 .upcn-ui .ui-nav .dropdown-item:hover { background:#ffffff18; }
}
@media(max-width:767px) {
 .upcn-ui .ui-shell { width:calc(100% - 32px); }
 .upcn-ui .ui-topbar { min-height:80px; gap:12px; }
 .upcn-ui .ui-brand { gap:12px; }
 .upcn-ui .ui-brand img { width:100px; height:42px; }
 .upcn-ui .ui-brand > span { padding-left:12px; font-size:22px; }
 .upcn-ui .ui-brand small,.upcn-ui .ui-session > span,.upcn-ui .ui-session-label { display:none; }
 .upcn-ui .ui-page { padding-block:24px 36px; }
 .upcn-ui .ui-page-heading { margin-bottom:22px; }
 .upcn-ui .card-body,.upcn-ui .ui-surface { padding:18px; }
 .upcn-ui .card-header { padding:14px 18px; }
 .upcn-ui form .row > .col-2,.upcn-ui form .row > .col-3,.upcn-ui form .row > .col-4,.upcn-ui form .row > .col-5,.upcn-ui form .row > .col-6,.upcn-ui form .row > .col-7,.upcn-ui form .row > .col-8,.upcn-ui form .row > .col-9,.upcn-ui form .row > .col-10 { width:100%; }
 .upcn-ui .table-responsive > table { min-width:620px; }
 .upcn-ui .nav-tabs .nav-link { padding:10px 12px; }
 .upcn-ui .ui-actions > .btn { flex:1 1 auto; }
 .upcn-ui .ui-actions .ui-action-end { margin-left:0; }
 .upcn-ui .modal-footer .btn { flex:1 1 auto; }
}
@media(prefers-reduced-motion:reduce) {
 .upcn-ui *,.upcn-ui *::before,.upcn-ui *::after { scroll-behavior:auto !important; transition:none !important; animation-duration:.01ms !important; }
}
@media print {
 body.upcn-ui { display:block; background:white; font:11pt/1.4 Arial,sans-serif; }
 .upcn-ui .ui-header,.upcn-ui .ui-footer,.upcn-ui .ui-skip,.upcn-ui .btn,.upcn-ui .pagination,.upcn-ui #overlay { display:none !important; }
 .upcn-ui .ui-shell { width:100%; max-width:none; }
 .upcn-ui .ui-page { padding:0; }
 .upcn-ui .card,.upcn-ui .ui-surface { box-shadow:none; }
 .upcn-ui .table-responsive { overflow:visible; }
 .upcn-ui .table-responsive > table { min-width:0; }
 .upcn-ui .table { font-size:9pt; }
}
.upcn-ui .ui-map { width:100%; height:280px; border-radius:8px; }
.upcn-ui .ui-audit-panel { padding:24px; background:white; border:1px solid var(--ui-border); border-radius:8px; }
.upcn-ui .ui-permissions-table { min-width:0 !important; table-layout:fixed; }
.upcn-ui .ui-permissions-table th:first-child { width:32%; }
.upcn-ui .ui-permissions-table th:last-child { width:76px; }
.upcn-ui .ui-permissions-table td { vertical-align:top; overflow-wrap:anywhere; }
@media(max-width:767px) {
 .upcn-ui .ui-permissions-table > :not(caption) > * > * { padding:12px 8px; }
 .upcn-ui .ui-permissions-table th:last-child { width:68px; }
}

