/* Session chat (internal/chatui): phone-style bubbles. Own messages on the right in the accent
   color, others on the left in grey with the sender's name above a run; system events small and
   centered; images and videos inline; files as chips. */
.fsc { --fsc-accent:#EEE8AA; --fsc-accent-ink:#141414; --fsc-grey:#2f3136; --fsc-ink:#f2f2f2; --fsc-muted:#9a9ba0;
  display:flex; flex-direction:column; min-height:0; font-family:inherit; font-size:13.5px; position:relative; color-scheme:dark; }
.fsc-log { flex:1; min-height:80px; overflow-y:auto; display:flex; flex-direction:column; padding:4px 2px 6px; gap:2px; overscroll-behavior:contain; }
.fsc-time { align-self:center; color:var(--fsc-muted); font-size:11px; margin:10px 0 4px; }
.fsc-event { align-self:center; text-align:center; color:var(--fsc-muted); font-size:11.5px; line-height:1.3; margin:5px 14px; max-width:92%; }
.fsc-name { color:var(--fsc-muted); font-size:11px; margin:7px 0 1px 12px; }
.fsc-row { display:flex; }
.fsc-row.me { justify-content:flex-end; }
.fsc-b { max-width:78%; padding:7px 11px; border-radius:18px; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.35; }
.fsc-row.them .fsc-b { background:var(--fsc-grey); color:var(--fsc-ink); }
.fsc-row.me .fsc-b { background:var(--fsc-accent); color:var(--fsc-accent-ink); }
.fsc-row.them.cont .fsc-b { border-top-left-radius:6px; }
.fsc-row.them.more .fsc-b { border-bottom-left-radius:6px; }
.fsc-row.me.cont .fsc-b { border-top-right-radius:6px; }
.fsc-row.me.more .fsc-b { border-bottom-right-radius:6px; }
.fsc-row.pending .fsc-b { opacity:.55; }
.fsc-b.media { padding:0; overflow:hidden; background:transparent !important; line-height:0; }
.fsc-b.media img, .fsc-b.media video { display:block; max-width:min(240px, 100%); max-height:240px; border-radius:inherit; background:#000; }
.fsc-b.media img { cursor:zoom-in; min-width:40px; min-height:40px; object-fit:cover; }
.fsc-file { display:flex; align-items:center; gap:9px; text-decoration:none; color:inherit; min-width:150px; max-width:260px; cursor:pointer; }
.fsc-file svg { flex:none; width:26px; height:26px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linejoin:round; }
.fsc-file .fn { display:block; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.25; }
.fsc-file .fs { display:block; font-size:11.5px; opacity:.7; line-height:1.25; }
.fsc-file > span { min-width:0; }
.fsc-off { color:var(--fsc-muted); font-size:12px; margin:4px 4px 6px; }
.fsc-compose { display:flex; gap:6px; align-items:flex-end; padding-top:6px; }
.fsc-compose textarea { flex:1; resize:none; min-height:20px; max-height:120px; background:#111214; color:#fff; border:1px solid #3a3b40; border-radius:18px; padding:8px 12px; font:inherit; line-height:1.3; outline:none; }
.fsc-compose textarea:focus { border-color:var(--fsc-accent); }
.fsc-ib { flex:none; width:34px; height:34px; border-radius:50%; border:1px solid #3a3b40; background:transparent; color:var(--fsc-ink); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; padding:0; }
.fsc-ib svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.fsc-ib.send { background:var(--fsc-accent); color:var(--fsc-accent-ink); border-color:var(--fsc-accent); }
.fsc-ib:disabled { opacity:.4; cursor:default; }
.fsc.drag::after { content:"Drop to share"; position:absolute; inset:0; border:2px dashed var(--fsc-accent); border-radius:10px; background:rgba(0,0,0,.6); color:var(--fsc-accent); display:flex; align-items:center; justify-content:center; font-weight:700; pointer-events:none; }
.fsc-lightbox { position:fixed; inset:0; z-index:2147483000; background:rgba(0,0,0,.88); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; }
.fsc-lightbox img { max-width:94vw; max-height:84vh; object-fit:contain; }
.fsc-lightbox .bar { display:flex; gap:14px; align-items:center; color:#ddd; font-size:13px; }
.fsc-lightbox a, .fsc-lightbox button { color:var(--fsc-accent); background:none; border:1px solid rgba(238,232,170,.5); border-radius:16px; padding:5px 14px; font:inherit; cursor:pointer; text-decoration:none; }
.fsc .fsc-ib:hover:not(:disabled) { background:rgba(255,255,255,.12); }
.fsc .fsc-ib.send:hover:not(:disabled) { background:var(--fsc-accent); filter:brightness(1.08); }
.fsc-b.voice { padding:5px 6px; }
.fsc-b.voice audio { display:block; width:240px; max-width:100%; height:36px; }
.fsc-rec { flex:1; color:#ff6b6b; font-variant-numeric:tabular-nums; padding:8px 4px; }
.fsc-ib.rec { background:#d93838; border-color:#d93838; color:#fff; }
