/* v51C · Chat / Private Line. Compact retro correspondence with editable paired avatars. */
.view[data-view="chat"]{
  --chat-mono:"SFMono-Regular","Cascadia Mono","Roboto Mono",Menlo,Consolas,monospace;
  --chat-serif:"Songti SC","STSong","Noto Serif CJK SC",Georgia,serif;
  --chat-ink:#39425a;
  --chat-soft:#778096;
  --chat-rule:rgba(77,91,125,.31);
  --chat-rule-strong:rgba(62,76,108,.48);
  --chat-river:rgba(230,239,245,.83);
  --chat-me:rgba(250,232,241,.84);
  --chat-paper:rgba(246,248,251,.88);
  --chat-shadow:rgba(40,51,78,.10);
  height:var(--app-height);
  padding:max(14px,env(safe-area-inset-top)) max(15px,env(safe-area-inset-right)) 0 max(15px,env(safe-area-inset-left));
  background:
    radial-gradient(ellipse 85% 29% at 100% 1%,rgba(196,224,235,.30),transparent 76%),
    radial-gradient(ellipse 72% 25% at 0% 72%,rgba(232,190,216,.16),transparent 78%),
    repeating-linear-gradient(180deg,transparent 0 31px,rgba(88,101,132,.035) 31px 32px);
}
:root[data-phase="dusk"] .view[data-view="chat"]{
  --chat-ink:#554156;--chat-soft:#8e748c;--chat-rule:rgba(137,91,130,.30);--chat-rule-strong:rgba(119,74,112,.46);
  --chat-river:rgba(235,227,241,.82);--chat-me:rgba(255,231,242,.86);--chat-paper:rgba(252,243,248,.90);--chat-shadow:rgba(92,55,84,.10);
  background:radial-gradient(ellipse 80% 28% at 100% 0%,rgba(234,183,209,.29),transparent 78%),radial-gradient(ellipse 70% 24% at 0% 73%,rgba(196,183,221,.18),transparent 78%),repeating-linear-gradient(180deg,transparent 0 31px,rgba(128,82,118,.035) 31px 32px);
}
:root[data-phase="night"] .view[data-view="chat"]{
  --chat-ink:#edf0f7;--chat-soft:#aeb6ca;--chat-rule:rgba(188,198,222,.20);--chat-rule-strong:rgba(203,211,232,.34);
  --chat-river:rgba(35,47,68,.88);--chat-me:rgba(65,42,65,.87);--chat-paper:rgba(27,32,48,.94);--chat-shadow:rgba(0,0,0,.28);
  background:radial-gradient(ellipse 86% 30% at 100% 0%,rgba(75,101,139,.24),transparent 78%),radial-gradient(ellipse 72% 26% at 0% 72%,rgba(123,72,119,.20),transparent 80%),repeating-linear-gradient(180deg,transparent 0 31px,rgba(218,224,241,.025) 31px 32px),linear-gradient(145deg,#211d31,#2a2036 68%,#1e1b2a);
}

/* Header / live private line */
.view[data-view="chat"] .chat-head{position:relative;min-height:60px;margin:0 0 7px;padding:1px 1px 10px;border-bottom:3px double var(--chat-rule);gap:7px}
.view[data-view="chat"] .chat-head::after{content:"NO. 02  /  LIVE CORRESPONDENCE";position:absolute;right:1px;bottom:3px;font:5.5px/1 var(--chat-mono);letter-spacing:.12em;color:var(--chat-soft)}
.view[data-view="chat"] .chat-sidebar-toggle{width:40px;height:40px;flex-basis:40px;border-radius:1px;border:1px solid transparent;color:var(--chat-soft)}
.view[data-view="chat"] .chat-sidebar-toggle:active{border-color:var(--chat-rule);background:var(--chat-paper)}
.view[data-view="chat"] .chat-sidebar-toggle svg{width:20px;height:20px;stroke-width:1.35}
.view[data-view="chat"] .river-head{gap:8px;min-width:0}
.view[data-view="chat"] .avatar{width:34px;height:34px;border-radius:1px;border:1px solid var(--chat-rule-strong);background-color:var(--chat-paper);background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:2px 2px 0 var(--chat-shadow);color:var(--chat-ink);font:italic 18px/1 Georgia,serif}
.view[data-view="chat"] .chat-head-copy{min-width:0;position:relative;padding-top:10px}
.view[data-view="chat"] .chat-line-label{position:absolute;left:0;top:0;white-space:nowrap;font:6px/1 var(--chat-mono);letter-spacing:.14em;color:var(--chat-soft)}
.view[data-view="chat"] .chat-name{font:italic 400 19px/1.16 Georgia,"Times New Roman",serif;letter-spacing:-.025em;color:var(--chat-ink)}
.view[data-view="chat"] .presence{display:flex;align-items:center;gap:5px;margin-top:2px;font:7.5px/1.35 var(--chat-mono);letter-spacing:.04em;color:var(--chat-soft)}
.view[data-view="chat"] .presence::before{content:"";width:5px;height:5px;border-radius:50%;background:#9382ad;box-shadow:0 0 8px rgba(147,130,173,.72)}

/* Typewritten correspondence cards */
.view[data-view="chat"] .messages{gap:9px;padding:5px 2px 16px}
.view[data-view="chat"] .chat-message-row{width:100%;display:flex;align-items:flex-start;gap:6px;flex-shrink:0}
.view[data-view="chat"] .chat-message-row.me{flex-direction:row-reverse}
.view[data-view="chat"] .chat-message-avatar{flex:0 0 34px;width:34px;height:34px;margin-top:1px;display:grid;place-items:center;border:1px solid var(--chat-rule-strong);border-radius:1px;background-color:var(--chat-paper);background-size:cover;background-position:center;box-shadow:2px 2px 0 var(--chat-shadow);color:var(--chat-ink);font:italic 16px/1 Georgia,serif}
.view[data-view="chat"] .chat-message-row.river .chat-message-avatar{background-image:var(--chat-river-avatar-image)}
.view[data-view="chat"] .chat-message-row.me .chat-message-avatar{background-image:var(--chat-sylvie-avatar-image)}
.view[data-view="chat"].has-river-avatar .chat-message-row.river .chat-message-avatar,.view[data-view="chat"].has-sylvie-avatar .chat-message-row.me .chat-message-avatar{font-size:0}
.view[data-view="chat"] .msg{position:relative;min-width:0;max-width:68%;border:1px solid var(--chat-rule-strong);border-radius:1px;padding:20px 10px 7px;color:var(--chat-ink);font:13.5px/1.66 var(--chat-serif);letter-spacing:.01em;box-shadow:2px 2px 0 var(--chat-shadow);isolation:isolate}
.view[data-view="chat"] .msg::before{position:absolute;left:8px;top:6px;font:6px/1 var(--chat-mono);letter-spacing:.13em;color:var(--chat-soft)}
.view[data-view="chat"] .msg::after{content:"";position:absolute;top:-1px;width:14px;height:6px;border-top:1px solid var(--chat-rule-strong)}
.view[data-view="chat"] .msg.river{align-self:flex-start;background:linear-gradient(118deg,rgba(255,255,255,.20),transparent 48%),var(--chat-river);border-left:3px double var(--chat-rule-strong)}
.view[data-view="chat"] .msg.river::before{content:"RIVER  /  RECEIVED"}
.view[data-view="chat"] .msg.river::after{right:-1px;border-right:1px solid var(--chat-rule-strong)}
.view[data-view="chat"] .msg.me{align-self:flex-end;background:linear-gradient(242deg,rgba(255,255,255,.22),transparent 50%),var(--chat-me);border-right:3px double var(--chat-rule-strong)}
.view[data-view="chat"] .msg.me::before{content:"SYLVIE  /  SENT"}
.view[data-view="chat"] .msg.me::after{left:-1px;border-left:1px solid var(--chat-rule-strong)}
.view[data-view="chat"] .chat-message-content{white-space:pre-wrap;overflow-wrap:anywhere}
.view[data-view="chat"] .chat-message-meta{justify-content:flex-end;gap:4px;margin-top:7px;padding-top:4px;border-top:1px dashed var(--chat-rule);font:6px/1.35 var(--chat-mono);letter-spacing:.05em;color:var(--chat-soft)}
.view[data-view="chat"] .chat-message-meta time::before{content:"LOG / ";opacity:.68}
.view[data-view="chat"] .chat-message-menu-button{width:26px;height:22px;display:grid;place-items:center;padding:0;border:0;border-radius:0;opacity:.42;color:var(--chat-soft);font:12px/1 var(--chat-mono)}
.view[data-view="chat"] .chat-message-quote{position:relative;border:0;border-left:3px double var(--chat-rule-strong);border-radius:0;margin:0 0 8px;padding:15px 7px 5px;background:rgba(255,255,255,.17);color:var(--chat-soft);font:10.5px/1.55 var(--chat-serif)}
.view[data-view="chat"] .chat-message-quote::before{content:"> QUOTED RECORD";position:absolute;top:4px;left:7px;font:5.5px/1 var(--chat-mono);letter-spacing:.11em}
.view[data-view="chat"] .chat-stage-line{width:100%;display:flex;align-items:center;gap:7px;padding:4px 0;color:var(--chat-soft);font:6.5px/1.35 var(--chat-mono);letter-spacing:.11em;text-transform:uppercase}
.view[data-view="chat"] .chat-stage-line::before,.view[data-view="chat"] .chat-stage-line::after{content:"";height:2px;flex:1;border-top:2px dashed var(--chat-rule)}
.view[data-view="chat"] .chat-typing{align-self:flex-start;border-left:3px double var(--chat-rule-strong);padding:6px 9px;background:var(--chat-river);color:var(--chat-soft);font:7px/1.45 var(--chat-mono);letter-spacing:.08em}
.view[data-view="chat"] .chat-proactive-tag{font:7px/1.5 var(--chat-mono);letter-spacing:.07em;color:var(--chat-soft)}
.view[data-view="chat"] .chat-memory-panel{border-color:var(--chat-rule);font-family:var(--chat-serif)}
.view[data-view="chat"] .chat-memory-card{border-radius:1px;background:rgba(255,255,255,.10)}

/* Typewriter carriage / composer */
.view[data-view="chat"] .composer{gap:5px;padding-top:5px;padding-bottom:calc(var(--nav-h) + 12px + env(safe-area-inset-bottom))}
.view[data-view="chat"] .composer-box{position:relative;min-height:50px;border:1px solid var(--chat-rule-strong);border-radius:1px;background:var(--chat-paper);box-shadow:3px 3px 0 var(--chat-shadow);padding:5px 5px 5px 11px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.view[data-view="chat"] .composer-box::before{content:"READY";position:absolute;left:9px;top:-9px;padding:2px 5px;border:1px solid var(--chat-rule);background:var(--chat-paper);color:var(--chat-soft);font:6px/1 var(--chat-mono);letter-spacing:.14em}
.view[data-view="chat"] .composer textarea{color:var(--chat-ink);caret-color:#8e719c;font:14px/22px var(--chat-serif);padding:4px 0 1px}
.view[data-view="chat"] .composer textarea::placeholder{color:var(--chat-soft);opacity:.78}
.view[data-view="chat"] .send{width:40px;height:40px;border:1px solid var(--chat-rule-strong);border-radius:1px;background:#34384d;color:#f5f1f6;box-shadow:2px 2px 0 rgba(22,25,38,.22);font:16px/1 var(--chat-mono)}
.view[data-view="chat"] .send:active{transform:translate(2px,2px);box-shadow:none}
:root[data-phase="dusk"] .view[data-view="chat"] .send{background:#5b4057}
:root[data-phase="night"] .view[data-view="chat"] .send{background:#d5c7dc;color:#292434}
.view[data-view="chat"] #riverChatStop{font-size:10px;background:#76525d;color:#fff}
.view[data-view="chat"] .chat-composer-context{position:relative;border:1px solid var(--chat-rule-strong);border-radius:1px;background:var(--chat-paper);padding:15px 8px 6px 10px;color:var(--chat-ink)}
.view[data-view="chat"] .chat-composer-context::before{content:"ATTACHED NOTE";position:absolute;left:11px;top:6px;font:6px/1 var(--chat-mono);letter-spacing:.13em;color:var(--chat-soft)}
.view[data-view="chat"] .chat-composer-context strong{font:11px/1.4 var(--chat-serif)}
.view[data-view="chat"] .chat-composer-context p{font:9px/1.5 var(--chat-serif);color:var(--chat-soft)}
.view[data-view="chat"] .chat-new-messages{border:1px solid var(--chat-rule-strong);border-radius:1px;background:var(--chat-paper);box-shadow:3px 3px 0 var(--chat-shadow);color:var(--chat-ink);font:8px/1 var(--chat-mono);letter-spacing:.04em}
.view[data-view="chat"] .chat-collection-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 0 0;color:var(--chat-soft);font:9px/1.5 var(--chat-serif)}
.view[data-view="chat"] .chat-collection-bar[hidden]{display:none}
.view[data-view="chat"] .chat-collection-bar>span{min-width:0;flex:1}
.view[data-view="chat"] .chat-collection-bar>button{flex-shrink:0;min-height:36px;padding:6px 12px;border:1px solid var(--chat-rule-strong);border-radius:1px;background:var(--chat-paper);color:var(--chat-ink);box-shadow:2px 2px 0 var(--chat-shadow);font:11px/1.4 var(--chat-serif)}
.view[data-view="chat"] .chat-collection-bar>button:disabled{opacity:.45}
.view[data-view="chat"] .chat-collection-bar>button:active{transform:translate(1px,1px);box-shadow:none}
body.chat-keyboard-open .view[data-view="chat"] .composer{padding-bottom:max(9px,env(safe-area-inset-bottom))}

/* Conversation index drawer */
.view[data-view="chat"] .chat-rooms-dialog{width:min(330px,90vw);padding:max(18px,env(safe-area-inset-top)) 17px max(18px,env(safe-area-inset-bottom));border-right:3px double var(--chat-rule-strong);background:radial-gradient(ellipse at 90% 3%,rgba(198,222,233,.27),transparent 43%),repeating-linear-gradient(180deg,transparent 0 31px,rgba(85,98,126,.045) 31px 32px),var(--chat-paper);box-shadow:16px 0 48px rgba(25,27,43,.20);gap:13px}
.view[data-view="chat"] .chat-rooms-dialog::backdrop{background:rgba(25,20,35,.48);backdrop-filter:blur(2px)}
.view[data-view="chat"] .chat-room-dialog-head{padding-bottom:11px;border-bottom:3px double var(--chat-rule)}
.view[data-view="chat"] .chat-room-dialog-head>div{min-width:0}
.view[data-view="chat"] .chat-room-dialog-head small{display:block;margin-bottom:6px;font:6px/1 var(--chat-mono);letter-spacing:.16em;color:var(--chat-soft)}
.view[data-view="chat"] .chat-room-dialog-head strong{display:block;font:italic 400 23px/1.1 Georgia,serif;color:var(--chat-ink)}
.view[data-view="chat"] .chat-room-create{grid-template-columns:minmax(0,1fr) auto;gap:7px}
.view[data-view="chat"] .chat-room-create select{min-height:44px;border-radius:1px;border-color:var(--chat-rule);background:rgba(255,255,255,.15);font:10px/1.4 var(--chat-serif);color:var(--chat-ink)}
.view[data-view="chat"] .chat-room-create button{width:auto;min-height:44px;margin:0;border-radius:1px;border-color:var(--chat-rule-strong);padding:9px 12px;background:rgba(131,112,151,.13);font:9px/1.2 var(--chat-mono);color:var(--chat-ink)}
.view[data-view="chat"] .model-pill{min-height:40px;border-radius:1px;border-color:var(--chat-rule);background:rgba(255,255,255,.12);color:var(--chat-ink);font:9px/1.35 var(--chat-serif)}
.view[data-view="chat"] .chat-room-list{gap:0;border-top:1px solid var(--chat-rule)}
.view[data-view="chat"] .chat-room-row{position:relative;border-radius:0;border-bottom:1px dashed var(--chat-rule);padding:12px 29px 11px 8px;color:var(--chat-ink)}
.view[data-view="chat"] .chat-room-row::after{content:"";position:absolute;right:10px;top:16px;width:6px;height:6px;border-radius:50%;border:1px solid var(--chat-rule-strong)}
.view[data-view="chat"] .chat-room-row.active{background:rgba(135,119,158,.10)}
.view[data-view="chat"] .chat-room-row.active::after{background:#917ba6;box-shadow:0 0 8px rgba(145,123,166,.56)}
.view[data-view="chat"] .chat-room-row strong{font:13px/1.4 var(--chat-serif);font-weight:400}
.view[data-view="chat"] .chat-room-row span{font:10px/1.4 var(--chat-serif);color:var(--chat-soft)}
.view[data-view="chat"] .chat-room-row small{font:7px/1.3 var(--chat-mono);letter-spacing:.04em;color:var(--chat-soft)}
.view[data-view="chat"] .chat-sidebar-bottom{border-top:3px double var(--chat-rule);padding-top:11px}
.view[data-view="chat"] .chat-sidebar-current,.view[data-view="chat"] .chat-sidebar-extra{font-family:var(--chat-serif);color:var(--chat-soft)}
.view[data-view="chat"] #riverChatDeleteRoom{color:#a05e6c;border-color:rgba(160,94,108,.36)}
.view[data-view="chat"] .chat-search-form input,.view[data-view="chat"] .chat-search-form select{min-height:42px;border-radius:1px;border-color:var(--chat-rule);background:rgba(255,255,255,.14);color:var(--chat-ink);font-family:var(--chat-serif)}
.view[data-view="chat"] .chat-search-results button{border-radius:1px;border-color:var(--chat-rule);background:rgba(255,255,255,.12);color:var(--chat-ink);font-family:var(--chat-serif)}
.view[data-view="chat"] .chat-avatar-settings{border-top:1px dashed var(--chat-rule);border-bottom:1px dashed var(--chat-rule);padding:2px 0 9px}
.view[data-view="chat"] .chat-avatar-editor{display:grid;gap:10px;margin-top:9px}
.view[data-view="chat"] .chat-avatar-edit-row{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:start}
.view[data-view="chat"] .chat-avatar-preview{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--chat-rule-strong);border-radius:1px;background-color:var(--chat-river);background-size:cover;background-position:center;box-shadow:3px 3px 0 var(--chat-shadow);color:var(--chat-ink);font:italic 20px/1 Georgia,serif}
.view[data-view="chat"] .chat-avatar-preview.sylvie{background-color:var(--chat-me)}
.view[data-view="chat"] .chat-avatar-edit-row>div>strong{display:block;font:13px/1.3 var(--chat-serif);font-weight:400;color:var(--chat-ink)}
.view[data-view="chat"] .chat-avatar-edit-row>div>small{display:block;margin-top:3px;font:7px/1.4 var(--chat-mono);color:var(--chat-soft)}
.view[data-view="chat"] .chat-avatar-actions{display:flex;gap:5px;margin-top:7px}
.view[data-view="chat"] .chat-avatar-actions .model-pill{min-height:32px;padding:6px 8px;display:grid;place-items:center;font-size:8px;cursor:pointer}
.view[data-view="chat"] .chat-avatar-preview.has-image,.view[data-view="chat"] .chat-head .avatar.has-image{font-size:0}

/* Utilities and modal sheets retain their real behavior, but share the correspondence material. */
.view[data-view="chat"] .chat-message-dialog{border:3px double var(--chat-rule-strong);border-radius:1px;background:radial-gradient(ellipse at 90% 2%,rgba(196,220,232,.24),transparent 43%),var(--chat-paper);box-shadow:10px 12px 0 rgba(30,34,53,.16),0 24px 70px rgba(12,14,25,.26);color:var(--chat-ink);font-family:var(--chat-serif)}
.view[data-view="chat"] .chat-message-dialog::backdrop{background:rgba(20,16,29,.55);backdrop-filter:blur(3px)}
.view[data-view="chat"] .chat-message-dialog-actions button,.view[data-view="chat"] .chat-version-row,.view[data-view="chat"] .view[data-view="chat"] .chat-status-item{border-radius:1px;border-color:var(--chat-rule);background:rgba(255,255,255,.12);color:var(--chat-ink)}
.view[data-view="chat"] .room-summary-text,.view[data-view="chat"] .chat-version-row pre{font-family:var(--chat-serif)}

@media(max-width:370px){
  .view[data-view="chat"]{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
  .view[data-view="chat"] .chat-message-row{gap:5px}
  .view[data-view="chat"] .chat-message-avatar{width:31px;height:31px;flex-basis:31px;font-size:14px}
  .view[data-view="chat"] .msg{max-width:70%;padding-inline:9px;font-size:13px}
  .view[data-view="chat"] .chat-line-label{letter-spacing:.08em}
  .view[data-view="chat"] .chat-head::after{display:none}
}
@media(prefers-reduced-motion:reduce){.view[data-view="chat"] .presence::before{box-shadow:none}}

/* v51D · The drawer is a conversation index first; utilities live one level deeper. */
.view[data-view="chat"] .chat-new-line{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 38px;gap:5px;flex-shrink:0}
.view[data-view="chat"] .chat-new-line>.primary{width:100%;min-height:38px;margin:0;border:1px solid var(--chat-rule-strong);border-radius:1px;background:rgba(131,112,151,.13);box-shadow:none;color:var(--chat-ink);font:8px/1 var(--chat-mono);letter-spacing:.12em}
.view[data-view="chat"] .chat-new-options{position:static}
.view[data-view="chat"] .chat-new-options>summary{list-style:none;width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--chat-rule-strong);background:rgba(255,255,255,.10);color:var(--chat-soft);cursor:pointer;font:12px/1 var(--chat-mono)}
.view[data-view="chat"] .chat-new-options>summary::-webkit-details-marker{display:none}
.view[data-view="chat"] .chat-new-options[open]>summary{background:rgba(131,112,151,.13);color:var(--chat-ink)}
.view[data-view="chat"] .chat-new-options>div{position:absolute;z-index:5;left:0;right:0;top:43px;padding:11px;border:1px solid var(--chat-rule-strong);background:var(--chat-paper);box-shadow:5px 5px 0 var(--chat-shadow)}
.view[data-view="chat"] .chat-new-options small{display:block;margin-bottom:6px;color:var(--chat-soft);font:6px/1 var(--chat-mono);letter-spacing:.14em}
.view[data-view="chat"] .chat-new-options select{width:100%;min-height:38px;border:1px solid var(--chat-rule);border-radius:1px;padding:7px;background:rgba(255,255,255,.16);color:var(--chat-ink);font:10px/1.4 var(--chat-serif)}
.view[data-view="chat"] .chat-new-options p{margin:7px 0 0;color:var(--chat-soft);font:8px/1.5 var(--chat-serif)}
.view[data-view="chat"] .chat-sidebar-search{flex-shrink:0;padding:8px 0 9px;border-bottom:1px dashed var(--chat-rule)}
.view[data-view="chat"] .chat-sidebar-search .chat-search-form{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:5px}
.view[data-view="chat"] .chat-sidebar-search input,.view[data-view="chat"] .chat-sidebar-search select{min-width:0;min-height:35px;border:1px solid var(--chat-rule);border-radius:1px;background:rgba(255,255,255,.12);color:var(--chat-ink);font:9px/1.3 var(--chat-serif)}
.view[data-view="chat"] .chat-sidebar-search .local-hint{display:none}
.view[data-view="chat"] .chat-sidebar-search:focus-within .local-hint,.view[data-view="chat"] .chat-sidebar-search .chat-search-results:not(:empty)+.local-hint{display:block}
.view[data-view="chat"] .chat-room-list{min-height:110px;overflow-y:auto;border-top:0}
.view[data-view="chat"] .chat-room-row-shell{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:stretch;border-bottom:1px dashed var(--chat-rule)}
.view[data-view="chat"] .chat-room-row-shell.active{background:rgba(135,119,158,.09)}
.view[data-view="chat"] .chat-room-row{width:100%;border:0;border-radius:0;padding:10px 5px 9px 7px;background:transparent;text-align:left}
.view[data-view="chat"] .chat-room-row::after{display:none}
.view[data-view="chat"] .chat-room-row.active{background:transparent}
.view[data-view="chat"] .chat-room-more{width:30px;min-width:30px;border:0;border-radius:0;background:transparent;color:var(--chat-soft);opacity:.62;font:11px/1 var(--chat-mono);letter-spacing:.04em}
.view[data-view="chat"] .chat-room-more:active{background:rgba(131,112,151,.13);opacity:1}
.view[data-view="chat"] .chat-sidebar-bottom{display:grid;gap:5px;max-height:48dvh;overflow:auto;padding-top:8px}
.view[data-view="chat"] .chat-current-actions,.view[data-view="chat"] .chat-tools-panel{flex-shrink:0;border:1px solid var(--chat-rule);background:rgba(255,255,255,.07)}
.view[data-view="chat"] .chat-current-actions>summary,.view[data-view="chat"] .chat-tools-panel>summary{position:relative;list-style:none;min-height:43px;padding:8px 28px 7px 9px;display:flex;flex-direction:column;justify-content:center;cursor:pointer}
.view[data-view="chat"] .chat-current-actions>summary::-webkit-details-marker,.view[data-view="chat"] .chat-tools-panel>summary::-webkit-details-marker{display:none}
.view[data-view="chat"] .chat-current-actions>summary::after,.view[data-view="chat"] .chat-tools-panel>summary::after{content:"＋";position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--chat-soft);font:12px/1 var(--chat-mono)}
.view[data-view="chat"] .chat-current-actions[open]>summary::after,.view[data-view="chat"] .chat-tools-panel[open]>summary::after{content:"−"}
.view[data-view="chat"] .chat-current-actions>summary span,.view[data-view="chat"] .chat-tools-panel>summary span{color:var(--chat-soft);font:5.5px/1 var(--chat-mono);letter-spacing:.14em}
.view[data-view="chat"] .chat-current-actions>summary b,.view[data-view="chat"] .chat-tools-panel>summary b{display:block;overflow:hidden;margin-top:4px;color:var(--chat-ink);font:11px/1.2 var(--chat-serif);font-weight:400;text-overflow:ellipsis;white-space:nowrap}
.view[data-view="chat"] .chat-current-actions-body,.view[data-view="chat"] .chat-tools-body{padding:0 8px 8px;border-top:1px dashed var(--chat-rule)}
.view[data-view="chat"] .chat-current-actions-body>.chat-sidebar-actions{margin-top:7px}
.view[data-view="chat"] .chat-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px 0}
.view[data-view="chat"] .chat-tools-grid .model-pill{min-height:34px;margin:0;border-radius:1px;font:8px/1.2 var(--chat-serif)}
.view[data-view="chat"] .chat-tools-body>.chat-sidebar-extra{margin-top:0;padding:8px 0;border-top:1px dashed var(--chat-rule)}
.view[data-view="chat"] .chat-tools-body>.chat-sidebar-extra:last-child{border-bottom:0}
.view[data-view="chat"] .chat-current-actions-body .chat-sidebar-extra{margin-top:7px}
.view[data-view="chat"] .chat-sidebar-current{display:block;margin:0}

@media(max-width:370px){
  .view[data-view="chat"] .chat-rooms-dialog{width:min(316px,92vw);padding-left:14px;padding-right:14px}
  .view[data-view="chat"] .chat-sidebar-search .chat-search-form{grid-template-columns:minmax(0,1fr) 74px}
}

/* v51G · iPhone/iPad Safari: do not zoom the entire page on input focus.
   WebKit may auto-zoom controls with a computed text size below 16px. */
@media (hover: none) and (pointer: coarse) {
  .view[data-view="chat"] #riverChatInput {
    font-size: 16px;
  }
}

/* v51H · small unboxed timestamp and two-tap translucent message actions. */
.view[data-view="chat"] .chat-message-meta,
.view[data-view="chat"] .chat-message-menu-button{display:none!important}
.view[data-view="chat"] .msg{
  padding-bottom:18px;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.view[data-view="chat"] .chat-message-content{white-space:normal;overflow-wrap:anywhere}
.view[data-view="chat"] .chat-message-time{
  position:absolute;right:9px;bottom:4px;
  color:var(--chat-soft);opacity:.77;
  font:8.5px/1.15 var(--chat-mono);
  letter-spacing:.025em;
  font-variant-numeric:tabular-nums;
  pointer-events:none;
}
.view[data-view="chat"] .chat-message-version{display:block;color:var(--chat-soft);font:8px/1.3 var(--chat-serif);margin-top:4px}
.view[data-view="chat"] .chat-message-dialog.chat-message-float{
  position:fixed;inset:auto;
  margin:0;box-sizing:border-box;
  width:min(302px,calc(100vw - 24px));
  max-height:min(58dvh,410px);
  overflow-y:auto;overscroll-behavior:contain;
  padding:11px 12px;
  border:1px solid var(--chat-rule-strong);border-radius:12px;
  background:rgba(247,243,250,.76);
  -webkit-backdrop-filter:blur(14px) saturate(115%);
  backdrop-filter:blur(14px) saturate(115%);
  box-shadow:0 10px 35px rgba(35,30,48,.20);
  color:var(--chat-ink);
}
.view[data-view="chat"] .chat-message-dialog.chat-message-float::backdrop{background:rgba(20,16,29,.045);-webkit-backdrop-filter:none;backdrop-filter:none}
.view[data-view="chat"] .chat-message-float .chat-room-dialog-head{padding:0 0 7px;border-bottom:1px solid var(--chat-rule)}
.view[data-view="chat"] .chat-message-float .chat-room-dialog-head strong{font:12px/1.4 var(--chat-serif)}
.view[data-view="chat"] .chat-message-float .chat-room-dialog-head button{min-height:27px;padding:4px 9px;font-size:10px}
.view[data-view="chat"] .chat-message-float #riverChatMessageMenuPreview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:7px 0;color:var(--chat-ink);opacity:.72;font:11px/1.45 var(--chat-serif)}
.view[data-view="chat"] .chat-message-float .chat-message-dialog-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.view[data-view="chat"] .chat-message-float .chat-message-dialog-actions button{
  min-width:0;min-height:34px;padding:8px 7px;
  border:1px solid var(--chat-rule);border-radius:7px;
  background:rgba(255,255,255,.32);text-align:center;
  color:var(--chat-ink);font:11px/1.35 var(--chat-serif);
}
:root[data-phase="night"] .view[data-view="chat"] .chat-message-dialog.chat-message-float{background:rgba(43,36,57,.82)}
:root[data-phase="night"] .view[data-view="chat"] .chat-message-float .chat-message-dialog-actions button{background:rgba(255,255,255,.10)}

/* Consecutive chat bubbles share only the first visible avatar. */
.view[data-view="chat"] .chat-message-avatar.chat-avatar-spacer{visibility:hidden}

/* v51I · Safari keyboard root scroll lock and visual-viewport chat grid.
   The input cannot drag the entire page under the browser's address bar. */
@media (hover:none) and (pointer:coarse){
  html:has(body.chat-input-focus){height:var(--chat-viewport-height,100dvh)!important;min-height:0!important;overflow:hidden!important}
  body.chat-input-focus{
    position:fixed!important;top:0!important;left:0!important;right:0!important;
    width:100%!important;max-width:100%;min-height:0!important;
    overflow:hidden!important;overscroll-behavior:none;
  }
  body.chat-input-focus .app{
    position:fixed!important;top:0!important;left:0!important;right:0!important;
    width:100%!important;min-height:0!important;
    height:var(--chat-viewport-height,100dvh)!important;
    overflow:hidden!important;
  }
  body.chat-input-focus .view[data-view="chat"]{
    position:absolute!important;inset:0!important;min-height:0!important;
    height:var(--chat-viewport-height,100dvh)!important;
    overflow:hidden!important;
  }
  body.chat-input-focus.chat-keyboard-open .nav-wrap{display:none!important}
  body.chat-input-focus.chat-keyboard-open .view[data-view="chat"] .composer{
    padding-bottom:max(7px,env(safe-area-inset-bottom))!important;
  }
}

/* v51J · Outside timestamps.  Keep the correspondence header readable even
   for one-word messages, and never spend message-card width on clock text. */
.view[data-view="chat"] .chat-message-row{
  align-items:flex-start;
}
.view[data-view="chat"] .msg{
  box-sizing:border-box;
  min-width:102px;
  padding-bottom:8px;
}
.view[data-view="chat"] .msg.me::before{
  font-size:5.8px;
  letter-spacing:.07em;
  white-space:nowrap;
}
.view[data-view="chat"] .chat-message-time{
  position:static;
  display:block;
  flex:0 0 auto;
  width:auto;
  align-self:flex-end;
  margin:0 1px 0 2px;
  padding-bottom:1px;
  white-space:nowrap;
  color:var(--chat-soft);
  opacity:.78;
  font:8.5px/1.2 var(--chat-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
  pointer-events:none;
}
.view[data-view="chat"] .chat-message-row.me .chat-message-time{
  margin:0 2px 0 1px;
}
@media(max-width:370px){
  .view[data-view="chat"] .msg{min-width:100px}
  .view[data-view="chat"] .chat-message-time{font-size:8px}
}
