:root{color-scheme:light dark;--bg: #f7f3ec;--surface: #f0eadf;--text: #33302a;--subtext: #6e665a;--accent: #a1543a;--onAccent: #fdf8f2;--theirsBg: #ece4d6;--border: #ddd3c4;--r-bubble: 16px;--r-field: 12px}:root[data-theme=dark]{color-scheme:dark;--bg: #131215;--surface: #1d1c21;--text: #ededed;--subtext: #a3a0a8;--accent: #c67a54;--onAccent: #17161a;--theirsBg: #201f25;--border: #2c2b32}*{box-sizing:border-box}html,body,#app{height:100%}html{background-color:var(--bg)}body{margin:0;font-family:system-ui,-apple-system,sans-serif;color:var(--text)}#app{display:flex;flex-direction:column;max-width:720px;margin:0 auto;height:100%}.topbar{display:flex;align-items:center;gap:14px;padding:18px 20px 12px}.topbar .icon{background:none;border:none;font-size:19px;color:var(--subtext);cursor:pointer;line-height:1;padding:4px;border-radius:8px}.topbar .icon:hover{color:var(--text);background:var(--surface)}.topbar .title{flex:1;font-weight:500;font-size:20px;color:var(--text)}.thread{flex:1;overflow-y:auto;padding:12px 20px 104px;display:flex;flex-direction:column;gap:12px}.bubble{max-width:76%;padding:11px 15px;border-radius:var(--r-bubble);line-height:1.5;white-space:pre-wrap;word-break:break-word}.bubble.user{align-self:flex-end;background:var(--accent);color:var(--onAccent);border-bottom-right-radius:5px}.bubble.model{align-self:flex-start;background:var(--theirsBg);color:var(--text);border-bottom-left-radius:5px}.thread-empty{color:var(--subtext);text-align:center;margin-top:42vh;font-style:italic}.bubble.model strong{font-weight:650}.bubble.model em{font-style:italic}.bubble.model a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.bubble.model code.md-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:color-mix(in srgb,var(--text) 9%,transparent);padding:1px 6px;border-radius:6px}.bubble.model pre.md-pre{margin:9px 0 4px;padding:12px 14px;border-radius:10px;background:color-mix(in srgb,var(--text) 9%,transparent);overflow-x:auto}.bubble.model pre.md-pre code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em;line-height:1.5;white-space:pre;background:none;padding:0;border:0}.banner{margin:0 20px;padding:11px 15px;border-radius:var(--r-field);background:var(--surface);color:var(--subtext);cursor:pointer;border:1px solid var(--border)}.strip{margin:2px 20px;padding:2px 4px;font-size:.82rem;color:var(--subtext);font-style:italic}.recovery-slot:empty{display:none}.recovery-bar{margin:4px 20px 0;padding:9px 12px;border-radius:var(--r-field);background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;gap:10px}.recovery-text{flex:1;font-size:13.5px;color:var(--text)}.recovery-actions{display:flex;gap:8px;flex:none}.recovery-actions button{padding:5px 12px;border-radius:var(--r-field);border:1px solid var(--border);background:none;color:var(--text);font:inherit;font-size:12.5px;cursor:pointer}.recovery-actions button:hover{background:var(--bg)}.recovery-resume{border-color:var(--accent);color:var(--accent)}.pin-slot:empty{display:none}.pin-card{margin:4px 20px 0;padding:9px 12px;border-radius:var(--r-field);background:var(--surface);border:1px solid var(--border)}.pin-row{display:flex;align-items:center;gap:8px}.pin-text{flex:1;text-align:left;background:none;border:none;color:var(--text);font:inherit;font-size:13.5px;cursor:pointer;padding:0}.pin-dismiss{flex:none;width:22px;height:22px;border:none;border-radius:50%;background:none;color:var(--subtext);font-size:14px;line-height:1;cursor:pointer}.pin-dismiss:hover{background:var(--bg);color:var(--text)}.pin-why{margin-top:6px;font-size:12px;color:var(--subtext);font-style:italic}.pin-why[hidden]{display:none}.composer{position:fixed;left:0;right:0;bottom:0;max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:6px;padding:12px 20px 18px;background:linear-gradient(transparent,var(--bg) 34%)}.composer-row{display:flex;gap:10px}.composer textarea{flex:1;resize:none;max-height:140px;overflow-y:auto;padding:12px 16px;border-radius:20px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit;font-size:16px;line-height:1.45}.composer textarea::placeholder{color:var(--subtext)}.composer textarea:focus{outline:none;border-color:var(--accent)}.composer .send{width:44px;height:44px;flex:none;border:none;border-radius:50%;background:var(--accent);color:var(--onAccent);font-size:18px;cursor:pointer}.composer .send:disabled{opacity:.45;cursor:default}.attach-btn{width:44px;height:44px;flex:none;border:none;border-radius:50%;background:none;color:var(--subtext);font-size:18px;cursor:pointer}.attach-btn:hover{background:var(--surface);color:var(--text)}.attach-row[hidden]{display:none}.attach-chip-slot:empty,.attach-error-slot:empty{display:none}.attach-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 8px;margin-bottom:4px;border-radius:var(--r-field);background:var(--surface);border:1px solid var(--border);max-width:100%}.attach-thumb{width:40px;height:40px;object-fit:cover;border-radius:8px;flex:none}.attach-file{font-size:13px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-remove{flex:none;width:22px;height:22px;border:none;border-radius:50%;background:none;color:var(--subtext);font-size:14px;line-height:1;cursor:pointer}.attach-remove:hover{background:var(--bg);color:var(--text)}.attach-error{margin-bottom:4px;padding:8px 12px;border-radius:var(--r-field);font-size:12.5px;color:var(--text);background:color-mix(in srgb,#b23b2a 10%,var(--surface));border:1px solid color-mix(in srgb,#b23b2a 40%,var(--border))}.msg-attach{display:block;max-width:220px;max-height:220px;border-radius:10px;margin-top:8px}.attach-file-link{display:inline-flex;margin-top:8px;padding:6px 10px;border-radius:var(--r-field);background:color-mix(in srgb,var(--text) 8%,transparent);color:inherit;text-decoration:none;font-size:13px}.attach-missing{margin-top:8px;font-size:12.5px;font-style:italic;color:var(--subtext)}.sys-error{align-self:center;max-width:88%;margin:8px 0;padding:11px 15px;border-radius:var(--r-field);border:1px solid color-mix(in srgb,#b23b2a 40%,var(--border));background:color-mix(in srgb,#b23b2a 7%,var(--surface));color:var(--text);font:inherit;font-size:13px;line-height:1.45;text-align:left;cursor:pointer}.empty-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;padding:20px;text-align:center}.empty-copy{color:var(--subtext);font-size:17px}.empty-cta{padding:12px 20px;border-radius:var(--r-field);border:none;background:var(--accent);color:var(--onAccent);font:inherit;font-size:15px;cursor:pointer}#drawer{position:fixed;top:0;left:0;bottom:0;width:min(320px,86vw);z-index:20;background:var(--bg);border-right:1px solid var(--border);overflow-y:auto;padding:22px 18px 32px;transform:translate(-100%);transition:transform .22s ease}#drawer.uip-open{transform:translate(0)}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;background:#00000059;opacity:0;pointer-events:none;transition:opacity .22s ease}.backdrop.uip-backdrop-open{opacity:1;pointer-events:auto}.drawer-section{margin-bottom:26px}.drawer-section h3{margin:0 0 10px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--subtext)}.drawer-note{margin:0;color:var(--subtext);font-size:13px}.drawer-row-wrap{display:flex;align-items:center;gap:4px}.drawer-row{flex:1;display:flex;align-items:center;gap:10px;min-width:0;padding:9px 10px;border:none;border-radius:var(--r-field);background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.drawer-row:hover{background:var(--surface)}.drawer-row.active{background:var(--surface);font-weight:600}.drawer-row-emoji{font-size:17px;flex:none}.drawer-row-text{display:flex;flex-direction:column;min-width:0}.drawer-row-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-row-purpose{font-size:12px;color:var(--subtext);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawer-row-edit{flex:none;padding:7px 9px;border:none;border-radius:8px;background:none;color:var(--subtext);font-size:13px;cursor:pointer}.drawer-row-edit:hover{color:var(--text);background:var(--surface)}.drawer-form{display:flex;flex-direction:column;gap:7px;padding:10px;margin-bottom:6px;border-radius:var(--r-field);background:var(--surface)}.drawer-form input[type=text],.drawer-form textarea{padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font:inherit;font-size:13.5px}.drawer-form textarea{resize:vertical}.drawer-form-actions{display:flex;gap:8px}.drawer-form button{padding:8px 12px;border:none;border-radius:8px;font:inherit;font-size:13.5px;cursor:pointer}.drawer-form button[type=submit]{background:var(--accent);color:var(--onAccent)}.drawer-form-actions button[type=button]{background:none;color:var(--subtext)}.drawer-delete-row{display:flex;gap:8px;margin-top:2px;padding-top:8px;border-top:1px dashed var(--border)}.drawer-delete-row input{flex:1}.drawer-delete-btn{background:#b23b2a;color:#fff}.drawer-delete-btn:disabled{opacity:.4;cursor:default}.drawer-label{display:block;margin:10px 0 4px;font-size:12px;color:var(--subtext)}.drawer-section select,.drawer-section input[type=password]{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13.5px}.drawer-section input[type=password]{margin-top:6px}.fingerprint-warning{margin-top:10px;padding:10px;border-radius:var(--r-field);font-size:12.5px;background:color-mix(in srgb,#b23b2a 10%,var(--surface));border:1px solid color-mix(in srgb,#b23b2a 40%,var(--border))}.fingerprint-warning p{margin:0 0 8px}.fingerprint-warning button{padding:7px 10px;border:none;border-radius:8px;background:#b23b2a;color:#fff;font:inherit;cursor:pointer}.reembed-progress{display:flex;align-items:center;gap:8px;margin-top:8px}.reembed-progress[hidden]{display:none}.reembed-label{flex:none;font-size:11.5px;color:var(--text);white-space:nowrap}.reembed-progress .mem-bar-track{flex:1}.fingerprint-warning .reembed-cancel{flex:none;padding:5px 9px;background:none;color:var(--subtext);border:1px solid var(--border)}.drawer-checkbox-label{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;color:var(--text);cursor:pointer}.backup-message{margin:10px 0 0;padding:8px 10px;border-radius:var(--r-field);font-size:12.5px}.backup-message-info{color:var(--subtext);background:var(--surface)}.backup-message-error{color:var(--text);background:color-mix(in srgb,#b23b2a 10%,var(--surface));border:1px solid color-mix(in srgb,#b23b2a 40%,var(--border))}.backup-confirm{margin-top:10px;border:1px solid var(--border);font-size:12.5px}.backup-confirm p{margin:0}#inspector{position:fixed;top:0;right:0;bottom:0;width:min(380px,92vw);z-index:20;background:var(--bg);border-left:1px solid var(--border);overflow-y:auto;padding:22px 18px 32px;transform:translate(100%);transition:transform .22s ease}#inspector.uip-open{transform:translate(0)}#inspector input[type=text],#inspector select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:13.5px;margin-top:6px}.pane-head{display:flex;align-items:center;justify-content:space-between}.status-row{margin-bottom:22px}.mem-card{padding:10px;margin-bottom:8px;border-radius:var(--r-field);background:var(--surface);border:1px solid var(--border);font-size:13px}.mem-content{margin-bottom:6px;white-space:pre-wrap;word-break:break-word}.mem-bar-track{height:4px;border-radius:2px;background:var(--border);overflow:hidden;margin-bottom:6px}.mem-bar{height:100%;background:var(--accent)}.mem-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:11.5px;color:var(--subtext)}.mem-stat{font-size:11.5px;color:var(--subtext)}.badge{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--subtext);background:color-mix(in srgb,var(--text) 10%,transparent)}.forget-wrap{display:inline-flex;align-items:center;gap:6px;margin-top:8px}.forget-btn{padding:4px 9px;border:none;border-radius:8px;background:none;color:#b23b2a;font:inherit;font-size:11.5px;cursor:pointer}.forget-btn:hover{background:color-mix(in srgb,#b23b2a 12%,transparent)}.forget-confirm-text{font-size:11.5px;color:var(--subtext)}.forget-yes{padding:4px 9px;border:none;border-radius:8px;background:#b23b2a;color:#fff;font:inherit;font-size:11.5px;cursor:pointer}.forget-no{padding:4px 9px;border:none;border-radius:8px;background:none;color:var(--subtext);font:inherit;font-size:11.5px;cursor:pointer}.why-query{margin:4px 0 8px;font-size:12.5px;font-style:italic;color:var(--subtext)}.why-head{margin:10px 0 4px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--subtext)}.why-group{margin-bottom:6px}.why-source{margin-bottom:3px;font-size:11px;color:var(--subtext)}.why-item{margin-bottom:2px;padding:3px 0 3px 8px;border-left:2px solid var(--border);font-size:12.5px}.why-item-person{border-left-style:dashed}.why-person-tag{margin-right:4px;font-size:11px}.why-none{font-size:12px;font-style:italic;color:var(--subtext)}.bctx{margin:10px 0;display:flex;flex-direction:column;gap:8px}.bctx-row{display:flex;flex-direction:column;gap:3px}.bctx-top{display:flex;justify-content:space-between;font-size:11.5px;color:var(--subtext)}.bctx-track{height:6px;border-radius:3px;background:var(--border);overflow:hidden}.bctx-bar{height:100%}.bctx-bar.full{background:var(--subtext)}.bctx-bar.work{background:var(--accent)}.turn-row{margin-bottom:6px;padding:2px 10px;border-radius:var(--r-field);background:var(--surface);border:1px solid var(--border)}.turn-row summary{padding:8px 0;font-size:12.5px;cursor:pointer}.turn-detail{display:flex;flex-direction:column;gap:6px;padding:4px 0 10px}.mem-tap{max-height:240px;overflow-y:auto;padding:8px;border-radius:8px;background:var(--bg);border:1px solid var(--border);font-size:11.5px;white-space:pre-wrap;word-break:break-word}.self-discard,.self-crystallized{padding:6px 8px;border-radius:8px;background:color-mix(in srgb,var(--accent) 8%,transparent)}.quoted{font-style:italic}.person-card{margin-bottom:10px;padding:10px;border-radius:var(--r-field);background:var(--surface);border:1px solid var(--border)}.person-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.person-label{font-size:13px;font-weight:600}.person-memories{margin-top:6px}.interaction-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--border);font-size:12px}.interaction-row:last-child{border-bottom:none}.mem-toggle{display:block;margin:4px 0;font-size:12.5px}.pane-btn{margin:6px 0;padding:7px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;cursor:pointer}.advanced summary{margin-bottom:8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--subtext);cursor:pointer}
