/* Shared school UI tokens. Interface_Style supplies the validated administrator
 * values on :root. Component fallbacks keep independently rendered views usable.
 * This asset is loaded after the module styles; it never styles the host theme. */
@font-face{font-family:"HSM Persian Digits";src:url("../fonts/vazirmatn/hsm-persian-digits.woff2") format("woff2");font-style:normal;font-weight:100 900;font-display:swap;unicode-range:U+0030-0039,U+0660-0669,U+06F0-06F9}
:root {
	--hsm-font-family: "HSM Persian Digits", "HSM IranSans", IRANSans, IRANSansX, Vazirmatn, Tahoma, Arial, sans-serif;
	--hsm-font-xs: 12px;
	--hsm-font-sm: 13px;
	--hsm-font-base: 14px;
	--hsm-font-lg: 16px;
	--hsm-font-xl: 18px;
	--hsm-font-2xl: 22px;
	--hsm-font-display: 28px;
	--hsm-font-button: 14px;
	--hsm-font-input: 14px;
	--hsm-font-icon: 18px;
	--hsm-font-icon-lg: 24px;
	--hsm-control-height: 44px;
	--hsm-radius: 10px;
	--hsm-radius-sm: 6px;
	--hsm-radius-lg: 14px;
	--hsm-space-1: 4px;
	--hsm-space-2: 8px;
	--hsm-space-3: 12px;
	--hsm-space-4: 16px;
	--hsm-space-5: 20px;
	--hsm-space-6: 24px;
	--hsm-space-8: 32px;
	--hsm-theme-primary: #5b4ee8;
	--hsm-theme-primary-dark: #4b40be;
	--hsm-theme-primary-soft: #f2f1fd;
	--hsm-theme-primary-ink: #4337c3;
	--hsm-theme-primary-border: #5b4ee8;
	--hsm-theme-on-primary: #fff;
	--hsm-theme-focus: #5b4ee8;
	--hsm-theme-text: #172033;
	--hsm-theme-muted: #596579;
	--hsm-theme-border: #dce2ec;
	--hsm-theme-surface: #fff;
	--hsm-theme-background: #f6f7fb;
	--hsm-theme-success: #087b55;
	--hsm-theme-success-soft: #ebf4f1;
	--hsm-theme-success-ink: #087b55;
	--hsm-theme-on-success: #fff;
	--hsm-theme-warning: #b45309;
	--hsm-theme-warning-soft: #f9f1eb;
	--hsm-theme-warning-ink: #92400e;
	--hsm-theme-on-warning: #fff;
	--hsm-theme-danger: #b4233f;
	--hsm-theme-danger-soft: #f9edf0;
	--hsm-theme-danger-ink: #b4233f;
	--hsm-theme-on-danger: #fff;
}

/* Digit glyphs retain the existing font size and values. Only plugin-owned
 * admin wrappers opt in; unrelated WordPress and site pages are untouched. */
[data-hsm-presentation="fa"]{font-family:var(--hsm-font,var(--hsm-font-family))}

/* Body-mounted dialogs and pickers need their own aliases and font context. */
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,
	.hsm-composition-dialog,.hsm-combobox,.hsm-jalali-selects) {
	--hsm-primary: var(--hsm-theme-primary);
	--hsm-primary-dark: var(--hsm-theme-primary-dark);
	--hsm-primary-soft: var(--hsm-theme-primary-soft);
	--hsm-primary-ink: var(--hsm-theme-primary-ink);
	--hsm-primary-border: var(--hsm-theme-primary-border);
	--hsm-on-primary: var(--hsm-theme-on-primary);
	--hsm-focus: var(--hsm-theme-focus);
	--hsm-text: var(--hsm-theme-text);
	--hsm-muted: var(--hsm-theme-muted);
	--hsm-border: var(--hsm-theme-border);
	--hsm-surface: var(--hsm-theme-surface);
	--hsm-bg: var(--hsm-theme-background);
	--hsm-success: var(--hsm-theme-success);
	--hsm-success-soft: var(--hsm-theme-success-soft);
	--hsm-success-ink: var(--hsm-theme-success-ink);
	--hsm-on-success: var(--hsm-theme-on-success);
	--hsm-warning: var(--hsm-theme-warning);
	--hsm-warning-soft: var(--hsm-theme-warning-soft);
	--hsm-warning-ink: var(--hsm-theme-warning-ink);
	--hsm-on-warning: var(--hsm-theme-on-warning);
	--hsm-danger: var(--hsm-theme-danger);
	--hsm-danger-soft: var(--hsm-theme-danger-soft);
	--hsm-danger-ink: var(--hsm-theme-danger-ink);
	--hsm-on-danger: var(--hsm-theme-on-danger);
	font-family: var(--hsm-font,var(--hsm-font-family));
	font-size: var(--hsm-font-base);
	line-height: 1.8;
	color: var(--hsm-text);
}

