
:root{--bg:#0b0f17;--panel:#121826;--panel2:#18202f;--line:#232c3d;--text:#e9edf5;--mute:#8d97ab;--accent:#7c5cff;--accent2:#5ad1c8;--danger:#ff5c7a;--ok:#4cd98b;--warn:#ffb648;--bubble-me:#2a2f7a;--bubble-ai:#1a2233;--radius:16px;--top:env(safe-area-inset-top,0px);--bot:env(safe-area-inset-bottom,0px)}
:root[data-theme="light"]{--bg:#f4f6fb;--panel:#ffffff;--panel2:#f0f2f8;--line:#dfe3ee;--text:#111827;--mute:#5b6577;--bubble-me:#e4e0ff;--bubble-ai:#eef1f7}
*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}
a{color:var(--accent2)}
.app{min-height:100%;display:flex;flex-direction:column}
.boot{padding:40px 20px;color:var(--mute);text-align:center}
.toast{position:fixed;left:50%;bottom:calc(24px + var(--bot));transform:translateX(-50%);background:var(--panel2);border:1px solid var(--line);padding:10px 14px;border-radius:12px;z-index:60;max-width:92vw;box-shadow:0 10px 30px rgba(0,0,0,.35)}

.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;padding:calc(10px + var(--top)) 12px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top .title{flex:1;text-align:center;font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ic{width:38px;height:38px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--line);font-size:18px}
.ic:active{transform:scale(.96)}

.threads{padding:12px;display:flex;flex-direction:column;gap:8px}
.sech{color:var(--mute);font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:12px 4px 2px}
.row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;text-align:left;width:100%}
.row .av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.row .av.sms{background:linear-gradient(135deg,#38b6ff,#5ad1c8)}.row .av.tasks{background:linear-gradient(135deg,#ffb648,#ff5c7a)}
.row .body{flex:1;min-width:0}.row .name{font-weight:600}.row .sub{color:var(--mute);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .when{color:var(--mute);font-size:12px;flex:none}
.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;background:var(--panel2);border:1px solid var(--line);color:var(--mute)}
.pill.ok{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 40%,var(--line))}.pill.warn{color:var(--warn)}.pill.bad{color:var(--danger)}

.chat{flex:1;display:flex;flex-direction:column;min-height:0}
.msgs{flex:1;overflow-y:auto;padding:12px 12px 8px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}
.msg{max-width:84%;padding:10px 14px;border-radius:18px;white-space:pre-wrap;word-wrap:break-word}
.msg.user{align-self:flex-end;background:var(--bubble-me);border-bottom-right-radius:6px}
.msg.assistant{align-self:flex-start;background:var(--bubble-ai);border-bottom-left-radius:6px}
.msg .meta{display:block;color:var(--mute);font-size:11px;margin-top:4px}
.msg.sys{align-self:center;background:none;color:var(--mute);font-size:12px;text-align:center;max-width:95%}
.card{align-self:flex-start;max-width:92%;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.card .k{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--mute)}
.card .t{font-weight:600}.card .d{color:var(--mute);font-size:13px}
.card .thumb{width:100%;aspect-ratio:16/9;border-radius:10px;background:repeating-linear-gradient(135deg,var(--panel2) 0 12px,var(--panel) 12px 24px);display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:12px;border:1px solid var(--line)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border-radius:12px;background:var(--accent);color:#fff;font-weight:600}
.btn.sec{background:var(--panel2);color:var(--text);border:1px solid var(--line)}.btn.danger{background:var(--danger)}.btn.sm{padding:6px 10px;font-size:13px}.btn:disabled{opacity:.45;cursor:not-allowed}
.btnrow{display:flex;gap:8px;flex-wrap:wrap}
.banner{position:sticky;top:0;z-index:5;margin:8px 12px 0;background:color-mix(in srgb,var(--accent) 22%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 50%,var(--line));border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:10px;font-size:13px}
.banner .grow{flex:1}
.note{margin:8px 12px 0;background:var(--panel);border:1px dashed var(--line);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--mute)}
.composer{position:sticky;bottom:0;padding:8px 10px calc(10px + var(--bot));background:var(--bg);border-top:1px solid var(--line);display:flex;align-items:flex-end;gap:8px}
.composer textarea{flex:1;resize:none;max-height:140px;min-height:42px;padding:10px 14px;border-radius:20px;background:var(--panel);border:1px solid var(--line);outline:none}
.composer .ic.send{background:var(--accent);border-color:transparent;color:#fff}.composer .ic.talk[disabled]{opacity:.4}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:8px 12px;border-radius:999px;background:var(--panel2);border:1px solid var(--line)}

.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:50;display:flex;align-items:flex-end;justify-content:center}
.sheet{width:100%;max-width:560px;background:var(--panel);border-radius:22px 22px 0 0;padding:14px 16px calc(18px + var(--bot));border:1px solid var(--line);max-height:88vh;overflow-y:auto}
.sheet h3{margin:6px 0 8px;font-size:17px}.sheet p{color:var(--mute);margin:6px 0 12px;font-size:14px}
.field{display:flex;flex-direction:column;gap:4px;margin:8px 0}.field label{font-size:12px;color:var(--mute)}
.field input,.field select,.field textarea{padding:11px 12px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);outline:none}

.page{padding:12px;display:flex;flex-direction:column;gap:10px}
.srow{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:13px 14px;width:100%;text-align:left}
.srow .lbl{flex:1}.srow .lbl small{display:block;color:var(--mute);font-size:12px}.srow .chev{color:var(--mute)}
.sw{width:46px;height:28px;border-radius:999px;background:var(--line);position:relative;flex:none;transition:.15s}.sw::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.15s}.sw.on{background:var(--accent)}.sw.on::after{left:21px}
.group{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden}.group .srow{border:0;border-radius:0;border-bottom:1px solid var(--line)}.group .srow:last-child{border-bottom:0}
.hero{padding:22px 16px 8px;text-align:center}.hero .big{width:76px;height:76px;border-radius:50%;margin:0 auto 10px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:30px;font-weight:700}
.hero h2{margin:4px 0}.hero p{color:var(--mute);margin:0}
.signin{max-width:420px;margin:12vh auto;padding:20px}
.signin h1{font-size:26px;margin:0 0 6px}.signin p{color:var(--mute)}
.err{color:var(--danger);font-size:13px}
.empty{color:var(--mute);text-align:center;padding:24px 12px}
.prose p{margin:0 0 10px}.prose ul{margin:0 0 10px 18px;padding:0}

.app{max-width:560px;margin:0 auto}
