/*
 * Con Admin shared design foundation.
 * Single source of truth for visual tokens and low-specificity component defaults.
 * Feature styles may override these defaults when a component intentionally differs.
 */
:root {
  /* Brand and surfaces */
  --con-admin-color-brand: #001c3f;
  --con-admin-color-primary: #196cae;
  --con-admin-color-primary-hover: #145d95;
  --con-admin-color-primary-active: #0f5384;
  --con-admin-color-secondary-hover: var(--con-admin-color-surface-hover);
  --con-admin-color-surface: #fff;
  --con-admin-color-surface-muted: #f8fafc;
  --con-admin-color-surface-subtle: #f6f7f7;
  --con-admin-color-text: #0f172a;
  --con-admin-color-text-strong: #111827;
  --con-admin-color-text-muted: #475569;
  --con-admin-color-text-soft: #64748b;
  --con-admin-color-icon: #374151;
  --con-admin-color-disabled: #7c8795;
  --con-admin-color-border: #d7e3ef;
  --con-admin-color-border-strong: #c6d4e5;
  --con-admin-color-border-soft: #e5e7eb;
  --con-admin-color-success: #166534;
  --con-admin-color-success-strong: #027a48;
  --con-admin-color-warning: #b45309;
  --con-admin-color-danger: #b42318;
  --con-admin-color-danger-hover: #8f1c13;
  --con-admin-color-info: #145d95;
  --con-admin-color-link: #2271b1;
  --con-admin-color-link-hover: #135e96;
  --con-admin-color-accent: #30568f;
  --con-admin-color-accent-purple: #582a73;
  --con-admin-color-text-subtle: #334155;
  --con-admin-color-text-neutral: #4b5563;
  --con-admin-color-text-ui: #646970;
  --con-admin-color-text-admin: #1d2327;
  --con-admin-color-border-control: #cbd5e1;
  --con-admin-color-border-hover: #94a3b8;
  --con-admin-color-surface-hover: #eef2f7;
  --con-admin-color-surface-active: #e2e8f0;
  --con-admin-color-surface-brand-tint: #f8fbff;
  --con-admin-color-surface-neutral: #f3f4f6;
  --con-admin-color-surface-neutral-light: #f9fafb;
  --con-admin-color-text-secondary: #6b7280;
  --con-admin-color-text-deep: #1f2937;
  --con-admin-color-text-ink: #17212b;
  --con-admin-color-text-wp-muted: #50575e;
  --con-admin-color-text-event-muted: #667085;
  --con-admin-color-text-slate-muted: #5b6b7c;
  --con-admin-color-border-admin: #dcdcde;
  --con-admin-color-border-muted: #d9e2ec;
  --con-admin-color-border-neutral: #d1d5db;
  --con-admin-color-border-slate: #c7d2de;
  --con-admin-color-border-gray: #e6e6e6;
  --con-admin-color-border-blue-gray: #dbe4ee;
  --con-admin-color-button-border: rgba(0, 0, 0, .16);
  --con-admin-color-button-border-hover: rgba(0, 0, 0, .24);
  --con-admin-color-danger-surface: #fff7f7;

  /* Semantic translucent colors */
  --con-admin-color-focus-ring: rgba(25, 108, 174, .18);
  --con-admin-color-focus-ring-soft: rgba(25, 108, 174, .1);
  --con-admin-color-border-translucent: rgba(0, 28, 63, .18);
  --con-admin-color-border-translucent-soft: rgba(0, 28, 63, .12);
  --con-admin-color-overlay: rgba(0, 28, 63, .72);
  --con-admin-modal-header-background: linear-gradient(180deg, var(--con-admin-color-surface), var(--con-admin-color-surface-muted));
  --con-admin-backdrop-blur: 5px;

  /* Spacing scale */
  --con-admin-space-0: 0;
  --con-admin-space-1: 2px;
  --con-admin-space-2: 4px;
  --con-admin-space-3: 6px;
  --con-admin-space-4: 8px;
  --con-admin-space-5: 10px;
  --con-admin-space-6: 12px;
  --con-admin-space-7: 14px;
  --con-admin-space-8: 16px;
  --con-admin-space-9: 18px;
  --con-admin-space-10: 20px;
  --con-admin-space-12: 24px;
  --con-admin-space-14: 28px;
  --con-admin-space-16: 32px;

  /* Radius scale. 4px is the standard; pills/circles are intentional exceptions. */
  --con-admin-radius: 4px;
  --con-admin-radius-pill: 999px;
  --con-admin-radius-circle: 50%;

  /* Type scale. Font family is intentionally inherited from the host site/admin. */
  --con-admin-font-size-micro: 9px;
  --con-admin-font-size-label: 9.5px;
  --con-admin-font-size-2xs: 10px;
  --con-admin-font-size-xs: 11px;
  --con-admin-font-size-sm: 12px;
  --con-admin-font-size-md: 13px;
  --con-admin-font-size-base: 14px;
  --con-admin-font-size-lg: 15px;
  --con-admin-font-size-xl: 16px;
  --con-admin-font-size-compact-title: 17px;
  --con-admin-font-size-2xl: 18px;
  --con-admin-font-size-3xl: 20px;
  --con-admin-font-size-heading: 22px;
  --con-admin-font-size-4xl: 24px;
  --con-admin-weight-thin: 200;
  --con-admin-weight-light: 300;
  --con-admin-weight-regular: 400;
  --con-admin-weight-medium: 500;
  --con-admin-weight-strong: 600;
  --con-admin-line-height-tight: 1.2;
  --con-admin-line-height-compact: 1.3;
  --con-admin-line-height-normal: 1.4;
  --con-admin-line-height-relaxed: 1.5;
  --con-admin-line-height-ui: 1.45;
  --con-admin-type-xs: var(--con-admin-font-size-xs);
  --con-admin-type-sm: var(--con-admin-font-size-sm);
  --con-admin-type-base: var(--con-admin-font-size-base);
  --con-admin-type-md: var(--con-admin-font-size-lg);
  --con-admin-type-lg: var(--con-admin-font-size-2xl);
  --con-admin-type-xl: var(--con-admin-font-size-heading);

  /* Controls */
  --con-admin-control-height-xs: 30px;
  --con-admin-control-height-sm: 32px;
  --con-admin-control-height-compact: 34px;
  --con-admin-control-height: 40px;
  --con-admin-control-height-lg: 44px;
  --con-admin-control-padding: 8px 14px;
  --con-admin-control-padding-compact: 6px 10px;
  --con-admin-control-gap: 8px;
  --con-admin-icon-button-size: 34px;
  --con-admin-chip-height: 22px;
  --con-admin-chip-padding-block: 2px;
  --con-admin-chip-padding-inline: 10px;
  --con-admin-chip-font-size: var(--con-admin-font-size-xs);
  --con-admin-chip-icon-size: 12px;

  /* Shared filter/tab controls */
  --con-admin-filter-tab-color: var(--con-admin-color-text-subtle);
  --con-admin-filter-tab-bg: rgba(248, 250, 252, .9);
  --con-admin-filter-tab-border: rgba(100, 116, 139, .24);
  --con-admin-filter-tab-active-color: var(--con-admin-color-brand);
  --con-admin-filter-tab-active-bg: rgba(0, 28, 63, .10);
  --con-admin-filter-tab-active-border: rgba(0, 28, 63, .32);
  --con-admin-filter-tab-focus: rgba(0, 28, 63, .14);
  --con-admin-chip-border: rgba(100, 116, 139, .24);
  --con-admin-chip-bg: rgba(248, 250, 252, .9);
  --con-admin-chip-info-text: var(--con-admin-color-brand);
  --con-admin-chip-info-border: rgba(0, 28, 63, .20);
  --con-admin-chip-info-bg: rgba(0, 28, 63, .07);
  --con-admin-chip-success-border: rgba(2, 122, 72, .18);
  --con-admin-chip-success-bg: #ecfdf3;
  --con-admin-chip-danger-border: rgba(180, 35, 24, .18);
  --con-admin-chip-danger-bg: #fef3f2;
  --con-admin-chip-warning-border: rgba(217, 119, 6, .22);
  --con-admin-chip-warning-bg: rgba(245, 158, 11, .1);
  --con-admin-chip-neutral-border: rgba(100, 116, 139, .18);
  --con-admin-chip-neutral-bg: rgba(248, 250, 252, .72);

  /* Motion */
  --con-admin-motion-duration-fast: 140ms;
  --con-admin-motion-duration: 200ms;
  --con-admin-motion-duration-slow: 260ms;
  --con-admin-motion-ease: cubic-bezier(.2, .7, .2, 1);
  --con-admin-motion-y: 2px;
  --con-admin-motion-ring: rgba(48, 86, 143, .08);

  /* Elevation */
  --con-admin-shadow-card: 0 1px 2px rgba(15, 23, 42, .04);
  --con-admin-shadow-raised: 0 10px 24px rgba(15, 23, 42, .08);
  --con-admin-shadow-popover: 0 12px 30px rgba(2, 6, 23, .18);
  --con-admin-shadow-modal: 0 22px 60px rgba(0, 28, 63, .26);

  /* Layer scale */
  --con-admin-layer-floating: 2147483600;
  --con-admin-layer-popover: 2147483610;
  --con-admin-layer-modal: 2147483620;
  --con-admin-layer-toast: 2147483630;
  --con-admin-layer-tooltip: 2147483646;

  /* Shared scrollbar */
  --con-admin-scrollbar-size: 10px;
  --con-admin-scrollbar-track: rgba(15, 23, 42, .05);
  --con-admin-scrollbar-thumb: var(--con-admin-color-brand);
  --con-admin-scrollbar-thumb-hover: var(--con-admin-color-primary);

  /* Focus */
  --con-admin-focus-outline-width: 2px;
  --con-admin-focus-outline-offset: 2px;
  --con-admin-focus-outline-color: rgba(25, 108, 174, .52);

  /* Backward-compatible aliases used throughout the established UI. */
  --con-radius-sm: var(--con-admin-radius);
  --con-radius-md: var(--con-admin-radius);
  --con-radius-lg: var(--con-admin-radius);
  --con-space-1: var(--con-admin-space-4);
  --con-space-2: var(--con-admin-space-6);
  --con-space-3: var(--con-admin-space-8);
  --con-space-4: var(--con-admin-space-10);
  --con-border: var(--con-admin-color-border);
  --con-border-strong: var(--con-admin-color-border-strong);
  --con-surface: var(--con-admin-color-surface);
  --con-surface-muted: transparent;
  --con-text: var(--con-admin-color-text);
  --con-text-soft: var(--con-admin-color-text-muted);
  --con-primary: var(--con-admin-color-primary);
  --con-primary-hover: var(--con-admin-color-primary-hover);
  --con-disabled: var(--con-admin-color-disabled);
  --con-shadow: var(--con-admin-shadow-raised);
  --con-admin-shell-bg: var(--con-admin-color-surface);
  --con-admin-shell-border: #d0d7de;
  --con-admin-success-text: var(--con-admin-color-success);
  --con-admin-success-border: #86efac;
  --con-admin-error-text: var(--con-admin-color-danger);
  --con-admin-error-border: #fda29b;
  --con-admin-info-text: var(--con-admin-color-info);
  --con-admin-field-height: var(--con-admin-control-height);
  --con-admin-field-radius: var(--con-admin-radius);
  --con-admin-feedback-radius: var(--con-admin-radius);
  --con-admin-feedback-navy: var(--con-admin-color-brand);
  --con-admin-feedback-border: var(--con-admin-color-border-translucent);
  --con-admin-feedback-shadow: var(--con-admin-shadow-modal);
  --con-admin-game-modifier-label: var(--con-admin-color-text-muted);
  --con-admin-game-modifier-subtext: var(--con-admin-color-disabled);
  --con-admin-game-modifier-label-size: var(--con-admin-font-size-sm);
  --con-admin-game-modifier-description-size: var(--con-admin-font-size-sm);
  --con-admin-card-icon-size: 60px;
  --con-admin-safe-vw: 100%;
  --con-high-seas-bg: none;
  --con-admin-border-strong: #c7d2de;
  --con-admin-toast-background: rgba(9, 14, 24, .88);
  --con-admin-toast-border: rgba(255, 255, 255, .16);
  --con-admin-toast-shadow: 0 12px 30px rgba(2, 6, 23, .28);
  --con-admin-toast-top: 70px;
  --con-admin-toast-right: 16px;

  /* Legacy shared aliases retained for existing selectors while the foundation owns the value. */
  --con-admin-ui-header-bg: var(--con-admin-color-surface-neutral);
  --con-admin-ui-row-even: var(--con-admin-color-surface);
  --con-admin-ui-row-odd: #fafafa;
  --con-admin-ui-text: var(--con-admin-color-text-strong);
  --con-admin-ui-muted: var(--con-admin-color-icon);
  --con-admin-ui-control-height: var(--con-admin-control-height);
  --con-admin-table-header-bg: var(--con-admin-color-surface-subtle);
  --con-admin-table-row-odd: var(--con-admin-color-surface);
  --con-admin-table-row-even: #fbfbfc;
  --con-admin-table-cell-pad-y: var(--con-admin-space-7);
  --con-admin-table-cell-pad-x: var(--con-admin-space-8);
}

