/* Cardholder portal shell (WP-8 fills pages). Mobile-first: sticky top bar + bottom tab bar (safe-area aware); ≥820px → side rail. Light default. */
.tsc-portal{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.tsc-pbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:12px;min-height:56px;padding:var(--tsc-safe-t) 16px 0;
  background:var(--tsc-bg-2);border-bottom:1px solid var(--tsc-line);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px)}
.tsc-pbar__brand{display:flex;align-items:center;min-height:44px;margin-right:auto}   /* QA m14 */
.tsc-pbar__brand img{height:28px;width:auto}
.tsc-pmain{flex:1;width:100%;max-width:960px;margin:0 auto;padding:20px 16px calc(88px + var(--tsc-safe-b))}
.tsc-pnav{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;justify-content:space-around;padding:6px 8px calc(6px + var(--tsc-safe-b));
  background:var(--tsc-bg-2);border-top:1px solid var(--tsc-line)}
.tsc-pnav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:var(--tsc-ctl-h);padding:4px 2px;
  border-radius:var(--tsc-r-sm);font-size:.6875rem;font-weight:600;color:var(--tsc-mute);text-decoration:none}
.tsc-pnav a .tsc-icon{width:22px;height:22px}
.tsc-pnav a[aria-current=page]{color:var(--tsc-accent-text)}
.tsc-kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.tsc-kpi{background:var(--tsc-card);border:1px solid var(--tsc-line);border-radius:var(--tsc-r);padding:14px 16px}
.tsc-kpi b{display:block;font:600 1.75rem/1.1 var(--tsc-font-display)}
.tsc-kpi span{font-size:.8125rem;color:var(--tsc-mute)}
.tsc-list{list-style:none;margin:0;padding:0;border:1px solid var(--tsc-line);border-radius:var(--tsc-r);background:var(--tsc-card);overflow:hidden}
.tsc-list>li{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 16px}
.tsc-list>li+li{border-top:1px solid var(--tsc-line)}
.tsc-empty{padding:32px 16px;text-align:center;color:var(--tsc-mute)}
@media (min-width:820px){
  div.tsc-portal{display:grid;grid-template-columns:220px 1fr;grid-template-rows:auto 1fr}/* QA N3 (WP-F3): the grid belongs to the shell wrapper only - body also carries tsc-portal (layout.php), incl. the sign-in page */
  .tsc-pbar{grid-column:1/-1}
  .tsc-pnav{position:sticky;top:56px;grid-row:2;align-self:start;height:calc(100dvh - 56px);flex-direction:column;justify-content:flex-start;gap:4px;padding:16px 12px;border-top:0;border-right:1px solid var(--tsc-line)}
  .tsc-pnav a{flex:none;flex-direction:row;justify-content:flex-start;gap:12px;padding:0 12px;font-size:.9375rem}
  .tsc-pmain{grid-row:2;padding-bottom:40px;max-width:none}
}
