/* Nostra:Biome visual system — from nostrabiome.com
   Warm near-black with a blood-cell undertone, bone-white type, one violet accent, pill buttons, translucent panels,
   hairline rules. Light surfaces (bone) are used for reading-heavy panels; the shell stays dark. */
:root{
  --bg:#17110f;--bg2:#1f1613;--panel:rgba(255,255,255,.055);--panel-solid:#241b18;--glass:rgba(23,17,15,.78);
  --ink:#f3efe8;--ink2:#d9d2c8;--muted:#a79f94;--faint:#6f675f;
  --line:rgba(243,239,232,.14);--line2:rgba(243,239,232,.08);--chip:rgba(243,239,232,.08);--chip2:rgba(243,239,232,.14);
  --accent:#5b4de0;--accent-ink:#fff;--accent-soft:rgba(91,77,224,.22);--accent-text:#9a8ff5;
  --bone:#f3efe8;--bone-ink:#17110f;
  --ok:#6fcf97;--warn:#e6b85c;--bad:#e8705f;--ok-soft:rgba(111,207,151,.16);--warn-soft:rgba(230,184,92,.16);--bad-soft:rgba(232,112,95,.16);
  --bubble-user:#f3efe8;--bubble-user-ink:#17110f;--bubble-engine:rgba(255,255,255,.06);--bubble-engine-ink:#f3efe8;
  --shadow:0 20px 60px rgba(0,0,0,.45);--shadow-sm:0 1px 0 rgba(255,255,255,.04) inset;
  --r:14px;--r-lg:18px;--r-xl:24px;
  --font:"Hanken Grotesk","SF Pro Text",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Inter,Segoe UI,Roboto,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme:light){:root{ /* the brand stays dark; light scheme only softens the chrome slightly */
  --bg:#1a1311;--bg2:#221916;
}}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background-image:radial-gradient(1200px 700px at 85% -10%,rgba(120,46,34,.35),transparent 60%),radial-gradient(900px 600px at -10% 110%,rgba(120,46,34,.22),transparent 60%);background-attachment:fixed}
h1,h2,h3{margin:0;font-weight:500;letter-spacing:-.01em}
h1{font-size:17px}h2{font-size:12px;color:var(--muted);font-weight:500;margin:18px 2px 8px;letter-spacing:.08em;text-transform:uppercase}
.k,small{color:var(--muted);font-size:13px}
a{color:var(--accent-text);text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{background:var(--chip);border:0;border-radius:999px;padding:8px 14px;cursor:pointer;line-height:1.2;transition:background .15s,transform .05s;color:var(--ink)}
button:hover{background:var(--chip2)}button:active{transform:scale(.98)}
button.primary{background:var(--bone);color:var(--bone-ink)}button.primary:hover{background:#fff}
button.accent{background:var(--accent);color:var(--accent-ink)}
button.ghost{background:transparent}button.ghost:hover{background:var(--chip)}
button.icon{width:40px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px}
button.rec{background:var(--bad);color:#fff}
button:disabled{opacity:.45;cursor:default}
button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}
input[type=text],input[type=password],select,textarea{background:var(--chip);border:1px solid var(--line2);border-radius:12px;padding:9px 12px;color:var(--ink)}
input::placeholder,textarea::placeholder{color:var(--faint)}
select{appearance:none;-webkit-appearance:none;padding-right:28px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a79f94' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
select option{color:#17110f}
svg.i{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.eyebrow{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.logo{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:17px;letter-spacing:-.01em;color:var(--ink)}
.logo svg{width:22px;height:22px}
/* chrome */
.bar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--glass);backdrop-filter:saturate(140%) blur(18px);-webkit-backdrop-filter:saturate(140%) blur(18px);border-bottom:1px solid var(--line2);position:relative;z-index:6}
.sp{flex:1}
/* chat */
.msgs{flex:1;overflow:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}
.m{max-width:min(720px,86%);white-space:pre-wrap;line-height:1.5;padding:12px 16px;border-radius:var(--r-lg);font-size:16px}
.m.user{align-self:flex-end;background:var(--bubble-user);color:var(--bubble-user-ink);border-bottom-right-radius:6px}
.m.engine{align-self:flex-start;background:var(--bubble-engine);color:var(--bubble-engine-ink);border:1px solid var(--line2);border-bottom-left-radius:6px}
.m .meta{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:6px;white-space:normal}
.composer{padding:10px 14px 12px;background:var(--glass);backdrop-filter:saturate(140%) blur(18px);-webkit-backdrop-filter:saturate(140%) blur(18px);border-top:1px solid var(--line2)}
.box{display:flex;gap:8px;align-items:flex-end;max-width:900px;margin:0 auto}
textarea.input{flex:1;resize:none;min-height:42px;max-height:180px;border-radius:21px;padding:10px 16px;background:var(--chip);border:1px solid var(--line2)}
.hint{font-size:12px;color:var(--faint);text-align:center;margin-top:6px}
/* approvals (agent actions wait for the person) */
.ask{align-self:flex-start;max-width:min(720px,92%);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 16px}
.ask .q{margin-bottom:8px}.ask .acts{display:flex;gap:8px;flex-wrap:wrap}.ask .acts button{padding:7px 14px}
.ask.decided{opacity:.6}.ask .decided-note{color:var(--muted);font-size:13px;margin-top:6px}
/* cards */
.card{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-lg);padding:14px 16px;margin:8px 0}
.card .row{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:3px 10px;border-radius:999px;background:var(--chip);color:var(--ink2)}
.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.accent{background:var(--accent-soft);color:var(--accent-text)}
.st{font-size:12px;font-weight:500}.st.corroborated,.st.recommended,.st.continue{color:var(--ok)}.st.hypothesis,.st.proposal_to_clinician{color:var(--warn)}.st.falsified,.st.blocked{color:var(--bad)}.st.refined{color:var(--muted)}
.list{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-lg);overflow:hidden}
.list>*{padding:12px 16px;border-top:1px solid var(--line2)}.list>*:first-child{border-top:0}
table{width:100%;border-collapse:collapse;font-size:14px}td,th{padding:9px 6px;border-bottom:1px solid var(--line2);text-align:left;vertical-align:top}th{color:var(--muted);font-weight:500;font-size:12px}
.bar-meter{height:4px;background:var(--chip2);border-radius:2px;overflow:hidden}.bar-meter i{display:block;height:100%;background:var(--ok)}
.oor{color:var(--bad);font-weight:600}
pre{font-family:var(--mono);font-size:12px;white-space:pre-wrap;word-break:break-all;background:var(--chip);padding:10px;border-radius:12px;max-height:280px;overflow:auto;margin:6px 0;color:var(--ink2)}
.nl{font-size:13px;padding:7px 8px;border-radius:10px;cursor:pointer}.nl:hover{background:var(--chip)}.nl b{color:var(--accent-text);font-weight:600}
.cite{font-family:var(--mono);font-size:11px;color:var(--accent-text);cursor:pointer;margin-right:6px}
.seg{display:inline-flex;background:var(--chip);border-radius:999px;padding:3px}.seg button{background:transparent;padding:6px 12px;font-size:13px}.seg button.on{background:var(--bone);color:var(--bone-ink)}
.empty{color:var(--muted);font-size:14px;padding:10px 2px}
/* drawers */
.scrim{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:20;opacity:0;pointer-events:none;transition:opacity .2s}.scrim.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;bottom:0;width:min(400px,92vw);background:var(--bg2);z-index:21;display:flex;flex-direction:column;box-shadow:var(--shadow);transition:transform .25s cubic-bezier(.2,.8,.2,1);border-right:1px solid var(--line2)}
.drawer.left{left:0;transform:translateX(-104%)}.drawer.right{right:0;transform:translateX(104%);border-left:1px solid var(--line2);border-right:0}
.drawer.open{transform:none}
.drawer .head{display:flex;align-items:center;gap:8px;padding:16px 18px 8px}.drawer .head b{font-size:22px;font-weight:500;letter-spacing:-.02em}
.drawer .body{flex:1;overflow:auto;padding:4px 16px 20px}
.nav{display:flex;flex-direction:column;padding:6px 8px}.nav button{display:flex;align-items:center;gap:12px;text-align:left;background:transparent;border-radius:12px;padding:12px 10px;font-size:16px}.nav button:hover{background:var(--chip)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
