/* Independent patient theme, inspired by mri-expert.lviv.ua. */
:root {
    --cab-primary: #1895a8;
    --cab-dark: #093b42;
    --cab-surface: #ebf2f7;
    --bs-primary: var(--cab-primary);
    --bs-primary-rgb: 24, 149, 168;
    --bs-body-font-family: "Century Gothic", "Segoe UI", Arial, sans-serif;
    --bs-body-color: var(--cab-dark);
    --bs-body-bg: #f5f9fb;
}

body { min-height: 100vh; min-height: 100dvh; }
.cab-header { background: #fff; border-bottom: 3px solid var(--cab-primary); }
.cab-header-layout {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(0, 2fr) minmax(180px, 1fr);
    align-items: center;
    gap: 1.5rem;
    padding-top: 1.75rem;
    padding-bottom: 1.75rem;
}
.cab-logo { display: inline-flex; justify-self: start; max-width: 100%; }
.cab-logo img { display: block; max-width: 100%; height: auto; }
.cab-title { margin: 0; text-align: center; font-size: clamp(1.1rem, 1.7vw, 1.55rem); font-weight: 700; line-height: 1.45; }
.cab-phones { display: flex; flex-direction: column; align-items: flex-end; gap: .4rem; }
.cab-phones a { color: var(--cab-dark); font-size: 1rem; font-weight: 600; text-decoration: none; white-space: nowrap; padding-block: .25rem; }
.cab-phones a:hover { color: var(--cab-primary); text-decoration: underline; }
a:focus-visible { outline: 3px solid var(--cab-primary); outline-offset: 5px; }
.cab-main { padding-top: clamp(3rem, 10vh, 7rem); padding-bottom: 3rem; }
.cab-code-card { max-width: 580px; margin-inline: auto; border-radius: 1.25rem; background: #fff; box-shadow: 0 16px 60px rgb(9 59 66 / 8%); }
.cab-code-card .card-body { padding: clamp(1.5rem, 5vw, 3rem); }
.cab-study-card { max-width: 1100px; }
.cab-viewer-help a { color: #107486; font-weight: 600; text-underline-offset: .2em; }
.cab-viewer-help a:hover { color: var(--cab-dark); }
.cab-viewer-steps { padding-left: 1.3rem; margin-bottom: 1.75rem; color: #526b73; line-height: 1.7; }
.cab-viewer-steps li + li { margin-top: .6rem; }
.cab-viewer-option { padding: 1.25rem; border: 1px solid #d5e4e8; border-radius: .75rem; background: #f5f9fb; }
.cab-viewer-option p { font-size: .9rem; margin-bottom: 1rem; }
.cab-platform-badge { background: #e0f1f4; color: var(--cab-dark); white-space: normal; line-height: 1.4; }
.cab-study-information { display: flex; flex-wrap: wrap; align-items: baseline; gap: .75rem 1.5rem; line-height: 1.6; overflow-wrap: anywhere; }
.cab-accent { width: 3rem; height: .3rem; margin-bottom: 1.75rem; background: var(--cab-primary); border-radius: 1rem; }
.cab-code-card h2 { margin-bottom: 1rem; font-size: clamp(1.5rem, 4vw, 1.9rem); font-weight: 700; }
.cab-code-card p { color: #526b73; line-height: 1.7; margin-bottom: 2rem; }
.cab-code-card .form-label { font-weight: 600; }
.cab-code-input { min-height: 3.5rem; background: #fff; border: 1px solid #b6cdd3; border-radius: .6rem; color: var(--cab-dark); font-size: 1.5rem; font-weight: 700; text-align: center; letter-spacing: .15em; }
.cab-code-input:focus { border-color: var(--cab-primary); box-shadow: 0 0 0 .25rem rgb(24 149 168 / 16%); }
.cab-login-button { min-height: 3.5rem; border-radius: .6rem; font-weight: 700; --bs-btn-color: #fff; --bs-btn-bg: var(--cab-primary); --bs-btn-border-color: var(--cab-primary); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #137b8b; --bs-btn-hover-border-color: #137b8b; --bs-btn-active-color: #fff; --bs-btn-active-bg: var(--cab-dark); --bs-btn-active-border-color: var(--cab-dark); --bs-btn-focus-shadow-rgb: 24, 149, 168; }
@media (max-width: 767.98px) {
    .cab-header-layout { grid-template-columns: minmax(0, 1fr) auto; gap: 1.25rem .75rem; padding-block: 1.25rem; }
    .cab-logo img { width: 170px; }
    .cab-title { grid-column: 1 / -1; grid-row: 2; font-size: 1.15rem; }
    .cab-phones a { font-size: .85rem; }
    .cab-main { padding-top: 2.5rem; }
}
@media (max-width: 359.98px) {
    .cab-logo img { width: 130px; }
    .cab-phones a { font-size: .75rem; }
}