/* Shared box sizing for plugin-owned UI. */
:where([class^="con-admin-"], [class*=" con-admin-"]),
:where([class^="con-admin-"], [class*=" con-admin-"])::before,
:where([class^="con-admin-"], [class*=" con-admin-"])::after {
  box-sizing: border-box;
}

/* Low-specificity layout utilities. */
:where(.con-admin-stack) { display: grid; gap: var(--con-admin-space-8); }
:where(.con-admin-stack--compact) { gap: var(--con-admin-space-4); }
:where(.con-admin-cluster) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--con-admin-space-4); }
:where(.con-admin-scrollable) { overflow: auto; overscroll-behavior: contain; }

/* Shared button/control foundation. Feature-specific visuals can override via normal class specificity. */
:where(.con-admin-button, .con-admin-game-action-button, .con-btn) {
  --con-admin-button-bg: var(--con-admin-color-surface);
  --con-admin-button-border: var(--con-admin-color-border-strong);
  --con-admin-button-text: var(--con-admin-color-brand);
  --con-admin-button-hover-bg: var(--con-admin-color-surface-muted);
  --con-admin-button-hover-border: var(--con-admin-color-primary);
  --con-admin-button-hover-text: var(--con-admin-color-brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--con-admin-control-gap);
  min-height: var(--con-admin-control-height);
  margin: 0;
  padding: var(--con-admin-control-padding);
  border: 1px solid var(--con-admin-button-border);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-button-bg);
  color: var(--con-admin-button-text);
  box-shadow: none;
  font-size: var(--con-admin-font-size-base);
  font-weight: var(--con-admin-weight-strong);
  line-height: var(--con-admin-line-height-tight);
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  appearance: none;
  transition: background-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), border-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), box-shadow var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), opacity var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), transform var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease);
}
:where(.con-admin-button, .con-admin-game-action-button, .con-btn):hover {
  border-color: var(--con-admin-button-hover-border);
  background: var(--con-admin-button-hover-bg);
  color: var(--con-admin-button-hover-text);
  text-decoration: none;
}
:where(.con-admin-button, .con-admin-game-action-button, .con-btn):focus-visible {
  border-color: var(--con-admin-button-hover-border);
  outline: var(--con-admin-focus-outline-width) solid var(--con-admin-focus-outline-color);
  outline-offset: var(--con-admin-focus-outline-offset);
}
:where(.con-admin-button, .con-admin-game-action-button, .con-btn):active:not(:disabled, [aria-disabled="true"], .disabled) {
  transform: translateY(1px);
}
:where(.con-admin-button, .con-admin-game-action-button, .con-btn):disabled,
:where(.con-admin-button, .con-admin-game-action-button, .con-btn)[aria-disabled="true"],
:where(.con-admin-button, .con-admin-game-action-button, .con-btn).disabled {
  border-color: var(--con-admin-color-disabled);
  background: var(--con-admin-color-disabled);
  color: var(--con-admin-color-surface);
  cursor: not-allowed;
  opacity: .72;
  transform: none;
}
:where(.con-admin-button--primary, .con-admin-game-action-button--primary, .con-btn--primary) {
  --con-admin-button-bg: var(--con-admin-color-primary);
  --con-admin-button-border: var(--con-admin-color-primary);
  --con-admin-button-text: var(--con-admin-color-surface);
  --con-admin-button-hover-bg: var(--con-admin-color-primary-hover);
  --con-admin-button-hover-border: var(--con-admin-color-primary-hover);
  --con-admin-button-hover-text: var(--con-admin-color-surface);
}
:where(.con-admin-button--secondary, .con-admin-button--ghost, .con-admin-game-action-button--secondary, .con-btn--secondary) {
  --con-admin-button-bg: var(--con-admin-color-surface);
  --con-admin-button-border: var(--con-admin-color-border-strong);
  --con-admin-button-text: var(--con-admin-color-text);
  --con-admin-button-hover-bg: var(--con-admin-color-secondary-hover);
  --con-admin-button-hover-border: var(--con-admin-color-border-hover);
  --con-admin-button-hover-text: var(--con-admin-color-text);
}
:where(.con-admin-button--danger, .con-admin-game-action-button--danger, .con-btn--danger) {
  --con-admin-button-bg: var(--con-admin-color-danger);
  --con-admin-button-border: var(--con-admin-color-danger);
  --con-admin-button-text: var(--con-admin-color-surface);
  --con-admin-button-hover-bg: var(--con-admin-color-danger-hover);
  --con-admin-button-hover-border: var(--con-admin-color-danger-hover);
  --con-admin-button-hover-text: var(--con-admin-color-surface);
}
/* Canonical plugin button. Kept visually identical to the established full/lightweight implementations. */
.con-admin-plugin-button,
a.con-admin-plugin-button,
button.con-admin-plugin-button,
input[type="button"].con-admin-plugin-button,
input[type="submit"].con-admin-plugin-button {
  all: unset;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--con-admin-space-4);
  min-height: var(--con-admin-control-height-compact);
  max-width: 100%;
  margin: 0;
  padding: 7px var(--con-admin-space-7);
  border: 1px solid var(--con-admin-color-button-border);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-color-surface);
  color: var(--con-admin-color-text-admin);
  box-shadow: none;
  font-size: var(--con-admin-font-size-md);
  font-weight: var(--con-admin-weight-strong);
  line-height: var(--con-admin-line-height-tight);
  text-align: center;
  text-decoration: none;
  white-space: normal;
  cursor: pointer;
  user-select: none;
  appearance: none;
  -webkit-appearance: none;
  transition: background-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), border-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), opacity var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease);
}
.con-admin-plugin-button :where(i, svg, .dashicons),
a.con-admin-plugin-button :where(i, svg, .dashicons),
button.con-admin-plugin-button :where(i, svg, .dashicons) {
  color: currentColor;
  fill: currentColor;
}
/* Monochrome UI assets inherit a predictable foreground from their surface.
 * Purposefully multicolor assets (dice, RPG class art, Miku) opt out at the helper source. */
img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
.con-admin-icon-surface--light img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
.con-admin-plugin-button img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
a.con-admin-plugin-button img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
button.con-admin-plugin-button img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor) {
  filter: brightness(0) saturate(100%) invert(24%) sepia(10%) saturate(888%) hue-rotate(178deg) brightness(91%) contrast(88%);
}
.con-admin-plugin-button--primary img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
a.con-admin-plugin-button--primary img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
button.con-admin-plugin-button--primary img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
.con-admin-on-dark img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor),
.con-admin-icon-surface--dark img.con-admin-asset-icon:not(.con-admin-asset-icon--multicolor) {
  filter: brightness(0) invert(1);
}
.con-admin-on-dark :where(i, svg, .dashicons),
.con-admin-icon-surface--dark :where(i, svg, .dashicons) {
  color: var(--con-admin-color-surface);
  fill: currentColor;
}

.con-admin-plugin-button:hover,
a.con-admin-plugin-button:hover,
button.con-admin-plugin-button:hover {
  border-color: var(--con-admin-color-button-border-hover);
  background: var(--con-admin-color-surface-subtle);
  color: var(--con-admin-color-text-admin);
  text-decoration: none;
}
.con-admin-plugin-button:focus-visible,
a.con-admin-plugin-button:focus-visible,
button.con-admin-plugin-button:focus-visible {
  outline: var(--con-admin-focus-outline-width) solid var(--con-admin-focus-outline-color);
  outline-offset: var(--con-admin-focus-outline-offset);
}
.con-admin-plugin-button--primary,
a.con-admin-plugin-button--primary,
button.con-admin-plugin-button--primary {
  border-color: var(--con-admin-color-link);
  background: var(--con-admin-color-link);
  color: var(--con-admin-color-surface);
}
.con-admin-plugin-button--primary:hover,
a.con-admin-plugin-button--primary:hover,
button.con-admin-plugin-button--primary:hover {
  border-color: var(--con-admin-color-link-hover);
  background: var(--con-admin-color-link-hover);
  color: var(--con-admin-color-surface);
}
.con-admin-plugin-button--danger,
a.con-admin-plugin-button--danger,
button.con-admin-plugin-button--danger {
  border-color: var(--con-admin-color-danger);
  background: var(--con-admin-color-surface);
  color: var(--con-admin-color-danger);
}
.con-admin-plugin-button--danger:hover,
a.con-admin-plugin-button--danger:hover,
button.con-admin-plugin-button--danger:hover {
  border-color: var(--con-admin-color-danger-hover);
  background: var(--con-admin-color-danger-surface);
  color: var(--con-admin-color-danger-hover);
}
.con-admin-plugin-button--small,
a.con-admin-plugin-button--small,
button.con-admin-plugin-button--small {
  min-height: var(--con-admin-control-height-xs);
  padding: 5px var(--con-admin-space-5);
  font-size: var(--con-admin-font-size-sm);
}
.con-admin-plugin-button[disabled],
button.con-admin-plugin-button:disabled,
input.con-admin-plugin-button:disabled,
.con-admin-plugin-button.is-loading {
  cursor: not-allowed;
  opacity: .65;
}
.con-admin-plugin-button.is-loading { cursor: progress; }

:where(.con-admin-icon-button, .con-admin-modal-close) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--con-admin-icon-button-size);
  height: var(--con-admin-icon-button-size);
  min-width: var(--con-admin-icon-button-size);
  min-height: var(--con-admin-icon-button-size);
  padding: 0;
  border: 1px solid var(--con-admin-color-border-translucent);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-color-surface);
  color: var(--con-admin-color-icon);
  box-shadow: none;
  font-size: var(--con-admin-font-size-xl);
  font-weight: var(--con-admin-weight-regular);
  line-height: 1;
  cursor: pointer;
  appearance: none;
  transition: background-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), border-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), box-shadow var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), opacity var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease);
}
:where(.con-admin-icon-button, .con-admin-modal-close):hover,
:where(.con-admin-icon-button, .con-admin-modal-close):focus-visible {
  border-color: var(--con-admin-color-border-hover);
  background: var(--con-admin-color-surface-muted);
  color: var(--con-admin-color-brand);
}
:where(.con-admin-icon-button, .con-admin-modal-close):focus-visible {
  outline: var(--con-admin-focus-outline-width) solid var(--con-admin-focus-outline-color);
  outline-offset: var(--con-admin-focus-outline-offset);
}

/* Shared fields. Checkboxes/radios/toggles retain their component-specific geometry. */
:where([class^="con-admin-"], [class*=" con-admin-"]) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]), select, textarea),
:where(input.con-admin-input, select.con-admin-input, textarea.con-admin-input, .con-input) {
  min-height: var(--con-admin-control-height);
  padding: var(--con-admin-control-padding);
  border: 1px solid var(--con-admin-color-border-strong);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-color-surface);
  color: var(--con-admin-color-text);
  box-shadow: none;
  font-size: var(--con-admin-font-size-base);
  font-weight: var(--con-admin-weight-regular);
  line-height: var(--con-admin-line-height-normal);
  transition: border-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), box-shadow var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease), background-color var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease);
}
:where([class^="con-admin-"], [class*=" con-admin-"]) :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]), select, textarea):focus,
:where(input.con-admin-input, select.con-admin-input, textarea.con-admin-input, .con-input):focus {
  border-color: var(--con-admin-color-primary);
  outline: 0;
  box-shadow: 0 0 0 3px var(--con-admin-color-focus-ring);
}
:where([class^="con-admin-"], [class*=" con-admin-"]) :where(input, select, textarea)[aria-invalid="true"],
:where(.con-admin-field-error, .is-error) :where(input, select, textarea) {
  border-color: var(--con-admin-color-danger);
}
:where([class^="con-admin-"], [class*=" con-admin-"]) :where(input, select, textarea)[aria-invalid="false"].is-valid,
:where(.con-admin-field-success, .is-success) :where(input, select, textarea) {
  border-color: var(--con-admin-color-success);
}
:where([class^="con-admin-"], [class*=" con-admin-"]) :where(input, select, textarea):disabled {
  background: var(--con-admin-color-surface-muted);
  color: var(--con-admin-color-disabled);
  cursor: not-allowed;
  opacity: .78;
}

/* Shared stat-card chip foundation. Feature surfaces may override accent color or compact geometry. */
:where(.con-admin-stat-chip) {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: var(--con-admin-space-4);
  min-width: 0;
  min-height: 48px;
  padding: var(--con-admin-space-4) var(--con-admin-space-5);
  border: 1px solid var(--con-admin-color-border);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-color-surface);
  color: var(--con-admin-color-text);
  box-shadow: none;
}
:where(.con-admin-stat-chip__text) {
  display: grid;
  gap: var(--con-admin-space-1);
  min-width: 0;
}
:where(.con-admin-stat-chip__label) {
  color: var(--con-admin-color-text-soft);
  font-size: var(--con-admin-chip-font-size);
  font-weight: var(--con-admin-weight-strong);
  line-height: var(--con-admin-line-height-tight);
}
:where(.con-admin-stat-chip__value) {
  color: var(--con-admin-color-text-strong);
  font-weight: var(--con-admin-weight-strong);
  line-height: 1.15;
}
:where(.con-admin-stat-chip__text > strong) {
  color: var(--con-admin-color-text-strong);
  font-size: var(--con-admin-font-size-base);
  font-weight: var(--con-admin-weight-strong);
  line-height: 1.15;
}

/* Shared chip foundation. Taiyo's Treasures is the canonical geometry/typography source.
   Match real class tokens that end in -chip / -pill; do not match layout helpers such as
   *-chip-row, *-chip-list, *-chip-wrap, or *-chips. Identity-driven Class / Party / Fav Fam,
   profile stat chips, avatar badges, and other purpose-built identity markers stay isolated. */
:where(
  [class$="-chip"]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class$="__chip"]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class*="-chip "]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class*="__chip "]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class$="-pill"]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  [class$="__pill"]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  [class*="-pill "]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  [class*="__pill "]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  .con-admin-inventory__rarity,
  .con-admin-inventory__new-badge,
  .con-admin-professions__rarity-badge,
  .con-admin-tools__selected-badge,
  .con-admin-hooks-badge,
  .con-admin-staff-directory__coordinator-badge,
  .con-admin-fam-status__guild-badge,
  .con-admin-modern-row__meta
) {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--con-admin-space-2);
  --con-admin-currency-icon-size: var(--con-admin-chip-icon-size);
  min-height: var(--con-admin-chip-height);
  height: auto;
  width: auto;
  max-width: 100%;
  padding: var(--con-admin-chip-padding-block) var(--con-admin-chip-padding-inline);
  border: 1px solid var(--con-admin-chip-info-border);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-chip-info-bg);
  color: var(--con-admin-chip-info-text);
  box-shadow: none;
  font-size: var(--con-admin-chip-font-size);
  font-weight: var(--con-admin-weight-strong);
  line-height: var(--con-admin-line-height-tight);
  letter-spacing: 0;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  white-space: nowrap;
}
:where(
  [class$="-chip"]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class$="__chip"]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class*="-chip "]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class*="__chip "]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class$="-pill"]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  [class$="__pill"]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  [class*="-pill "]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  [class*="__pill "]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  .con-admin-inventory__rarity,
  .con-admin-inventory__new-badge,
  .con-admin-professions__rarity-badge,
  .con-admin-tools__selected-badge,
  .con-admin-hooks-badge,
  .con-admin-staff-directory__coordinator-badge,
  .con-admin-fam-status__guild-badge,
  .con-admin-modern-row__meta
) :where(i, svg, img, .con-admin-asset-icon, .con-admin-currency-amount__icon) {
  width: var(--con-admin-chip-icon-size);
  height: var(--con-admin-chip-icon-size);
  min-width: var(--con-admin-chip-icon-size);
  max-width: var(--con-admin-chip-icon-size);
  min-height: var(--con-admin-chip-icon-size);
  max-height: var(--con-admin-chip-icon-size);
  flex: 0 0 var(--con-admin-chip-icon-size);
  color: currentColor;
  object-fit: contain;
}

/* Canonical rarity chip palette. Geometry/typography stay on the shared Taiyo chip primitive. */
.con-admin-inventory__rarity--common{color:#57606a;background:rgba(87,96,106,.10);border-color:rgba(87,96,106,.24);}
.con-admin-inventory__rarity--uncommon{color:#1a7f37;background:rgba(26,127,55,.10);border-color:rgba(26,127,55,.24);}
.con-admin-inventory__rarity--rare{color:#0969da;background:rgba(9,105,218,.10);border-color:rgba(9,105,218,.24);}
.con-admin-inventory__rarity--epic{color:#8250df;background:rgba(130,80,223,.11);border-color:rgba(130,80,223,.24);}
.con-admin-inventory__rarity--legendary{color:#9a6700;background:rgba(191,135,0,.12);border-color:rgba(191,135,0,.28);}

/* Shared metadata/status chips. Context-specific chips only override semantic color or layout when needed. */
.con-admin-meta-chips {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: var(--con-admin-space-3);
  min-width: 0;
}
.con-admin-meta-chip,
.con-admin-meta-chips .con-admin-meta-chip,
.con-admin-meta-chip.con-admin-status-pill,
.con-admin-meta-chip.con-admin-event-chip,
.con-admin-meta-chip.con-admin-staff-task-chip {
  box-sizing: border-box;
  white-space: nowrap;
  letter-spacing: 0;
  text-transform: none;
}
.con-admin-meta-chips .con-admin-meta-chip > span:not(.con-admin-event-chip__label),
.con-admin-meta-chip .con-admin-meta-chip__value {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
}
.con-admin-meta-chip > :where(span, strong, em, b, small),
:where(
  [class$="-chip"]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class$="__chip"]:not([class*="rpg-class-chip"]):not(.con-admin-party__member-chip):not(.con-admin-2d-fam-plan__favorite-chip):not(.con-admin-2d-fam-profile__favorite-game-chip):not(.con-admin-schedule-guide-event__fav-chip):not(.con-admin-fam-mail__footer-game-chip):not([class*="profile-header"]):not([class*="stat-chip"]):not([class*="priority-badge"]),
  [class$="-pill"]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  [class$="__pill"]:not(.con-admin-tab-skeleton__pill):not([class*="stat-pill"]),
  .con-admin-inventory__rarity,
  .con-admin-professions__rarity-badge,
  .con-admin-modern-row__meta
) > :where(span, strong, em, b, small) {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  text-transform: none;
}
.con-admin-meta-chip .con-admin-event-chip__label,
.con-admin-meta-chip__label {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: 0;
  text-transform: none;
}
.con-admin-meta-chip--status,
.con-admin-meta-chip--available,
.con-admin-meta-chip.con-admin-status-pill--assigned,
.con-admin-meta-chip.con-admin-status-pill--available,
.con-admin-meta-chip.con-admin-status-pill--in_progress {
  border-color: var(--con-admin-chip-info-border);
  background: var(--con-admin-chip-info-bg);
  color: var(--con-admin-chip-info-text);
}
.con-admin-meta-chip.con-admin-status-pill--completed,
.con-admin-meta-chip.con-admin-status-pill--approved {
  border-color: var(--con-admin-chip-success-border);
  background: var(--con-admin-chip-success-bg);
  color: var(--con-admin-color-success-strong);
}
.con-admin-meta-chip--priority.is-urgent,
.con-admin-meta-chip--priority.is-high,
.con-admin-meta-chip--due.is-overdue,
.con-admin-meta-chip--status.con-admin-status-pill--missed,
.con-admin-meta-chip--status.con-admin-status-pill--blocked,
.con-admin-meta-chip.con-admin-status-pill--missed,
.con-admin-meta-chip.con-admin-status-pill--blocked,
.con-admin-meta-chip.con-admin-status-pill--overdue,
.con-admin-meta-chip.con-admin-status-pill--rejected {
  border-color: var(--con-admin-chip-danger-border);
  background: var(--con-admin-chip-danger-bg);
  color: var(--con-admin-color-danger);
}
.con-admin-meta-chip--due.is-today,
.con-admin-meta-chip--due.is-soon,
.con-admin-meta-chip--status.con-admin-status-pill--needs-review,
.con-admin-meta-chip--status.con-admin-status-pill--needs_review,
.con-admin-meta-chip.con-admin-status-pill--needs-review,
.con-admin-meta-chip.con-admin-status-pill--needs_review,
.con-admin-meta-chip.con-admin-status-pill--pending {
  border-color: var(--con-admin-chip-warning-border);
  background: var(--con-admin-chip-warning-bg);
  color: var(--con-admin-color-warning);
}
.con-admin-meta-chip--priority.is-low,
.con-admin-meta-chip--due.is-none {
  border-color: var(--con-admin-chip-neutral-border);
  background: var(--con-admin-chip-neutral-bg);
  color: var(--con-admin-color-text-soft);
}
@media (max-width: 560px) {
  .con-admin-meta-chips { justify-content: flex-start; }
}

/* Shared filter tabs. This is the only implementation used by admin, public, and lightweight surfaces. */
.con-admin-filter-tabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--con-admin-space-4);
  margin: 0 0 var(--con-admin-space-4);
}
.con-admin-filter-tabs--compact {
  gap: var(--con-admin-space-3);
  margin-bottom: var(--con-admin-space-3);
}
.con-admin-filter-tabs .con-admin-filter-tab,
.con-admin-filter-tabs button.con-admin-filter-tab,
.con-admin-filter-tabs a.con-admin-filter-tab {
  all: unset;
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--con-admin-space-3);
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--con-admin-filter-tab-border);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-filter-tab-bg);
  color: var(--con-admin-filter-tab-color);
  font-size: var(--con-admin-font-size-sm);
  font-weight: var(--con-admin-weight-strong);
  line-height: var(--con-admin-line-height-tight);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .035em;
  opacity: 1;
  cursor: pointer;
  box-shadow: none;
  appearance: none;
  -webkit-appearance: none;
  transform: translateY(0);
  transition: background-color var(--con-admin-motion-duration) var(--con-admin-motion-ease), border-color var(--con-admin-motion-duration) var(--con-admin-motion-ease), color var(--con-admin-motion-duration) var(--con-admin-motion-ease), box-shadow var(--con-admin-motion-duration) var(--con-admin-motion-ease), opacity var(--con-admin-motion-duration) var(--con-admin-motion-ease), transform var(--con-admin-motion-duration) var(--con-admin-motion-ease);
}
.con-admin-filter-tabs--compact .con-admin-filter-tab,
.con-admin-filter-tabs--compact button.con-admin-filter-tab,
.con-admin-filter-tabs--compact a.con-admin-filter-tab {
  min-height: 28px;
  padding: var(--con-admin-space-2) var(--con-admin-space-4);
  gap: 5px;
}
.con-admin-filter-tabs .con-admin-filter-tab:hover,
.con-admin-filter-tabs .con-admin-filter-tab:focus,
.con-admin-filter-tabs .con-admin-filter-tab:focus-visible {
  border-color: var(--con-admin-filter-tab-active-border);
  background: var(--con-admin-filter-tab-active-bg);
  color: var(--con-admin-filter-tab-active-color);
  opacity: 1;
  text-decoration: none;
  outline: 0;
  transform: translateY(-1px);
}
.con-admin-filter-tabs .con-admin-filter-tab.is-active,
.con-admin-filter-tabs .con-admin-filter-tab[aria-pressed="true"],
.con-admin-filter-tabs .con-admin-filter-tab[aria-selected="true"] {
  border-color: var(--con-admin-filter-tab-active-border);
  background: var(--con-admin-filter-tab-active-bg);
  color: var(--con-admin-filter-tab-active-color);
  opacity: 1;
  text-decoration: none;
  outline: 0;
  animation: con-admin-filter-tab-fade 180ms var(--con-admin-motion-ease) both;
}
.con-admin-filter-tabs .con-admin-filter-tab:focus-visible {
  outline: var(--con-admin-focus-outline-width) solid var(--con-admin-filter-tab-active-border);
  outline-offset: var(--con-admin-focus-outline-offset);
}
.con-admin-filter-tabs .con-admin-filter-tab :where(i, svg, img) {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  min-width: 14px;
  max-width: 14px;
  min-height: 14px;
  max-height: 14px;
  line-height: 1;
  transition: opacity var(--con-admin-motion-duration) var(--con-admin-motion-ease), transform var(--con-admin-motion-duration) var(--con-admin-motion-ease);
}
.con-admin-filter-tabs .con-admin-filter-tab:hover :where(i, svg, img),
.con-admin-filter-tabs .con-admin-filter-tab.is-active :where(i, svg, img),
.con-admin-filter-tabs .con-admin-filter-tab[aria-pressed="true"] :where(i, svg, img),
.con-admin-filter-tabs .con-admin-filter-tab[aria-selected="true"] :where(i, svg, img) {
  opacity: .95;
  transform: translateY(-1px);
}
.con-admin-filter-tabs .con-admin-filter-tab img { object-fit: contain; }
@media (prefers-reduced-motion: reduce) {
  .con-admin-filter-tabs .con-admin-filter-tab,
  .con-admin-filter-tabs .con-admin-filter-tab :where(i, svg, img) { transition: none; }
  .con-admin-filter-tabs .con-admin-filter-tab.is-active,
  .con-admin-filter-tabs .con-admin-filter-tab[aria-pressed="true"],
  .con-admin-filter-tabs .con-admin-filter-tab[aria-selected="true"] { animation: none; }
}
@media (max-width: 560px) {
  .con-admin-filter-tabs { align-items: stretch; }
  .con-admin-filter-tabs .con-admin-filter-tab { flex: 1 1 auto; }
}

