/* Keep translated replies in the original text column, without added indent. */
.camp-translation-note{display:block;overflow-wrap:anywhere;font-weight:400!important}
.camp-translation-note .chat-translation-label{display:block;font-size:11px;line-height:1.4;color:var(--muted)}
.camp-translation-note .chat-translation-text{display:block;font-size:inherit;line-height:1.4;font-weight:400}
.camp-translation-note button{border:0;background:transparent;color:var(--primary);padding:6px 0;min-height:32px;font-size:inherit}
#group-detail-screen .group-reply-text-row > .camp-translation-note{margin:6px 0 0!important;padding:6px 0 0!important;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--muted)!important}
.phone-shell.camp-keyboard-open .bottom-nav{display:none!important}
.phone-shell.camp-browser-keyboard{position:fixed!important;top:var(--camp-keyboard-top)!important;bottom:auto!important;height:var(--camp-keyboard-height)!important;min-height:0!important;max-height:none!important;align-self:start}
.phone-shell.camp-keyboard-open .screen.active{height:calc(100% - 44px)!important;min-height:0!important;padding-bottom:8px!important}
.phone-shell.camp-keyboard-open #chat-detail-screen.active{padding-bottom:8px!important}
html.kablo-native .phone-shell.camp-keyboard-open .screen.active{height:100%!important}
.camp-keyboard-open .message-compose{margin-bottom:0!important}
.phone-shell .screen.active.camp-has-composer{display:block!important;overflow:auto;padding-bottom:var(--camp-composer-space)!important}
.camp-has-composer > .topbar{position:sticky!important;top:0;z-index:2;background:#fff;margin-bottom:8px!important}
.camp-has-composer > .topbar::before{content:"";position:absolute;inset:calc(-6px - env(safe-area-inset-top,0px)) -12px -4px;background:#fff;z-index:-1;pointer-events:none}
.camp-composer-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding-bottom:12px}
.camp-keyboard-open .toast{bottom:auto;top:calc(52px + env(safe-area-inset-top,0px))}
.camp-composer-dock{position:absolute;left:0;right:0;z-index:35;padding:6px 12px 8px;background:var(--card,#fff);border-top:1px solid var(--line,#e7e3f5)}
.camp-composer-context{display:flex;align-items:center;gap:8px;min-height:32px;color:var(--muted);font-size:12px}
.camp-composer-context span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.camp-composer-done{flex:none;min-height:32px;border:0;background:transparent;color:var(--primary);padding:4px 8px;font-size:13px}
.camp-composer-preview{display:block;width:100%;text-align:left;border:0;border-left:3px solid var(--primary);border-radius:4px;background:var(--soft,#f4f1ff);padding:6px 9px;margin:0 0 8px;color:var(--ink);min-width:0;font:inherit}
.camp-composer-preview strong,.camp-composer-preview span{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;-webkit-line-clamp:1;font-size:13px;line-height:1.35}
.camp-composer-preview strong{font-weight:600}.camp-composer-preview span{-webkit-line-clamp:2;font-weight:400;color:var(--muted);margin-top:2px}
.camp-original-modal{position:absolute;inset:0;z-index:90;display:grid;place-items:center;background:rgba(17,23,50,.35);padding:16px}
.camp-original-panel{width:100%;max-width:480px;max-height:100%;overflow:auto;background:#fff;border-radius:20px;padding:20px}
.camp-original-photo{height:220px;width:100%;background-position:center;background-repeat:no-repeat;background-size:contain;margin-bottom:12px}
.camp-original-panel h2{font-size:18px;margin:0 0 8px}.camp-original-panel p{overflow-wrap:anywhere}.camp-original-body{white-space:pre-wrap}.camp-original-panel img{display:block;width:100%;height:auto;max-height:280px;object-fit:contain;margin-bottom:12px}.camp-original-panel button{min-height:44px}
@media(max-height:400px){.camp-composer-dock textarea{max-height:44px!important}.camp-composer-preview span{-webkit-line-clamp:1}.camp-composer-preview{padding-top:4px;padding-bottom:4px}.camp-composer-context{min-height:24px}.camp-composer-done{min-height:28px}}
.camp-composer-dock .chat-input{display:flex!important;align-items:flex-end;gap:8px;margin:0!important;padding:0!important;border:0;box-shadow:none;background:transparent}
.chat-input textarea{font-family:inherit;font-size:16px;line-height:1.4;resize:none;min-width:0;width:100%;flex:1;min-height:44px;max-height:112px;padding:11px 14px;border:1px solid transparent;border-radius:18px;background:var(--soft,#f4f1ff);color:var(--ink);box-sizing:border-box}
.chat-input textarea:focus{outline:2px solid var(--primary);outline-offset:-2px}
.chat-input button[type=submit],.camp-composer-dock .primary{min-height:44px;flex:none;align-self:flex-end}

/* Reply context stays in the same text column; no extra nesting on phones. */
#group-detail-screen .camp-reply-quote{display:block;border-left:2px solid var(--primary);padding:4px 8px;margin:0 0 6px;color:var(--muted);font-size:12px;line-height:1.4;min-width:0}
#group-detail-screen .camp-reply-quote strong{display:block;font-size:12px}
#group-detail-screen .camp-reply-quote > span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;white-space:pre-wrap}
.inline-reply-form[hidden]{display:none!important}

/* UIKit sizes the WebView. Fill its layout viewport rather than retaining a
   transitional pixel height or following WebKit's moving fixed viewport. */
html.kablo-native .phone-shell{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none}
html.kablo-native .screen{height:100%}
html.kablo-native .screen.centered{min-height:100%}
html.kablo-native .phone-shell:not(.camp-large-navigation) > .bottom-nav{position:absolute;bottom:0}
