/* Hardcore UI v2: calm, developer-grade. Dark by default, light via [data-theme="light"].
   Loaded after portal.css and hc.css: it maps their tokens onto this palette and flattens their chrome. */
:root, [data-theme="dark"] {
  --bg:#0c0d0f; --bg1:#111215; --bg2:#16181b; --bg3:#1d2024; --bd:#24272c; --bd2:#2f333a;
  --fg:#e7e7e4; --fg2:#b4b7bd; --mu:#80848c; --mu2:#5e6269;
  --ok:#5fb37c; --warn:#d4a24c; --bad:#e2725f; --info:#8fa8c8; --acc:#e7e7e4; --acc-fg:#0c0d0f;
  --sel:rgba(231,231,228,.08);
  /* legacy tokens used by portal.css / hc.css */
  --night:var(--bg1); --snow:var(--bg); --ink:var(--fg); --mute:var(--mu); --mute2:var(--fg2);
  --line:var(--bd); --lineD:var(--bd);
  color-scheme:dark;
}
[data-theme="light"] {
  --bg:#fafaf9; --bg1:#f3f3f1; --bg2:#ffffff; --bg3:#ececea; --bd:#e2e2df; --bd2:#d3d3cf;
  --fg:#141517; --fg2:#45484d; --mu:#7b7f86; --mu2:#a0a3a8;
  --ok:#2f7d4a; --warn:#9a6a14; --bad:#b9442f; --info:#3d5e8a; --acc:#141517; --acc-fg:#fafaf9;
  --sel:rgba(20,21,23,.06);
  color-scheme:light;
}
html { background:var(--bg); }
body { font-family:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif; font-size:14.5px; line-height:1.55;
       color:var(--fg); background:var(--bg); -webkit-font-smoothing:antialiased; letter-spacing:-.003em; }
.mono, code, .code, pre, time, .est, .kicker, .pill, table.t td.n, .stages .n { font-family:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace; }
.code { background:var(--bg3); color:var(--fg); padding:1px 6px; border-radius:4px; font-size:12.5px; }
a { color:inherit; }
::selection { background:var(--sel); }
:focus-visible { outline:1.5px solid var(--fg2); outline-offset:2px; }

/* type: no stretched display faces, smaller and calmer */
h1, .head h1, .pagehead h1, .lhero h1, .state h1 { font-family:inherit; font-stretch:normal; font-weight:600; letter-spacing:-.02em; }
h2, .lsec h2 { font-stretch:normal; font-weight:600; font-size:18px; letter-spacing:-.01em; }
h3 { font-stretch:normal; font-weight:600; font-size:15px; }
.kicker { font-size:11px; letter-spacing:.08em; color:var(--mu); font-weight:500; text-transform:uppercase; }
.sub, .muted, .lead { color:var(--fg2); }
.fine, .small { font-size:12.5px; }

/* chrome: flat bars, no gradients */
.top { background:var(--bg); border-bottom:1px solid var(--bd); color:var(--fg); }
.top .w { height:52px; }
.logo { font-family:"JetBrains Mono", ui-monospace, monospace; font-weight:600; font-stretch:normal; letter-spacing:.02em; font-size:14px; }
.top .r a, .top .r button, .top .l span { color:var(--fg2); font-size:13px; }
.top .r a:hover, .top .r button:hover { color:var(--fg); }
.head, .pagehead, .lhero { background:var(--bg) !important; color:var(--fg); border-bottom:1px solid var(--bd); }
.pagehead { padding:36px 0 28px; }
.pagehead h1 { font-size:28px; }
.pagehead p, .head .sum, .lhero p { color:var(--fg2); }
.head { padding-top:32px; }
.head h1 { font-size:30px; line-height:1.15; }
.demo-mode { background:var(--bg1); color:var(--warn); border-bottom:1px solid var(--bd); font-size:12.5px; }
.demo { background:var(--bg1); color:var(--fg2); border-bottom:1px solid var(--bd); }
.demo b { color:var(--fg); }
footer { background:var(--bg); color:var(--mu); border-top:1px solid var(--bd); padding:22px 0; font-size:12.5px; }
footer .logo { color:var(--fg2); font-size:12px; }

/* surfaces */
.panel, .card, .qitem, .box, .prog, .none, .tier, .ex, .plan, .honest, .spec, .founder, .diagram, .fpbar, .quote, table.t, pre.json, .mbox {
  background:var(--bg1) !important; color:var(--fg); border:1px solid var(--bd); border-radius:8px; box-shadow:none; }
.quote { color:var(--fg); }
.quote .muted, .quote ul { color:var(--fg2); }
.quote b.p, .plan b.pp { font-stretch:normal; font-weight:600; }
.fpbar { border-left:3px solid var(--warn); }
.none { color:var(--fg2); }
.plan.cur { border-color:var(--fg2); }
.offer { background:var(--bg1); color:var(--fg); border:1px solid var(--bd); border-radius:8px; }
.offer span { color:var(--fg2); }
table.t { border-collapse:separate; border-spacing:0; overflow:hidden; }
table.t th { background:var(--bg2); color:var(--mu); font-family:"JetBrains Mono", monospace; font-weight:500; font-size:11px; letter-spacing:.06em; }
table.t th, table.t td { border-bottom:1px solid var(--bd); padding:9px 12px; }
table.t tr:last-child td { border-bottom:0; }
table.t tfoot td { border-top:1px solid var(--bd2); }