/* A deliberately selected personal palette overrides the school defaults. */
html.hsm-personal-theme :is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,
	.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,
	.hsm-tt-modal,.hsm-composition-dialog,.hsm-combobox,.hsm-jalali-selects) {
	--hsm-primary: var(--hsm-personal-primary,var(--hsm-theme-primary));
	--hsm-primary-dark: var(--hsm-personal-primary-dark,var(--hsm-theme-primary-dark));
	--hsm-primary-soft: var(--hsm-personal-primary-soft,var(--hsm-theme-primary-soft));
	--hsm-primary-ink: var(--hsm-personal-primary-ink,var(--hsm-theme-primary-ink));
	--hsm-primary-border: var(--hsm-personal-primary-border,var(--hsm-theme-primary-border));
	--hsm-on-primary: var(--hsm-personal-primary-text,var(--hsm-theme-on-primary));
	--hsm-focus: var(--hsm-personal-primary-border,var(--hsm-theme-focus));
	--hsm-success: var(--hsm-personal-success,var(--hsm-theme-success));
	--hsm-success-soft: var(--hsm-personal-success-soft,var(--hsm-theme-success-soft));
	--hsm-success-ink: var(--hsm-personal-success-ink,var(--hsm-theme-success-ink));
	--hsm-on-success: var(--hsm-personal-success-text,var(--hsm-theme-on-success));
	--hsm-warning: var(--hsm-personal-warning,var(--hsm-theme-warning));
	--hsm-warning-soft: var(--hsm-personal-warning-soft,var(--hsm-theme-warning-soft));
	--hsm-warning-ink: var(--hsm-personal-warning-ink,var(--hsm-theme-warning-ink));
	--hsm-on-warning: var(--hsm-personal-warning-text,var(--hsm-theme-on-warning));
	--hsm-danger: var(--hsm-personal-danger,var(--hsm-theme-danger));
	--hsm-danger-soft: var(--hsm-personal-danger-soft,var(--hsm-theme-danger-soft));
	--hsm-danger-ink: var(--hsm-personal-danger-ink,var(--hsm-theme-danger-ink));
	--hsm-on-danger: var(--hsm-personal-danger-text,var(--hsm-theme-on-danger));
}

/* Component aliases resolve through the same effective palette, including the
 * user's existing choice. Status/type colors from activity definitions remain. */
.hsm-learning { --learning-ink:var(--hsm-text); --learning-muted:var(--hsm-muted); --learning-line:var(--hsm-border); --learning-soft:var(--hsm-bg); --learning-primary:var(--hsm-primary); }
.hsm-activity-workspace { --workspace-ink:var(--hsm-text); --workspace-muted:var(--hsm-muted); --workspace-line:var(--hsm-border); --workspace-accent:var(--hsm-primary); }
.hsm-exams { --exam-ink:var(--hsm-text); --exam-muted:var(--hsm-muted); --exam-line:var(--hsm-border); --exam-soft:var(--hsm-bg); --exam-primary:var(--hsm-primary); }
.hsm-teacher-desk { --td-border:var(--hsm-border); --td-muted:var(--hsm-muted); --td-surface:var(--hsm-surface); --td-shell:var(--hsm-bg); color:var(--hsm-text); }
.hsm-timetable { --tt-border:var(--hsm-border); --tt-muted:var(--hsm-muted); --tt-blue:var(--hsm-primary); color:var(--hsm-text); }
.hsm-attendance { --attendance-blue:var(--hsm-primary); --attendance-green:var(--hsm-success); --attendance-red:var(--hsm-danger); --attendance-amber:var(--hsm-warning); color:var(--hsm-text); }

