/* Shared composer enhancements also serve standalone and inset discussions. */
.disc-composer-tools { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; color: var(--disc-muted); font: 1.5rem/1 var(--disc-font); cursor: pointer; }
.disc-editor-toolbar.has-composer-tools[hidden] { display: none; }
form.is-tools-open .disc-editor-toolbar.has-composer-tools { display: flex; padding: 0.25rem; border-bottom: 1px solid var(--disc-line-soft); margin-bottom: 0.25rem; }
.disc-conversation-tools { display: flex; flex: 0 0 auto; min-width: 0; border-bottom: 1px solid var(--disc-line-soft); background: var(--disc-card); }
.disc-conversation-tools .disc-thread-tabs { flex: 1; min-width: 0; border-bottom: 0; }
.disc-mobile-view-toggle { display: none; }
.disc-composer-gif {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
  padding: 0.25rem;
  border: 0;
  border-radius: 12px;
  background: var(--disc-soft);
  color: var(--disc-ink);
  font: 700 0.72rem/1 var(--disc-font);
  cursor: pointer;
}
.disc-composer-gif:focus-visible,
.disc-composer-tools:focus-visible,
.disc-jump-latest:focus-visible { outline: 2px solid var(--disc-accent); outline-offset: 2px; }
.disc-jump-latest {
  flex: 0 0 auto;
  align-self: center;
  max-width: calc(100% - 1rem);
  min-height: 44px;
  margin: 0.25rem auto;
  padding: 0.5rem 1rem;
  border: 1px solid var(--disc-accent-border);
  border-radius: 999px;
  background: var(--disc-accent);
  color: var(--disc-accent-text);
  font: 600 0.85rem/1.4 var(--disc-font);
  cursor: pointer;
}
.disc-jump-latest[hidden] { display: none; }
.disc-composer-send:disabled { opacity: 0.65; cursor: wait; }
@media (max-width: 760px) {
  .disc-mention-picker button { min-height: 44px; }
  :root { --disc-page-offset-left: 0px; }
  .disc-shell, .disc-thread-page { box-sizing: border-box; }
  .disc-thread-title-area, .disc-board-title-area { gap: 0.3rem; padding-bottom: 0.4rem; }
  #content > main > .py-8 > .disc-thread-page { margin-bottom: 0.5rem; }
  #content > main > .py-8 > .disc-shell { margin-bottom: 0.5rem; }
  .disc-thread-page-contact { padding-block: 0.4rem; font-size: 0.75rem; }
  .disc-thread-title-area h1, .disc-board-title-area h1 { font-size: 1.2rem; line-height: 1.35; }
  .disc-workspace { border-radius: 16px; }
  .disc-thread-index-header, .disc-conversation-header { gap: 0.4rem 0.6rem; padding: 0.75rem; border-radius: 16px 16px 0 0; }
  .disc-thread-back { min-height: 44px; font-size: 0.85rem; }
  .disc-thread-back::before { content: '‹'; font-size: 1.5rem; }
  .disc-conversation-header h2 { flex-basis: 100%; order: 2; font-size: 1.05rem; }
  .disc-conversation-header .disc-thread-menu-wrap { margin-inline-start: auto; }
  .disc-thread-create-actions { gap: 0.4rem; }
  .disc-new-thread-action { min-height: 44px; box-sizing: border-box; border-radius: 12px; }
  .disc-thread-list { padding: 0; }
  .disc-thread-list-link { gap: 0.3rem; padding: 1rem 0.85rem; }
  .disc-thread-list-title { font-size: 1rem; line-height: 1.4; }
  .disc-thread-list-meta { font-size: 0.75rem; justify-content: flex-start; text-align: start; }
  .disc-thread-list-item:last-child { border-bottom: 0; border-radius: 0 0 16px 16px; }
  .disc-thread-menu-btn { min-width: 44px; min-height: 44px; }
  .disc-shell a:not(.button):not(.disc-btn):hover { top: 0; }
  .disc-shell--conversation { border-radius: 16px; }
  .disc-shell--conversation .disc-msg-list {
    --disc-sender-width: 2.5rem;
    --disc-message-padding-x: 0.75rem;
    --disc-message-gap: 0.75rem;
    --disc-reply-indent: 0.65rem;
    padding: 0.5rem 0;
    scrollbar-gutter: auto;
  }
  .disc-shell--conversation .disc-msg { row-gap: 0.25rem; padding-block: 0.6rem; }
  .disc-shell--conversation .disc-avatar { border-radius: 50%; }
  .disc-shell--conversation .disc-msg-author { font-size: 15px; line-height: 1.35; }
  .disc-shell--conversation .disc-msg-time { font-size: 11px; }
  .disc-shell--conversation .disc-msg-content {
    width: fit-content;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0;
    border-radius: 0;
    background: transparent;
  }
  .disc-shell--conversation .is-own-post .disc-msg-content {
    background: transparent;
  }
  .disc-shell--conversation .disc-msg-body { font-size: 15px; line-height: 1.45; }
  .disc-msg-body pre { max-width: 100%; overflow-x: auto; white-space: pre-wrap; }
  .disc-msg-body img { max-width: 100%; height: auto; }
  .disc-shell--conversation .disc-msg-actions {
    position: static;
    grid-column: 2;
    grid-row: 3;
    display: none;
    justify-self: start;
    max-width: 100%;
    box-sizing: border-box;
    padding: 0.2rem;
    border-radius: 14px;
    box-shadow: none;
  }
  .disc-shell--conversation .disc-msg.actions-open .disc-msg-actions { display: flex; }
  .disc-shell--conversation .disc-action-row { flex-wrap: wrap; }
  .disc-shell--conversation .disc-act { width: 44px; min-width: 44px; height: 44px; border-radius: 10px; }
  .disc-thread-tabs { flex-wrap: nowrap; overflow-x: auto; padding: 0 0.35rem; }
  .disc-thread-tabs button { flex: 0 0 auto; min-height: 44px; border-radius: 12px; }
  .disc-mobile-view-toggle { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; margin: 0 0.35rem 0 0; padding: 0.4rem; border: 0; border-radius: 12px; background: transparent; color: var(--disc-muted); font: 500 0.8rem/1.4 var(--disc-font); cursor: pointer; }
  .disc-mobile-view-toggle[hidden] { display: none; }
  .disc-conversation-tools:has([data-disc-thread-tab="conversation"][aria-selected="false"]) .disc-mobile-view-toggle { display: none; }
  .disc-mobile-view-toggle[aria-expanded="true"] { background: var(--disc-soft); color: var(--disc-ink); }
  .disc-mobile-view-toggle:focus-visible { outline: 2px solid var(--disc-accent); outline-offset: 1px; }
  .disc-reply-view-controls:not(.is-mobile-open) { display: none; }
  .disc-reply-view-controls { padding: 0.2rem 0.65rem; gap: 0.1rem 0.5rem; }
  .disc-reply-switch { min-height: 44px; }
  .disc-reply-switch::before { inset-block: 14px; }
  .disc-reply-bulk-controls button, .disc-reply-count, [data-disc-reply-save-retry] { min-height: 44px; }
  .disc-shell--conversation .disc-reply-card { padding: 0.3rem max(0.3rem, env(safe-area-inset-right)) max(0.3rem, env(safe-area-inset-bottom)) max(0.3rem, env(safe-area-inset-left)); }
  .disc-shell--conversation .disc-reply-card > form { padding: 0.3rem; border-radius: 20px; }
  .disc-shell--conversation .disc-composer-row { gap: 0.25rem; }
  .disc-shell--conversation .disc-editor { min-height: 44px; max-height: min(10rem, 30dvh); padding: 0.55rem 0.3rem; font-size: 16px; line-height: 1.4; }
  .disc-shell--conversation .disc-composer-send { min-width: 44px; min-height: 44px; padding: 0.5rem 0.65rem; border-radius: 14px; }
  .disc-shell--conversation .disc-editor-btn { min-width: 44px; min-height: 44px; }
  .disc-composer-reply-cancel { min-width: 44px; min-height: 44px; }
  .disc-composer-reply-bar { margin: 0.25rem; }
  .disc-selected-attachment { max-width: 100%; box-sizing: border-box; }
  .reaction-picker.disc-inline-reaction-picker .reaction-picker-btn,
  .reaction-picker-btn, .discussion-emoji-chip { min-width: 44px; min-height: 44px; }
  .discussion-emoji-box { grid-template-columns: repeat(auto-fit, minmax(44px, 1fr)); }
  .disc-session-history-button, .disc-session-theme-picker select,
  .disc-session-live-notice button { min-height: 44px; }
  .session-chat-popout { padding: env(safe-area-inset-top) 0.3rem 0; }
  .session-chat-popout .disc-thread-title-area { gap: 0; padding: 0 0.25rem 0.15rem; }
  .session-chat-popout .disc-session-heading-row { align-items: center; gap: 0.4rem; }
  .session-chat-popout .disc-session-heading-row h1 { font-size: 0.95rem; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .session-chat-popout .disc-session-theme-picker > span { display: none; }
  .session-chat-popout .disc-session-theme-picker select { max-width: 5rem; padding-block: 0.15rem; }
  .session-chat-popout .disc-session-program-path { font-size: 0.72rem; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .session-chat-popout .disc-session-actions { display: none; padding: 0.15rem 0.3rem; }
  .session-chat-popout .disc-thread-panel:has(.disc-reply-view-controls.is-mobile-open) .disc-session-actions { display: flex; }
  .session-chat-popout .disc-session-actions .disc-btn { min-height: 44px; }
  .disc-in-place-edit-field { font-size: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .disc-shell *, .disc-thread-page * { scroll-behavior: auto !important; transition: none !important; }
}

/* Typing keeps the original editor in the DOM and fits the visible keyboard viewport. */
.disc-typing-bar, .disc-typing-extra { display: none; }
@media (max-width: 760px) {
  .disc-page-details { display: grid; flex: 1 0 100%; gap: 0.5rem; min-width: 0; max-height: min(12rem, 35dvh); overflow: auto; overscroll-behavior: contain; padding: 0.5rem 0; border-top: 1px solid var(--disc-line-soft); font-size: 0.75rem; line-height: 1.45; overflow-wrap: anywhere; }
  .disc-page-details .program-breadcrumbs,
  .disc-page-details [data-disc-page-contact],
  .disc-page-details .disc-thread-page-contact { margin: 0; padding: 0; border: 0; font-size: inherit; line-height: inherit; }
  .disc-page-details #chat-widget { position: relative !important; bottom: auto !important; right: auto !important; }
  .disc-page-details #chat-panel { position: static !important; width: 100% !important; max-width: 100%; margin-top: 0.5rem; }
  html.disc-mobile-typing, body.disc-mobile-typing { overflow: hidden !important; overscroll-behavior: none; position: static !important; }
  .disc-typing-background, .disc-typing-background * { visibility: hidden !important; }
  .disc-typing-ancestor {
    position: static !important;
    transform: none !important;
    filter: none !important;
    backdrop-filter: none !important;
    perspective: none !important;
    contain: none !important;
    isolation: auto !important;
    overflow: visible !important;
    z-index: auto !important;
  }
  .disc-shell--conversation.is-mobile-typing {
    position: fixed !important;
    z-index: 10040;
    top: var(--disc-typing-top, 0px);
    left: var(--disc-typing-left, 0px);
    width: var(--disc-typing-width, 100vw) !important;
    height: var(--disc-typing-height, 100dvh) !important;
    min-height: 0;
    max-width: none;
    box-sizing: border-box;
    margin: 0 !important;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: var(--disc-card);
    box-shadow: none;
  }
  .is-mobile-typing .disc-typing-bar {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.4rem;
    min-height: 44px;
    padding: env(safe-area-inset-top) 0.4rem 0;
    border-bottom: 1px solid var(--disc-line-soft);
    background: var(--disc-card);
  }
  .disc-typing-title { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.9rem; font-weight: 600; }
  .disc-typing-toggle, .disc-typing-done { flex: 0 0 auto; min-width: 44px; min-height: 44px; padding: 0.3rem 0.6rem; border: 0; border-radius: 10px; background: var(--disc-soft); color: var(--disc-ink); font: inherit; cursor: pointer; }
  .disc-typing-toggle { font-size: 1.25rem; }
  .disc-typing-done { font-size: 0.8rem; }
  .disc-typing-toggle:focus-visible, .disc-typing-done:focus-visible { outline: 2px solid var(--disc-accent); outline-offset: -2px; }
  .is-mobile-typing:not(.is-typing-controls-open) .disc-conversation-tools,
  .is-mobile-typing:not(.is-typing-controls-open) .disc-reply-view-controls,
  .is-mobile-typing:not(.is-typing-controls-open) .disc-session-actions { display: none !important; }
  .is-mobile-typing.is-typing-controls-open .disc-typing-extra { display: flex; flex: 0 1 auto; min-height: 0; max-height: calc(var(--disc-typing-height, 100dvh) * 0.2); overflow-y: auto; overscroll-behavior-y: contain; align-items: center; flex-wrap: wrap; gap: 0.25rem; padding: 0.2rem 0.4rem; border-bottom: 1px solid var(--disc-line-soft); }
  .is-mobile-typing.is-typing-controls-open .disc-typing-extra .disc-session-actions { display: flex; flex: 1; padding: 0; }
  .is-mobile-typing.is-typing-controls-open .disc-reply-view-controls:not([hidden]) { display: flex; flex: 0 1 auto; min-height: 0; max-height: calc(var(--disc-typing-height, 100dvh) * 0.2); overflow-y: auto; overscroll-behavior-y: contain; }
  .disc-shell--conversation.is-mobile-typing .disc-thread-conversation,
  .disc-shell--conversation.is-mobile-typing .disc-thread-panel { flex: 1 1 0; min-height: 0; margin: 0; }
  .disc-shell--conversation.is-mobile-typing .disc-msg-list {
    flex: 1 1 0 !important;
    min-height: 0;
    height: auto !important;
    max-height: none !important;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    overflow-anchor: none;
  }
  .disc-shell--conversation.is-mobile-typing .disc-reply-card { display: flex; flex-direction: column; flex: 0 1 auto; min-height: 64px; margin: 0; max-height: 70%; overflow: hidden; padding: 0.2rem 0.25rem max(0.2rem, env(safe-area-inset-bottom)); }
  .disc-shell--conversation.is-mobile-typing.is-typing-keyboard-open .disc-reply-card { padding-bottom: 0; }
  .disc-shell--conversation.is-mobile-typing .disc-reply-card > form,
  .is-mobile-typing .disc-typing-extra form { margin: 0; }
  .disc-shell--conversation.is-mobile-typing .disc-reply-card > form { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow: hidden; }
  .is-mobile-typing .disc-typing-extra [data-chat-thread-options] { flex: 1 0 100%; }
  .is-mobile-typing .disc-typing-extra [data-chat-thread-options] .disc-thread-menu { position: static; min-width: 0; margin-top: 0.25rem; }
  .is-mobile-typing .disc-composer-row { flex: 0 0 auto; }
  .is-mobile-typing .disc-gif-picker { flex: 0 1 auto; min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; }
  .is-mobile-typing .disc-editor-toolbar, .is-mobile-typing [data-disc-attachment-preview] { flex: 0 1 auto; min-height: 0; max-height: 5rem; overflow-y: auto; }
  .disc-shell--conversation.is-mobile-typing .disc-editor { max-height: min(10rem, calc(var(--disc-typing-height, 100dvh) * 0.38)); }
}

.disc-web-gifs { display: grid; gap: 0.5rem; margin-top: 0.5rem; max-width: 100%; }
.disc-web-gif { position: relative; width: min(20rem, 100%); min-width: 0; }
.disc-web-gif-source { display: none !important; }
.disc-web-gif-link { display: block; width: fit-content; max-width: 100%; }
.disc-web-gif-link:focus-visible { outline: 2px solid var(--disc-accent); outline-offset: 3px; border-radius: 12px; }
.disc-web-gif-provider-link { position: absolute; top: 0; right: 0; display: flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; background: var(--disc-card); border-radius: 0 12px 0 12px; }
.disc-web-gif img { display: block; width: auto; max-width: 100%; max-height: 18rem; border-radius: 12px; }
.disc-web-gif iframe { display: block; width: 100%; aspect-ratio: 1; border: 0; border-radius: 12px; background: var(--disc-soft); }
.disc-gif-picker { display: grid; gap: 0.4rem; margin: 0.3rem 0 0.5rem; padding: 0.5rem; border: 1px solid var(--disc-border); border-radius: 12px; background: var(--disc-soft); color: var(--disc-ink); font-size: 0.8rem; }
.disc-gif-picker[hidden] { display: none; }
.disc-gif-picker label { display: grid; gap: 0.3rem; }
.disc-gif-picker input { width: 100%; min-width: 0; min-height: 44px; box-sizing: border-box; padding: 0.4rem 0.55rem; border: 1px solid var(--disc-border); border-radius: 8px; background: var(--disc-card); color: var(--disc-ink); font: inherit; font-size: 16px; }
.disc-gif-picker-actions { display: flex; flex-wrap: wrap; gap: 0.3rem; }
.disc-gif-picker-actions button { min-height: 44px; padding: 0.4rem 0.6rem; border: 1px solid var(--disc-border); border-radius: 8px; background: var(--disc-card); color: var(--disc-ink); font: inherit; cursor: pointer; }
.disc-gif-picker input:focus-visible, .disc-gif-picker button:focus-visible { outline: 2px solid var(--disc-accent); outline-offset: 1px; }
[data-disc-gif-status]:empty { display: none; }
