/* HIMS visual system. Loaded after framework styles; no workflow overrides. */
:root {
  --hims-primary: #326080;
  --hims-primary-deep: #244a65;
  --hims-primary-soft: #edf4f9;
  --hims-ink: #213649;
  --hims-muted: #64788a;
  --hims-line: #e2eaf0;
  --hims-canvas: #f3f7fa;
  --hims-teal: #187e87;
  --hims-shadow: 0 4px 24px rgba(36, 74, 101, .045);
  --bs-primary: #326080;
  --bs-primary-rgb: 50, 96, 128;
  --bs-primary-text-emphasis: #244a65;
  --bs-primary-bg-subtle: #edf4f9;
  --bs-primary-border-subtle: #c4d7e5;
  --bs-link-color: #326080;
  --bs-link-color-rgb: 50, 96, 128;
  --bs-link-hover-color: #244a65;
  --bs-link-hover-color-rgb: 36, 74, 101;
  --bs-body-color: #213649;
  --bs-body-bg: #f3f7fa;
  --bs-border-color: #e2eaf0;
  --bs-info-rgb: 24, 126, 135;
  --bs-success-rgb: 25, 126, 101;
  --bs-warning-rgb: 184, 121, 23;
  --bs-danger-rgb: 185, 64, 78;
}
html { scroll-padding-top: 96px; }
body, input, button, select, textarea { font-family: "Inter", "Segoe UI", Arial, sans-serif; }
body { background: var(--hims-canvas); color: var(--hims-ink); font-size: 14px; line-height: 1.6; }
h1, h2, h3, h4, h5, h6 { font-family: inherit; color: var(--hims-ink); font-weight: 650; letter-spacing: -.025em; }
a { color: var(--hims-primary); text-decoration: none; }
a:hover { color: var(--hims-primary-deep); }
::selection { background: #d7e8f2; color: #244a65; }
:focus-visible { outline: 3px solid #8ab6d2; outline-offset: 3px; }
.text-muted { color: var(--hims-muted) !important; }
.bg-light { background-color: #f5f8fb !important; }
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 2000; padding: 12px 20px; background: white; border-radius: 10px; }
.skip-link:focus { top: 12px; }
.header { height: 76px; background: #fff; border-bottom: 1px solid var(--hims-line); box-shadow: none; padding: 0 28px; gap: 20px; }
.header .logo { width: auto; min-width: 214px; gap: 12px; }
.hims-brand-mark { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--hims-primary); color: white; box-shadow: 0 4px 10px #32608020; }
.hims-brand-mark svg { width: 22px; height: 22px; }
.hims-brand-mark svg path { fill: #fff !important; stroke: none !important; }
.header .logo .hims-brand-name { color: var(--hims-ink); font-size: 19px; letter-spacing: -.04em; font-weight: 750; line-height: 1.2; }
.hims-brand-caption { display: block; font-size: 10px; font-weight: 500; letter-spacing: .055em; text-transform: uppercase; color: var(--hims-muted); margin-top: 4px; }
.header .toggle-sidebar-btn { border: 1px solid var(--hims-line); background: white; border-radius: 9px; color: var(--hims-primary); font-size: 16px; width: 36px; height: 36px; padding: 0; margin-left: 12px; }
.header .toggle-sidebar-btn:hover { background: var(--hims-primary-soft); }
.hims-header-context { color: var(--hims-muted); font-size: 12px; padding-left: 20px; border-left: 1px solid var(--hims-line); }
.header-nav > ul { gap: 16px; margin-bottom: 0; }
.hims-date { color: var(--hims-muted); font-size: 12px; white-space: nowrap; }
.hims-date i { color: var(--hims-primary); margin-right: 7px; }
.header .header-nav .nav-profile { color: var(--hims-ink); gap: 8px; }
.header .avatar-img { width: 34px; height: 34px; border-radius: 50%; border: 2px solid #edf4f9; object-fit: cover; }
.hims-profile-label { font-size: 12px; font-weight: 600; max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar { top: 76px; width: 264px; padding: 24px 15px; background: #fff; border-right: 1px solid var(--hims-line); box-shadow: none; }
.hims-sidebar-intro { padding: 0 13px 20px; }
.hims-eyebrow { color: var(--hims-muted); font-size: 10px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.hims-sidebar-intro strong { display: block; margin-top: 5px; font-weight: 600; font-size: 12px; color: var(--hims-primary); }
.sidebar-nav li, .sidebar-nav .nav-item { border: 0; margin: 3px 0; }
.sidebar-nav .nav-link, .sidebar-nav .nav-link.collapsed { border-radius: 9px; padding: 12px 14px; font-size: 13px; font-weight: 550; color: #526779; background: transparent; gap: 1px; }
.sidebar-nav .nav-link i, .sidebar-nav .nav-link.collapsed i { color: #8296a6; font-size: 15px; min-width: 21px; }
.sidebar-nav .nav-link:hover, .sidebar-nav .nav-link.active, .sidebar-nav .nav-link[aria-expanded="true"] { color: var(--hims-primary); background: var(--hims-primary-soft); }
.sidebar-nav .nav-link:hover i, .sidebar-nav .nav-link.active i, .sidebar-nav .nav-link[aria-expanded="true"] i { color: var(--hims-primary); }
.sidebar-nav .nav-link.active { box-shadow: inset 3px 0 var(--hims-primary); }
.sidebar-nav .nav-content { padding: 6px 0 7px 15px; }
.sidebar-nav .nav-content a { color: #607487; font-size: 12px; padding: 9px 12px; border-radius: 7px; margin: 2px 0; }
.sidebar-nav .nav-content a i { color: #8296a6; }
.sidebar-nav .nav-content a:hover, .sidebar-nav .nav-content a.active { background: var(--hims-primary-soft); color: var(--hims-primary); }
.sidebar-nav .nav-content a.active i { background: transparent; color: var(--hims-primary); }
.sidebar-nav .nav-heading { color: var(--hims-muted); letter-spacing: .1em; }
#main { margin-top: 76px; padding: 30px 34px; min-height: calc(100vh - 160px); }
.pagetitle { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 25px; }
.pagetitle h1 { font-size: 27px; font-weight: 700; letter-spacing: -.035em; color: var(--hims-ink); }
.pagetitle .breadcrumb { margin: 0; font-size: 12px; background: transparent; padding: 0; }
.breadcrumb a { color: var(--hims-muted); }
.breadcrumb .active { color: var(--hims-primary); }
.card { border: 1px solid var(--hims-line); border-radius: 14px; box-shadow: var(--hims-shadow); background: white; margin-bottom: 0; overflow: visible; }
.card-body { padding: 22px; }
.card-header { border-bottom: 1px solid var(--hims-line); padding: 17px 22px; background: #fff; }
.card-header:first-child { border-radius: 14px 14px 0 0; }
.card-footer { border-top: 1px solid var(--hims-line); background: #fafcfd; padding: 15px 22px; }
.card-title { padding: 0; font-size: 15px; font-weight: 650; color: var(--hims-ink); margin-bottom: 18px; }
.card-body > h6.text-uppercase { font-size: 11px; letter-spacing: .09em; font-weight: 700; margin-bottom: 18px; }
.hims-toolbar, .page > .bg-light { border: 1px solid var(--hims-line); background: white !important; border-radius: 12px; padding: 16px 20px !important; }
.hims-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.hims-toolbar p { color: var(--hims-muted); margin: 3px 0 0; font-size: 12px; }
.hims-toolbar-title { font-weight: 650; font-size: 14px; }
.btn { font-family: inherit; font-size: 13px; font-weight: 600; border-radius: 8px; padding: 10px 16px; box-shadow: none; transition: background .16s, border-color .16s, box-shadow .16s; }
.btn i { margin-right: 5px; }
.btn-sm { padding: 6px 10px; font-size: 12px; border-radius: 7px; }
.btn-primary { --bs-btn-bg: #326080; --bs-btn-border-color: #326080; --bs-btn-hover-bg: #244a65; --bs-btn-hover-border-color: #244a65; --bs-btn-active-bg: #244a65; --bs-btn-active-border-color: #244a65; --bs-btn-disabled-bg: #326080; --bs-btn-disabled-border-color: #326080; --bs-btn-focus-shadow-rgb: 50,96,128; background: #326080; border-color: #326080; color: white; }
.btn-primary:hover, .btn-primary:focus, .btn-primary:active { background: #244a65 !important; border-color: #244a65 !important; color: white; }
.btn-outline-primary { --bs-btn-color: #326080; --bs-btn-border-color: #b5cbdc; --bs-btn-hover-bg: #326080; --bs-btn-hover-border-color: #326080; --bs-btn-active-bg: #326080; --bs-btn-active-border-color: #326080; color: #326080; border-color: #b5cbdc; }
.btn-outline-primary:hover { color: white; background: #326080; }
.btn-outline-secondary { color: #536b7e; border-color: #d6e0e8; background: white; }
.btn-outline-secondary:hover { color: #213649; background: #f0f5f8; border-color: #bccedb; }
.btn-success { --bs-btn-bg: #326080; --bs-btn-border-color: #326080; --bs-btn-hover-bg: #244a65; --bs-btn-hover-border-color: #244a65; --bs-btn-active-bg: #244a65; --bs-btn-active-border-color: #244a65; background: #326080; border-color: #326080; }
.btn-info { color: #326080; background: #eaf2f8; border-color: #cedfe9; }
.btn-info:hover { color: #244a65; background: #dcebf5; border-color: #b5cedf; }
.form-control, .form-select { min-height: 43px; border: 1px solid #d5e0e9; border-radius: 8px; padding: 10px 12px; font-size: 13px; background-color: #fff; color: var(--hims-ink); box-shadow: none; }
.form-control::placeholder { color: #8194a4; }
.form-control:focus, .form-select:focus { border-color: #6d9bbb; box-shadow: 0 0 0 3px #32608017; }
.form-control-sm { min-height: 36px; padding: 7px 10px; }
textarea.form-control { min-height: 96px; }
.form-label, .control-label, .col-form-label, label { font-size: 12px; color: #3f566a; font-weight: 600; margin-bottom: 6px; }
.form-check-input:checked { background-color: #326080; border-color: #326080; }
.form-check-input:focus { border-color: #6d9bbb; box-shadow: 0 0 0 3px #32608017; }
.select2-container--default .select2-selection--single { height: 43px; border: 1px solid #d5e0e9; border-radius: 8px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 41px; padding-left: 12px; color: #213649; font-size: 13px; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 41px; }
.select2-container--default .select2-selection--multiple { min-height: 43px; border-color: #d5e0e9; border-radius: 8px; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: #326080; }
.select2-dropdown { border-color: #c5d7e4; border-radius: 8px; box-shadow: var(--hims-shadow); }
.table { --bs-table-color: #334d62; --bs-table-border-color: #e8eef3; --bs-table-striped-bg: #f8fafc; --bs-table-hover-bg: #f0f6fa; font-size: 12px; margin-bottom: 0; }
.table thead th { background: #f4f8fb; color: #6a7e8f; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; border-bottom: 1px solid #e2eaf0; padding: 13px 12px; }
.table tbody td, .table tbody th { padding: 13px 12px; vertical-align: middle; }
.table tbody tr:hover { background: #f7fafc; }
.table tfoot th { padding: 14px 12px; background: #f8fafc; }
.table small { font-size: 11px; }
.badge { font-size: 10px; font-weight: 650; letter-spacing: .015em; border-radius: 6px; padding: 6px 8px; }
.badge.bg-dark { background: #edf3f7 !important; color: #326080; }
.badge.bg-success { background: #e7f5ef !important; color: #197e65; }
.badge.bg-warning { background: #fff3da !important; color: #91600e; }
.badge.bg-danger { background: #fbecef !important; color: #a7374a; }
.badge.bg-info { background: #e5f3f4 !important; color: #187e87; }
.badge.bg-secondary { background: #edf0f5 !important; color: #596d80; }
.badge.bg-primary { background: #edf4f9 !important; color: #326080; }
.pagination { gap: 5px; margin-top: 18px; }
.page-link { border-radius: 7px !important; border-color: #e0e9ef; color: #326080; padding: 7px 12px; }
.page-item.active .page-link { background: #326080; border-color: #326080; }
.nav-tabs .nav-link { border-radius: 8px 8px 0 0; color: #64788a; font-weight: 600; }
.nav-tabs .nav-link.active { color: #326080; border-bottom-color: #326080; }
.accordion-button:not(.collapsed) { color: #326080; background: #edf4f9; }
.accordion-button:focus { box-shadow: 0 0 0 3px #32608017; }
.dropdown-menu { border: 1px solid #e2eaf0; border-radius: 12px; box-shadow: 0 12px 32px #21364915; padding: 8px; }
.dropdown-item { border-radius: 7px; font-size: 13px; padding: 9px 12px; }
.dropdown-item:active { background: #326080; }
.modal-content { border: 0; border-radius: 16px; box-shadow: 0 20px 80px #21364925; }
.alert { border-radius: 10px; font-size: 13px; }
.alert-success { color: #197e65; background: #ecf7f1; border-color: #cfe9dc; }
.progress { background: #ecf2f6; border-radius: 8px; }
.progress-bar.bg-success { background-color: #326080 !important; }
.back-to-top { background: #326080; border-radius: 10px; }
.back-to-top:hover { background: #244a65; }
#footer { border-top: 1px solid var(--hims-line); padding: 18px 34px; color: #7e91a0; background: transparent; font-size: 11px; }
#footer .fs-6 { font-size: 11px !important; }
#footer .copyright { color: #7e91a0; }
.hims-overview { position: relative; border: 1px solid #d3e3ed; border-radius: 16px; padding: 27px 30px; margin-bottom: 24px; background: linear-gradient(110deg,#e8f1f7 0%,#f7fbfd 68%,#eaf4f5 100%); display: flex; justify-content: space-between; align-items: center; gap: 24px; overflow: hidden; }
.hims-overview::after { content: "+"; font-size: 200px; color: #32608006; font-weight: 800; position: absolute; right: 25px; top: -86px; pointer-events: none; }
.hims-overview > * { position: relative; z-index: 1; }
.hims-overview h2 { font-size: 24px; margin: 7px 0; }
.hims-overview p { color: #657e90; margin-bottom: 0; font-size: 12px; }
.hims-overview-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.hims-section-label { display: flex; align-items: center; gap: 12px; margin: 22px 0 13px; font-size: 11px; letter-spacing: .08em; font-weight: 700; text-transform: uppercase; color: #6d8293; }
.hims-section-label::after { content: ""; flex: 1; height: 1px; background: #e0e9ef; }
.info-card { position: relative; overflow: hidden; }
.info-card .card-body { padding: 20px; }
.info-card .card-title { font-size: 12px; letter-spacing: 0; font-weight: 550; }
.info-card h4 { font-size: 25px; font-weight: 750; line-height: 1.3; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.info-card small { display: block; font-size: 10px; margin-top: 5px; color: #718598; }
.info-card .card-icon { border-radius: 12px !important; width: 43px !important; height: 43px !important; font-size: 17px; }
a:has(> .info-card):hover .info-card { border-color: #b2cbdd; box-shadow: 0 7px 22px #3260800c; }
/* Sign-in: a quiet clinical brand panel with a focused form. */
body.login { min-height: 100vh; background: #f4f8fb; }
.hims-login-shell { min-height: 100vh; display: grid; grid-template-columns: 1.05fr 1fr; }
.hims-login-story { position: relative; color: white; background: #326080; padding: clamp(40px,6vw,90px); display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; }
.hims-login-story::after { content: ""; width: 520px; height: 520px; border: 1px solid #ffffff13; border-radius: 50%; position: absolute; bottom: -170px; right: -200px; box-shadow: 0 0 0 70px #ffffff06,0 0 0 140px #ffffff03; pointer-events: none; }
.hims-login-story .hims-brand-mark { background: #ffffff20; box-shadow: none; width: 48px; height: 48px; }
.hims-login-story .hims-brand { display: flex; align-items: center; gap: 14px; font-weight: 700; font-size: 18px; }
.hims-login-story .hims-brand small { display: block; font-size: 10px; color: #bed4e3; font-weight: 450; letter-spacing: .08em; text-transform: uppercase; }
.hims-login-copy { padding: 55px 0; max-width: 450px; position: relative; z-index: 1; }
.hims-login-copy .hims-eyebrow { color: #b6d6e9; }
.hims-login-copy h1 { color: white; font-size: clamp(30px,3.3vw,48px); letter-spacing: -.045em; line-height: 1.18; margin: 18px 0 22px; }
.hims-login-copy p { color: #caddea; font-size: 14px; line-height: 1.8; max-width: 390px; }
.hims-login-features { display: flex; flex-direction: column; gap: 14px; margin-top: 35px; color: #e3eef5; font-size: 12px; }
.hims-login-features i { width: 30px; color: #9ac5de; }
.hims-login-story-footer { color: #abcbdc; font-size: 11px; position: relative; z-index: 1; }
.hims-login-panel { padding: 50px 32px; display: flex; justify-content: center; align-items: center; }
.login .form-signin { width: 100%; max-width: 460px; margin: 0; padding: 34px; border: 1px solid #e2eaf0; border-radius: 16px; background: #fff; box-shadow: var(--hims-shadow); }
.hims-login-panel h2 { font-size: 30px; margin: 10px 0; }
.hims-login-panel .hims-login-description { color: #718598; font-size: 13px; margin-bottom: 30px; }
.hims-login-panel form { animation: none; }
.login .form-control { min-height: 49px; border-radius: 9px; }
.login .btn-primary { width: 100%; padding: 13px 20px; font-size: 14px; border-radius: 9px; }
.login .small { text-align: left; font-size: 11px; line-height: 1.8; margin-top: 18px; }
.login .form-check-label { font-size: 11px; font-weight: 450; }
.hims-login-panel .funders { font-size: 11px; color: #8293a1; margin-top: 26px; }
.hims-mobile-brand { display: none; align-items: center; gap: 12px; margin-bottom: 35px; color: #326080; font-weight: 700; }
.hims-password-field { position: relative; }
.hims-password-field .form-control { padding-right: 55px; }
.hims-password-toggle { position: absolute; top: 5px; right: 6px; background: transparent; border: 0; border-radius: 6px; color: #6d8293; height: 39px; width: 39px; }
.hims-password-toggle:hover { background: #edf4f9; color: #326080; }
@media(min-width:1200px) { #main,#footer { margin-left: 264px; } .toggle-sidebar .sidebar { left: -264px; } .toggle-sidebar #main,.toggle-sidebar #footer { margin-left: 0; } }
@media(max-width:1199px) { .sidebar { left: -264px; } .toggle-sidebar .sidebar { left: 0; box-shadow: 12px 0 35px #21364918; } #main { padding: 24px; } .hims-header-context { display: none; } }
@media(max-width:991px) { .hims-login-shell { grid-template-columns: .9fr 1fr; } .hims-login-story { padding: 38px; } .hims-overview { align-items: flex-start; flex-direction: column; gap: 18px; } }
@media(max-width:767px) { .header { height: 66px; padding: 0 16px; gap: 8px; } .header .logo { min-width: auto; gap: 9px; } .header .logo .hims-brand-name { font-size: 17px; } .hims-brand-caption { display: none; } .hims-brand-mark { width: 33px; height: 33px; flex-basis: 33px; border-radius: 9px; } .header .toggle-sidebar-btn { margin-left: 10px; width: 32px; height: 32px; } .hims-date,.hims-profile-label { display: none; } .header-nav > ul { gap: 0; } .sidebar { top: 66px; } #main { margin-top: 66px; padding: 20px 14px; } .pagetitle { margin-bottom: 18px; } .pagetitle h1 { font-size: 23px; } .pagetitle .breadcrumb { font-size: 10px; } .card-body { padding: 17px; } .hims-overview { padding: 23px; } .hims-overview h2 { font-size: 22px; } .info-card .card-body { padding: 17px; } .info-card h4 { font-size: 21px; } .info-card .card-icon { width: 34px!important; height: 34px!important; font-size: 14px; } .info-card .ps-3 { padding-left: 10px!important; } .hims-login-shell { display: block; } .hims-login-story { display: none; } .hims-login-panel { min-height: 100vh; padding: 32px 24px; } .hims-mobile-brand { display: flex; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
@media(max-width:767px) { .login .form-signin { padding: 0; background: transparent; border: 0; box-shadow: none; } }
@media(max-width:575px) { .hims-dashboard .info-card .card-body > .d-flex { flex-direction: column; align-items: flex-start !important; gap: 12px; } .hims-dashboard .info-card .ps-3 { padding-left: 0!important; } .hims-dashboard .info-card h4 { font-size: 21px; } }
@media print { .header,.sidebar,#footer,.hims-overview-actions,.skip-link { display: none !important; } #main { margin: 0!important; padding: 0!important; } body { background: white; } .card { box-shadow: none; border-color: #ddd; } .table { font-size: 10px; } }

/* Preserve the original hospital photograph and its embedded branding. */
body.hims-login-photo { background: #eaf1f6 url('../img/login.png') no-repeat right center fixed; background-size: cover; }
.hims-login-photo .hims-login-shell { display: flex; align-items: center; }
.hims-login-photo .hims-login-panel { width: min(540px, 48%); min-height: 100vh; padding: 48px 0; margin-left: 6vw; }
.hims-login-photo .form-signin { background: rgba(255,255,255,.97); box-shadow: 0 16px 55px #142e4930; }
.hims-login-photo .hims-mobile-brand { display: flex; margin-bottom: 27px; }
@media(max-width:767px) {
  body.hims-login-photo { background: #f4f8fb; }
  .hims-login-photo .hims-login-panel { width: 100%; padding: 32px 24px; margin: 0; }
  .hims-login-photo .form-signin { background: transparent; box-shadow: none; }
}

/* Panel demonstration: identification and actual journey events. */
.hims-identity{background:linear-gradient(110deg,#e8f2f8,#fff);border-left:5px solid #326080;border-radius:12px;padding:18px 22px;color:#203a4e}
.hims-identity h5{margin:6px 0;font-weight:750}
.hims-timeline{list-style:none;padding-left:18px;border-left:2px solid #c7dce9;margin-left:8px}
.hims-timeline li{position:relative;padding:0 0 20px 12px;display:grid;gap:4px}
.hims-timeline li:before{content:'';width:12px;height:12px;background:#326080;border:3px solid #e9f3fa;border-radius:50%;position:absolute;left:-25px;top:5px}
.hims-timeline time,.hims-timeline span{font-size:.85rem;color:#5d7180}
.hims-demo-banner{background:#fff3d6;color:#664818;padding:12px 18px;border:1px solid #f2d58d;border-radius:10px;margin:0 0 18px}
@media print{.hims-demo-banner{border:2px solid #664818}.hims-identity{break-inside:avoid}.hims-timeline li{break-inside:avoid}}
.nav-pills .nav-link.active,.nav-pills .show>.nav-link{background-color:#326080;color:#fff}

.hims-workspace-switch{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0 0 18px;padding:12px;background:#eef4f8;border-radius:10px}.sidebar .hims-workspace-switch{font-size:12px}.sidebar .hims-workspace-switch .btn{width:100%}
