/* Portal branding follows the public hospital site's teal, cyan and navy palette. */
:root {
    --hospital-teal: #0d9488;
    --hospital-teal-dark: #0f766e;
    --hospital-cyan: #06b6d4;
    --hospital-navy: #0c4a6e;
    --hospital-navy-dark: #082f49;
    --hospital-surface: #f0fdfa;
    --ink: #1e293b;
    --muted: #5c7181;
    --teal: var(--hospital-teal);
    --teal-dark: var(--hospital-teal-dark);
    --line: #d6e9e8;
}
body, .admin-body, .member-workspace {
    background: radial-gradient(ellipse at 10% 0%, #daf7f2 0, transparent 36%), #f0fdfa;
    color: var(--ink);
}
.site-header, .admin-header { border-bottom-color: #cce7e5; }
.site-footer { flex-direction:column; justify-content:center; gap:3px; padding:12px 0; text-align:center; }
.site-footer span { display:block; }
.brand-logo { display:block; width:clamp(190px, 23vw, 260px); height:auto; object-fit:contain; }
.brand-destination { display:block; padding-left:12px; border-left:1px solid #badbd8; color:var(--hospital-navy); font-size:.68rem; font-weight:800; letter-spacing:.11em; line-height:1.5; }
.welcome-panel { background:linear-gradient(145deg, var(--hospital-navy-dark), var(--hospital-navy) 52%, var(--hospital-teal-dark)); }
.welcome-panel .eyebrow, .welcome-panel .point-icon { color:#a5f3e9; }
.welcome-panel .eyebrow-line { background:var(--hospital-cyan); }
.button-primary { background:linear-gradient(100deg, var(--hospital-teal-dark), var(--hospital-teal), var(--hospital-cyan)); box-shadow:0 8px 18px #0d948830; }
.button-primary:hover { box-shadow:0 11px 22px #0d948840; }
.button-secondary { border-color:#bddbd8; color:var(--hospital-navy-dark); }
.button-secondary:hover { border-color:var(--hospital-teal); background:#f0fdfa; }
.field-group input:focus, .field-group select:focus, .field-group textarea:focus,
.filter-bar input:focus, .filter-bar select:focus { border-color:var(--hospital-teal); outline:3px solid #0d948826; box-shadow:none; }
.step-label, .plain-link, .text-button, .help-link, .back-link { color:var(--hospital-teal-dark); }
.secure-dot { background:var(--hospital-teal); box-shadow:0 0 0 4px #0d948820; }
.otp-icon, .count-pill, .message-icon { color:var(--hospital-teal-dark); background:#def7f2; }
.member-number-badge, .manual-hms-note, .verified-recipient { border-color:#b9e7dc; background:#f0fdfa; color:var(--hospital-teal-dark); }
.member-message.message-unread { background:#f0fdfa; border-color:#9ddbd0; }
.member-detail-card h3, .member-workspace .member-detail-card h3 { color:var(--hospital-teal-dark); }
.member-workspace .member-welcome-copy h1, .admin-workspace .admin-page-heading h1,
.member-workspace .member-section-heading h2, .admin-workspace .admin-card h2,
.home-introduction h2, .home-information h2 { color:var(--hospital-navy-dark); }
.member-sidebar, .admin-workspace .member-sidebar { background:linear-gradient(165deg, var(--hospital-navy-dark), var(--hospital-navy) 58%, var(--hospital-teal-dark)); }
.sidebar-brand { padding:0 0 24px; align-items:center; }
.sidebar-brand > a { display:flex; align-items:center; justify-content:center; min-width:0; flex:1; min-height:64px; padding:9px 10px; border-radius:12px; background:#fff; }
.sidebar-brand img { display:block; width:100%; height:auto; max-height:50px; object-fit:contain; }
.sidebar-brand #member-menu-close { flex-shrink:0; }
.member-avatar { color:var(--hospital-navy-dark); background:#d5f8f2; }
.sidebar-caption, .sidebar-member small, .sidebar-bottom p { color:#c9ede9; }
.member-navigation a { color:#e4f7f5; }
.member-navigation a[aria-current] { background:#ffffff25; box-shadow:inset 3px 0 var(--hospital-cyan); }
.member-topbar { border-bottom-color:#d9eae9; }
.member-topbar strong, .member-workspace .member-quick-nav strong,
.admin-workspace .metric-card > strong { color:var(--hospital-navy-dark); }
.member-workspace .member-quick-nav a, .admin-workspace .metric-card,
.member-workspace .member-section, .admin-workspace .admin-card { border-color:#dcece9; }
.member-workspace .member-quick-nav a:hover, .admin-workspace .metric-card:hover { border-color:#a1ded4; }
.member-workspace .member-quick-nav a > span, .admin-workspace .metric-card > span { color:var(--hospital-teal-dark); }
.home-language-switch a[aria-current], .pagination-wrap nav span[aria-current="page"] { background:var(--hospital-teal-dark); border-color:var(--hospital-teal-dark); color:#fff; }
.home-information li::marker { color:var(--hospital-teal); }
.admin-workspace .metric-highlight { background:linear-gradient(120deg,#e6f9f5,#fff); border-color:#b8e3db; }
.admin-workspace .admin-table th { background:#f0fdfa; }
.admin-workspace .admin-list-row:hover { background:#f5fcfa; }
.member-workspace .member-section, .admin-workspace .admin-card, .dashboard-shell { box-shadow:0 4px 20px #082f490a; }
/* Member sign-in follows the original PHP portal's compact card layout. */
body.member-login-page { background:linear-gradient(145deg,#082f49 0%,#0c4a6e 48%,#0f766e 100%); }
.member-login-page .page-main { width:min(100% - 32px, 480px); padding:44px 0 24px; }
.member-login-card { width:100%; padding:clamp(28px,5vw,44px); border:1px solid #e2eeed; border-radius:20px; background:#fff; box-shadow:0 24px 65px #061e3299; }
.member-login-brand { display:flex; justify-content:center; margin:0 auto 27px; padding-bottom:25px; border-bottom:1px solid #e5eeec; }
.member-login-brand img { display:block; width:min(100%,300px); height:auto; object-fit:contain; }
.member-login-heading { text-align:center; }
.member-login-heading .step-label { display:block; color:var(--hospital-teal-dark); font-size:11px; letter-spacing:.17em; }
.member-login-heading h1 { margin:10px 0 8px; color:var(--hospital-navy-dark); font-size:clamp(1.85rem,5vw,2.2rem); letter-spacing:-.04em; line-height:1.2; }
.member-login-heading p { max-width:350px; margin:0 auto; color:#627687; font-size:14px; line-height:1.65; }
.member-login-form { margin-top:28px; gap:18px; }
.member-login-form .field-group { gap:7px; }
.member-login-form .field-group label { color:#243d50; font-size:14px; }
.member-login-form .field-group input { min-height:52px; font-size:16px; background:#fff; }
.member-login-form .field-help { color:#647785; font-size:12px; }
.member-login-form .button-primary { width:100%; min-height:54px; justify-content:center; margin-top:5px; font-size:15px; }
.member-login-form .button-primary span { margin-left:4px; }
.member-login-note { display:flex; align-items:flex-start; justify-content:center; gap:10px; margin-top:25px; padding-top:20px; border-top:1px solid #e5eeec; color:#5b6f7d; font-size:12px; line-height:1.55; }
.member-login-note .secure-dot { flex:0 0 8px; margin-top:5px; }
.member-login-page .site-footer { width:min(100% - 32px, 480px); min-height:50px; border:0; color:#d4ebe9; font-size:11px; }
.document-upload-card .portal-form { margin-top:18px; }
.document-publish-option { display:flex; align-items:flex-start; gap:10px; padding:15px; border:1px solid #d6e9e8; border-radius:12px; background:#f8fdfb; cursor:pointer; }
.document-publish-option input[type=checkbox] { width:18px; height:18px; margin:2px 0 0; accent-color:var(--hospital-teal-dark); }
.document-publish-option span, .document-publish-option strong, .document-publish-option small { display:block; }
.document-publish-option strong { color:var(--hospital-navy-dark); font-size:14px; }
.document-publish-option small { margin-top:4px; color:var(--muted); font-size:12px; }
.document-list { display:grid; gap:15px; }
.document-row, .member-document-card { padding:20px; border:1px solid #dcece9; border-radius:14px; background:#fff; }
.document-row-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:15px; }
.document-row-heading strong, .document-row-heading small { display:block; }
.document-row-heading strong { color:var(--hospital-navy-dark); font-size:17px; }
.document-row-heading small { margin-top:6px; color:var(--muted); line-height:1.5; overflow-wrap:anywhere; }
.document-edit-form { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(185px,.7fr); align-items:end; gap:14px; }
.document-edit-form .field-group textarea { min-height:46px; }
.document-actions { grid-column:1/-1; display:flex; align-items:center; gap:16px; }
.member-document-card { display:flex; align-items:center; gap:17px; }
.document-file-icon { display:grid; place-items:center; flex:0 0 46px; width:46px; height:46px; border-radius:12px; color:var(--hospital-teal-dark); background:#e1f8f2; font-size:25px; }
.member-document-content { flex:1; min-width:0; }
.member-document-content h2 { margin:0; font-size:17px; color:var(--hospital-navy-dark); }
.member-document-content p { margin:7px 0; font-size:14px; line-height:1.55; color:#425873; overflow-wrap:anywhere; }
.member-document-content small { display:block; margin-top:7px; color:var(--muted); font-size:12px; line-height:1.5; }
/* Compact, consistent administrator forms. */
.admin-body .portal-form, .admin-workspace .message-compose-card .portal-form { gap:15px; }
.admin-body .field-group { gap:6px; }
.admin-body .field-group label { font-size:13px; line-height:1.4; }
.admin-body .field-group input:not([type="file"]), .admin-body .field-group select,
.admin-body .filter-bar input, .admin-body .filter-bar select {
    min-height:42px; height:42px; padding:8px 12px; border-radius:8px; font-size:14px;
}
.admin-body .field-group textarea { min-height:96px; padding:10px 12px; border-radius:8px; font-size:14px; line-height:1.5; }
.admin-body #body { min-height:148px; }
.admin-body .field-group input[type="file"] { min-height:42px; height:auto; padding:5px 8px; border-radius:8px; font-size:13px; }
.admin-body .field-group input[type="file"]::file-selector-button { margin-right:12px; padding:7px 12px; border:1px solid #b9d8d4; border-radius:6px; color:var(--hospital-navy-dark); background:#eef9f6; font:inherit; cursor:pointer; }
.admin-body .field-group input[type="file"]::file-selector-button:hover { background:#dff4ed; }
.admin-body .button-primary, .admin-body .button-secondary { min-height:42px; padding:8px 15px; border-radius:8px; font-size:14px; }
.admin-body .audience-option { min-height:42px; padding:8px 11px; }
.admin-body .field-help { line-height:1.45; }
.admin-body .form-actions { gap:9px; }
@media(max-width:900px) { .document-edit-form { grid-template-columns:1fr 1fr; } .document-edit-form .field-group:nth-child(2) { grid-column:1/-1; } }
@media (max-width:620px) {
    .admin-body .field-group input:not([type="file"]), .admin-body .field-group select,
    .admin-body .filter-bar input, .admin-body .filter-bar select,
    .admin-body .button-primary, .admin-body .button-secondary { min-height:44px; height:auto; font-size:16px; }
    .admin-body .field-group textarea { font-size:16px; }
    .document-edit-form { grid-template-columns:1fr; }
    .document-edit-form .field-group:nth-child(2) { grid-column:auto; }
    .member-document-card { flex-wrap:wrap; padding:16px; }
    .member-document-card > a { width:100%; }
    .member-login-page .page-main { padding:20px 0 18px; }
    .member-login-card { padding:28px 22px; border-radius:18px; }
    .member-login-brand { margin-bottom:22px; padding-bottom:20px; }
    .member-login-brand img { width:min(100%,270px); }
    .brand-logo { width:clamp(142px, 45vw, 210px); }
    .brand-destination { font-size:.56rem; padding-left:8px; }
    .site-header .secure-note { display:none; }
    .site-header, .admin-header { width:calc(100% - 28px); }
    .sidebar-brand > a { min-height:58px; }
}
