@tailwind base;
@tailwind components;
@tailwind utilities;

/* ==========================================================================
   Auth pages (Devise) — BEM styles
   ========================================================================== */

.auth {
  @apply min-h-screen bg-gray-50 flex items-center justify-center px-4;
}

.auth__card {
  @apply w-full max-w-sm bg-white rounded-lg border border-gray-200 p-8;
}

.auth__logo {
  @apply text-center mb-6;
}

.auth__logo-text {
  @apply text-2xl font-semibold text-gray-900;
}

.auth__title {
  @apply text-lg font-medium text-gray-900 text-center mb-6;
}

.auth__errors {
  @apply mb-4 p-3 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700;
}

.auth__alert {
  @apply mb-4 p-3 bg-yellow-50 border border-yellow-200 rounded-lg text-sm text-yellow-700;
}

.auth__notice {
  @apply mb-4 p-3 bg-green-50 border border-green-200 rounded-lg text-sm text-green-700;
}

.auth__field {
  @apply mb-4;
}

.auth__label {
  @apply block text-sm font-medium text-gray-700 mb-1;
}

.auth__input {
  @apply w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.auth__hint {
  @apply text-xs text-gray-400 mt-1;
}

.auth__checkbox {
  @apply flex items-center gap-2 mb-4;
}

.auth__checkbox-input {
  @apply rounded border-gray-300;
}

.auth__checkbox-label {
  @apply text-sm text-gray-600;
}

.auth__submit {
  @apply w-full py-2 bg-gray-900 text-white text-sm font-medium rounded-lg hover:bg-gray-800 transition-colors cursor-pointer;
}

.auth__links {
  @apply mt-6 text-center space-y-2;
}

.auth__link {
  @apply block text-sm text-gray-500 hover:text-gray-700 transition-colors;
}

/* ==========================================================================
   Public RSVP page — BEM styles
   ========================================================================== */

.rsvp {
  @apply max-w-xl mx-auto px-4 py-12;
}

.rsvp__hero {
  @apply text-center mb-12;
}

.rsvp__couple {
  @apply text-4xl font-serif text-gray-900 mb-2;
}

.rsvp__hero-title {
  @apply text-lg text-gray-600 mb-1;
}

.rsvp__hero-subtitle {
  @apply text-sm text-gray-500 mb-4;
}

.rsvp__date {
  @apply text-sm text-gray-500 uppercase tracking-wider;
}

.rsvp__countdown {
  @apply text-sm text-gray-400 mt-2;
}

.rsvp__section {
  @apply mb-10;
}

.rsvp__section-title {
  @apply text-lg font-medium text-gray-900 mb-4;
}

.rsvp__venue-name {
  @apply text-base font-medium text-gray-800;
}

.rsvp__venue-address {
  @apply text-sm text-gray-500 mt-1;
}

.rsvp__link {
  @apply text-sm text-gray-600 underline hover:text-gray-900;
}

.rsvp__search {
  @apply mb-6;
}

.rsvp__label {
  @apply block text-sm font-medium text-gray-700 mb-1;
}

.rsvp__input {
  @apply w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.rsvp__search-results {
  @apply mt-2;
}

.rsvp__search-item {
  @apply px-3 py-2 text-sm text-gray-700 hover:bg-gray-100 cursor-pointer rounded;
}

.rsvp__search-empty {
  @apply px-3 py-2 text-sm text-gray-400;
}

.rsvp__form {
  @apply space-y-6;
}

.rsvp__field {
  @apply mb-4;
}

.rsvp__guest-name {
  @apply text-lg font-medium text-gray-900 mb-4;
}

.rsvp__hint {
  @apply text-sm text-gray-500 mb-4;
}

.rsvp__radio-group {
  @apply space-y-2 mt-2;
}

.rsvp__radio-label {
  @apply flex items-center gap-2 text-sm text-gray-700 cursor-pointer;
}

.rsvp__radio {
  @apply text-gray-900;
}

.rsvp__submit {
  @apply w-full py-3 bg-gray-900 text-white text-sm font-medium rounded-lg hover:bg-gray-800 transition-colors cursor-pointer;
}

.rsvp__thank-you {
  @apply text-center py-8 text-lg text-gray-700;
}

.rsvp__closed {
  @apply text-center text-gray-500;
}

.rsvp__footer {
  @apply mt-12 pt-6 border-t border-gray-200 text-center text-sm text-gray-500;
}

/* ==========================================================================
   AI Chat Widget — floating button + panel
   ========================================================================== */

.ai-widget__btn {
  @apply fixed bottom-6 right-6 w-14 h-14 bg-gray-900 text-white rounded-full shadow-lg flex items-center justify-center cursor-pointer hover:bg-gray-800 transition-colors;
  z-index: 1000;
}

.ai-widget__btn-icon {
  @apply text-2xl;
}

.ai-widget__panel {
  @apply fixed bottom-24 right-6 w-96 bg-white rounded-lg shadow-2xl border border-gray-200 flex flex-col overflow-hidden;
  height: 500px;
  z-index: 1000;
  display: none;
}

.ai-widget__panel--open {
  display: flex;
}

.ai-widget__header {
  @apply flex items-center justify-between px-4 py-3 bg-gray-900 text-white;
}

.ai-widget__title {
  @apply text-sm font-medium;
}

.ai-widget__close {
  @apply text-white cursor-pointer hover:text-gray-300 text-lg;
}

.ai-widget__messages {
  @apply flex-1 overflow-y-auto px-4 py-3 space-y-3;
}

.ai-widget__bubble {
  @apply text-sm px-3 py-2 rounded-lg max-w-xs;
}

.ai-widget__bubble--user {
  @apply bg-gray-900 text-white ml-auto;
}

.ai-widget__bubble--assistant {
  @apply bg-gray-100 text-gray-800;
}

.ai-widget__input-area {
  @apply flex items-center gap-2 px-4 py-3 border-t border-gray-200;
}

.ai-widget__input {
  @apply flex-1 text-sm px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.ai-widget__send {
  @apply px-3 py-2 bg-gray-900 text-white text-sm rounded-lg hover:bg-gray-800 cursor-pointer;
}

/* ==========================================================================
   Platform Admin Cabinet — BEM styles
   All Tailwind utilities extracted via @apply; zero utility classes in HTML.
   ========================================================================== */

/* ---------------------------------------------------------------------------
   LAYOUT SHELL
   --------------------------------------------------------------------------- */

.platform-admin {
  @apply flex min-h-screen bg-gray-50;
}

/* ---------------------------------------------------------------------------
   SIDEBAR
   --------------------------------------------------------------------------- */

.platform-admin-sidebar {
  @apply w-64 bg-white border-r border-gray-200 flex flex-col flex-shrink-0;
}

.platform-admin-sidebar__logo {
  @apply px-6 py-5 border-b border-gray-200;
}

.platform-admin-sidebar__logo-text {
  @apply text-lg font-semibold text-gray-900;
}

.platform-admin-sidebar__nav {
  @apply flex-1 py-4 overflow-y-auto;
}

.platform-admin-sidebar__section {
  @apply mb-4;
}

.platform-admin-sidebar__section-title {
  @apply px-6 py-1 text-xs font-medium text-gray-400 uppercase tracking-wider;
}

.platform-admin-sidebar__link {
  @apply flex items-center px-6 py-2 text-sm text-gray-600 hover:bg-gray-50 hover:text-gray-900 transition-colors;
}

.platform-admin-sidebar__link--active {
  @apply bg-gray-100 text-gray-900 font-medium;
}

.platform-admin-sidebar__icon {
  @apply w-5 h-5 mr-3 text-gray-400;
}

.platform-admin-sidebar__link--active .platform-admin-sidebar__icon {
  @apply text-gray-600;
}

/* ---------------------------------------------------------------------------
   HEADER
   --------------------------------------------------------------------------- */

.platform-admin-header {
  @apply h-16 bg-white border-b border-gray-200 flex items-center justify-end px-8;
}

.platform-admin-header__user {
  @apply flex items-center gap-3;
}

.platform-admin-header__user-name {
  @apply text-sm text-gray-700;
}

.platform-admin-header__user-role {
  @apply text-xs text-gray-400;
}

.platform-admin-header__logout {
  @apply text-sm text-gray-500 hover:text-gray-700 transition-colors;
}

/* ---------------------------------------------------------------------------
   MAIN CONTENT
   --------------------------------------------------------------------------- */

.platform-admin-main {
  @apply flex-1 flex flex-col;
}

.platform-admin-content {
  @apply flex-1 p-8;
}

/* ---------------------------------------------------------------------------
   DASHBOARD
   --------------------------------------------------------------------------- */

.platform-admin-dashboard__title {
  @apply text-2xl font-semibold text-gray-900 mb-6;
}

.platform-admin-dashboard__stats {
  @apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6 mb-8;
}

.platform-admin-stat {
  @apply bg-white rounded-lg border border-gray-200 p-6;
}

.platform-admin-stat__label {
  @apply text-sm text-gray-500 mb-1;
}

.platform-admin-stat__value {
  @apply text-3xl font-semibold text-gray-900;
}

.platform-admin-stat__value--small {
  @apply text-base;
}

.platform-admin-dashboard__section {
  @apply mb-8;
}

.platform-admin-dashboard__section-title {
  @apply text-lg font-medium text-gray-900 mb-4;
}

/* ---------------------------------------------------------------------------
   TABLES
   --------------------------------------------------------------------------- */

.platform-admin-table {
  @apply w-full bg-white rounded-lg border border-gray-200;
}

.platform-admin-table__head {
  @apply bg-gray-50;
}

.platform-admin-table__th {
  @apply px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider;
}

.platform-admin-table__td {
  @apply px-6 py-4 text-sm text-gray-700;
}

.platform-admin-table__tr {
  @apply border-t border-gray-200;
}

/* ---------------------------------------------------------------------------
   PAGE HEADER
   --------------------------------------------------------------------------- */

.platform-admin-page-header {
  @apply flex items-center justify-between mb-6;
}

/* ---------------------------------------------------------------------------
   BUTTONS
   --------------------------------------------------------------------------- */

.platform-admin-btn {
  @apply inline-block px-4 py-2 bg-gray-900 text-white text-sm font-medium rounded-lg hover:bg-gray-800 transition-colors cursor-pointer;
}

.platform-admin-btn--secondary {
  @apply bg-white text-gray-700 border border-gray-300 hover:bg-gray-50;
}

.platform-admin-btn--danger {
  @apply bg-red-600 hover:bg-red-700;
}

/* ---------------------------------------------------------------------------
   LINKS
   --------------------------------------------------------------------------- */

.platform-admin-link {
  @apply text-sm text-gray-600 hover:text-gray-900 transition-colors;
}

.platform-admin-link--danger {
  @apply text-red-600 hover:text-red-700;
}

/* ---------------------------------------------------------------------------
   FILTERS
   --------------------------------------------------------------------------- */

.platform-admin-filters {
  @apply mb-6;
}

.platform-admin-filters__form {
  @apply flex items-center gap-3;
}

.platform-admin-filters__input {
  @apply px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.platform-admin-filters__select {
  @apply px-3 py-2 border border-gray-300 rounded-lg text-sm bg-white focus:outline-none focus:ring-2 focus:ring-gray-200;
}

/* ---------------------------------------------------------------------------
   FORMS
   --------------------------------------------------------------------------- */

.platform-admin-form {
  @apply max-w-lg;
}

.platform-admin-form__errors {
  @apply mb-4 p-4 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700;
}

.platform-admin-form__field {
  @apply mb-4;
}

.platform-admin-form__label {
  @apply block text-sm font-medium text-gray-700 mb-1;
}

.platform-admin-form__input {
  @apply w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.platform-admin-form__select {
  @apply w-full px-3 py-2 border border-gray-300 rounded-lg text-sm bg-white focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.platform-admin-form__actions {
  @apply flex items-center gap-3 mt-6;
}

/* ---------------------------------------------------------------------------
   STUB / PLACEHOLDER PAGES
   --------------------------------------------------------------------------- */

.platform-admin-stub {
  @apply flex items-center justify-center min-h-96;
}

.platform-admin-stub__text {
  @apply text-gray-400 text-lg;
}

/* ==========================================================================
   Platform Organization Cabinet — BEM styles
   ========================================================================== */

/* LAYOUT */
.platform-org {
  @apply flex min-h-screen bg-gray-50;
}

/* SIDEBAR */
.platform-org-sidebar {
  @apply w-64 bg-white border-r border-gray-200 flex flex-col flex-shrink-0;
}

.platform-org-sidebar__logo {
  @apply px-6 py-5 border-b border-gray-200;
}

.platform-org-sidebar__logo-text {
  @apply text-lg font-semibold text-gray-900;
}

.platform-org-sidebar__nav {
  @apply flex-1 py-4 overflow-y-auto;
}

.platform-org-sidebar__section {
  @apply mb-4;
}

.platform-org-sidebar__section-title {
  @apply px-6 py-1 text-xs font-medium text-gray-400 uppercase tracking-wider;
}

.platform-org-sidebar__link {
  @apply flex items-center px-6 py-2 text-sm text-gray-600 hover:bg-gray-50 hover:text-gray-900 transition-colors;
}

.platform-org-sidebar__link--active {
  @apply bg-gray-100 text-gray-900 font-medium;
}

.platform-org-sidebar__icon {
  @apply w-5 h-5 mr-3 text-gray-400;
}

/* HEADER */
.platform-org-header {
  @apply h-16 bg-white border-b border-gray-200 flex items-center justify-end px-8;
}

.platform-org-header__user {
  @apply flex items-center gap-3;
}

.platform-org-header__user-name {
  @apply text-sm text-gray-700;
}

.platform-org-header__logout {
  @apply text-sm text-gray-500 hover:text-gray-700 transition-colors;
}

/* MAIN */
.platform-org-main {
  @apply flex-1 flex flex-col;
}

.platform-org-content {
  @apply flex-1 p-8;
}

/* PAGE HEADER */
.platform-org-page-header {
  @apply flex items-center justify-between mb-6;
}

.platform-org-title {
  @apply text-2xl font-semibold text-gray-900;
}

/* BUTTONS */
.platform-org-btn {
  @apply inline-block px-4 py-2 bg-gray-900 text-white text-sm font-medium rounded-lg hover:bg-gray-800 transition-colors cursor-pointer;
}

.platform-org-btn--secondary {
  @apply bg-white text-gray-700 border border-gray-300 hover:bg-gray-50;
}

/* WEDDING CARDS */
.platform-org-cards {
  @apply grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6;
}

.platform-org-card {
  @apply bg-white rounded-lg border border-gray-200 p-6 hover:shadow-sm transition-shadow;
}

.platform-org-card__couple {
  @apply text-lg font-medium text-gray-900 mb-1;
}

.platform-org-card__date {
  @apply text-sm text-gray-500 mb-3;
}

.platform-org-card__badge {
  @apply inline-block px-2 py-0.5 text-xs font-medium rounded-full mb-3;
}

.platform-org-card__badge--active {
  @apply bg-green-100 text-green-700;
}

.platform-org-card__badge--draft {
  @apply bg-yellow-100 text-yellow-700;
}

.platform-org-card__badge--archived {
  @apply bg-gray-100 text-gray-500;
}

.platform-org-card__stats {
  @apply flex gap-4 text-sm text-gray-500 mb-4;
}

.platform-org-card__stat {
  @apply flex items-center gap-1;
}

.platform-org-card__actions {
  @apply flex gap-2;
}

.platform-org-card__link {
  @apply text-sm text-gray-600 hover:text-gray-900 transition-colors;
}

/* EMPTY STATE */
.platform-org-empty {
  @apply flex flex-col items-center justify-center py-16;
}

.platform-org-empty__text {
  @apply text-gray-400 text-lg mb-4;
}

/* FORMS */
.platform-org-form {
  @apply max-w-lg;
}

.platform-org-form__field {
  @apply mb-4;
}

.platform-org-form__label {
  @apply block text-sm font-medium text-gray-700 mb-1;
}

.platform-org-form__input {
  @apply w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.platform-org-form__select {
  @apply w-full px-3 py-2 border border-gray-300 rounded-lg text-sm bg-white focus:outline-none focus:ring-2 focus:ring-gray-200;
}

.platform-org-form__hint {
  @apply text-xs text-gray-400 mt-1;
}

.platform-org-form__errors {
  @apply mb-4 p-4 bg-red-50 border border-red-200 rounded-lg text-sm text-red-700;
}

.platform-org-form__actions {
  @apply flex items-center gap-3 mt-6;
}

/* SLUG PREVIEW */
.platform-org-slug-preview {
  @apply text-sm text-gray-500 mt-1;
}

.platform-org-slug-preview__available {
  @apply text-green-600;
}

.platform-org-slug-preview__taken {
  @apply text-red-600;
}

/* DETAIL SECTIONS */
.platform-org-stats {
  @apply grid grid-cols-2 sm:grid-cols-4 gap-4 mb-6;
}

.platform-org-stat {
  @apply bg-white rounded-lg border border-gray-200 p-4;
}

.platform-org-stat__label {
  @apply text-sm text-gray-500 mb-1;
}

.platform-org-stat__value {
  @apply text-2xl font-semibold text-gray-900;
}

.platform-org-stat__value--small {
  @apply text-base;
}

.platform-org-section {
  @apply mb-6;
}

.platform-org-section__title {
  @apply text-lg font-medium text-gray-900 mb-3;
}

/* TABLE */
.platform-org-table {
  @apply w-full bg-white rounded-lg border border-gray-200;
}

.platform-org-table__head {
  @apply bg-gray-50;
}

.platform-org-table__th {
  @apply px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider;
}

.platform-org-table__td {
  @apply px-4 py-3 text-sm text-gray-700;
}

.platform-org-table__tr {
  @apply border-t border-gray-200;
}

/* LINK */
.platform-org-link {
  @apply text-sm text-gray-600 hover:text-gray-900 transition-colors;
}

.platform-org-link--danger {
  @apply text-red-600 hover:text-red-700;
}

/* STUB */
.platform-org-stub {
  @apply flex items-center justify-center min-h-96;
}

.platform-org-stub__text {
  @apply text-gray-400 text-lg;
}

/* ==========================================================================
   Wedding Cabinet Admin — BEM styles
   All Tailwind utilities extracted via @apply; custom CSS as regular properties.
   ========================================================================== */

/* ---------------------------------------------------------------------------
   APP SHELL (sidebar + main)
   --------------------------------------------------------------------------- */

.wedding-admin {
  @apply flex min-h-screen bg-gray-50;
}

.wedding-admin-main {
  @apply flex-1 flex flex-col;
}

.wedding-admin-header {
  @apply h-16 bg-white border-b border-gray-200 flex items-center justify-end px-8;
}

.wedding-admin-header__user {
  @apply flex items-center gap-3;
}

.wedding-admin-header__user-name {
  @apply text-sm text-gray-700;
}

.wedding-admin-header__back {
  @apply text-sm text-gray-500 hover:text-gray-700 transition-colors;
}

.wedding-admin-content {
  @apply flex-1 p-8;
}

/* SIDEBAR */
.wedding-admin-sidebar {
  @apply w-64 bg-white border-r border-gray-200 flex flex-col flex-shrink-0;
}

.wedding-admin-sidebar__header {
  @apply px-6 py-5 border-b border-gray-200;
}

.wedding-admin-sidebar__couple {
  @apply text-lg font-semibold text-gray-900;
}

.wedding-admin-sidebar__date {
  @apply text-sm text-gray-500 mt-1;
}

.wedding-admin-sidebar__badge {
  @apply inline-block px-2 py-0.5 text-xs font-medium rounded-full mt-2;
}

.wedding-admin-sidebar__badge--active {
  @apply bg-green-100 text-green-700;
}

.wedding-admin-sidebar__badge--draft {
  @apply bg-yellow-100 text-yellow-700;
}

.wedding-admin-sidebar__badge--archived {
  @apply bg-gray-100 text-gray-500;
}

.wedding-admin-sidebar__nav {
  @apply flex-1 py-4 overflow-y-auto;
}

.wedding-admin-sidebar__section {
  @apply mb-4;
}

.wedding-admin-sidebar__section-title {
  @apply px-6 py-1 text-xs font-medium text-gray-400 uppercase tracking-wider;
}

.wedding-admin-sidebar__link {
  @apply flex items-center px-6 py-2 text-sm text-gray-600 hover:bg-gray-50 hover:text-gray-900 transition-colors;
}

.wedding-admin-sidebar__link--active {
  @apply bg-gray-100 text-gray-900 font-medium;
}

.wedding-admin-sidebar__icon {
  @apply w-5 h-5 mr-3 text-gray-400;
}

/* ---------------------------------------------------------------------------
   SHARED / LAYOUT
   --------------------------------------------------------------------------- */

.admin-layout {
  @apply max-w-6xl mx-auto px-4 py-8;
}

.admin-layout--narrow {
  @apply max-w-lg mx-auto px-4 py-8;
}

.admin-layout--medium {
  @apply max-w-4xl mx-auto px-4 py-8;
}

.admin-layout--chat {
  @apply max-w-3xl mx-auto px-4 py-8 flex flex-col;
  height: calc(100vh - 2rem);
}

/* Shared header row */
.admin-header {
  @apply flex items-center justify-between mb-6;
}

.admin-header__title {
  @apply text-2xl font-bold text-gray-900;
}

.admin-header__actions {
  @apply flex gap-3;
}

/* Shared nav link */
.admin-nav-link {
  @apply text-gray-600 hover:text-gray-800 px-3 py-2 text-sm;
}

.admin-nav-link--active {
  @apply text-blue-600 hover:text-blue-800 px-3 py-2;
}

.admin-nav-link--small {
  @apply text-gray-600 hover:text-gray-800 text-sm;
}

/* Shared primary button */
.admin-btn-primary {
  @apply bg-blue-600 text-white px-4 py-2 rounded-lg hover:bg-blue-700 transition;
}

/* Flash notices */
.admin-flash--success {
  @apply bg-green-50 border border-green-200 text-green-800 px-4 py-3 rounded-lg mb-6;
}

.admin-flash--error {
  @apply bg-red-50 border border-red-200 text-red-800 px-4 py-3 rounded-lg mb-6;
}

.admin-flash--success-sm {
  @apply bg-green-50 border border-green-200 text-green-800 px-4 py-2 rounded-lg mb-3 text-sm;
}

/* ---------------------------------------------------------------------------
   ADMIN-GUESTS  (guests/index)
   --------------------------------------------------------------------------- */

.admin-guests__pdf-btn {
  @apply bg-amber-600 text-white px-4 py-2 rounded-lg hover:bg-amber-700 transition text-sm;
  display: none;
}

/* Summary stats row */
.admin-guests__stats-grid {
  @apply grid grid-cols-3 gap-3 mb-4;
}

.admin-guests__stat-card {
  @apply bg-white rounded-lg p-4 shadow-sm text-center;
}

.admin-guests__stat-value {
  @apply text-2xl font-bold text-gray-900;
}

.admin-guests__stat-value--green {
  @apply text-2xl font-bold text-green-600;
}

.admin-guests__stat-value--yellow {
  @apply text-2xl font-bold text-yellow-600;
}

.admin-guests__stat-value--purple {
  @apply text-2xl font-bold text-purple-600;
}

.admin-guests__stat-label {
  @apply text-xs text-gray-500 mt-1;
}

/* Breakdown cards */
.admin-guests__breakdown-grid {
  @apply grid grid-cols-1 sm:grid-cols-2 gap-3 mb-6;
}

.admin-guests__breakdown-card {
  @apply bg-white rounded-lg p-4 shadow-sm;
}

.admin-guests__breakdown-title {
  @apply text-xs font-medium text-gray-500 mb-2;
}

.admin-guests__breakdown-items {
  @apply flex flex-wrap gap-2;
}

.admin-guests__breakdown-chip {
  @apply inline-flex items-center gap-1 text-sm bg-gray-50 px-2 py-1 rounded;
}

.admin-guests__breakdown-count {
  @apply font-bold text-gray-800;
}

.admin-guests__breakdown-label {
  @apply text-gray-500;
}

/* Filter bar */
.admin-guests__filter-bar {
  @apply bg-white rounded-lg shadow-sm p-4 mb-6;
}

.admin-guests__filter-form {
  @apply flex flex-wrap gap-3 items-end;
}

.admin-guests__filter-group {
  @apply flex-1 min-w-[180px];
}

.admin-guests__filter-label {
  @apply block text-xs font-medium text-gray-500 mb-1;
}

.admin-guests__filter-input {
  @apply w-full border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500;
}

.admin-guests__filter-select {
  @apply border border-gray-300 rounded-lg px-3 py-2 text-sm focus:ring-2 focus:ring-blue-500;
}

.admin-guests__filter-actions {
  @apply flex gap-2;
}

.admin-guests__filter-submit {
  @apply bg-gray-100 text-gray-700 px-4 py-2 rounded-lg hover:bg-gray-200 text-sm;
}

.admin-guests__filter-reset {
  @apply text-gray-500 hover:text-gray-700 px-2 py-2 text-sm;
}

/* Table */
.admin-guests__table-wrap {
  @apply bg-white shadow rounded-lg overflow-hidden;
}

.admin-guests__table {
  @apply min-w-full divide-y divide-gray-200;
}

.admin-guests__thead {
  @apply bg-gray-50;
}

.admin-guests__th {
  @apply px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase;
}

.admin-guests__th--checkbox {
  @apply px-3 py-3 text-left;
}

.admin-guests__th--actions {
  @apply px-2 py-3;
}

.admin-guests__th-link {
  @apply hover:text-gray-900;
}

.admin-guests__tbody {
  @apply divide-y divide-gray-200;
}

.admin-guests__row {
  @apply hover:bg-gray-50;
}

.admin-guests__td-checkbox {
  @apply px-3 py-3;
}

.admin-guests__checkbox {
  @apply rounded border-gray-300;
}

.admin-guests__td-name {
  @apply px-4 py-3 text-sm font-medium text-gray-900;
}

.admin-guests__td-display {
  @apply px-4 py-3 text-sm text-gray-600;
}

.admin-guests__td-gender {
  @apply px-4 py-3 text-sm text-gray-600;
}

.admin-guests__badge--female {
  @apply inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-pink-100 text-pink-800;
}

.admin-guests__badge--male {
  @apply inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-blue-100 text-blue-800;
}

.admin-guests__td-telegram {
  @apply px-4 py-3 text-sm text-gray-500;
}

.admin-guests__telegram-link {
  @apply text-blue-600 hover:text-blue-800;
}

.admin-guests__telegram-none {
  @apply text-gray-400 text-xs;
}

.admin-guests__dash {
  @apply text-gray-300;
}

.admin-guests__td-attendance {
  @apply px-4 py-3 text-sm;
}

.admin-guests__badge--yes {
  @apply inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-green-100 text-green-800;
}

.admin-guests__badge--no {
  @apply inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-red-100 text-red-800;
}

.admin-guests__badge--maybe {
  @apply inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800;
}

.admin-guests__td-status {
  @apply px-4 py-3 text-sm;
}

.admin-guests__badge--responded {
  @apply inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-green-100 text-green-800;
}

.admin-guests__badge--pending {
  @apply inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-yellow-100 text-yellow-800;
}

.admin-guests__td-answers {
  @apply px-4 py-3 text-sm text-gray-600;
}

.admin-guests__answer-chip {
  @apply inline-block text-xs bg-gray-100 px-1.5 py-0.5 rounded mr-1 mb-1;
}

.admin-guests__answer-dash {
  @apply text-gray-400;
}

.admin-guests__td-invite {
  @apply px-4 py-3 text-sm;
}

.admin-guests__copy-btn {
  @apply hover:opacity-70 cursor-pointer bg-transparent border-0 p-0 text-base;
}

.admin-guests__td-actions {
  @apply px-2 py-3 text-right whitespace-nowrap;
}

.admin-guests__remind-btn {
  @apply hover:opacity-70 cursor-pointer bg-transparent border-0 p-0 mr-1;
}

.admin-guests__edit-link {
  @apply hover:opacity-70 mr-1;
}

.admin-guests__delete-btn {
  @apply hover:opacity-70 bg-transparent border-0 cursor-pointer p-0;
}

.admin-guests__delete-form {
  @apply inline;
}

/* Empty state */
.admin-guests__empty {
  @apply text-center py-12 text-gray-500;
}

.admin-guests__empty-title {
  @apply text-lg;
}

.admin-guests__empty-hint {
  @apply mt-1;
}

.admin-guests__empty-link {
  @apply text-blue-600 hover:text-blue-800;
}

/* Group row highlights */
.admin-guests__row--group-1 { @apply bg-amber-50; }
.admin-guests__row--group-2 { @apply bg-blue-50; }
.admin-guests__row--group-3 { @apply bg-pink-50; }
.admin-guests__row--group-4 { @apply bg-green-50; }
.admin-guests__row--group-5 { @apply bg-violet-50; }
.admin-guests__row--group-6 { @apply bg-red-50; }

/* ---------------------------------------------------------------------------
   ADMIN-FORM  (guests/_form and questions/_form shared)
   --------------------------------------------------------------------------- */

.admin-form {
  @apply space-y-5;
}

.admin-form__title {
  @apply text-2xl font-bold text-gray-900 mb-6;
}

.admin-form__errors {
  @apply bg-red-50 border border-red-200 text-red-800 px-4 py-3 rounded-lg;
}

.admin-form__errors-list {
  @apply list-disc list-inside text-sm;
}

.admin-form__group {
}

.admin-form__label {
  @apply block text-sm font-medium text-gray-700 mb-1;
}

.admin-form__input {
  @apply w-full border border-gray-300 rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500;
}

.admin-form__input--sm {
  @apply w-full border border-gray-300 rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm;
}

.admin-form__input--mono {
  @apply w-full border border-gray-300 rounded-lg px-3 py-2 font-mono text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500;
}

.admin-form__select {
  @apply w-full border border-gray-300 rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500;
}

.admin-form__textarea {
  @apply w-full border border-gray-300 rounded-lg px-3 py-2 focus:ring-2 focus:ring-blue-500 focus:border-blue-500 text-sm;
}

.admin-form__divider {
  @apply my-4 border-gray-200;
}

.admin-form__section-title {
  @apply text-lg font-semibold text-gray-800 mb-3;
}

/* Radio group */
.admin-form__radio-group {
  @apply space-y-2 mt-1;
}

.admin-form__radio-label {
  @apply flex items-center gap-2 text-sm text-gray-700;
}

.admin-form__radio {
  @apply border-gray-300;
}

/* Checkbox row */
.admin-form__checkbox-row {
  @apply flex gap-6;
}

.admin-form__checkbox-label {
  @apply flex items-center gap-2 text-sm text-gray-700;
}

.admin-form__checkbox {
  @apply rounded border-gray-300;
}

/* Notify banner (questions form) */
.admin-form__notify-banner {
  @apply flex items-center gap-2 text-sm text-amber-700 bg-amber-50 border border-amber-200 rounded-lg px-4 py-3;
}

.admin-form__notify-checkbox {
  @apply rounded border-amber-300;
}

/* Helper text */
.admin-form__hint {
  @apply text-xs text-gray-500 mb-2;
}

.admin-form__divider--sm {
  @apply my-2 border-gray-200;
}

/* Actions */
.admin-form__actions {
  @apply flex items-center gap-3 pt-2;
}

.admin-form__submit {
  @apply bg-blue-600 text-white px-5 py-2 rounded-lg hover:bg-blue-700 transition cursor-pointer;
}

.admin-form__cancel {
  @apply text-gray-600 hover:text-gray-800;
}

/* ---------------------------------------------------------------------------
   ADMIN-QUESTIONS  (questions/index)
   --------------------------------------------------------------------------- */

.admin-questions__list-wrap {
  @apply bg-white shadow rounded-lg overflow-hidden;
}

.admin-questions__list {
  @apply divide-y divide-gray-200;
}

.admin-questions__item {
  @apply flex items-center gap-4 px-4 py-4 hover:bg-gray-50;
}

.admin-questions__drag-handle {
  @apply cursor-grab text-gray-400;
}

.admin-questions__item-body {
  @apply flex-1;
}

.admin-questions__item-row {
  @apply flex items-center gap-2;
}

.admin-questions__item-label {
  @apply font-medium text-gray-900;
}

.admin-questions__badge--hidden {
  @apply text-xs bg-gray-200 text-gray-600 px-2 py-0.5 rounded;
}

.admin-questions__badge--required {
  @apply text-xs bg-red-100 text-red-700 px-2 py-0.5 rounded;
}

.admin-questions__item-meta {
  @apply text-sm text-gray-500 mt-1;
}

.admin-questions__type-badge {
  @apply bg-gray-100 px-2 py-0.5 rounded text-xs;
}

.admin-questions__options-text {
  @apply ml-2;
}

.admin-questions__slug-text {
  @apply ml-2 text-gray-400;
}

.admin-questions__item-actions {
  @apply flex gap-2 text-sm;
}

.admin-questions__edit-link {
  @apply text-blue-600 hover:text-blue-800;
}

.admin-questions__delete-btn {
  @apply text-red-600 hover:text-red-800;
}

.admin-questions__delete-form {
  @apply inline;
}

.admin-questions__hint {
  @apply text-sm text-gray-500 mt-4;
}

/* ---------------------------------------------------------------------------
   ADMIN-STATS  (stats/index)
   --------------------------------------------------------------------------- */

.admin-stats__overview-grid {
  @apply grid grid-cols-3 gap-4 mb-8;
}

.admin-stats__card {
  @apply bg-white rounded-lg p-5 shadow-sm text-center;
}

.admin-stats__card-value {
  @apply text-3xl font-bold text-gray-900;
}

.admin-stats__card-value--green {
  @apply text-3xl font-bold text-green-600;
}

.admin-stats__card-value--yellow {
  @apply text-3xl font-bold text-yellow-600;
}

.admin-stats__card-label {
  @apply text-sm text-gray-500 mt-1;
}

/* Progress bar */
.admin-stats__progress-track {
  @apply w-full bg-gray-200 rounded-full h-3 mb-4;
}

.admin-stats__progress-bar {
  @apply bg-green-500 h-3 rounded-full;
}

/* Attendance section */
.admin-stats__section {
  @apply bg-white rounded-lg shadow-sm p-6 mb-8;
}

.admin-stats__section-title {
  @apply text-lg font-semibold text-gray-900 mb-4;
}

.admin-stats__bar-list {
  @apply space-y-3;
}

.admin-stats__bar-header {
  @apply flex justify-between text-sm mb-1;
}

.admin-stats__bar-label {
  @apply font-medium text-gray-700;
}

.admin-stats__bar-count {
  @apply text-gray-500;
}

.admin-stats__bar-pct {
  @apply text-gray-400;
}

.admin-stats__bar-track {
  @apply w-full bg-gray-100 rounded-full h-2.5;
}

.admin-stats__bar--green {
  @apply h-2.5 rounded-full bg-green-500;
}

.admin-stats__bar--red {
  @apply h-2.5 rounded-full bg-red-400;
}

.admin-stats__bar--yellow {
  @apply h-2.5 rounded-full bg-yellow-400;
}

.admin-stats__bar--blue {
  @apply h-2.5 rounded-full bg-blue-400;
}

/* Question sections */
.admin-stats__questions {
  @apply space-y-6;
}

.admin-stats__question-card {
  @apply bg-white rounded-lg shadow-sm p-6;
}

.admin-stats__question-title {
  @apply text-lg font-semibold text-gray-900 mb-1;
}

.admin-stats__question-meta {
  @apply text-sm text-gray-500 mb-4;
}

/* Number stats grid */
.admin-stats__number-grid {
  @apply grid grid-cols-2 gap-4;
}

.admin-stats__number-card {
  @apply bg-gray-50 rounded-lg p-4 text-center;
}

.admin-stats__number-value--purple {
  @apply text-2xl font-bold text-purple-600;
}

.admin-stats__number-value--blue {
  @apply text-2xl font-bold text-blue-600;
}

.admin-stats__number-label {
  @apply text-xs text-gray-500 mt-1;
}

/* Text answers */
.admin-stats__text-list {
  @apply space-y-2;
}

.admin-stats__text-item {
  @apply bg-gray-50 rounded px-3 py-2 text-sm text-gray-700;
}

.admin-stats__text-author {
  @apply font-medium text-gray-900;
}

.admin-stats__text-overflow {
  @apply text-xs text-gray-400;
}

/* ---------------------------------------------------------------------------
   ADMIN-CHAT  (chats/show)
   --------------------------------------------------------------------------- */

/* Markdown content */
.admin-chat__md-content p {
  margin-bottom: 0.5em;
}
.admin-chat__md-content p:last-child {
  margin-bottom: 0;
}
.admin-chat__md-content ul,
.admin-chat__md-content ol {
  margin: 0.4em 0;
  padding-left: 1.4em;
}
.admin-chat__md-content li {
  margin-bottom: 0.2em;
}
.admin-chat__md-content strong {
  font-weight: 600;
}
.admin-chat__md-content code {
  background: rgba(0, 0, 0, 0.06);
  padding: 0.1em 0.3em;
  border-radius: 4px;
  font-size: 0.9em;
}
.admin-chat__md-content pre {
  background: rgba(0, 0, 0, 0.06);
  padding: 0.6em;
  border-radius: 6px;
  overflow-x: auto;
  margin: 0.4em 0;
}
.admin-chat__md-content pre code {
  background: none;
  padding: 0;
}
.admin-chat__md-content h1,
.admin-chat__md-content h2,
.admin-chat__md-content h3 {
  font-weight: 600;
  margin: 0.5em 0 0.3em;
}

.admin-chat__new-chat-btn {
  @apply text-red-500 hover:text-red-700 text-sm bg-transparent border-0 cursor-pointer p-0;
}

.admin-chat__new-chat-form {
  @apply inline;
}

.admin-chat__messages {
  @apply flex-1 overflow-y-auto space-y-3 mb-4 bg-gray-50 rounded-xl p-4;
  min-height: 0;
}

.admin-chat__empty {
  @apply text-center text-gray-400 py-12;
}

.admin-chat__empty-icon {
  @apply text-4xl mb-3;
}

.admin-chat__empty-text {
  @apply text-sm;
}

.admin-chat__empty-hint {
  @apply text-xs mt-1 text-gray-300;
}

.admin-chat__msg-row {
  @apply flex;
}

.admin-chat__msg-row--user {
  @apply justify-end;
}

.admin-chat__msg-row--assistant {
  @apply justify-start;
}

.admin-chat__bubble {
  @apply max-w-[80%] rounded-2xl px-4 py-2.5 text-sm leading-relaxed;
}

.admin-chat__bubble--user {
  @apply bg-blue-600 text-white rounded-br-md;
}

.admin-chat__bubble--assistant {
  @apply bg-white text-gray-800 shadow-sm rounded-bl-md border border-gray-100;
}

.admin-chat__bubble-text {
  @apply whitespace-pre-wrap;
}

.admin-chat__form {
  @apply flex gap-2;
}

.admin-chat__input {
  @apply flex-1 border border-gray-300 rounded-xl px-4 py-3 text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500 outline-none;
}

.admin-chat__send-btn {
  @apply bg-blue-600 text-white px-6 py-3 rounded-xl hover:bg-blue-700 transition text-sm font-medium disabled:opacity-50;
}

/* ---------------------------------------------------------------------------
   ADMIN-SEATING  (seating/index)
   --------------------------------------------------------------------------- */

.admin-seating {
  display: flex;
  height: calc(100vh - 1rem);
  overflow: hidden;
}

.admin-seating__canvas-area {
  flex: 1;
  position: relative;
  background: #fafaf8;
  overflow: hidden;
  cursor: grab;
}

.admin-seating__canvas-area--grabbing {
  cursor: grabbing;
}

.admin-seating__canvas-inner {
  position: absolute;
  top: 0;
  left: 0;
  width: 3000px;
  height: 3000px;
}

/* Toolbar */
/* Legacy toolbar (hidden - replaced by float toolbar) */
.admin-seating__toolbar-wrap {
  display: none;
}

/* Miro-style floating toolbar */
.admin-seating__float-toolbar {
  @apply fixed left-72 top-1/2 -translate-y-1/2 bg-white rounded-xl shadow-lg border border-gray-200 p-2 flex flex-col gap-1;
  z-index: 30;
}

.admin-seating__float-toolbar-group {
  @apply flex flex-col gap-1;
}

.admin-seating__float-toolbar-divider {
  @apply border-t border-gray-200 my-1;
}

.admin-seating__float-btn {
  @apply w-10 h-10 flex items-center justify-center rounded-lg bg-white hover:bg-gray-100 border-none cursor-pointer text-base transition-colors;
  text-decoration: none;
  color: #3d3232;
}

.admin-seating__toolbar {
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  background: #fff;
  border-bottom: 1px solid #f0ece6;
  flex-wrap: wrap;
  align-items: center;
}

.admin-seating__tool-btn {
  padding: 6px 14px;
  border: 1px solid #e5e0d8;
  border-radius: 8px;
  background: #fff;
  font-size: 12px;
  cursor: pointer;
  color: #3d3232;
  transition: all 0.2s;
  text-decoration: none;
}

.admin-seating__tool-btn:hover {
  background: #f0ece6;
}

.admin-seating__tool-btn--primary {
  background: #3d3232;
  color: #fff;
  border-color: #3d3232;
  padding: 6px 14px;
  border-radius: 8px;
  font-size: 12px;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
}

.admin-seating__tool-btn--primary:hover {
  background: #5a4a4a;
}

.admin-seating__toolbar-separator {
  border-left: 1px solid #e5e0d8;
  margin: 0 4px;
}

.admin-seating__toolbar-spacer {
  flex: 1;
}

/* Tables on canvas */
.admin-seating__table-wrap {
  position: absolute;
  padding: 14px;
}

.admin-seating__table-wrap:hover .admin-seating__table {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
}

.admin-seating__table-wrap--round {
  width: 140px;
  height: 140px;
}

.admin-seating__table-wrap--round .admin-seating__table {
  border-radius: 50%;
}

.admin-seating__table-wrap--rect {
  width: 180px;
  height: 100px;
}

.admin-seating__table-wrap--rect .admin-seating__table {
  border-radius: 12px;
}

.admin-seating__table {
  position: relative;
  cursor: move;
  user-select: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 2px solid #e5e0d8;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.2s;
  width: 100%;
  height: 100%;
}

.admin-seating__table--drop-over {
  border-color: #4caf50;
  box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.3);
}

.admin-seating__table-name {
  font-weight: 600;
  font-size: 12px;
  color: #3d3232;
  pointer-events: none;
}

.admin-seating__table-count {
  font-size: 11px;
  color: #8a7575;
  margin-top: 2px;
  pointer-events: none;
}

.admin-seating__table-count--full {
  color: #e53935;
  font-weight: 600;
  font-size: 11px;
  margin-top: 2px;
  pointer-events: none;
}

.admin-seating__table-guests {
  font-size: 9px;
  color: #aaa;
  margin-top: 4px;
  text-align: center;
  max-width: 90%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
}

.admin-seating__delete-btn {
  position: absolute;
  top: 0;
  right: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #e53935;
  color: #fff;
  border: 2px solid #fff;
  cursor: pointer;
  font-size: 10px;
  line-height: 18px;
  text-align: center;
  z-index: 5;
  display: none;
}

.admin-seating__table-wrap:hover .admin-seating__delete-btn {
  display: block;
}

/* Resize handle */
.admin-seating__resize-handle {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 16px;
  height: 16px;
  cursor: nwse-resize;
  z-index: 5;
  display: none;
}

.admin-seating__resize-handle::after {
  content: "";
  position: absolute;
  bottom: 4px;
  right: 4px;
  width: 8px;
  height: 8px;
  border-right: 2px solid #bbb;
  border-bottom: 2px solid #bbb;
}

.admin-seating__table-wrap:hover .admin-seating__resize-handle {
  display: block;
}

/* Sidebar */
.admin-seating__sidebar {
  width: 300px;
  background: #fff;
  border-left: 1px solid #e5e0d8;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
  transition: width 0.2s;
}

.admin-seating__sidebar-header {
  padding: 16px;
  border-bottom: 1px solid #f0ece6;
}

.admin-seating__sidebar-title {
  font-size: 16px;
  font-weight: 700;
  color: #3d3232;
  margin: 0;
}

.admin-seating__sidebar-tabs {
  display: flex;
  border-bottom: 1px solid #f0ece6;
}

.admin-seating__sidebar-tab {
  flex: 1;
  padding: 10px;
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  color: #8a7575;
  border-bottom: 2px solid transparent;
}

.admin-seating__sidebar-tab--active {
  color: #3d3232;
  border-color: #d4908f;
}

.admin-seating__sidebar-body {
  flex: 1;
  overflow-y: auto;
  padding: 8px;
}

.admin-seating__sidebar-search {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #e5e0d8;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 8px;
  outline: none;
  box-sizing: border-box;
}

/* Guest chips */
.admin-seating__guest-chip {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #fafaf8;
  border-radius: 8px;
  margin-bottom: 4px;
  cursor: grab;
  font-size: 13px;
  color: #3d3232;
  transition: background 0.2s;
  user-select: none;
  border: 1px solid transparent;
}

.admin-seating__guest-chip:hover {
  background: #f0ece6;
}

.admin-seating__guest-chip--selectable {
  cursor: pointer;
}

.admin-seating__guest-chip--selected {
  background: #d1fae5;
  border-color: #6ee7b7;
}

.admin-seating__guest-chip--selected-apart {
  background: #fee2e2;
  border-color: #fca5a5;
}

.admin-seating__unseat-btn {
  margin-left: auto;
  font-size: 11px;
  color: #aaa;
  cursor: pointer;
  background: none;
  border: none;
  padding: 0;
}

.admin-seating__unseat-btn:hover {
  color: #e53935;
}

/* Constraints */
.admin-seating__constraint-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  font-size: 12px;
  color: #3d3232;
  border-bottom: 1px solid #f8f6f2;
}

.admin-seating__type-badge {
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
}

.admin-seating__type-badge--together {
  background: #d1fae5;
  color: #065f46;
}

.admin-seating__type-badge--apart {
  background: #fee2e2;
  color: #991b1b;
}

.admin-seating__constraint-del {
  margin-left: auto;
  cursor: pointer;
  color: #ccc;
  background: none;
  border: none;
  padding: 0;
}

.admin-seating__constraint-del:hover {
  color: #e53935;
}

.admin-seating__sidebar-empty {
  text-align: center;
  color: #aaa;
  padding: 24px;
}

.admin-seating__sidebar-group-header {
  font-size: 11px;
  font-weight: 600;
  color: #8a7575;
  padding: 8px 12px 4px;
}

/* Toast */
.admin-seating__toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  padding: 12px 28px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 500;
  z-index: 9999;
  opacity: 0;
  transition: opacity 0.3s;
  pointer-events: none;
}

.admin-seating__toast--success {
  background: #065f46;
  color: #fff;
}

.admin-seating__toast--error {
  background: #991b1b;
  color: #fff;
}

.admin-seating__toast--show {
  opacity: 1;
}

/* ==========================================================================
   Wedding Cabinet Couple — BEM styles
   ========================================================================== */

.couple {
  @apply flex min-h-screen bg-gray-50;
}

.couple-main {
  @apply flex-1 flex flex-col;
}

.couple-header {
  @apply h-16 bg-white border-b border-gray-200 flex items-center justify-end px-8;
}

.couple-header__user {
  @apply flex items-center gap-3;
}

.couple-header__user-name {
  @apply text-sm text-gray-700;
}

.couple-header__logout {
  @apply text-sm text-gray-500 hover:text-gray-700 transition-colors;
}

.couple-content {
  @apply flex-1 p-8;
}

/* SIDEBAR */
.couple-sidebar {
  @apply w-64 bg-white border-r border-gray-100 flex flex-col flex-shrink-0;
}

.couple-sidebar__header {
  @apply px-6 py-5 border-b border-gray-100;
}

.couple-sidebar__couple {
  @apply text-lg font-semibold text-gray-800;
}

.couple-sidebar__date {
  @apply text-sm text-gray-400 mt-1;
}

.couple-sidebar__nav {
  @apply flex-1 py-4 overflow-y-auto;
}

.couple-sidebar__section {
  @apply mb-4;
}

.couple-sidebar__section-title {
  @apply px-6 py-1 text-xs font-medium text-gray-400 uppercase tracking-wider;
}

.couple-sidebar__link {
  @apply flex items-center px-6 py-2 text-sm text-gray-500 hover:bg-gray-50 hover:text-gray-800 transition-colors;
}

.couple-sidebar__link--active {
  @apply bg-gray-100 text-gray-900 font-medium;
}
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */
