/* V23: extend the existing V21 visual system only inside chat/file cards. */
.jarvis-rich{overflow-wrap:anywhere;white-space:normal}
.jarvis-rich p{margin:0 0 .65em;line-height:1.55}
.jarvis-rich p:last-child{margin-bottom:0}
.jarvis-rich strong{font-weight:750}
.jarvis-rich ul,.jarvis-rich ol{padding-left:1.35em;margin:.5em 0}
.jarvis-rich li{margin:.3em 0}
.jarvis-rich h3{font-size:1.05em;line-height:1.4;margin:.8em 0 .35em}
.jarvis-rich h3:first-child{margin-top:0}
.jarvis-rich code{font-family:ui-monospace,monospace;font-size:.88em;background:#dfe9f9;padding:.12em .3em;border-radius:5px;color:#17294d}
.jarvis-rich pre{overflow-x:auto;max-width:100%;background:#e3ecfa;padding:12px;border-radius:12px;white-space:pre}
.jarvis-rich pre code{padding:0;background:none}
.jarvis-rich a{color:#215fba;text-decoration:underline}
.jarvis-v23-composer{display:block!important;min-width:0}
.jarvis-composer-row{display:flex;align-items:center;gap:9px;min-width:0}
.jarvis-composer-row input{min-width:0!important;flex:1;width:0!important}
.jarvis-composer-row>button{flex:0 0 auto}
.jarvis-attach-button{width:44px;height:48px;padding:0!important;border:1px solid #d9e5f8!important;border-radius:14px;font-size:29px!important;color:#3679d9!important;background:#f0f5ff!important}
.jarvis-file-help{display:block;margin:9px 2px 0;color:#6f82a4;font-size:12px;line-height:1.5}
.jarvis-pending{display:grid;gap:7px;margin-bottom:9px}
.jarvis-pending:empty{display:none}
.jarvis-attachment{display:flex;align-items:center;gap:9px;border:1px solid #d5e3f8;background:#f5f8ff;border-radius:13px;padding:9px;min-width:0;margin-top:7px;color:#20365b}
.jarvis-attachment-preview{display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;font-size:25px;overflow:hidden;border-radius:8px;background:#e6effe}
.jarvis-attachment-preview img{width:100%;height:100%;object-fit:cover}
.jarvis-attachment-copy{min-width:0;flex:1}
.jarvis-attachment-copy b{display:block;font-size:13px;overflow-wrap:anywhere}
.jarvis-attachment-copy small{display:block;font-size:11px;color:#6f82a4;margin-top:3px}
.jarvis-attachment>button{flex:0 0 auto;padding:5px 9px!important;font-size:22px}
.jarvis-library-file{border-bottom:1px solid #e3ebf8;padding-bottom:10px;margin-bottom:10px}
button:disabled{opacity:.55;cursor:wait}
@media(max-width:400px){.jarvis-composer-row{gap:6px}.jarvis-composer-row .btn{padding:10px!important;min-width:43px!important}.jarvis-attach-button{width:37px}}

/* V24: don't allow flexbox to shrink long messages over the composer. */
.chat-wrap .chat-thread{min-height:200px;max-height:56vh;max-height:56dvh;overflow-y:auto;overscroll-behavior:contain;padding-bottom:24px;scroll-padding-bottom:24px;-webkit-overflow-scrolling:touch}
.chat-wrap .chat-bubble{flex-shrink:0;min-height:min-content;overflow-wrap:anywhere}
.chat-wrap .chat-bubble[hidden]{display:none}
.chat-wrap .chat-composer{position:relative;background:white;z-index:1;margin-top:8px}
.jarvis-work-status{min-height:20px;font-size:13px;color:#3464a6;margin:9px 2px 2px;font-weight:650}
.jarvis-work-status:empty{display:none}
.jarvis-message-outcome{display:block;font-size:11px;line-height:1.45;margin-top:9px;color:#6b7d9a}
.jarvis-stop{background:#3068be!important}

/* V24.1: in-app dictation, explicit capture state, unchanged send action. */
.jarvis-mic-button{display:grid;place-items:center;flex:0 0 42px!important;width:42px;height:48px;padding:8px!important;border:1px solid #d9e5f8!important;border-radius:14px;color:#3679d9!important;background:#f0f5ff!important}
.jarvis-mic-button.listening{color:#bc3748!important;background:#fff0f2!important;border-color:#ecb4bd!important}
.jarvis-dictation-status{font-size:12px;line-height:1.5;color:#4c6e9d;margin-top:8px}
.jarvis-dictation-status:empty{display:none}
@media(max-width:400px){.jarvis-mic-button{width:35px;flex-basis:35px!important;padding:6px!important}.jarvis-composer-row{gap:5px}}

/* V25: recorded voice, microphone-driven waveform and one-step send. */
.jarvis-composer-row[hidden]{display:none!important}
.jarvis-voice-panel{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #dce5f3;border-radius:24px;background:#f5f8fd}
.jarvis-voice-panel>.ghost{flex:0 0 36px;width:36px;height:36px;padding:4px!important;border-radius:50%;background:#e8edf6;font-size:22px}
.jarvis-voice-panel>.btn{flex:0 0 44px;width:44px;height:44px;padding:8px;border-radius:50%}
.jarvis-voice-wave{min-width:0;flex:1;display:flex;align-items:center;justify-content:center;gap:3px;height:38px;overflow:hidden}
.jarvis-voice-wave i{display:block;flex:1;max-width:5px;min-width:2px;background:#527399;border-radius:4px}
.jarvis-voice-panel small{font-size:11px;color:#526e8e;font-variant-numeric:tabular-nums}
.jarvis-voice-review{font-size:12px!important;margin-top:5px;padding:5px!important;color:#42689e!important}
