/* Franchise Portal V33.41 shared professional UI layer.
   Visual-only: no hydration, identity, routing, or data ownership. */
:root{
  --fp-space-1:4px;--fp-space-2:8px;--fp-space-3:12px;--fp-space-4:16px;
  --fp-space-5:24px;--fp-space-6:32px;--fp-space-7:48px;--fp-space-8:64px;
  --fp-page-gutter:clamp(16px,3vw,48px);--fp-content-max:1600px;
  --fp-radius-sm:10px;--fp-radius-md:14px;--fp-radius-lg:20px;--fp-radius-xl:26px;
  --fp-glass:rgba(8,15,25,.68);--fp-glass-soft:rgba(255,255,255,.065);
  --fp-glass-strong:rgba(5,10,18,.88);--fp-line:rgba(255,255,255,.14);
  --fp-line-strong:rgba(255,255,255,.24);--fp-text:#f7f9fc;
  --fp-muted:rgba(231,238,248,.68);--fp-shadow:0 18px 56px rgba(0,0,0,.28);
  --fp-shadow-soft:0 10px 30px rgba(0,0,0,.18);
}
html{scroll-padding-top:96px}
body{line-height:1.5;text-rendering:optimizeLegibility}
body :where(button,input,select,textarea){font:inherit}
body :where(h1,h2,h3,h4,p){text-wrap:pretty}
body :where(.workspace,.gm-shell,.war-shell,.trade-shell,.stats-shell,.dashboard-shell,.page-shell,.main-content){
  max-width:var(--fp-content-max);
}
body :where(.screen-grid,.gm-grid,.war-grid,.trade-grid,.stats-grid,.dashboard-grid,.grid){
  gap:var(--fp-space-4);
}
body :where(.module,.screen-card,.gm-card,.war-card,.trade-card,.stats-card,.fp-card,.panel,.card){
  border-color:var(--fp-line);
  border-radius:var(--fp-radius-md);
  box-shadow:var(--fp-shadow-soft);
}
body :where(.module,.screen-card,.gm-card,.war-card,.trade-card,.stats-card,.fp-card,.panel){
  background:var(--fp-glass-soft);
  backdrop-filter:blur(12px) saturate(118%);
  -webkit-backdrop-filter:blur(12px) saturate(118%);
}
body :where(.module,.screen-card,.gm-card,.war-card,.trade-card,.stats-card,.fp-card,.panel)>:first-child{margin-top:0}
body :where(.module,.screen-card,.gm-card,.war-card,.trade-card,.stats-card,.fp-card,.panel)>:last-child{margin-bottom:0}
body :where(.module,.screen-card,.gm-card,.war-card,.trade-card,.stats-card,.fp-card,.panel){padding:var(--fp-space-4)}
body :where(.top-shell,.screen-header,.gm-header,.war-header,.trade-header,.stats-header,.page-header){
  gap:var(--fp-space-4);
  border-color:var(--fp-line);
  box-shadow:var(--fp-shadow-soft);
}
body :where(.top-actions,.tabs,.filters,.filter-row,.toolbar,.actions,.quick){
  display:flex;align-items:center;gap:var(--fp-space-2);flex-wrap:wrap;
}
body :where(button,.button,.btn,.pill,.tab,.fp-action-btn){
  min-height:38px;padding:8px 13px;border-radius:var(--fp-radius-sm);
  transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
body :where(button,.button,.btn,.pill,.tab,.fp-action-btn):hover{transform:translateY(-1px)}
body :where(button,.button,.btn,.pill,.tab,.fp-action-btn):focus-visible,
body :where(a,input,select,textarea):focus-visible{outline:2px solid color-mix(in srgb,var(--team-secondary,#f5c542) 78%,white);outline-offset:2px}
body :where(input,select,textarea){
  min-height:40px;padding:9px 12px;border:1px solid var(--fp-line);
  border-radius:var(--fp-radius-sm);background:rgba(0,0,0,.22);color:var(--fp-text);
}
body :where(table){border-collapse:separate;border-spacing:0;width:100%}
body :where(th){height:42px;padding:10px 12px;text-align:left;letter-spacing:.075em;text-transform:uppercase;color:var(--fp-muted)}
body :where(td){padding:12px;border-top:1px solid rgba(255,255,255,.085);vertical-align:middle}
body :where(tbody tr){transition:background .14s ease}
body :where(tbody tr:hover){background:rgba(255,255,255,.045)}
body :where(.drawer,.modal-card,.fp-player-modal-card,.fp-universal-player-card){
  border-radius:var(--fp-radius-lg);border-color:var(--fp-line-strong);
  background:var(--fp-glass-strong);box-shadow:var(--fp-shadow);
  backdrop-filter:blur(20px) saturate(125%);-webkit-backdrop-filter:blur(20px) saturate(125%);
}
body :where(.empty,.fp-empty,.empty-state){padding:var(--fp-space-5);min-height:96px;border-radius:var(--fp-radius-md)}
body :where(.muted,.fp-muted,.subhead,small){color:var(--fp-muted)}
body :where(.row,.fp-mini-row,.list-row){gap:var(--fp-space-3);padding-block:var(--fp-space-3)}
body :where(.info-card span,.module .subhead,.screen-card small,.gm-card small){font-size:max(10px,.68rem)!important;line-height:1.35}
body :where(.fp-v32-cap-overview-metric){min-width:0!important;overflow:visible!important}
body :where(.fp-v32-cap-overview-metric span,.fp-v32-cap-overview-metric b){min-width:0!important;overflow-wrap:anywhere;white-space:normal!important}
body :where(.page){max-width:100%;min-width:0}
body :where(.team-card){min-width:0;overflow:hidden}
body :where(.team-card *){min-width:0;overflow-wrap:anywhere}
body :where(.fp-feedback-fab button,.fp-feedback-trigger button){font-size:12px!important;line-height:1.25}
@media (min-width:901px){
  body :where(.workspace,.gm-shell,.war-shell,.trade-shell,.stats-shell,.dashboard-shell,.page-shell){
    margin-inline:auto;
  }
}
@media (max-width:900px){
  :root{--fp-page-gutter:14px;--fp-space-5:20px;--fp-space-6:24px}
  body :where(.module,.screen-card,.gm-card,.war-card,.trade-card,.stats-card,.fp-card,.panel){padding:var(--fp-space-3)}
  body :where(.screen-grid,.gm-grid,.war-grid,.trade-grid,.stats-grid,.dashboard-grid,.grid){gap:var(--fp-space-3)}
  body :where(th){padding:9px 10px}body :where(td){padding:11px 10px}
  body :where(button,.button,.btn,.pill,.tab,.fp-action-btn){min-height:42px}
  body :where(a.back,.back-link,.fp-player-close){min-height:42px;min-width:42px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
}
