:root{color-scheme:dark;--bg: #0b0b0c;--surface: #161617;--surface-2: #1d1d1f;--border: #2a2a2d;--text: #ededed;--muted: #888;--accent: #fafafa;--accent-fg: #0b0b0c;--danger: #ff6b6b;--radius: 10px;--max-width: 760px;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit;color:inherit;background:transparent;border:none;outline:none}button{cursor:pointer}textarea,input{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:.55rem .75rem;width:100%;resize:none;font-size:16px}@media(min-width:900px){textarea,input{font-size:.9rem}}textarea:focus,input:focus{border-color:#555}.btn{border-radius:999px;padding:.5rem 1rem;font-size:.875rem;border:1px solid transparent;transition:opacity .15s}.btn.primary{background:var(--accent);color:var(--accent-fg);font-weight:500}.btn.primary:disabled{opacity:.35;cursor:not-allowed}.btn.ghost{border-color:var(--border);color:var(--muted)}.btn.full{width:100%}.icon-btn{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;color:var(--text);font-size:1.1rem}.icon-btn:hover{background:var(--surface-2)}.app{display:flex;height:100svh;height:100dvh;width:100%;position:relative;overflow:hidden}.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.topbar{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border);background:var(--bg)}.topbar-title{flex:1;font-size:.95rem;font-weight:500;margin:0;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.messages{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-padding-bottom:1rem;padding:1.25rem 1rem .5rem;display:flex;flex-direction:column;gap:.35rem}.messages>*{width:100%;max-width:var(--max-width);margin:0 auto}.welcome{margin-top:15vh;text-align:center;color:var(--muted)}.welcome h2{color:var(--text);font-weight:500;margin:0 0 .25rem}.welcome p{margin:0;font-size:.875rem}.msg-row{display:flex;flex-direction:column;padding:.15rem 0}.msg-row.user{align-items:flex-end}.msg-row.assistant{align-items:stretch}.msg-row.user+.msg-row.assistant,.msg-row.assistant+.msg-row.user{margin-top:.4rem}.msg{white-space:pre-wrap;word-wrap:break-word;overflow-wrap:anywhere;line-height:1.55}.msg.user{background:var(--surface-2);padding:.55rem .9rem;border-radius:18px;max-width:78%}.msg.assistant{background:transparent;padding:0;max-width:100%;white-space:normal}.markdown{display:flow-root;line-height:1.6}.markdown>*:first-child{margin-top:0}.markdown>*:last-child{margin-bottom:0}.markdown p{margin:.5rem 0;white-space:pre-wrap;overflow-wrap:anywhere}.markdown strong{color:var(--text);font-weight:600}.markdown em{font-style:italic}.markdown del{color:var(--muted)}.markdown a{color:#8ab4ff;text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,#8ab4ff 50%,transparent)}.markdown a:hover{text-decoration-color:#8ab4ff}.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{margin:1rem 0 .45rem;font-weight:600;line-height:1.3;color:var(--text)}.markdown h1{font-size:1.3rem}.markdown h2{font-size:1.18rem}.markdown h3{font-size:1.05rem}.markdown h4{font-size:.98rem}.markdown h5,.markdown h6{font-size:.92rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.markdown ul,.markdown ol{margin:.45rem 0;padding-left:1.4rem}.markdown ul{list-style:disc}.markdown ol{list-style:decimal}.markdown li{margin:.18rem 0;padding-left:.15rem}.markdown li>p{margin:.15rem 0}.markdown li::marker{color:var(--muted)}.markdown ul ul,.markdown ul ol,.markdown ol ul,.markdown ol ol{margin:.15rem 0}.markdown blockquote{margin:.6rem 0;padding:.1rem 0 .1rem .85rem;border-left:2px solid color-mix(in srgb,var(--muted) 45%,transparent);color:color-mix(in srgb,var(--text) 80%,var(--muted))}.markdown blockquote>*:first-child{margin-top:0}.markdown blockquote>*:last-child{margin-bottom:0}.markdown code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.88em;background:var(--surface-2);border:1px solid var(--border);padding:.05em .35em;border-radius:5px;word-break:break-word}.markdown pre{margin:.6rem 0;padding:.75rem .85rem;background:var(--surface-2);border:1px solid var(--border);border-radius:10px;overflow-x:auto;line-height:1.5}.markdown pre code{background:transparent;border:none;padding:0;font-size:.85em;white-space:pre}.markdown hr{border:none;border-top:1px solid var(--border);margin:1rem 0}.markdown table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;font-size:.9em;margin:.6rem 0}.markdown th,.markdown td{border:1px solid var(--border);padding:.4rem .6rem;text-align:left}.markdown th{background:var(--surface-2);font-weight:600}.markdown input[type=checkbox]{width:auto;margin-right:.4rem;accent-color:var(--accent)}.markdown li:has(>input[type=checkbox]){list-style:none;margin-left:-1.1rem}.thinking{display:flex;flex-direction:column;gap:.3rem;padding:.2rem 0}.thinking-row{display:flex;align-items:center;gap:.6rem;font-size:.82rem;color:var(--muted)}.dot{width:6px;height:6px;border-radius:50%;background:var(--muted);flex-shrink:0}.thinking-row.pending .dot{background:var(--text);animation:pulse 1.4s ease-in-out infinite}.thinking-row.done .dot{background:color-mix(in srgb,var(--text) 40%,transparent)}.thinking-label{white-space:pre-wrap;overflow-wrap:anywhere}.thinking-result{color:color-mix(in srgb,var(--muted) 70%,transparent)}.thought{font-size:.82rem;color:var(--muted)}.thought>summary{display:flex;align-items:center;gap:.6rem;cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;font-weight:500}.thought>summary::-webkit-details-marker{display:none}.thought.active>summary .dot{background:var(--text);animation:pulse 1.4s ease-in-out infinite}.thought:not(.active)>summary .dot{background:color-mix(in srgb,var(--text) 35%,transparent)}.thought[open]>summary{margin-bottom:.35rem}.thought-body{margin-left:2px;padding:.05rem 0 .1rem .85rem;border-left:2px solid color-mix(in srgb,var(--muted) 30%,transparent);white-space:pre-wrap;font-style:italic;line-height:1.55;color:color-mix(in srgb,var(--text) 65%,var(--muted));overflow-wrap:anywhere}.msg.assistant.streaming .markdown>*:last-child:after,.msg.assistant.streaming:not(:has(.markdown)):after{content:"";display:inline-block;width:7px;height:1em;vertical-align:-.15em;margin-left:3px;background:color-mix(in srgb,var(--text) 60%,transparent);border-radius:1px;animation:blink 1.05s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}@keyframes blink{0%,45%{opacity:1}50%,95%{opacity:0}to{opacity:1}}.error{color:var(--danger);font-size:.85rem;padding:.5rem .75rem;border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:8px;background:color-mix(in srgb,var(--danger) 8%,transparent)}.composer{display:flex;align-items:flex-end;gap:.5rem;padding:.5rem 1rem calc(1rem + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 65%,transparent);width:100%;max-width:calc(var(--max-width) + 2rem);margin:0 auto;flex-shrink:0}.composer textarea{flex:1;max-height:200px;border-radius:22px;padding:.7rem 1rem;background:var(--surface);border-color:var(--border);font-size:16px;line-height:1.4;transition:border-color .15s;overflow-y:hidden}.composer textarea::placeholder{color:color-mix(in srgb,var(--muted) 80%,transparent)}.composer .btn{height:44px;width:44px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:1.1rem;flex-shrink:0;-webkit-tap-highlight-color:transparent}@media(min-width:900px){.composer textarea{font-size:.95rem}}.drawer{position:fixed;top:0;bottom:0;width:min(82vw,320px);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20;transform:translate(-100%);transition:transform .2s ease}.drawer.open{transform:translate(0)}.drawer-head{padding:.75rem;border-bottom:1px solid var(--border)}.drawer-head h3{margin:0;font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:500}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:15}.chat-list{flex:1;overflow-y:auto;padding:.5rem}.chat-item{display:flex;align-items:center;border-radius:8px;padding:.2rem .35rem;margin-bottom:.1rem}.chat-item:hover,.chat-item.active{background:var(--surface-2)}.chat-item input{width:100%;font-size:16px;padding:.35rem .5rem}@media(min-width:900px){.chat-item input{font-size:.875rem}}.chat-title{flex:1;text-align:left;padding:.45rem .5rem;font-size:.875rem;border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-actions{display:flex;opacity:0;transition:opacity .15s}.chat-item:hover .chat-item-actions,.chat-item.active .chat-item-actions{opacity:1}.chat-item-actions button{width:28px;height:28px;border-radius:6px;color:var(--muted);font-size:.85rem}.chat-item-actions button:hover{background:var(--bg);color:var(--text)}.empty{color:var(--muted);font-size:.85rem;padding:.75rem .5rem;text-align:center}.auth-loading{display:grid;place-items:center;height:100dvh;color:var(--muted);font-size:.9rem}.login-shell{display:grid;place-items:center;height:100dvh;padding:1rem}.login-card{width:100%;max-width:340px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.5rem 1.25rem;display:flex;flex-direction:column;gap:.9rem}.login-card h1{margin:0;font-size:1.15rem;font-weight:500}.login-sub{margin:-.4rem 0 .4rem;color:var(--muted);font-size:.85rem}.login-field{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--muted)}.login-field span{padding-left:.15rem}.drawer-foot{border-top:1px solid var(--border);padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.drawer-user-row{display:flex;align-items:center;gap:.25rem;min-width:0}.drawer-user{flex:1;min-width:0;font-size:.78rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 .15rem}.drawer-settings{flex-shrink:0;width:32px;height:32px;font-size:1rem;color:var(--muted)}.drawer-settings:hover{color:var(--text)}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:30;display:grid;place-items:center;padding:1rem}.modal{width:100%;max-width:460px;max-height:calc(100dvh - 2rem);background:var(--surface);border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 48px #00000080}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:.85rem .85rem .85rem 1.1rem;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;font-size:1rem;font-weight:500}.modal-body{display:flex;flex-direction:column;gap:1.1rem;padding:1.1rem;overflow-y:auto}.modal-loading{align-items:center;justify-content:center;color:var(--muted);min-height:80px}.setting-group{display:flex;flex-direction:column;gap:.45rem}.setting-label{font-size:.82rem;letter-spacing:.02em;color:var(--muted);font-weight:500}.setting-help{margin:.1rem 0 0;font-size:.78rem;color:var(--muted);line-height:1.45}.setting-help.over-limit{color:var(--danger)}.setting-label-row{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.link-btn{font-size:.75rem;color:var(--muted);background:transparent;padding:0;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{color:var(--text)}.setting-textarea{width:100%;min-height:8.5rem;padding:.65rem .75rem;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:16px;line-height:1.5;resize:vertical}@media(min-width:900px){.setting-textarea{font-size:.88rem}}.setting-textarea:focus{border-color:#444}.setting-warn{margin:0;font-size:.78rem;color:#f0b150}.setting-error{margin:0;font-size:.82rem;color:var(--danger)}.segmented{display:flex;gap:.25rem;padding:.2rem;background:var(--surface-2);border:1px solid var(--border);border-radius:10px}.seg{flex:1;padding:.45rem .6rem;border-radius:7px;font-size:.82rem;color:var(--muted);background:transparent;transition:background .15s,color .15s}.seg:hover{color:var(--text)}.seg.active{background:var(--bg);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}.modal-body select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--surface-2);border-radius:8px;padding:.55rem .75rem;width:100%;color:var(--text)}.modal-body input[type=range]{width:100%;accent-color:var(--accent);padding:0;border:none;background:transparent}.modal-body input[type=number]{width:100%;font-variant-numeric:tabular-nums}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--border)}.modal-foot-actions{display:flex;gap:.5rem}.setting-saved{font-size:.78rem;color:var(--muted);min-height:1em}@media(min-width:900px){.drawer{position:relative;transform:none!important;width:260px;transition:none}.scrim,.icon-btn[aria-label=Chats]{display:none}}