/* Theme heading rules must not enlarge UI dialog titles. Authored educational
 * content retains the hierarchy and formatting supplied by its author. */
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(h1,h2,h3,h4,h5,h6):not(:where(.hsm-learning-content-body *,.hsm-content-detail__body *,[data-tt-body] *)) {
	font-family: var(--hsm-font,var(--hsm-font-family));
	line-height: 1.65;
	color: inherit;
	overflow-wrap: anywhere;
}
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	h1:not(:where(.hsm-learning-content-body *,.hsm-content-detail__body *,[data-tt-body] *)) { font-size:var(--hsm-font-display); }
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	h2:not(:where(.hsm-learning-content-body *,.hsm-content-detail__body *,[data-tt-body] *)) { font-size:var(--hsm-font-2xl); }
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	h3:not(:where(.hsm-learning-content-body *,.hsm-content-detail__body *,[data-tt-body] *)) { font-size:var(--hsm-font-xl); }
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	h4:not(:where(.hsm-learning-content-body *,.hsm-content-detail__body *,[data-tt-body] *)) { font-size:var(--hsm-font-lg); }
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(h5,h6):not(:where(.hsm-learning-content-body *,.hsm-content-detail__body *,[data-tt-body] *)) { font-size:var(--hsm-font-base); }

/* Native controls and all action-button families share a type/size contract.
 * No fixed text height: Persian labels can wrap on a narrow screen. */
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(button:not(:where(.hsm-module-card,.hsm-workspace-stage,.hsm-td-stat,.hsm-td-dashboard-class,.hsm-learning-class-card,.hsm-workspace-title)),input[type="button"],input[type="submit"],input[type="reset"],
	.hsm-button,.button,.hsm-learning-button,.hsm-workspace-button,.hsm-td-button,.hsm-td-file,.hsm-tt-button,.hsm-exams-button) {
	box-sizing: border-box;
	font-family: var(--hsm-font,var(--hsm-font-family));
	font-size: var(--hsm-font-button);
	font-weight: 600;
	line-height: 1.65;
	min-height: var(--hsm-control-height);
	min-width: var(--hsm-control-height);
	height: auto;
	max-width: 100%;
	padding: var(--hsm-space-2) var(--hsm-space-3);
	border-radius: var(--hsm-radius);
	white-space: normal;
	overflow-wrap: anywhere;
	text-align: center;
	text-decoration: none;
}

:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	header > :is(button,.hsm-button,.button,.hsm-learning-button,.hsm-workspace-button) { flex-shrink:0; }

:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),select,textarea) {
	box-sizing: border-box;
	font-family: var(--hsm-font,var(--hsm-font-family));
	font-size: var(--hsm-font-input);
	line-height: 1.65;
	min-height: var(--hsm-control-height);
	max-width: 100%;
	border-radius: var(--hsm-radius);
	color: var(--hsm-text);
}

/* These existing compact overrides used !important to evade the WordPress
 * theme. Keep the override local and make the size centrally configurable. */
.hsm-modal-action-form>button { min-height:var(--hsm-control-height)!important; padding:var(--hsm-space-2) var(--hsm-space-3)!important; }
.hsm-timetable .hsm-tt-lesson { min-height:var(--hsm-control-height)!important; }
.hsm-combobox .hsm-combobox__option { min-height:var(--hsm-control-height)!important; font-size:var(--hsm-font-input)!important; }
.hsm-combobox .hsm-combobox__input,.hsm-jalali-selects select { min-height:var(--hsm-control-height)!important; font-size:var(--hsm-font-input)!important; }

/* Icon-only targets retain a square hit area rather than text-button padding. */
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(.hsm-icon-button,.hsm-learning-icon-button,.hsm-modal__close,.hsm-app-action-close,.hsm-workspace-drag-handle) {
	width: var(--hsm-control-height);
	min-width: var(--hsm-control-height);
	min-height: var(--hsm-control-height);
	padding: var(--hsm-space-1);
	font-size: var(--hsm-font-icon);
}
.hsm-combobox .hsm-combobox__toggle { top:0; width:var(--hsm-control-height); height:var(--hsm-control-height); min-height:var(--hsm-control-height); padding:0; font-size:var(--hsm-font-icon); }
.hsm-teacher-desk .hsm-td-day-discipline [data-td-action="quick-discipline"] { font-size:var(--hsm-font-icon); width:var(--hsm-control-height); min-width:var(--hsm-control-height); padding:var(--hsm-space-1); }

