/*
 * The alias recipes of Rooster One (the migration kit, PLAN §11; work package D turns them on by adding
 * `rooster-admin rooster-admin-adopt` to the e-shop Manager's wrapper): the page box `aieo-dmm-section` (its h2 the
 * title, its h3 and `.description` under it), the inner `aieo-dmm-card` (an h3 title) and the `aieo-cardpin` host
 * (assets/css/dmm.css) take the chrome's card anatomy, the section's colour on top. The pages' HTML is untouched.
 */

/* The one card skin (0.58.0): the section's colour is the screen's where the section has none of its own (the card
   document's step 0: 362 accents were the product's fixed blue on screens of every section), and the head is the
   card's, one height and the section's wash (none on a warm section). */
.rooster-admin.rooster-admin-adopt .aieo-dmm-section {
	@apply ra-card mb-5 flex min-w-0 flex-col gap-3.5 px-4.5 pt-3.5 pb-4.5;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-section > h2,
.rooster-admin.rooster-admin-adopt .aieo-dmm-section > .aieo-dmm-card > h2 {
	@apply ra-card-head -mx-4.5 -mt-3.5 mb-0 text-md leading-[1.4] font-semibold text-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-section > h2 .count {
	@apply text-sm font-normal text-secondary-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-section > h3 {
	@apply m-0 text-md font-semibold text-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-section > p.description,
.rooster-admin.rooster-admin-adopt .aieo-dmm-section > .description {
	@apply m-0 text-sm leading-normal text-secondary-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-card {
	@apply flex flex-col gap-2.5 rounded-lg border border-border bg-muted p-4.5;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-card + .aieo-dmm-card {
	@apply mt-0; /* the section's gap spaces the cards (0.37.0: even gaps) */
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-card h3 {
	@apply m-0 flex items-center gap-2 text-md font-semibold text-foreground;
}

/* THE pin button, attached into a card's heading by roosterAdmin.pins.attach() (D), sits at the end of the row. */
.rooster-admin.rooster-admin-adopt .aieo-dmm-section > h2 > .rooster-admin-pinbtn,
.rooster-admin.rooster-admin-adopt .aieo-dmm-section > h3 > .rooster-admin-pinbtn,
.rooster-admin.rooster-admin-adopt .aieo-dmm-card h3 > .rooster-admin-pinbtn {
	@apply ms-auto;
}

/* The pin host beside a card's title keeps its place; the button in it becomes THE pin button (pins.attach()). */
.rooster-admin.rooster-admin-adopt .aieo-cardpin-host {
	@apply flex items-center gap-2;
}

/* ── Buttons (0.29.0, UI-PLAN Phase 3, D3). `aieo-c-btn` (AIEO_Controls::btn(), AIEO_Variants, the tables, the wizard)
   and the legacy `aieo-button` (the settings, chat and subscription pages) take the chrome's button recipe on a
   chrome screen; the variants map onto the kit's, and the amber Set Up fills become the product's primary. The
   storefront's copies (the public tables, the survey) sit outside the chrome's wrapper and keep Rooster One's own
   CSS. The legacy class repeats where core's `.wp-core-ui .button-primary` rules must lose. ── */
.rooster-admin.rooster-admin-adopt .aieo-c-btn,
.rooster-admin.rooster-admin-adopt .aieo-button.aieo-button {
	@apply ra-button h-auto shadow-none;
	margin: 0;

	@variant hover {
		@apply bg-muted text-foreground;
	}

	@variant focus-visible {
		@apply ra-ring;
	}
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn[disabled],
.rooster-admin.rooster-admin-adopt .aieo-c-btn[aria-disabled="true"],
.rooster-admin.rooster-admin-adopt .aieo-button.aieo-button[disabled] {
	@apply pointer-events-none opacity-50;
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--primary,
.rooster-admin.rooster-admin-adopt .aieo-button.aieo-button-optimal,
.rooster-admin.rooster-admin-adopt .aieo-button.aieo-button-setup,
.rooster-admin.rooster-admin-adopt .aieo-button.aieo-button-pro-section {
	@apply ra-button-primary;

	@variant hover {
		border-color: color-mix(in srgb, var(--ra-accent) 88%, black);
		background: color-mix(in srgb, var(--ra-accent) 88%, black);
		color: var(--ra-accent-on);
	}
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--secondary {
	@apply ra-button-secondary;

	@variant hover {
		background: color-mix(in srgb, var(--ra-muted) 70%, var(--ra-foreground) 8%);
	}
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--destructive,
.rooster-admin.rooster-admin-adopt .aieo-button.aieo-button-alarm {
	@apply ra-button-destructive;

	@variant hover {
		border-color: color-mix(in srgb, var(--ra-destructive) 85%, black);
		background: color-mix(in srgb, var(--ra-destructive) 85%, black);
		color: white;
	}
}

/* A table's destructive bulk action without the variant: the outline in the destructive colour, as before. */
.rooster-admin.rooster-admin-adopt .aieo-c-btn.aieo-t-danger:not(.aieo-c-btn--destructive) {
	@apply border-destructive bg-background text-destructive-foreground;

	@variant hover {
		background: color-mix(in srgb, var(--ra-destructive) 10%, var(--ra-background));
	}
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--mono {
	@apply ra-button-mono;
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--ghost,
.rooster-admin.rooster-admin-adopt .aieo-c-btn--dim {
	@apply ra-button-ghost;
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--dim {
	@apply text-muted-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--sm {
	@apply ra-button-sm;
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--lg {
	@apply ra-button-lg;
}

.rooster-admin.rooster-admin-adopt .aieo-c-btn--block {
	@apply ra-button-block;
}

/* ── Badges and chips (0.30.0, UI-PLAN Phase 3, D3b). On a chrome screen `aieo-c-badge` (AIEO_Controls::badge()) and
   `aieo-t-badge` (the table renderer; AIEO_Variants' vocabulary, the `-v--` value hooks untouched) take the kit's
   badge, their variants mapped onto the kit's tones (secondary and muted onto mono, muted a step dimmer); the
   attribution pills, the FAQ's draft badge and Getting set up's facts take it too, and the Free Gift badge is the
   solid success badge. The chips: the tables' list chips, the FAQ's group chips, the persona chips (in the persona's
   own colour), the related and the category chips with their remove buttons, and the Product needs' selection
   (solid, draggable). The storefront's copies (the public tables, the survey) keep Rooster One's own CSS, and so do
   the chips on core's term and product screens, where the chrome is absent. ── */
.rooster-admin.rooster-admin-adopt .aieo-c-badge,
.rooster-admin.rooster-admin-adopt .aieo-t-badge,
.rooster-admin.rooster-admin-adopt .aieo-attr-pill,
.rooster-admin.rooster-admin-adopt .aieo-faq-badge,
.rooster-admin.rooster-admin-adopt .aieo-gsu-chip,
.rooster-admin.rooster-admin-adopt .aieo-dmm-gift-badge {
	@apply ra-badge ra-tone-mono h-auto min-h-0 normal-case tracking-normal;
	margin: 0;
}

.rooster-admin.rooster-admin-adopt .aieo-c-badge--sm,
.rooster-admin.rooster-admin-adopt .aieo-faq-badge {
	@apply ra-badge-sm;
}

.rooster-admin.rooster-admin-adopt .aieo-c-badge--primary,
.rooster-admin.rooster-admin-adopt .aieo-t-badge--primary,
.rooster-admin.rooster-admin-adopt .aieo-gsu-chip {
	@apply ra-tone-primary;
}

.rooster-admin.rooster-admin-adopt .aieo-c-badge--success,
.rooster-admin.rooster-admin-adopt .aieo-t-badge--success,
.rooster-admin.rooster-admin-adopt .aieo-attr-pill-ok,
.rooster-admin.rooster-admin-adopt .aieo-dmm-gift-badge {
	@apply ra-tone-success;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-gift-badge {
	@apply ra-badge-solid;
}

.rooster-admin.rooster-admin-adopt .aieo-c-badge--warning,
.rooster-admin.rooster-admin-adopt .aieo-t-badge--warning,
.rooster-admin.rooster-admin-adopt .aieo-attr-pill-warn,
.rooster-admin.rooster-admin-adopt .aieo-faq-badge {
	@apply ra-tone-warning;
}

.rooster-admin.rooster-admin-adopt .aieo-c-badge--destructive,
.rooster-admin.rooster-admin-adopt .aieo-t-badge--destructive {
	@apply ra-tone-destructive;
}

.rooster-admin.rooster-admin-adopt .aieo-c-badge--info,
.rooster-admin.rooster-admin-adopt .aieo-t-badge--info {
	@apply ra-tone-info;
}

/* A muted badge (a row still listed but no longer live): the mono badge, its word a step dimmer. */
.rooster-admin.rooster-admin-adopt .aieo-c-badge--muted,
.rooster-admin.rooster-admin-adopt .aieo-t-badge--muted {
	@apply text-muted-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-attr-pill a {
	@apply text-inherit underline;
}

/* The chips. */
.rooster-admin.rooster-admin-adopt .aieo-t-chip,
.rooster-admin.rooster-admin-adopt .aieo-faq-group-chip,
.rooster-admin.rooster-admin-adopt .aieo-persona-chip,
.rooster-admin.rooster-admin-adopt .aieo-tr-chip,
.rooster-admin.rooster-admin-adopt .aieo-ce-chip,
.rooster-admin.rooster-admin-adopt .aieo-dmm-chips li {
	@apply ra-badge ra-chip ra-tone-mono;
}

.rooster-admin.rooster-admin-adopt .aieo-t-chip {
	@apply ra-badge-sm me-1 mb-1;
}

/* A chip carrying its own tip keeps its cue: a dotted foot. */
.rooster-admin.rooster-admin-adopt .aieo-t-chip--tip {
	@apply cursor-help;
	border-bottom-style: dotted;
	border-bottom-width: 2px;
}

/* Chips with buttons inside: the button sits in the end padding, as the kit's remove button does. */
.rooster-admin.rooster-admin-adopt .aieo-faq-group-chip,
.rooster-admin.rooster-admin-adopt .aieo-tr-chip,
.rooster-admin.rooster-admin-adopt .aieo-ce-chip {
	@apply pe-1.5;
}

.rooster-admin.rooster-admin-adopt .aieo-faq-group-rename,
.rooster-admin.rooster-admin-adopt .aieo-faq-group-delete,
.rooster-admin.rooster-admin-adopt .aieo-tr-chip-remove,
.rooster-admin.rooster-admin-adopt .aieo-ce-chip-remove {
	@apply ra-chip-remove size-auto text-sm leading-none;

	@variant hover {
		@apply bg-muted text-foreground;
	}
}

.rooster-admin.rooster-admin-adopt .aieo-faq-group-delete,
.rooster-admin.rooster-admin-adopt .aieo-tr-chip-remove,
.rooster-admin.rooster-admin-adopt .aieo-ce-chip-remove {
	@variant hover {
		@apply text-destructive-foreground;
	}
}

/* The persona chip wears the persona's colour: its dot, a wash and the border. */
.rooster-admin.rooster-admin-adopt .aieo-persona-chip {
	--ra-tone: var(--aieo-persona-current, var(--ra-muted-foreground));
	border-color: color-mix(in srgb, var(--ra-tone) 35%, transparent);
	background: color-mix(in srgb, var(--ra-tone) 8%, var(--ra-background));
}

.rooster-admin.rooster-admin-adopt .aieo-persona-chip__dot {
	@apply size-2 shrink-0 rounded-full;
	background: var(--ra-tone, var(--aieo-persona-current, var(--ra-muted-foreground)));
}

/* The selected needs: solid chips in the product's ink, draggable; a need hidden from the storefront is grey. */
.rooster-admin.rooster-admin-adopt .aieo-dmm-chips li {
	@apply ra-tone-primary ra-badge-solid cursor-move select-none;

	@variant hover {
		@apply shadow-(--ra-shadow-sm);
	}
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-chips li.is-hidden {
	@apply ra-tone-mono;
}

/* ── Pickers (0.32.0, UI-PLAN Phase 3, D3c; 0.43.0: the product picker prints the kit's pick field, chips and dialog
   itself, so only the marketplace feeds page's hand-written copy (aieo-feed-*) and its copy of the modal (aieo-pm-*,
   appended to body, outside the page wrapper, so scoped by the body class) are aliased here until that page follows). ── */
.rooster-admin.rooster-admin-adopt .aieo-feed-rule {
	@apply mb-4 flex flex-col gap-1;
}

.rooster-admin.rooster-admin-adopt .aieo-feed-rule > label {
	@apply mb-0 text-sm font-semibold text-foreground;
}

/* One control, never two lines: the chips wrap inside their own box and the Choose button keeps the field's end
   (0.42.0: with chips chosen, the field used to wrap the button under them, so a filled Brand(s) field read unlike
   the empty Category and Need fields beside it; the owner's symmetry rule). */
.rooster-admin.rooster-admin-adopt .aieo-feed-prodpick {
	@apply ra-pickfield h-auto min-h-9 flex-nowrap items-start py-1;

	@variant focus-within {
		@apply ra-control-focus;
	}
}

.rooster-admin.rooster-admin-adopt .aieo-feed-chips {
	@apply m-0 flex max-h-40 min-w-0 flex-auto flex-wrap items-center gap-1.5 overflow-y-auto;
}

.rooster-admin.rooster-admin-adopt .aieo-feed-chips .aieo-chip {
	@apply ra-badge ra-chip ra-tone-mono max-w-full pe-1.5;
}

.rooster-admin.rooster-admin-adopt .aieo-feed-chips .aieo-chip.is-var {
	@apply ra-tone-primary;
}

.rooster-admin.rooster-admin-adopt .aieo-feed-chips .aieo-chip.is-grey {
	@apply text-muted-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-feed-chips .aieo-chip-t {
	@apply max-w-[14rem] truncate;
}

.rooster-admin.rooster-admin-adopt .aieo-feed-chips .aieo-chip-x {
	@apply ra-chip-remove size-auto text-sm leading-none opacity-100;

	@variant hover {
		@apply bg-muted text-destructive-foreground;
	}
}

.rooster-admin.rooster-admin-adopt .aieo-feed-empty {
	@apply text-xs text-secondary-foreground not-italic;
}

.rooster-admin.rooster-admin-adopt .aieo-feed-prodpick-open {
	@apply ra-button ra-button-secondary ra-button-sm my-0 ms-auto h-auto flex-none self-start shadow-none;

	@variant hover {
		background: color-mix(in srgb, var(--ra-muted) 70%, var(--ra-foreground) 8%);
	}

	@variant focus-visible {
		@apply ra-ring;
	}
}

/* The modal: the kit's dialog, the picker's search, rows, children, footer. */
.rooster-admin-has-chrome .aieo-pm-overlay {
	@apply fixed inset-0 z-(--ra-z-modal) flex items-center justify-center bg-black/40 p-4 backdrop-blur-xs;
}

.rooster-admin-has-chrome .aieo-pm-card {
	@apply ra-dialog relative flex h-[min(86vh,48rem)] w-[min(46rem,calc(100vw-32px))] flex-col overflow-hidden;
}

.rooster-admin-has-chrome .aieo-pm-head {
	@apply ra-dialog-header flex items-center justify-between gap-2 border-b border-border pb-3 pe-12;
}

.rooster-admin-has-chrome .aieo-pm-head h3 {
	@apply m-0 text-lg leading-snug font-semibold text-foreground;
}

.rooster-admin-has-chrome .aieo-pm-close {
	@apply ra-dialog-x size-auto text-xl leading-none opacity-100;

	@variant hover {
		@apply bg-muted text-foreground;
	}

	@variant focus-visible {
		@apply ra-ring;
	}
}

.rooster-admin-has-chrome .aieo-pm-search {
	@apply ra-picker-search;
}

/* The search box: One's script restates core's input at .wp-core-ui weight, so this names the card as well. */
.rooster-admin-has-chrome .aieo-pm-card .aieo-pm-search input[type] {
	@apply ra-control h-auto min-h-9 w-full max-w-none;

	@variant focus {
		@apply ra-control-focus;
	}
}

.rooster-admin-has-chrome .aieo-pm-results {
	@apply ra-picker-body max-h-none min-h-44 flex-auto;
}

.rooster-admin-has-chrome .aieo-pm-row {
	@apply border-b border-border;

	@variant last {
		@apply border-b-0;
	}
}

.rooster-admin-has-chrome .aieo-pm-line {
	@apply ra-picker-row;
}

.rooster-admin-has-chrome .aieo-pm-row:hover > .aieo-pm-line {
	@apply bg-muted;
}

.rooster-admin-has-chrome .aieo-pm-line label,
.rooster-admin-has-chrome .aieo-pm-vrow label {
	@apply ra-picker-check m-0 text-sm font-normal;
}

.rooster-admin-has-chrome .aieo-pm-cb,
.rooster-admin-has-chrome .aieo-pm-vcb {
	@apply m-0 size-4 flex-none;
	accent-color: var(--ra-accent);
}

.rooster-admin-has-chrome .aieo-pm-row.is-grey > .aieo-pm-line label > span:first-of-type {
	@apply text-muted-foreground;
}

.rooster-admin-has-chrome .aieo-pm-caret {
	@apply ra-picker-toggle text-2xs select-none;
}

.rooster-admin-has-chrome .aieo-pm-caret.is-spacer {
	@apply invisible cursor-default;
}

.rooster-admin-has-chrome .aieo-pm-badge {
	@apply ra-badge ra-badge-sm ra-tone-mono tracking-normal normal-case;
}

.rooster-admin-has-chrome .aieo-pm-badge.var {
	@apply ra-tone-primary;
}

.rooster-admin-has-chrome .aieo-pm-badge.draft {
	@apply ra-tone-warning;
}

.rooster-admin-has-chrome .aieo-pm-vars {
	@apply ra-picker-children pb-2;
}

.rooster-admin-has-chrome .aieo-pm-vrow {
	@apply ra-picker-row py-1.5;
}

.rooster-admin-has-chrome .aieo-pm-foot {
	@apply ra-dialog-footer ra-picker-foot justify-between pt-3;
}

.rooster-admin-has-chrome .aieo-pm-count {
	@apply ra-picker-selected;
}

.rooster-admin-has-chrome .aieo-pm-foot .button {
	@apply ra-button h-auto shadow-none;

	@variant hover {
		@apply bg-muted text-foreground;
	}

	@variant focus-visible {
		@apply ra-ring;
	}
}

.rooster-admin-has-chrome .aieo-pm-foot .button-primary {
	@apply ra-button-primary;

	@variant hover {
		border-color: color-mix(in srgb, var(--ra-accent) 88%, black);
		background: color-mix(in srgb, var(--ra-accent) 88%, black);
		color: var(--ra-accent-on);
	}
}

.rooster-admin-has-chrome .aieo-pm-muted {
	@apply px-2.5 py-4 text-sm text-secondary-foreground;
}

/* ── Notices (0.33.0, UI-PLAN Phase 3, D3d). Core's notices are the adoption layer's (every product). The e-shop
   Manager's flash toasts (dmm.js, the container page.php prints or the script appends to body) take the kit's toast
   at the kit's place, the bottom end; the amber callout (header actions, the side cart, sticky add to cart) is the
   kit's inline warning notice. The flash rules stay in dmm.css for core's screens (the competition and event
   editors), where they are the only look. ── */
.rooster-admin-has-chrome .aieo-dmm-flash {
	@apply ra-toasts top-auto right-auto min-w-0;
}

.rooster-admin-has-chrome .aieo-dmm-flash-item {
	@apply ra-toast ra-tone-success m-0;
}

.rooster-admin-has-chrome .aieo-dmm-flash-item.error {
	@apply ra-tone-destructive;
}

.rooster-admin-has-chrome .aieo-dmm-flash-item.warning {
	@apply ra-tone-warning;
}

.rooster-admin-has-chrome .aieo-dmm-flash-item.info {
	@apply ra-tone-info;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-callout {
	@apply ra-notice ra-notice-inline ra-tone-warning block;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-callout strong {
	@apply text-inherit;
}

/* ── Controls (0.34.0, UI-PLAN Phase 3, D3e). AIEO_Controls' input, select and textarea, its label, help and error, and
   its choice items take the kit's; the storefront's survey keeps aieo-controls.css. The tables' filter and per-page
   controls carry the same classes. ── */
.rooster-admin.rooster-admin-adopt .aieo-c-input,
.rooster-admin.rooster-admin-adopt .aieo-c-select,
.rooster-admin.rooster-admin-adopt .aieo-c-textarea {
	@apply ra-control block h-auto w-full max-w-full;

	@variant focus {
		@apply ra-control-focus;
	}

	@variant disabled {
		@apply cursor-not-allowed bg-muted opacity-60;
	}
}

.rooster-admin.rooster-admin-adopt .aieo-c-input[aria-invalid="true"],
.rooster-admin.rooster-admin-adopt .aieo-c-select[aria-invalid="true"],
.rooster-admin.rooster-admin-adopt .aieo-c-textarea[aria-invalid="true"] {
	@apply border-destructive;
}

.rooster-admin.rooster-admin-adopt .aieo-c-select {
	@apply w-auto pe-7;
}

.rooster-admin.rooster-admin-adopt .aieo-c-textarea {
	@apply min-h-22 resize-y py-2 leading-normal;
}

.rooster-admin.rooster-admin-adopt .aieo-c-input--sm {
	@apply min-h-7 px-2 text-xs;
}

.rooster-admin.rooster-admin-adopt .aieo-c-label {
	@apply mb-1.5 block text-sm leading-[1.4] font-semibold text-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-c-help {
	@apply mt-1.5 text-xs leading-normal text-secondary-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-c-error {
	@apply mt-1.5 text-xs leading-normal text-destructive-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-c-choice-item {
	@apply rounded-md border border-border px-2.5 py-2 text-sm leading-[1.4];

	@variant hover {
		@apply bg-muted;
	}
}

.rooster-admin.rooster-admin-adopt .aieo-c-choice-item:has(input:checked) {
	@apply ra-tone-primary border-accent;
	background: var(--ra-tone-soft);
}

.rooster-admin.rooster-admin-adopt .aieo-c-choice-item:has(input:focus-visible) {
	@apply ra-control-focus;
}

/* ── Tables (0.35.0, UI-PLAN Phase 3, D3f). AIEO_Table's rendering (`aieo-t`: the table, its head and cells, the compact
   tier, the hover, the frame), the skin it lends hand-written tables (`aieo-t-skin`, every `widefat` on a module
   panel), the filters bar, the pager and bulk texts, the value tones, the sub lines, the code chips and the bars take
   the kit's table on a chrome screen. The sort chevrons, the alignment and the numeric cells are One's and stay.
   aieo-table.css stays whole for the storefront's public tables. ── */
.rooster-admin.rooster-admin-adopt .aieo-t,
.rooster-admin.rooster-admin-adopt .aieo-t-skin,
.rooster-admin.rooster-admin-adopt .aieo-dmm-modules-panel table.widefat:not(.aieo-t):not(.form-table) {
	@apply ra-table bg-card text-start text-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-t th.aieo-t-h,
.rooster-admin.rooster-admin-adopt .aieo-t-skin thead th,
.rooster-admin.rooster-admin-adopt .aieo-dmm-modules-panel table.widefat:not(.aieo-t):not(.form-table) thead th {
	@apply ra-table-th h-auto;
}

.rooster-admin.rooster-admin-adopt .aieo-t td.aieo-t-c,
.rooster-admin.rooster-admin-adopt .aieo-t th.aieo-t-c,
.rooster-admin.rooster-admin-adopt .aieo-t-skin tbody td,
.rooster-admin.rooster-admin-adopt .aieo-t-skin tbody th,
.rooster-admin.rooster-admin-adopt .aieo-dmm-modules-panel table.widefat:not(.aieo-t):not(.form-table) tbody td,
.rooster-admin.rooster-admin-adopt .aieo-dmm-modules-panel table.widefat:not(.aieo-t):not(.form-table) tbody th {
	@apply ra-table-td;
}

.rooster-admin.rooster-admin-adopt .aieo-t--compact td.aieo-t-c,
.rooster-admin.rooster-admin-adopt .aieo-t--compact th.aieo-t-c,
.rooster-admin.rooster-admin-adopt .aieo-t-skin--compact tbody td,
.rooster-admin.rooster-admin-adopt .aieo-t-skin--compact tbody th {
	@apply py-1.5;
}

.rooster-admin.rooster-admin-adopt .aieo-t tbody tr:last-child > .aieo-t-c,
.rooster-admin.rooster-admin-adopt .aieo-t-skin tbody tr:last-child > td,
.rooster-admin.rooster-admin-adopt .aieo-t-skin tbody tr:last-child > th {
	@apply border-b-0;
}

.rooster-admin.rooster-admin-adopt .aieo-t:not(.aieo-t--bare) tbody tr:hover > td,
.rooster-admin.rooster-admin-adopt .aieo-t:not(.aieo-t--bare) tbody tr:hover > th,
.rooster-admin.rooster-admin-adopt .aieo-t-skin tbody tr:hover > td,
.rooster-admin.rooster-admin-adopt .aieo-t-skin tbody tr:hover > th {
	background: color-mix(in srgb, var(--ra-accent) 5%, var(--ra-background));
}

.rooster-admin.rooster-admin-adopt .aieo-t-frame {
	@apply overflow-hidden rounded-lg border border-border bg-card;
}

.rooster-admin.rooster-admin-adopt .aieo-t-filters {
	@apply mb-3 flex flex-wrap items-end gap-x-3.5 gap-y-2.5 rounded-lg border border-border bg-muted/40 px-3.5 py-3;
}

.rooster-admin.rooster-admin-adopt .aieo-t-filter-l {
	@apply text-xs font-medium text-secondary-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-t-nav .displaying-num,
.rooster-admin.rooster-admin-adopt .aieo-t-page-of,
.rooster-admin.rooster-admin-adopt .aieo-t-bulk-all,
.rooster-admin.rooster-admin-adopt .aieo-t-bulk-count,
.rooster-admin.rooster-admin-adopt .aieo-t-bulk-status,
.rooster-admin.rooster-admin-adopt .aieo-t-tool label,
.rooster-admin.rooster-admin-adopt .aieo-t-suffix,
.rooster-admin.rooster-admin-adopt .aieo-t-tone--secondary {
	@apply text-xs text-secondary-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-t-sub {
	@apply mt-0.5 block text-2xs text-secondary-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-t-filtered-of,
.rooster-admin.rooster-admin-adopt .aieo-t-empty,
.rooster-admin.rooster-admin-adopt .aieo-t-no,
.rooster-admin.rooster-admin-adopt .aieo-t-tone--muted,
.rooster-admin.rooster-admin-adopt .aieo-t-diff-from,
.rooster-admin.rooster-admin-adopt .aieo-t-diff-arrow {
	@apply text-muted-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-t-tone--success,
.rooster-admin.rooster-admin-adopt .aieo-t-yes {
	@apply ra-tone-success;
	color: var(--ra-tone-fg);
}

.rooster-admin.rooster-admin-adopt .aieo-t-tone--warning {
	@apply ra-tone-warning;
	color: var(--ra-tone-fg);
}

.rooster-admin.rooster-admin-adopt .aieo-t-tone--danger {
	@apply ra-tone-destructive;
	color: var(--ra-tone-fg);
}

.rooster-admin.rooster-admin-adopt .aieo-t-tone--info {
	@apply ra-tone-info;
	color: var(--ra-tone-fg);
}

.rooster-admin.rooster-admin-adopt .aieo-t-code {
	@apply rounded-sm border-0 bg-muted px-1.5 py-0.5 text-xs font-normal text-secondary-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-t-bar {
	@apply h-2.5 w-22 rounded-full bg-muted;
}

.rooster-admin.rooster-admin-adopt .aieo-t-bar-fill {
	@apply rounded-full;
	background: var(--ra-accent);
}

/* ── The searchable select (0.36.0, D3g): on a chrome screen every select is the kit's combobox (assets/select.js),
   Rooster One's remote ones configured through the rooster-admin:select event (dmm.js). The tables' filter and
   per-page controls and the toolbars size it as the kit's toolbars do. ── */
.rooster-admin.rooster-admin-adopt .aieo-t-toolbar .rooster-admin-combo,
.rooster-admin.rooster-admin-adopt .aieo-t-filter .rooster-admin-combo,
.rooster-admin.rooster-admin-adopt .aieo-t-bulkbar .rooster-admin-combo,
.rooster-admin.rooster-admin-adopt .aieo-t-nav .rooster-admin-combo {
	@apply w-auto min-w-40;
}

.rooster-admin.rooster-admin-adopt .aieo-t-nav .rooster-admin-combo {
	@apply min-w-20;
}

/* ── Rooster One's tokens are the chrome's (0.37.0, D3h). Every `--aieo-*` colour One's stylesheets read is the
   chrome's token on a chrome screen, and the chrome's are light-dark pairs: One's own CSS follows the owner's light
   or dark scheme without a `.dark` class it never had (the owner, 25 Oct 2026: dark mode shows the disparities).
   The shapes and the type scale map too. The persona colours, the rail and the counts stay One's. The hard-coded
   hex values in One's stylesheets (363 in aieo-admin-panel.css alone) are D4's codemod. ── */
.rooster-admin-has-chrome {
	--aieo-background: var(--ra-background);
	--aieo-foreground: var(--ra-foreground);
	--aieo-card: var(--ra-card);
	--aieo-card-fg: var(--ra-card-foreground);
	--aieo-muted: var(--ra-muted);
	/* One's muted text is read (82 uses: a fold's lede, a note): the secondary ink, which reads on the card and on the
	   muted ground, not the library's lighter tone, which is a placeholder's (2.3:1 on the muted ground: the phone
	   audit's colour-contrast on .aieo-form-fold-lede, 0.74.5). */
	--aieo-muted-fg: var(--ra-secondary-foreground);
	--aieo-accent: var(--ra-muted);
	--aieo-accent-fg: var(--ra-foreground);
	--aieo-border: var(--ra-border);
	--aieo-input: var(--ra-input);
	--aieo-ring: var(--ra-ring);
	--aieo-thead-bg: color-mix(in srgb, var(--ra-muted) 60%, var(--ra-background));
	--aieo-row-hover: color-mix(in srgb, var(--ra-accent) 5%, var(--ra-background));
	--aieo-radius: var(--ra-radius-lg);
	--aieo-radius-sm: var(--ra-radius-sm);
	--aieo-radius-md: var(--ra-radius-md);
	--aieo-radius-lg: var(--ra-radius-lg);
	--aieo-radius-pill: var(--ra-shape-chip);
	--aieo-text-2xs: var(--ra-text-2xs);
	--aieo-text-xs: var(--ra-text-xs);
	--aieo-text-sm: var(--ra-text-sm);
	--aieo-text-base: var(--ra-text-base);
	--aieo-primary: var(--ra-accent);
	--aieo-primary-fg: var(--ra-accent-on);
	--aieo-secondary: var(--ra-muted);
	--aieo-secondary-fg: var(--ra-foreground);
	--aieo-success: var(--ra-success);
	--aieo-success-fg: var(--ra-success-on);
	--aieo-warning: var(--ra-warning);
	--aieo-warning-fg: var(--ra-warning-on);
	--aieo-destructive: var(--ra-destructive);
	--aieo-destructive-fg: var(--ra-destructive-on);
	--aieo-info: var(--ra-info);
	--aieo-info-fg: var(--ra-info-on);
	--aieo-mono: var(--ra-foreground);
	--aieo-mono-fg: var(--ra-background);
	--aieo-primary-soft: color-mix(in srgb, var(--ra-accent) 12%, var(--ra-background));
	--aieo-primary-soft-fg: color-mix(in srgb, var(--ra-accent) 85%, var(--ra-foreground));
	--aieo-secondary-soft: var(--ra-muted);
	--aieo-secondary-soft-fg: var(--ra-secondary-foreground);
	--aieo-success-soft: var(--ra-success-soft);
	--aieo-success-soft-fg: var(--ra-success-foreground);
	--aieo-warning-soft: var(--ra-warning-soft);
	--aieo-warning-soft-fg: var(--ra-warning-soft-foreground);
	--aieo-destructive-soft: color-mix(in srgb, var(--ra-destructive) 10%, var(--ra-background));
	--aieo-destructive-soft-fg: light-dark(
		color-mix(in srgb, var(--ra-destructive) 85%, black),
		color-mix(in srgb, var(--ra-destructive) 70%, white)
	);
	--aieo-info-soft: var(--ra-info-soft);
	--aieo-info-soft-fg: light-dark(
		color-mix(in srgb, var(--ra-info) 75%, black),
		color-mix(in srgb, var(--ra-info) 60%, white)
	);
	--aieo-mono-soft: var(--ra-muted);
	--aieo-mono-soft-fg: var(--ra-foreground);
	--aieo-tone-secondary: var(--ra-secondary-foreground);
	--aieo-tone-muted: var(--ra-muted-foreground);
	--aieo-tone-danger: light-dark(
		color-mix(in srgb, var(--ra-destructive) 85%, black),
		color-mix(in srgb, var(--ra-destructive) 70%, white)
	);
	--aieo-tone-warning: var(--ra-warning-soft-foreground);
	--aieo-tone-success: var(--ra-success-foreground);
	--aieo-tone-info: light-dark(
		color-mix(in srgb, var(--ra-info) 75%, black),
		color-mix(in srgb, var(--ra-info) 60%, white)
	);
	--aieo-tone-danger-fill: var(--ra-destructive);
	--aieo-tone-warning-fill: var(--ra-warning);
	--aieo-tone-success-fill: var(--ra-success);
	--aieo-tone-info-fill: var(--ra-info);
	--aieo-tone-danger-wash: color-mix(in srgb, var(--ra-destructive) 6%, var(--ra-background));
	--aieo-tone-warning-wash: var(--ra-warning-soft);
	--aieo-tone-success-wash: var(--ra-success-wash);
	--aieo-tone-info-wash: var(--ra-info-wash);
	--aieo-tone-success-pale: var(--ra-success-wash);
	--aieo-tone-danger-pale: color-mix(in srgb, var(--ra-destructive) 4%, var(--ra-background));
}

/* Even gaps (0.37.0, the owner's rule): a section's and a card's children are spaced by the card's gap alone, not by
   each block's own margin on top of it; a card after a card is no exception. */
.rooster-admin.rooster-admin-adopt .aieo-dmm-section > *,
.rooster-admin.rooster-admin-adopt .aieo-dmm-card > * {
	@apply my-0;
}

/* The opportunity page's priority controls (the owner's screenshot): the fieldsets are the adoption layer's sub-cards,
   their hints the help text; the rows are the adoption layer's two-column label rows. */
.rooster-admin.rooster-admin-adopt .aieo-opp-controls {
	@apply my-0 rounded-lg border border-border bg-card px-4 py-3;
}

.rooster-admin.rooster-admin-adopt .aieo-opp-hint {
	@apply mt-0 mb-2 text-xs leading-normal text-secondary-foreground;
}

/* ── Headings and the cards' remaining variants (0.40.0, UI-PLAN Phase 3, D3i). On a chrome screen a heading inside
   One's sections takes the kit's size whatever its depth: h2 the section title, h3 the card title, h4 the sub-title;
   the modules list's titles and the modules boxes' headings the same. A card inside a card (the courier cards, the
   controls page's cards, a form card in a card) is the kit's sub-card: the page's background on the muted card, a
   hairline on top. The rules of the card and section titles above keep their own flex and borders. ── */
.rooster-admin.rooster-admin-adopt .aieo-dmm-section h3,
.rooster-admin.rooster-admin-adopt .aieo-dmm-section .aieo-modules-list-item-title,
.rooster-admin.rooster-admin-adopt .aieo-dmm-section .aieo-modules-list-item-title-dual,
.rooster-admin.rooster-admin-adopt .aieo-modules-box .aieo-modules-list-item-title {
	@apply m-0 text-md leading-[1.4] font-semibold text-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-section h4 {
	@apply m-0 text-sm leading-[1.4] font-semibold text-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-modules-box-heading,
.rooster-admin.rooster-admin-adopt .aieo-dmm-section .aieo-dmm-card h2 {
	@apply m-0 text-md leading-[1.4] font-semibold text-foreground;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-card .aieo-dmm-card,
.rooster-admin.rooster-admin-adopt .aieo-c-card,
.rooster-admin.rooster-admin-adopt .aieo-modules-box {
	@apply flex flex-col gap-2.5 rounded-lg border border-border bg-card p-4 text-card-foreground shadow-none;
}

.rooster-admin.rooster-admin-adopt .aieo-dmm-card .aieo-dmm-card > *,
.rooster-admin.rooster-admin-adopt .aieo-c-card > *,
.rooster-admin.rooster-admin-adopt .aieo-modules-box > * {
	@apply my-0;
}
