:root{--bg:#080c16;--bg2:#0d1424;--card:#101a2d;--line:rgba(120,170,230,.14);--fg:#e6f0ff;--mut:#8ea3c2;--ac:#4cc3ff;--warn:#ffb020;--bad:#ff5a5a;--ok:#3ddc97;
--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--sar:env(safe-area-inset-right,0px);--tab:56px;--comp:64px;color-scheme:dark}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:var(--bg)}
body{margin:0;min-height:100dvh;background:var(--bg);color:var(--fg);font:15px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif;-webkit-font-smoothing:antialiased;padding:0 var(--sar) 0 var(--sal);overflow-x:hidden}
button,input,textarea{font:inherit;color:inherit}
button,.btn{min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--fg);padding:.6rem 1rem;font-weight:600;font-size:15px;cursor:pointer}
button:active{opacity:.75}button.primary{background:var(--ac);border-color:transparent;color:#04121f;width:100%}
.banners{position:sticky;top:0;z-index:30}.banner{background:var(--bad);color:#000;padding:calc(.6rem + var(--sat)) 1rem .6rem;font-weight:600;font-size:14px}.banner.upd{background:var(--ac);padding:var(--sat) .5rem .5rem}.banner.upd button{width:100%;background:transparent;border:0;color:#04121f}
.hero{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:0 1rem .5rem}
.orb-mount{min-height:44px;font-size:.85rem;max-width:100%}
.pill{display:inline-flex;align-items:center;gap:.5rem;max-width:calc(100vw - 2rem);padding:.4rem .9rem;border-radius:999px;background:rgba(16,26,45,.85);border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--mut);letter-spacing:.01em}
.pill #health{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--mut)}
main{padding:.5rem 1rem calc(var(--tab) + var(--sab) + 1.25rem)}
body:has(#chat:not([hidden])) main{padding-bottom:calc(var(--tab) + var(--sab) + var(--comp) + 1.25rem)}
h2{margin:1.25rem .25rem .5rem;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--mut)}section>h2:first-child{margin-top:.5rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}
.card label{font-size:13px;color:var(--mut);font-weight:600}
input,textarea{width:100%;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:.7rem .85rem;font-size:16px;color:var(--fg);caret-color:var(--ac);outline:none;-webkit-appearance:none;appearance:none}
input:focus,textarea:focus{border-color:rgba(76,195,255,.55)}::placeholder{color:#5d6f8c}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.list>li{margin:0;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:.8rem 1rem}
.list:empty::after{content:"Nothing here yet.";display:block;color:var(--mut);font-size:14px;padding:1rem .25rem}
#transcript{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}#transcript>li{margin:0;max-width:88%;align-self:flex-start;background:var(--card);border:1px solid var(--line);border-radius:16px 16px 16px 6px;padding:.6rem .85rem;word-wrap:break-word;white-space:pre-wrap}
.composer{position:fixed;z-index:20;left:0;right:0;bottom:calc(var(--tab) + var(--sab));display:flex;align-items:flex-end;gap:.4rem;padding:.55rem calc(.75rem + var(--sar)) .55rem calc(.75rem + var(--sal));background:rgba(8,12,22,.92);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line)}
.composer .field{flex:1;min-width:0;display:flex;align-items:flex-end;background:var(--bg2);border:1px solid var(--line);border-radius:22px;padding-left:.9rem}
.composer textarea{border:0;background:transparent;padding:.6rem 0;min-height:42px;max-height:132px;resize:none;border-radius:0;line-height:1.35}
.ibtn{flex:none;display:inline-grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;border:0;background:transparent;color:var(--mut);cursor:pointer}
.composer .field .ibtn{width:42px;height:42px;min-height:42px}.ibtn.send{background:var(--ac);color:#04121f}
.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
nav{position:fixed;z-index:25;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(6,1fr);height:calc(var(--tab) + var(--sab));padding:0 var(--sar) var(--sab) var(--sal);background:rgba(10,15,27,.94);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--line)}
nav button{min-width:0;min-height:var(--tab);margin:0;padding:6px 0 4px;border:0;border-radius:0;background:transparent;color:#6f819f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:600;letter-spacing:.01em}
nav button span{max-width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap}nav .ic{width:24px;height:24px}
body:has(#chat:not([hidden])) nav [data-tab=chat],body:has(#dash:not([hidden])) nav [data-tab=dash],body:has(#appr:not([hidden])) nav [data-tab=appr],body:has(#inbox:not([hidden])) nav [data-tab=inbox],body:has(#ideas:not([hidden])) nav [data-tab=ideas],body:has(#dev:not([hidden])) nav [data-tab=dev]{color:var(--ac)}
.small{font-size:13px;color:var(--mut);margin:1rem .25rem;line-height:1.5}.sr{position:absolute;left:-9999px}li{margin:.4rem 0}
.state-blocked,.state-rejected{color:var(--bad)}.state-awaiting_approval{color:var(--warn)}
.thread{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.bub{margin:0;max-width:86%;padding:.6rem .85rem;border-radius:18px;white-space:pre-wrap;word-wrap:break-word;line-height:1.4}
.bub.me{align-self:flex-end;background:#1b5d86;color:#eaf6ff;border-bottom-right-radius:6px}.bub.jarvis{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:6px}
.bub.sys{align-self:center;background:transparent;color:var(--mut);font-size:13px;text-align:center}.bub.failed{opacity:.75;outline:1px solid var(--bad)}.bub .retry{display:block;margin-top:.4rem;min-height:36px;font-size:13px;background:transparent;color:var(--fg)}
.hint{margin:.25rem .25rem 1rem;padding:.9rem 1rem;border-radius:14px;border:1px dashed var(--line);color:var(--mut);font-size:14px;text-align:center}.hint[hidden]{display:none}
.bshead{display:flex;align-items:center;justify-content:space-between}.bshead h2{margin-top:.5rem}button.link{min-height:36px;border:0;background:transparent;color:var(--ac);padding:.3rem .5rem;font-size:14px}
#ideaf{margin-top:1rem}#ideaf[hidden]{display:none}.pair{display:flex;gap:.5rem}.pair>button{flex:1}.ibtn:disabled,button:disabled{opacity:.4}
body:has(#ideas:not([hidden])) main{padding-bottom:calc(var(--tab) + var(--sab) + var(--comp) + 1.25rem)}
@media (min-height:880px){.hero{padding-top:.5rem}}