/* Shared action controls, dialogs, statuses and feedback. */
/* Hide only controls awaiting enhancement, retaining their layout space.
   The head bootstrap enables this before any page content can be painted.
   With no JavaScript (or an unavailable UI script), native controls stay visible. */
html:is(.app-ui-preparing,.app-ui-ready) :is([data-ui-actions]:not(.app-ui-actions-container),
  :is([data-ui-button],[data-ui-action],.app-control-btn,.app-icon-btn,.inv-btn,
    .invoice-action-btn,.invoice-line-save-btn,.invoice-line-delete-btn,
    button.close-x,button[data-close]):not(.app-ui-button):not(:where(.mobile-tabbar-nav,.ql-toolbar,.ql-formats,.tox,.cke) *)) {
  visibility:hidden !important;
}
:root {
  --ui-brand:#365436;
  --ui-brand-hover:#29452c;
  --ui-brand-soft:#edf3ed;
  --ui-hover:#e3ece3;
  --ui-pressed:#d1e0d1;
  --ui-border-hover:#829b86;
  --ui-brand-pressed:#203924;
  --ui-link:#365436;
  --ui-link-hover:#29452c;
  --ui-link-pressed:#203924;
  --ui-surface:#fff;
  --ui-surface-muted:#f7f9fb;
  --ui-border:#dce3ea;
  --ui-text:#243043;
  --ui-muted:#64748b;
  --ui-danger:#b42332;
  --ui-danger-soft:#fff1f2;
  --ui-danger-hover:#ffe0e4;
  --ui-danger-pressed:#fecdd3;
  --ui-focus:0 0 0 3px rgba(54,84,54,.22);
}
.dark {
  --ui-brand:#426748;
  --ui-brand-hover:#507d57;
  --ui-brand-soft:#1b3024;
  --ui-hover:#243b30;
  --ui-pressed:#304e3e;
  --ui-border-hover:#82a58a;
  --ui-brand-pressed:#36553c;
  --ui-link:#abd5b4;
  --ui-link-hover:#d2ecd8;
  --ui-link-pressed:#f0fff3;
  --ui-surface:#111c2c;
  --ui-surface-muted:#172437;
  --ui-border:#334155;
  --ui-text:#e5edf5;
  --ui-muted:#acbace;
  --ui-danger:#fda4af;
  --ui-danger-soft:#3a1c29;
  --ui-danger-hover:#542334;
  --ui-danger-pressed:#6b2d40;
}
.app-main .app-ui-button,
.topbar .app-ui-button,
.app-sidebar .app-ui-button,
.app-ui-dialog .app-ui-button,
.app-ui-action-menu .app-ui-button {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:8px 14px;
  border:1px solid var(--ui-border) !important;
  border-radius:12px !important;
  background:var(--ui-surface) !important;
  background-image:none !important;
  color:var(--ui-text) !important;
  font-size:13px;
  line-height:1.3;
  font-weight:600;
  text-decoration:none !important;
  vertical-align:middle;
  cursor:pointer;
  box-shadow:0 1px 2px rgba(15,23,42,.035);
  transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;
  transform:none !important;
}
.app-main .app-ui-button:focus-visible,
.topbar .app-ui-button:focus-visible,
.app-sidebar .app-ui-button:focus-visible,
.app-ui-dialog .app-ui-button:focus-visible,
.app-ui-action-menu .app-ui-button:focus-visible { outline:2px solid var(--ui-brand); outline-offset:2px; box-shadow:var(--ui-focus); }
.app-main .app-ui-button.app-ui-primary,
.topbar .app-ui-button.app-ui-primary,
.app-sidebar .app-ui-button.app-ui-primary,
.app-ui-dialog .app-ui-button.app-ui-primary,
.app-ui-action-menu .app-ui-button.app-ui-primary { background:var(--ui-brand) !important; border-color:var(--ui-brand) !important; color:#fff !important; }
.app-main .app-ui-button.app-ui-danger,
.topbar .app-ui-button.app-ui-danger,
.app-sidebar .app-ui-button.app-ui-danger,
.app-ui-dialog .app-ui-button.app-ui-danger,
.app-ui-action-menu .app-ui-button.app-ui-danger { color:var(--ui-danger) !important; border-color:#efc5cb !important; background:var(--ui-danger-soft) !important; }
.app-main .app-ui-button.app-ui-icon-button { width:38px; min-width:38px; height:38px; min-height:38px; padding:0; flex:0 0 38px; }
.app-ui-button svg[data-app-icon] { width:17px !important; height:17px !important; flex:none; pointer-events:none; }
.app-ui-button:disabled,
.app-ui-button[aria-disabled="true"] { opacity:.55; cursor:not-allowed; box-shadow:none; }
.app-ui-button[aria-busy="true"] { cursor:progress; }
.app-main .app-ui-button.hidden,
.topbar .app-ui-button.hidden,
.app-sidebar .app-ui-button.hidden,
.app-ui-dialog .app-ui-button.hidden,
.app-ui-action-menu .app-ui-button.hidden,
.app-ui-button[hidden] { display:none !important; }
.app-main .app-ui-button.app-ui-text-button {
  display:inline !important;
  min-height:0;
  padding:0;
  border:0 !important;
  border-radius:4px !important;
  box-shadow:none;
  background:transparent !important;
  color:var(--ui-link) !important;
  text-align:left;
  font-size:inherit;
}
/* Interaction states must take precedence over older utility color classes. */
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):hover {
  background:var(--ui-hover) !important;
  border-color:var(--ui-border-hover) !important;
}
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):active {
  background:var(--ui-pressed) !important;
  border-color:var(--ui-brand) !important;
}
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button.app-ui-primary:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):hover { background:var(--ui-brand-hover) !important; border-color:var(--ui-brand-hover) !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button.app-ui-primary:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):active { background:var(--ui-brand-pressed) !important; border-color:var(--ui-brand-pressed) !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button.app-ui-danger:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):hover { background:var(--ui-danger-hover) !important; border-color:var(--ui-danger) !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button.app-ui-danger:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):active { background:var(--ui-danger-pressed) !important; border-color:var(--ui-danger) !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button:not(.tour-card):not([data-ui-choice]):is([aria-pressed="true"],[aria-selected="true"],[aria-current="page"],[aria-current="true"],[aria-current="step"],[aria-expanded="true"],[data-ui-state="selected"],.active,.is-active,.selected,.is-selected,.is-complete) {
  background:var(--ui-brand) !important;
  border-color:var(--ui-brand) !important;
  color:#fff !important;
  font-weight:700;
  box-shadow:inset 0 0 0 1px var(--ui-brand);
}
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button:not(.tour-card):not([data-ui-choice]):is([aria-pressed="true"],[aria-selected="true"],[aria-current="page"],[aria-current="true"],[aria-current="step"],[aria-expanded="true"],[data-ui-state="selected"],.active,.is-active,.selected,.is-selected,.is-complete):not(:disabled):not([aria-disabled="true"]):hover { background:var(--ui-brand-hover) !important; border-color:var(--ui-brand-hover) !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button:not(.tour-card):not([data-ui-choice]):is([aria-pressed="true"],[aria-selected="true"],[aria-current="page"],[aria-current="true"],[aria-current="step"],[aria-expanded="true"],[data-ui-state="selected"],.active,.is-active,.selected,.is-selected,.is-complete):not(:disabled):not([aria-disabled="true"]):active { background:var(--ui-brand-pressed) !important; border-color:var(--ui-brand-pressed) !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button.app-ui-text-button:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):hover { background:transparent !important; color:var(--ui-link-hover) !important; text-decoration:underline !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button.app-ui-text-button:not(.tour-card):not([data-ui-choice]):not(:disabled):not([aria-disabled="true"]):active { background:transparent !important; color:var(--ui-link-pressed) !important; }
:is(.app-main,.topbar,.app-sidebar,.app-ui-dialog,.app-ui-action-menu) .app-ui-button:focus-visible { outline:2px solid var(--ui-brand); outline-offset:2px; box-shadow:var(--ui-focus); }

/* Card choices retain their larger layout and readable content. */
.app-main :is(.tour-card,[data-ui-choice]) { transition:background-color .15s,border-color .15s,box-shadow .15s; }
.app-main :is(.tour-card,[data-ui-choice]):not(:disabled):not([aria-disabled="true"]):hover { background:var(--ui-hover) !important; border-color:var(--ui-border-hover) !important; }
.app-main :is(.tour-card,[data-ui-choice]):is([aria-pressed="true"],[aria-current="page"],[aria-current="true"],.active,.selected-card) {
  background:var(--ui-brand-soft) !important;
  border-color:var(--ui-brand) !important;
  color:var(--ui-text) !important;
  box-shadow:inset 0 0 0 1px var(--ui-brand) !important;
}
.app-main :is(.tour-card,[data-ui-choice]):is([aria-pressed="true"],[aria-current="page"],[aria-current="true"],.active,.selected-card):not(:disabled):not([aria-disabled="true"]):hover { background:var(--ui-hover) !important; }
.app-main :is(.tour-card,[data-ui-choice]):focus-visible { outline:2px solid var(--ui-brand); outline-offset:3px; }

/* One tour selector language across all admin modules. */
.app-main .app-tour-selector {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:0 0 24px;
}
.app-main .space-y-5 .app-tour-selector,
.app-main .space-y-6 > .app-tour-selector { margin-bottom:0; }
.app-main .app-tour-card {
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  min-height:90px;
  padding:12px !important;
  border:1px solid var(--ui-border) !important;
  border-radius:12px !important;
  background:var(--ui-surface) !important;
  color:var(--ui-text) !important;
  text-decoration:none !important;
  box-shadow:0 8px 24px rgba(15,23,42,.045) !important;
}
.app-main .app-tour-card__logo {
  display:flex;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  flex:0 0 64px;
  overflow:hidden;
  border:1px solid var(--ui-border);
  border-radius:10px;
  background:var(--ui-surface-muted);
}
.app-main .app-tour-card__image {
  display:block;
  width:100%;
  height:100%;
  padding:5px;
  object-fit:contain !important;
}
.app-main .app-tour-card__placeholder {
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--ui-muted);
}
.app-main .app-tour-card__content { display:block; min-width:0; }
.app-main .app-tour-card__title {
  display:block;
  color:var(--ui-text);
  font-size:15px;
  font-weight:650;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.app-main .app-tour-card__dates {
  display:block;
  margin-top:4px;
  color:var(--ui-muted);
  font-size:12px;
  line-height:1.35;
}
.app-main .app-tour-selector__empty {
  grid-column:1 / -1;
  padding:20px;
  border:1px dashed var(--ui-border);
  border-radius:12px;
  background:var(--ui-surface);
  color:var(--ui-muted);
}

/* Group pickers use the same control height, radius and focus treatment. */
.app-main select:is([name="group_id"],[name="group_filter"],[name="target_group_id"],#recipientGroupFilter),
.app-ui-dialog select:is([name="group_id"],[name="group_filter"],[name="target_group_id"],#recipientGroupFilter) {
  box-sizing:border-box;
  min-height:42px !important;
  max-width:100%;
  padding:8px 36px 8px 12px !important;
  border:1px solid var(--ui-border) !important;
  border-radius:10px !important;
  background-color:var(--ui-surface) !important;
  color:var(--ui-text) !important;
  font-size:13px !important;
  line-height:1.35;
  box-shadow:none !important;
}
.app-main select:is([name="group_id"],[name="group_filter"],[name="target_group_id"],#recipientGroupFilter):focus,
.app-ui-dialog select:is([name="group_id"],[name="group_filter"],[name="target_group_id"],#recipientGroupFilter):focus {
  outline:2px solid var(--ui-brand) !important;
  outline-offset:1px;
  border-color:var(--ui-brand) !important;
  box-shadow:var(--ui-focus) !important;
}
.app-main select:is([name="group_id"],[name="group_filter"],[name="target_group_id"],#recipientGroupFilter):disabled,
.app-ui-dialog select:is([name="group_id"],[name="group_filter"],[name="target_group_id"],#recipientGroupFilter):disabled {
  cursor:not-allowed;
  opacity:.6;
  background-color:var(--ui-surface-muted) !important;
}
@media (max-width:1023.98px) {
  .app-main .app-tour-selector { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:639.98px) {
  .app-main .app-tour-selector { grid-template-columns:1fr; gap:12px; }
  .app-main .app-tour-card { min-height:82px; }
  .app-main .app-tour-card__logo { width:56px; height:56px; flex-basis:56px; }
}

.app-sidebar nav a:hover,
.mobile-tabbar-nav a:hover { background:var(--ui-hover) !important; }
.app-sidebar nav a[aria-current="page"],
.mobile-tabbar-nav a[aria-current="page"] { background:var(--ui-brand) !important; color:#fff !important; }
.app-sidebar nav a[aria-current="page"]:hover,
.mobile-tabbar-nav a[aria-current="page"]:hover { background:var(--ui-brand-hover) !important; }
.app-sidebar nav a:focus-visible,
.mobile-tabbar-nav a:focus-visible { outline:2px solid var(--ui-brand); outline-offset:2px; }
.app-ui-nav-marker { background:currentColor; }
.app-ui-button[aria-busy="true"]::after,
.app-ui-loading::before { content:""; width:15px; height:15px; flex:none; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:app-ui-spin .75s linear infinite; }
.app-ui-action-list { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.app-ui-actions-container:not(td):not(th) { display:block !important; }
.app-ui-overflow-trigger { white-space:nowrap; }
.app-ui-action-menu {
  position:fixed;
  inset:auto;
  margin:0;
  box-sizing:border-box;
  width:280px;
  max-width:calc(100vw - 24px);
  max-height:calc(100dvh - 24px);
  padding:6px;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  white-space:normal;
  border:1px solid var(--ui-border);
  border-radius:16px;
  background:var(--ui-surface);
  color:var(--ui-text);
  box-shadow:0 16px 40px rgba(15,23,42,.18);
  z-index:90;
}
.app-ui-action-menu::backdrop { background:transparent; }
.app-ui-action-items { display:flex; flex-direction:column; gap:2px; width:100%; min-width:0; }
.app-ui-action-item { display:block; flex:none; width:100%; min-width:0; }
.app-ui-action-item-danger { margin-top:4px; padding-top:6px; border-top:1px solid var(--ui-border); }
.app-ui-action-menu form { display:block !important; width:100% !important; max-width:100%; min-width:0; height:auto !important; margin:0; }
.app-ui-action-menu .app-ui-button {
  display:flex !important;
  box-sizing:border-box;
  width:100% !important;
  max-width:100%;
  min-width:0 !important;
  flex:none !important;
  min-height:40px;
  height:auto !important;
  padding:10px 12px !important;
  justify-content:flex-start !important;
  text-align:left;
  white-space:normal !important;
  overflow-wrap:anywhere;
  border-color:transparent !important;
  box-shadow:none;
}
.app-ui-action-label { display:block; min-width:0; font-weight:500; }
.app-ui-dialog {
  max-width:min(var(--ui-dialog-width,64rem),calc(100vw - 32px)) !important;
  max-height:calc(100dvh - 40px) !important;
  border:1px solid var(--ui-border) !important;
  border-radius:22px !important;
  background:var(--ui-surface) !important;
  color:var(--ui-text);
  box-shadow:0 24px 64px rgba(15,23,42,.23) !important;
  overscroll-behavior:contain;
}
.app-ui-modal[class*="bg-black"],
.app-ui-modal > .modal-backdrop,
.app-ui-modal > [class*="bg-black"] { background:rgba(15,23,42,.48) !important; backdrop-filter:blur(2px); }
.app-ui-dialog:not(.modal-inner) { overflow-y:auto; }
.app-ui-dialog-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 22px !important;
  border-bottom:1px solid var(--ui-border) !important;
  background:var(--ui-surface) !important;
}
.app-ui-dialog-header h1,
.app-ui-dialog-header h2 { margin:0; font-size:19px; font-weight:650; line-height:1.4; }
.app-ui-dialog-header > :first-child { min-width:0; overflow-wrap:anywhere; }
.app-ui-dialog-header .app-ui-button { width:auto !important; flex:none; }
.booking-details-summary > div { min-width:0; overflow-wrap:anywhere; }
.app-ui-dialog-footer { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:10px; margin-top:20px; padding-top:16px; border-top:1px solid var(--ui-border); }
.app-ui-dialog-footer .app-ui-primary { order:2; }
.app-ui-dialog-footer .app-ui-danger { order:3; }
.app-ui-status {
  display:inline-flex !important;
  align-items:center;
  gap:5px;
  min-height:25px;
  padding:3px 9px !important;
  border:1px solid var(--ui-border) !important;
  border-radius:999px !important;
  background:var(--ui-surface-muted) !important;
  color:var(--ui-muted) !important;
  font-size:11px !important;
  font-weight:600;
  line-height:1.35;
  white-space:nowrap;
}
.app-ui-status[data-ui-tone="success"] { color:#166534 !important; background:#edf8ef !important; border-color:#bfdec5 !important; }
.app-ui-status[data-ui-tone="info"] { color:#1e4c88 !important; background:#eff5fc !important; border-color:#c7d9ef !important; }
.app-ui-status[data-ui-tone="warning"] { color:#8b5a12 !important; background:#fff8e8 !important; border-color:#ecd9ac !important; }
.app-ui-status[data-ui-tone="danger"] { color:#a12a38 !important; background:#fff1f2 !important; border-color:#efc5cb !important; }
.dark .app-ui-status[data-ui-tone="success"] { color:#a7deb4 !important; background:#193426 !important; border-color:#335b42 !important; }
.dark .app-ui-status[data-ui-tone="info"] { color:#a8cbf5 !important; background:#1b304b !important; border-color:#355578 !important; }
.dark .app-ui-status[data-ui-tone="warning"] { color:#f1d296 !important; background:#3c301b !important; border-color:#66502c !important; }
.dark .app-ui-status[data-ui-tone="danger"] { color:#fda4af !important; background:#3a1c29 !important; border-color:#713344 !important; }
.app-ui-notice {
  position:relative;
  padding:14px 18px 14px 44px !important;
  border:1px solid var(--ui-border) !important;
  border-left-width:3px !important;
  border-radius:14px !important;
  background:var(--ui-surface-muted) !important;
  color:var(--ui-text) !important;
  font-size:13px;
  line-height:1.6;
}
.app-ui-notice > .app-ui-notice-icon { position:absolute; top:16px; left:15px; width:17px; height:17px; }
.app-ui-notice[data-ui-notice="success"] { border-color:#bfdec5 !important; background:#edf8ef !important; color:#166534 !important; }
.app-ui-notice[data-ui-notice="error"] { border-color:#efc5cb !important; background:#fff1f2 !important; color:#a12a38 !important; }
.app-ui-notice[data-ui-notice="warning"] { border-color:#ecd9ac !important; background:#fff8e8 !important; color:#8b5a12 !important; }
.dark .app-ui-notice { background:var(--ui-surface-muted) !important; color:var(--ui-text) !important; border-color:var(--ui-border) !important; }
.dark .app-ui-notice[data-ui-notice="success"] { border-left-color:#84c598 !important; }
.dark .app-ui-notice[data-ui-notice="error"] { border-left-color:#fda4af !important; }
.dark .app-ui-notice[data-ui-notice="warning"] { border-left-color:#e8c37d !important; }
.app-ui-loading { display:flex; align-items:center; gap:10px; padding:18px; color:var(--ui-muted); font-size:13px; }
.app-ui-live { position:fixed; width:1px; height:1px; margin:-1px; overflow:hidden; clip-path:inset(50%); }
@keyframes app-ui-spin { to { transform:rotate(360deg); } }
@media (max-width:640px) {
  .app-main .app-ui-icon-button { width:44px; min-width:44px; height:44px; min-height:44px; flex-basis:44px; }
  .app-main .app-ui-button { min-height:44px; }
  .app-ui-dialog { max-width:min(var(--ui-dialog-width,64rem),calc(100vw - 20px)) !important; max-height:calc(100dvh - 20px) !important; border-radius:18px !important; }
  .app-ui-dialog-header { padding:16px !important; }
  .app-ui-dialog-footer { gap:8px; }
}
@media (min-width:768px) {
  .topbar .app-ui-button[data-toggle="sidebar"] { display:none !important; }
}
@media (prefers-reduced-motion:reduce) {
  .app-ui-button { transition:none !important; }
  .app-ui-button[aria-busy="true"]::after,.app-ui-loading::before { animation-duration:2s; }
}
@media print {
  .app-ui-action-menu,.app-ui-overflow-trigger,.app-ui-live { display:none !important; }
}

/* Administrative group visibility: shared by groups, bookings, invoices and flights. */
.app-main .app-group-visibility { min-width:0; margin:0; padding:0; border:0; }
.app-main .app-group-visibility legend { margin-bottom:8px; padding:0; color:#526174; font-size:12px; font-weight:600; }
.app-main .app-group-visibility-options { display:flex; flex-wrap:wrap; gap:8px; }
.app-main .app-group-visibility-option { position:relative; display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:9px 12px; border:1px solid #dbe3ed; border-radius:12px; background:#fff; color:#46556a; cursor:pointer; transition:background-color .15s,border-color .15s; }
.app-main .app-group-visibility-option:hover { background:#f5f8fc; border-color:#a8b7ca; }
.app-main .app-group-visibility-input { position:absolute; width:1px; height:1px; padding:0; opacity:0; }
.app-main .app-group-visibility-option:has(.app-group-visibility-input:focus-visible) { outline:3px solid #2563eb; outline-offset:3px; }
.app-main .app-group-visibility-label { display:block; font-size:13px; font-weight:600; line-height:1.35; }
.app-main .app-group-visibility-state { display:block; margin-top:2px; color:#64748b; font-size:11px; font-weight:400; }
.app-main .app-group-visibility-count { display:inline-block; min-width:18px; padding:0 5px; border-radius:8px; background:#edf1f7; text-align:center; font-size:11px; }
.app-main .app-group-visibility-switch { position:relative; flex:0 0 30px; width:30px; height:18px; border:1px solid #94a3b8; border-radius:10px; background:#dbe3ed; }
.app-main .app-group-visibility-switch::after { content:''; position:absolute; top:2px; left:2px; width:12px; height:12px; border-radius:50%; background:#fff; box-shadow:0 1px 2px #0f172a26; transition:transform .15s; }
.app-main .app-group-visibility-option .when-visible { display:none; }
.app-main .app-group-visibility-option:has(.app-group-visibility-input:checked) .when-visible { display:inline; }
.app-main .app-group-visibility-option:has(.app-group-visibility-input:checked) .when-hidden { display:none; }
.app-main .app-group-visibility-option:has(.app-group-visibility-input:checked) { border-color:#99b6a3; background:#f0f7f2; color:#245d3b; }
.app-main .app-group-visibility-input:checked ~ .app-group-visibility-switch { border-color:#35754b; background:#35754b; }
.app-main .app-group-visibility-input:checked ~ .app-group-visibility-switch::after { transform:translateX(12px); }
.app-main .app-group-visibility-option.is-waitlist:has(.app-group-visibility-input:checked) { border-color:#e4c481; background:#fff9eb; color:#80530c; }
.app-main .is-waitlist .app-group-visibility-input:checked ~ .app-group-visibility-switch { border-color:#946200; background:#946200; }
.app-main .app-group-visibility-toolbar { margin:4px 0 16px; }
.app-main .app-group-badge { display:inline-flex; align-items:center; margin:3px 0 3px 6px; padding:3px 8px; border:1px solid; border-radius:7px; font-size:11px; font-weight:600; line-height:1.35; vertical-align:middle; white-space:nowrap; }
.app-main .app-group-badge.is-cancellation { color:#9f2849; background:#fff0f3; border-color:#f2c5d1; }
.app-main .app-group-badge.is-waitlist { color:#80530c; background:#fff7e0; border-color:#ecd49a; }
.app-main .app-group-badge.is-hidden { color:#526174; background:#f1f4f8; border-color:#dbe3ed; }
html.dark .app-main .app-group-visibility legend,html.dark .app-main .app-group-visibility-state { color:#a8b8cd; }
html.dark .app-main .app-group-visibility-option { color:#d7e2f0; background:#182333; border-color:#3a4b61; }
html.dark .app-main .app-group-visibility-option:hover { background:#233247; }
html.dark .app-main .app-group-visibility-option:has(.app-group-visibility-input:checked) { color:#c4ead1; background:#183a29; border-color:#477b59; }
html.dark .app-main .app-group-visibility-option.is-waitlist:has(.app-group-visibility-input:checked) { color:#ffe2a1; background:#3c301a; border-color:#91733d; }
html.dark .app-main .app-group-visibility-count { color:#d7e2f0; background:#334155; }
html.dark .app-main .app-group-badge.is-cancellation { color:#ffc6d5; background:#472333; border-color:#8b435c; }
html.dark .app-main .app-group-badge.is-waitlist { color:#ffe2a1; background:#3c301a; border-color:#91733d; }
html.dark .app-main .app-group-badge.is-hidden { color:#cbd5e1; background:#263449; border-color:#4b5c72; }
@media (max-width:640px) {
  .app-main .app-group-visibility-options { display:grid; grid-template-columns:minmax(0,1fr); }
  .app-main .app-group-visibility-option { min-width:0; gap:8px; }
}
@media (prefers-reduced-motion:reduce) {
  .app-main .app-group-visibility-option,.app-main .app-group-visibility-switch::after { transition:none; }
}
