/* Institution policy, actor shell, profile, and notification refinements. */
:root {
    --hpc-ui-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.hpc-tenant-settings,
.hpc-profile-workspace,
.hpc-notification-panel {
    font-family: var(--hpc-ui-font);
}

.hpc-policy-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr); gap:14px; }
.hpc-policy-card { border:1px solid #dbe7ef; border-radius:16px; padding:14px; background:#fff; display:grid; gap:9px; }
.hpc-policy-card--wide { grid-column:1; }
.hpc-policy-note { border:1px solid #bfe1ef; border-radius:16px; padding:14px; background:#eef9fd; color:#174a62; }
.hpc-policy-note strong { display:block; font-size:13px; }
.hpc-policy-note p { margin:5px 0 0; font-size:12px; line-height:1.55; }
.hpc-policy-toggle { display:flex; align-items:flex-start; gap:9px; min-height:42px; border:1px solid #e2e8f0; border-radius:12px; padding:10px 11px; background:#f8fafc; cursor:pointer; }
.hpc-policy-toggle input { margin-top:2px; }
.hpc-policy-toggle strong { display:block; color:#183247; font-size:12px; line-height:1.35; }
.hpc-policy-consent-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:14px; }
.hpc-section-head--sub { margin-top:20px; padding-top:16px; border-top:1px solid #e2e8f0; }
.hpc-input-unit { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; }
.hpc-input-unit input { border-radius:11px 0 0 11px !important; }
.hpc-input-unit span { display:grid; place-items:center; min-width:56px; border:1px solid #cbd5e1; border-left:0; border-radius:0 11px 11px 0; background:#f1f5f9; color:#52677a; font-size:11px; font-weight:800; }
.hpc-field-error { color:#be123c !important; font-weight:700; }

 .hpc-profile-workspace { width:min(1180px,100%); margin:0 auto; color:var(--app-content-text,#122033); }
.hpc-profile-card { overflow:hidden; border:1px solid var(--app-border,#dbe7ef); border-radius:20px; background:var(--tenant-surface,var(--app-surface-bg,#fff)); color:var(--tenant-surface-text,var(--app-surface-text,#122033)); box-shadow:0 16px 40px rgba(15,23,42,.07); }
.hpc-profile-hero { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 22px 16px; border-bottom:1px solid var(--app-border,#e2e8f0); background:linear-gradient(135deg,var(--tenant-surface,#fff) 0%,var(--tenant-soft-surface,#f2f9fc) 100%); }
.hpc-profile-hero h1 { margin:2px 0 0; color:var(--app-heading-text,#10283c); font-size:22px; line-height:1.15; }
.hpc-profile-hero p { margin:5px 0 0; color:color-mix(in srgb,var(--app-content-text,#122033) 68%,transparent); font-size:12px; }
.hpc-profile-avatar { display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; border-radius:15px; background:var(--tenant-primary,#173a56); color:var(--tenant-primary-text,#fff); font-size:15px; font-weight:900; box-shadow:0 8px 20px color-mix(in srgb,var(--tenant-primary,#173a56) 24%,transparent); }
.hpc-profile-tabs { display:flex; flex-wrap:wrap; gap:7px; padding:10px 16px; border-bottom:1px solid var(--app-border,#e2e8f0); background:var(--tenant-soft-surface,var(--app-soft-bg,#f8fafc)); }
.hpc-profile-tab { border:1px solid transparent; border-radius:11px; padding:8px 12px; background:transparent; color:color-mix(in srgb,var(--app-content-text,#122033) 72%,transparent); font-size:12px; font-weight:800; cursor:pointer; }
.hpc-profile-tab:hover,.hpc-profile-tab:focus-visible { border-color:color-mix(in srgb,var(--tenant-primary,#1c8fbd) 38%,var(--app-border,#d8e6f0)); background:color-mix(in srgb,var(--tenant-primary,#1c8fbd) 9%,var(--tenant-surface,#fff)); color:var(--tenant-primary,#1c8fbd); }
.hpc-profile-tab.is-active { border-color:var(--tenant-primary,#1c8fbd); background:var(--tenant-primary,#1c8fbd); color:var(--tenant-primary-text,#fff); box-shadow:0 5px 14px color-mix(in srgb,var(--tenant-primary,#1c8fbd) 22%,transparent); }
.hpc-profile-panel { padding:18px; background:var(--tenant-surface,var(--app-surface-bg,#fff)); color:var(--tenant-surface-text,var(--app-surface-text,#122033)); }
.hpc-profile-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.hpc-profile-field { display:grid; gap:6px; min-width:0; }
.hpc-profile-field>span { color:var(--tenant-surface-text,var(--app-surface-text,#263f52)); font-size:11px; font-weight:850; }
.hpc-profile-field input,.hpc-profile-field textarea { width:100%; min-width:0; border:1px solid var(--app-border-strong,var(--app-border,#cbd5e1)); border-radius:12px; padding:10px 11px; background:var(--tenant-surface,var(--app-surface-bg,#fff)); color:var(--tenant-surface-text,var(--app-surface-text,#10283c)); font:inherit; font-size:13px; }
.hpc-profile-field input:focus,.hpc-profile-field textarea:focus { border-color:var(--tenant-primary,#38a3cf); outline:3px solid var(--tenant-focus-ring,rgba(56,163,207,.14)); }
.hpc-profile-actions { grid-column:1/-1; display:flex; justify-content:flex-end; padding-top:4px; }
.hpc-profile-actions .as-btn { width:auto !important; min-width:150px; }
.hpc-profile-security-grid { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr); gap:18px; align-items:start; }
.hpc-profile-password-form { display:grid; gap:12px; }
.hpc-password-policy-card { position:sticky; top:78px; border:1px solid var(--app-border,#cfe3ed); border-radius:17px; padding:15px; background:var(--tenant-soft-surface,var(--app-soft-bg,#f5fbfd)); color:var(--app-content-text,#122033); }
.hpc-password-policy-card h2 { margin:4px 0 0; color:var(--app-heading-text,#173a56); font-size:13px; line-height:1.45; }
.hpc-password-requirements { display:grid; gap:7px; margin:13px 0 0; padding:0; list-style:none; }
.hpc-password-requirements li { display:flex; align-items:flex-start; gap:7px; color:color-mix(in srgb,var(--app-content-text,#122033) 68%,transparent); font-size:11px; line-height:1.4; }
.hpc-password-requirements li>span { display:grid; place-items:center; width:18px; height:18px; flex:0 0 18px; border:1px solid var(--app-border-strong,var(--app-border,#b8cbd6)); border-radius:50%; background:var(--tenant-surface,#fff); font-size:10px; }
.hpc-password-requirements li.is-valid { color:#137a51; }
.hpc-password-requirements li.is-valid>span { border-color:#6bd2aa; background:#dcfce7; }
.hpc-password-requirements li.is-invalid { color:#9f3146; }
.hpc-policy-meta { margin-top:13px; padding-top:11px; border-top:1px solid var(--app-border,#dbe7ef); color:color-mix(in srgb,var(--app-content-text,#122033) 68%,transparent); font-size:10.5px; line-height:1.5; }
.hpc-policy-meta p { margin:3px 0; }
.hpc-policy-meta--privacy strong { color:var(--app-heading-text,#173a56); }

/* Notification menu: readable actions, stable width, no stacked labels. */
.hpc-notification-panel { width:min(390px,calc(100vw - 18px)) !important; max-height:min(610px,calc(100vh - 76px)); border-radius:16px !important; box-shadow:0 24px 60px rgba(15,23,42,.24) !important; }
.hpc-notification-head { align-items:center !important; padding:12px 14px !important; }
.hpc-notification-head strong { font-size:14px !important; }
.hpc-notification-head small { font-size:11px !important; }
.hpc-notification-head-action { min-height:34px; border:1px solid #b7dceb !important; border-radius:10px; padding:7px 9px !important; background:#eef9fd !important; white-space:nowrap !important; font-size:10.5px !important; }
.hpc-notification-list { max-height:440px !important; }
.hpc-notification-item { grid-template-columns:8px minmax(0,1fr) !important; gap:9px !important; padding:11px 13px !important; }
.hpc-notification-copy>strong { font-size:12px !important; line-height:1.35 !important; }
.hpc-notification-copy>p { margin-top:3px !important; font-size:11px !important; line-height:1.45 !important; -webkit-line-clamp:3 !important; }
.hpc-notification-copy>small { font-size:9.5px !important; }
.hpc-notification-actions { display:grid !important; grid-template-columns:minmax(0,1fr) auto; gap:7px !important; margin-top:8px !important; }
.hpc-notification-actions form { display:flex; }
.hpc-notification-link { min-height:30px; border:1px solid #c7dbe6 !important; border-radius:9px; padding:6px 8px !important; background:#fff !important; justify-content:center; white-space:nowrap !important; text-align:center !important; font-size:10px !important; }
.hpc-notification-link:not(.is-muted) { border-color:#92d2e8 !important; background:#eaf8fd !important; color:#086c95 !important; }
.hpc-notification-link.is-muted { min-width:92px; color:#52677a !important; }
.hpc-notification-footer { padding:10px 14px !important; font-size:11px !important; }

/* Assessor and participant portals use drawer navigation, never a permanent sidebar. */
html[data-hpc-layout-mode="immersive"] body[data-hpc-actor-shell="1"] .hpc-main-content { padding:.5rem; }
html[data-hpc-layout-mode="immersive"] body[data-hpc-actor-shell="1"] .hpc-page-container { max-width:none; }

.hpc-legal-consent__institution-notice { margin:0 0 14px; border:1px solid #b9dceb; border-radius:14px; padding:12px 14px; background:#eef9fd; color:#164b63; }
.hpc-legal-consent__institution-notice strong { display:block; font-size:12px; }
.hpc-legal-consent__institution-notice p { margin:4px 0 0; font-size:11px; line-height:1.5; }

@media(max-width:900px){
    .hpc-policy-grid,.hpc-profile-security-grid { grid-template-columns:1fr; }
    .hpc-policy-card--wide { grid-column:auto; }
    .hpc-policy-consent-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .hpc-password-policy-card { position:static; }
}
@media(max-width:640px){
    .hpc-profile-form,.hpc-policy-consent-grid { grid-template-columns:1fr; }
    .hpc-profile-hero,.hpc-profile-panel { padding:14px; }
    .hpc-notification-panel { position:fixed !important; left:8px !important; right:8px !important; top:64px !important; width:auto !important; }
    .hpc-notification-actions { grid-template-columns:1fr; }
    .hpc-notification-link.is-muted { width:100%; }
}
.hpc-notification-unread-summary { display:inline-flex; margin-top:5px; border-radius:999px; padding:3px 7px; background:#e0f2fe; color:#075985; font-size:9px; font-weight:850; }
