/* Company overview and shared portal navigation. */
.account-dashboard { max-width:1120px; margin-inline:auto; gap:28px; }
.dashboard-heading { align-items:center; }
.dashboard-heading .eyebrow { margin-bottom:4px; }
.dashboard-heading > a { flex-shrink:0; }
.dashboard-summary { display:grid; gap:16px; }
.section-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.section-toolbar h2,.section-toolbar p { margin:0; }
.section-toolbar h2 { font-size:20px; line-height:28px; }
.portal-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.portal-metric { display:flex; align-items:flex-start; gap:16px; padding:20px 24px; text-decoration:none; color:inherit; min-height:0; transition:border-color 150ms,box-shadow 150ms; }
.portal-metric:hover { border-color:var(--primary); box-shadow:var(--shadow); }
.portal-metric-icon,.dashboard-next-icon { display:inline-flex; align-items:center; justify-content:center; flex:0 0 44px; height:44px; background:var(--info-bg); color:var(--primary); border-radius:12px; }
.portal-metric-content { display:grid; gap:4px; min-width:0; }
.portal-metric-content--billing { width:100%; }
.portal-billing-values { display:flex; flex-wrap:wrap; gap:12px 24px; }
.portal-billing-value { display:grid; gap:4px; flex:1 1 120px; min-width:0; }
.portal-metric .metric-label { margin:0; color:var(--muted); }
.portal-metric .metric-value { font-size:28px; line-height:36px; margin:0; font-variant-numeric:tabular-nums; }
.metric-link { display:inline-flex; align-items:center; gap:8px; color:var(--primary-hover); font-size:14px; line-height:20px; font-weight:600; margin-top:4px; }
.metric-link .ui-icon { width:16px; height:16px; }
.dashboard-next { display:flex; align-items:flex-start; gap:20px; padding:24px; }
.dashboard-next > div { min-width:0; }
.dashboard-next h2 { margin-bottom:8px; font-size:20px; line-height:28px; }
.dashboard-next p { margin-bottom:0; color:var(--muted); }
.dashboard-next .actions { margin-top:20px; gap:20px; }
.dashboard-draft-link { display:inline-flex; align-items:center; min-height:44px; font-weight:600; font-size:14px; }
.portal-filters { display:flex; flex-wrap:wrap; align-items:flex-end; gap:16px; }
.portal-filters label { display:flex; flex-direction:column; gap:8px; min-width:0; }
.portal-filters input,.portal-filters select { width:auto; max-width:100%; }
.portal-filters--month { align-items:center; gap:10px; }
.portal-filters--month input { width:182px; }
.portal-filter-panel { padding:20px; border:1px solid var(--line); border-radius:var(--radius); background:white; }
.portal-filter-panel > label { flex:1 1 165px; }
.portal-filter-panel .portal-filter-search { flex:2 1 220px; }
.portal-filter-panel input,.portal-filter-panel select { width:100%; }
.portal-filter-actions { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.portal-filter-actions > a { font-size:14px; line-height:20px; }
.portal-filter-panel { align-items:flex-start; }
.portal-filter-choice { display:grid; gap:10px; flex:1 1 165px; min-width:0; }
.portal-filter-choice > a,.portal-clear-small { font-size:14px; line-height:20px; width:fit-content; }
.portal-clear-small { display:none; }
.portal-filter-feedback { color:var(--muted); font-size:14px; margin:0; }
.portal-results-region { display:grid; gap:20px; }
.portal-results-region[aria-busy="true"] .portal-results { opacity:.65; }
.dashboard-recent .section-toolbar > div { display:grid; gap:4px; }
.dashboard-recent .page-description { font-size:14px; line-height:20px; }
.dashboard-all-link { display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:600; }
.portal-results .section-toolbar { margin-bottom:20px; }
.result-count { font-size:14px; line-height:20px; color:var(--muted); }
.portal-results td { vertical-align:middle; }
.portal-results td:first-child > a { font-weight:600; }
.portal-results small { color:var(--muted); }
.history-icon-action { width:44px; height:44px; min-width:44px; padding:10px; background:transparent; border-color:transparent; }
.history-icon-action .ui-icon { width:22px; height:22px; stroke-width:1.8; }
.history-icon-action--delete { color:var(--danger); }
.history-icon-action--delete:hover,.history-icon-action--delete:focus-visible { background:var(--danger-bg); border-color:var(--danger); color:var(--danger); }
.history-icon-action--cancel { color:var(--warning); background:var(--warning-bg); }
.history-icon-action--cancel:hover,.history-icon-action--cancel:focus-visible { background:#ffebad; border-color:var(--warning); color:var(--warning); }
.history-icon-action:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.charges-summary { display:flex; justify-content:space-between; align-items:center; gap:16px; padding-bottom:24px; }
.charges-summary p { margin:0; }
.charges-summary .metric-label { margin-bottom:4px; }
.portal-account { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.portal-account > span:first-child { min-width:0; }
.membership-status { padding:6px 10px; min-height:36px; font-size:13px; white-space:nowrap; box-shadow:none; border:0; flex-shrink:0; }
.membership-status.associated { background:var(--success-bg); color:var(--success); }
.membership-status.not-associated { background:var(--danger); color:white; text-decoration:none; }
.membership-status.not-associated:hover { background:#871923; color:white; }
.membership-status.not-associated:focus-visible { outline:3px solid var(--primary); outline-offset:2px; }
.notification-bell { position:relative; display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; flex-shrink:0; color:var(--navy); border:1px solid transparent; border-radius:var(--radius); }
.notification-bell:hover { background:var(--info-bg); border-color:var(--line); }
.notification-count { position:absolute; top:0; right:0; background:var(--danger); color:white; border:2px solid white; border-radius:12px; font-size:11px; line-height:16px; min-width:20px; text-align:center; }
.notification-count[hidden] { display:none; }
.portal-pagination { justify-content:flex-end; }
.request-flow + #request-activity { max-width:880px; margin:24px auto 0; }
#membership-dialog .actions { justify-content:center; }
#membership-dialog .membership-dialog-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:16px; }
#membership-dialog .membership-dialog-heading h2 { flex:1; min-width:0; margin:0; }
#membership-dialog .membership-dialog-close { flex:0 0 44px; width:44px; padding:8px; }
#membership-dialog .membership-dialog-action { width:100%; }
@media(max-width:767px) {
  .account-dashboard { gap:24px; }
  .dashboard-heading { align-items:stretch; gap:16px; }
  .dashboard-heading > a { align-self:flex-start; }
  .portal-metrics { gap:12px; }
  .portal-metric { gap:12px; padding:16px; flex-direction:column; }
  .portal-metric-icon { flex-basis:36px; width:36px; height:36px; border-radius:8px; }
  .portal-metric .metric-value { font-size:26px; line-height:32px; }
  .dashboard-next { padding:20px; gap:12px; }
  .dashboard-next-icon { display:none; }
  .dashboard-next .actions { gap:12px 20px; }
  .portal-filter-panel { padding:16px; }
  .portal-filter-panel > label { flex-basis:100%; }
  .portal-filter-panel .portal-filter-search { flex-basis:100%; }
  .portal-filter-choice { flex-basis:100%; }
  .portal-clear-wide { display:none; }
  .portal-clear-small { display:inline-flex; }
  .portal-filter-actions { width:100%; }
  .portal-account.topbar-account { display:flex; max-width:none; flex:0 0 auto; gap:6px; }
  .app-topbar .topbar-context { flex:1 1 calc(100% - 64px); order:3; }
  .is-anonymous .app-topbar .topbar-context { flex-basis:100%; order:0; }
  .portal-account > span:first-child { display:none; }
  .membership-status { font-size:12px; padding:4px 8px; min-height:32px; }
  .app-topbar .topbar-context { font-size:12px; line-height:18px; }
  .app-topbar .topbar-context strong { font-size:14px; line-height:20px; }
  .app-topbar { gap:10px; }
}
@media(max-width:380px) {
  .portal-metrics { grid-template-columns:1fr; }
  .portal-metric { flex-direction:row; }
}
