:root{--bg:#0b0f14;--panel:#111827;--panel2:#1f2937;--line:#243041;--text:#e5e7eb;--muted:#9ca3af;--accent:#3b82f6;--accent2:#60a5fa;--jeff:#172033;--me:#1d4ed8;--danger:#f87171;--ok:#34d399;--radius:14px;--sat:env(safe-area-inset-top);--sab:env(safe-area-inset-bottom)}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text",Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:13px}.screen{min-height:100%}
button{font:inherit;border:0;border-radius:12px;background:var(--panel2);color:var(--text);padding:12px 16px;min-height:44px;cursor:pointer}button.primary,.composer button{background:var(--accent);color:#fff;font-weight:600}button:disabled{opacity:.5;cursor:default}
input,select,textarea{font:inherit;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:12px 14px;min-height:44px;width:100%;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:none}
a{color:var(--accent2)}h1,h2,h3{margin:0 0 8px;line-height:1.25}h2{font-size:20px}h3{font-size:16px}
#gate{display:flex;align-items:center;justify-content:center;padding:24px}.gate-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:28px 22px;text-align:center}.gate-card img{border-radius:18px;margin-bottom:10px}.gate-card form{display:flex;gap:8px;margin-top:16px}.gate-card input{text-align:center;letter-spacing:.1em}
#app{display:flex;flex-direction:column;height:100dvh}
header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + var(--sat)) 14px 10px;background:var(--panel);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;min-width:0}.brand img{border-radius:10px}.title{font-weight:700}
.seg{display:flex;background:var(--panel2);border-radius:12px;padding:3px;gap:3px}.seg button{background:transparent;padding:8px 12px;min-height:36px;border-radius:10px;font-size:13px;color:var(--muted);white-space:nowrap}.seg button.active{background:var(--accent);color:#fff}
main{flex:1;min-height:0;display:flex;flex-direction:column}.view{flex:1;min-height:0;display:flex;flex-direction:column}.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px;display:flex;flex-direction:column;gap:14px}
.log{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px;display:flex;flex-direction:column;gap:10px}
.bubble{max-width:92%;padding:12px 14px;border-radius:var(--radius);white-space:pre-wrap;word-wrap:break-word}.bubble.jeff{background:var(--jeff);align-self:flex-start;border-bottom-left-radius:4px}.bubble.me{background:var(--me);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}.bubble.err{background:#3b1d1d;color:#fecaca;align-self:center}
.bubble p{margin:0 0 8px}.bubble p:last-child{margin:0}.bubble ul,.bubble ol{margin:4px 0 8px;padding-left:22px}.bubble li{margin:2px 0}.bubble h4{margin:10px 0 4px;font-size:15px;color:var(--accent2)}.bubble code{background:#0b1220;padding:1px 5px;border-radius:5px}
.cite{display:inline-block;background:#0b1220;color:var(--accent2);text-decoration:none;font-size:12px;padding:1px 7px;border-radius:999px;margin:0 2px;vertical-align:middle}
.sources{align-self:flex-start;max-width:92%;display:flex;flex-wrap:wrap;gap:6px}.sources a{display:inline-flex;align-items:center;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 10px;font-size:12px;text-decoration:none;color:var(--text);max-width:100%}.sources a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.status{align-self:flex-start;color:var(--muted);font-size:12px;padding:0 6px}.typing::after{content:"";display:inline-block;width:8px;height:8px;margin-left:6px;border-radius:50%;background:var(--accent2);animation:blink 1s infinite}@keyframes blink{50%{opacity:.2}}
.chips{display:flex;gap:8px;overflow-x:auto;padding:0 14px 8px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips button{white-space:nowrap;font-size:13px;padding:8px 12px;min-height:36px;background:var(--panel);border:1px solid var(--line)}
.composer{display:flex;gap:8px;padding:10px 14px calc(10px + var(--sab));background:var(--panel);border-top:1px solid var(--line)}.composer textarea{flex:1;max-height:140px}.composer button{flex:0 0 auto}.composer.inline{padding:0;background:transparent;border:0}.composer.inline input{flex:1}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.form{display:flex;flex-direction:column;gap:12px}.form label,.label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}.row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.toggles{display:flex;flex-wrap:wrap;gap:8px}.toggles button{padding:8px 12px;min-height:38px;font-size:14px;background:var(--panel2);border:1px solid var(--line)}.toggles button.on{background:var(--accent);border-color:var(--accent);color:#fff}
.day{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.day h3{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.day h3 small{color:var(--muted);font-weight:400;font-size:13px}.ex{padding:10px 0;border-top:1px solid var(--line)}.ex:first-of-type{border-top:0}.ex .name{font-weight:600}.ex .sr{color:var(--accent2);font-weight:600;margin-left:6px}.ex .meta{color:var(--muted);font-size:13px}.ex .note{font-size:14px;color:#cbd5e1;margin-top:2px}.ex a{font-size:12px}
.plan-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.plan-head .actions{display:flex;gap:8px;flex-wrap:wrap}.plan-head .actions a,.plan-head .actions button{font-size:13px;padding:8px 12px;min-height:36px;border-radius:10px;background:var(--panel2);text-decoration:none;color:var(--text)}
.block{white-space:pre-wrap;background:var(--panel2);border-radius:10px;padding:10px 12px;font-size:14px}
.list{display:flex;flex-direction:column;gap:8px}.item{padding:10px 12px;background:var(--panel2);border-radius:10px;cursor:pointer}.item .t{font-weight:600}.item .s{color:var(--muted);font-size:12px}.item .x{font-size:14px;color:#cbd5e1;margin-top:4px}
.md{margin-top:12px;background:var(--panel2);border-radius:10px;padding:12px 14px;font-size:15px}.md h1{font-size:20px}.md h2{font-size:17px;margin-top:14px}.md h3{font-size:15px;margin-top:10px}.md ul,.md ol{padding-left:22px}.md p{margin:6px 0}
.tabs{display:flex;background:var(--panel);border-top:1px solid var(--line);padding:6px 8px calc(6px + var(--sab))}.tabs button{flex:1;background:transparent;color:var(--muted);font-weight:600;border-radius:10px}.tabs button.active{color:#fff;background:var(--panel2)}
.footnote{text-align:center;padding:0 10px 20px}.ok{color:var(--ok)}.danger{color:var(--danger)}
@media(min-width:760px){#app{max-width:860px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}.bubble{max-width:80%}}
