/* Shared iOS conversation presentation used by the game panel and /discuss. */
.disc-ios-surface { --d-rgb:255,255,255; }
html.si-light .disc-ios-surface { --d-rgb:16,20,24; }
.disc-ios-surface .disc-ios-composer { background:transparent; border-radius:12px; padding:12px; }
.disc-ios-surface .disc-ios-composer .disc-composer-foot { background:rgba(var(--d-rgb),.045); margin:10px -12px -12px; padding:10px 12px; border-radius:0 0 12px 12px; }
.disc-ios-surface .disc-ios-composer .disc-post-btn { padding:6px 10px; margin-left:0; font-size:11px; }
.disc-ios-surface .disc-ios-composer .disc-kbd-hint,.disc-ios-surface .disc-ios-composer .disc-enter-hint { display:none; }
.disc-ios-surface .disc-composer.disc-ios-composer { padding:8px 0 0; border:0; border-radius:0; background:transparent; box-shadow:none; margin-bottom:18px; }
.disc-ios-surface .disc-ios-composer .disc-input { min-height:108px; max-height:none; padding:10px 0; font-size:16px; line-height:1.5; }
.disc-ios-surface .disc-ios-composer .disc-composer-foot { margin:8px 0 0; padding:10px 0; background:transparent; border-radius:0; border-top:1px solid rgba(var(--d-rgb),.14); border-bottom:1px solid rgba(var(--d-rgb),.14); }
.disc-ios-surface .disc-ios-composer > .disc-game-eyebrow { margin:0 0 4px; }
.disc-ios-surface .disc-ios-composer .disc-draft-count.is-over { color:#dc2626; }
.disc-ios-surface .disc-ios-composer .disc-upload-status { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:12px; padding:10px 0; }
.disc-ios-surface .disc-ios-composer .disc-post-btn:disabled { opacity:.35; cursor:default; }
.disc-ios-surface .disc-ios-composer .disc-slash { position:relative; left:auto!important; top:auto!important; width:100%; max-width:none; max-height:300px; overflow-y:auto; margin:8px 0; border-radius:0; border:0; border-top:1px solid rgba(var(--d-rgb),.14); box-shadow:none; background:transparent; }
.disc-ios-surface .disc-ios-composer .disc-command-options { display:flex; flex-wrap:wrap; gap:8px; padding:5px 0 10px 36px; }
.disc-ios-surface .disc-ios-composer .disc-command-options button { padding:6px 10px; border:1px solid rgba(var(--d-rgb),.22); border-radius:999px; font-size:12px; }
.disc-ios-surface .disc-ios-composer .disc-composer-who { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:750; margin-bottom:8px; }
.disc-ios-surface .disc-ios-composer .disc-slash-row { width:100%; margin:0; padding:9px 12px; border:0; border-radius:8px; background:transparent; color:var(--d-ink); box-shadow:none; text-align:left; line-height:1.35; }
.disc-ios-surface .disc-ios-composer .disc-slash-row.is-active,
.disc-ios-surface .disc-ios-composer .disc-slash-row:hover { background:rgba(var(--d-rgb),.06); }
.disc-ios-surface .disc-ios-composer .disc-slash-row:focus { box-shadow:none; }
.disc-ios-surface .disc-ios-composer .disc-slash-row:focus-visible { outline:2px solid var(--d-ink); outline-offset:2px; }
.disc-ios-surface .disc-ios-composer .disc-slash-main { display:flex; flex-direction:column; gap:3px; }
.disc-ios-surface .disc-ios-composer .disc-slash-label { color:var(--d-ink); }
.disc-ios-surface .disc-ios-composer .disc-slash-sub { color:rgba(var(--d-rgb),.55); }
.disc-ios-surface .disc-ios-composer .disc-command-options .disc-slash-row { width:auto; padding:6px 10px; border:1px solid rgba(var(--d-rgb),.22); border-radius:999px; font-size:12px; font-weight:700; }
.disc-ios-surface .disc-ios-composer .disc-input { height:auto; max-height:none; overflow:visible; }
.disc-ios-surface .disc-ios-composer .disc-media-draft { border:0; padding:0; background:none; box-shadow:none; border-radius:0; white-space:normal; }
.disc-ios-surface .disc-ios-composer .disc-media-draft img { width:auto; height:auto; max-width:100%; object-fit:contain; }
.disc-ios-surface .disc-ios-composer .disc-media-draft .disc-del-btn { display:block; margin:8px 0 0; }
.disc-ios-surface .disc-ios-composer .disc-slash-row { display:flex; align-items:center; gap:11px; appearance:none; font-family:inherit; }
.disc-ios-surface .disc-ios-composer .disc-slash-row:focus:not(:focus-visible) { outline:none; }
.disc-ios-surface .disc-ios-composer .disc-slash-label { display:block; }
.disc-ios-surface .disc-ios-composer .disc-slash-sub { display:block; white-space:normal; }
.disc-ios-surface .disc-take > .disc-game-eyebrow { margin:0 0 10px; }
.disc-ios-surface .disc-ios-composer > .disc-game-eyebrow { margin:0 0 10px; }
.disc-ios-surface .disc-post-head { gap:6px; }
.disc-ios-surface .disc-author { font-size:15px; font-weight:800; }
.disc-ios-surface .disc-post-time { margin-left:auto; white-space:nowrap; }
.disc-ios-surface .disc-time-sep { display:none; }
.disc-ios-surface .disc-post-body { font-size:15px; line-height:1.55; }
.disc-ios-surface .disc-entity-tag { font-size:inherit; }
.disc-ios-surface img.disc-author-crest { width:18px; height:18px; object-fit:contain; flex:none; margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.disc-ios-surface .disc-post-foot { gap:18px; }
.disc-ios-surface .disc-icon-action { display:inline-flex; align-items:center; justify-content:center; gap:6px; width:auto; min-width:28px; height:32px; padding:0; margin:0; border:0; border-radius:0; background:transparent; color:rgba(var(--d-rgb),.5); box-shadow:none; font-size:12px; font-weight:700; line-height:1; }
.disc-ios-surface .disc-icon-action svg { display:block; width:19px; height:19px; flex:none; }
.disc-ios-surface .disc-icon-action.disc-del-btn { margin-left:auto; }
.disc-ios-surface .disc-icon-action:hover { color:var(--d-ink); }
.disc-ios-surface .disc-icon-action[aria-pressed=true] { color:#15965c; }
.disc-ios-surface .disc-icon-action:focus { box-shadow:none; }
.disc-ios-surface .disc-icon-action:focus:not(:focus-visible) { outline:none; }
.disc-ios-surface .disc-icon-action:focus-visible { outline:2px solid var(--d-ink); outline-offset:3px; border-radius:4px; }
html body.si-themed .disc-ios-surface .disc-entity-tag img.disc-chip-img { background:transparent; border:0; box-shadow:none; }
.disc-ios-surface .disc-page { max-height:none; }

/* Standalone conversation: a quiet reading column and compact room controls. */
/* Share the global conference/points bar and home page's Wire ticker. */
.page-discuss #siteCbar { display:flex; }
.disc-chat { max-width:900px; margin:0 auto; padding:22px 32px 80px; }
.disc-chat [hidden] { display:none!important; }
.disc-chat .disc-landing.is-single { display:block; }
.disc-chat .disc-chat-tools { display:flex; align-items:center; gap:16px; margin-bottom:14px; }
.disc-chat #discRooms { display:flex; align-items:center; flex:1; gap:8px; flex-wrap:wrap; padding:0; margin:0; }
.disc-chat #discRooms .ph-navtab, .disc-chat #discBlockedOpen, .disc-chat .disc-load-older, .disc-chat .disc-replies-toggle {
  display:inline-flex; align-items:center; justify-content:center; width:auto; min-height:30px; margin:0; padding:5px 12px;
  border:1px solid var(--d-line-2); border-radius:999px; background:transparent; color:var(--d-ink-2); box-shadow:none;
  font:700 12px/1.4 Inter,system-ui,sans-serif; text-decoration:none; cursor:pointer;
}
.disc-chat #discRooms .ph-navtab.is-on { background:var(--d-ink); color:#14171b; border-color:var(--d-ink); }
html.si-light .disc-chat #discRooms .ph-navtab.is-on { color:white; }
.disc-chat #discBlockedOpen { border:0; padding:4px; }
.disc-chat #discBlockedOpen svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; }
.disc-chat .disc-room-context { font-size:12px; color:var(--d-ink-2); }
.disc-chat .disc-load-older { align-self:center; margin-top:24px; }
/* padding, not margin, below the divider: the trunk line the toggle draws
   covers its own box, and a margin would leave the connector broken. */
.disc-chat .disc-replies-toggle { border:0; border-radius:0; padding:8px 0 20px; margin-bottom:0; font-size:13px; }
.disc-chat .disc-composer-foot { flex-wrap:wrap; gap:12px; }
.disc-chat .ph-comp-chips { display:flex; align-items:center; gap:14px; margin:0; padding:0; }
.disc-chat .ph-comp-chips > button { width:auto; margin:0; padding:0; min-height:28px; border:0; background:transparent; box-shadow:none; border-radius:0; color:var(--d-ink-2); font:750 12px/1.4 Inter,system-ui,sans-serif; }
.disc-chat .disc-composer-foot .disc-post-btn { border:0; border-radius:8px; padding:6px 12px; background:var(--d-ink); color:#14171b; font-size:12px; }
html.si-light .disc-chat .disc-composer-foot .disc-post-btn { color:#fff; }
.disc-chat .disc-input:focus { outline:none; box-shadow:none; }
.disc-chat button:focus:not(:focus-visible) { outline:none; box-shadow:none; }
.disc-chat button:focus-visible { outline:2px solid var(--d-ink); outline-offset:3px; box-shadow:none; }
.disc-chat .disc-ios-composer .disc-media-draft img { max-height:400px; }
.disc-sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(max-width:600px) {
  .disc-chat { padding:16px 18px 64px; }
  .disc-chat .disc-post-foot { gap:14px; }
  .disc-chat .ph-comp-chips { gap:10px; }
  .disc-chat .disc-post-body { font-size:15px; }
}
.page-discuss main.container { padding-top:0; }
html body.page-discuss { padding-top:calc(var(--site-nav-h,57px) + 91px); }
html body.page-discuss.wire-off { padding-top:calc(var(--site-nav-h,57px) + 54px); }
.disc-chat #discRooms { justify-content:flex-start; }
html body.si-themed .disc-ios-surface .disc-composer.disc-ios-composer,
html body.si-themed .disc-ios-surface .disc-ios-composer .disc-composer-foot,
html body.si-themed .disc-ios-surface .disc-ios-composer .disc-media-draft {
  background:transparent; box-shadow:none;
}
/* Structured attachments share the typed command rows, including older posts. */
html body.si-themed .disc-ios-surface .disc-rich.disc-ballot { background:transparent; box-shadow:none; border:1px solid rgba(var(--d-rgb),.16); border-radius:16px; padding:12px; }
.disc-ios-surface .disc-ballot-list { display:block; padding:0; margin:0; }
.disc-ios-surface .disc-ballot-list > .disc-ballot-row { display:grid; grid-template-columns:22px 24px minmax(0,1fr); gap:3px 9px; padding:9px 0; margin:0; border-color:rgba(var(--d-rgb),.08); }
.disc-ios-surface .disc-ballot-list > .disc-ballot-row.is-more { display:none; }
.disc-ios-surface .disc-ballot.is-open .disc-ballot-list > .disc-ballot-row.is-more { display:grid; }
.disc-ios-surface .disc-ballot-n { grid-column:1; grid-row:1 / span 2; color:rgba(var(--d-rgb),.45); }
.disc-ios-surface .disc-ballot-logo { grid-column:2; grid-row:1 / span 2; width:24px; height:24px; margin:0; border:0; background:transparent; }
.disc-ios-surface .disc-ballot-name { grid-column:3; grid-row:1; min-width:0; color:var(--d-ink); font-size:13.5px; line-height:1.4; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.disc-ios-surface .disc-ballot-note { grid-column:3; grid-row:2; color:rgba(var(--d-rgb),.55); font-size:11.5px; }
.disc-ios-surface .disc-ballot-more { display:block; width:100%; padding:9px 0 0; margin:0; border:0; border-radius:0; background:transparent; box-shadow:none; color:rgba(var(--d-rgb),.55); font-size:11.5px; }
.disc-ios-surface .disc-lineup .disc-ballot-list > .disc-ballot-row { grid-template-columns:38px 32px minmax(0,1fr); }
.disc-ios-surface .disc-lineup .disc-lineup-avatar { width:32px; height:32px; border-radius:50%; }
.disc-ios-surface .disc-lineup .disc-ballot-n { font-size:10px; }

/* Page composer floats above the feed; its draft stays mounted on dismissal. */
html body.disc-compose-open { overflow:hidden; }
body.page-discuss .disc-loginpop { z-index:10020; }
.disc-compose-portal { min-height:0; max-width:none; margin:0; padding:0; }
.disc-chat #discComposeOpen { position:fixed; right:28px; bottom:28px; z-index:1200; display:grid; place-items:center; width:58px; height:58px; min-height:0; margin:0; padding:0; border:0; border-radius:50%; background:#101418; color:#fff; box-shadow:0 4px 18px rgba(0,0,0,.18); cursor:pointer; }
.disc-chat #discComposeOpen:disabled { opacity:.4; cursor:default; }
.disc-chat #discComposeOpen svg { width:28px; height:28px; fill:none; stroke:currentColor; stroke-width:2; }
.disc-chat #discComposeOverlay { position:fixed; inset:0; z-index:9990; display:flex; align-items:flex-start; justify-content:center; padding:clamp(24px,8vh,80px) 20px 24px; overflow-y:auto; background:rgba(0,0,0,.4); overscroll-behavior:contain; }
.disc-chat .disc-compose-dialog { box-sizing:border-box; flex:none; width:640px; max-width:100%; max-height:100%; overflow-y:auto; overscroll-behavior:contain; padding:16px 24px 0; margin:0; border:0; border-radius:20px; background:#181c21; color:var(--d-ink); box-shadow:0 16px 64px rgba(0,0,0,.2); }
html.si-light .disc-chat .disc-compose-dialog { background:#edeef0; }
.disc-chat #discComposeClose { display:grid; place-items:center; width:32px; height:32px; min-height:0; margin:0 0 12px -8px; padding:0; border:0; border-radius:50%; background:transparent; color:var(--d-ink); box-shadow:none; }
.disc-chat #discComposeClose:hover { background:rgba(var(--d-rgb),.08); }
.disc-chat #discComposeClose svg { width:22px; height:22px; stroke:currentColor; stroke-width:1.8; fill:none; }
.disc-chat #discComposeMount .disc-ios-composer { margin:0; padding:0; }
.disc-chat #discComposeMount .disc-input { min-height:160px; font-size:17px; }
.disc-chat #discComposeMount .disc-composer-foot { border-bottom:0; padding:14px 0; margin-top:12px; }
@media(max-width:600px) {
  .disc-chat #discComposeOpen { right:20px; bottom:max(20px,env(safe-area-inset-bottom)); width:54px; height:54px; }
  .disc-chat #discComposeOverlay { padding:12px; }
  .disc-chat .disc-compose-dialog { padding:12px 18px 0; border-radius:16px; }
}

/* ---------- /discuss shell: the room + a collapsible rail ----------
   The rail is empty on purpose until we decide what belongs beside the room.
   Resize/collapse behaviour is static/js/discuss-shell.js, and the grip is
   the game page's, so the two pages feel the same under the hand. */
/* Use the game page's frame instead of the shared chat reading-column cap. */
.page-discuss #discussPage { max-width:1500px; padding:20px 32px 64px; }
.disc-chat .disc-shell { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,.54fr); gap:36px; align-items:stretch; }
.disc-chat .disc-shell.is-sized { grid-template-columns:minmax(0,1fr) minmax(0,calc(var(--disc-side-width) - var(--disc-side-half-gap,18px))); }
.disc-chat .disc-shell.is-collapsed { grid-template-columns:minmax(0,1fr) 18px; gap:20px; }
.disc-chat .disc-shell.is-dragging { cursor:col-resize; user-select:none; }
.disc-chat .disc-shell-main { min-width:0; }
.disc-chat .disc-shell-aside { position:relative; min-width:0; border-left:1px solid var(--d-line); padding-left:24px; }
.disc-chat .disc-shell.is-collapsed .disc-shell-aside { padding-left:0; }
.disc-chat .disc-shell.is-collapsed .disc-side-panel { display:none; }
.disc-chat .disc-side-resize { position:absolute; z-index:5; top:0; bottom:0; left:-9px; width:18px; cursor:col-resize; touch-action:none; outline:none; }
.disc-chat .disc-side-grip {
  position:sticky; top:180px; display:flex; align-items:center; justify-content:center;
  width:14px; height:30px; margin:24px auto 0; border:1px solid var(--d-line-2); border-radius:7px;
  background:var(--d-bg,transparent); color:var(--d-ink-3); transition:color .15s,border-color .15s;
}
.disc-chat .disc-side-grip::before { content:''; width:8px; height:15px; background:radial-gradient(circle,currentColor 1px,transparent 1.2px) 0 0 / 4px 5px; }
.disc-chat .disc-side-resize:hover .disc-side-grip,
.disc-chat .disc-side-resize:focus-visible .disc-side-grip,
.disc-chat .disc-shell.is-dragging .disc-side-grip { color:var(--d-ink); border-color:var(--d-ink-3); }
.disc-chat .disc-side-resize:focus-visible .disc-side-grip { outline:2px solid var(--d-ink); outline-offset:3px; }
.disc-chat .disc-side-panel { position:sticky; top:140px; }
.page-discuss.has-wire { --disc-wire-offset:37px; }
.page-discuss .disc-side-panel { top:calc(140px + var(--disc-wire-offset,0px)); }
.page-discuss .disc-side-grip { top:calc(180px + var(--disc-wire-offset,0px)); }
.disc-chat .disc-side-empty { padding:22px 0; font-size:12.5px; color:var(--d-ink-3); }
@media(max-width:1100px) {
  .page-discuss #discussPage { padding:18px 24px 48px; }
  .disc-chat .disc-shell { --disc-side-half-gap:12px; grid-template-columns:minmax(0,1fr) 300px; gap:24px; }
  .disc-chat .disc-shell-aside { padding-left:18px; }
}
@media(max-width:800px) {
  .disc-chat .disc-shell,
  .disc-chat .disc-shell.is-sized,
  .disc-chat .disc-shell.is-collapsed { grid-template-columns:1fr; gap:0; }
  .disc-chat .disc-shell-aside { border-left:0; padding-left:0; order:-1; }
  .disc-chat .disc-side-resize { position:relative; width:100%; height:18px; left:auto; cursor:pointer; touch-action:auto; }
  .disc-chat .disc-side-grip { position:static; width:30px; height:14px; margin:2px auto; }
  .disc-chat .disc-side-grip::before { transform:rotate(90deg); }
  .disc-chat .disc-side-panel { position:static; }
}
