/* FEED 001. Mobile first; tablet 48rem, three columns 72rem. */
.ft-community-document { scroll-padding-block: 7rem calc(6rem + env(safe-area-inset-bottom, 0px)); }
.ft-community {
	--ft-app-width: 78rem;
	--ft-app-header: 4.5rem;
	background: linear-gradient(135deg, #fff6fb 0, var(--ft-canvas) 32rem, #faf7ff 100%);
}

.ft-icon { flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.app-container { inline-size: min(calc(100% - 1.5rem), var(--ft-app-width)); margin-inline: auto; }
.app-header { position: sticky; inset-block-start: 0; z-index: 20; background: var(--ft-canvas); border-block-end: 1px solid #f0e6f0; }
.app-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-block-size: var(--ft-app-header); }
.app-brand { display: inline-flex; align-items: center; gap: .35rem; min-block-size: 2.75rem; text-decoration: none; color: var(--ft-ink); }
.app-brand:hover { color: var(--ft-ink); }
.app-brand__word { font-size: 2rem; font-weight: 800; line-height: 1; letter-spacing: -.09rem; }
.app-brand__word > span { color: var(--ft-primary); }
.app-brand > .ft-icon { color: var(--ft-primary); inline-size: 1.3rem; transform: rotate(-12deg); }
.app-header__tagline { display: none; margin: 0; color: var(--ft-muted); font-size: .875rem; }
.app-header__actions { display: flex; gap: .25rem; }
.app-icon-button { display: grid; place-items: center; inline-size: 2.75rem; block-size: 2.75rem; padding: .5rem; background: transparent; border: 0; border-radius: 50%; color: var(--ft-muted); }
.ft-community button:disabled { opacity: 1; cursor: not-allowed; }
.app-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 1.5rem; padding-block: 1.5rem calc(7rem + env(safe-area-inset-bottom, 0px)); }
.app-main { min-inline-size: 0; }
.app-sidebar, .app-aside { display: none; }

.feed-heading { display: flex; align-items: end; justify-content: space-between; gap: .75rem; margin-block-end: 1.25rem; }
.feed-heading p { color: var(--ft-muted); font-size: .75rem; margin-block-end: .25rem; letter-spacing: .06em; text-transform: uppercase; }
.feed-heading h1 { font-size: 1.75rem; letter-spacing: -.04em; margin: 0; }
.feed-heading > span { display: inline-flex; align-items: center; gap: .3rem; font-size: .75rem; color: var(--ft-muted); padding-block-end: .2rem; }
.feed-heading > span .ft-icon { inline-size: 1rem; block-size: 1rem; color: var(--ft-primary); }
.topic-chips { display: flex; gap: .5rem; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; scrollbar-color: #c7badb transparent; padding: .25rem .25rem .75rem; margin: -.25rem -.25rem .75rem; }
.topic-chip { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-block-size: 2.75rem; padding: .5rem 1.1rem; border: 1px solid transparent; border-radius: var(--ft-radius-pill); color: #563f75; background: var(--ft-lilac); text-decoration: none; font-size: .875rem; font-weight: 600; }
.topic-chip:hover { color: var(--ft-ink); border-color: #b7a2cc; }
.topic-chip[aria-current="page"] { color: white; background: var(--ft-primary); box-shadow: 0 3px 10px rgb(183 25 97 / .12); }

.question-prompt { padding: 1rem; margin-block-end: 1.25rem; border: 1px solid #f2d5e5; border-radius: 1.25rem; background: linear-gradient(115deg, #fff 0, #fff0f8 100%); box-shadow: var(--ft-shadow-card); }
.question-prompt__top { display: flex; align-items: center; gap: .75rem; }
.question-prompt__icon { display: none; }
.question-prompt h2 { flex: 1; margin: 0; font-size: 1rem; line-height: 1.5; font-weight: 600; }
.question-prompt__button { flex-shrink: 0; padding: .6rem .9rem; font-size: .875rem; }
.question-prompt__button .ft-icon { inline-size: 1rem; block-size: 1rem; }
.question-prompt > p { margin: .75rem 0 0; color: var(--ft-muted); font-size: .75rem; line-height: 1.6; }

.question-list { display: grid; gap: 1rem; }
.question-card { position: relative; min-inline-size: 0; padding: 1rem; background: var(--ft-surface); border: 1px solid #e9e1ed; border-radius: 1.25rem; box-shadow: 0 4px 18px rgb(56 26 75 / .045); }
.question-card--preview:hover { border-color: #d8bdd5; box-shadow: 0 6px 22px rgb(56 26 75 / .08); }
.question-card__meta { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: center; gap: .65rem; margin-block-end: 1rem; }
.question-avatar { display: grid; position: relative; place-items: center; overflow: hidden; inline-size: 2.5rem; block-size: 2.5rem; border-radius: 50%; background: var(--ft-lilac); color: #715889; }
.question-avatar > .ft-icon { inline-size: 1.35rem; block-size: 1.35rem; }
.question-avatar__image { position: absolute; inset: 0; display: block; inline-size: 100%; block-size: 100%; object-fit: cover; opacity: 0; }
.question-avatar__image.is-loaded { opacity: 1; }
.question-card__identity { display: flex; flex-direction: column; min-inline-size: 0; gap: .1rem; }
.question-card__author { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .875rem; font-weight: 650; line-height: 1.4; }
.question-card__identity time, .question-card__identity > span:last-child:not(.question-card__author) { color: var(--ft-muted); font-size: .75rem; line-height: 1.4; }
.question-topic { max-inline-size: 8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .75rem; line-height: 1.5; font-weight: 600; border-radius: .55rem; padding: .3rem .55rem; background: var(--ft-lilac); color: #563f75; }
.question-topic--pink { background: var(--ft-pink); color: #982051; }
.question-topic--peach { background: var(--ft-peach); color: #86491e; }
.question-topic--mint { background: var(--ft-mint); color: #21634f; }
.question-card__title { font-size: 1.125rem; line-height: 1.4; letter-spacing: -.015em; margin-block-end: .5rem; }
.question-card__link { color: var(--ft-ink); text-decoration: none; }
.question-card__link:hover { color: var(--ft-ink); }
.question-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 1.25rem; }
.question-card__link:focus-visible { outline: 0; }
.question-card__link:focus-visible::after { outline: 3px solid var(--ft-focus); outline-offset: 3px; }
.question-card__excerpt { color: var(--ft-muted); font-size: .9375rem; line-height: 1.6; margin: 0; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; overflow-wrap: anywhere; }
.question-card__footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-block-start: 1rem; padding-block-start: .875rem; border-block-start: 1px solid #f3edf5; }
.question-card__counts { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem 1.25rem; min-inline-size: 0; }
.question-count { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .35rem; color: var(--ft-muted); font-size: .8125rem; line-height: 1.5; }
.question-count .ft-icon { inline-size: 1.2rem; block-size: 1.2rem; }
.question-count--reactions .ft-icon { color: var(--ft-primary); }
.question-card__arrow { color: var(--ft-primary); display: flex; }
.question-card__arrow .ft-icon { inline-size: 1.125rem; }
.question-card--single .question-card__title { font-size: clamp(1.4rem, 3vw, 1.875rem); }
.question-card__body { font-size: 1rem; line-height: 1.75; overflow-wrap: anywhere; }
.question-card__body > :last-child { margin-block-end: 0; }
.question-card__figure { margin-block: 1rem; }
.question-card__image { display: block; max-block-size: 36rem; margin-inline: auto; object-fit: contain; border-radius: .75rem; }
.app-back { display: inline-flex; align-items: center; min-block-size: 2.75rem; gap: .5rem; margin-block-end: 1rem; font-size: .875rem; text-decoration: none; }
.feed-empty { text-align: center; padding: 2.5rem 1.25rem; border: 1px solid #e9e1ed; border-radius: 1.25rem; background: var(--ft-surface); }
.feed-empty__icon { display: grid; place-items: center; inline-size: 3.5rem; block-size: 3.5rem; margin: 0 auto 1.25rem; border-radius: 50%; background: var(--ft-lilac); color: #715889; }
.feed-empty h1, .feed-empty h2 { font-size: 1.25rem; }
.feed-empty p { color: var(--ft-muted); font-size: .9375rem; margin-block-end: 1.25rem; }
.feed-empty > :last-child { margin-block-end: 0; }

.app-bottom-nav { position: fixed; z-index: 30; inset-inline: 0; inset-block-end: 0; display: grid; grid-template-columns: 1fr 1fr .8fr 1.45fr .75fr; align-items: center; padding: .5rem max(.5rem, env(safe-area-inset-left, 0px)) calc(.5rem + env(safe-area-inset-bottom, 0px)); background: var(--ft-surface); border-block-start: 1px solid #e9e1ed; box-shadow: 0 -4px 20px rgb(56 26 75 / .04); }
.app-bottom-nav__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .25rem; min-inline-size: 0; min-block-size: 3.25rem; padding: .25rem 0; border: 0; border-radius: .75rem; background: transparent; color: var(--ft-muted); text-decoration: none; font-size: clamp(.625rem, 2.6vw, .75rem); line-height: 1.5; white-space: nowrap; }
.app-bottom-nav__item[aria-current="page"] { color: var(--ft-primary); font-weight: 650; background: #fff3f9; }
.app-bottom-nav__item[aria-current="page"] .ft-icon { fill: var(--ft-pink); }
.app-bottom-nav__add { justify-self: center; inline-size: 2.75rem; min-block-size: 2.75rem; block-size: 2.75rem; border-radius: 50%; background: var(--ft-primary); color: white; }
.app-bottom-nav__add .ft-icon { inline-size: 1.5rem; block-size: 1.5rem; }

@media (min-width: 48rem) {
	.app-container { inline-size: min(calc(100% - 3rem), var(--ft-app-width)); }
	.app-layout { grid-template-columns: 11rem minmax(0, 42rem); justify-content: center; gap: 1.5rem; padding-block: 2rem 4rem; }
	.app-header__tagline { display: block; }
	.app-main { padding-block-start: .25rem; }
	.app-bottom-nav { display: none; }
	.app-sidebar { display: block; position: sticky; inset-block-start: calc(var(--ft-app-header) + 2rem); }
	.app-side-nav { display: grid; gap: .375rem; }
	.app-side-nav__item { display: flex; align-items: center; gap: .85rem; min-block-size: 3rem; padding: .7rem .9rem; inline-size: 100%; border: 1px solid transparent; border-radius: .85rem; background: transparent; color: var(--ft-ink); font-size: .9375rem; text-align: start; text-decoration: none; font-weight: 500; }
	.app-side-nav__item > .ft-icon { inline-size: 1.35rem; block-size: 1.35rem; color: #775991; }
	.app-side-nav__item[aria-current="page"] { background: var(--ft-pink); color: var(--ft-primary); font-weight: 650; }
	.app-side-nav__item[aria-current="page"] > .ft-icon { color: var(--ft-primary); }
	.app-side-nav a:hover { background: var(--ft-lilac); color: var(--ft-ink); }
	.app-side-nav__item:disabled { color: var(--ft-muted); }
	.app-side-nav__item small { display: block; font-size: .6875rem; font-weight: 400; }
	.app-side-nav__label { margin: 1.5rem .9rem .5rem; color: var(--ft-muted); font-size: .6875rem; text-transform: uppercase; letter-spacing: .08em; }
	.app-sidebar__note { display: flex; align-items: start; gap: .5rem; padding: 2.5rem .9rem 0; color: #775991; font-size: .8125rem; line-height: 1.8; }
	.app-sidebar__note .ft-icon { inline-size: 1.2rem; margin-block-start: .25rem; color: var(--ft-primary); }
	.feed-heading h1 { font-size: 2rem; }
	.question-card { padding: 1.5rem; }
	.question-card__title { font-size: 1.25rem; }
	.question-prompt { padding: 1.25rem; }
	.question-prompt__icon { display: grid; place-items: center; flex-shrink: 0; inline-size: 2.5rem; block-size: 2.5rem; border-radius: 50%; color: var(--ft-primary); background: var(--ft-pink); }
}

@media (min-width: 72rem) {
	.app-layout { grid-template-columns: 12rem minmax(0, 1fr) 16rem; gap: 2rem; }
	.app-header__inner { display: grid; grid-template-columns: 12rem minmax(0, 1fr) 16rem; gap: 2rem; }
	.app-header__actions { justify-content: end; }
	.app-aside { display: grid; gap: 1.25rem; position: sticky; inset-block-start: calc(var(--ft-app-header) + 2rem); }
	.app-aside-card { padding: 1.5rem; border: 1px solid #e9e1ed; border-radius: 1.25rem; background: var(--ft-surface); }
	.app-aside-card__icon { display: grid; place-items: center; inline-size: 2.5rem; block-size: 2.5rem; border-radius: .75rem; background: var(--ft-lilac); color: #775991; margin-block-end: 1rem; }
	.app-aside-card h2 { font-size: 1.0625rem; margin-block-end: .75rem; }
	.app-aside-card p { color: var(--ft-muted); font-size: .875rem; line-height: 1.75; margin-block-end: 1rem; }
	.app-aside-card--day { background: linear-gradient(145deg, #fff9f2, #fff7fc); border-color: #f0dfd5; }
	.app-aside-card--day .app-aside-card__icon { background: var(--ft-peach); color: #a65421; }
	.app-soon { display: inline-flex; padding: .25rem .65rem; border-radius: var(--ft-radius-pill); font-size: .6875rem; font-weight: 600; color: var(--ft-muted); background: #f3eef6; }
	.app-aside__signature { color: var(--ft-muted); font-size: .75rem; padding-inline: .5rem; }
}

@media (min-width: 601px) and (max-width: 782px) {
	.admin-bar .app-header { inset-block-start: 46px; }
}
@media (min-width: 783px) {
	.admin-bar .app-header { inset-block-start: 32px; }
	.admin-bar .app-sidebar, .admin-bar .app-aside { inset-block-start: calc(var(--ft-app-header) + 4rem); }
}

/* Author links must stay above the stretched question permalink. */
.profile-author-link { position: relative; z-index: 2; display: inline-flex; align-items: center; min-block-size: 2.75rem; color: inherit; text-decoration: none; overflow-wrap: anywhere; max-inline-size: 100%; }
.profile-author-link:hover { text-decoration: underline; color: var(--ft-primary); }

/* Community post extras sit above the stretched permalink target. */
.publication-link { position: relative; z-index: 2; display: grid; gap: .3rem; margin-block: 1rem; padding: .9rem 1rem; border: 1px solid var(--ft-border); border-radius: .85rem; background: #faf7fd; text-decoration: none; overflow-wrap: anywhere; }
.publication-link strong { color: #604577; font-size: .875rem; }
.publication-link > span { color: var(--ft-muted); font-size: .75rem; }
.ama-ask { position: relative; z-index: 2; min-block-size: 2.75rem; display: inline-flex; align-items: center; font-size: .8125rem; }
.ama-author { display: inline-block; color: #604577; background: #f3edfc; border-radius: .4rem; padding: .25rem .45rem; font-size: .6875rem; }
/* UX FIX 001: compact publication tools and a complete, scrollable topic dictionary. */
.question-card__identity time { white-space: nowrap; }
.publication-link { display: flex; align-items: center; gap: .7rem; padding: .75rem; background: var(--ft-canvas); }
.publication-link > .ft-icon { flex: none; color: var(--ft-primary); inline-size: 1.25rem; block-size: 1.25rem; }
.publication-link__text { display: grid; min-inline-size: 0; gap: .15rem; }
.publication-link__text small { color: var(--ft-muted); font-size: .75rem; }
.publication-share { position: relative; z-index: 2; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; min-block-size: 2.75rem; min-inline-size: 2.75rem; padding: .45rem; border: 0; border-radius: var(--ft-radius-pill); background: transparent; color: var(--ft-muted); font-size: .75rem; cursor: pointer; }
.publication-share[hidden] { display: none; }
.publication-share:hover { color: var(--ft-primary); background: var(--ft-pink); }
.publication-share .ft-icon { inline-size: 1.25rem; block-size: 1.25rem; }
.question-card__footer { flex-wrap: wrap; }
.question-card__counts { flex-wrap: wrap; }
.publication-share { margin-inline-start: auto; }
.share-copy { position: relative; z-index: 2; flex-basis: 100%; min-inline-size: 0; font-size: .875rem; }
.ft-toast { position: fixed; z-index: 100; inset-block-end: calc(var(--ft-app-nav, 4.75rem) + env(safe-area-inset-bottom) + .75rem); inset-inline: 1rem; margin: 0 auto; inline-size: fit-content; max-inline-size: calc(100% - 2rem); padding: .7rem 1rem; border-radius: var(--ft-radius-pill); box-shadow: var(--ft-shadow-card); background: var(--ft-ink); color: var(--ft-surface); font-size: .8125rem; }
.ft-toast[hidden] { display: none; }
.poll-badge .ft-icon { inline-size: 1rem; block-size: 1rem; }
@media (max-width: 27rem) { .publication-share > span { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); } }
@media (min-width: 64rem) { .app-sidebar { max-block-size: calc(100dvh - var(--ft-app-header) - 2rem); overflow-y: auto; scrollbar-width: thin; } .app-side-nav { gap: .15rem; } .app-side-nav__item { min-block-size: 2.75rem; padding-block: .5rem; } }
