/*
 * El Malakiya Nursery Core — component styles.
 * Uses the theme tokens (--emn-*) with fallbacks so the components also work with another theme.
 * Logical properties only: correct in RTL (Arabic) and LTR (English).
 */

:where(.emn-form, .emn-portal, .emn-receipt, .emn-status-card, .emn-programs, .emn-activities, .emn-team, .emn-contact, .emn-facts, .emn-events, .emn-supplies, .emn-news, .emn-gallery, .emn-assistant) {
	--_navy: var(--emn-navy, #153449);
	--_navy-deep: var(--emn-navy-deep, #0e2536);
	--_ivory: var(--emn-ivory, #fbf8f0);
	--_gold: var(--emn-gold, #b49558);
	--_gold-text: var(--emn-gold-text, #7a6234);
	--_sage: var(--emn-sage, #6f8f7a);
	--_sage-soft: var(--emn-sage-soft, #e8efe9);
	--_peach-soft: var(--emn-peach-soft, #fcefe6);
	--_ink: var(--emn-ink, #1b2731);
	--_muted: var(--emn-muted, #56626c);
	--_line: var(--emn-line, #e6dfcf);
	--_surface: var(--emn-surface, #fff);
	--_danger: var(--emn-danger, #a4261d);
	--_success: var(--emn-success, #2c6e49);
	--_warning: var(--emn-warning, #875a00);
	--_radius: var(--emn-radius, 18px);
	color: var(--_ink);
}

/* Buttons (shape from the theme's .emn-btn when present) */
:where(.emn-btn) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: 48px;
	padding: 0.65rem 1.4rem;
	border: 2px solid transparent;
	border-radius: 999px;
	font: inherit;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
}
.emn-btn.is-primary { background: var(--emn-navy, #153449); border-color: var(--emn-navy, #153449); color: var(--emn-ivory, #fbf8f0); }
.emn-btn.is-primary:hover { background: var(--emn-navy-deep, #0e2536); border-color: var(--emn-navy-deep, #0e2536); color: var(--emn-ivory, #fbf8f0); }
.emn-btn.is-secondary { background: transparent; border-color: var(--emn-navy, #153449); color: var(--emn-navy, #153449); }
.emn-btn.is-secondary:hover { background: var(--emn-navy, #153449); color: var(--emn-ivory, #fbf8f0); }
.emn-btn.is-ghost { background: transparent; border-color: var(--emn-line, #e6dfcf); color: var(--emn-navy, #153449); }
.emn-btn.is-ghost:hover { border-color: var(--emn-navy, #153449); }
.emn-btn.is-danger-ghost { background: transparent; border-color: var(--emn-danger, #a4261d); color: var(--emn-danger, #a4261d); }
.emn-btn.is-danger-ghost:hover { background: var(--emn-danger, #a4261d); color: #fff; }
.emn-btn.is-busy { opacity: 0.7; cursor: progress; }
.emn-btn:focus-visible,
.emn-form :is(input, select, textarea):focus-visible,
.emn-portal a:focus-visible,
.emn-tabs a:focus-visible {
	outline: 3px solid var(--emn-gold, #b49558);
	outline-offset: 2px;
}

/* Forms */
.emn-form {
	display: grid;
	gap: 1.25rem;
	padding: clamp(1.25rem, 1rem + 2vw, 2.25rem);
	background: var(--_surface);
	border: 1px solid var(--_line);
	border-radius: var(--_radius);
	box-shadow: 0 1px 0 rgba(21, 52, 73, 0.04), 0 14px 32px -24px rgba(21, 52, 73, 0.3);
}
.emn-form--compact { padding: 1.25rem; gap: 1rem; }
.emn-form__grid { display: grid; gap: 1rem 1.25rem; }
@media (min-width: 40em) {
	.emn-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.emn-form__grid > .is-wide,
	.emn-form__grid > .emn-form__heading,
	.emn-form__grid > .emn-form__intro,
	.emn-form__grid > .emn-field--textarea,
	.emn-form__grid > .emn-field--checkbox,
	.emn-form__grid > .emn-field--radio,
	.emn-form__grid > .emn-field--file { grid-column: 1 / -1; }
}
.emn-form__heading {
	grid-column: 1 / -1;
	margin: 0.75rem 0 0;
	padding-block-start: 1rem;
	border-block-start: 1px solid var(--_line);
	font-family: var(--emn-font-head, inherit);
	font-size: 1.2rem;
	color: var(--_navy);
}
.emn-form__grid > .emn-form__heading:first-child { border-block-start: 0; padding-block-start: 0; margin-block-start: 0; }
.emn-form__intro { margin: 0; color: var(--_muted); font-size: 0.95rem; grid-column: 1 / -1; }
.emn-field { display: grid; gap: 0.4rem; align-content: start; }
.emn-field > label,
.emn-radios > legend { font-weight: 600; color: var(--_navy); font-size: 0.975rem; }
.emn-req { color: var(--_danger); }
.emn-opt { font-weight: 400; color: var(--_muted); font-size: 0.875rem; }
.emn-form :is(input[type="text"], input[type="tel"], input[type="email"], input[type="date"], input[type="datetime-local"], input[type="time"], input[type="number"], input[type="password"], input:not([type]), select, textarea),
.emn-portal :is(input[type="text"], input[type="date"], input[type="email"], input[type="password"], input:not([type]), select, textarea) {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	border: 1.5px solid #cfc6b3;
	border-radius: 12px;
	background: #fff;
	color: var(--_ink);
	font: inherit;
	font-size: 1rem;
}
.emn-form textarea, .emn-portal textarea { min-height: 96px; resize: vertical; }
.emn-form :is(input, select, textarea):hover { border-color: #b7ab92; }
.emn-field.has-error :is(input, select, textarea) { border-color: var(--_danger); box-shadow: 0 0 0 1px var(--_danger); }
.emn-help { margin: 0; font-size: 0.875rem; color: var(--_muted); }
.emn-error { margin: 0; display: flex; gap: 0.4rem; align-items: baseline; color: var(--_danger); font-weight: 600; font-size: 0.9rem; }
.emn-error__icon {
	display: inline-grid; place-items: center; flex: none;
	inline-size: 1.15rem; block-size: 1.15rem; border-radius: 50%;
	background: var(--_danger); color: #fff; font-size: 0.75rem;
}
.emn-check { display: flex; gap: 0.7rem; align-items: flex-start; }
.emn-check input, .emn-radio input { inline-size: 1.35rem; block-size: 1.35rem; margin: 0.1rem 0 0; flex: none; accent-color: var(--_navy); }
.emn-check label { font-weight: 500; color: var(--_ink); line-height: 1.6; }
.emn-check label a { color: var(--_navy); }
.emn-radios { border: 0; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
.emn-radios > legend { margin-block-end: 0.4rem; inline-size: 100%; }
.emn-radio { display: flex; align-items: center; gap: 0.5rem; min-height: 44px; }
.emn-hp { position: absolute !important; inline-size: 1px; block-size: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.emn-form > button[type="submit"] { justify-self: start; }
@media (max-width: 39.99em) {
	.emn-form > button[type="submit"] { justify-self: stretch; }
}
.emn-inline-form { display: inline-block; margin: 0.5rem 0 0; }

/* Alerts */
.emn-alert {
	padding: 1rem 1.15rem;
	border-radius: 14px;
	border: 1px solid;
	border-inline-start-width: 5px;
}
.emn-alert p { margin: 0; }
.emn-alert:focus { outline: 3px solid var(--emn-gold, #b49558); outline-offset: 2px; }
.emn-alert.is-error { background: #fbeceb; border-color: var(--_danger); color: #5f1712; }
.emn-alert.is-success { background: #e9f3ed; border-color: var(--_success); color: #18402a; }
.emn-alert.is-info { background: var(--_peach-soft); border-color: var(--_gold); color: var(--_ink); }
.emn-alert__title { font-weight: 700; margin: 0 0 0.35rem !important; }
.emn-alert ul { margin: 0; padding-inline-start: 1.2rem; }
.emn-alert a { color: inherit; font-weight: 600; }

/* Receipt / status */
.emn-receipt, .emn-status-card {
	padding: clamp(1.25rem, 1rem + 2vw, 2rem);
	border-radius: var(--_radius);
	background: var(--_surface);
	border: 1px solid var(--_line);
	border-block-start: 4px solid var(--_gold);
	display: grid;
	gap: 0.85rem;
}
.emn-receipt:focus, .emn-status-card:focus { outline: 3px solid var(--emn-gold, #b49558); outline-offset: 3px; }
.emn-receipt__title { margin: 0; font-family: var(--emn-font-head, inherit); font-size: 1.45rem; color: var(--_navy); }
.emn-receipt p { margin: 0; }
.emn-receipt__codes { display: grid; gap: 0.75rem; margin: 0; }
@media (min-width: 36em) { .emn-receipt__codes { grid-template-columns: 1fr 1fr; } }
.emn-receipt__codes > div { padding: 0.9rem 1rem; border-radius: 12px; background: var(--_ivory); border: 1px dashed var(--_gold); }
.emn-receipt__codes dt { font-size: 0.85rem; color: var(--_muted); }
.emn-receipt__codes dd { margin: 0.25rem 0 0; font-size: 1.35rem; font-weight: 700; letter-spacing: 0.04em; color: var(--_navy); font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; }
.emn-receipt__warn { padding: 0.75rem 0.9rem; border-radius: 10px; background: var(--_peach-soft); font-size: 0.925rem; }
.emn-receipt__actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.emn-status-card__ref { margin: 0; font-family: ui-monospace, Menlo, Consolas, monospace; color: var(--_muted); }
.emn-status-card + .emn-form { margin-block-start: 1.5rem; }

/* Definition lists */
.emn-dl { display: grid; gap: 0.5rem; margin: 0; }
.emn-dl > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; padding-block: 0.45rem; border-block-end: 1px solid var(--_line); }
.emn-dl dt { color: var(--_muted); }
.emn-dl dd { margin: 0; font-weight: 600; }

/* Badges */
.emn-badge {
	display: inline-flex; align-items: center; gap: 0.3rem;
	padding: 0.2rem 0.7rem; border-radius: 999px;
	font-size: 0.825rem; font-weight: 600; line-height: 1.5;
	background: #eef0f2; color: #2c3a45; border: 1px solid transparent;
}
.emn-badge::before { content: ""; inline-size: 0.45rem; block-size: 0.45rem; border-radius: 50%; background: currentColor; opacity: 0.75; }
.emn-badge:is(.is-accepted, .is-confirmed, .is-paid, .is-present, .is-approved, .is-completed, .is-enrolled) { background: #e3f1e8; color: #1f5a39; }
.emn-badge:is(.is-new, .is-booked, .is-pending, .is-issued, .is-in_review, .is-under_review, .is-requested) { background: #fdf1df; color: #6c4800; }
.emn-badge:is(.is-needs_completion, .is-interview, .is-partial, .is-waitlist, .is-excused) { background: #e7edf6; color: #1d3f63; }
.emn-badge:is(.is-rejected, .is-cancelled, .is-overdue, .is-absent, .is-no_show) { background: #f9e5e3; color: #7d1d15; }

/* Cards (programs, activities, team, news) */
.emn-card-grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16.5rem), 1fr)); }
.emn-programs.is-full { grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); }
.emn-program-card, .emn-activity-card, .emn-team-card, .emn-news-card {
	position: relative;
	display: grid; align-content: start; gap: 0.6rem;
	padding: 1.5rem;
	background: var(--_surface);
	border: 1px solid var(--_line);
	border-radius: var(--_radius);
	box-shadow: 0 1px 0 rgba(21, 52, 73, 0.04), 0 14px 32px -24px rgba(21, 52, 73, 0.3);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.emn-program-card:hover, .emn-activity-card:hover { transform: translateY(-2px); box-shadow: 0 2px 0 rgba(21, 52, 73, 0.04), 0 20px 38px -22px rgba(21, 52, 73, 0.38); }
.emn-program-card h3, .emn-activity-card h3, .emn-team-card h3, .emn-news-card h3 { margin: 0; font-size: 1.2rem; line-height: 1.4; }
.emn-program-card p, .emn-activity-card p, .emn-team-card p, .emn-news-card p { margin: 0; color: var(--_muted); line-height: 1.75; }
.emn-icon { display: inline-grid; place-items: center; inline-size: 3.25rem; block-size: 3.25rem; border-radius: 16px; background: var(--_ivory); border: 1px solid var(--_line); }
.emn-icon svg { inline-size: 2rem; block-size: 2rem; }
.emn-checklist { list-style: none; margin: 0.25rem 0 0; padding: 0; display: grid; gap: 0.4rem; }
.emn-checklist li { position: relative; padding-inline-start: 1.6rem; line-height: 1.7; }
.emn-checklist li::before {
	content: ""; position: absolute; inset-inline-start: 0; inset-block-start: 0.55em;
	inline-size: 0.95rem; block-size: 0.55rem;
	border-inline-start: 2.5px solid var(--_sage); border-block-end: 2.5px solid var(--_sage);
	transform: rotate(-45deg);
}
[dir="rtl"] .emn-checklist li::before { transform: rotate(45deg) scaleX(-1); }
.emn-program-more { color: var(--_ink); }
.emn-more-link { margin: 1.25rem 0 0; }
.emn-more-link a { font-weight: 600; color: var(--_navy); text-underline-offset: 0.3em; }
.emn-team-card { text-align: center; justify-items: center; }
.emn-team-card__mono {
	display: grid; place-items: center; inline-size: 5rem; block-size: 5rem; border-radius: 50%;
	background: var(--_navy); color: var(--_ivory); font-family: var(--emn-font-head, inherit); font-size: 2rem;
	box-shadow: 0 0 0 4px var(--_ivory), 0 0 0 5px var(--_gold);
}
.emn-team-card__photo { inline-size: 6rem; block-size: 6rem; border-radius: 50%; object-fit: cover; }
.emn-team-card__role { color: var(--_gold-text) !important; font-weight: 600; }
.emn-news-card img { border-radius: 12px; inline-size: 100%; block-size: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.emn-news-card time { font-size: 0.85rem; color: var(--_muted); }
.emn-news-card h3 a { color: var(--_navy); text-decoration: none; }

/* Contact & facts */
.emn-contact { display: grid; gap: 0.9rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); }
.emn-contact__item { display: grid; gap: 0.25rem; padding: 1.1rem 1.25rem; border-radius: 14px; background: var(--_surface); border: 1px solid var(--_line); }
.emn-contact__label { font-size: 0.85rem; color: var(--_muted); }
.emn-contact__item a, .emn-contact__item address { font-style: normal; font-weight: 600; color: var(--_navy); }
.emn-facts { display: grid; gap: 0.75rem; margin: 0; }
.emn-facts > div { padding: 1rem 1.2rem; border-radius: 14px; background: var(--_surface); border: 1px solid var(--_line); }
.emn-facts dt { font-weight: 700; color: var(--_navy); }
.emn-facts dd { margin: 0.25rem 0 0; color: var(--_ink); }

/* Events */
.emn-events { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.75rem; }
.emn-event { display: flex; gap: 1rem; align-items: flex-start; padding: 1rem 1.15rem; border-radius: 14px; background: var(--_surface); border: 1px solid var(--_line); }
.emn-event__date { flex: none; min-inline-size: 6.5rem; padding: 0.5rem 0.6rem; border-radius: 10px; background: var(--_navy); color: var(--_ivory); text-align: center; font-weight: 600; font-size: 0.9rem; }
.emn-event h3 { margin: 0; font-size: 1.1rem; }
.emn-event h3 a { color: var(--_navy); }
.emn-event p { margin: 0.25rem 0 0; color: var(--_muted); }

/* Gallery */
.emn-gallery { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr)); }
.emn-gallery__item { margin: 0; overflow: hidden; border-radius: 14px; background: var(--_surface); border: 1px solid var(--_line); }
.emn-gallery__item img, .emn-gallery__item video { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 1; object-fit: cover; }
.emn-gallery__item figcaption { padding: 0.5rem 0.75rem; font-size: 0.85rem; color: var(--_muted); }

/* Tables */
.emn-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.emn-table { inline-size: 100%; border-collapse: collapse; background: var(--_surface); border-radius: 12px; overflow: hidden; }
.emn-table :is(th, td) { padding: 0.7rem 0.85rem; border-block-end: 1px solid var(--_line); text-align: start; vertical-align: top; }
.emn-table thead th { background: var(--_ivory); color: var(--_navy); font-weight: 700; font-size: 0.925rem; }
.emn-supply-list { display: grid; gap: 0.75rem; margin-block-end: 1.75rem; }
.emn-supply-list h3 { margin: 0; }
.emn-supply-list__meta { margin: 0; color: var(--_muted); font-size: 0.9rem; }
@media (max-width: 36em) {
	.emn-supply-list .emn-table thead { position: absolute; clip: rect(0 0 0 0); inline-size: 1px; block-size: 1px; overflow: hidden; }
	.emn-supply-list .emn-table tr { display: grid; grid-template-columns: 1fr auto; padding: 0.5rem 0; border-block-end: 1px solid var(--_line); }
	.emn-supply-list .emn-table td { border: 0; padding: 0.2rem 0.85rem; }
	.emn-supply-list .emn-table td:nth-child(3) { grid-column: 1 / -1; color: var(--_muted); font-size: 0.9rem; }
	.emn-supply-list .emn-table td:nth-child(3):empty { display: none; }
}

/* Portal */
.emn-portal { display: grid; gap: 1.25rem; }
.emn-portal__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; }
.emn-portal__hello { margin: 0; font-weight: 600; color: var(--_navy); }
.emn-portal__child { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.25rem 0.9rem; }
.emn-portal__child h2 { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2rem); }
.emn-portal__class { margin: 0; color: var(--_gold-text); font-weight: 600; }
.emn-child-switch { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.emn-chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0.4rem 1rem; border-radius: 999px; border: 1.5px solid var(--_line); background: var(--_surface); color: var(--_navy); text-decoration: none; font-weight: 600; }
.emn-chip.is-active { background: var(--_navy); border-color: var(--_navy); color: var(--_ivory); }
.emn-tabs { position: relative; margin-inline: calc(var(--emn-gutter, 16px) * -1); padding-inline: var(--emn-gutter, 16px); overflow-x: auto; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.emn-tabs ul { display: flex; gap: 0.4rem; margin: 0; padding: 0 0 0.35rem; list-style: none; inline-size: max-content; }
.emn-tabs a { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 44px; padding: 0.45rem 0.95rem; border-radius: 999px; background: var(--_ivory); border: 1px solid var(--_line); color: var(--_ink); text-decoration: none; font-weight: 500; white-space: nowrap; }
.emn-tabs a.is-active { background: var(--_navy); border-color: var(--_navy); color: var(--_ivory); }
.emn-count { display: inline-grid; place-items: center; min-inline-size: 1.4rem; block-size: 1.4rem; padding-inline: 0.3rem; border-radius: 999px; background: var(--_danger); color: #fff; font-size: 0.75rem; }
.emn-portal__view { display: grid; gap: 1.1rem; }
.emn-cards { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
.emn-card-box, .emn-daily, .emn-progress, .emn-invoice, .emn-consent, .emn-announcement, .emn-receipt-print {
	padding: 1.25rem 1.35rem; border-radius: var(--_radius); background: var(--_surface); border: 1px solid var(--_line);
	display: grid; gap: 0.7rem; align-content: start;
}
.emn-card-box h3, .emn-progress h3, .emn-invoice h3, .emn-consent h3, .emn-announcement h3 { margin: 0; font-size: 1.15rem; }
.emn-daily h4 { margin: 0; color: var(--_navy); }
.emn-invoice header { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; align-items: center; }
.emn-note-quote { margin: 0; padding: 0.75rem 1rem; border-inline-start: 4px solid var(--_gold); background: var(--_ivory); border-radius: 0 12px 12px 0; }
[dir="rtl"] .emn-note-quote { border-radius: 12px 0 0 12px; }
.emn-note-quote p { margin: 0; }
.emn-domain { padding-block-start: 0.6rem; border-block-start: 1px solid var(--_line); }
.emn-domain h4 { margin: 0 0 0.3rem; color: var(--_navy); }
.emn-domain p { margin: 0 0 0.3rem; }
.emn-reco { margin: 0; padding: 0.6rem 0.85rem; border-radius: 10px; background: var(--_sage-soft); }
.emn-updated { margin: 0; font-size: 0.825rem; color: var(--_muted); }
.emn-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.emn-list > li { padding: 0.75rem 0.9rem; border-radius: 12px; background: var(--_surface); border: 1px solid var(--_line); }
.emn-list > li.is-unread { border-inline-start: 4px solid var(--_gold); }
.emn-card-box .emn-list > li { padding: 0.5rem 0.75rem; }
.emn-thread { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.emn-msg { max-inline-size: 92%; padding: 0.75rem 1rem; border-radius: 14px; background: var(--_ivory); border: 1px solid var(--_line); }
.emn-msg.is-mine { margin-inline-start: auto; background: var(--_sage-soft); }
.emn-msg p { margin: 0; }
.emn-msg__meta { font-size: 0.8rem; color: var(--_muted); margin-block-end: 0.25rem !important; }
.emn-details > summary { cursor: pointer; font-weight: 600; color: var(--_navy); min-height: 44px; display: flex; align-items: center; }
.emn-files { margin: 0; padding-inline-start: 1.2rem; }
.emn-portal--login form { display: grid; gap: 0.9rem; max-inline-size: 26rem; padding: 1.5rem; background: var(--_surface); border: 1px solid var(--_line); border-radius: var(--_radius); }
.emn-portal--login form p { margin: 0; display: grid; gap: 0.35rem; }
.emn-portal--login label { font-weight: 600; color: var(--_navy); }
.emn-portal--login .login-remember label { display: flex; gap: 0.5rem; align-items: center; font-weight: 500; }
.emn-portal--login input[type="submit"] { min-height: 48px; padding: 0.65rem 1.4rem; border-radius: 999px; border: 0; background: var(--emn-navy, #153449); color: var(--emn-ivory, #fbf8f0); font: inherit; font-weight: 600; cursor: pointer; justify-self: start; }

/* Empty state (theme provides the main style) */
:where(.emn-empty) { margin: 0; padding: 1.5rem; border: 1px dashed var(--emn-line, #e6dfcf); border-radius: 14px; color: var(--emn-muted, #56626c); text-align: center; }

/* Assistant */
.emn-assistant { position: fixed; inset-block-end: 5.5rem; inset-inline-end: 1rem; z-index: 60; display: grid; justify-items: end; gap: 0.5rem; }
.emn-assistant__toggle { min-height: 48px; padding: 0.6rem 1.1rem; border-radius: 999px; border: 0; background: var(--_navy); color: var(--_ivory); font: inherit; font-weight: 600; box-shadow: 0 10px 24px -12px rgba(14, 37, 54, 0.6); cursor: pointer; }
.emn-assistant__panel { inline-size: min(22rem, calc(100vw - 2rem)); max-block-size: 70vh; overflow: auto; padding: 1rem; border-radius: 16px; background: var(--_surface); border: 1px solid var(--_line); box-shadow: 0 20px 40px -20px rgba(14, 37, 54, 0.5); display: grid; gap: 0.6rem; }
.emn-assistant__intro { margin: 0; font-size: 0.9rem; color: var(--_muted); }
.emn-assistant__log p { margin: 0 0 0.4rem; padding: 0.5rem 0.7rem; border-radius: 10px; }
.emn-assistant__log .is-q { background: var(--_ivory); }
.emn-assistant__log .is-a { background: var(--_sage-soft); }
.emn-assistant__form { display: flex; gap: 0.4rem; }
.emn-assistant__form input { flex: 1; min-height: 44px; padding: 0.5rem 0.75rem; border: 1.5px solid #cfc6b3; border-radius: 10px; font: inherit; }

.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); block-size: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; inline-size: 1px; word-wrap: normal !important; }

@media (prefers-reduced-motion: reduce) {
	.emn-program-card, .emn-activity-card { transition: none; }
	.emn-program-card:hover, .emn-activity-card:hover { transform: none; }
}

@media print {
	.emn-tabs, .emn-child-switch, .emn-portal__top, .emn-assistant, .emn-portal form, [data-emn-print] { display: none !important; }
	.emn-receipt-print { border: 0; }
}
