/* Design tokens and element resets.
   Ported verbatim from maosh_saas_demo.html. Values are normative (§13.1).

   Source: maosh_saas_demo.html <style> block, lines 1-23.
   Do not restyle while porting: divergence from the prototype is a defect
   (build prompt §2, §3.5). */

:root{
  --paper:#F2F4F3; --card:#FBFCFB; --sunk:#EBEFEE; --hover:#E9EEED;
  --ink:#14232A; --ink2:#4A5D66; --ink3:#84949A;
  --rule:#DBE2E0; --rule2:#BAC7C3;
  --srv:#0B6E6E; --srv-bg:#E7F1F0; --srv-line:#9CC7C4;
  --cli:#A93F49; --cli-bg:#FAEDEE; --cli-line:#E0B7BA;
  --del:#A81F26; --amber:#8A6A18; --amber-bg:#F7F1DF; --amber-line:#DCC98C;
  --ok:#2F7A3E; --sel:#DCE9E7; --shadow:rgba(20,35,42,.20); --mark:#FBEEC0;
  --brand:#F5C400; --brand-ink:#141414; --brand-soft:#FFF7DC; --brand-line:#E0B400;
  /* Text that sits on --brand and on --brand-soft. The platform's own values
     are the hand-picked olives the prototype shipped, kept verbatim so nothing
     moves for a workspace that has set no colour of its own (§13.1); a branded
     workspace overrides all seven together from its accent.
     --brand-sub and --brand-faint sit on the accent, --brand-deep on the tint,
     which is why one variable could not serve all three. */
  --brand-sub:#3A3000; --brand-faint:#5A4B00; --brand-deep:#6A5200;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{background:var(--paper);color:var(--ink);font-size:14px;
  font-family:"IBM Plex Sans",system-ui,sans-serif;display:flex;flex-direction:column;
  overflow:hidden}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;text-align:left}
input,select,textarea{font:inherit;color:inherit}
select option{background:var(--card);color:var(--ink)}
:focus-visible{outline:2px solid var(--srv);outline-offset:1px}
.scroll,.work,.nav,.wb{scrollbar-width:thin}
#root{flex:1;display:flex;flex-direction:column;min-height:0}