/* Shared modal and popover primitives consumed by popup/dialog implementations. */
:where(.con-admin-modal-overlay, .con-admin-confirm-modal, .con-admin-responsive-popup) {
  z-index: var(--con-admin-layer-modal);
}
:where(.con-admin-popover, .con-admin-dropdown, .con-admin-search-results) {
  z-index: var(--con-admin-layer-popover);
  border: 1px solid var(--con-admin-color-border-translucent-soft);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-color-surface);
  box-shadow: var(--con-admin-shadow-popover);
}
:where(.con-admin-modal-backdrop, .con-admin-confirm-modal__backdrop, .con-admin-responsive-popup__backdrop) {
  background: var(--con-admin-color-overlay);
  backdrop-filter: blur(var(--con-admin-backdrop-blur));
  -webkit-backdrop-filter: blur(var(--con-admin-backdrop-blur));
}
:where(.con-admin-modal-dialog, .con-admin-confirm-modal__dialog, .con-admin-responsive-popup__dialog) {
  border: 1px solid var(--con-admin-color-border-translucent);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-color-surface);
  color: var(--con-admin-color-text);
  box-shadow: var(--con-admin-shadow-modal);
}

/* Shared interaction treatment for plugin-owned links and clickable controls. */
:where([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"]) :where(a, button, summary, [role="button"], [role="link"], [role="tab"], [tabindex]:not([tabindex="-1"])) {
  -webkit-tap-highlight-color: transparent;
}
:where([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"]) :where(a, button, summary, [role="button"], [role="link"], [role="tab"], [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: var(--con-admin-focus-outline-width) solid var(--con-admin-focus-outline-color);
  outline-offset: var(--con-admin-focus-outline-offset);
}

/*
 * Keyboard-focus guardrail. The inert ID branch intentionally raises specificity
 * without !important so legacy component rules that suppress outlines cannot hide
 * the shared focus-visible ring. It does not affect hover/active styling.
 */
:is(#con-admin-focus-ring-scope, html) :is(a[href], button, summary, [role="button"], [role="link"], [role="tab"], [tabindex]:not([tabindex="-1"])):is([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"]):not(:disabled):not([aria-disabled="true"]):not(.is-disabled):not(.disabled):focus-visible,
:is(#con-admin-focus-ring-scope, html) :is([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"]) :is(a[href], button, summary, [role="button"], [role="link"], [role="tab"], [tabindex]:not([tabindex="-1"])):not(:disabled):not([aria-disabled="true"]):not(.is-disabled):not(.disabled):focus-visible {
  outline: var(--con-admin-focus-outline-width) solid var(--con-admin-focus-outline-color);
  outline-offset: var(--con-admin-focus-outline-offset);
}

/* One scrollbar treatment for the document and all plugin scroll regions. */
html,
body,
:where([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"]) {
  scrollbar-width: thin;
  scrollbar-color: var(--con-admin-scrollbar-thumb) var(--con-admin-scrollbar-track);
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
:where([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"])::-webkit-scrollbar {
  width: var(--con-admin-scrollbar-size);
  height: var(--con-admin-scrollbar-size);
}
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
:where([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"])::-webkit-scrollbar-track {
  background: var(--con-admin-scrollbar-track);
}
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
:where([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"])::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: var(--con-admin-radius-pill);
  background: var(--con-admin-scrollbar-thumb);
  background-clip: padding-box;
}
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
:where([class^="con-admin-"], [class*=" con-admin-"], [class^="con-staff-"], [class*=" con-staff-"])::-webkit-scrollbar-thumb:hover {
  background: var(--con-admin-scrollbar-thumb-hover);
  background-clip: padding-box;
}

@media (prefers-reduced-motion:reduce) {
  :where([class^="con-admin-"], [class*=" con-admin-"]) *,
  :where([class^="con-admin-"], [class*=" con-admin-"]) *::before,
  :where([class^="con-admin-"], [class*=" con-admin-"]) *::after {
    scroll-behavior: auto;
  }
}

/* 7.9.70 canonical front-end primitives. */
.con-admin-currency-amount {
  display:inline-flex;
  align-items:center;
  gap:var(--con-admin-space-2);
  min-width:0;
  color:inherit;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.con-admin-currency-amount__icon,
.con-admin-currency-amount__icon img,
.con-admin-currency-amount__icon svg {display:inline-block;width:var(--con-admin-currency-icon-size,14px);height:var(--con-admin-currency-icon-size,14px);flex:0 0 var(--con-admin-currency-icon-size,14px);object-fit:contain;}
@supports ((-webkit-mask-image: url("")) or (mask-image: url(""))) {
  .con-admin-currency-amount__icon {
    background: currentColor;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
  }
  .con-admin-currency-amount--coins .con-admin-currency-amount__icon {
    -webkit-mask-image: url("../images/Icon-Coin.svg");
    mask-image: url("../images/Icon-Coin.svg");
  }
  .con-admin-currency-amount--xp .con-admin-currency-amount__icon {
    -webkit-mask-image: url("../images/Icon-XP.svg");
    mask-image: url("../images/Icon-XP.svg");
  }
  .con-admin-currency-amount__icon > :where(img, svg, .con-admin-asset-icon, .con-admin-currency-amount__icon-fallback) {
    visibility: hidden;
  }
}
.con-admin-currency-amount__value{min-width:0;}
.con-admin-currency-context{color:var(--con-admin-color-text-muted);font-size:var(--con-admin-font-size-xs);font-weight:var(--con-admin-weight-medium);line-height:var(--con-admin-line-height-tight);}
.con-btn__cost{display:inline-flex;align-items:center;margin-left:var(--con-admin-space-2);}
.con-btn__cost .con-admin-currency-amount{gap:var(--con-admin-space-1);}

/* One loading treatment for asynchronous plugin actions. */
.con-admin-loading-indicator{display:inline-flex;align-items:center;justify-content:center;gap:var(--con-admin-space-3);min-width:0;color:var(--con-admin-color-text-muted);font-size:var(--con-admin-font-size-sm);line-height:var(--con-admin-line-height-normal);}
.con-admin-loading-indicator__spinner{display:inline-block;width:var(--con-admin-loading-spinner-size);height:var(--con-admin-loading-spinner-size);flex:0 0 var(--con-admin-loading-spinner-size);border:2px solid currentColor;border-right-color:transparent;border-radius:var(--con-admin-radius-circle);opacity:.72;animation:conAdminLoadingSpin .7s linear infinite;}
.con-admin-loading-indicator[hidden]{display:none;}
.con-admin-loading-control{position:relative;}
.con-admin-loading-control.is-loading,.con-admin-loading-control[aria-busy="true"]{pointer-events:none;}
.con-admin-loading-control.is-loading::after,.con-admin-loading-control[aria-busy="true"]::after{content:"";position:absolute;top:50%;right:var(--con-admin-space-4);width:var(--con-admin-loading-spinner-size);height:var(--con-admin-loading-spinner-size);margin-top:calc(var(--con-admin-loading-spinner-size) / -2);border:2px solid currentColor;border-right-color:transparent;border-radius:var(--con-admin-radius-circle);opacity:.72;animation:conAdminLoadingSpin .7s linear infinite;}

/* One simple tooltip surface; rich game cards may extend this base. */
.con-admin-tooltip,.con-admin-game-info-tooltip{position:fixed;z-index:var(--con-admin-layer-tooltip);max-width:min(320px,calc(100vw - 24px));padding:var(--con-admin-space-3) var(--con-admin-space-4);border:1px solid var(--con-admin-color-border-translucent);border-radius:var(--con-admin-radius);background:var(--con-admin-color-text);color:var(--con-admin-color-surface);box-shadow:var(--con-admin-shadow-popover);font-size:var(--con-admin-font-size-xs);font-weight:var(--con-admin-weight-medium);line-height:1.35;pointer-events:none;opacity:0;transform:translateY(2px);transition:opacity var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease),transform var(--con-admin-motion-duration-fast) var(--con-admin-motion-ease);}
.con-admin-tooltip.is-visible,.con-admin-game-info-tooltip.is-visible{opacity:1;transform:translateY(0);}
.con-admin-tooltip[hidden],.con-admin-game-info-tooltip[hidden]{display:none;}

/* Full shared modal composition. Feature styles should own content, not chrome. */
:where(.con-admin-modal-shell,.con-admin-confirm-modal,.con-admin-responsive-popup){position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--con-admin-space-7);z-index:var(--con-admin-layer-modal);}
:where(.con-admin-modal-shell,.con-admin-confirm-modal,.con-admin-responsive-popup)[hidden]{display:none;}
.con-admin-modal-shell[aria-hidden="true"]:not([hidden]){visibility:hidden;opacity:0;pointer-events:none}.con-admin-modal-shell[aria-hidden="false"]:not([hidden]),.con-admin-modal-shell.is-visible{visibility:visible;opacity:1;pointer-events:auto}
:where(.con-admin-modal-shell__backdrop,.con-admin-confirm-modal__backdrop,.con-admin-responsive-popup__backdrop){position:absolute;inset:0;border:0;border-radius:0;background:var(--con-admin-color-overlay);backdrop-filter:blur(var(--con-admin-backdrop-blur));-webkit-backdrop-filter:blur(var(--con-admin-backdrop-blur));}
:where(.con-admin-modal-shell__dialog,.con-admin-confirm-modal__dialog,.con-admin-responsive-popup__dialog){position:relative;z-index:1;display:flex;flex-direction:column;width:min(560px,100%);max-height:min(88vh,760px);overflow:hidden;border:1px solid var(--con-admin-color-border-translucent);border-radius:var(--con-admin-radius);background:var(--con-admin-color-surface);color:var(--con-admin-color-text);box-shadow:var(--con-admin-shadow-modal);animation:conAdminModalOpen var(--con-admin-motion-duration-normal) var(--con-admin-motion-ease) both;}
:where(.con-admin-modal-shell__header,.con-admin-confirm-modal__head,.con-admin-responsive-popup__head){display:flex;align-items:center;justify-content:space-between;gap:var(--con-admin-space-5);padding:var(--con-admin-space-6) var(--con-admin-space-7);border-bottom:1px solid var(--con-admin-color-border);}
:where(.con-admin-modal-shell__body,.con-admin-confirm-modal__body,.con-admin-responsive-popup__body){min-height:0;overflow:auto;padding:var(--con-admin-space-7);}
:where(.con-admin-modal-shell__actions,.con-admin-confirm-modal__actions,.con-admin-responsive-popup__actions){display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--con-admin-space-3);margin-top:var(--con-admin-space-6);}
:where(.con-admin-modal-close,.con-admin-confirm-modal__close,.con-admin-responsive-popup__close){display:inline-flex;align-items:center;justify-content:center;width:var(--con-admin-control-height-compact);height:var(--con-admin-control-height-compact);min-width:var(--con-admin-control-height-compact);padding:0;border:1px solid var(--con-admin-color-border);border-radius:var(--con-admin-radius);background:var(--con-admin-color-surface);color:var(--con-admin-color-text-muted);cursor:pointer;}
:where(.con-admin-modal-close,.con-admin-confirm-modal__close,.con-admin-responsive-popup__close):hover{background:var(--con-admin-color-surface-muted);color:var(--con-admin-color-text);}

/* Canonical compact popup action: same geometry as Start Guild Grudge Match. */
.con-admin-modal-action-button,.con-admin-confirm-modal__actions .con-admin-plugin-button,.con-admin-modal-shell__actions .con-admin-plugin-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--con-admin-space-3);min-height:35px;padding:var(--con-admin-space-3) var(--con-admin-space-6);border-radius:var(--con-admin-radius);font-size:var(--con-admin-font-size-sm);font-weight:var(--con-admin-weight-strong);line-height:1.2;text-transform:none;}

/* Shared purchasable-consumable price. */
.con-admin-game-consumable-price{display:inline-flex;align-items:center;gap:var(--con-admin-space-2);min-width:0;}
.con-admin-game-consumable-price__label{white-space:nowrap;}

@media (max-width:640px){
  :where(.con-admin-modal-shell,.con-admin-confirm-modal,.con-admin-responsive-popup){align-items:flex-end;padding:var(--con-admin-space-4);}
  :where(.con-admin-modal-shell__dialog,.con-admin-confirm-modal__dialog,.con-admin-responsive-popup__dialog){width:100%;max-height:calc(100dvh - var(--con-admin-space-8));}
  :where(.con-admin-modal-shell__header,.con-admin-confirm-modal__head,.con-admin-responsive-popup__head),:where(.con-admin-modal-shell__body,.con-admin-confirm-modal__body,.con-admin-responsive-popup__body){padding:var(--con-admin-space-6);}
}

/* Shared modal shell moved from con-admin-ui.css in 7.9.70. */
html.con-admin-shared-modal-is-open,
body.con-admin-shared-modal-is-open {
  overflow: hidden;
}
.con-admin-shared-modal[hidden] {
  display: none;
}
.con-admin-shared-modal {
  position: fixed;
  inset: 0;
  z-index: var(--con-admin-layer-modal, 2147483620);
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  margin: 0;
  padding: var(--con-admin-space-10);
  overflow: hidden;
  color: var(--con-text, var(--con-admin-color-text));
  isolation: isolate;
}
.con-admin-shared-modal,
.con-admin-shared-modal * {
  box-sizing: border-box;
}
.con-admin-shared-modal__backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background:var(--con-admin-color-overlay);
  backdrop-filter: blur(var(--con-admin-backdrop-blur));
  -webkit-backdrop-filter: blur(var(--con-admin-backdrop-blur));
  cursor: default;
  appearance: none;
  -webkit-appearance: none;
}
.con-admin-shared-modal__panel {
  --con-admin-shared-modal-width: 760px;
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(var(--con-admin-shared-modal-width), calc(100vw - 40px));
  max-width: var(--con-admin-shared-modal-width);
  min-width: 0;
  
  max-height: calc(100dvh - 40px);
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--con-border, var(--con-admin-color-border));
  border-radius: var(--con-admin-field-radius, var(--con-admin-radius));
  background: var(--con-surface, var(--con-admin-color-surface));
  color: var(--con-text, var(--con-admin-color-text));
  box-shadow:var(--con-admin-shadow-modal);
  overscroll-behavior: contain;
}
.con-admin-shared-modal__panel--wide {
  --con-admin-shared-modal-width: 1050px;
}
.con-admin-shared-modal__header {
  position: relative;
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--con-admin-space-6);
  min-width: 0;
  padding: var(--con-admin-space-6) calc(var(--con-admin-control-height-compact) + var(--con-admin-space-10)) var(--con-admin-space-6) var(--con-admin-space-7);
  border-bottom: 1px solid var(--con-border, var(--con-admin-color-border));
  background: var(--con-admin-color-surface);
}
.con-admin-shared-modal__header--feature {
  border-top: 4px solid var(--con-admin-color-brand);
  background: linear-gradient(180deg, var(--con-admin-color-surface) 0%, var(--con-admin-color-surface-muted) 100%);
}
.con-admin-shared-modal__heading {
  display: grid;
  min-width: 0;
  gap: 3px;
}
.con-admin-shared-modal__heading h2,
.con-admin-shared-modal__heading h3,
.con-admin-shared-modal__heading p {
  margin: 0;
}
.con-admin-shared-modal__heading h2,
.con-admin-shared-modal__heading h3 {
  color: var(--con-admin-color-brand);
  font-size: var(--con-admin-font-size-heading);
  font-weight: var(--con-admin-weight-strong);
  line-height: 1.2;
}
.con-admin-shared-modal__heading p {
  max-width: 760px;
  color: var(--con-text-soft, var(--con-admin-color-text-muted));
  font-size: var(--con-admin-font-size-md);
  line-height: 1.4;
}
.con-admin-shared-modal__close {
  appearance: none;
  -webkit-appearance: none;
  position: absolute;
  top: var(--con-admin-space-5);
  right: var(--con-admin-space-5);
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--con-admin-control-height-compact);
  min-width: var(--con-admin-control-height-compact);
  height: var(--con-admin-control-height-compact);
  margin: 0;
  padding: 0;
  border: 1px solid var(--con-admin-color-border);
  border-radius: var(--con-admin-radius);
  background: var(--con-admin-color-surface);
  color: var(--con-admin-color-text-muted);
  box-shadow: none;
  font: inherit;
  font-size: var(--con-admin-font-size-xl);
  font-weight: var(--con-admin-weight-regular);
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
}
.con-admin-shared-modal__toolbar {
  display: flex;
  flex: 0 0 auto;
  align-items: end;
  justify-content: flex-end;
  gap: var(--con-admin-space-5);
  min-width: 0;
  padding: var(--con-admin-space-5) var(--con-admin-space-8);
  border-bottom: 1px solid var(--con-border, var(--con-admin-color-border));
  background: var(--con-admin-color-surface-muted);
}
.con-admin-shared-modal__body {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: var(--con-admin-space-7);
  background: var(--con-admin-color-surface-muted);
}
.con-admin-shared-modal__body--full-bleed { padding:0; }
.con-admin-shared-modal__body--padded { padding: var(--con-admin-space-7); }
@media  (max-width:700px) {.con-admin-shared-modal {
    align-items: end;
    padding: var(--con-admin-space-4) 0 0;
  }.con-admin-shared-modal__panel,
  .con-admin-shared-modal__panel--wide {
    width: 100vw;
    max-width: 100vw;
    max-height: calc(100dvh - 8px);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: var(--con-admin-radius) var(--con-admin-radius) 0 0;
  }.con-admin-shared-modal__header {
    align-items: flex-start;
    padding: var(--con-admin-space-6);
  }.con-admin-shared-modal__heading h2,
  .con-admin-shared-modal__heading h3 {
    font-size: var(--con-admin-font-size-xl);
  }.con-admin-shared-modal__toolbar {
    align-items: stretch;
    flex-direction: column;
    padding: 9px var(--con-admin-space-5);
  }}
