/* UI01 | foundation: type, focus, high-contrast responsive controls. */
html {scroll-padding-top:calc(var(--ds-topbar-height) + 20px)}
body.portal-body {margin:0;font-family:var(--ds-font);font-size:14px;line-height:1.8;background:var(--ds-canvas);color:var(--ds-ink);-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}button{touch-action:manipulation}
h1,h2,h3,h4,h5,h6 {color:var(--ds-ink);font-weight:750;line-height:1.55;letter-spacing:-.015em}
h1{font-size:clamp(1.45rem,2vw,1.9rem)}h2{font-size:1.2rem}
a{color:var(--ds-teal-700);text-underline-offset:3px}a:hover{color:var(--ds-teal-800)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {outline:3px solid var(--ds-focus)!important;outline-offset:3px!important}
::selection{background:#c7e8e9;color:var(--ds-navy-950)}
.ui-icon{width:20px;height:20px;display:inline-block;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.ui-icon--sm{width:17px;height:17px}.ui-icon--lg{width:24px;height:24px}.ui-icon--xl{width:30px;height:30px}
.ds-kicker{margin:0;color:var(--ds-teal-700);font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.ds-muted{color:var(--ds-muted)}.ds-ltr{direction:ltr;unicode-bidi:isolate;display:inline-block}.ds-number{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate;display:inline-block}
.ds-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ds-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;border:0!important;white-space:nowrap!important}
.portal-main .form-label,.portal-guest-main .form-label{font-size:.86rem;font-weight:750;margin-bottom:7px;color:var(--ds-ink-soft)}
.portal-main .form-control,.portal-main .form-select,.portal-guest-main .form-control,.portal-guest-main .form-select{min-height:45px;border-color:var(--ds-border-strong);border-radius:var(--ds-radius-sm);padding-inline:13px;background-color:#fff;color:var(--ds-ink)}
.portal-main .form-control:focus,.portal-main .form-select:focus,.portal-guest-main .form-control:focus,.portal-guest-main .form-select:focus{border-color:var(--ds-teal-600);box-shadow:0 0 0 3px rgb(8 126 144 / 14%)}
.portal-main .form-text{color:var(--ds-muted);font-size:.76rem}.portal-form-field .invalid-feedback{font-size:.77rem}
.portal-main .btn,.portal-guest-main .btn{min-height:42px;border-radius:var(--ds-radius-sm);font-weight:700;padding-inline:16px;transition:background var(--ds-duration),border-color var(--ds-duration),transform var(--ds-duration)}
.portal-main .btn:hover,.portal-guest-main .btn:hover{transform:translateY(-1px)}
.portal-main .btn-primary,.portal-guest-main .btn-primary{background:var(--ds-teal-700);border-color:var(--ds-teal-700);color:#fff}
.portal-main .btn-primary:hover,.portal-guest-main .btn-primary:hover{background:var(--ds-teal-800);border-color:var(--ds-teal-800)}
.portal-main .btn-outline-primary,.portal-guest-main .btn-outline-primary{color:var(--ds-teal-800);border-color:#91bcc5}
.portal-main .btn-outline-primary:hover,.portal-guest-main .btn-outline-primary:hover{background:var(--ds-teal-800);border-color:var(--ds-teal-800);color:#fff}
.portal-main .btn-sm,.portal-guest-main .btn-sm{min-height:36px;padding-inline:12px}
.portal-main .card,.portal-guest-main .card {background:var(--ds-surface);border:1px solid var(--ds-border);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-xs)}
.portal-main .card-header{background:var(--ds-soft);border-color:var(--ds-border);padding:18px 22px;border-radius:var(--ds-radius-lg) var(--ds-radius-lg) 0 0}
.portal-main .card-body{padding:22px}.portal-main .card-footer{background:var(--ds-soft);border-color:var(--ds-border)}
.portal-main .table{--bs-table-bg:transparent;--bs-table-hover-bg:#f4f9fa;line-height:1.6}
.portal-main .table th{background:#f7f9fb;color:var(--ds-ink-soft);border-bottom:1px solid var(--ds-border);font-size:.78rem;font-weight:800;padding:13px 16px}
.portal-main .table td{padding:13px 16px;border-bottom-color:#e7edf2;font-size:.85rem}.portal-main .table-striped>tbody>tr:nth-of-type(odd)>*{--bs-table-bg-type:#fafcfd}
.portal-main .table-responsive{border:1px solid var(--ds-border);border-radius:var(--ds-radius-md)}
.portal-main .badge{font-size:.72rem;line-height:1.7;padding:5px 9px;border-radius:7px;font-weight:700}
.portal-main .alert,.portal-guest-main .alert{border-radius:var(--ds-radius-sm);border-width:1px}
@media (prefers-reduced-motion:reduce) {html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(forced-colors:active){.ds-button,.portal-nav-link{border:1px solid CanvasText}.ui-icon{stroke:CanvasText}}
