:root{--bg:#0f1117;--panel:#171a23;--line:#262b38;--text:#e7e9ee;--muted:#9097a8;--accent:#8b7cf6;--accent2:#6d5ce8;--user:#262b3b;--danger:#e5616d;--ok:#4fbf8a;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text)}
button,input,select,textarea{font:inherit;color:inherit}
button{background:#232838;border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer}
button:hover{border-color:var(--accent)}button.primary{background:var(--accent2);border-color:var(--accent2);color:#fff}
button.danger{color:var(--danger)}button:disabled{opacity:.5;cursor:default}
input,select,textarea{background:#11141c;border:1px solid var(--line);border-radius:8px;padding:8px 10px;width:100%}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}
.app{display:flex;height:100vh}
.side{width:230px;flex-shrink:0;border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;gap:18px;background:#12151d}
.brand{display:flex;gap:10px;align-items:center;color:var(--accent)}.name{font-weight:700;font-size:20px;color:var(--text)}.tag{font-size:12px;color:var(--muted)}
nav{display:flex;flex-direction:column;gap:4px}.nav{text-align:left;background:none;border:1px solid transparent}.nav.active{background:#1f2331;border-color:var(--line)}
.pill{background:#2b3042;border-radius:99px;padding:1px 8px;font-size:12px;margin-left:4px}
.status,.sync{font-size:12px;color:var(--muted);margin-top:auto}.sync{margin-top:0}
.daemon{font-size:12px;color:var(--muted);margin-top:4px;padding:8px 10px;background:#11141c;border:1px solid var(--line);border-radius:8px;line-height:1.4}
main{flex:1;min-width:0;display:flex}.view{display:none;flex:1;flex-direction:column;overflow:auto;padding:24px}.view.active{display:flex}
#view-chat{padding:0}
.messages{flex:1;overflow:auto;padding:24px;display:flex;flex-direction:column;gap:14px}
.empty{margin:auto;text-align:center;max-width:520px}.empty h1{margin:0 0 8px}.empty p{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:16px}.chip{border-radius:99px;font-size:14px}
.msg{max-width:760px;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}
.msg.user{align-self:flex-end;background:var(--user);padding:10px 14px;border-radius:14px 14px 4px 14px}
.msg.assistant{align-self:flex-start;padding:4px 2px}
.fb{display:flex;gap:6px;margin-top:6px}.fb button{padding:2px 8px;font-size:13px;background:none}.fb button.on{border-color:var(--accent);color:var(--accent)}
.recall{font-size:12px;color:var(--muted);margin-top:4px}
.composer{display:flex;gap:10px;padding:14px 24px 20px;border-top:1px solid var(--line)}
.composer textarea{resize:none;max-height:200px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:18px;max-width:900px;display:flex;flex-direction:column;gap:12px}
.panel h2{margin:0;font-size:18px}.panel label{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row input{flex:1;min-width:200px}.row select{width:auto}
.filebtn{background:#232838;border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;color:var(--text)!important;flex-direction:row!important}
.profile{margin:0;line-height:1.55}.muted{color:var(--muted);font-size:14px;margin:0}
.stats{display:flex;gap:18px;flex-wrap:wrap;font-size:13px;color:var(--muted)}.stats b{color:var(--text)}
.memlist{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.memlist li{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:8px;padding:10px}
.memlist .k{font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-radius:4px;background:#262b3b;color:var(--accent);flex-shrink:0}
.memlist .t{flex:1}.memlist .m{font-size:12px;color:var(--muted);flex-shrink:0}.memlist button{padding:2px 8px;font-size:12px}
.search{max-width:none}
details summary{cursor:pointer;color:var(--muted);font-size:14px}
@media(max-width:720px){.app{flex-direction:column}.side{width:auto;flex-direction:row;flex-wrap:wrap;padding:10px;gap:10px}.tag,.status{display:none}.sync{display:block;flex-basis:100%;overflow-wrap:anywhere}nav{flex-direction:row}.view{padding:14px}}
.panel label.check{flex-direction:row;align-items:center;gap:8px;color:var(--text)}.panel label.check input{width:auto}.msg.assistant .body p:first-child{margin-top:0}.msg.assistant .body a{color:var(--accent)}.msg.assistant{white-space:normal}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;max-width:900px}.grid2 .panel{margin-bottom:0}
.view>.grid2{margin-bottom:18px}
.panel h3{margin:6px 0 0;font-size:14px}
.traits{display:flex;flex-direction:column;gap:8px}.trait{display:grid;grid-template-columns:100px 1fr 24px;gap:10px;align-items:center;font-size:14px;text-transform:capitalize}
.bar{height:8px;background:#232838;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent))}
.studystatus{margin:0;padding:10px 12px;background:#11141c;border:1px solid var(--line);border-radius:8px;font-size:14px}
.composer select{width:auto}
.memlist a{color:var(--accent)}
@media(max-width:720px){.grid2{grid-template-columns:1fr}}
.row label.check{flex:0 0 auto;flex-direction:row;align-items:center;gap:8px;color:var(--text);font-size:14px}.row label.check input,.panel label.check input{flex:none;min-width:0;width:auto}
.attachbtn{display:flex;align-items:center;justify-content:center;width:40px;min-width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:#232838;cursor:pointer;font-size:20px;align-self:flex-end}
.attachbtn:hover{border-color:var(--accent)}
.inputwrap{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.attachlist{display:flex;flex-wrap:wrap;gap:6px}.attachlist:empty{display:none}
.att{font-size:12px;background:#232838;border:1px solid var(--line);border-radius:99px;padding:2px 4px 2px 10px}.att button{padding:0 6px;border:none;background:none}
.composer{align-items:flex-end}.composer select,.composer #send{height:40px}
.keys{display:grid;grid-template-columns:2fr 1fr;gap:10px}
.composer select{flex:none;width:150px}
:root{--muted:#aab1c2;--text:#eceef3}
body{font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased}
.msg{font-size:16px}
.nav{padding:9px 12px;color:var(--text)}
.chip{background:#1f2331;color:var(--text)}
::placeholder{color:#7d8496}
a{color:var(--accent)}
