/* Finsance UI foundation — shared tokens, global chrome and accessibility only. */
:root{
  --fs-bg:#0D0D0D;--fs-bg2:#111111;--fs-card:#171717;--fs-card2:#1d1d1d;--fs-border:#303030;
  --fs-orange:#FF6B00;--fs-orange-hover:#FF8126;--fs-orange-dim:rgba(255,107,0,.13);
  --fs-text:#f4f4f4;--fs-muted:#a1a1a1;--fs-muted2:#707070;
  --fs-positive:#28d995;--fs-negative:#ff6471;--fs-info:#43c7ff;--fs-warning:#ffb22c;
  --fs-font:'Inter','Noto Sans Thai',sans-serif;--fs-head:'Plus Jakarta Sans','Noto Sans Thai',sans-serif;
  /* legacy aliases used by existing SSR/static page bodies; values come from this file. */
  --bg:var(--fs-bg);--bg2:var(--fs-bg2);--card:var(--fs-card);--card2:var(--fs-card2);--border:var(--fs-border);
  --neon:var(--fs-orange);--neon-dim:var(--fs-orange-dim);--white:var(--fs-text);--txt:var(--fs-text);
  --slate:var(--fs-muted);--slate2:var(--fs-muted2);--gold:var(--fs-warning);--amber:var(--fs-warning);--emerald:var(--fs-positive);
  --red:var(--fs-negative);--cyan:var(--fs-info);--font:var(--fs-font);--head:var(--fs-head);
  --text:var(--fs-text);--muted:var(--fs-muted);--muted2:var(--fs-muted2);--blue:var(--fs-info);--accent:var(--fs-orange);
  --orange:var(--fs-orange);--orange2:var(--fs-orange-hover);--orange-dim:var(--fs-orange-dim);
  --chip:var(--fs-card2);--green:var(--fs-positive);--r:var(--fs-negative);--g:var(--fs-positive);--am:var(--fs-warning);
  --cy:var(--fs-info);--pur:var(--fs-info);--sl:var(--fs-muted);--sl2:var(--fs-muted2);--pan:var(--fs-card);--pan2:var(--fs-card2);--bd:var(--fs-border);
  --shadow:0 10px 30px rgba(0,0,0,.22);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--fs-bg);color:var(--fs-text)}
a,button,input,select,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--fs-orange);outline-offset:3px}

