:root{--bg:#1a1512;--bg-raised:#241e19;--bg-input:#2c241e;--border:#3a2f27;--text:#ece4d8;--text-dim:#a89a89;--accent:#c98a4b;--accent-soft:#8a5a30;--user-bubble:#33291f}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-size:16px;line-height:1.55}.shell{display:flex;height:100dvh}.sidebar{width:250px;flex-shrink:0;border-right:1px solid var(--border);background:var(--bg-raised);padding:.9rem .7rem;gap:.7rem}.convo-list,.sidebar{display:flex;flex-direction:column;overflow-y:auto}.convo-list{gap:.15rem;flex:1 1;min-height:0}.convo-row{display:flex;align-items:center;border-radius:8px}.convo-row:hover{background:var(--bg-input)}.convo-row.active{background:var(--user-bubble)}.convo-item{flex:1 1;min-width:0;text-align:left;background:transparent;border:none;color:var(--text-dim);padding:.5rem .6rem;border-radius:8px;font-size:.85rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.convo-row.active .convo-item,.convo-row:hover .convo-item{color:var(--text)}.convo-actions{display:none;gap:.1rem;padding-right:.3rem}.convo-row:hover .convo-actions{display:flex}.convo-actions button{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1;padding:.3rem .35rem;border-radius:6px}.convo-actions button:hover{color:var(--text);background:var(--bg)}.convo-actions button.danger:hover{color:#e08a6a}.convo-empty{color:var(--text-dim);font-size:.8rem;padding:.6rem;font-style:italic}.archive-toggle{margin-top:auto;background:transparent;border:none;border-top:1px solid var(--border);color:var(--text-dim);font-size:.78rem;padding:.7rem .3rem .2rem;cursor:pointer;text-align:left}.archive-toggle:hover{color:var(--text)}.confirm-scrim{display:flex!important;align-items:center;justify-content:center;z-index:50}.confirm-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;padding:1.4rem;width:min(420px,88vw);display:flex;flex-direction:column;gap:.7rem}.confirm-title{font-family:Georgia,serif;font-size:1.15rem;color:var(--text)}.confirm-card p{color:var(--text-dim);font-size:.88rem}.confirm-hint{font-style:italic;opacity:.85}.confirm-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.3rem}.confirm-actions button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:9px;padding:.5rem .9rem;font-size:.86rem;cursor:pointer}.confirm-actions button.danger{background:#7d3b28;border-color:#7d3b28;color:#f4e6dd}.new-chat.wide{width:100%;padding:.55rem}.menu-btn{display:none;flex-direction:column;justify-content:center;gap:4px;background:transparent;border:1px solid var(--border);border-radius:8px;width:2.2rem;height:2.2rem;padding:0 .45rem;cursor:pointer}.menu-btn span{display:block;height:2px;background:var(--text-dim);border-radius:2px}.scrim{display:none}.app{display:flex;flex-direction:column;height:100dvh;flex:1 1;min-width:0;max-width:820px;margin:0 auto}.topbar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--border)}.brand{font-family:Georgia,Times New Roman,serif;font-size:1.35rem;letter-spacing:.28em;display:flex;align-items:center;gap:.6rem}.brand,.brand-hat{color:var(--accent)}.brand-hat{flex-shrink:0}.brand small{display:block;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:.62rem;letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase;margin-top:.15rem}.controls{display:flex;align-items:center;gap:.5rem}.model-select{background:var(--bg-input);color:var(--text);padding:.35rem .6rem}.model-select,.new-chat{border:1px solid var(--border);border-radius:8px;font-size:.82rem;cursor:pointer}.new-chat{background:transparent;color:var(--text-dim);padding:.35rem .7rem}.new-chat:hover{color:var(--text);border-color:var(--accent-soft)}.thread{flex:1 1;overflow-y:auto;padding:1.4rem 1.25rem .5rem;display:flex;flex-direction:column;gap:1.1rem}.empty-state{margin:auto;text-align:center;color:var(--text-dim)}.empty-state .big{font-family:Georgia,serif;font-size:1.5rem;color:var(--text);margin-bottom:.5rem}.msg{max-width:86%;white-space:pre-wrap;word-wrap:break-word;display:flex;flex-direction:column}.msg.user{align-self:flex-end}.msg.assistant{align-self:flex-start}.msg .speaker{font-family:Georgia,serif;font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;margin-bottom:.3rem;display:flex;align-items:center;gap:.35rem}.msg.assistant .speaker{color:var(--accent)}.msg.user .speaker{color:var(--text-dim);justify-content:flex-end}.speaker-hat{color:var(--accent)}.msg.user .msg-body{background:var(--user-bubble);border:1px solid var(--border);border-radius:14px 14px 4px 14px;padding:.7rem 1rem}.flip-btn{background:transparent;border:none;color:var(--text-dim);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:.3rem .1rem 0;opacity:0;transition:opacity .15s ease}.msg:hover .flip-btn{opacity:.7}.flip-btn:hover{opacity:1!important;color:var(--accent)}.msg.user .flip-btn{align-self:flex-end}.msg.system{align-self:center;max-width:80%}.msg.system .msg-body{color:var(--text-dim);font-size:.82rem;font-style:italic;text-align:center;border:1px dashed var(--border);border-radius:10px;padding:.55rem .9rem}.hat-loader{color:var(--accent);opacity:.85;animation:hat-tip 1.1s ease-in-out infinite;transform-origin:50% 80%}@keyframes hat-tip{0%,to{transform:rotate(-10deg)}50%{transform:rotate(12deg) translateY(-2px)}}.empty-hat{color:var(--accent);opacity:.9;margin-bottom:.6rem}.login-wrap{display:flex;align-items:center;justify-content:center;height:100dvh}.login-card{display:flex;flex-direction:column;gap:1rem;width:min(320px,86vw)}.login-card input{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem;font:inherit;text-align:center;letter-spacing:.2em;outline:none}.login-card input:focus{border-color:var(--accent-soft)}.login-card button{background:var(--accent);color:#1c130a;border:none;border-radius:10px;padding:.8rem;font-weight:600;cursor:pointer}.login-card button:disabled{opacity:.45}.login-error{color:#d98a6a;text-align:center;font-size:.85rem}.composer{display:flex;gap:.6rem;padding:.9rem 1.25rem 1.2rem;border-top:1px solid var(--border)}.composer textarea{flex:1 1;resize:none;background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:12px;padding:.75rem 1rem;font:inherit;min-height:3.1rem;max-height:10rem;outline:none}.composer textarea:focus{border-color:var(--accent-soft)}.composer button{align-self:flex-end;background:var(--accent);color:#1c130a;border:none;border-radius:12px;padding:.75rem 1.3rem;font-size:.95rem;font-weight:600;cursor:pointer}.composer button:disabled{opacity:.45;cursor:default}.thinking-dots{color:var(--text-dim);font-size:.9rem}@media (max-width:760px){.brand{font-size:1.1rem}.brand small{display:none}.msg{max-width:94%}.menu-btn{display:flex}.sidebar{position:fixed;inset:0 auto 0 0;z-index:20;transform:translateX(-100%);transition:transform .18s ease;width:min(280px,80vw)}.sidebar.open{transform:translateX(0)}.scrim{display:block;position:fixed;inset:0;z-index:10;background:rgba(0,0,0,.45)}}.mention{color:var(--accent);font-weight:600}.empty-state .empty-hint{margin-top:.65rem;font-size:.85rem;color:var(--text-dim)}.msg.id-jake .speaker{color:#7fa8c9}.msg.id-cloudy .speaker{color:#c9a0c9}.composer{position:relative}.mention-pop{position:absolute;bottom:calc(100% + .35rem);left:1.25rem;display:flex;flex-direction:column;min-width:180px;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.45);z-index:20}.composer .mention-opt{display:flex;align-items:center;gap:.45rem;padding:.55rem .8rem;background:none;border:none;color:var(--text);font-size:.9rem;cursor:pointer;text-align:left}.composer .mention-opt.active,.composer .mention-opt:hover{background:var(--bg-input);color:var(--accent)}.composer .mention-opt .mention-name{margin-left:auto;color:var(--text-dim);font-size:.78rem}.scrim.quiet{display:block;position:fixed;inset:0;z-index:15;background:transparent}.weather{position:relative;display:flex;align-items:center}.weather-dot{width:.85rem;height:.85rem;border-radius:50%;border:1px solid var(--border);cursor:pointer;padding:0}.weather-dot.w-clear{background:#6fae6f;box-shadow:0 0 6px rgba(111,174,111,.55)}.weather-dot.w-clouds{background:#d9b45a;box-shadow:0 0 6px rgba(217,180,90,.55)}.weather-dot.w-storm{background:#d97a5a;box-shadow:0 0 6px rgba(217,122,90,.65);animation:storm-pulse 1.4s ease-in-out infinite}.weather-dot.w-unknown{background:var(--text-dim);opacity:.5}@keyframes storm-pulse{0%,to{opacity:1}50%{opacity:.45}}.weather-pop{position:absolute;top:calc(100% + .6rem);right:0;min-width:220px;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;padding:.75rem .9rem;box-shadow:0 8px 24px rgba(0,0,0,.45);z-index:40}.weather-word{font-family:Georgia,serif;font-size:.95rem;color:var(--text);margin-bottom:.5rem}.weather-line{display:flex;align-items:center;gap:.45rem;color:var(--text-dim);font-size:.8rem;padding:.15rem 0;white-space:nowrap}.mini-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.mini-dot.ok{background:#6fae6f}.mini-dot.bad{background:#d97a5a}.weather-note{margin-top:.45rem;color:var(--text-dim);font-size:.72rem;font-style:italic;white-space:normal}.folder-group{display:flex;flex-direction:column;gap:.15rem;margin-bottom:.35rem}.folder-head{display:flex;align-items:center;gap:.4rem;background:transparent;border:none;color:var(--text-dim);font-family:Georgia,serif;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;padding:.35rem .4rem .25rem;cursor:pointer;text-align:left}.folder-head:hover{color:var(--text)}.folder-head .chev{display:inline-block;transition:transform .12s ease;font-size:.65rem}.folder-head .chev.open{transform:rotate(90deg)}.folder-count{margin-left:auto;font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:.68rem;opacity:.75}.convo-row{position:relative}.folder-menu{position:absolute;top:calc(100% + 2px);right:.3rem;display:flex;flex-direction:column;min-width:130px;background:var(--bg-raised);border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.45);z-index:40}.folder-menu button{background:none;border:none;color:var(--text);font-size:.82rem;padding:.5rem .8rem;cursor:pointer;text-align:left}.folder-menu button:hover:not(:disabled){background:var(--bg-input);color:var(--accent)}.folder-menu button.active{color:var(--text-dim);cursor:default}.folder-menu button.active:after{content:" ·";color:var(--accent)}.settings-btn{margin-top:auto;display:flex;align-items:center;gap:.5rem;background:transparent;border:none;border-top:1px solid var(--border);color:var(--text-dim);font-size:.82rem;padding:.7rem .4rem .2rem;cursor:pointer;text-align:left}.settings-btn:hover{color:var(--text)}.settings-btn .gear{font-size:.95rem}.settings-card{background:var(--bg-raised);border:1px solid var(--border);border-radius:14px;width:min(780px,94vw);height:min(600px,86dvh);display:flex;overflow:hidden}.settings-nav{flex-shrink:0;width:180px;border-right:1px solid var(--border);background:var(--bg);padding:1.1rem .7rem;display:flex;flex-direction:column;gap:.15rem}.settings-nav-title{font-family:Georgia,serif;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim);padding:0 .6rem .7rem}.settings-nav button{background:transparent;border:none;color:var(--text-dim);text-align:left;padding:.5rem .6rem;border-radius:8px;font-size:.9rem;cursor:pointer}.settings-nav button:hover{color:var(--text);background:var(--bg-input)}.settings-nav button.active{color:var(--accent);background:var(--bg-input)}.settings-close{margin-top:auto;border-top:1px solid var(--border)!important;border-radius:0!important;padding-top:.7rem!important;color:var(--text-dim)}.settings-pane{flex:1 1;min-width:0;display:flex;flex-direction:column;padding:1.3rem 1.4rem;gap:.7rem}.settings-head{font-family:Georgia,serif;font-size:1.1rem;color:var(--text);flex-shrink:0}.settings-head p{font-family:-apple-system,BlinkMacSystemFont,sans-serif;font-size:.82rem;color:var(--text-dim);margin-top:.3rem}.settings-scroll{overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:1.1rem;padding-right:.3rem}.archive-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .4rem;border-radius:8px}.archive-row:hover{background:var(--bg-input)}.archive-title{flex:1 1;min-width:0;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.archive-actions{display:flex;gap:.35rem;flex-shrink:0}.archive-actions button{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:7px;padding:.3rem .65rem;font-size:.78rem;cursor:pointer}.archive-actions button:hover{color:var(--text);border-color:var(--accent-soft)}.archive-actions button.danger:hover{color:#e08a6a;border-color:#7d3b28}.connector-row{display:flex;align-items:center;gap:.7rem;padding:.55rem .4rem;border-radius:8px}.connector-row:hover{background:var(--bg-input)}.connector-row:hover .connector-remove{opacity:.8}.connector-switch{flex-shrink:0;width:34px;height:19px;border-radius:10px;border:1px solid var(--border);background:var(--bg);cursor:pointer;padding:0 2px;display:flex;align-items:center;transition:background .15s ease,border-color .15s ease}.connector-switch .knob{width:13px;height:13px;border-radius:50%;background:var(--text-dim);transition:transform .15s ease,background .15s ease}.connector-switch.on{background:var(--accent-soft);border-color:var(--accent)}.connector-switch.on .knob{transform:translateX(15px);background:var(--text)}.connector-text{flex:1 1;min-width:0}.connector-name{font-size:.86rem;color:var(--text)}.connector-meta{margin-top:.15rem;font-size:.7rem;overflow:hidden;text-overflow:ellipsis}.connector-meta,.connector-mode{color:var(--text-dim);white-space:nowrap}.connector-mode{flex-shrink:0;background:transparent;border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem;font-size:.68rem;cursor:pointer}.connector-mode:hover{color:var(--text);border-color:var(--accent-soft)}.connector-mode.loaded{color:var(--accent);border-color:var(--accent-soft)}.tool-picker{margin:.2rem 0 .4rem 2.6rem;padding:.6rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);display:flex;flex-direction:column;gap:.35rem}.tool-pick{display:flex;align-items:flex-start;gap:.5rem;font-size:.8rem;color:var(--text);cursor:pointer}.tool-pick input{margin-top:.15rem;accent-color:var(--accent)}.tool-pick span{display:flex;flex-direction:column}.tool-pick small{color:var(--text-dim);font-size:.7rem}.tool-pick.all{padding-bottom:.4rem;border-bottom:1px solid var(--border);font-weight:600}.tool-pick.dim{opacity:.55}.tool-picker-actions{display:flex;justify-content:flex-end;gap:.4rem;padding-top:.4rem}.tool-picker-actions button{background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:7px;padding:.3rem .75rem;font-size:.78rem;cursor:pointer}.tool-picker-actions button:not(:disabled):hover{color:var(--text);border-color:var(--accent-soft)}.tool-picker-actions button.save{color:var(--accent);border-color:var(--accent-soft)}.tool-picker-actions button:disabled{opacity:.5;cursor:default}.connector-add{margin-top:.4rem;padding-top:.9rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.5rem}.connector-add-head{font-family:Georgia,serif;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.connector-add input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.5rem .65rem;font-size:.84rem}.connector-add input:focus{outline:none;border-color:var(--accent-soft)}.connector-add button{align-self:flex-start;background:transparent;border:1px solid var(--border);color:var(--text-dim);border-radius:7px;padding:.35rem .8rem;font-size:.8rem;cursor:pointer}.connector-add button:not(:disabled):hover{color:var(--text);border-color:var(--accent-soft)}.connector-add button:disabled{opacity:.5;cursor:default}.connector-error{font-size:.76rem;color:#e08a6a}.tool-chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:.15rem 0 .35rem}.tool-chip{font-size:.68rem;color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:.12rem .55rem;background:var(--bg-raised);white-space:nowrap}.tool-chip.err{color:#e08a6a;border-color:#7d3b28}@media (max-width:640px){.settings-card{flex-direction:column;height:min(680px,88dvh)}.settings-nav{width:auto;border-right:none;border-bottom:1px solid var(--border);flex-direction:row;flex-wrap:wrap;align-items:center;padding:.6rem .7rem}.settings-nav-title{display:none}.settings-close{margin-top:0;margin-left:auto;border-top:none!important;padding-top:.5rem!important}.settings-pane{padding:1rem 1.1rem}}.memory-space-head{display:flex;align-items:center;gap:.5rem;font-family:Georgia,serif;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);padding-bottom:.35rem;margin-bottom:.4rem}.memory-row{display:flex;align-items:flex-start;gap:.5rem;padding:.45rem .4rem;border-radius:8px}.memory-row:hover{background:var(--bg-input)}.memory-text{flex:1 1;min-width:0;font-size:.86rem;color:var(--text)}.memory-meta{margin-top:.2rem;font-size:.7rem;color:var(--text-dim)}.memory-forget{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:.85rem;line-height:1;padding:.25rem .3rem;border-radius:6px;opacity:0;transition:opacity .12s ease}.memory-row:hover .memory-forget{opacity:.8}.memory-forget:hover{color:#e08a6a;background:var(--bg);opacity:1}.review-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.6rem;margin:.8rem 1.25rem 0;padding:.6rem .9rem;border:1px dashed var(--border);border-radius:10px;color:var(--text-dim);font-size:.84rem;font-style:italic}.review-actions{display:flex;gap:.5rem;flex-shrink:0}.review-banner button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:8px;padding:.3rem .7rem;font-size:.78rem;font-style:normal;cursor:pointer}.review-banner button:hover{border-color:var(--accent-soft);color:var(--accent)}.review-banner button.quiet{border:none;color:var(--text-dim)}