/* =====================================================================
   Kiya · Assistant Console — visual system v2
   Deliberate dark console: ink-black + deep indigo-blue + white.
   Cohesive tokens, crisp hairlines, restrained glass, calm motion.
   Every selector the SPA relies on is preserved; only the look changed.
   ===================================================================== */
:root{
  /* surfaces (darkest → lightest) */
  --bg:#04060c;
  --bg-deep:#070b15;
  --bg-elev:#0c1322;
  --bg-elev-2:#111b2f;
  --bg-sink:#070b14;

  /* ink */
  --text:#eef3fc;
  --text-dim:#aeb9d2;
  --hint:#7e8aa8;            /* AA on dark surfaces */

  /* brand */
  --accent:#3b6cf6;
  --accent-soft:#5b86ff;
  --accent-deep:#1c39a8;
  --accent-ink:#ffffff;
  --link:#7ea2ff;

  /* semantic */
  --danger:#ff5d6c;
  --ok:#2fd4a0;
  --warn:#ffb648;

  /* lines & bubbles */
  --border:rgba(132,164,255,.12);
  --border-strong:rgba(140,170,255,.22);
  --hair:rgba(255,255,255,.07);
  --bub-in:#121d33;
  --bub-out:linear-gradient(165deg,var(--accent-soft),var(--accent) 55%,var(--accent-deep));

  /* shape & depth */
  --r-xs:9px; --r-sm:12px; --r:16px; --r-lg:20px; --r-pill:999px;
  --shadow-sm:0 4px 14px rgba(0,0,0,.34);
  --shadow:0 14px 40px rgba(0,0,0,.5);
  --glow:0 8px 26px color-mix(in srgb,var(--accent) 40%,transparent);

  /* type */
  --sans:"Inter","Vazirmatn",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  /* motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --dur:.26s;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--sans); font-size:15px; line-height:1.5;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overscroll-behavior:none;
}
.hidden{display:none !important}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.icn{width:20px;height:20px;stroke:currentColor;stroke-width:2;fill:none;
  stroke-linecap:round;stroke-linejoin:round;display:block}

button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
input,textarea,select{font:inherit;color:inherit}
::placeholder{color:var(--hint)}
:focus-visible{outline:2px solid var(--accent-soft);outline-offset:2px;border-radius:8px}
::selection{background:color-mix(in srgb,var(--accent) 45%,transparent)}
@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}}

/* ---------- ambient backdrop ---------- */
#login,#app{position:relative;z-index:1}
.bg-orbs{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.bg-orbs span{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;will-change:transform}
.bg-orbs span:nth-child(1){width:52vmax;height:52vmax;left:-16vmax;top:-18vmax;
  background:radial-gradient(circle,var(--accent),transparent 64%);animation:orb1 26s ease-in-out infinite}
.bg-orbs span:nth-child(2){width:46vmax;height:46vmax;right:-18vmax;top:10vmax;
  background:radial-gradient(circle,var(--accent-deep),transparent 64%);opacity:.4;animation:orb2 33s ease-in-out infinite}
.bg-orbs span:nth-child(3){width:44vmax;height:44vmax;left:6vmax;bottom:-22vmax;
  background:radial-gradient(circle,#15347e,transparent 64%);opacity:.36;animation:orb3 30s ease-in-out infinite}
@keyframes orb1{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(9vmax,7vmax) scale(1.15)}}
@keyframes orb2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-8vmax,10vmax) scale(1.12)}}
@keyframes orb3{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(7vmax,-9vmax) scale(1.13)}}
.bg-orbs::before,.bg-orbs::after{content:"";position:absolute;border:1.5px solid rgba(255,255,255,.05);pointer-events:none}
.bg-orbs::before{width:42vmax;height:42vmax;border-radius:50%;right:-8vmax;bottom:-6vmax;animation:spin 96s linear infinite}
.bg-orbs::after{width:26vmax;height:26vmax;left:6vmax;top:8vmax;border-radius:24px;transform:rotate(18deg);
  animation:spin 74s linear infinite reverse;border-color:rgba(255,255,255,.04)}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.bg-orbs span{animation:none}}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:11px 16px;border-radius:var(--r-sm);font-weight:650;letter-spacing:.01em;line-height:1;
  background:rgba(255,255,255,.045);border:1px solid var(--border-strong);
  transition:background var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.btn .icn{width:17px;height:17px}
