/* Theming engine — global stylesheet.
   Ported verbatim from dev-remove/theming-reference/prototype-classic.html,
   helmet <style> block, lines 27-36 (the prototype's ONLY stylesheet rules —
   all component styling ships as inline style="" attributes on the ported
   markup instead). Source: Claude Design "Marketplace Prototype" / Layout A
   ("Classic"), fetched 2026-07-30. */

* { box-sizing: border-box; }
/* font-family/color live on the prototype's React rootStyle wrapper, not its
   helmet <style> block — without this rule body text falls back to the browser
   serif default. */
body { margin: 0; background: var(--n-F4F6F8, #F4F6F8); font-family: var(--body,'IBM Plex Sans'), sans-serif; color: var(--n-1F262E, #1F262E); -webkit-font-smoothing: antialiased; }
/* Sticky footer (owner ruling 2026-08-21, deliberately NOT in the prototype):
   short pages must pin the footer to the viewport bottom instead of leaving a
   background strip under it. Only frontend.theme.layout has a <main>; the auth
   layout manages its own 100vh shell and is untouched by the main rule. */
body { min-height: 100dvh; display: flex; flex-direction: column; }
main { flex: 1 0 auto; }
input, select, button, textarea { font-family: var(--body,'IBM Plex Sans'), sans-serif; }
input:focus, select:focus, textarea:focus, button:focus-visible { outline: var(--fw,0px) solid var(--fc,var(--acc,#F0871E)); outline-offset: 2px; }
@keyframes slideIn { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.sd-scroll::-webkit-scrollbar { width: 10px; }
.sd-scroll::-webkit-scrollbar-thumb { background: #D7DDE3; border-radius:calc(var(--rk,1)*6px); border: 3px solid #fff; }
