:root{--bg: #0b0c0e;--bg-raised: #131519;--bg-input: #171a1f;--border: #23272e;--border-strong: #2f343d;--text: #e8eaed;--text-dim: #9aa1ab;--text-faint: #6b727c;--accent: #7dd3a7;--accent-dim: #2b6a4d;--warn: #e0b354;--danger: #e07a6b;--radius: 10px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif}@media(prefers-color-scheme:light){:root{--bg: #fbfbfa;--bg-raised: #ffffff;--bg-input: #f3f4f6;--border: #e3e5e8;--border-strong: #cfd3d9;--text: #17191c;--text-dim: #5b616b;--text-faint: #878d96;--accent: #1f7a52;--accent-dim: #a9dcc4}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}a{color:var(--accent)}input,textarea,select{font:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:8px 10px}input:focus,textarea:focus,select:focus{outline:1px solid var(--accent-dim);border-color:var(--accent-dim)}.app{display:grid;grid-template-columns:264px 1fr;height:100%}.sidebar{background:var(--bg-raised);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.brand{padding:18px 16px 12px}.brand h1{font-size:15px;margin:0;letter-spacing:-.01em}.brand p{margin:2px 0 0;font-size:11.5px;color:var(--text-faint)}.nav{display:flex;flex-direction:column;gap:2px;padding:8px}.nav button{text-align:left;background:none;border:0;padding:7px 10px;border-radius:8px;color:var(--text-dim);font-size:13.5px}.nav button:hover,.nav button.active{background:var(--bg-input);color:var(--text)}.nav a.nav-link{text-align:left;padding:7px 10px;border-radius:8px;color:var(--text-dim);font-size:13.5px;text-decoration:none}.nav a.nav-link:hover{background:var(--bg-input);color:var(--text)}.sidebar-section{padding:10px 12px;border-top:1px solid var(--border);min-height:0;overflow-y:auto}.sidebar-section h3{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);margin:0 0 8px;font-weight:600}.sidebar-foot{margin-top:auto;padding:12px;border-top:1px solid var(--border);font-size:12px;color:var(--text-faint)}.main{display:flex;flex-direction:column;min-height:0;min-width:0}.topbar{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap}.topbar .grow{flex:1}.pill{font-size:11.5px;color:var(--text-dim);background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;padding:3px 9px;white-space:nowrap}.pill.ephemeral{color:var(--accent);border-color:var(--accent-dim)}.pill.warn{color:var(--warn);border-color:#4a3d1f}.content{flex:1;overflow-y:auto;min-height:0}.thread{max-width:780px;margin:0 auto;padding:24px 20px 40px}.msg{margin-bottom:22px}.msg .role{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint);margin-bottom:6px;display:flex;gap:8px;align-items:center}.msg.user .bubble{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:10px 13px}.bubble p:first-child{margin-top:0}.bubble p:last-child{margin-bottom:0}.bubble pre{margin:10px 0}.code-block{border:1px solid var(--border);border-radius:8px;overflow:hidden;margin:10px 0}.code-head{display:flex;justify-content:space-between;align-items:center;background:var(--bg-input);padding:4px 10px;font-size:11px;color:var(--text-faint);font-family:var(--mono);border-bottom:1px solid var(--border)}.copy-btn{background:none;border:0;color:var(--text-faint);font-size:11px;padding:2px 4px}.copy-btn:hover{color:var(--accent)}.code-block pre{margin:0;padding:10px 12px;overflow-x:auto;background:var(--bg-raised)}code{font-family:var(--mono);font-size:13px}:not(.code-block)>pre{background:var(--bg-raised);padding:10px;border-radius:8px;overflow-x:auto}.reasoning{border-left:2px solid var(--border-strong);padding:2px 0 2px 12px;margin:0 0 10px;color:var(--text-dim);font-size:13.5px}.reasoning summary{cursor:pointer;color:var(--text-faint);font-size:12px}.sources{margin-top:10px;display:flex;flex-direction:column;gap:3px}.sources a{font-size:12.5px;color:var(--text-dim);text-decoration:none}.sources a:hover{color:var(--accent)}.tool-chip{display:inline-flex;gap:6px;align-items:center;font-size:11.5px;color:var(--text-dim);background:var(--bg-raised);border:1px solid var(--border);border-radius:999px;padding:2px 9px;margin:0 6px 6px 0}.composer{border-top:1px solid var(--border);padding:12px 16px 16px;background:var(--bg)}.composer-inner{max-width:780px;margin:0 auto}.composer-row{display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1;resize:none;min-height:46px;max-height:220px;border-radius:var(--radius);padding:12px 13px;line-height:1.5}.btn{background:var(--bg-input);border:1px solid var(--border-strong);border-radius:8px;padding:8px 14px;font-size:13.5px;white-space:nowrap}.btn:hover{border-color:var(--accent-dim)}.btn.primary{background:var(--accent);color:#08130d;border-color:var(--accent);font-weight:600}.btn.primary:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:none;border-color:transparent;color:var(--text-dim);padding:6px 8px}.btn.ghost:hover{color:var(--text);background:var(--bg-input)}.btn.danger{color:var(--danger);border-color:#4a2b26}.btn.small{padding:4px 9px;font-size:12px}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.controls label{font-size:12px;color:var(--text-faint);display:flex;gap:5px;align-items:center}.controls select{padding:4px 8px;font-size:12.5px}.notice{border:1px solid var(--border);background:var(--bg-raised);border-radius:var(--radius);padding:12px 14px;margin:0 0 14px;font-size:13.5px}.notice.warn{border-color:#4a3d1f}.notice.error{border-color:#4a2b26;color:var(--danger)}.notice.accent{border-color:var(--accent-dim)}.notice h4{margin:0 0 6px;font-size:13.5px}.notice p{margin:4px 0;color:var(--text-dim)}.quota{display:flex;flex-direction:column;gap:4px;font-size:11.5px;color:var(--text-faint)}.quota-bar{height:3px;background:var(--bg-input);border-radius:2px;overflow:hidden}.quota-bar span{display:block;height:100%;background:var(--accent)}.quota-bar.low span{background:var(--warn)}.quota-bar.out span{background:var(--danger)}.saved-item{display:flex;justify-content:space-between;gap:6px;align-items:center;padding:6px 8px;border-radius:7px;font-size:13px;color:var(--text-dim);cursor:pointer}.saved-item:hover{background:var(--bg-input);color:var(--text)}.saved-item .title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-item time{font-size:10.5px;color:var(--text-faint)}.panel{max-width:940px;margin:0 auto;padding:24px 20px 60px}.panel h2{font-size:19px;margin:0 0 4px}.panel h3{font-size:14px;margin:26px 0 10px}.panel .sub{color:var(--text-dim);font-size:13.5px;margin:0 0 18px}.card{border:1px solid var(--border);background:var(--bg-raised);border-radius:var(--radius);padding:14px 16px;margin-bottom:12px}.card h4{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:3px 0}.kv span:first-child{color:var(--text-faint)}.kv .mono{font-family:var(--mono);font-size:12px}table{width:100%;border-collapse:collapse;font-size:12.5px}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}th{color:var(--text-faint);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.06em}td.mono,th.mono{font-family:var(--mono);font-size:11.5px}.state{font-family:var(--mono);font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid var(--border-strong);color:var(--text-dim)}.state.ready,.state.active,.state.serving{color:var(--accent);border-color:var(--accent-dim)}.state.failed,.state.lost{color:var(--danger);border-color:#4a2b26}.state.idle,.state.stopped{color:var(--text-faint)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}.modal{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:14px;padding:22px;max-width:520px;width:100%;max-height:85vh;overflow-y:auto}.modal h3{margin:0 0 6px;font-size:16px}.modal p{color:var(--text-dim);font-size:13.5px}.modal .row{display:flex;gap:8px;margin-top:14px;justify-content:flex-end}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:12px;color:var(--text-faint)}.recovery-code{font-family:var(--mono);font-size:12px;background:var(--bg-input);padding:10px;border-radius:8px;word-break:break-all;border:1px solid var(--border);-webkit-user-select:all;user-select:all}.spinner{width:12px;height:12px;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.cursor:after{content:"▍";color:var(--accent);animation:blink 1s steps(2) infinite;margin-left:1px}@keyframes blink{50%{opacity:0}}.empty{color:var(--text-faint);font-size:13px;text-align:center;padding:40px 20px}.popover-anchor{position:relative;display:inline-flex}.popover{position:absolute;top:calc(100% + 8px);right:0;z-index:45;width:320px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:12px;padding:8px;max-height:60vh;overflow-y:auto;box-shadow:0 12px 32px #00000080}.popover h4{margin:4px 6px 8px;font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--text-faint)}.popover .empty{padding:12px 8px}.popover-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 8px;border-radius:8px;background:none;border:1px solid transparent;color:var(--text);font-size:13px}.popover-item:hover{background:var(--bg-input)}.popover-item.active{background:var(--bg-input);border-color:var(--accent-dim)}.popover-item .grow{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popover-item .mono{font-family:var(--mono);font-size:11px;color:var(--text-faint)}.icon-btn{padding:5px 8px;font-size:15px;line-height:1}.icon-btn.on{color:var(--accent);background:var(--bg-input);border-color:var(--accent-dim)}.pill.sandbox{color:var(--accent);border-color:var(--accent-dim)}@media(max-width:860px){.app{grid-template-columns:1fr}.sidebar{display:none}.sidebar.open{display:flex;position:fixed;top:0;right:30%;bottom:0;left:0;z-index:40}.popover{width:min(320px,calc(100vw - 32px))}}.boot{margin-top:10px;display:flex;flex-direction:column;gap:7px}.boot-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.boot-msg{font-size:13px;color:var(--text-dim)}.boot-msg.stalled{color:var(--warn)}.boot-pct{font-size:12px;color:var(--text-faint);flex:none}.boot-bar{height:6px;border-radius:3px;background:var(--bg-input);border:1px solid var(--border);overflow:hidden}.boot-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .6s ease}.boot-fill.stalled{background:var(--warn)}.boot-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;color:var(--text-faint)}.boot-steps{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}.boot-step{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-faint)}.boot-step .boot-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--border-strong)}.boot-step.done{color:var(--text-dim)}.boot-step.done .boot-dot{background:var(--accent-dim)}.boot-step.active{color:var(--text)}.boot-step.active .boot-dot{background:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.boot-step.failed{color:var(--danger)}.boot-step.failed .boot-dot{background:var(--danger)}.boot-step-detail{color:var(--text-faint);font-size:11.5px}.boot-step-time{margin-left:auto;font-size:11px;color:var(--text-faint)}.boot-foot{display:flex;gap:12px;font-size:11px;color:var(--text-faint)}.boot-foot .warn{color:var(--warn)}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!
  Theme: GitHub Dark
  Description: Dark theme as seen on github.com
  Author: github.com
  Maintainer: @Hirse
  Updated: 2021-05-15

  Outdated base version: https://github.com/primer/github-syntax-dark
  Current colors taken from GitHub's CSS
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