.btn:hover{background:rgba(255,255,255,.09);transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.97)}
.btn.accent{border:0;color:var(--accent-ink);
  background:linear-gradient(180deg,var(--accent-soft),var(--accent));
  box-shadow:var(--glow),inset 0 1px 0 rgba(255,255,255,.3)}
.btn.accent:hover{box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 55%,transparent),inset 0 1px 0 rgba(255,255,255,.34)}
.btn.ghost{background:transparent}
.btn.full{width:100%;margin-top:8px}
.btn.sm{padding:8px 13px;font-size:13.5px;border-radius:var(--r-xs)}
.btn.danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,transparent);
  border-color:color-mix(in srgb,var(--danger) 38%,transparent)}
.btn.danger:hover{background:color-mix(in srgb,var(--danger) 20%,transparent)}

/* ---------- login ---------- */
#login{min-height:100dvh;display:grid;place-items:center;padding:24px}
.logincard{width:100%;max-width:372px;background:color-mix(in srgb,var(--bg-elev) 84%,transparent);
  border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:30px 26px;box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5)}
.logincard .mark{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;
  background:linear-gradient(165deg,var(--accent-soft),var(--accent-deep));color:var(--accent-ink);
  margin-bottom:18px;box-shadow:var(--glow)}
.logincard h1{margin:0 0 5px;font-size:23px;font-weight:800;letter-spacing:-.02em}
.logincard p{margin:0 0 18px;color:var(--text-dim);font-size:13.5px}
.lbl{display:block;font-size:12px;color:var(--hint);margin:12px 2px 6px;font-weight:600;letter-spacing:.01em}
.field input{width:100%;padding:12px 14px;background:var(--bg-sink);
  border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--dur),box-shadow var(--dur)}
.field input:focus{border-color:transparent;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 32%,transparent)}
.err{color:var(--danger);font-size:13px;min-height:18px;margin-bottom:2px}
.fineprint{margin:16px 0 0;text-align:center;color:var(--hint);font-size:12px}

/* ---------- app shell ---------- */
#app{height:100dvh;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;gap:10px;padding:10px 14px;
  padding-top:max(10px,env(safe-area-inset-top));
  background:color-mix(in srgb,var(--bg-elev) 68%,transparent);border-bottom:1px solid var(--hair);
  -webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6)}
.brand{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.02em}
.brand .m{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;
  background:linear-gradient(165deg,var(--accent-soft),var(--accent-deep));color:var(--accent-ink);box-shadow:var(--shadow-sm)}
.status{display:flex;gap:6px;flex:1;overflow-x:auto;scrollbar-width:none}
.status::-webkit-scrollbar{display:none}
.chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  padding:6px 11px;border-radius:var(--r-pill);font-size:12.5px;font-weight:600;
  background:var(--bg-sink);border:1px solid var(--border);color:var(--hint);min-height:32px;
  transition:background var(--dur),color var(--dur),border-color var(--dur),transform var(--dur)}
.chip .icn{width:15px;height:15px}
.chip[disabled]{cursor:default}
.chip:not([disabled]):hover{color:var(--text);border-color:var(--border-strong)}
.chip:active{transform:scale(.94)}
.chip.on{color:var(--text);border-color:color-mix(in srgb,var(--ok) 50%,transparent);
  background:color-mix(in srgb,var(--ok) 12%,var(--bg-sink))}
