/* ==== GLOBAL APP STYLES — rules shared by 2+ screens (the page scroll
   wrapper, the stub-screen layout). A screen may still override one of
   these for itself inside its own screens/<id>.js — that's expected, keep
   the base rule here and the override there. ---- */

/* font-family is a design token like the palette in tokens.css, kept here
   instead since it's declared on body, not inside a selector tokens.css
   otherwise deals in. The concept's typeface is Figtree (Google Fonts),
   loaded via <link> in index.html. */
body{font-family:"Figtree",-apple-system,"SF Pro Display","SF Pro Text",system-ui,"Segoe UI",Roboto,sans-serif}

/* ---- page shell (sidebar's sibling on every signed-in screen: a topbar
   over a scrollable body) — used directly by screens with no dashboard-only
   chrome (search/notifications/account row only, e.g. funds.js) and via
   components/dashShell.js's dashShell() for the Dashboard-flow screens,
   which layer their own Add-row/tabs on top inside .page-body. ---- */
.page-main{flex:1; min-width:0; display:flex; flex-direction:column; height:100%}
.page-topbar{
  flex:none; display:flex; align-items:center; justify-content:space-between; gap:var(--s-l);
  height:72px; padding:12px var(--s-l) 8px;
}
.page-body{flex:1; min-height:0; min-width:0; display:flex; flex-direction:column; gap:var(--s-l); padding:var(--s-l); overflow-y:auto; overflow-x:hidden}
.page-inner{max-width:var(--page-max); margin:0 auto; padding:var(--s-3xl) var(--gutter)}

/* ---- app shell (persistent sidebar + content, used by every signed-in
   screen — LP side today, GP side once those screens exist) ---- */
.app-shell{flex-direction:row !important}

/* ---- stub screens (shared "under construction" placeholder layout) ---- */
.stub-back{
  position:absolute; top:var(--s-l); left:var(--s-l); z-index:2;
  display:flex; align-items:center; gap:6px; padding:8px 14px; border-radius:var(--r-full);
  background:none; border:0; color:var(--ink-secondary); font:inherit; font-size:var(--t-s); font-weight:500; cursor:pointer;
}
.stub-back:active{background:var(--background-secondary); color:var(--ink-primary)}
.stub{
  flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:0 var(--gutter); gap:var(--s-s);
}
.stub .tag{
  font-size:var(--t-xs); line-height:var(--t-xs-lh); font-weight:700; letter-spacing:.4px;
  text-transform:uppercase; color:var(--ink-tertiary);
}
.stub h2{margin:0; font-size:var(--t-h2); line-height:var(--t-h2-lh); font-weight:700; letter-spacing:-.4px}
.stub .sub{margin:0; font-size:var(--t-m); line-height:var(--t-m-lh); color:var(--ink-secondary); max-width:40ch}
.stub .btn{width:auto; padding:0 var(--s-xl)}