/* Shared Schedule host/guest-picker component consolidated in 7.9.70. */
@media (max-width:782px){.con-admin-2d-fam-plan__item-meta .con-admin-schedule-hosts-list{justify-content:flex-start;}.con-admin-schedule-guest-picker{max-width:none;}}
.con-admin-2d-fam-plan__item-meta .con-admin-schedule-hosts-list{justify-content:flex-end;}.con-admin-schedule-card__hosts .con-admin-schedule-hosts-list{margin-top:3px;}.con-admin-schedule-guest-picker{display:grid;gap:var(--con-admin-space-3);max-width:560px;min-width:0;}.con-admin-schedule-guest-picker--compact{max-width:none;}.con-admin-schedule-guest-picker__chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding-right:var(--con-admin-space-2);}.con-admin-schedule-guest-picker__chip>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.con-admin-schedule-guest-picker__remove{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;min-width:20px;border:0;background:transparent;color:var(--con-admin-color-text-soft);box-shadow:none;}.con-admin-schedule-guest-picker__remove:hover,.con-admin-schedule-guest-picker__remove:focus-visible{color:var(--con-admin-color-brand);background:rgba(0,28,63,.08);outline:0;}.con-admin-schedule-guest-picker__results{z-index:40;}.con-admin-schedule-guest-picker__search{position:relative;min-width:0;}.con-admin-schedule-guest-picker__selected{display:flex;flex-wrap:wrap;gap:var(--con-admin-space-3);align-items:center;min-width:0;}.con-admin-schedule-host-link{display:inline-flex;align-items:center;min-height:24px;max-width:100%;padding:3px var(--con-admin-space-4);border:1px solid rgba(0,28,63,.14);border-radius:var(--con-admin-radius);background:rgba(0,28,63,.04);color:var(--con-admin-color-brand);text-decoration:none;font-size:.85em;line-height:1.25;}.con-admin-schedule-host-link:hover,.con-admin-schedule-host-link:focus-visible{border-color:rgba(0,28,63,.28);background:rgba(0,28,63,.08);color:var(--con-admin-color-brand);text-decoration:none;outline:0;}.con-admin-schedule-hosts-list{display:inline-flex;flex-wrap:wrap;align-items:center;gap:var(--con-admin-space-3);min-width:0;vertical-align:middle;}.con-admin-schedule-hosts-list__text{min-width:0;}

