:root{--bg:#f7f7f5;--side:#ecece8;--surface:#fff;--text:#1e211f;--muted:#777d78;--line:#d9dcd8;--accent:#171a18;--soft:#f0f1ee;--green:#2f7d4d;--red:#a6433c}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}.shell{height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}button,textarea,input,select{font:inherit}.tasks{background:var(--side);border-right:1px solid var(--line);padding:18px 12px;display:flex;flex-direction:column;min-width:0}.brand{font-size:18px;font-weight:700;padding:4px 10px 18px;letter-spacing:0}.new-task{border:1px solid #cbd0ca;background:var(--surface);color:var(--text);border-radius:7px;padding:9px 11px;text-align:left;cursor:pointer;font-weight:600}.new-task:hover{background:#fafaf8}.task-list{margin-top:15px;overflow:auto}.task{width:100%;border:0;background:transparent;text-align:left;padding:10px;border-radius:6px;cursor:pointer;color:#4a504b}.task:hover,.task.active{background:#dedfd9;color:var(--text)}.task-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.task-meta{font-size:10px;color:#858b86;margin-top:3px;display:flex;gap:7px}.state.running{color:#9b6d15}.state.completed{color:var(--green)}.state.failed,.state.cancelled{color:var(--red)}.local{margin-top:auto;padding:13px 10px 2px;color:var(--muted);font-size:11px;display:flex;gap:7px;align-items:center}.local span{width:7px;height:7px;border-radius:50%;background:#4c9d68}.chat{height:100vh;min-width:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chat header{height:68px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#fafaf8}.chat h1{font-size:15px;margin:0;font-weight:650;max-width:700px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat header p{margin:2px 0 0;color:var(--muted);font-size:11px}.icon-btn{width:32px;height:32px;border:1px solid var(--line);background:transparent;border-radius:6px;display:grid;place-items:center;cursor:pointer;color:#515752}.icon-btn:hover{background:var(--soft)}.conversation{overflow:auto;padding:34px max(28px,calc((100% - 780px)/2));scroll-behavior:smooth}.welcome{text-align:center;margin:15vh auto 0;color:var(--muted)}.welcome .logo{width:42px;height:42px;background:var(--accent);color:white;border-radius:7px;display:grid;place-items:center;margin:0 auto 15px;font-weight:800;font-size:19px}.welcome h2{margin:0;color:var(--text);font-size:21px;letter-spacing:0}.welcome p{margin:7px 0 0}.message{margin-bottom:24px}.message.user{display:flex;justify-content:flex-end}.bubble{max-width:78%;padding:11px 14px;border-radius:8px;white-space:pre-wrap}.user .bubble{background:var(--accent);color:white}.assistant .bubble{max-width:100%;padding:0;background:transparent;color:#303431;font-family:"Cascadia Mono",Consolas,monospace;font-size:12px;line-height:1.7}.event{color:var(--muted);font-size:11px;margin:7px 0 20px}.cursor{display:inline-block;width:7px;height:13px;background:#444;vertical-align:-2px;animation:blink 1s infinite}@keyframes blink{50%{opacity:0}}.composer-wrap{padding:0 max(20px,calc((100% - 820px)/2)) 18px}.queue-bar{background:#f2efe5;border:1px solid #ddd4b9;color:#73623e;padding:7px 10px;border-radius:6px 6px 0 0;font-size:11px}.composer{border:1px solid #cfd3ce;background:var(--surface);border-radius:10px;padding:10px;box-shadow:0 8px 26px rgba(30,35,31,.08)}.composer textarea{width:100%;max-height:180px;resize:none;border:0;outline:0;padding:4px 5px 10px;color:var(--text);background:transparent}.composer-row{display:flex;align-items:center;justify-content:space-between}.left-actions,.send-actions{display:flex;align-items:center;gap:7px}.attach{font-size:19px}.path{height:31px;border:0;background:transparent;color:var(--muted);display:flex;gap:6px;align-items:center;cursor:pointer;max-width:280px}.path span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.secondary{height:31px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:0 10px;cursor:pointer;color:#555b56}.secondary:hover{background:var(--soft)}.secondary.danger{color:var(--red);border-color:#e2c4c1}.send{width:32px;height:32px;border:0;border-radius:7px;background:var(--accent);color:white;font-size:18px;cursor:pointer}.send:disabled{opacity:.35;cursor:default}.attachments{border-top:1px solid var(--line);margin-top:9px;padding-top:8px;color:var(--muted);font-size:11px}.settings{display:flex;justify-content:space-between;padding:7px 4px 0;gap:8px}.settings input{min-width:0;flex:1}.settings input,.settings select{border:0;background:transparent;color:var(--muted);font-size:10px;outline:0}.settings select{text-align:right}.empty{color:var(--muted);font-size:12px;padding:15px 10px}@media(max-width:760px){.shell{grid-template-columns:1fr}.tasks{display:none}.conversation{padding:24px 18px}.composer-wrap{padding:0 12px 12px}.chat header{padding:0 16px}.bubble{max-width:90%}}
:where(.md) p{margin:0 0 10px}.md h1,.md h2,.md h3,.md h4{line-height:1.25;margin:18px 0 9px;color:var(--text)}.md h1{font-size:22px}.md h2{font-size:18px}.md h3{font-size:15px}.md ul{margin:6px 0 12px;padding-left:22px}.md li{margin:4px 0}.md strong{font-weight:700}.md a{color:#246b9b;text-decoration:underline}.md-inline{background:#eef0ed;border:1px solid #e0e2de;border-radius:4px;padding:1px 5px;font:12px "Cascadia Mono",Consolas,monospace}.md-code{background:#1d211e;color:#e4ebe5;border-radius:7px;padding:13px 14px;overflow:auto;font:12px/1.6 "Cascadia Mono",Consolas,monospace;margin:10px 0 14px;white-space:pre}.details{margin-top:14px;border-top:1px solid var(--line);padding-top:9px;color:var(--muted);font-size:11px}.details summary{cursor:pointer}.details pre{background:#f0f1ee;border-radius:5px;padding:10px;overflow:auto;white-space:pre-wrap;word-break:break-word;color:#616862;font:10px/1.5 "Cascadia Mono",Consolas,monospace;max-height:240px}
@media (min-width:761px) and (max-width:1200px){body{font-size:17px}.shell{grid-template-columns:300px minmax(0,1fr)}.tasks{padding:22px 15px}.brand{font-size:23px;padding:5px 12px 22px}.new-task{font-size:16px;padding:12px 13px}.task{padding:14px 12px}.task-title{font-size:16px}.task-meta{font-size:12px;margin-top:5px}.local{font-size:13px}.chat header{height:86px;padding:0 28px}.chat h1{font-size:20px}.chat header p{font-size:14px}.conversation{padding:38px max(34px,calc((100% - 850px)/2))}.welcome h2{font-size:27px}.welcome p{font-size:16px}.bubble{font-size:17px;padding:14px 17px}.assistant .bubble{font-size:17px;line-height:1.8}.md h1{font-size:28px}.md h2{font-size:23px}.md h3{font-size:20px}.md-inline{font-size:15px}.md-code{font-size:15px}.details{font-size:13px}.details pre{font-size:13px}.composer-wrap{padding:0 max(28px,calc((100% - 880px)/2)) 24px}.composer{padding:14px}.composer textarea{font-size:18px;padding:6px 7px 13px}.icon-btn{width:40px;height:40px;font-size:20px}.path,.secondary{font-size:15px;height:40px}.send{width:40px;height:40px;font-size:22px}.settings input,.settings select{font-size:13px}.queue-bar{font-size:14px;padding:10px 12px}}
@media (max-width:760px){body{font-size:16px}.chat header{height:76px}.chat h1{font-size:18px}.chat header p{font-size:13px}.conversation{padding:25px 17px}.bubble{font-size:16px;line-height:1.75}.assistant .bubble{font-size:16px;line-height:1.8}.composer-wrap{padding:0 10px 12px}.composer textarea{font-size:17px}.send,.icon-btn{width:38px;height:38px}.secondary{height:38px;font-size:14px}}
/* Collapsible task drawer */
.shell{grid-template-columns:minmax(0,1fr)}.shell.sidebar-open{grid-template-columns:260px minmax(0,1fr)}.tasks{display:none}.sidebar-open .tasks{display:flex}.header-left{display:flex;align-items:center;gap:14px}.menu-btn{width:34px;height:34px;border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:8px 7px;display:flex;flex-direction:column;justify-content:center;gap:4px;cursor:pointer}.menu-btn:hover{background:var(--soft)}.menu-btn span{display:block;height:2px;width:18px;background:#4e554f;border-radius:2px}
/* Attachment previews */
.attachments{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.attachments[hidden]{display:none}.attachment-card{position:relative;width:92px;height:78px;border:1px solid var(--line);background:var(--soft);border-radius:7px;overflow:hidden;display:flex;align-items:center;justify-content:center}.attachment-card img{width:100%;height:100%;object-fit:cover}.attachment-card .file-icon{font-size:25px;color:var(--muted)}.attachment-name{position:absolute;left:0;right:0;bottom:0;padding:3px 5px;background:rgba(20,23,21,.78);color:#fff;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attachment-card button{position:absolute;right:4px;top:4px;width:22px;height:22px;border:0;border-radius:50%;background:rgba(20,23,21,.8);color:#fff;cursor:pointer;font-size:16px;line-height:20px;padding:0}@media (min-width:761px) and (max-width:1200px){.attachment-card{width:118px;height:96px}.attachment-name{font-size:12px}.attachment-card button{width:28px;height:28px;font-size:20px}}
/* Sent attachments */
.sent-attachments{display:grid;grid-template-columns:repeat(2,minmax(0,180px));gap:8px;margin-bottom:8px}.sent-attachments img{display:block;width:100%;max-width:180px;aspect-ratio:4/3;object-fit:cover;border:1px solid rgba(255,255,255,.2);border-radius:7px}.sent-file{display:flex;align-items:center;gap:7px;max-width:220px;padding:9px 10px;border:1px solid rgba(255,255,255,.2);border-radius:7px}.sent-file span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sent-text{margin-top:6px}.md .mjx-container{max-width:100%;overflow-x:auto;overflow-y:hidden;padding:2px 0}.md .mjx-container[display="true"]{margin:12px 0!important}
/* Task row actions */
.task-row{position:relative;display:flex;align-items:stretch;border-radius:6px;margin-bottom:2px}.task-row:hover,.task-row.active{background:#dedfd9}.task-row .task{flex:1;min-width:0;padding-right:62px}.task-row .task:hover,.task-row .task.active{background:transparent}.task-actions{position:absolute;right:6px;top:50%;transform:translateY(-50%);display:flex;gap:2px;opacity:0}.task-row:hover .task-actions,.task-row.active .task-actions{opacity:1}.task-actions button{width:25px;height:25px;border:0;border-radius:5px;background:transparent;color:#737a74;cursor:pointer;font-size:16px}.task-actions button:hover{background:rgba(255,255,255,.72);color:#202420}.task-actions .delete-task:hover{color:var(--red)}.pin-mark{font-size:8px;color:#725cc6;margin-right:6px;vertical-align:2px}@media(max-width:1200px){.task-actions{opacity:1}.sent-attachments{grid-template-columns:repeat(2,minmax(0,220px))}.sent-attachments img{max-width:220px}}@media(max-width:760px){.sent-attachments{grid-template-columns:repeat(2,minmax(0,150px))}.sent-attachments img{max-width:150px}}
@media (prefers-color-scheme: dark){:root{--bg:#151a18;--side:#1c2420;--surface:#202a25;--text:#edf4ef;--muted:#9aa9a0;--line:#35423b;--accent:#327d5a;--soft:#28342e;--green:#79d39b;--red:#ef8d85}body{background:var(--bg);color:var(--text)}.chat header{background:#19211e}.task{color:#c2cec6}.task:hover,.task.active,.task-row:hover,.task-row.active{background:#2a3730;color:var(--text)}.icon-btn,.menu-btn{color:#d5e1d9}.icon-btn:hover,.menu-btn:hover,.secondary:hover{background:#2a3730}.menu-btn span{background:#c2cec6}.new-task,.secondary{border-color:var(--line);background:var(--surface);color:var(--text)}.new-task:hover{background:#2a3730}.assistant .bubble{color:#d7e2db}.cursor{background:#d7e2db}.composer{border-color:var(--line);box-shadow:0 10px 30px rgba(0,0,0,.26)}.composer textarea{color:var(--text)}.queue-bar{background:#332f22;border-color:#62583a;color:#e4cf8e}.settings input,.settings select{color:var(--muted)}}
/* Private login */
.header-actions{display:flex;gap:7px}.login-overlay{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(247,247,245,.94);backdrop-filter:blur(8px)}.login-overlay[hidden]{display:none}.login-card{width:min(100%,360px);padding:30px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 80px rgba(20,24,21,.18);text-align:center}.login-logo{width:46px;height:46px;margin:0 auto 16px;display:grid;place-items:center;border-radius:10px;background:var(--accent);color:#fff;font-size:21px;font-weight:800}.login-card h2{margin:0;font-size:22px}.login-card p{margin:7px 0 20px;color:var(--muted)}.login-card input{width:100%;height:46px;border:1px solid var(--line);border-radius:8px;padding:0 13px;outline:0;background:var(--surface);color:var(--text);font-size:16px}.login-card input:focus{border-color:#888f89;box-shadow:0 0 0 3px var(--soft)}.login-card button{width:100%;height:44px;margin-top:8px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}.login-card button:disabled{opacity:.55}.login-error{min-height:24px;padding-top:7px;color:var(--red);font-size:13px}
/* Paste and drop uploads */
.composer{position:relative}.drop-hint{position:absolute;inset:5px;z-index:20;display:none;place-items:center;align-content:center;gap:5px;border:2px dashed var(--accent);border-radius:8px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);pointer-events:none}.drop-hint span{font-size:28px;line-height:1}.drop-hint strong{font-size:15px}.composer.dragging .drop-hint{display:grid}.composer.uploading{opacity:.78}.upload-status{display:flex;align-items:center;padding:8px 10px;border:1px dashed var(--line);border-radius:7px;color:var(--muted)}
