:root{--brand-red: #b62121;--deep-red: #8e1919;--accent-tint: rgba(182, 33, 33, .1);--ink: #202020;--paper: #f1f1f1;--muted: #5a5a5a;--faint: #8a8a8a;--line: #e5e5e5;--line-strong: #d6d6d6;--surface-alt: #f5f5f6;--white: #ffffff;--black: #000000;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-card: 0 1px 3px rgba(20, 30, 45, .08)}:root{--bg: #ffffff;--surface: #ffffff;--surface-alt: #f5f5f6;--border: #e5e5e5;--border-strong: #d6d6d6;--text: #0a0a0a;--text-muted: #6b7280;--text-faint: #9aa1ad;--accent: #b62121;--accent-hover: #b5121e;--accent-soft: rgba(225, 29, 42, .1);--accent-tint: #fce6e8;--danger: #b5121e;--danger-soft: #fce6e8;--ok: #1f8e4a;--warn: #b57500;--radius: 8px;--shadow: 0 1px 3px rgba(20, 30, 45, .08);font-synthesis:none}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{font-weight:600;margin:0;letter-spacing:-.01em}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}button{font:inherit;cursor:pointer;border-radius:6px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);padding:7px 14px;transition:background .12s ease,border-color .12s ease}button:hover:not(:disabled){background:var(--surface-alt)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger{color:var(--danger);border-color:var(--border-strong)}button.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}button.ghost{border-color:transparent;background:transparent}button.ghost:hover:not(:disabled){background:var(--surface-alt)}button.small{padding:4px 9px;font-size:12.5px}input,textarea,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:7px 10px;width:100%}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{display:block;font-size:12.5px;font-weight:500;color:var(--text-muted);margin-bottom:4px}.field{margin-bottom:12px}.center-screen{min-height:100%;display:flex;align-items:center;justify-content:center;padding:24px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.app-shell{display:grid;grid-template-columns:264px 1fr;height:100%}.sidebar{background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.sidebar-head{padding:16px;border-bottom:1px solid var(--border)}.brand{font-size:15px;font-weight:600;letter-spacing:.04em}.brand-sub{font-size:11.5px;color:var(--text-faint);letter-spacing:.02em}.nav{padding:10px 8px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:2px}.nav a{padding:7px 10px;border-radius:6px;color:var(--text-muted);font-weight:500}.nav a:hover{background:var(--surface-alt);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent)}.chat-list{flex:1;overflow-y:auto;padding:8px;min-height:0}.chat-list-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 8px}.chat-list-head h3{color:var(--text-faint);text-transform:uppercase;font-size:11px;letter-spacing:.06em}.conn-list{flex:1;overflow-y:auto;padding:8px;min-height:0}.conn-list-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 8px;gap:8px}.conn-list-head h3{color:var(--text-faint);text-transform:uppercase;font-size:11px;letter-spacing:.06em}.conn-group{margin-bottom:6px}.conn-row{display:flex;align-items:center;gap:4px;border-radius:6px}.conn-row>a{flex:1;padding:8px 10px;color:var(--text);font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conn-row>a:hover{text-decoration:none}.conn-row:hover{background:var(--surface-alt)}.conn-row.active{background:var(--accent-soft)}.conn-row.active>a{color:var(--accent)}.conn-status-dot{width:7px;height:7px;border-radius:999px;flex:none;background:var(--text-faint)}.conn-status-dot.ok{background:var(--ok)}.conn-status-dot.bad{background:var(--danger)}.conn-status-dot.warn{background:var(--warn)}.conn-children{padding:2px 0 4px 10px;display:flex;flex-direction:column;gap:1px}.conn-children .chat-row>a{padding:6px 10px;font-weight:400;font-size:12.5px}.conn-children .conn-new{text-align:left;width:100%;font-size:12.5px;color:var(--accent);border:none;background:transparent;padding:6px 10px;border-radius:6px}.conn-children .conn-new:hover:not(:disabled){background:var(--accent-soft)}.conn-children .conn-empty{padding:4px 10px;font-size:12px;color:var(--text-faint)}.add-conn-btn{width:100%;margin:4px 0 2px}.chat-row{display:flex;align-items:center;gap:4px;border-radius:6px}.chat-row:hover{background:var(--surface-alt)}.chat-row>a{flex:1;padding:8px 10px;color:var(--text);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-row>a:hover{text-decoration:none}.chat-row.active{background:var(--accent-soft)}.chat-row.active>a{color:var(--accent)}.chat-row .del{visibility:hidden;margin-right:4px}.chat-row:hover .del{visibility:visible}.sidebar-foot{padding:12px 16px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;font-size:12.5px;color:var(--text-muted)}.main{min-width:0;min-height:0;display:flex;flex-direction:column}.page{padding:28px 32px;overflow-y:auto;max-width:860px;width:100%}.page-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:18px}.page-head p{color:var(--text-muted);margin:4px 0 0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.row{display:flex;gap:8px;align-items:center}.spread{display:flex;gap:8px;align-items:center;justify-content:space-between}.stack{display:flex;flex-direction:column;gap:12px}.banner{border-radius:6px;padding:10px 12px;font-size:13px}.banner.error{background:var(--danger-soft);color:var(--danger);border:1px solid #f3c4c8}.banner.info{background:var(--accent-tint);color:var(--accent-hover);border:1px solid #f3c4c8}.pill{display:inline-block;font-size:11.5px;font-weight:500;padding:2px 8px;border-radius:999px;background:var(--surface-alt);color:var(--text-muted)}.pill.ok{background:#e3f2e8;color:var(--ok)}.pill.warn{background:#f6ecd4;color:var(--warn)}.pill.bad{background:var(--danger-soft);color:var(--danger)}.list-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:14px 16px}.empty{text-align:center;color:var(--text-faint);padding:40px 20px;border:1px dashed var(--border-strong);border-radius:var(--radius)}.spinner-screen{min-height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-faint)}.login-card{width:380px;max-width:100%;padding:32px;text-align:center}.login-logo{display:block;margin:0 auto 12px;height:72px;width:auto}.login-card h1{margin-bottom:4px}.login-card .provider-list{text-align:left}.provider-list{display:flex;flex-direction:column;gap:10px;margin-top:24px}.oidc-button{width:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 16px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;transition:border-color .15s ease,background .15s ease}.oidc-button:hover:not(:disabled){background:var(--surface-alt);border-color:var(--text-muted)}.oidc-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.oidc-button-label{font-size:15px;color:var(--text-muted)}.oidc-brand{font-weight:600;letter-spacing:.02em;color:var(--text)}.oidc-brand-ohd{color:var(--text)}.oidc-brand-identity{color:var(--accent)}.oidc-issuer{font-size:11.5px;color:var(--text-faint)}.login-dev-bypass{margin-top:28px;text-align:right}.login-dev-bypass a{font-size:12px;color:var(--text-faint);text-decoration:none}.login-dev-bypass a:hover{color:var(--text-muted);text-decoration:underline}.chat-view{display:flex;flex-direction:column;height:100%;min-height:0}.chat-header{border-bottom:1px solid var(--border);padding:14px 24px;display:flex;align-items:center;justify-content:space-between;background:var(--surface)}.chat-header .title{font-weight:600}.chat-scroll{flex:1;overflow-y:auto;padding:24px;min-height:0}.messages{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:14px}.msg{display:flex}.msg.user{justify-content:flex-end}.msg.assistant,.msg.system{justify-content:flex-start}.bubble{max-width:78%;padding:10px 14px;border-radius:12px;white-space:pre-wrap;word-wrap:break-word}.msg.user .bubble{background:var(--accent);color:#fff;border-bottom-right-radius:3px}.msg.assistant .bubble{background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:3px}.msg.system .bubble{background:var(--surface-alt);color:var(--text-muted);font-size:13px}.tool-status{max-width:760px;margin:0 auto;padding-top:10px;font-size:12.5px;color:var(--text-faint);font-style:italic}.composer{border-top:1px solid var(--border);background:var(--surface);padding:14px 24px}.composer-inner{max-width:760px;margin:0 auto;display:flex;gap:8px;align-items:flex-end}.composer textarea{resize:none;max-height:160px}.newchat-form{max-width:480px;margin:48px auto}.md{white-space:normal;line-height:1.5}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .6em}.md ul,.md ol{margin:.4em 0 .6em;padding-left:1.3em}.md li{margin:.15em 0}.md li>p{margin:0}.md h1,.md h2,.md h3,.md h4{margin:.8em 0 .4em;line-height:1.25;font-weight:600}.md h1{font-size:1.3em}.md h2{font-size:1.15em}.md h3{font-size:1.05em}.md h4{font-size:1em}.md a{color:var(--accent);text-decoration:underline}.md strong{font-weight:600}.md code{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--surface-alt);border-radius:4px;padding:.1em .35em}.md pre{margin:.5em 0;padding:10px 12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;overflow-x:auto}.md pre code{background:none;padding:0;font-size:.85em}.md blockquote{margin:.5em 0;padding:.1em 0 .1em .9em;border-left:3px solid var(--border);color:var(--text-muted)}.md table{border-collapse:collapse;margin:.5em 0;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:5px 9px;text-align:left}.md th{background:var(--surface-alt);font-weight:600}.md hr{border:none;border-top:1px solid var(--border);margin:.8em 0}