/* Cross-surface exact shared rules consolidated in 7.9.70. */
@media (max-width:540px){.con-admin-2d-fam.con-admin-schedule-shell .con-admin-2d-fam-table.con-admin-2d-fam-table--headerless:not(.con-admin-2d-fam-table--pending):not(.con-admin-2d-fam-leaderboard)>.con-admin-2d-fam-row--approved .con-admin-rpg-class-chip--row{max-width:82px;}}
@media (max-width:640px){.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only .con-admin-inventory__visual{width:60px;max-width:60px;height:60px;max-height:60px;flex-basis:60px;}}
@media (max-width:767px){.con-admin-profile-header__action-stack,.con-admin-profile-header__action-stack .con-admin-profile-header__badges,.con-admin-profile-header__season-status{grid-column:1 / -1;width:100%;max-width:none;justify-items:stretch;justify-content:stretch;text-align:left;}}
@media (max-width:900px){.con-admin-2d-fam.con-admin-schedule-shell .con-admin-2d-fam-table.con-admin-2d-fam-table--headerless:not(.con-admin-2d-fam-table--pending):not(.con-admin-2d-fam-leaderboard)>.con-admin-2d-fam-row--approved .con-admin-2d-fam__priority-badge{flex:0 1 70px;width:auto;min-width:0;max-width:70px;padding-left:5px;padding-right:5px;justify-content:center;}.con-admin-2d-fam.con-admin-schedule-shell .con-admin-2d-fam-table.con-admin-2d-fam-table--headerless:not(.con-admin-2d-fam-table--pending):not(.con-admin-2d-fam-leaderboard)>.con-admin-2d-fam-row--approved .con-admin-rpg-class-chip--row{flex:0 1 92px;width:auto;min-width:0;max-width:92px;overflow:hidden;}}
@media (prefers-reduced-motion:reduce){.con-admin-ui-enter{animation:none;transform:none;}.con-admin-ui-removing{transition:none;}}
.con-admin-2d-fam-profile--mini .con-admin-inventory-display__profile-title,.con-admin-2d-fam-profile--mini .con-admin-2d-fam-profile__collection-title{margin:0 0 var(--con-admin-space-3);color:var(--con-admin-text-soft,var(--con-admin-color-text-slate-muted));font-size:var(--con-admin-font-size-sm);font-weight:var(--con-admin-weight-strong);line-height:1.2;}.con-admin-2d-fam-profile__grid>.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only,.con-admin-2d-fam-profile__grid--with-convention>.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only,.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only.con-admin-inventory-display--multi{grid-column:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--con-admin-space-4);align-content:start;justify-self:stretch;width:100%;max-width:100%;min-width:0;padding:var(--con-admin-space-2);background:transparent;border:0;box-shadow:none;box-sizing:border-box;}.con-admin-2d-fam-profile__section--display-item .con-admin-inventory-display__copy,.con-admin-2d-fam-profile__section--display-item .con-admin-inventory-display__effect{display:none;}.con-admin-2d-fam-profile__section--display-item .con-admin-inventory-display__item{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;min-width:0;max-width:100%;margin:0;padding:0;gap:0;}.con-admin-2d-fam-profile__section--display-item .con-admin-inventory-display__profile-items{box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--con-admin-space-4);width:100%;max-width:100%;min-width:0;}.con-admin-2d-fam-profile__section--display-item .con-admin-inventory-display__profile-title{display:block;width:100%;min-width:0;margin:0;}.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only .con-admin-inventory__visual{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:56px;max-width:56px;height:56px;max-height:56px;min-width:0;min-height:0;flex:0 0 56px;overflow:hidden;}.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only .con-admin-inventory__visual img,.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only .con-admin-inventory__visual-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;}.con-admin-discord-connect__status-item .con-admin-discord-connect__status-value.con-admin-tools__field{display:flex;align-items:center;width:100%;max-width:none;min-height:40px;height:auto;margin:0;padding:var(--con-admin-space-4) var(--con-admin-space-6);box-sizing:border-box;border:1px solid var(--con-admin-border-strong,var(--con-admin-color-border-slate));border-radius:0;background:var(--con-admin-color-surface);color:inherit;box-shadow:none;font-size:var(--con-admin-font-size-base);font-weight:var(--con-admin-weight-strong);line-height:1.35;text-align:left;overflow-wrap:anywhere;}.con-admin-fam-status-composer textarea,.con-admin-fam-status-composer select,.con-admin-fam-status-composer button,.con-admin-listing-filters input,.con-admin-listing-filters select,.con-admin-listing-filters button,.con-admin-schedule-filter__select,.con-admin-schedule-filter__input,.con-admin-schedule-card__title-toggle{position:relative;z-index:auto;}.con-admin-fam-status-composer,.con-admin-fam-status-composer__main,.con-admin-fam-status-composer__actions,.con-admin-listing-filters,.con-admin-schedule-filters,.con-admin-tcg-filters,.con-admin-2d-fam__filters,.con-admin-event-tickets__filters,.con-admin-lfg__filters,.con-admin-game-portal__filters,.con-admin-inventory__filters{position:relative;z-index:0;}.con-admin-fam-status-mention-menu,.con-admin-fam-status-mention-menu--comment,.con-admin-fam-status-mention-menu.con-admin-search-results,.con-admin-fam-status-game-menu.con-admin-search-results,.con-admin-fam-status-mention-menu--comment.con-admin-search-results,.con-admin-2d-fam__search-results[data-role="fam-search-results"],.con-admin-search-results,.con-admin-lfg-game-results.con-admin-search-results,.con-admin-game-lookup__results.con-admin-search-results,.con-admin-guild-battle__challenge-results.con-admin-search-results,.con-admin-2d-fam-plan__member-results.con-admin-search-results{z-index:8;}.con-admin-fishing__modifiers>.con-admin-game-subtitle,.con-admin-guild-battle__modifiers>.con-admin-game-subtitle{margin:var(--con-admin-space-1) 0 var(--con-admin-space-4);font-size:var(--con-admin-font-size-sm);line-height:1.3;color:var(--con-admin-color-text-soft);}.con-admin-game-lookup__clear .fa-solid,.con-admin-lfg-game-clear .fa-solid{font-size:var(--con-admin-font-size-sm);line-height:1;}.con-admin-game-lookup__clear:hover,.con-admin-game-lookup__clear:focus-visible,.con-admin-lfg-game-clear:hover,.con-admin-lfg-game-clear:focus-visible{background:rgba(15,23,42,.06);color:var(--con-admin-color-text-ink);}.con-admin-profile-header__action-stack{display:grid;justify-items:end;align-content:start;gap:var(--con-admin-space-3);min-width:0;}.con-admin-profile-header__action-stack .con-admin-profile-header__badges{max-width:none;}.con-admin-profile-header__season-dates{color:rgba(255,255,255,.66);}.con-admin-profile-header__season-label,.con-admin-profile-header__season-name{font-weight:var(--con-admin-weight-strong);color:rgba(255,255,255,.9);}.con-admin-profile-header__season-status{display:inline-flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--con-admin-space-2);max-width:420px;color:rgba(255,255,255,.78);font-size:var(--con-admin-font-size-xs);line-height:1.3;font-weight:var(--con-admin-weight-medium);text-align:right;}.con-admin-schedule-guest-field{min-width:0;}.con-admin-schedule-guide-event__detail{display:none;}.con-admin-ui-enter{animation:conAdminUiEnter .28s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--con-admin-ui-enter-delay,0ms);transform-origin:center top;will-change:opacity,transform;}.con-admin-ui-removing{overflow:hidden;transition:opacity var(--con-admin-motion-duration-slow) ease,transform var(--con-admin-motion-duration-slow) ease;will-change:opacity,transform;}.con-admin-ui-removing.is-removing{opacity:0;transform:translateY(-3px) scale(.985);pointer-events:none;}.con-tournament-event-card,.con-tournament .con-tournament-event-card{display:flex;flex-direction:column;}.con-tournament-event-card__action,.con-tournament .con-tournament-event-card__action{margin-top:auto;}.con-tournament-event-card__game .con-admin-game-chip,.con-tournament-event-card__game-chip,.con-tournament .con-tournament-event-card__game .con-admin-game-chip,.con-tournament .con-tournament-event-card__game-chip,.con-tournament .con-tournament-game-chip,.con-tournament .con-tournament-chip.con-tournament-game-chip{border:0;background:transparent;box-shadow:none;color:inherit;font:inherit;}.con-tournament-event-card__game,.con-tournament .con-tournament-event-card__game{display:flex;align-items:center;gap:var(--con-admin-space-3);margin-top:var(--con-admin-space-2);min-width:0;color:var(--con-admin-color-text-soft);font-size:var(--con-admin-font-size-sm);line-height:1.35;}.con-tournament-event-card__game-label,.con-tournament .con-tournament-event-card__game-label{display:none;}.con-tournament-event-card__game-title,.con-tournament .con-tournament-event-card__game-title{display:block;min-width:0;max-width:100%;overflow:hidden;overflow-wrap:anywhere;text-overflow:ellipsis;white-space:normal;color:var(--con-admin-color-text-soft);font-size:var(--con-admin-font-size-sm);font-weight:var(--con-admin-weight-medium);line-height:1.35;}.con-tournament-filterbar.con-admin-schedule-filters{display:grid;grid-template-columns:minmax(260px,420px);gap:var(--con-admin-space-6);align-items:end;margin:0 0 var(--con-admin-space-5);padding:0;background:transparent;border:0;box-shadow:none;}

