

  /**
 * AkuAjae Community Core — Design System
 * Visual family with Membership (accent #8C7EFF).
 * UI/UX Revamp: tokens, surfaces, buttons, badges, icons, avatars.
 *
 * @package AkuAjae_Community_Core
 * @since   1.0.0
 */

@import "acc-tokens.css";
@import "acc-dark.css";

  @media (prefers-reduced-motion: reduce) {
    :root {
      --acc-transition-fast: 0ms;
      --acc-transition-base: 0ms;
    }

    .acc-root *,
    .acc-root *::before,
    .acc-root *::after,
    .acc-app-shell,
    .acc-app-shell *,
    .acc-app-shell *::before,
    .acc-app-shell *::after {
      animation-duration: 0.01ms;
      animation-iteration-count: 1;
      transition-duration: 0.01ms;
      scroll-behavior: auto;
    }
  }

  /* ─── Root shell ─────────────────────────────────────────── */

  /*
 * Font scope: .acc-root, .acc-app-shell, .acc-modal / .acc-font-scope
 * Create-thread modal lives OUTSIDE .acc-root — must set font-family there
 * or inputs fall back to UA/theme serif (Times New Roman).
 */
  .acc-root,
  .acc-app-shell,
  .acc-modal,
  .acc-font-scope {
    box-sizing: border-box;
    color: var(--acc-color-text);
    font-family: var(--acc-font-family);
    font-size: var(--acc-font-size-base);
    line-height: var(--acc-line-height-normal);
    -webkit-font-smoothing: antialiased;
  }

  .acc-root {
    max-width: var(--acc-frame-max);
    margin: 0 auto;
    padding: var(--acc-space-6) var(--acc-space-4);
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  @media (max-width: 480px) {
    .acc-root {
      padding-left: 12px;
      padding-right: 12px;
    }
  }

  /* ─── Prose (Rich Text) ──────────────────────────────────── */
  .acc-prose {
    overflow-wrap: anywhere;
    word-break: break-word;
    min-width: 0;
  }
  .acc-prose img {
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    object-fit: initial;
    display: block;
    margin: 1rem auto;
    border-radius: var(--acc-radius-md);
  }
  .acc-prose iframe,
  .acc-prose video {
    max-width: 100%;
    aspect-ratio: 16/9;
  }
  .acc-prose pre {
    overflow-x: auto;
    max-width: 100%;
    padding: var(--acc-space-4);
    background: var(--acc-color-bg-soft);
    border-radius: var(--acc-radius-md);
  }
  .acc-prose table {
    overflow-x: auto;
    max-width: 100%;
    display: block;
  }
  .acc-prose ul,
  .acc-prose ol {
    padding-left: var(--acc-space-5);
    margin-bottom: 1em;
  }
  .acc-prose h1,
  .acc-prose h2,
  .acc-prose h3,
  .acc-prose h4 {
    margin-top: 1.5em;
    margin-bottom: 0.5em;
    line-height: var(--acc-line-height-tight);
  }
  .acc-prose p {
    margin: 0 0 1em;
  }
  .acc-prose > *:last-child {
    margin-bottom: 0;
  }

  .acc-root *,
  .acc-root *::before,
  .acc-root *::after,
  .acc-app-shell *,
  .acc-app-shell *::before,
  .acc-app-shell *::after,
  .acc-modal *,
  .acc-modal *::before,
  .acc-modal *::after,
  .acc-font-scope *,
  .acc-font-scope *::before,
  .acc-font-scope *::after {
    box-sizing: border-box;
  }

  /* Form controls inherit font-family globally, scoped to prevent leakage to WordPress Dashboard */
  .acc-root input,
  .acc-root button,
  .acc-root textarea,
  .acc-root select,
  .acc-app-shell input,
  .acc-app-shell button,
  .acc-app-shell textarea,
  .acc-app-shell select {
    font-family: inherit;
  }

  /* 
 * Scope fallback classes for non-inherited situations 
 */
  .acc-root input,
  .acc-root textarea,
  .acc-root select,
  .acc-root button,
  .acc-app-shell input,
  .acc-app-shell textarea,
  .acc-app-shell select,
  .acc-app-shell button,
  .acc-modal input,
  .acc-modal textarea,
  .acc-modal select,
  .acc-modal button,
  .acc-font-scope input,
  .acc-font-scope textarea,
  .acc-font-scope select,
  .acc-font-scope button,
  .acc-input,
  .acc-textarea,
  .acc-select,
  .acc-btn,
  .acc-composer-create,
  .acc-composer-create__title,
  .acc-composer-create__body,
  .acc-composer-cat__trigger,
  .acc-composer-create__plus,
  .acc-composer-create__attach-item {
    font-family: inherit;
  }

  /*
 * Create-thread modal + composer: beat theme rules like
 * `body input { font-family: serif }` / `input, textarea { font: … }`.
 * Modal sits outside .acc-root; double-class + on form
 * controls only (not blanket site-wide).
 */
  .acc-modal.acc-font-scope,
  .acc-modal.acc-modal--new-thread,
  .acc-modal--new-thread.acc-font-scope {
    font-family: var(--acc-font-family);
    color: var(--acc-color-text);
  }

  .acc-modal.acc-font-scope input,
  .acc-modal.acc-font-scope textarea,
  .acc-modal.acc-font-scope select,
  .acc-modal.acc-font-scope button,
  .acc-modal.acc-modal--new-thread input,
  .acc-modal.acc-modal--new-thread textarea,
  .acc-modal.acc-modal--new-thread select,
  .acc-modal.acc-modal--new-thread button,
  .acc-modal--new-thread.acc-font-scope input,
  .acc-modal--new-thread.acc-font-scope textarea,
  .acc-modal--new-thread.acc-font-scope select,
  .acc-modal--new-thread.acc-font-scope button,
  .acc-composer-create input,
  .acc-composer-create textarea,
  .acc-composer-create select,
  .acc-composer-create button,
  .acc-composer-create .acc-input,
  .acc-composer-create .acc-textarea,
  .acc-composer-create .acc-select,
  .acc-composer-create .acc-btn,
  .acc-composer-create__title,
  .acc-composer-create__body,
  .acc-composer-cat__trigger,
  .acc-composer-create__plus,
  .acc-composer-create__attach-item {
    font-family: inherit;
  }

  /* Links: primary text by default; accent only on hover/focus (interactive) */
  .acc-root a {
    color: var(--acc-color-text);
    text-decoration: none;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-root a:hover {
      color: var(--acc-color-accent);
    }
  }
  .acc-root a:focus-visible {
    color: var(--acc-color-accent);
  }

  .acc-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  /* ─── Icons ──────────────────────────────────────────────── */

  .acc-icon {
    display: inline-block;
    flex-shrink: 0;
    vertical-align: middle;
    width: var(--acc-icon-size-md);
    height: var(--acc-icon-size-md);
  }

  .acc-icon--sm {
    width: var(--acc-icon-size-sm);
    height: var(--acc-icon-size-sm);
  }

  .acc-icon--lg {
    width: var(--acc-icon-size-lg);
    height: var(--acc-icon-size-lg);
  }

  /* ─── Buttons ────────────────────────────────────────────── */

  .acc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: var(--acc-space-3) var(--acc-space-6);
	border-radius: var(--acc-radius-pill);
	border: 1px solid transparent;
	font-family: inherit;
	font-size: var(--acc-font-size-base);
	font-weight: var(--acc-font-weight-medium);
	line-height: var(--acc-line-height-tight, 1.25);
	text-decoration: none;
	cursor: pointer;
	transition:
		background var(--acc-transition-fast),
		color var(--acc-transition-fast),
		border-color var(--acc-transition-fast),
		box-shadow var(--acc-transition-fast),
		transform var(--acc-transition-fast);
}

  .acc-btn:focus-visible {
    outline: 2px solid var(--acc-color-accent);
    outline-offset: 2px;
  }

  .acc-btn:active:not(:disabled) {
    transform: scale(0.98);
  }

  .acc-btn--sm {
	min-height: 32px;
	padding: 0 var(--acc-space-3);
	font-size: var(--acc-font-size-xs);
}

  .acc-btn--lg {
	min-height: 44px;
	padding: 0 var(--acc-space-8, 32px);
}

  .acc-btn--primary {
    background: var(--acc-color-accent);
    color: #ffffff;
    border-color: transparent;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-btn--primary:hover:not(:disabled) {
      background: var(--acc-color-accent-hover);
      color: #ffffff;
    }
  }

  .acc-btn--secondary {
    background: var(--acc-color-bg-elevated);
    color: var(--acc-color-text);
    border-color: var(--acc-color-border);
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-btn--secondary:hover:not(:disabled) {
      border-color: var(--acc-color-accent);
      color: var(--acc-color-accent);
      background: var(--acc-color-accent-softer);
    }
  }

  .acc-btn--ghost {
    background: transparent;
    color: var(--acc-color-text-muted);
    border-color: transparent;
    padding: 0 10px;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-btn--ghost:hover:not(:disabled) {
      background: var(--acc-color-bg-soft);
      color: var(--acc-color-text);
    }
  }

  .acc-btn--danger {
    background: var(--acc-color-danger-soft);
    color: var(--acc-color-danger);
    border-color: transparent;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-btn--danger:hover:not(:disabled) {
      background: color-mix(in srgb, var(--acc-color-danger) 16%, transparent);
    }
  }

  .acc-btn--icon {
    width: 40px;
    min-width: 40px;
    padding: 0;
    border-radius: var(--acc-radius-md);
    background: transparent;
    color: var(--acc-color-text-muted);
    border-color: transparent;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-btn--icon:hover:not(:disabled) {
      background: var(--acc-color-bg-soft);
      color: var(--acc-color-text);
    }
  }

  .acc-btn--icon:active:not(:disabled) {
    transform: scale(0.95);
  }

  .acc-btn--icon.acc-btn--sm {
    width: 32px;
    min-width: 32px;
    min-height: 32px;
  }

  .acc-btn:disabled,
  .acc-btn.is-loading,
  .acc-btn.is-disabled {
    opacity: 0.55;
    cursor: not-allowed;
    pointer-events: none;
  }

  .acc-btn.is-loading::after {
    content: "";
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: acc-spin 0.7s linear infinite;
  }

  .acc-btn.is-loading {
    position: relative;
    color: transparent !important;
  }

  @keyframes acc-spin {
    to {
      transform: rotate(360deg);
    }
  }

  /* Text / link-style actions */
  .acc-text-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: none;
    background: none;
    color: var(--acc-color-text-muted);
    cursor: pointer;
    font-family: inherit;
    font-size: var(--acc-font-size-sm);
    font-weight: var(--acc-font-weight-medium);
    line-height: inherit;
    padding: 4px 6px;
    border-radius: var(--acc-radius-sm);
    text-decoration: none;
    transition:
      color var(--acc-transition-fast),
      background var(--acc-transition-fast);
  }
  .acc-text-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    min-width: 44px;
    min-height: 44px;
    width: 100%;
    height: 100%;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-text-btn:hover {
      color: var(--acc-color-accent-text);
      background: var(--acc-color-accent-softer);
      text-decoration: none;
    }
  }

  .acc-text-btn:focus-visible {
    outline: 2px solid var(--acc-color-accent);
    outline-offset: 2px;
  }

  .acc-text-btn--danger {
    color: var(--acc-color-danger);
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-text-btn--danger:hover {
      background: var(--acc-color-danger-soft);
      color: var(--acc-color-danger);
    }
  }

  /* ─── Badges ─────────────────────────────────────────────── */

  .acc-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border-radius: var(--acc-radius-pill);
    font-size: var(--acc-font-size-xs);
    font-weight: var(--acc-font-weight-semibold);
    line-height: 1.4;
    background: var(--acc-color-bg-soft);
    color: var(--acc-color-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    min-width: 0;
  }

  .acc-badge > span,
  .acc-avatar-inline > span {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .acc-badge .acc-icon {
    width: 12px;
    height: 12px;
  }

  .acc-badge--pin {
    background: var(--acc-color-accent-soft);
    color: var(--acc-color-accent);
  }

  .acc-badge--solved {
    background: var(--acc-color-success-soft);
    color: var(--acc-color-success);
  }

  .acc-badge--locked {
    background: var(--acc-color-warning-soft);
    color: var(--acc-color-warning);
  }

  .acc-badge--announce {
    background: transparent;
    border: 1px solid var(--acc-color-accent);
    color: var(--acc-color-accent);
  }

  .acc-badge--identity {
    background: var(--acc-color-accent-soft);
    color: var(--acc-color-accent);
  }

  .acc-badge--identity-tips-trik-fotografi {
    background: rgba(251, 191, 36, 0.18);
    color: #b45309;
  }

  .acc-badge--identity-tips-trik-editing {
    background: rgba(167, 139, 250, 0.18);
    color: #6d28d9;
  }

  .acc-badge--lut {
    background: rgba(14, 165, 233, 0.14);
    color: #0369a1;
  }

  /* Category pill */
  .acc-pill {
    display: inline-flex;
    align-items: center;
    padding: 2px 10px;
    border-radius: var(--acc-radius-pill);
    background: var(--acc-color-bg-soft);
    color: var(--acc-color-text);
    border: 1px solid var(--acc-color-border);
    font-size: var(--acc-font-size-xs);
    font-weight: var(--acc-font-weight-medium);
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  /* ─── Chips ──────────────────────────────────────────────── */

  .acc-chip-list,
  .acc-chips {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--acc-space-2);
    list-style: none;
    margin: 0;
    padding: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }

  .acc-chip-list::-webkit-scrollbar,
  .acc-chips::-webkit-scrollbar {
    display: none;
  }

  .acc-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    padding: var(--acc-space-2) var(--acc-space-4);
    min-height: 44px;
    border-radius: var(--acc-radius-pill);
    border: 1px solid var(--acc-color-border);
    background: var(--acc-color-bg-elevated);
    color: var(--acc-color-text);
    font-size: var(--acc-font-size-sm);
    font-weight: var(--acc-font-weight-medium);
    font-family: inherit;
    cursor: pointer;
    scroll-snap-align: start;
    white-space: nowrap;
    transition:
      border-color var(--acc-transition-fast),
      background var(--acc-transition-fast),
      color var(--acc-transition-fast),
      box-shadow var(--acc-transition-fast),
		transform var(--acc-transition-fast);
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-chip:hover {
      border-color: var(--acc-color-border-strong);
      background: var(--acc-color-bg-soft);
    }
  }

  .acc-chip:focus-visible {
    outline: 2px solid var(--acc-color-accent);
    outline-offset: 2px;
  }

  .acc-chip--selected,
  .acc-chip.is-selected {
    background: var(--acc-color-accent-soft);
    border-color: transparent;
    color: var(--acc-color-accent);
    box-shadow: inset 0 0 0 1px
      color-mix(in srgb, var(--acc-color-accent) 25%, transparent);
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-chip--selected:hover,
    .acc-chip.is-selected:hover {
      background: var(--acc-color-accent-soft);
      color: var(--acc-color-accent);
      border-color: transparent;
    }
  }

  /* Chip scroll wrapper with fade cue */
  .acc-chips-wrap {
    position: relative;
    margin-bottom: var(--acc-space-4);
  }

  .acc-chips-wrap::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 32px;
    pointer-events: none;
    background: linear-gradient(to right, transparent, var(--acc-color-white));
  }

  .acc-page-landing .acc-chips-wrap::after,
  .acc-page-category .acc-chips-wrap::after {
    background: linear-gradient(
      to right,
      transparent,
      var(--acc-color-bg-page, #f7f7f9)
    );
  }

  /* ─── Avatar ─────────────────────────────────────────────── */

  .acc-avatar-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
  }

  .acc-avatar-inline img,
  .acc-comment__avatar img,
  .acc-notif-item__avatar img {
    border-radius: 50%;
    object-fit: cover;
    display: block;
  }

  .acc-avatar-fallback {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--acc-color-accent-soft);
    color: var(--acc-color-accent);
    font-size: var(--acc-font-size-xs);
    font-weight: var(--acc-font-weight-semibold);
    flex-shrink: 0;
  }

  .acc-avatar-fallback--sm {
    width: 24px;
    height: 24px;
    font-size: calc(var(--acc-font-size-xs) - 2px);
  }

  .acc-avatar-fallback--lg {
    width: 40px;
    height: 40px;
    font-size: 0.85rem;
  }

  /* ─── Empty state ────────────────────────────────────────── */

  .acc-empty {
    text-align: center;
    padding: var(--acc-space-10) var(--acc-space-5);
    border: 1px solid var(--acc-color-border);
    border-radius: var(--acc-radius-card);
    background: var(--acc-color-bg-elevated);
    box-shadow: var(--acc-shadow-soft);
  }

  .acc-empty--soft {
    background: var(--acc-color-bg-soft);
    box-shadow: none;
    border-style: dashed;
  }

  .acc-empty__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0 auto var(--acc-space-4);
    border-radius: 50%;
    background: var(--acc-color-accent-soft);
    color: var(--acc-color-accent);
  }

  .acc-empty__icon .acc-icon {
    width: 24px;
    height: 24px;
  }

  .acc-chrome__menu-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    color: var(--acc-color-text);
    padding: 8px;
    margin-right: 8px;
    cursor: pointer;
    border-radius: var(--acc-radius-sm);
    min-width: 44px;
    min-height: 44px;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-chrome__menu-btn:hover {
      background: var(--acc-color-bg-soft);
    }
  }

  .acc-chrome__title {
    margin: 0 0 var(--acc-space-2);
    font-weight: var(--acc-font-weight-semibold);
    font-size: var(--acc-font-size-base);
    color: var(--acc-color-text);
  }

  .acc-empty__title {
    margin: 0 0 var(--acc-space-2);
    font-weight: var(--acc-font-weight-semibold);
    font-size: var(--acc-font-size-base);
    color: var(--acc-color-text);
  }

  .acc-empty__text {
    margin: 0 auto;
    max-width: 36ch;
    color: var(--acc-color-text-muted);
    font-size: var(--acc-font-size-sm);
    line-height: var(--acc-line-height-normal);
  }

  .acc-empty__actions {
    margin: var(--acc-space-5) 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: var(--acc-space-2);
    justify-content: center;
  }

  /* ─── Skeleton ───────────────────────────────────────────── */

  .acc-skeleton {
    background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
    background-size: 200% 100%;
    animation: acc-skeleton-pulse 1.2s ease-in-out infinite;
    border-radius: var(--acc-radius-sm);
  }

  @keyframes acc-skeleton-pulse {
    0% {
      background-position: 200% 0;
    }
    100% {
      background-position: -200% 0;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    .acc-skeleton {
      animation: none;
      background: #f3f4f6;
    }

    .acc-btn.is-loading::after {
      animation: none;
    }
  }

  /* ─── Dropdown menu ──────────────────────────────────────── */

  .acc-dropdown {
    position: relative;
    display: inline-flex;
  }

  .acc-dropdown__menu {
    position: absolute;
    top: calc(100% + var(--acc-space-2));
    right: 0;
    min-width: 200px;
    padding: 6px;
    margin: 0;
    list-style: none;
    background: var(--acc-color-bg-elevated);
    border: 1px solid var(--acc-color-border);
    border-radius: var(--acc-radius-md);
    box-shadow: var(--acc-shadow-dropdown);
    z-index: var(--acc-z-dropdown);
  }

  .acc-dropdown__menu[hidden] {
    display: none;
  }

  .acc-dropdown__item {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 10px 12px;
    border: 0;
    background: none;
    border-radius: var(--acc-radius-sm);
    font-family: var(--acc-font-family);
    font-size: var(--acc-font-size-sm);
    line-height: inherit;
    color: var(--acc-color-text);
    text-align: left;
    cursor: pointer;
    text-decoration: none;
    transition: background var(--acc-transition-fast);
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-dropdown__item:hover {
      background: var(--acc-color-bg-soft);
      color: var(--acc-color-text);
    }
  }
  .acc-dropdown__item:focus-visible {
    background: var(--acc-color-bg-soft);
    outline: 2px solid var(--acc-color-accent);
    outline-offset: 2px;
    color: var(--acc-color-text);
  }

  .acc-dropdown__item--danger {
    color: var(--acc-color-danger);
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-dropdown__item--danger:hover {
      background: var(--acc-color-danger-soft);
    }
  }

  .acc-dropdown__sep {
    height: 1px;
    margin: 6px 4px;
    background: var(--acc-color-border);
    border: 0;
  }

  .acc-dropdown__label {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px 4px;
    font-size: var(--acc-font-size-xs);
    font-weight: var(--acc-font-weight-semibold);
    color: var(--acc-color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .acc-dropdown__label .acc-icon {
    width: 12px;
    height: 12px;
  }

  /* ─── Utility ────────────────────────────────────────────── */

  .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
  }

  .acc-visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
  }

  /* ─── App Shell Layout (Community UI) ────────────────────── */

  /* Disable body scroll when app is active (desktop only, released on mobile for address bar autohide) */
  @media (min-width: 768px) {
    body.acc-app-active {
      overflow: hidden;
    }
  }

  /* Theme wrappers must not constrain the app shell width */
  body.acc-community .akuajae-theme-content-wrapper,
  body.acc-app-active .akuajae-theme-content-wrapper,
  body.acc-community #acc-main,
  body.acc-app-active #acc-main {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    box-sizing: border-box;
  }

  /*
   * App shell track contract (desktop):
   *   col 1 → .acc-sidebar-left
   *   col 2 → .acc-feed-column
   * .acc-sidebar-scrim is overlay-only and MUST NOT occupy a grid track.
   * (Mobile drawer scrim used to be an in-flow 3rd child, auto-placing into
   * the main 1fr column and wrapping the feed into the ~240px sidebar track.)
   */
  /* Main Grid Shell */
  .acc-app-shell {
    position: relative; /* positioning context for edge hide/show toggle */
    display: grid;
    grid-template-columns: var(--acc-sidebar-width, 240px) minmax(0, 1fr);
    grid-template-areas: "sidebar feed";
    /* Single row must be allowed to shrink below content size so children can scroll. */
    grid-template-rows: minmax(0, 1fr);
    gap: 0;
    height: calc(100vh - var(--acc-top-offset, 0px));
    overflow: hidden;
    background: var(--acc-color-bg-page);
    overflow-wrap: anywhere;
    min-width: 0;
    width: 100%;
    transition: grid-template-columns var(--acc-transition-base, 0.3s) cubic-bezier(0.4, 0, 0.2, 1);
  }

  .acc-app-shell.is-sidebar-collapsed {
    --acc-sidebar-width: 0px;
  }

  @media (min-width: 768px) {
    .acc-app-shell.is-sidebar-collapsed .acc-sidebar-left {
      opacity: 0;
      visibility: hidden;
      overflow: hidden;
      pointer-events: none;
      min-width: 0;
      border-right-width: 0;
    }

    /* Desktop: chrome hamburger moves role to edge rail */
    .acc-chrome__menu-btn {
      display: none;
    }
  }

  /*
   * Edge hide/show rail — sibling of .acc-sidebar-left (outside inert/visibility).
   * Desktop: bottom-left corner of shell (does not block nav/mid-sidebar content).
   * Mobile: hidden — chrome menu remains the drawer control.
   */
  .acc-sidebar-edge-toggle {
    display: none;
    position: absolute;
    left: max(8px, env(safe-area-inset-left, 0px));
    bottom: max(12px, env(safe-area-inset-bottom, 0px));
    top: auto;
    transform: none;
    z-index: calc(var(--acc-z-sticky, 40) + 5);
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    min-width: 44px;
    min-height: 44px;
    width: 44px;
    padding: 0;
    margin: 0;
    border: 1px solid var(--acc-color-border);
    border-radius: var(--acc-radius-pill, 9999px);
    background: var(--acc-color-bg-elevated, #fff);
    color: var(--acc-color-text-muted);
    box-shadow: var(--acc-shadow-soft);
    cursor: pointer;
    transition:
      color var(--acc-transition-fast, 0.15s ease),
      background-color var(--acc-transition-fast, 0.15s ease),
      border-color var(--acc-transition-fast, 0.15s ease),
      box-shadow var(--acc-transition-fast, 0.15s ease),
      opacity var(--acc-transition-base, 0.22s ease),
      transform var(--acc-transition-fast, 0.15s ease);
  }

  @media (min-width: 768px) {
    .acc-sidebar-edge-toggle {
      display: inline-flex;
    }
  }

  @media (hover: hover) and (pointer: fine) {
    .acc-sidebar-edge-toggle:hover {
      color: var(--acc-color-accent);
      background: var(--acc-color-bg-soft);
      border-color: color-mix(in srgb, var(--acc-color-accent) 35%, var(--acc-color-border));
      box-shadow: var(--acc-shadow-soft);
    }
  }

  .acc-sidebar-edge-toggle:focus-visible {
    outline: 2px solid var(--acc-color-accent);
    outline-offset: 2px;
    color: var(--acc-color-accent);
  }

  .acc-sidebar-edge-toggle:active {
    transform: scale(0.96);
  }

  .acc-sidebar-edge-toggle__icons {
    position: relative;
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
  }

  .acc-sidebar-edge-toggle__icon {
    grid-area: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition:
      opacity var(--acc-transition-fast, 0.15s ease),
      transform var(--acc-transition-fast, 0.15s ease);
  }

  .acc-sidebar-edge-toggle__icon .acc-icon {
    display: block;
  }

  /* Expanded: chevron-left (hide sidebar) */
  .acc-sidebar-edge-toggle[aria-expanded="true"] .acc-sidebar-edge-toggle__icon--collapse {
    opacity: 1;
    transform: translateX(0);
  }

  .acc-sidebar-edge-toggle[aria-expanded="true"] .acc-sidebar-edge-toggle__icon--expand {
    opacity: 0;
    transform: translateX(5px);
    pointer-events: none;
  }

  /* Collapsed: chevron-right (show sidebar) */
  .acc-sidebar-edge-toggle[aria-expanded="false"] .acc-sidebar-edge-toggle__icon--expand {
    opacity: 1;
    transform: translateX(0);
  }

  .acc-sidebar-edge-toggle[aria-expanded="false"] .acc-sidebar-edge-toggle__icon--collapse {
    opacity: 0;
    transform: translateX(-5px);
    pointer-events: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .acc-sidebar-edge-toggle,
    .acc-sidebar-edge-toggle__icon {
      transition-duration: 0.01ms;
    }

    .acc-sidebar-edge-toggle:active {
      transform: none;
    }
  }

  /* Mobile drawer open: prevent background page scroll under scrim. */
  body.acc-sidebar-drawer-open {
    overflow: hidden;
    touch-action: none;
  }

  /* Scrim is mobile-drawer overlay only — never a sizing grid item. */
  .acc-sidebar-scrim {
    display: none;
  }

  /* Left Sidebar */
  .acc-sidebar-left {
    grid-area: sidebar;
    position: sticky;
    top: var(--acc-top-offset, 0px);
    height: calc(100vh - var(--acc-top-offset, 0px));
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    background: var(--acc-color-bg-soft);
    border-right: 1px solid var(--acc-color-border);
    display: flex;
    flex-direction: column;
    transition:
      opacity var(--acc-transition-base, 0.2s) cubic-bezier(0.4, 0, 0.2, 1),
      visibility var(--acc-transition-base, 0.2s);
  }

  .acc-sidebar-inner {
    padding: var(--acc-spacing-lg) var(--acc-spacing-md);
    display: flex;
    flex-direction: column;
    gap: var(--acc-spacing-lg);
  }

  /* Desktop: leave room for bottom-left edge hide/show control */
  @media (min-width: 768px) {
    .acc-sidebar-inner {
      padding-bottom: calc(var(--acc-spacing-lg) + 56px);
    }
  }

  .acc-sidebar-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

  .acc-sidebar-brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: var(--acc-font-weight-bold);
    font-size: var(--acc-font-size-sm);
    line-height: var(--acc-line-height-tight, 1.25);
    color: var(--acc-color-text);
    text-decoration: none;
  }

  .acc-sidebar-brand span {
    display: block;
  }

  .acc-sidebar-close {
    display: none;
  }

  .acc-sidebar-brand .acc-icon {
    color: var(--acc-color-accent);
  }

  .acc-sidebar-title {
    font-size: var(--acc-font-size-xs);
    font-weight: var(--acc-font-weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--acc-color-text-muted);
    margin: 0 0 8px 8px;
  }

  .acc-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }

  .acc-nav-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 8px 12px;
    border-radius: var(--acc-radius-md);
    color: var(--acc-color-text-muted);
    text-decoration: none;
    font-size: var(--acc-font-size-sm);
    font-weight: var(--acc-font-weight-medium);
    transition: background-color var(--acc-transition-fast), color var(--acc-transition-fast);
    min-height: 44px;
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
  }

  .acc-nav-label {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
  }

  .acc-nav-text {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .acc-nav-hash {
    flex: 0 0 auto;
    font-size: 1rem;
    opacity: 0.5;
  }

  .acc-nav-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin-inline-start: auto;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    box-sizing: border-box;
    border-radius: var(--acc-radius-pill, 9999px);
    font-size: var(--acc-font-size-xs, 11px);
    font-weight: var(--acc-font-weight-semibold, 600);
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
    user-select: none;
    background: color-mix(in srgb, var(--acc-color-text-muted, #64748b) 10%, transparent);
    color: var(--acc-color-text-muted, #64748b);
    transition: background-color var(--acc-transition-fast), color var(--acc-transition-fast);
  }

  .acc-nav-badge[data-acc-cat-unread="1"],
  .acc-nav-badge.is-unread {
    background: var(--acc-color-accent, #6b5ce6);
    color: #ffffff;
    font-weight: var(--acc-font-weight-bold, 700);
    box-shadow: 0 1px 3px color-mix(in srgb, var(--acc-color-accent, #6b5ce6) 40%, transparent);
  }

  .acc-nav-badge[hidden],
  .acc-nav-badge[data-acc-cat-count="0"]:not([data-acc-cat-unread="1"]) {
    display: none !important;
  }

  @media (hover: hover) and (pointer: fine) {
    .acc-nav-link:hover {
      background: rgba(0, 0, 0, 0.04);
      color: var(--acc-color-text);
    }
  }

  .acc-nav-link.is-active {
    background: var(--acc-color-accent-soft);
    color: var(--acc-color-accent);
    font-weight: var(--acc-font-weight-semibold);
  }

  /* Feed Column (Center) — min-height:0 is required so overflow-y on the
   scrollport works inside a fixed-height grid/flex shell (app-scroll contract). */
  .acc-feed-column {
    grid-area: feed;
    display: flex;
    flex-direction: column;
    position: relative;
    background: var(--acc-color-bg-page);
    min-width: 0;
    width: 100%;
    overflow-y: auto;
    overscroll-behavior-y: contain;
  }

  /* Sole vertical scrollport for feed / thread content */
  .acc-feed-content {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    padding-top: calc(var(--acc-header-height, 0px) + var(--acc-space-4));
    padding-bottom: var(--acc-space-6, 24px);
  }

  /* Prevent double padding when .acc-root is inside .acc-feed-content */
  .acc-feed-content .acc-root {
    padding-top: 0;
    padding-bottom: 0;
  }
  @media (max-width: 480px) {
    .acc-feed-content .acc-root {
      padding-left: 0;
      padding-right: 0;
    }
  }

  /* Sticky Bottom Composer (reply / chat contexts only — not feed create CTA) */
  /* Sticky Bottom Composer — Floating Glass Morphism Capsule */
  .acc-composer-sticky {
    flex: 0 0 auto;
    position: fixed;
    bottom: calc(16px + var(--acc-keyboard-height, 0px) + env(safe-area-inset-bottom, 0px));
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 32px);
    max-width: var(--acc-content-max, 760px);
    z-index: var(--acc-z-sticky, 40);
    background: transparent !important;
    background-image: none !important;
    border: none !important;
    padding: 0 !important;
    pointer-events: none;
    transition: bottom var(--acc-transition-fast);
  }

  @media (min-width: 768px) {
    .acc-composer-sticky {
      left: calc(50% + (var(--acc-sidebar-width, 240px) / 2));
    }
  }

  .acc-composer-sticky > * {
    pointer-events: auto;
  }

  /* Extra breathing room above reply composer when present so latest content is visible */
  .acc-feed-column:has(> .acc-composer-sticky) .acc-feed-content {
    padding-bottom: calc(var(--acc-composer-height, 110px) + 24px + var(--acc-keyboard-height, 0px) + env(safe-area-inset-bottom, 0px));
    scroll-padding-bottom: calc(var(--acc-composer-height, 110px) + 24px + var(--acc-keyboard-height, 0px) + env(safe-area-inset-bottom, 0px));
  }

  .acc-composer__form {
    max-width: var(--acc-content-max);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: var(--acc-composer-bg);
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border: 1px solid var(--acc-composer-border);
    border-radius: 26px;
    padding: 8px 12px;
    box-shadow: var(--acc-composer-shadow);
    transition:
      background var(--acc-transition-base),
      border-color var(--acc-transition-fast),
      box-shadow var(--acc-transition-fast);
  }

  @supports not ((backdrop-filter: blur(16px)) or (-webkit-backdrop-filter: blur(16px))) {
    .acc-composer__form {
      background: var(--acc-composer-bg-solid) !important;
    }
  }

  .acc-composer__form:focus-within {
    border-color: rgba(140, 126, 255, 0.65) !important;
    box-shadow: var(--acc-composer-shadow), var(--acc-halo-glow) !important;
    background: var(--acc-composer-bg) !important;
  }

  .acc-composer__input-row {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .acc-composer__input {
    flex: 1;
    min-width: 0;
    border: none !important;
    background: transparent !important;
    padding: 8px 4px;
    font-family: var(--acc-font-family);
    font-size: var(--acc-font-size-base);
    color: var(--acc-color-text);
    resize: none;
    max-height: 40dvh;
    line-height: 1.5;
    outline: none !important;
    box-shadow: none !important;
  }

  .acc-composer__input::placeholder {
    color: var(--acc-color-text-subtle);
  }

  .acc-composer__attach-btn,
  .acc-composer__tool {
    background: transparent;
    border: none;
    color: var(--acc-color-text-muted);
    padding: 8px;
    border-radius: var(--acc-radius-pill);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition:
      background var(--acc-transition-fast),
      color var(--acc-transition-fast);
    min-width: 42px;
    min-height: 42px;
  }
  @media (hover: hover) and (pointer: fine) {
    .acc-composer__attach-btn:hover,
    .acc-composer__tool:hover {
      background: var(--acc-color-brand-purple-glow);
      color: var(--acc-color-brand-purple);
    }
  }

  .acc-composer__send {
    padding: 10px;
    border-radius: var(--acc-radius-pill);
    background: var(--acc-color-brand-purple, #8c7eff) !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 4px 16px rgba(140, 126, 255, 0.4) !important;
    transition:
      transform var(--acc-transition-fast),
      background-color var(--acc-transition-fast),
      box-shadow var(--acc-transition-fast) !important;
  }

  @media (hover: hover) and (pointer: fine) {
    .acc-composer__send:hover:not(:disabled) {
      background: var(--acc-color-brand-purple-hover, #7a6aef) !important;
      transform: scale(1.08) translateY(-2px);
      box-shadow: 0 8px 22px rgba(140, 126, 255, 0.55) !important;
    }
  }

  .acc-composer__send:active:not(:disabled) {
    background: var(--acc-color-brand-purple-active, #6b5ce6) !important;
    transform: scale(0.92) translateY(0);
  }

  .acc-composer__toolbar {
    display: flex;
    gap: 4px;
    padding: 0 8px;
    border-bottom: 1px solid var(--acc-color-border);
    padding-bottom: 8px;
  }

  /* Mobile Responsive — block flow so fixed drawer/scrim never reserve tracks */
  @media (max-width: 767.98px) {
    .acc-app-shell {
      display: block;
      height: auto;
      overflow: visible;
      width: 100%;
    }

    .acc-feed-column {
      grid-area: auto;
      display: block;
      overflow-y: visible;
      width: 100%;
      min-width: 0;
    }

    /* Off-canvas drawer (overlay; not in document flow sizing) */
    .acc-sidebar-left {
      grid-area: auto;
      position: fixed;
      top: var(--acc-top-offset, 0px);
      left: 0;
      bottom: 0;
      width: 280px;
      max-width: 80vw;
      height: auto;
      z-index: var(--acc-z-dropdown);
      transform: translateX(-100%);
      visibility: hidden;
      transition:
        transform var(--acc-transition-base, 0.3s) cubic-bezier(0.16, 1, 0.3, 1),
        visibility var(--acc-transition-base, 0.3s);
      box-shadow: var(--acc-shadow-modal);
    }

    .acc-sidebar-left.is-open {
      transform: translateX(0);
      visibility: visible;
      z-index: 10070;
    }

    .acc-sidebar-inner {
      padding-bottom: calc(var(--acc-spacing-lg) + env(safe-area-inset-bottom, 0px));
    }

    /* Overlay dimmer only when drawer is open — never a layout track */
    .acc-sidebar-scrim {
      display: block;
      position: fixed;
      inset: 0;
      background: rgba(17, 24, 39, 0.45);
      z-index: 10065;
      opacity: 0;
      pointer-events: none;
      visibility: hidden;
      transition: opacity var(--acc-transition-base), visibility var(--acc-transition-base);
    }

    .acc-sidebar-left.is-open ~ .acc-sidebar-scrim {
      opacity: 1;
      pointer-events: auto;
      visibility: visible;
    }

    .acc-sidebar-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 44px;
      min-height: 44px;
      background: none;
      border: none;
      font-size: 1.5rem;
      color: var(--acc-color-text-muted);
      padding: 4px;
      cursor: pointer;
    }

    .acc-composer-sticky {
      padding: 12px;
      padding-bottom: calc(
        12px + env(safe-area-inset-bottom, 0px) +
          env(keyboard-inset-height, 0px)
      );
    }
  }


@media (max-width: 767.98px) {
  .acc-btn--sm,
  .acc-btn--icon.acc-btn--sm {
    min-height: 44px;
    min-width: 44px;
  }
  .acc-composer-cat__option,
  .acc-dropdown__item {
    min-height: 44px;
  }
  .acc-text-btn {
    padding: 10px 12px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
}

@keyframes acc-shimmer {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}

.acc-chip:active {
	transform: scale(0.98);
}

/* ─── Universal Emoji Picker Popover ───────────────────────── */
.acc-emoji-popover {
  position: fixed;
  width: 320px;
  max-width: calc(100vw - 32px);
  background: var(--acc-color-bg-elevated, #ffffff);
  border: 1px solid var(--acc-color-border, #e2e8f0);
  border-radius: var(--acc-radius-card, 16px);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.18);
  z-index: 100200 !important;
  bottom: auto !important;
  right: auto !important;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  animation: accEmojiPopIn 0.2s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: auto;
}

@keyframes accEmojiPopIn {
  from { opacity: 0; transform: translateY(6px) scale(0.96); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.acc-emoji-popover[hidden] {
  display: none !important;
}

.acc-emoji-popover__header {
  padding: var(--acc-space-2, 8px);
  border-bottom: 1px solid var(--acc-color-border, #e2e8f0);
}

.acc-emoji-popover__search {
  width: 100%;
  border: 1px solid var(--acc-color-border, #e2e8f0);
  border-radius: var(--acc-radius-pill, 9999px);
  padding: 6px 12px;
  font-size: var(--acc-font-size-xs, 12px);
  background: var(--acc-color-bg-soft, #f8fafc);
  color: var(--acc-color-text, #0f172a);
  outline: none;
  box-sizing: border-box;
}

.acc-emoji-popover__search:focus {
  border-color: var(--acc-color-accent, #6366f1);
}

.acc-emoji-popover__tabs {
  display: flex;
  border-bottom: 1px solid var(--acc-color-border, #e2e8f0);
  background: var(--acc-color-bg-soft, #f8fafc);
}

.acc-emoji-popover__tab {
  flex: 1;
  border: none;
  background: transparent;
  padding: 6px;
  font-size: 16px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.15s ease;
  opacity: 0.6;
}

.acc-emoji-popover__tab.is-active,
.acc-emoji-popover__tab:hover {
  opacity: 1;
  border-bottom-color: var(--acc-color-accent, #6366f1);
}

.acc-emoji-popover__body {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
  padding: var(--acc-space-2, 8px);
  overflow-y: auto;
  max-height: 200px;
  font-size: 20px;
}

.acc-emoji-btn {
  appearance: none;
  border: none;
  background: transparent;
  border-radius: 6px;
  padding: 6px 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.12s ease, background 0.12s ease;
  user-select: none;
}

.acc-emoji-btn:hover,
.acc-emoji-btn:focus-visible {
  background: var(--acc-color-accent-soft, rgba(99, 102, 241, 0.12));
  transform: scale(1.25);
  outline: none;
}

/* ─── Real-time Character Counter (.acc-char-counter) ─────── */
.acc-char-counter {
  display: inline-block;
  font-size: var(--acc-font-size-xs, 12px);
  font-family: var(--acc-font-family, system-ui, sans-serif);
  color: var(--acc-color-text-muted, #8e8e93);
  margin-top: 4px;
  text-align: right;
  align-self: flex-end;
  transition: color 0.15s ease, font-weight 0.15s ease;
  user-select: none;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.acc-composer__input-row .acc-char-counter,
.acc-chat-composer__row .acc-char-counter {
  align-self: center;
  margin-top: 0;
  margin-left: 4px;
  margin-right: 4px;
  flex-shrink: 0;
  white-space: nowrap;
}

.acc-char-counter.is-warning,
.acc-char-counter.is-near-limit,
.acc-char-counter--warning {
  color: var(--acc-color-warning, #f59e0b) !important;
  font-weight: 500;
}

.acc-char-counter.is-error,
.acc-char-counter.is-at-limit,
.acc-char-counter--error {
  color: var(--acc-color-danger, #ef4444) !important;
  font-weight: 600;
}