/* The action surface is neutral; only explicit primary/soft/danger variants
 * express an action's emphasis. Activity-defined category colors are untouched. */
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(.hsm-button,.button,.hsm-learning-button,.hsm-workspace-button,.hsm-exams-button,.hsm-td-file,.hsm-tt-button) {
	border: 1px solid var(--hsm-border);
	background-color: var(--hsm-surface);
	color: var(--hsm-text);
}
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(.hsm-button--primary,.button-primary,.hsm-learning-button--primary,.hsm-workspace-button.is-primary,
	.hsm-td-primary,.hsm-tt-primary,.hsm-exams-button--primary,
	.hsm-attendance button.primary,.hsm-composition button.primary,.hsm-composition-dialog button.primary,.hsm-pagination button.is-active) {
	background: var(--hsm-primary);
	border-color: var(--hsm-primary-border);
	color: var(--hsm-on-primary);
}
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(.hsm-button--soft,.hsm-learning-button--soft,.hsm-workspace-button.is-active,.hsm-learning-tabs button.is-active) {
	background: var(--hsm-primary-soft);
	color: var(--hsm-primary-ink);
	border-color: var(--hsm-border);
}

:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(.hsm-button--danger,.button-link-delete,.hsm-learning-button.is-danger,.hsm-learning-icon-button.is-danger,.hsm-exams-button--danger) {
	background: var(--hsm-danger-soft);
	border-color: var(--hsm-danger-ink);
	color: var(--hsm-danger-ink);
}

:is(.hsm-admin,.hsm-modal,dialog[class*="hsm-"]) .hsm-reset-execute {
	background:var(--hsm-danger); border-color:var(--hsm-danger-ink); color:var(--hsm-on-danger);
}

:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(button,a,input,select,textarea,summary):focus-visible {
	outline: 2px solid var(--hsm-focus);
	outline-offset: 3px;
}
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	:is(button,input,select,textarea):disabled { opacity:.6; cursor:not-allowed; }

/* Small UI annotations use the shared readable size; authored lesson content
 * keeps its own headings, emphasis, and typography. */
:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,
	dialog[class*="hsm-"],.hsm-modal,.hsm-learning-modal,.hsm-td-modal,.hsm-exams-modal,.hsm-tt-modal,.hsm-composition-dialog)
	small:not(:where(.hsm-learning-content-body *,.hsm-content-detail__body *,[data-tt-body] *)) {
	font-size: var(--hsm-font-xs);
	line-height: 1.8;
}

/* Common feedback surfaces follow the effective palette; individual workflow
 * labels may still use the center's explicitly configured status/type colors. */
:is(.hsm-message--success,.hsm-form-message.is-success,.hsm-learning-announcer.is-success) { background:var(--hsm-success-soft,var(--hsm-theme-success-soft)); color:var(--hsm-success-ink,var(--hsm-theme-success-ink)); }
:is(.hsm-message--warning,.hsm-form-message.is-warning) { background:var(--hsm-warning-soft,var(--hsm-theme-warning-soft)); color:var(--hsm-warning-ink,var(--hsm-theme-warning-ink)); }
:is(.hsm-message--error,.hsm-form-message.is-error,.hsm-learning-announcer.is-error) { background:var(--hsm-danger-soft,var(--hsm-theme-danger-soft)); color:var(--hsm-danger-ink,var(--hsm-theme-danger-ink)); }

/* Keep the plugin's surfaces scoped, including dialogs moved outside the app. */
:is(.hsm-learning,.hsm-exams,.hsm-composition,.hsm-content-detail,.hsm-account-menu,.hsm-interface-style,.hsm-modal__dialog,
	.hsm-learning-modal__dialog,.hsm-tt-dialog,.hsm-composition-dialog,
	.hsm-online-editor,.hsm-online-popup,.hsm-online-access) { background-color:var(--hsm-surface); color:var(--hsm-text); }
.hsm-app { background-color:var(--hsm-bg); }
.hsm-account-menu--guest a.is-primary { background:var(--hsm-primary); border-color:var(--hsm-primary-border); color:var(--hsm-on-primary); }
.hsm-app :is(.hsm-hero,.hsm-library-hero) { background:var(--hsm-primary); color:var(--hsm-on-primary); }
.hsm-app .hsm-library-hero :is(h2,p) { color:inherit; }
.hsm-app .hsm-library-hero > div > span { color:inherit; }
.hsm-learning-close > [data-learning-close-message]:empty { display:none; margin:0; }
.hsm-learning-content-card__actions > .hsm-learning-close { margin:0; }

/* Authentication shortcodes also appear inside page builders and dark site
 * headers. Keep each label with its own explicit surface: a theme's important
 * white button background must never be paired with our on-primary white text.
 * Important declarations are deliberately limited to these public controls. */