/* controls */
.btn { background:var(--acc); color:var(--acc-fg); border-radius:6px; font-weight:500; font-size:13.5px; padding:8px 14px; border:1px solid var(--acc); }
.btn:hover { background:var(--fg2); border-color:var(--fg2); }
.btn.ghost { background:transparent; color:var(--fg); border:1px solid var(--bd2); }
.btn.ghost:hover { background:var(--bg3); }
.btn[disabled], .btn.ghost[disabled] { background:var(--bg3); color:var(--mu); border-color:var(--bd); cursor:default; }
.btn.small { padding:5px 10px; font-size:12.5px; }
.lhero .btn, .quote .btn { background:var(--acc); color:var(--acc-fg); }
.link { color:var(--fg2); font-size:13px; }
input[type=text], input[type=email], input[type=number], select, textarea {
  background:var(--bg2) !important; color:var(--fg) !important; border:1px solid var(--bd) !important; border-radius:6px !important; font-size:14px; }
input:focus, select:focus, textarea:focus { border-color:var(--fg2) !important; }
.chk { color:var(--fg2); }
.chk input, .check input { accent-color:var(--fg); }
.opt { background:var(--bg2); border:1px solid var(--bd); border-radius:6px; color:var(--fg); }
.opt[aria-pressed="true"] { background:var(--bg3); border-color:var(--fg2); }
.opt::before { background:var(--bg2); border-color:var(--mu); }
.opt[aria-pressed="true"]::before { background:var(--fg); border-color:var(--fg); box-shadow:inset 0 0 0 3px var(--bg2); }
.opt em { background:var(--fg); color:var(--bg); }
.label { border-radius:4px; font-family:"JetBrains Mono", monospace; font-size:11px; font-weight:500; padding:2px 7px; border-width:1px; }
.label.fp { color:var(--warn); } .label.ok { color:var(--ok); } .label.wait { color:var(--mu); }
.pill { border-radius:4px; border-color:var(--bd2); color:var(--fg2); font-size:10.5px; font-weight:500; }
.err { color:var(--bad); } .okmsg { color:var(--ok); }

/* workspace bits from the portal */
.facts { border-top:1px solid var(--bd); }
.facts > div { border-color:var(--bd) !important; }
.facts b { font-stretch:normal; font-weight:600; font-size:17px; }
.stages { border-top:1px solid var(--bd); }
.stages li { border-top-color:var(--bd2); }
.stages li.done { border-top-color:var(--fg2); }
.stages li.now::before { background:var(--fg); }
.stages li.now .nm::after { background:var(--fg); color:var(--bg); border-radius:3px; }
.health i { background:var(--ok); } .health.risk i { background:var(--warn); }
.gates li, .ev, .past li, .files li, .plist li, .steps-l li, .req .ri, .cv li, .ck { border-color:var(--bd) !important; }
.gates .dot { border-radius:50%; width:10px; height:10px; }
.gates li.signed_off .dot { background:var(--ok); border-color:var(--ok); }
.gates li.awaiting_review .dot { border-color:var(--warn); background:transparent; }
.gates li.changes_requested .dot { background:var(--bad); border-color:var(--bad); }
.ck .s.pass { color:var(--ok); } .ck .s.fail { color:var(--bad); } .ck .s.cant_verify { color:var(--warn); }
.ck .ev { font-family:"JetBrains Mono", monospace; font-size:12px; color:var(--fg2); }
.viewer { background:var(--bg2) !important; border:1px solid var(--bd); border-radius:8px; }
.tabs button { border-color:var(--bd2); color:var(--fg2); }
.tabs button[aria-selected="true"] { background:var(--fg); color:var(--bg); border-color:var(--fg); }
.mbar { background:var(--bg3); border-radius:3px; overflow:hidden; }
.mbar i { background:var(--fg2); }
.meter.near .mbar i { background:var(--warn); } .meter.full .mbar i { background:var(--bad); }
.meter .mt b { font-family:"JetBrains Mono", monospace; font-weight:500; font-size:12.5px; }
.hist i { background:var(--fg2); }
.navtabs { border-color:var(--bd); }
.navtabs button { color:var(--mu); font-weight:500; font-size:13.5px; }
.navtabs button[aria-selected="true"] { color:var(--fg); border-bottom-color:var(--fg); }
.modal { background:rgba(0,0,0,.55); backdrop-filter:blur(2px); }
.mbox { border-top:1px solid var(--bd) !important; max-width:500px; }
.qtable td { border-color:var(--bd); }
.qtable tr.tot td { border-bottom-color:var(--fg2); }
.state p { color:var(--fg2); }
.ex .im, .disc .im, .photo { background:var(--bg2); }
.lhero .shot { background:var(--bg1); border:1px solid var(--bd); border-radius:8px; }
.lhero .ghostl { color:var(--fg2); }
.flow .n { color:var(--mu); font-family:"JetBrains Mono", monospace; }
.honest dt { color:var(--fg); } .honest dd { color:var(--fg2); }
.diagram svg rect[fill="#f4f4f2"] { fill:var(--bg2); }
.diagram svg rect[fill="#fff"] { fill:var(--bg1); stroke:var(--fg2); }
.diagram svg text { fill:var(--fg); }
.diagram svg text[fill="#5d6066"] { fill:var(--mu); }
.diagram svg line { stroke:var(--mu); }
.diagram svg text[stroke="#fff"] { stroke:var(--bg2); }
