/* Page-side Community: an explicit, quiet entry point. The drawer reuses the
   existing same-origin app; these rules never restyle the activity underneath. */
body:has(.community-dock):not([data-experience]) { padding-block-end: max(80px, calc(64px + env(safe-area-inset-bottom, 0px))); }
.community-dock__launcher {
  position: fixed; right: max(16px, env(safe-area-inset-right, 0px)); bottom: max(16px, env(safe-area-inset-bottom, 0px)); z-index: 110;
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  min-block-size: 52px; padding: 0 18px; border: 1px solid var(--border-strong); border-radius: 999px;
  background: #211b38; color: #f8f5ff; border-color: #8d78bd; box-shadow: 0 6px 22px #0005;
  font: inherit; font-size: .9rem; font-weight: 650; text-decoration: none; max-inline-size: calc(100vw - 32px); box-sizing: border-box; cursor: pointer; touch-action: manipulation;
}
.community-dock [hidden] { display: none !important; }
@media (hover: hover) and (pointer: fine) { .community-dock__launcher:hover { border-color: var(--accent); color: var(--accent); } }
.community-dock :is(button, a, select):focus-visible { outline: 2px solid var(--focus, var(--primary)); outline-offset: 3px; }
.community-dock__dialog {
  position: fixed; inset: auto max(16px, env(safe-area-inset-right, 0px)) max(16px, env(safe-area-inset-bottom, 0px)) auto;
  inline-size: min(560px, calc(100vw - 24px)); block-size: min(840px, calc(100dvh - 32px));
  max-inline-size: none; max-block-size: none; margin: 0; padding: 0; overflow: hidden; overscroll-behavior: contain;
  border: 0; border-radius: 20px; background: var(--bg-raised); color: var(--text);
  box-shadow: 0 20px 70px #0009;
}
.community-dock__dialog[open] { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr); }
.community-dock__dialog:has([data-dock-scores][hidden]):not(.is-feedback) { grid-template-rows: auto auto minmax(0, 1fr); }
.community-dock__dialog::backdrop { background: #0806128c; }
.community-dock__head { display: flex; align-items: center; gap: 8px; padding: 12px 14px; background: var(--surface-1-solid, #18122e); }
.community-dock__head > div { flex: 1; min-inline-size: 0; }
.community-dock__head > div > span { color: var(--text-muted); font-size: .74rem; }
.community-dock__head h2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 2px 0 0; font: 650 1rem/1.3 var(--font-body, sans-serif); }
.community-dock__head :is(a, button) { flex: none; display: grid; place-items: center; inline-size: 44px; block-size: 44px; padding: 0; border: 0; border-radius: 10px; background: transparent; color: var(--text-muted); cursor: pointer; }
.community-dock__head :is(a, button):hover { background: var(--surface-2); color: var(--text); }
.community-dock__tabs { display: flex; gap: 8px; padding: 7px 14px; border-block-end: 1px solid var(--border); }
.community-dock__tabs button { min-block-size: 44px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--text-muted); font: inherit; font-size: .88rem; cursor: pointer; }
.community-dock__tabs button[aria-pressed="true"] { background: var(--surface-2); color: var(--text); }
.community-dock__scores { max-block-size: 240px; padding: 0 14px 8px; overflow-y: auto; border-block-end: 1px solid var(--border); }
.community-dock__scores > summary { display: flex; align-items: center; gap: 8px; min-block-size: 44px; font-size: .8rem; color: var(--text-muted); cursor: pointer; list-style: none; }
.community-dock__scores > summary::-webkit-details-marker { display: none; }
.community-dock__scores > summary::after { content: '+'; margin-inline-start: auto; font-size: 1.2rem; }
.community-dock__scores[open] > summary::after { content: '−'; }
.community-dock__scores.has-saved-result > summary { color: var(--amber, #f2c56a); }
.community-dock__scores p { margin: 5px 0 10px; font-size: .8rem; line-height: 1.45; color: var(--text-muted); overflow-wrap: anywhere; }
.community-dock__scores select { inline-size: 100%; min-block-size: 42px; padding: 6px 10px; border: 1px solid var(--border-control, var(--border)); border-radius: 8px; background: var(--bg-raised); color: var(--text); font: inherit; font-size: max(16px, .9rem); }
.community-dock__attach { display: flex; align-items: center; justify-content: center; gap: 8px; inline-size: 100%; min-block-size: 44px; padding: 8px 12px; border: 1px solid #f2c56a77; border-radius: 10px; background: color-mix(in srgb, var(--amber, #f2c56a) 14%, var(--bg)); color: var(--text); box-shadow: 0 0 18px #f2c56a26; font: inherit; font-size: .84rem; font-weight: 650; cursor: pointer; }
.community-dock__attach:disabled { opacity: .5; box-shadow: none; cursor: default; }
.community-dock__scores .community-dock__hint { font-size: .72rem; }
.community-dock__content { position: relative; min-block-size: 0; overflow: hidden; }
.community-dock__content iframe { display: block; inline-size: 100%; block-size: 100%; border: 0; background: var(--bg); }
.community-dock__loading { position: absolute; inset: 0; z-index: 1; margin: 0; display: grid; place-items: center; padding: 24px; background: var(--bg); color: var(--text-muted); }
@media (max-width: 600px) {
  .community-dock__launcher { min-block-size: 48px; padding: 0 14px; gap: 7px; font-size: .82rem; }
  .community-dock__launcher > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .community-dock__dialog { inset: max(8px, env(safe-area-inset-top, 0px)) 8px max(8px, env(safe-area-inset-bottom, 0px)); inline-size: calc(100vw - 16px); block-size: calc(100dvh - max(8px, env(safe-area-inset-top, 0px)) - max(8px, env(safe-area-inset-bottom, 0px))); border-radius: 16px; }
  .community-dock__head { padding: 8px 10px; }
}

/* The private experience form lives alongside, never inside, public posts. */
.community-dock__dialog.is-feedback { grid-template-rows: auto auto minmax(0, 1fr); }
.community-dock__feedback { overflow-y: auto; overscroll-behavior: contain; padding: 20px; min-block-size: 0; }
.community-feedback__intro { margin: 0 0 24px; line-height: 1.6; color: var(--text-muted); }
.community-dock__feedback fieldset { border: 0; padding: 0; margin: 0 0 24px; min-inline-size: 0; }
.community-dock__feedback legend { font-size: 1rem; font-weight: 650; margin-block-end: 10px; }
.community-feedback__ratings { display: flex; flex-wrap: wrap; gap: 7px; }
.community-feedback__ratings label { position: relative; cursor: pointer; flex: 1; min-inline-size: 68px; }
.community-feedback__ratings input { position: absolute; opacity: 0; inline-size: 1px; block-size: 1px; }
.community-feedback__ratings span { display: flex; align-items: center; justify-content: center; padding: 10px 7px; min-block-size: 44px; box-sizing: border-box; border-radius: 9px; background: var(--surface-2); color: var(--text); font-size: .83rem; text-align: center; }
.community-feedback__ratings input:checked + span { background: var(--primary); color: var(--primary-ink); }
.community-feedback__ratings input:focus-visible + span { outline: 2px solid var(--focus); outline-offset: 3px; }
.community-feedback__ratings button { min-block-size: 44px; padding: 6px 8px; background: none; border: 0; color: var(--text-muted); font: inherit; font-size: .8rem; cursor: pointer; }
.community-feedback__text { display: grid; gap: 9px; margin-block: 20px; font-size: .95rem; font-weight: 600; }
.community-feedback__text textarea { inline-size: 100%; box-sizing: border-box; resize: vertical; min-block-size: 96px; max-block-size: 240px; padding: 12px; border: 1px solid var(--border-control); border-radius: 10px; background: var(--bg); color: var(--text); font: 400 16px/1.5 var(--font-body); caret-color: var(--primary); }
.community-feedback__privacy { color: var(--text-muted); font-size: .8rem; line-height: 1.5; }
.community-feedback__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-block-start: 18px; }
.community-feedback__actions button, [data-feedback-back] { min-block-size: 44px; padding: 10px 14px; border: 0; border-radius: 9px; background: var(--surface-2); color: var(--text); font: 600 .88rem/1.3 var(--font-body); cursor: pointer; }
.community-feedback__actions .community-feedback__send { background: var(--primary); color: var(--primary-ink); }
.community-feedback__actions button:disabled { opacity: .65; cursor: wait; }
.community-feedback__status { font-size: .95rem; line-height: 1.6; color: var(--text); overflow-wrap: anywhere; }
.community-feedback__status:empty { display: none; }
.community-dock__invite { position: fixed; right: var(--community-invite-right, 80px); bottom: var(--community-invite-bottom, max(16px, env(safe-area-inset-bottom, 0px))); z-index: 111; display: flex; align-items: center; max-inline-size: min(280px, calc(100vw - var(--community-invite-right, 80px) - 12px)); min-block-size: 52px; border-radius: 14px; background: #f2edff; color: #281d43; box-shadow: 0 6px 24px #0005; }
.community-dock__invite button { border: 0; background: none; color: inherit; cursor: pointer; font: 650 .88rem/1.3 var(--font-body); min-block-size: 48px; }
.community-dock__invite [data-dock-feedback-open] { padding: 10px 10px 10px 16px; text-align: start; }
.community-dock__invite [data-dock-invite-close] { display: grid; place-items: center; padding: 10px; min-inline-size: 44px; }
.community-dock__invite::after { content: ''; position: absolute; right: -5px; bottom: 20px; inline-size: 10px; block-size: 10px; background: inherit; transform: rotate(45deg); }
@media (prefers-reduced-motion: no-preference) {
 .community-dock__invite { animation: experience-invite 220ms cubic-bezier(.16,1,.3,1); }
 @keyframes experience-invite { from { opacity: 0; transform: translateX(8px); } to { opacity: 1; transform: none; } }
}
@media (max-width: 600px) {
 .community-dock__feedback { padding: 16px; }
 .community-feedback__ratings { gap: 6px; }
 .community-feedback__ratings button { flex-basis: 100%; text-align: start; min-block-size: 32px; }
}

/* Same-origin compact mode, including the existing account sign-in return path.
   Regions remain mounted for the app's own controllers and auth lifecycle. */
html[data-community-dock-embedded] { --header-stuck: 0px; }
html[data-community-dock-embedded] body { --c-bar-h: 0px; padding: 0 !important; min-inline-size: 0; }
html[data-community-dock-embedded] :is(.site-header, .site-footer, .site-subnav, .c-bar, .c-rail, .c-tabbar, .c-aside, [data-app-footer], .app-site-controls, #star-canvas, .skip-link, [data-community-dock], [data-game-reminders], .game-reminder, .site-announcement, [data-local-preview]) { display: none !important; }
html[data-community-dock-embedded] :is(.community, .c-shell, .c-layout) { display: block; min-block-size: 0; inline-size: 100%; max-inline-size: none; padding: 0 !important; margin: 0; }
html[data-community-dock-embedded] .c-main { display: block; min-inline-size: 0; padding: 12px !important; margin: 0; }
html[data-community-dock-embedded] :is(.c-crumbs, .c-topic-head, .c-topic-write, .c-plate, .c-plate-dots) { display: none; }
html[data-community-dock-embedded] .c-heading h1 { font-size: 1.6rem; }
html[data-community-dock-embedded] .c-feed { padding: 0; }
html[data-community-dock-embedded] .c-composer { margin: 0; }
html[data-community-dock-embedded] .c-post { max-inline-size: 100%; }
html[data-community-dock-embedded] .c-score { border-color: #f2c56a99; box-shadow: 0 0 18px #f2c56a24; }
@media (prefers-reduced-motion: reduce) { .community-dock *, html[data-community-dock-embedded] .c-score { animation: none !important; } }

.community-dock__launcher > svg { color: #c6b2ff; }
@media (hover: hover) and (pointer: fine) { .community-dock__launcher { transition: transform 140ms var(--ease-out, ease-out); } .community-dock__launcher:hover { transform: translateY(-2px); color: #fff; box-shadow: 0 7px 24px #0007; } }
@media (prefers-reduced-motion: reduce) { .community-dock__launcher { transition: none; } .community-dock__launcher:hover { transform: none; } }