:is(.hsm-auth[data-hsm-auth],.hsm-registration[data-hsm-registration]) :is(button.hsm-button,a.hsm-button),
nav.hsm-account-menu.hsm-account-menu--guest > a {
	font-family:var(--hsm-font,var(--hsm-font-family));
	font-size:var(--hsm-font-button);
	line-height:1.65;
	background:var(--hsm-surface) !important;
	border:1px solid var(--hsm-border) !important;
	color:var(--hsm-text) !important;
	-webkit-text-fill-color:var(--hsm-text) !important;
	text-decoration:none !important;
	text-shadow:none !important;
}
:is(.hsm-auth[data-hsm-auth],.hsm-registration[data-hsm-registration]) :is(button.hsm-button--primary,a.hsm-button--primary),
nav.hsm-account-menu.hsm-account-menu--guest > a.is-primary {
	background:var(--hsm-primary) !important;
	border-color:var(--hsm-primary-border) !important;
	color:var(--hsm-on-primary) !important;
	-webkit-text-fill-color:var(--hsm-on-primary) !important;
}
:is(.hsm-auth[data-hsm-auth],.hsm-registration[data-hsm-registration]) :is(button.hsm-button--soft,a.hsm-button--soft) {
	background:var(--hsm-primary-soft) !important;
	color:var(--hsm-primary-ink) !important;
	-webkit-text-fill-color:var(--hsm-primary-ink) !important;
}
.hsm-auth[data-hsm-auth] :is(button.hsm-button--link,a:not(.hsm-button)) {
	color:var(--hsm-text) !important;
	-webkit-text-fill-color:var(--hsm-text) !important;
}
.hsm-auth[data-hsm-auth] .hsm-auth-recovery > a { background:var(--hsm-surface) !important; text-decoration:underline; text-underline-offset:.2em; }
.hsm-registration[data-hsm-registration] .hsm-registration-verification > p {
	background:var(--hsm-success-soft);
	color:var(--hsm-success-ink);
	padding:var(--hsm-space-1) var(--hsm-space-2);
	border-radius:var(--hsm-radius-sm);
}
.hsm-auth[data-hsm-auth] .hsm-auth__tabs > button {
	background:var(--hsm-bg) !important;
	border:1px solid transparent !important;
	color:var(--hsm-muted) !important;
	-webkit-text-fill-color:var(--hsm-muted) !important;
	text-shadow:none !important;
}
.hsm-auth[data-hsm-auth] .hsm-auth__tabs > button.is-active {
	background:var(--hsm-primary-soft) !important;
	border-color:var(--hsm-primary-border) !important;
	color:var(--hsm-primary-ink) !important;
	-webkit-text-fill-color:var(--hsm-primary-ink) !important;
}
:is(.hsm-auth[data-hsm-auth],.hsm-registration[data-hsm-registration]) :is(button,a):focus-visible,
nav.hsm-account-menu.hsm-account-menu--guest > a:focus-visible {
	outline:2px solid var(--hsm-focus) !important;
	outline-offset:3px;
}
:is(.hsm-auth[data-hsm-auth],.hsm-registration[data-hsm-registration]) button:disabled {
	opacity:1;
	transform:none;
}
nav.hsm-account-menu.hsm-account-menu--guest > a {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	box-sizing:border-box;
	min-height:var(--hsm-control-height);
	min-width:var(--hsm-control-height);
	max-width:100%;
	padding:var(--hsm-space-2) var(--hsm-space-3);
	border-radius:var(--hsm-radius);
	font-family:var(--hsm-font,var(--hsm-font-family));
	font-size:var(--hsm-font-button);
	line-height:1.65;
	font-weight:600;
	white-space:normal;
}

/* Action labels need word-sized columns on phones; a flex basis of zero can
 * otherwise squeeze Persian labels into vertical letters at a larger scale. */
@media (max-width:650px) {
	.hsm-learning .hsm-learning-content-card__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:var(--hsm-space-2); }
	.hsm-learning .hsm-learning-content-card__actions > :is(.hsm-learning-button,.hsm-button) { width:100%; min-width:0; }
	.hsm-learning .hsm-learning-content-card__actions > :is(.hsm-learning-response,.hsm-learning-close,.hsm-learning-more,p) { grid-column:1/-1; min-width:0; }
	.hsm-learning .hsm-learning-close > button { width:100%; }
}

/* Respect motion preferences without changing application behavior. */
@media (prefers-reduced-motion:reduce) {
	:is(.hsm-app,.hsm-auth,.hsm-public-card,.hsm-admin,.hsm-modal,dialog[class*="hsm-"]) :is(button,a) { transition:none; }
}
