/* Shared office branding and account header; page content and menus retain their styles. */
.portal-recare-logo {
    display: block; width: 38px; height: 38px; flex: 0 0 38px;
    object-fit: cover; object-position: center; border-radius: 5px;
}
.portal-menu-toggle { display: none; }
.portal-menu-toggle { align-self: center; min-height: 40px; }
.portal-header-actions { display: flex; align-items: center; gap: 12px; min-width: 0; max-width: 400px; }
.portal-header-actions .portal-account { max-width: 300px; min-width: 0; flex: 1 1 auto; }
.portal-notifications { position: relative; flex: 0 0 auto; }
.portal-notification-toggle { position: relative; width: 40px; height: 40px; display: grid; place-items: center; background: #fff; border: 1px solid #edf0f5; border-radius: 12px; color: #56637c; }
.portal-notification-toggle b { position: absolute; top: -5px; right: -5px; background: #ff7c18; color: #fff; border-radius: 12px; padding: 1px 5px; font-size: 10px; }
.portal-notification-panel { position: absolute; z-index: 1100; top: calc(100% + 10px); right: 0; width: 360px; max-height: min(520px,75vh); overflow-y: auto; padding: 18px; border: 1px solid #edf0f5; border-radius: 18px; background: #fff; box-shadow: 0 18px 48px #272c4c24; }
.portal-notification-panel > header,.portal-notification-tools { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.portal-notification-panel > header button { background: transparent; border: 0; color: #747b8c; padding: 8px; }
.portal-notification-tools { margin-top: 12px; }
.portal-notification-tools button { border: 1px solid #edf0f5; background: #fff3e8; color: #a44806; padding: 6px 10px; border-radius: 8px; font-size: 12px; }
.portal-notification-caption,.portal-notification-empty { color: #747b8c; font-size: 12px; margin: 14px 0; }
.portal-notification-error { color: #b42318; font-size: 12px; }
.portal-notification-list { display: grid; gap: 8px; }
.portal-notification-item { display: grid; gap: 4px; text-align: left; border: 1px solid #edf0f5; border-radius: 12px; padding: 12px; background: #fff; color: #171a31; }
.portal-notification-item.unread { background: #fff8f2; border-left: 3px solid #ff7c18; }
.portal-notification-item strong { font-size: 13px; }
.portal-notification-item span,.portal-notification-item small { color: #747b8c; font-size: 12px; }
.client-timeline-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.client-timeline h2 { font-size: 20px; margin: 0; }
.client-timeline-heading p { color: #747b8c; font-size: 13px; margin-top: 6px; }
.client-timeline-heading > span { white-space: nowrap; color: #747b8c; font-size: 12px; }
.client-timeline-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 20px; }
.client-timeline-filters button { border: 1px solid #edf0f5; border-radius: 10px; padding: 8px 12px; background: #fff; color: #56637c; font-size: 12px; }
.client-timeline-filters button.active { color: #a44806; background: #fff3e8; border-color: #ffba85; }
.client-timeline ol { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid #edf0f5; display: grid; gap: 14px; }
.client-timeline-event { border: 1px solid #edf0f5; border-radius: 14px; background: #fff; padding: 16px; }
.client-timeline-event header { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.client-timeline-event strong { color: #171a31; font-size: 14px; }
.client-timeline-event :is(time,small) { color: #747b8c; font-size: 12px; }
.client-timeline-category { display: inline-block; color: #a44806; background: #fff3e8; padding: 3px 7px; border-radius: 6px; font-size: 11px; margin-top: 8px; }
.client-timeline-event p { font-size: 13px; color: #56637c; white-space: pre-wrap; overflow-wrap: anywhere; margin: 8px 0; }
.client-timeline-empty { color: #747b8c; font-size: 13px; padding: 20px 0; }
.portal-header button:focus-visible,.client-timeline button:focus-visible,.portal-menu-toggle:focus-visible { outline: 3px solid #ff7c18; outline-offset: 3px; }
.portal-office-logo { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 70px; margin-bottom: 24px; }
.portal-office-logo img { display: block; width: 100%; max-height: 80px; object-fit: contain; }
.portal-office-logo span { color: #747b8c; font-size: 13px; text-align: center; }
.portal-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 44px; margin-bottom: 24px; }
.portal-header-navigation { flex: 1 1 auto; min-width: 0; }
.portal-current-page { color: #747b8c; font-size: 13px; }
.portal-account { display: flex; align-items: center; gap: 10px; flex: 0 1 auto; min-width: 0; max-width: 300px; }
.portal-account-avatar { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; background: #fff1e6; color: #873e08; font-size: 14px; font-weight: 900; overflow: hidden; }
.portal-account-avatar img { width: 100%; height: 100%; object-fit: cover; }
.portal-account-copy { min-width: 0; }
.portal-account-copy strong { display: block; color: #171a31; font-size: 14px; font-weight: 800; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.portal-account-copy span { display: block; color: #747b8c; font-size: 12px; margin-top: 2px; }
.portal-standalone-header { padding: 0 4px; }
.student-sidebar-panel .student-brand { margin-bottom: 28px; }
.admin-shell.admin-portal .brand { margin-bottom: 28px; }
.portal-header .student-workspace-toolbar { margin: 0; min-width: 0; }
:is(.admin-shell.admin-portal,.admin-layout) .portal-header .workspace-trail { margin: 0; padding: 0; }
@media (max-width: 1400px) {
    .student-app-shell .student-brand > div:last-child { display: block; }
}
@media (max-width: 800px) {
    .portal-header-actions { gap: 8px; max-width: 54%; flex: 0 1 auto; }
    .portal-header-actions .portal-account { gap: 6px; }
    .portal-notification-toggle { width: 34px; height: 36px; border-radius: 10px; }
    .portal-notification-panel { position: fixed; top: 100px; left: 12px; right: 12px; width: auto; max-height: calc(100dvh - 124px); }
    .student-app-shell .student-sidebar-panel .portal-office-logo { margin: 0; }
    .student-app-shell .student-sidebar-panel .portal-office-logo img { max-width: 160px; max-height: 32px; }
    .student-app-shell .student-sidebar-panel .student-brand { margin: 0; }
    .admin-shell.admin-portal.portal-menu-open .sidebar-shortcuts { grid-row: 4; }
    .admin-shell.admin-portal.portal-menu-open .logout-btn { grid-row: 4; }
}
@media (max-width: 800px) {
    :is(.student-app-shell,.admin-shell.admin-portal) .portal-menu-toggle { display: flex; align-items: center; gap: 6px; padding: 10px 12px; border: 1px solid #edf0f5; border-radius: 10px; background: #fff3e8; color: #a44806; font-size: 13px; font-weight: 700; grid-column: 2; grid-row: 1 / 3; }
    .student-app-shell .student-sidebar-panel { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 10px 16px; }
    .student-sidebar-panel .portal-office-logo { grid-column: 1; grid-row: 1; justify-content: flex-start; margin: 0; }
    .student-sidebar-panel .portal-office-logo img { max-width: 160px; max-height: 32px; }
    .student-sidebar-panel .student-brand { grid-column: 1; grid-row: 2; margin: 0; }
    .student-app-shell:not(.portal-menu-open) :is(.student-nav,.student-signout) { display: none; }
    .student-app-shell .student-nav { grid-column: 1 / -1; grid-row: 3; }
    .student-app-shell .student-signout { grid-column: 1 / -1; grid-row: 4; }
    .admin-shell.admin-portal:not(.portal-menu-open) :is(.side-nav,.sidebar-shortcuts,.logout-btn) { display: none; }
    .admin-shell.admin-portal .portal-menu-toggle { grid-row: 2; grid-column: 2 / 4; justify-self: end; }
    .admin-shell.admin-portal .sidebar-shortcuts { grid-column: 1; grid-row: 4; }
    .admin-shell.admin-portal .logout-btn { grid-column: 3; grid-row: 4; }
    .portal-header { gap: 12px; align-items: flex-start; margin-bottom: 20px; }
    .portal-account { max-width: 45%; }
    .portal-account-copy strong { font-size: 13px; }
    .portal-account-avatar { width: 36px; height: 36px; flex-basis: 36px; font-size: 12px; }
    .portal-header .student-workspace-toolbar { align-items: flex-start; gap: 8px; }
    .student-app-shell .student-sidebar-panel { padding: 16px; }
    .student-sidebar-panel .portal-office-logo { min-height: 0; margin-bottom: 16px; }
    .student-sidebar-panel .portal-office-logo img { max-height: 60px; max-width: 210px; }
    .student-sidebar-panel .student-brand { margin-bottom: 16px; }
    .student-app-shell .student-nav { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 8px; padding-bottom: 6px; }
    .student-app-shell .student-nav button { flex: 0 0 auto; width: auto; white-space: nowrap; font-size: 12px; padding: 10px 12px; }
    .student-app-shell .student-nav b { display: inline-block; }
    .student-app-shell .student-signout { margin-top: 12px; }
    .admin-shell.admin-portal .portal-office-logo { grid-column: 1 / -1; grid-row: 1; min-height: 0; margin: 0; }
    .admin-shell.admin-portal .portal-office-logo img { max-width: 210px; max-height: 60px; }
    .admin-shell.admin-portal .brand { grid-row: 2; margin: 0; }
    .admin-shell.admin-portal :is(.sidebar-shortcuts,.logout-btn) { grid-row: 2; }
    .admin-shell.admin-portal .side-nav { grid-row: 3; }
}
.today-worklist {
    margin: 0 0 24px; padding: 22px; border: 1px solid #edf0f5;
    border-radius: 20px; background: #fff; color: #171a31;
    box-shadow: 0 10px 26px rgba(39,44,76,.04); min-width: 0;
}
.today-worklist .today-worklist-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.today-worklist h2 { font-size: 22px; font-weight: 800; margin: 0 0 5px; }
.today-worklist .today-worklist-heading p { color: #747b8c; margin: 0; font-size: 13px; line-height: 1.5; }
.today-worklist button { font: inherit; cursor: pointer; }
.today-worklist button:disabled { opacity: .55; cursor: wait; }
.today-worklist .today-refresh, .today-worklist .today-show-more { border: 1px solid #edf0f5; background: #fff; color: #56637c; padding: 9px 13px; border-radius: 11px; font-size: 13px; font-weight: 700; white-space: nowrap; }
.today-worklist .today-refresh { display: inline-flex; gap: 8px; align-items: center; }
.today-worklist .today-worklist-tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.today-worklist .today-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.today-worklist .today-filters button { display: inline-flex; align-items: center; gap: 6px; border: 1px solid #edf0f5; background: #fff; color: #747b8c; border-radius: 10px; padding: 7px 10px; font-size: 12px; font-weight: 700; }
.today-worklist .today-filters button.active { background: #ff7c18; color: #fff; border-color: #ff7c18; }
.today-worklist .today-filters span { border-radius: 12px; padding: 1px 5px; background: rgba(145,153,177,.12); }
.today-worklist .today-filters .active span { background: rgba(255,255,255,.22); }
.today-worklist input[type="search"] { font: inherit; font-size: 13px; border: 1px solid #edf0f5; border-radius: 11px; padding: 10px 12px; width: 215px; max-width: 100%; background: #fff; color: #171a31; }
.today-worklist .today-worklist-items { list-style: none; padding: 0; margin: 0; }
.today-worklist .today-worklist-item { display: grid; grid-template-columns: 36px minmax(0,1fr) auto auto; align-items: center; gap: 14px; padding: 16px 0; border-top: 1px solid #edf0f5; }
.today-worklist .today-work-icon { background: #fff1e6; color: #ff7c18; border-radius: 11px; height: 36px; display: grid; place-items: center; }
.today-worklist .today-work-copy { min-width: 0; overflow-wrap: anywhere; }
.today-worklist .today-work-copy strong { font-size: 14px; font-weight: 750; }
.today-worklist .today-work-copy p { margin: 3px 0; color: #56637c; font-size: 12px; line-height: 1.5; }
.today-worklist .today-work-copy small { color: #9199b1; font-size: 11px; }
.today-worklist .today-urgency { white-space: nowrap; border-radius: 20px; padding: 5px 9px; font-size: 11px; font-weight: 700; background: #f4f5f9; color: #56637c; }
.today-worklist .today-urgency.overdue { color: #b93846; background: #fff0f2; }
.today-worklist .today-urgency.today, .today-worklist .today-urgency.pending { color: #a66413; background: #fff4e2; }
.today-worklist .today-action { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff1e6; color: #dd6000; border: 1px solid #ffe2ce; border-radius: 10px; padding: 9px 11px; white-space: nowrap; font-size: 12px; font-weight: 700; }
.today-worklist .today-action:hover { background: #ffe5d1; }
.today-worklist .today-empty { padding: 20px 0; margin: 0; color: #747b8c; font-size: 13px; }
.today-worklist .today-error { background: #fff0f2; color: #b93846; padding: 12px; border-radius: 10px; font-size: 13px; }
.today-worklist .today-caption { margin: 14px 0 0; color: #9199b1; font-size: 11px; line-height: 1.5; }
.today-worklist button:focus-visible, .today-worklist input:focus-visible { outline: 2px solid #ff7c18; outline-offset: 3px; }
@media (max-width: 1000px) {
    .today-worklist .today-worklist-item { grid-template-columns: 32px minmax(0,1fr) auto; gap: 10px; }
    .today-worklist .today-work-icon { height: 32px; }
    .today-worklist .today-urgency { grid-column: 2; justify-self: start; }
    .today-worklist .today-action { grid-column: 3; grid-row: 1 / span 2; }
}
@media (max-width: 600px) {
    .today-worklist { padding: 16px; border-radius: 16px; }
    .today-worklist .today-worklist-heading { gap: 8px; }
    .today-worklist .today-worklist-heading p { font-size: 12px; }
    .today-worklist input[type="search"] { width: 100%; }
    .today-worklist .today-worklist-item { grid-template-columns: 30px minmax(0,1fr); }
    .today-worklist .today-urgency { grid-column: 2; grid-row: 2; }
    .today-worklist .today-action { grid-column: 2; grid-row: 3; justify-self: start; }
}
