/* Account frame and profile, shared by the public portal and campus.
   Fixed geometry and the dedicated notifications / verification layouts remain. */
.account-dialog .account-dialog-header { background: #fbfcff; padding-inline: 22px; }
.account-dialog .account-dialog-identity h2 { font-size: 22px; letter-spacing: -.45px; line-height: 1.25; }
.account-dialog .account-dialog-identity > div > span { display: none; }
.account-dialog .account-dialog-identity p { margin-top: 4px; font-size: 12px; line-height: 1.5; }
.account-dialog .account-dialog-avatar { border-radius: 13px; font-size: 15px; }
.account-dialog .account-dialog-close { width: 44px; height: 44px; min-height: 44px; flex-basis: 44px; border-radius: 11px; }
.account-dialog .account-dialog-tabs { min-height: 0; overflow-y: auto; scrollbar-width: thin; }
.account-dialog .account-dialog-tabs button { transition: background 150ms ease, box-shadow 150ms ease; }
.account-dialog .account-dialog-tabs button > div { min-width: 0; }
.account-dialog .account-nav-compact { display: none; }
.account-dialog :is(button, input, select, textarea, summary):focus-visible { outline: 3px solid #89b2ea; outline-offset: 3px; }
.account-dialog [data-account-panel="profile"] { width: 100%; max-width: none; }
.account-dialog [data-account-panel="profile"] .account-panel-heading { align-items: center; gap: 16px; margin-bottom: 20px; padding-bottom: 18px; }
.account-dialog [data-account-panel="profile"] .account-panel-heading > div > span { display: none; }
.account-dialog [data-account-panel="profile"] .account-panel-heading h3 { font-size: 24px; line-height: 1.3; letter-spacing: -.5px; }
.account-dialog [data-account-panel="profile"] .account-panel-heading p { color: #586b82; font-size: 13px; line-height: 1.55; margin-top: 6px; }
.account-dialog [data-account-panel="profile"] .account-edit-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-size: 12px; font-weight: 600; min-height: 44px; padding: 10px 15px; border-radius: 10px; }
.account-dialog [data-account-panel="profile"] .account-edit-button::before { content: ''; width: 15px; height: 15px; background: currentColor; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='m16 3 5 5-12 12-6 1 1-6ZM13 6l5 5'/%3E%3C/svg%3E") center / contain no-repeat; }
.account-dialog .institutional-profile-card { background: var(--institutional-soft, #f2f6ff); border-color: #d9e5f4; padding: 22px; gap: 18px; margin-bottom: 22px; border-radius: 14px; }
.account-dialog .institutional-profile-card .institutional-mark { width: 72px; height: 72px; flex-basis: 72px; border-radius: 14px; background: #fff; }
.account-dialog .institutional-profile-card strong { font-size: 19px; line-height: 1.4; overflow-wrap: anywhere; }
.account-dialog .institutional-profile-card > div > span { font-size: 12px; margin-bottom: 5px; }
.account-dialog .institutional-profile-card small { font-size: 12px; color: #536780; margin-top: 5px; }
.account-dialog .account-contact-heading { font-size: 14px; font-weight: 650; color: #293e59; margin: 0 0 12px; line-height: 1.5; }
.account-dialog .account-details { gap: 12px; }
.account-dialog .account-details > div { border: 1px solid #e1e8f2; background: #fff; padding: 16px; border-radius: 11px; }
.account-dialog .account-details dt { color: #586b82; font-size: 12px; margin-bottom: 7px; line-height: 1.5; }
.account-dialog .account-details dd { color: #243b58; font-size: 14px; line-height: 1.6; font-weight: 600; }
.account-dialog .account-details dd.is-empty { color: #64758b; font-weight: 400; }
.account-dialog .account-detail-media { background: #f8fafc; margin-top: 14px; border-radius: 11px; }
.account-dialog .account-detail-media strong { font-size: 13px; }
.account-dialog .account-detail-media p { font-size: 12px; color: #586b82; }
.account-dialog .account-profile-shortcuts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 24px; }
.account-dialog .account-profile-shortcuts button { display: flex; align-items: center; gap: 11px; background: #f8faff; border: 1px solid #dce6f4; border-radius: 11px; padding: 14px; min-height: 76px; font-family: inherit; text-align: left; cursor: pointer; color: #285da4; transition: border-color 150ms, background 150ms; }
.account-dialog .account-profile-shortcuts button:hover { background: #edf4ff; border-color: #abc7ed; }
.account-dialog .account-profile-shortcuts svg { width: 21px; height: 21px; flex: 0 0 21px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.account-dialog .account-profile-shortcuts button > span:not(.account-shortcut-arrow) { flex: 1; min-width: 0; }
.account-dialog .account-profile-shortcuts strong { display: block; font-size: 12px; line-height: 1.5; font-weight: 650; color: #293e59; }
.account-dialog .account-profile-shortcuts small { display: block; color: #536b88; font-size: 11px; line-height: 1.5; margin-top: 3px; }
.account-dialog .account-shortcut-arrow { font-size: 18px; flex-shrink: 0; }
.account-dialog .account-profile-form { gap: 18px; }
.account-dialog .account-profile-form .account-form-grid { gap: 16px; }
.account-dialog .account-profile-form label > span { font-size: 12px; font-weight: 600; line-height: 1.5; }
.account-dialog .account-profile-form label > small { color: #586b82; font-size: 11px; line-height: 1.5; }
.account-dialog .account-profile-form :is(input, select) { font-size: 14px; border-radius: 9px; }
.account-dialog .account-profile-form input[readonly] { color: #526780; }
.account-dialog .account-profile-form .account-partner-branding { background: #f8faff; grid-template-columns: 1fr; gap: 14px; padding: 18px; }
.account-dialog .account-partner-branding-copy > span { display: none; }
.account-dialog .account-partner-branding-copy p { font-size: 12px; color: #586b82; }
.account-dialog .account-profile-form .account-form-footer { position: sticky; bottom: -24px; z-index: 1; background: #fff; padding: 14px 0; margin: 0; border-top: 1px solid #e1e8f2; }
.account-dialog .account-profile-form .account-form-footer button { min-height: 44px; font-size: 12px; font-weight: 600; border-radius: 10px; }
.account-dialog [data-account-panel="profile"] .account-action-feedback:not(:empty) { border-radius: 9px; background: #f0f8f4; padding: 10px 12px; margin-top: 14px; font-size: 12px; }
.account-dialog [data-account-panel="profile"] .account-action-feedback.is-error:not(:empty) { background: #fff3f3; }
@media (min-width: 721px) {
  .account-dialog .account-dialog-tabs button span { font-size: 13px; }
  .account-dialog .account-dialog-tabs button small { font-size: 11px; line-height: 1.5; }
}
@media (max-width: 720px) {
  .account-dialog .account-dialog-header { padding-inline: 14px; }
  .account-dialog .account-dialog-identity { gap: 10px; }
  .account-dialog .account-dialog-identity h2 { font-size: 19px; }
  .account-dialog .account-dialog-identity p { font-size: 11px; }
  .account-dialog .account-dialog-tabs [data-account-tab="profile"] > div > span:not(.account-nav-compact) { display: none; }
  .account-dialog .account-dialog-tabs .account-nav-compact { display: block; }
  .account-dialog [data-account-panel="profile"] .account-panel-heading h3 { font-size: 22px; }
  .account-dialog .institutional-profile-card { padding: 16px; gap: 12px; }
  .account-dialog .institutional-profile-card .institutional-mark { width: 54px; height: 54px; flex-basis: 54px; }
  .account-dialog .institutional-profile-card strong { font-size: 16px; }
  .account-dialog .account-profile-form :is(input, select) { font-size: 16px; }
  .account-dialog .account-profile-form .account-form-footer { bottom: -20px; }
}
@media (max-width: 480px) {
  .account-dialog [data-account-panel="profile"] .account-panel-heading { flex-direction: column; align-items: stretch; gap: 12px; }
  .account-dialog .account-details { grid-template-columns: 1fr; gap: 10px; }
  .account-dialog .account-details > div { padding: 13px 14px; }
  .account-dialog .account-profile-shortcuts { grid-template-columns: 1fr; margin-top: 18px; gap: 10px; }
  .account-dialog .account-profile-shortcuts button { min-height: 68px; }
}
@media (prefers-reduced-motion: reduce) {
  .account-dialog[open], .account-dialog .account-dialog-panel { animation: none; }
  .account-dialog .account-profile-shortcuts button, .account-dialog .account-dialog-tabs button { transition: none; }
}
