/* Shared provider reporting layout. Payment controls are outside this report app. */
.sidebar { overflow-y: auto; }
.sidebar .brand { margin-bottom: 32px; }
.sidebar nav .nav-section { display: block; color: #a9c8b8; font-size: 11px; font-weight: 700; letter-spacing: 1.3px; text-transform: uppercase; margin: 22px 16px 10px; }
.sidebar nav a { margin-bottom: 6px; }
.sidebar nav a:focus-visible { outline: 2px solid #d6efaa; outline-offset: 2px; }
.overview-context { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; margin: -4px 2px 24px; font-size: 14px; color: #58705e; }
.overview-context strong { margin-left: 6px; color: #214e3e; }
.overview-context a { margin-left: auto; color: #12634e; font-weight: 600; }
.sync-notice { background: #fff8e7; border-color: #e8d7a5; color: #79581c; margin-bottom: 22px; }
.provider-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-bottom: 28px; }
.provider-card { border-top: 4px solid #268060; }
.provider-paysmart { border-top-color: #607ab9; }
.provider-card .panel-heading { flex-wrap: wrap; gap: 12px; padding-bottom: 18px; }
.provider-title { display: flex; gap: 14px; align-items: center; }
.provider-title p { margin-top: 2px; }
.provider-mark { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: #e7f2e8; color: #1d654a; font-weight: 750; font-size: 16px; }
.provider-paysmart .provider-mark { color: #405e97; background: #edf0fa; }
.provider-sync { margin: 0 28px; padding: 11px 14px; border-radius: 9px; background: #f1f7ed; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 3px 12px; color: #2f6847; font-size: 13px; }
.provider-sync span { font-weight: 650; }
.provider-sync small { color: inherit; font-size: 12px; }
.provider-sync.delayed { color: #836123; background: #fff8e7; }
.provider-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin: 24px 28px; }
.provider-metrics dt { font-size: 13px; color: #566f61; margin-bottom: 6px; }
.provider-metrics dd { margin: 0; font-size: clamp(22px,1.6vw,29px); font-weight: 700; color: #214e3e; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.provider-metrics small { display: block; font-size: 12px; margin-top: 6px; }
.provider-statuses { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); margin: 0 28px 22px; gap: 6px; }
.provider-statuses a { padding: 9px 4px; border-radius: 8px; background: #f7f9f4; text-align: center; }
.provider-statuses a:hover { background: #edf3e8; }
.provider-statuses a > span { display: flex; gap: 4px; align-items: center; justify-content: center; font-size: 11px; color: #536a5d; }
.provider-statuses strong { display: block; margin-top: 4px; font-size: 19px; }
.provider-statuses .dot { width: 6px; height: 6px; flex-shrink: 0; }
.provider-waiting { background: #fafcf8; border-top: 1px solid #e4eae2; padding: 17px 28px; display: flex; flex-wrap: wrap; gap: 5px 16px; justify-content: space-between; font-size: 13px; }
.provider-waiting span { color: #607266; }
.provider-waiting small { flex-basis: 100%; }
.provider-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.provider-legend span { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: #566f61; }
.provider-legend i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; }
.cub-swatch { background: #268060; }.paysmart-swatch { background: #607ab9; }
.adapter-chart .bar-cub { fill: #268060; }.adapter-chart .bar-paysmart { fill: #607ab9; }
.adapter-recent .reference a { display: block; margin-top: 5px; }
@media(min-width:1280px) {
  .adapter-heading { flex-direction: row; align-items: center; }
  .adapter-heading .month-form { display: block; flex-shrink: 0; }
  .adapter-heading .month-form label { margin-bottom: 8px; }
  .adapter-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .adapter-metrics .metric { padding: 22px; }
  .adapter-metrics .metric > strong { font-size: clamp(25px,2vw,34px); }
}
@media(max-width:1200px) {
  .provider-grid { grid-template-columns: minmax(0,1fr); }
  .provider-statuses a > span { font-size: 13px; }
}
@media(max-width:760px) {
  .sidebar { gap: 16px; overflow: visible; }
  .sidebar .brand { margin: 0; }
  .sidebar nav { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .sidebar nav .nav-section { grid-column: 1 / -1; margin: 6px 8px 0; font-size: 10px; }
  .sidebar nav > a:first-child, .sidebar nav > a:last-child { grid-column: 1 / -1; }
  .sidebar nav a { margin: 0; font-size: 14px; padding: 10px 12px; min-width: 0; }
  .overview-context { gap: 10px 18px; font-size: 13px; }
  .overview-context a { margin-left: 0; }
  .provider-grid { gap: 22px; }
  .provider-sync { margin-inline: 22px; }
  .provider-metrics { margin-inline: 22px; gap: 14px; }
  .provider-metrics dd { font-size: 23px; }
  .provider-statuses { margin-inline: 22px; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .provider-statuses a > span { font-size: 12px; }
  .provider-waiting { padding-inline: 22px; }
  .provider-mark { width: 40px; height: 40px; }
  .paysmart-table td:nth-child(7)::before { display: block; }
  .paysmart-table td:nth-child(5) { text-align: left; }
}
@media(max-width:380px) { .provider-metrics { grid-template-columns: minmax(0,1fr); } }
@media(max-width:520px) { .admin-label { display: none; } }
