:root{color-scheme:light;--bg:#eef1e8;--bg-accent:#dce8d5;--surface:rgba(255,255,255,0.82);--surface-strong:rgba(255,255,255,0.94);--border:rgba(35,52,39,0.12);--border-strong:rgba(35,52,39,0.24);--text:#183222;--text-soft:#53715f;--primary:#145c3a;--primary-strong:#0e442b;--danger:#9a3b28;--danger-soft:rgba(154,59,40,0.12);--shadow:0 24px 60px rgba(28,46,33,0.08);--radius-lg:28px;--radius-md:18px;--radius-sm:12px;--page-width:1600px}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:radial-gradient(circle at top left,rgba(84,151,112,.22),transparent 28%),radial-gradient(circle at bottom right,rgba(205,165,92,.2),transparent 26%),linear-gradient(180deg,#f7f8f3 0,var(--bg) 100%);color:var(--text);font-family:IBM Plex Sans,Avenir Next,Segoe UI,sans-serif}body{min-height:100vh}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.centered-screen,.login-screen{min-height:100vh;display:grid;place-items:center;padding:32px}.login-screen{grid-template-columns:minmax(280px,1.1fr) minmax(340px,480px);gap:32px;max-width:1180px;margin:0 auto}.login-brand{padding:24px}.login-brand h1{margin:12px 0 16px;font-size:clamp(2.5rem,4vw,4.5rem);line-height:.95;letter-spacing:-.04em}.login-brand p{max-width:42ch;color:var(--text-soft);font-size:1.05rem}.eyebrow{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:6px 12px;background:rgba(20,92,58,.08);color:var(--primary);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow)}.boot-panel,.login-panel{width:min(100%,480px);padding:28px}.boot-panel h1,.panel-header h2{margin:14px 0 8px;font-size:1.7rem;letter-spacing:-.03em}.boot-panel p,.muted-copy,.panel-header p{color:var(--text-soft)}.stack-form{display:grid;grid-gap:16px;gap:16px}.field{display:grid;grid-gap:8px;gap:8px;font-weight:600}.field span{font-size:.95rem}.chat-composer textarea,.field input{width:100%;border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;background:rgba(255,255,255,.92);color:var(--text);transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.chat-composer textarea:focus,.field input:focus{outline:none;border-color:rgba(20,92,58,.35);box-shadow:0 0 0 4px rgba(20,92,58,.08)}.chat-select-button,.chat-sidebar-backdrop,.danger-button,.ghost-button,.mobile-sidebar-toggle,.primary-button{border:0;transition:transform .14s ease,opacity .14s ease,background .14s ease}.primary-button{padding:12px 18px;background:linear-gradient(135deg,var(--primary) 0,#20724a 100%);color:white;white-space:nowrap}.ghost-button,.primary-button{border-radius:999px;font-weight:700}.ghost-button{padding:10px 14px;background:rgba(20,92,58,.08);color:var(--primary)}.danger-button{display:grid;place-items:center;width:36px;min-width:36px;height:36px;border-radius:999px;background:transparent;color:var(--danger);font-size:1.3rem}.mobile-sidebar-toggle{display:none;border-radius:999px;padding:9px 12px;background:rgba(20,92,58,.08);color:var(--primary);font-size:.82rem;font-weight:700}.chat-select-button:hover,.danger-button:hover,.ghost-button:hover,.mobile-sidebar-toggle:hover,.primary-button:hover{transform:translateY(-1px)}.chat-select-button:disabled,.danger-button:disabled,.ghost-button:disabled,.mobile-sidebar-toggle:disabled,.primary-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.form-error,.inline-error{margin:0;border-radius:var(--radius-sm);padding:10px 12px;background:rgba(154,59,40,.08);color:var(--danger)}.chat-layout{position:relative;display:grid;grid-template-columns:340px minmax(0,1fr);grid-gap:20px;gap:20px;height:100vh;height:100svh;max-height:100vh;max-height:100svh;max-width:var(--page-width);margin:0 auto;padding:18px;overflow:hidden}.chat-sidebar-backdrop{display:none}.chat-main,.chat-sidebar{min-height:0;height:100%;border:1px solid var(--border);border-radius:30px;background:var(--surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow)}.chat-sidebar{display:flex;flex-direction:column;padding:20px;gap:18px;overflow:hidden}.chat-header,.chat-list-item,.composer-actions,.message-header,.sidebar-top,.user-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.chat-header h2,.sidebar-top h1{margin:10px 0 0;font-size:1.6rem;letter-spacing:-.04em}.user-card{border-radius:var(--radius-md);padding:14px;background:rgba(20,92,58,.06)}.user-card p{margin:4px 0 0;color:var(--text-soft);font-size:.92rem}.chat-list{flex:1 1;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto;padding-right:4px}.user-card{margin-top:auto}.chat-list-item{border:1px solid var(--border);border-radius:var(--radius-md);padding:6px;background:rgba(255,255,255,.66)}.chat-list-item-active{border-color:rgba(20,92,58,.22);background:rgba(20,92,58,.09)}.chat-select-button{flex:1 1;display:grid;grid-gap:4px;gap:4px;justify-items:start;border-radius:14px;padding:10px 12px;background:transparent;color:inherit;text-align:left}.chat-select-button span{color:var(--text-soft);font-size:.83rem}.conversation-empty,.empty-card{display:grid;grid-gap:10px;gap:10px;justify-items:start;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:22px;background:rgba(255,255,255,.56)}.conversation-empty h3,.empty-card h2{margin:0;font-size:1.15rem}.conversation-empty p,.empty-card p{margin:0;color:var(--text-soft)}.chat-main{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.chat-header{padding:22px 24px 18px;border-bottom:1px solid var(--border)}.chat-header>div{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.chat-thread{min-height:0;overflow:auto;padding:24px;display:grid;align-content:start;grid-gap:16px;gap:16px}.thread-end-anchor{width:1px;height:1px}.message-card{max-width:min(820px,100%);border:1px solid var(--border);border-radius:22px;padding:18px 18px 16px;background:rgba(255,255,255,.88)}.message-card-user{justify-self:end;background:linear-gradient(135deg,rgba(20,92,58,.1),rgba(20,92,58,.04))}.message-card-assistant{justify-self:start}.message-header{margin-bottom:12px;color:var(--text-soft);font-size:.82rem}.message-content{word-break:break-word;line-height:1.55}.message-markdown>:first-child{margin-top:0}.message-markdown>:last-child{margin-bottom:0}.message-markdown blockquote,.message-markdown ol,.message-markdown p,.message-markdown pre,.message-markdown table,.message-markdown ul{margin:0 0 .95rem}.message-markdown h1,.message-markdown h2,.message-markdown h3,.message-markdown h4{margin:1.1rem 0 .7rem;line-height:1.2;letter-spacing:-.03em}.message-markdown h1{font-size:1.5rem}.message-markdown h2{font-size:1.28rem}.message-markdown h3{font-size:1.12rem}.message-markdown ol,.message-markdown ul{padding-left:1.3rem}.message-markdown li+li{margin-top:.35rem}.message-markdown blockquote{border-left:3px solid rgba(20,92,58,.24);padding-left:.9rem;color:var(--text-soft)}.message-markdown hr{border:0;border-top:1px solid var(--border);margin:1rem 0}.message-markdown a{color:var(--primary);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.12em}.message-markdown strong{font-weight:700}.message-markdown em{font-style:italic}.markdown-code{border-radius:8px;padding:.14rem .42rem;background:rgba(24,50,34,.08);font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.92em}.code-block-shell{overflow:auto;border-radius:16px;padding:14px 16px;background:#18271d;color:#eff5ef}.code-block-shell .markdown-code{display:block;padding:0;background:transparent;color:inherit;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace;font-size:.92rem;line-height:1.6}.message-markdown table{width:100%;border-collapse:collapse;font-size:.94rem}.message-markdown td,.message-markdown th{border:1px solid var(--border);padding:.58rem .68rem;text-align:left;vertical-align:top}.message-markdown th{background:rgba(20,92,58,.08);font-weight:700}.message-progress{display:inline-flex;align-items:center;gap:10px;margin-top:14px;color:var(--text-soft);font-size:.92rem}.status-dot{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,#1e7b50,#d49d43);animation:pulse 1.1s ease-in-out infinite}.progress-trace{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.progress-chip{border-radius:999px;padding:6px 10px;background:rgba(20,92,58,.08);color:var(--primary);font-size:.82rem;font-weight:600}.chat-composer-shell{position:relative;z-index:2;flex-shrink:0;padding:18px 24px 24px;border-top:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.72));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.chat-composer{display:grid;grid-gap:12px;gap:12px}.chat-composer textarea{min-height:110px;resize:vertical}@keyframes pulse{0%,to{transform:scale(.85);opacity:.72}50%{transform:scale(1);opacity:1}}@media (max-width:1080px){.chat-layout,.login-screen{grid-template-columns:1fr}.chat-layout{height:100vh;height:100svh;max-height:100vh;max-height:100svh;overflow:hidden}.chat-main,.chat-sidebar{min-height:0;height:100%}.chat-sidebar{position:absolute;top:14px;left:14px;bottom:14px;width:min(360px,calc(100vw - 28px));max-height:none;z-index:20;transform:translateX(calc(-100% - 18px));transition:transform .18s ease}.chat-sidebar-open{transform:translateX(0)}.chat-sidebar-backdrop{display:block;position:absolute;inset:0;z-index:10;background:rgba(12,24,18,0);pointer-events:none}.chat-sidebar-backdrop-visible{background:rgba(12,24,18,.28);pointer-events:auto}.chat-thread{min-height:0;max-height:none}.mobile-sidebar-toggle{display:inline-flex;align-items:center;justify-content:center}}@media (max-width:720px){.centered-screen,.chat-layout,.login-screen{padding:14px}.chat-composer-shell,.chat-header,.chat-sidebar,.chat-thread{padding-left:16px;padding-right:16px}.chat-header,.composer-actions,.sidebar-top{align-items:flex-start;flex-direction:column}.chat-header{gap:12px}.chat-header h2{font-size:1.28rem}.chat-thread{padding-top:18px;padding-bottom:18px}.chat-composer-shell{padding-top:14px;padding-bottom:max(16px,env(safe-area-inset-bottom))}.chat-composer textarea{min-height:92px}.composer-actions{gap:10px}.composer-actions .muted-copy{font-size:.88rem}.message-card{max-width:100%;border-radius:18px;padding:14px 14px 12px}.message-header{margin-bottom:10px}.chat-sidebar{top:10px;left:10px;bottom:10px;width:min(360px,calc(100vw - 20px))}}