/* Cascade-invariant shared UI rules consolidated in 7.9.70. */
@media (max-width:600px){.con-admin-party-shortcode,.con-admin-party-shortcode__row{padding-top:var(--con-admin-space-1);}.con-admin-party-shortcode__avatar .con-admin-user-avatar-shell,.con-admin-party-shortcode__avatar .con-admin-user-avatar,.con-admin-party-shortcode__avatar>img,.con-admin-party-shortcode__avatar--empty{width:46px;height:46px;min-width:46px;min-height:46px;max-width:46px;max-height:46px;}.con-admin-party-shortcode__row{gap:5px;}}
@media (max-width:640px){.con-admin-2d-fam-plan__filters.con-admin-tcg-filters,.con-admin-2d-fam-plan.con-admin-schedule-shell .con-admin-2d-fam-plan__filters.con-admin-tcg-filters{grid-template-columns:1fr;gap:var(--con-admin-space-4);padding:0;}.con-admin-2d-fam-profile--mini .con-admin-2d-fam-profile__meta,.con-admin-2d-fam-profile--mini .con-admin-2d-fam-profile__name,.con-admin-2d-fam-profile--mini .con-admin-2d-fam-profile__name .con-admin-schedule-card__title-text{justify-items:center;text-align:center;}}
@media (max-width:767px){.con-admin-game-modifiers:not(.con-admin-game-modifier-selector){align-items:flex-start;}}
@media (max-width:782px){.con-admin-2d-fam-search-table.con-admin-2d-fam-table--headerless .con-admin-schedule-card,.con-admin-2d-fam-search-table.con-admin-2d-fam-table--headerless .con-admin-schedule-row{grid-template-columns:40px minmax(0,1fr) max-content;grid-template-areas:"avatar name action";gap:var(--con-admin-space-4);min-height:46px;padding:var(--con-admin-space-3) var(--con-admin-space-4);}.con-admin-discord-connect__status-grid,.con-admin-2d-fam-plan__filters.con-admin-schedule-filters,.con-tournament-filterbar.con-admin-schedule-filters{grid-template-columns:1fr;}}
@media (max-width:900px){.con-admin-2d-fam-plan__filters.con-admin-tcg-filters,.con-admin-2d-fam-plan.con-admin-schedule-shell .con-admin-2d-fam-plan__filters.con-admin-tcg-filters{grid-template-columns:1fr 1fr;}}
.con-admin-2d-fam-plan__filter-actions.con-admin-schedule-filter--actions{display:flex;align-items:flex-end;justify-content:flex-start;min-width:0;margin:0;padding:0;}.con-admin-2d-fam-plan__filters .con-admin-schedule-filter__input.con-admin-tools__field,.con-admin-2d-fam-plan__filters .con-admin-schedule-filter__select.con-admin-tools__field,.con-tournament-filterbar .con-admin-schedule-filter__select.con-admin-tools__field{width:100%;max-width:none;min-width:0;height:40px;min-height:40px;margin:0;padding:0 var(--con-admin-space-5);box-sizing:border-box;border:1px solid var(--con-admin-border-strong,var(--con-admin-color-border-slate));border-radius:0;background:var(--con-admin-color-surface);color:inherit;box-shadow:none;font-size:var(--con-admin-font-size-md);font-weight:var(--con-admin-weight-regular);line-height:1.3;text-align:left;}.con-admin-2d-fam-plan__filters .con-admin-schedule-filter__input.con-admin-tools__field:focus,.con-admin-2d-fam-plan__filters .con-admin-schedule-filter__select.con-admin-tools__field:focus,.con-tournament-filterbar .con-admin-schedule-filter__select.con-admin-tools__field:focus{border-color:rgba(29,78,216,.45);box-shadow:0 0 0 3px rgba(29,78,216,.12);outline:0;}.con-admin-2d-fam-plan__filters.con-admin-schedule-filters{display:grid;grid-template-columns:minmax(150px,1.05fr) minmax(220px,1.55fr) minmax(120px,.75fr) minmax(150px,1fr) auto;gap:var(--con-admin-space-6);align-items:end;margin:var(--con-admin-space-5) 0;padding:0;background:transparent;border:0;box-shadow:none;}.con-admin-2d-fam-plan__filters.con-admin-tcg-filters,.con-admin-2d-fam-plan.con-admin-schedule-shell .con-admin-2d-fam-plan__filters.con-admin-tcg-filters{display:grid;grid-template-columns:minmax(180px,1.25fr) minmax(170px,1.25fr) minmax(140px,.85fr) minmax(160px,1fr) auto;gap:var(--con-admin-space-3);align-items:end;width:100%;margin:0 0 var(--con-admin-space-7);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;box-sizing:border-box;}.con-admin-2d-fam-profile__section--display-item.con-admin-inventory-display--image-only .con-admin-inventory__visual{aspect-ratio:1/1;}.con-admin-2d-fam-row--approved .con-admin-2d-fam__name-line .con-admin-schedule-card__title-text{box-sizing:border-box;padding-left:var(--con-admin-space-5);}.con-admin-2d-fam-search-table .con-admin-2d-fam-table__guild-icon-cell,.con-admin-2d-fam-search-table__guild-col,.con-admin-2d-fam-search-table .con-admin-schedule-card__toggle-icon{display:none;}.con-admin-2d-fam-search-table__name-text .con-admin-schedule-card__title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.con-admin-actions-inline .con-admin-role-row-status:not(:empty){display:block;flex:0 0 100%;width:100%;margin:3px 0 0;line-height:1.35;}.con-admin-actions-inline .con-admin-save-status-below-button,.con-admin-actions .con-admin-save-status-below-button,.con-admin-tools__actions .con-admin-save-status-below-button,.con-admin-admin-actions .con-admin-save-status-below-button{flex-basis:100%;}.con-admin-class-guide[data-class-change-locked="1"] .con-admin-class-guide__card.is-dropdown-locked{cursor:not-allowed;}.con-admin-class-guide[data-class-change-locked="1"] .con-admin-class-guide__card.is-dropdown-locked:hover,.con-admin-class-guide[data-class-change-locked="1"] .con-admin-class-guide__card.is-dropdown-locked:focus-visible,button.con-admin-class-guide__card:disabled.is-dropdown-locked:hover,button.con-admin-class-guide__card:disabled.is-dropdown-locked:focus-visible{border-color:var(--con-admin-class-color,#655995);box-shadow:0 0 0 2px color-mix(in srgb,var(--con-admin-class-color,#655995) 28%,transparent);transform:none;}.con-admin-class-guide[data-class-change-locked="1"][data-class-early-change-enabled="1"] .con-admin-class-guide__card.is-locked{cursor:pointer;}.con-admin-class-guide__meta.is-locked{color:#92400e;background:rgba(251,191,36,.14);border:1px solid rgba(217,119,6,.20);border-radius:var(--con-admin-radius);padding:var(--con-admin-space-3) var(--con-admin-space-4);}.con-admin-daily-task-more-note{color:var(--con-admin-text-soft,var(--con-admin-color-text-soft));font-size:var(--con-admin-font-size-sm);line-height:1.35;padding:var(--con-admin-space-1) 0 var(--con-admin-space-2);}.con-admin-discord-connect__status-item .con-admin-user-settings-field__label,.con-admin-2d-fam-plan__filters .con-admin-schedule-filter>span,.con-tournament-filterbar .con-admin-schedule-filter>span{display:block;margin:0;padding:0;color:var(--con-admin-color-icon);font-size:var(--con-admin-font-size-md);font-weight:var(--con-admin-weight-strong);line-height:1.25;letter-spacing:0;text-transform:none;}.con-admin-discord-connect__status-item.con-admin-user-settings-field{display:grid;gap:var(--con-admin-space-3);min-width:0;margin:0;padding:0;background:transparent;border:0;box-shadow:none;}.con-admin-empty-state--helpful span,.con-admin-empty-state--helpful p{display:block;margin:0;color:var(--con-admin-modern-soft,var(--con-admin-color-text-muted));line-height:1.35;}.con-admin-empty-state--helpful[hidden],.con-admin-schedule-empty[hidden],.con-admin-schedule-empty--global[hidden],.con-admin-2d-fam-plan__no-results[hidden],.con-admin-tcg-empty[hidden],.con-admin-tcg-selection-empty[hidden]{display:none;}.con-admin-empty-state[hidden],.con-admin-empty-state--helpful[hidden],.con-admin-schedule-empty[hidden],.con-admin-tcg-empty[hidden],.con-admin-tcg-selection-empty[hidden],.con-admin-staff-task-filter-empty[hidden],.con-admin-staff-task-empty-state[hidden],.con-admin-submissions-empty[hidden],.con-admin-submissions-message[hidden],.con-front-grid__empty[hidden]{display:none;}.con-admin-event-ticket__meta-chip.con-admin-meta-chip .con-admin-meta-chip__label{color:var(--con-admin-color-text-soft);}.con-admin-event-ticket__meta-chip.con-admin-meta-chip .con-admin-meta-chip__value{color:inherit;}.con-admin-event-ticket__meta-chip.con-admin-meta-chip,.con-admin-game-meta-chip.con-admin-meta-chip,.con-admin-tcg-row .con-admin-meta-chip,.con-admin-tcg-card-mobile__meta-item.con-admin-meta-chip{box-sizing:border-box;}.con-admin-event-ticket__meta-chip.con-admin-meta-chip::before{content:none;display:none;}.con-admin-event-ticket__meta.con-admin-meta-chips{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:var(--con-admin-space-3);}.con-admin-fam-mail__item--feed_achievement .con-admin-fam-reaction.is-active,.con-admin-fam-mail__item--feed_level .con-admin-fam-reaction.is-active,.con-admin-fam-mail__item--feed_attending .con-admin-fam-reaction.is-active,.con-admin-fam-mail__item--feed_raid_final_blow .con-admin-fam-reaction.is-active,.con-admin-fam-mail__item--feed_lfg .con-admin-fam-reaction.is-active,.con-admin-fam-mail__item--checkin .con-admin-fam-reaction.is-active{border-color:var(--con-admin-feed-activity-border);background:var(--con-admin-feed-activity-chip);color:var(--con-admin-feed-activity-accent);}.con-admin-game-modifiers__description{display:inline-flex;align-items:center;margin:0;padding:0;color:var(--con-admin-game-modifier-subtext);font-size:var(--con-admin-game-modifier-description-size);font-weight:var(--con-admin-weight-medium);line-height:1.25;letter-spacing:0;text-transform:none;}.con-admin-game-modifiers__heading{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 7px;min-width:0;margin:0;padding:0 0 0 var(--con-admin-space-3);}.con-admin-game-modifiers__item,.con-admin-game-modifiers__more{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;}.con-admin-game-modifiers__label{display:inline-flex;align-items:center;margin:0;padding:0;color:var(--con-admin-game-modifier-label);font-size:var(--con-admin-game-modifier-label-size);font-weight:var(--con-admin-weight-strong);line-height:1.2;letter-spacing:.035em;text-transform:uppercase;}.con-admin-game-modifiers__list{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px;min-width:0;margin:0;padding:0;}.con-admin-inline-status:empty,.con-admin-role-row-status:empty,.con-admin-save-status-below-button:empty{display:none;}.con-admin-listing-shell--referrals .con-admin-listing-row--referral .con-admin-event-row__body{grid-column:1;grid-row:1;min-width:0;}.con-admin-listing-shell--referrals .con-admin-listing-row--referral .con-admin-event-row__meta{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;}.con-admin-listing-shell--referrals .con-admin-listing-row--referral.con-admin-event-row{grid-template-columns:minmax(0,1fr) 38px;align-items:center;}.con-admin-modern-detail__label::after{content:"";display:block;flex:1 1 auto;height:1px;background:var(--con-admin-modern-border-soft,rgba(215,227,239,.72));}.con-admin-modern-row,.con-admin-schedule-shell .con-admin-schedule-row.con-admin-modern-row,.con-admin-2d-fam-plan .con-admin-2d-fam-plan__favorite-row.con-admin-modern-row,.con-admin-tcg-shell .con-admin-tcg-row.con-admin-modern-row,.con-admin-modern-detail{border-radius:var(--con-admin-radius);}.con-admin-modern-row__title .con-admin-schedule-card__toggle-icon,.con-admin-modern-row__title .con-admin-2d-fam-plan__title-toggle-icon{flex:0 0 auto;}.con-admin-panel-card>:first-child{margin-top:var(--con-admin-space-5);}.con-admin-party-raid-hp__hp-value{color:var(--con-admin-color-text-muted);white-space:nowrap;}.con-admin-party-raid-hp__hp-value strong{color:var(--con-admin-color-text);}.con-admin-party-shortcode,.con-admin-party-shortcode__row,.con-admin-party-shortcode__member,.con-admin-party-shortcode__profile-link,.con-admin-party-shortcode__avatar-link,.con-admin-party-shortcode__avatar,.con-admin-party-shortcode__avatar .con-admin-user-avatar-shell{overflow:visible;}.con-admin-party-shortcode__avatar .con-admin-user-avatar-shell,.con-admin-party-shortcode__avatar .con-admin-user-avatar,.con-admin-party-shortcode__avatar>img,.con-admin-party-shortcode__avatar--empty{flex:0 0 54px;}.con-admin-quest-avatar-launcher{position:fixed;left:-10000px;top:0;width:1px;height:1px;overflow:visible;}.con-admin-rpg-class-chip--member,.con-admin-rpg-class-chip--member.con-admin-rpg-class-chip{width:auto;min-width:0;max-width:100%;justify-content:flex-start;}.con-admin-save-status-below-button,.con-admin-admin-button-status{display:block;clear:both;width:fit-content;max-width:min(100%,42rem);margin:var(--con-admin-space-3) 0 0;font-size:var(--con-admin-font-size-sm);line-height:1.35;font-weight:var(--con-admin-weight-medium);color:var(--con-admin-color-text-muted);}.con-admin-save-status-below-button.is-error{color:var(--con-admin-color-danger);}.con-admin-save-status-below-button.is-success{color:var(--con-admin-color-success);}.con-admin-save-status-below-button.is-working{color:var(--con-admin-color-text-muted);}.con-admin-save-status-below-button:not(:empty),.con-admin-actions-inline .con-admin-inline-status:not(:empty),.con-admin-tools__actions .con-admin-inline-status:not(:empty),.submit .con-admin-inline-status:not(:empty){display:block;flex:0 0 100%;width:100%;margin:3px 0 0;padding:0;min-height:0;border:0;background:transparent;box-shadow:none;line-height:1.35;}.con-admin-schedule-shell .con-admin-modern-row--schedule .con-admin-modern-row__meta .con-admin-shortcode-chip,.con-admin-2d-fam-plan .con-admin-modern-row--fam-plan .con-admin-modern-row__meta .con-admin-shortcode-chip{border:0;background:transparent;box-shadow:none;color:inherit;}.con-admin-schedule-shell .con-admin-modern-row--schedule .con-admin-modern-row__meta::before,.con-admin-2d-fam-plan .con-admin-modern-row--fam-plan .con-admin-modern-row__meta::before{flex:0 0 auto;white-space:nowrap;color:var(--con-admin-modern-soft,var(--con-admin-color-text-muted));font-size:var(--con-admin-font-size-md);font-weight:var(--con-admin-weight-strong);letter-spacing:0;text-transform:none;}.con-admin-schedule-shell .con-admin-modern-row__title .con-admin-schedule-card__title-toggle:hover .con-admin-modern-row__detail-label,.con-admin-2d-fam-plan .con-admin-modern-row__title .con-admin-2d-fam-plan__title-toggle:hover .con-admin-modern-row__detail-label{color:var(--con-admin-modern-primary,var(--con-admin-color-primary));}.con-admin-search-result__avatar .con-admin-user-avatar-shell__badge-image{width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;}.con-admin-staff-tasks--shortcode .con-admin-staff-task-history{padding:var(--con-admin-space-6) var(--con-admin-space-7);border:1px solid var(--con-admin-color-border-muted);border-radius:var(--con-admin-radius);background:var(--con-admin-color-surface);}[class^="con-admin-"] strong,[class*=" con-admin-"] strong,strong[class^="con-admin-"],strong[class*=" con-admin-"],[class^="con-admin-"] b,[class*=" con-admin-"] b,b[class^="con-admin-"],b[class*=" con-admin-"]{font-weight:var(--con-admin-weight-strong);}body.con-admin-modal-open{overflow:hidden;}button.is-loading+.con-admin-admin-button-status,input.is-loading+.con-admin-admin-button-status{opacity:.9;}

/* Shared Schedule/Fam presentation rules. */
.con-admin-fam-status-composer, .con-admin-fam-status-composer__main, .con-admin-fam-status-composer__actions, .con-admin-listing-filters, .con-admin-schedule-filters, .con-admin-tcg-filters, .con-admin-2d-fam__filters, .con-admin-event-tickets__filters, .con-admin-lfg__filters, .con-admin-game-portal__filters, .con-admin-inventory__filters{position:relative;z-index:0;}.con-admin-fam-status-composer textarea, .con-admin-fam-status-composer select, .con-admin-fam-status-composer button, .con-admin-listing-filters input, .con-admin-listing-filters select, .con-admin-listing-filters button, .con-admin-schedule-filter__select, .con-admin-schedule-filter__input, .con-admin-schedule-card__title-toggle{position:relative;z-index:auto;}.con-admin-schedule-guide__head, .con-admin-schedule-guide__time-head, .con-admin-schedule-guide__time{z-index:3;}.con-admin-schedule-guide, .con-admin-listing-shell--schedule .con-admin-schedule-guide{--con-schedule-guide-header-height:56px;}.con-admin-schedule-guide__grid, .con-admin-listing-shell--schedule .con-admin-schedule-guide__grid{grid-template-rows:var(--con-schedule-guide-header-height);}.con-admin-schedule-guide__head, .con-admin-schedule-guide__time-head, .con-admin-schedule-guide__column-head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__time-head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__column-head{box-sizing:border-box;display:flex;align-items:center;height:var(--con-schedule-guide-header-height);min-height:var(--con-schedule-guide-header-height);max-height:var(--con-schedule-guide-header-height);padding:0 var(--con-admin-space-8);overflow:hidden;background:var(--con-admin-color-brand);color:var(--con-admin-color-surface);line-height:1.2;}.con-admin-schedule-guide__head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__head{position:sticky;top:0;z-index:70;}.con-admin-schedule-guide__time-head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__time-head{left:0;justify-content:flex-start;z-index:90;}.con-admin-schedule-guide__column-head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__column-head{z-index:80;}.con-admin-schedule-guide__time, .con-admin-listing-shell--schedule .con-admin-schedule-guide__time{position:sticky;left:0;z-index:20;background:var(--con-admin-color-surface-muted);}.con-admin-schedule-guide, .con-admin-listing-shell--schedule .con-admin-schedule-guide{--con-schedule-guide-card-pad:14px;--con-schedule-guide-card-gap:7px;}.con-admin-schedule-guide__cell, .con-admin-listing-shell--schedule .con-admin-schedule-guide__cell{gap:var(--con-admin-space-6);padding:var(--con-admin-space-6);}.con-admin-schedule-guide-event:hover, .con-admin-schedule-guide-event:focus-visible, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event:hover, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event:focus-visible{border-color:rgba(88, 42, 115, .34);border-left-color:var(--con-schedule-topic-color, var(--con-schedule-category-color, var(--con-admin-color-accent-purple)));box-shadow:0 12px 28px rgba(15, 23, 42, .11);outline:0;}.con-admin-schedule-guide-event__head .con-admin-favorite-toggle:hover, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event__head .con-admin-favorite-toggle:hover{background:rgba(15, 23, 42, .06);color:var(--con-admin-color-brand);}.con-admin-schedule-guide-event__time, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event__time{margin:0;min-height:26px;padding:var(--con-admin-space-2) var(--con-admin-space-4);border:1px solid rgba(48, 86, 143, .12);border-radius:var(--con-admin-radius);background:rgba(48, 86, 143, .09);color:var(--con-admin-color-brand);font-size:var(--con-admin-font-size-md);font-weight:var(--con-admin-weight-strong);line-height:1.1;}.con-admin-schedule-guide-event__duration-pill, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event__duration-pill{border-color:rgba(48, 86, 143, .20);background:rgba(255, 255, 255, .64);color:#1e3a8a;}.con-admin-schedule-guide-event__rating, .con-admin-schedule-guide-event__game, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event__rating, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event__game{width:auto;max-width:100%;}.con-admin-schedule-guide-event__rating .con-admin-event-chip, .con-admin-schedule-guide-event .con-admin-event-chip, .con-admin-schedule-guide-event .con-admin-meta-chip, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event__rating .con-admin-event-chip, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event .con-admin-event-chip, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event .con-admin-meta-chip{border-color:rgba(148, 163, 184, .34);background:var(--con-admin-color-surface);color:var(--con-admin-color-text-subtle);box-shadow:none;}
@media (max-width:782px){.con-admin-schedule-guide, .con-admin-listing-shell--schedule .con-admin-schedule-guide{--con-schedule-guide-header-height:48px;}.con-admin-schedule-guide__head, .con-admin-schedule-guide__time-head, .con-admin-schedule-guide__column-head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__time-head, .con-admin-listing-shell--schedule .con-admin-schedule-guide__column-head{padding:0 var(--con-admin-space-6);}.con-admin-schedule-guide, .con-admin-listing-shell--schedule .con-admin-schedule-guide{--con-schedule-guide-card-pad:11px;--con-schedule-guide-card-gap:6px;}.con-admin-schedule-guide-event__title, .con-admin-listing-shell--schedule .con-admin-schedule-guide-event__title{font-size:.93rem;}}

/* Modal actions share the compact Grudge Match action geometry unless explicitly icon-only. */
.con-admin-shared-modal :where(.con-admin-plugin-button,.con-admin-game-action-button,.con-btn):not(.con-admin-icon-button):not(.con-admin-icon-action):not(.con-admin-modal-close),
.con-admin-modal-shell :where(.con-admin-plugin-button,.con-admin-game-action-button,.con-btn):not(.con-admin-icon-button):not(.con-admin-icon-action):not(.con-admin-modal-close) {
  min-height:35px;
  height:auto;
  padding:var(--con-admin-space-3) var(--con-admin-space-6);
  gap:var(--con-admin-space-3);
  border-radius:var(--con-admin-radius);
  font-size:var(--con-admin-font-size-sm);
  font-weight:var(--con-admin-weight-strong);
  line-height:1.15;
  letter-spacing:0;
  text-transform:none;
}



/* 7.9.81: portaled shared modals keep their close control anchored to the shared header. */
body > .con-admin-shared-modal .con-admin-shared-modal__header > .con-admin-shared-modal__close {
  position:absolute;
  top:var(--con-admin-space-5);
  right:var(--con-admin-space-5);
  margin:0;
}