.chip.on .icn{color:var(--ok)}
.chip.warn{color:var(--text);border-color:color-mix(in srgb,var(--warn) 52%,transparent);
  background:color-mix(in srgb,var(--warn) 12%,var(--bg-sink))}
.chip.warn .icn{color:var(--warn)}
.iconbtn{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;color:var(--hint);
  transition:background var(--dur),color var(--dur),transform var(--dur)}
.iconbtn:hover{background:rgba(255,255,255,.06);color:var(--text)}
.iconbtn:active{transform:scale(.92)}
.iconbtn.send{color:var(--accent-soft)}
.iconbtn.sm{width:32px;height:32px;border-radius:9px}

/* ---------- nav ---------- */
.nav{display:flex;gap:3px;padding:7px 10px;overflow-x:auto;scrollbar-width:none;
  background:color-mix(in srgb,var(--bg-elev) 60%,transparent);border-bottom:1px solid var(--hair);
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.nav::-webkit-scrollbar{display:none}
.nav button{display:flex;align-items:center;gap:8px;padding:9px 15px;border-radius:var(--r-xs);
  color:var(--hint);font-weight:600;font-size:13.5px;white-space:nowrap;position:relative;
  transition:background var(--dur),color var(--dur)}
.nav button:hover{color:var(--text)}
.nav button.active{color:var(--text);background:rgba(255,255,255,.05)}
.nav button.active::after{content:"";position:absolute;left:14px;right:14px;bottom:-3px;height:2.5px;
  border-radius:3px;background:linear-gradient(90deg,var(--accent-soft),var(--accent))}
.nav button.active .ni{color:var(--accent-soft)}
.nav .ni{display:grid;place-items:center}
.nav .ni .icn{width:18px;height:18px}
.badge{font-family:var(--mono);font-size:11px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:var(--danger);color:#fff;display:grid;place-items:center;box-shadow:0 2px 8px color-mix(in srgb,var(--danger) 50%,transparent)}

/* ---------- layout ---------- */
.main{flex:1;min-height:0;display:flex;flex-direction:column;background:transparent}
.view{flex:1;min-height:0;background:transparent}
.view.pad{padding:18px;overflow-y:auto;display:flex;flex-direction:column;align-items:center}
.view.pad>div{width:100%;max-width:780px}
.view:not(.hidden){animation:viewIn .5s var(--ease) both}
@keyframes viewIn{0%{opacity:0;transform:translateY(14px);filter:blur(14px)}60%{filter:blur(3px)}100%{opacity:1;transform:none;filter:blur(0)}}

/* ---------- chats: split ---------- */
.split{height:100%;display:grid;grid-template-columns:minmax(290px,350px) 1fr;position:relative}
.side{border-right:1px solid var(--hair);display:flex;flex-direction:column;min-height:0;
  background:color-mix(in srgb,var(--bg-elev) 46%,transparent);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.tools{display:flex;gap:8px;padding:13px;border-bottom:1px solid var(--hair)}
.searchwrap{flex:1}
.tools input{width:100%;padding:10px 13px;background:var(--bg-sink);border:1px solid var(--border);
  border-radius:var(--r-xs);font-size:14px;transition:border-color var(--dur),box-shadow var(--dur)}
.tools input:focus{border-color:transparent;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent)}
.filtbtn{padding:10px 13px;border-radius:var(--r-xs);font-size:13px;font-weight:600;
  background:var(--bg-sink);border:1px solid var(--border);color:var(--hint);transition:all var(--dur) var(--ease)}
.filtbtn:hover{color:var(--text);border-color:var(--border-strong)}
.filtbtn.on{background:linear-gradient(180deg,var(--accent-soft),var(--accent));color:var(--accent-ink);
  border-color:transparent;box-shadow:var(--glow)}
.clist{flex:1;overflow-y:auto;padding:8px}
.ci{display:flex;gap:12px;align-items:center;padding:11px;border-radius:14px;cursor:pointer;
  border:1px solid transparent;transition:background var(--dur),transform var(--dur),border-color var(--dur)}
.ci:hover{background:rgba(255,255,255,.04);transform:translateX(2px)}
.ci.sel{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:color-mix(in srgb,var(--accent) 36%,transparent)}
.ci .meta{flex:1;min-width:0}
.ci .top{display:flex;align-items:center;gap:7px}
.ci .nm{font-weight:650;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ci .pv{color:var(--hint);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.mtag{font-size:11px;color:var(--warn);font-weight:600}
.badge2{font-family:var(--mono);font-size:11px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;
  background:linear-gradient(180deg,var(--accent-soft),var(--accent));color:var(--accent-ink);display:grid;place-items:center}

.av{position:relative;width:46px;height:46px;border-radius:50%;flex:none;overflow:hidden;
  display:grid;place-items:center;color:#fff;font-weight:700;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.av.sm{width:38px;height:38px;font-size:14px}
.av span{position:relative;z-index:1;text-shadow:0 1px 3px rgba(0,0,0,.35)}
.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* ---------- conversation ---------- */
.conv{display:flex;flex-direction:column;min-height:0}
.ch{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--hair);
  background:color-mix(in srgb,var(--bg-elev) 58%,transparent);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.ch .back{display:none}
.ch .who{flex:1;min-width:0}
.ch .nm{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch .sub{font-family:var(--mono);font-size:11.5px;color:var(--hint);margin-top:2px}
.ch .acts{display:flex;gap:3px}

.msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:3px;background:transparent}
.empty{margin:auto;max-width:300px;text-align:center;color:var(--hint);font-size:14px;padding:28px;line-height:1.6}
.daysep{align-self:center;margin:12px 0;font-size:11px;color:var(--text-dim);font-weight:600;
  background:color-mix(in srgb,var(--bg-elev) 70%,transparent);border:1px solid var(--hair);
  padding:4px 13px;border-radius:var(--r-pill);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.msgrow{display:flex;align-items:flex-end;gap:6px}
.msgrow.out{flex-direction:row-reverse}
.msgrow .qbtn{opacity:0;width:28px;height:28px;border-radius:8px;display:grid;place-items:center;
  color:var(--hint);transition:opacity var(--dur),background var(--dur);flex:none;align-self:center}
.msgrow:hover .qbtn{opacity:1}
.msgrow .qbtn:hover{background:rgba(255,255,255,.06);color:var(--text)}
.msgrow:last-child{animation:msgIn .42s var(--ease) both}
@keyframes msgIn{0%{opacity:0;transform:translateY(12px) scale(.97);filter:blur(8px)}100%{opacity:1;transform:none;filter:blur(0)}}
.bub{max-width:min(78%,560px);padding:9px 13px;border-radius:18px;position:relative;
  font-size:14.5px;line-height:1.5;word-wrap:break-word;overflow-wrap:anywhere;box-shadow:var(--shadow-sm)}
.bub.in{background:color-mix(in srgb,var(--bub-in) 80%,transparent);border-bottom-left-radius:6px;
  border:1px solid var(--hair);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.bub.out{background:var(--bub-out);color:var(--accent-ink);border-bottom-right-radius:6px;
  box-shadow:0 6px 20px color-mix(in srgb,var(--accent) 30%,transparent)}
.bub.cmd{background:color-mix(in srgb,var(--warn) 20%,var(--bub-in));border:1px solid color-mix(in srgb,var(--warn) 42%,transparent);color:var(--text)}
.bub.sending{opacity:.6}
.bub .tx{display:block;white-space:pre-wrap}
.bub .tm{font-family:var(--mono);font-size:10px;opacity:.62;float:right;margin:6px 0 -2px 10px}
.bub .qreply{display:block;border-left:3px solid currentColor;opacity:.85;padding:2px 0 2px 9px;
  margin-bottom:6px;font-size:12.5px;cursor:pointer;max-height:3.2em;overflow:hidden}
.bub.flash{animation:flash 1.4s ease}
@keyframes flash{0%,100%{box-shadow:var(--shadow-sm)}30%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 65%,transparent)}}

/* ---------- replybar + composer ---------- */
.replybar{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid var(--hair);
  background:color-mix(in srgb,var(--bg-elev) 60%,transparent);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.rb-ic{color:var(--accent-soft);display:grid;place-items:center}
.rb-inner{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.rb-label{font-size:11px;color:var(--accent-soft);font-weight:700}
.rb-text{font-size:13px;color:var(--hint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.composer{display:flex;align-items:flex-end;gap:8px;padding:11px 14px;
  padding-bottom:max(11px,env(safe-area-inset-bottom));border-top:1px solid var(--hair);
  background:color-mix(in srgb,var(--bg-elev) 60%,transparent);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.composer .iconbtn{flex:none}
.composer textarea{flex:1;min-width:0;resize:none;min-height:44px;max-height:140px;display:block;
  padding:11px 16px;font-size:15px;line-height:1.45;background:var(--bg-sink);
  border:1px solid var(--border-strong);border-radius:20px;transition:border-color var(--dur),box-shadow var(--dur)}
.composer textarea:focus{border-color:transparent;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 26%,transparent)}

/* ---------- cards (pending / tasks / settings) ---------- */
.section{background:color-mix(in srgb,var(--bg-elev) 66%,transparent);border:1px solid var(--border);
  border-radius:var(--r-lg);padding:18px;margin:0 auto 14px;max-width:780px;
  -webkit-backdrop-filter:blur(20px) saturate(1.4);backdrop-filter:blur(20px) saturate(1.4);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur)}
.section h3{margin:0 0 15px;padding-bottom:12px;border-bottom:1px solid var(--hair);
  display:flex;align-items:center;gap:9px;font-size:15.5px;font-weight:700;letter-spacing:-.01em}
.section h3 .icn{width:18px;height:18px;color:var(--accent-soft)}
.row{display:flex;flex-direction:column;gap:6px;margin-bottom:13px}
.row label{font-size:12px;color:var(--hint);font-weight:600}
.row input,.row textarea,.row select{width:100%;padding:11px 13px;background:rgba(255,255,255,.04);
  border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--dur),box-shadow var(--dur)}
.row select{color:var(--text)}
.row select option{background:var(--bg-elev);color:var(--text)}
.row input:focus,.row textarea:focus,.row select:focus{border-color:transparent;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}
.row textarea{resize:vertical;min-height:66px;line-height:1.55}
.note{color:var(--hint);font-size:12.5px;margin:0 0 12px;line-height:1.55}
.note code{font-family:var(--mono);font-size:11.5px;background:var(--bg-sink);padding:1px 6px;border-radius:6px;color:var(--text-dim)}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.chips button,.pchip{padding:7px 13px;border-radius:var(--r-pill);font-size:13px;font-weight:600;
  background:var(--bg-sink);border:1px solid var(--border);color:var(--text-dim);transition:all var(--dur) var(--ease)}
.chips button:hover,.pchip:hover{border-color:var(--border-strong);color:var(--text)}
.pchip.on{background:linear-gradient(180deg,var(--accent-soft),var(--accent));color:var(--accent-ink);
  border-color:transparent;box-shadow:var(--glow)}

.pcard{display:flex;align-items:center;gap:12px;background:color-mix(in srgb,var(--bg-elev) 66%,transparent);
  border:1px solid var(--border);border-radius:var(--r);padding:13px;margin:0 auto 10px;max-width:780px;flex-wrap:wrap;
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.pendbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 auto 12px;max-width:780px;flex-wrap:wrap}
.pendbar .note{margin:0}
.kitem{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--hair)}
.kitem:last-of-type{border-bottom:0}
.kitem span{flex:1;min-width:0;overflow-wrap:anywhere}
.del{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:var(--danger);flex:none;
  border:1px solid transparent;transition:background var(--dur),border-color var(--dur)}
.del:hover{background:color-mix(in srgb,var(--danger) 16%,transparent);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}

/* ---------- assistant ---------- */
.asst{height:100%;display:flex;flex-direction:column;min-height:0}
.asst .log{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:8px;background:transparent}

/* ---------- modal / toast / menu ---------- */
.overlay{position:fixed;inset:0;background:color-mix(in srgb,#000 46%,transparent);display:grid;place-items:center;
  padding:18px;z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .26s both}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{width:100%;max-width:448px;background:color-mix(in srgb,var(--bg-elev) 88%,transparent);
  border:1px solid var(--border-strong);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);
  animation:popIn .42s var(--ease) both}
@keyframes popIn{0%{opacity:0;transform:translateY(16px) scale(.95);filter:blur(12px)}100%{opacity:1;transform:none;filter:blur(0)}}
.modal h3{margin:0 0 14px;font-size:17px;font-weight:700}
.modal textarea,.modal input{width:100%;padding:11px 13px;background:var(--bg-sink);
  border:1px solid var(--border);border-radius:var(--r-sm);margin-bottom:10px}
.modal textarea{min-height:82px;resize:vertical;line-height:1.55}
.modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;flex-wrap:wrap}
.msgmenu{position:fixed;z-index:60;background:color-mix(in srgb,var(--bg-elev) 90%,transparent);
  border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:6px;box-shadow:var(--shadow);min-width:158px;
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.msgmenu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:9px;font-size:14px}
.msgmenu button:hover{background:rgba(255,255,255,.06)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);
  background:var(--text);color:var(--bg);padding:10px 18px;border-radius:var(--r-pill);font-size:13.5px;font-weight:650;
  opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:80;box-shadow:var(--shadow)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);animation:toastIn .5s var(--ease) both}
@keyframes toastIn{0%{opacity:0;transform:translateX(-50%) translateY(22px) scale(.9)}100%{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}

/* ---------- responsive ---------- */
@media (max-width:760px){
  .split{grid-template-columns:1fr}
  .side{border-right:0}
  .conv{position:absolute;inset:0;background:var(--bg);transform:translateX(100%);
    transition:transform .34s var(--ease);z-index:5}
  .split.show-conv .conv{transform:translateX(0)}
  .ch .back{display:grid}
  .nav .nl{display:none}
  .nav button{padding:9px 16px}
  .nav button.active::after{left:12px;right:12px}
  .bub{max-width:84%}
}
@media (max-width:480px){
  body{font-size:14.5px}
  .brand .hidem{display:none}
  .topbar{gap:7px;padding:8px 11px}
  .chip{padding:5px 9px;font-size:11.5px;min-height:30px}
  .chip span:not(.icn){max-width:76px;overflow:hidden;text-overflow:ellipsis}
  .iconbtn{width:36px;height:36px}
  .view.pad{padding:13px;padding-bottom:max(13px,env(safe-area-inset-bottom))}
  .section,.modal{padding:16px}
  .msgs{padding:13px}
  .bub{max-width:88%}
  .nav button{padding:9px 13px}
  .composer textarea{font-size:16px}   /* ≥16px stops mobile WebView zoom-on-focus */
  /* مودال روی گوشی به‌صورتِ bottom-sheet — دسترسیِ راحت‌ترِ انگشت */
  .overlay{place-items:end center;padding:0}
  .modal{max-width:none;border-radius:var(--r-lg) var(--r-lg) 0 0;border-bottom:0;
    padding:18px 16px max(18px,env(safe-area-inset-bottom))}
  @keyframes popIn{0%{opacity:0;transform:translateY(28px)}100%{opacity:1;transform:none}}
}
@media (max-width:360px){.brand{display:none}}
/* لمسی: hover نداریم — دکمه‌ی ریپلایِ کنارِ حباب همیشه دیده شود */
@media (hover:none){.msgrow .qbtn{opacity:.75}}