/* Shared global navigation: SSR (.fs-*) and static pages (.fsg-*). */
.fs-nav,.fsg-nav{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  min-height:62px;padding:9px max(18px,calc((100vw - 1440px)/2));
  background:rgba(13,13,13,.94);border-bottom:1px solid var(--fs-border);backdrop-filter:blur(10px)
}
.fs-brand,.fsg-brand{display:flex;align-items:center;gap:8px;color:var(--fs-text);font-family:var(--font);font-weight:800;text-decoration:none;white-space:nowrap}
.fs-brand-logo,.fsg-brand img{width:30px;height:30px;object-fit:cover;border-radius:7px;display:block}
.fsg-brand img{width:26px;height:26px}
.fs-brand span{color:var(--fs-orange)}
.fs-links,.fsg-links{display:flex;align-items:center;gap:18px;margin-left:auto;font-size:13px}
.fs-links a,.fsg-links a{min-height:44px;display:inline-flex;align-items:center;color:var(--fs-muted);text-decoration:none;white-space:nowrap}
.fs-links a:hover,.fsg-links a:hover{color:var(--fs-text)}
.fs-cta,.fsg-cta{background:var(--fs-orange);color:#fff!important;font-weight:800;padding:0 14px;border-radius:9px;box-shadow:0 5px 18px rgba(255,107,0,.16)}
.fs-cta:hover,.fsg-cta:hover{background:var(--fs-orange-hover);box-shadow:0 0 24px rgba(255,107,0,.28)}
.fs-ham,.fsg-ham{display:none;margin-left:auto;min-width:44px;min-height:44px;border:1px solid var(--fs-border);border-radius:9px;background:var(--fs-card);color:var(--fs-text);cursor:pointer}

/* Shared footer surface. Page-specific copy remains in the owning renderer. */
.fs-foot,.fsg-foot{border-top:1px solid var(--fs-border);margin-top:40px;padding:22px 18px;text-align:center;background:var(--fs-bg);color:var(--fs-muted)}
.fs-foot-links,.fsg-foot>div:first-child{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 16px;font-size:13px}
.fs-foot-links a,.fsg-foot a{color:var(--fs-muted);text-decoration:none}
.fs-foot-links a:hover,.fsg-foot a:hover{color:var(--fs-orange)}
.fs-disc,.fsg-foot p{font-size:12px;color:var(--fs-muted);margin:12px auto 0;line-height:1.6}
.fs-cc{font-size:12px;color:var(--fs-muted2);margin-top:4px}

@media(max-width:960px){
  .fs-nav,.fsg-nav{padding-left:14px;padding-right:14px}
  .fs-ham,.fsg-ham{display:block}
  .fs-nav>.fs-links,.fsg-nav>.fsg-links{display:none;flex-basis:100%;margin:0;padding:8px 0 4px;flex-direction:column;align-items:stretch;gap:2px}
  .fs-nav.open>.fs-links,.fsg-nav.open>.fsg-links{display:flex}
  .fs-links a,.fsg-links a{width:100%;padding:0 10px}
  .fs-cta,.fsg-cta{justify-content:center}
}
@media(max-width:560px){
  .fs-nav,.fsg-nav{min-height:58px;gap:8px}
  .fs-brand,.fsg-brand{font-size:16px}.fs-brand-logo,.fsg-brand img{width:27px;height:27px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}

/* Shared Dashboard shell: reuse these four classes on every dashboard page. */
.fs-dashboard-shell,.fs-dashboard-main,.fs-dashboard-rail,.fs-dashboard-tabs{min-width:0}
@media(max-width:980px){
  .fs-dashboard-shell{height:auto}
  .fs-dashboard-main,.fs-dashboard-rail{width:100%;padding-bottom:24px}
  .fs-dashboard-tabs,.tabs.fs-dashboard-tabs{position:static;inset:auto;z-index:auto;width:100%;margin:0;padding:4px 0 9px;background:transparent;border:0;border-bottom:1px solid var(--fs-border);backdrop-filter:none}
}

/* Shared editorial + research patterns. Keep data labels, sources and states consistent. */
.fs-editorial-page,.fs-data-page,.fs-404-page{min-height:calc(100vh - 62px);background:radial-gradient(circle at 50% 0,rgba(255,107,0,.07),transparent 34%),var(--fs-bg);color:var(--fs-text)}
.fs-content-shell{max-width:1180px;margin:0 auto;padding:30px 20px 72px}
.fs-editorial-page .fs-content-shell{max-width:1180px}
.fs-page-hero{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px;padding:20px 0 17px;border-bottom:1px solid var(--fs-border)}
.fs-page-hero h1{margin:0;color:var(--fs-text);font-family:var(--fs-head);font-size:clamp(25px,3vw,38px);line-height:1.2;letter-spacing:-.7px}
.fs-page-hero p{max-width:680px;margin:8px 0 0;color:var(--fs-muted);font-size:14px;line-height:1.65}
.fs-kicker{color:var(--fs-orange);font-size:10px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}
.fs-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}
.fs-filter-row a{display:inline-flex;align-items:center;min-height:38px;padding:0 13px;border:1px solid var(--fs-border);border-radius:10px;background:var(--fs-card);color:var(--fs-muted);font-size:12px;text-decoration:none}
.fs-filter-row a:hover,.fs-filter-row a[aria-current="page"]{border-color:var(--fs-orange);background:var(--fs-orange-dim);color:var(--fs-text)}
.fs-story-lead{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:22px;align-items:stretch;margin-bottom:20px;padding:0;border:1px solid var(--fs-border);border-radius:16px;background:linear-gradient(135deg,rgba(255,107,0,.12),var(--fs-card) 45%);overflow:hidden;text-decoration:none;color:var(--fs-text)}
.fs-story-lead .content-thumb{min-height:260px;height:100%;border-radius:0;background:var(--fs-bg2)}
.fs-story-lead .content-thumb img{object-fit:cover}
.fs-story-lead-copy{display:flex;flex-direction:column;justify-content:center;padding:24px 25px 25px}
.fs-story-lead-copy h2{margin:9px 0;font-family:var(--fs-head);font-size:clamp(20px,2.5vw,31px);line-height:1.28;letter-spacing:-.4px}
.fs-story-lead-copy p{margin:0;color:var(--fs-muted);font-size:14px;line-height:1.65}
.fs-story-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-top:16px;color:var(--fs-muted2);font-size:11px}
.fs-story-meta strong{color:var(--fs-info);font-weight:700}
.fs-story-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;list-style:none;margin:0;padding:0}
.fs-story-row{display:grid;grid-template-columns:116px minmax(0,1fr);gap:13px;align-items:start;min-width:0;padding:12px;border:1px solid var(--fs-border);border-radius:12px;background:var(--fs-card);text-decoration:none;color:var(--fs-text)}
.fs-story-row:hover{border-color:var(--fs-orange);transform:translateY(-1px)}
.fs-story-row .content-thumb{height:82px;border-radius:8px;background:var(--fs-bg2)}
.fs-story-row .content-thumb img{object-fit:cover}
.fs-story-row h3{margin:5px 0 4px;font-size:14px;line-height:1.45}
.fs-story-row p{margin:0;color:var(--fs-muted);font-size:11.5px;line-height:1.5}
.fs-empty{padding:24px;border:1px dashed var(--fs-border);border-radius:12px;background:var(--fs-card);color:var(--fs-muted);text-align:center}
.fs-feed-toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:18px 0;padding:13px;border:1px solid var(--fs-border);border-radius:12px;background:var(--fs-card)}
.fs-feed-toolbar label{display:flex;flex-direction:column;gap:4px;color:var(--fs-muted);font-size:11px}
.fs-feed-toolbar select,.fs-feed-toolbar input,.fs-feed-toolbar button{min-height:38px;border:1px solid var(--fs-border);border-radius:8px;background:var(--fs-bg2);color:var(--fs-text);padding:0 10px}
.fs-feed-toolbar button{background:var(--fs-orange);border-color:var(--fs-orange);color:#fff;font-weight:800;cursor:pointer}
.fs-feed-state{min-height:24px;color:var(--fs-muted);font-size:12px}
.fs-feed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fs-feed-card{min-width:0;padding:16px;border:1px solid var(--fs-border);border-left:3px solid var(--fs-info);border-radius:12px;background:var(--fs-card);overflow-wrap:anywhere;word-break:break-word}.fs-feed-card *{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.fs-feed-card:hover{border-color:var(--fs-info)}
.fs-feed-card h2{margin:7px 0;font-family:var(--fs-head);font-size:16px;line-height:1.4}
.fs-feed-card p{margin:7px 0;color:var(--fs-muted);font-size:13px;line-height:1.6}
.fs-feed-card .fs-impact{display:inline-flex;padding:3px 7px;border-radius:6px;background:var(--fs-orange-dim);color:var(--fs-orange);font-size:10px;font-weight:800}
.fs-learn-feature{display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr);gap:20px;align-items:center;margin:18px 0 28px;padding:22px;border:1px solid rgba(255,107,0,.4);border-radius:16px;background:linear-gradient(135deg,var(--fs-orange-dim),var(--fs-card) 55%)}
.fs-learn-feature h2{margin:7px 0;font-family:var(--fs-head);font-size:23px;line-height:1.3}
.fs-learn-feature p{margin:0;color:var(--fs-muted);font-size:13px}
.fs-learn-group{margin-top:27px}.fs-learn-group h2{display:flex;align-items:center;justify-content:space-between;margin:0 0 11px;padding-bottom:9px;border-bottom:1px solid var(--fs-border);font-family:var(--fs-head);font-size:18px}
.fs-learn-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}
.fs-learn-card{display:block;padding:15px;border:1px solid var(--fs-border);border-radius:12px;background:var(--fs-card);color:var(--fs-text);text-decoration:none}
.fs-learn-card:hover{border-color:var(--fs-orange);transform:translateY(-1px)}
.fs-learn-card .content-thumb{margin:-15px -15px 13px;width:calc(100% + 30px);border-radius:12px 12px 0 0}
.fs-learn-card h3{font-size:14px;line-height:1.45;margin:5px 0}.fs-learn-card p{font-size:12px;color:var(--fs-muted);margin:0;line-height:1.55}
.fs-article-page .fs-content-shell{max-width:860px}.fs-article{max-width:780px;margin:0 auto}.fs-article-header{padding:20px 0 13px}.fs-article-header h1{margin:7px 0 10px;font-family:var(--fs-head);font-size:clamp(28px,4vw,44px);line-height:1.2;letter-spacing:-.8px}.fs-article-deck{margin:0 0 13px;color:#d7d7d7;font-size:17px;line-height:1.75}.fs-article-byline{display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--fs-muted);font-size:12px}.fs-quick-summary{margin:0 0 28px;padding:18px 20px;border:1px solid rgba(255,107,0,.38);border-left:4px solid var(--fs-orange);border-radius:12px;background:linear-gradient(135deg,var(--fs-orange-dim),var(--fs-card) 62%)}.fs-quick-summary h2{margin:0 0 8px;font:800 18px var(--fs-head)}.fs-quick-summary ul{margin:0;padding-left:20px;color:#dedede;font-size:14px;line-height:1.7}.fs-quick-summary li+li{margin-top:5px}.fs-quick-summary a{display:inline-block;margin-top:11px;color:var(--fs-info);font-size:12px;text-decoration:none}.fs-article-body{scroll-margin-top:76px;font-size:16px;line-height:1.9}.fs-article-body h2{margin:32px 0 10px;font-family:var(--fs-head);font-size:22px;color:var(--fs-text)}.fs-article-body h3{margin:24px 0 7px;font-size:17px;color:var(--fs-text)}.fs-article-body p{margin:13px 0;color:#dedede}.fs-article-body ul,.fs-article-body ol{margin:12px 0;padding-left:22px;color:#dedede}.fs-article-body a{color:var(--fs-info);text-decoration:underline;text-underline-offset:3px}.fs-article .article-hero{margin:18px 0 24px;border-color:var(--fs-border);background:var(--fs-card)}.fs-article .article-hero figcaption{color:var(--fs-muted);font-size:11px}.fs-article .sources,.fs-article .related{margin-top:24px;padding:16px;border:1px solid var(--fs-border);border-radius:12px;background:var(--fs-card)}.fs-article .sources h2{margin:0 0 8px;font-size:16px;color:var(--fs-text)}.fs-article .sources ul{margin:0;padding-left:19px}.fs-article .sources a,.fs-article .related a{color:var(--fs-info)}
.fs-data-page .wrap{max-width:1180px}.fs-data-page .rate-metric-card,.fs-data-page .model-card,.fs-data-page .rate-chart,.fs-data-page .model-stat{background:var(--fs-card);border-color:var(--fs-border);box-shadow:var(--shadow)}.fs-data-page .rate-metric-card:hover,.fs-data-page .model-card:hover{border-color:#4a4a4a}.fs-data-page .rate-missing,.fs-data-page .rate-chart-empty{display:flex;align-items:center;gap:7px;min-height:32px;padding:7px 9px;border:1px dashed rgba(255,178,44,.38);border-radius:8px;background:rgba(255,178,44,.06);color:var(--fs-warning)}
.fs-provenance{align-items:center;min-height:28px;padding-top:7px;border-top:1px solid var(--fs-border)}.fs-provenance a{color:var(--fs-info)!important}.fs-provenance .rate-dot.none{background:var(--fs-muted2)}.fs-provenance .rate-dot.fresh{background:var(--fs-positive)}.fs-provenance .rate-dot.aging{background:var(--fs-warning)}.fs-provenance .rate-dot.stale{background:var(--fs-negative)}
.fs-data-page .chip{max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.fs-data-table,.fs-data-page .stock-table-wrap{overflow-x:auto;border:1px solid var(--fs-border);border-radius:12px;background:var(--fs-card)}.fs-data-table table,.fs-data-page .stock-table-wrap table{margin:0}.fs-data-table th,.fs-data-table td,.fs-data-page .stock-table-wrap th,.fs-data-page .stock-table-wrap td{border-color:var(--fs-border)}
.fs-state{border-radius:10px}.fs-state-error{border-color:rgba(255,100,113,.4)!important;background:rgba(255,100,113,.08)!important;color:var(--fs-negative)!important}.fs-state-empty{color:var(--fs-muted)!important}.fs-state-loading{color:var(--fs-muted)}
.fs-404-page{display:grid;place-items:center;padding:40px 20px}.fs-404-card{width:min(620px,100%);padding:34px;border:1px solid var(--fs-border);border-top:3px solid var(--fs-orange);border-radius:18px;background:linear-gradient(145deg,var(--fs-card),var(--fs-bg2));box-shadow:var(--shadow);text-align:center}.fs-404-code{font-family:var(--fs-head);font-size:clamp(64px,12vw,128px);font-weight:800;line-height:1;color:var(--fs-orange);letter-spacing:-5px}.fs-404-card h1{margin:10px 0 8px;font-family:var(--fs-head);font-size:25px}.fs-404-card p{margin:0 auto;color:var(--fs-muted);font-size:14px;line-height:1.7}.fs-404-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px;margin-top:20px}.fs-404-actions a{display:inline-flex;align-items:center;min-height:42px;padding:0 15px;border:1px solid var(--fs-border);border-radius:9px;color:var(--fs-text);font-size:12px;text-decoration:none}.fs-404-actions a:first-child{background:var(--fs-orange);border-color:var(--fs-orange);color:#fff;font-weight:800}
@media(max-width:760px){.fs-content-shell{padding:22px 14px 60px}.fs-page-hero{display:block}.fs-story-lead,.fs-learn-feature{grid-template-columns:1fr}.fs-story-lead .content-thumb{min-height:180px}.fs-story-lead-copy{padding:18px}.fs-story-list,.fs-feed-grid{grid-template-columns:1fr}.fs-learn-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fs-article-body{font-size:15px}.fs-404-card{padding:26px 18px}}
@media(max-width:460px){.fs-story-row{grid-template-columns:92px minmax(0,1fr);gap:10px;padding:10px}.fs-story-row .content-thumb{height:70px}.fs-learn-grid{grid-template-columns:1fr}.fs-feed-toolbar{align-items:stretch;flex-direction:column}.fs-feed-toolbar label,.fs-feed-toolbar select,.fs-feed-toolbar input,.fs-feed-toolbar button{width:100%}}
