/*
 * AlphaX Arabic — RTL alignment layer for Frappe v15 desk.
 *
 * Plain CSS on purpose (not a *.bundle.css): Frappe runs bundles through rtlcss for
 * Arabic users, which would flip these rules. Everything is scoped to html.sa-rtl,
 * a class alphax_arabic.js adds only for Arabic users when the setting is on.
 */

/* ------------------------------------------------------------------ */
/* Arabic font (Latin text keeps Frappe's Inter; Arabic glyphs use Plex) */
/* ------------------------------------------------------------------ */
@font-face {
	font-family: "IBM Plex Sans Arabic";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/assets/alphax_arabic/fonts/ibm-plex-sans-arabic-arabic-400-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: "IBM Plex Sans Arabic";
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url("/assets/alphax_arabic/fonts/ibm-plex-sans-arabic-arabic-500-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: "IBM Plex Sans Arabic";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("/assets/alphax_arabic/fonts/ibm-plex-sans-arabic-arabic-600-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: "IBM Plex Sans Arabic";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("/assets/alphax_arabic/fonts/ibm-plex-sans-arabic-arabic-700-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}

html.sa-font,
html.sa-font body {
	--font-stack: "InterVariable", "Inter", "IBM Plex Sans Arabic", "-apple-system", "BlinkMacSystemFont",
		"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
		sans-serif;
}
/* web pages (login, portal) when the desk JS is not loaded */
html[dir="rtl"][lang^="ar"] body {
	font-family: "InterVariable", "Inter", "IBM Plex Sans Arabic", "-apple-system", "Segoe UI", sans-serif;
}

/* ------------------------------------------------------------------ */
/* Mixed Arabic / English text                                        */
/* An English label inside an RTL page puts trailing ".", ":" and "(" */
/* on the wrong side. plaintext lets each paragraph pick its own       */
/* direction; text-align keeps it right-aligned with the Arabic UI.    */
/* ------------------------------------------------------------------ */
html.sa-rtl .control-label,
html.sa-rtl .help-box,
html.sa-rtl .frappe-control .description,
html.sa-rtl .control-value,
html.sa-rtl .like-disabled-input,
html.sa-rtl .form-section .section-head,
html.sa-rtl .form-dashboard-section .section-head,
html.sa-rtl .onboarding-widget-box .widget-title,
html.sa-rtl .onboarding-widget-box .widget-subtitle,
html.sa-rtl .onboarding-step,
html.sa-rtl .onboarding-step-preview .step-description,
html.sa-rtl .onboarding-step-preview .step-title,
html.sa-rtl .widget .widget-title,
html.sa-rtl .widget .widget-subtitle,
html.sa-rtl .shortcut-widget-box .widget-title,
html.sa-rtl .links-widget-box .link-item,
html.sa-rtl .list-subject,
html.sa-rtl .list-sidebar .sidebar-label,
html.sa-rtl .standard-sidebar-item .sidebar-item-label,
html.sa-rtl .msgprint,
html.sa-rtl .modal-title,
html.sa-rtl .alert-body,
html.sa-rtl .checkbox .label-area,
html.sa-rtl .awesomplete li,
html.sa-rtl .timeline-content,
html.sa-rtl .form-message,
html.sa-rtl :is(.widget-title, .widget-subtitle, .control-label, .section-head, .modal-title, .title-text, .sidebar-item-label) > span,
html.sa-rtl .layout-main-section :is(p, li, h1, h2, h3, h4, h5, h6),
html.sa-rtl .modal-body :is(p, li),
html.sa-rtl .onboarding-step-body,
html.sa-rtl .ql-editor p {
	unicode-bidi: plaintext;
	text-align: right;
}
html.sa-rtl .checkbox .label-area {
	display: inline-block;
}

/* Text inputs: type English, see it left-to-right, but keep the box right-aligned */
html.sa-rtl .frappe-control[data-fieldtype="Data"] input,
html.sa-rtl .frappe-control[data-fieldtype="Small Text"] textarea,
html.sa-rtl .frappe-control[data-fieldtype="Text"] textarea,
html.sa-rtl .frappe-control[data-fieldtype="Long Text"] textarea,
html.sa-rtl .frappe-control[data-fieldtype="Link"] input,
html.sa-rtl .frappe-control[data-fieldtype="Dynamic Link"] input,
html.sa-rtl .frappe-control[data-fieldtype="Read Only"] .control-value,
html.sa-rtl .frappe-control[data-fieldtype="Autocomplete"] input,
html.sa-rtl .frappe-control[data-fieldtype="Select"] select {
	unicode-bidi: plaintext;
	text-align: right;
}

/* Code, JSON, HTML editors and password always LTR */
html.sa-rtl .frappe-control[data-fieldtype="Code"] .ace_editor,
html.sa-rtl .frappe-control[data-fieldtype="JSON"] .ace_editor,
html.sa-rtl .frappe-control[data-fieldtype="HTML Editor"] .ace_editor,
html.sa-rtl .ace_editor,
html.sa-rtl pre,
html.sa-rtl code {
	direction: ltr;
	text-align: left;
	unicode-bidi: isolate;
}
html.sa-rtl .frappe-control[data-fieldtype="Password"] input {
	direction: ltr;
	text-align: right;
}

/* ------------------------------------------------------------------ */
/* Numbers & currency                                                 */
/* Default: right-aligned like the Arabic text. "Left" setting mirrors. */
/* ------------------------------------------------------------------ */
html.sa-rtl .frappe-control:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"], [data-fieldtype="Duration"]) :is(input, .control-value, .like-disabled-input),
html.sa-rtl .grid-static-col:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"]) .static-area,
html.sa-rtl .grid-static-col:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"]),
html.sa-rtl .grid-heading-row .grid-static-col:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"]) .static-area {
	text-align: right !important;
	white-space: nowrap;
}
html.sa-rtl.sa-num-left .frappe-control:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"], [data-fieldtype="Duration"]) :is(input, .control-value, .like-disabled-input),
html.sa-rtl.sa-num-left .grid-static-col:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"]) .static-area,
html.sa-rtl.sa-num-left .grid-static-col:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"]) {
	text-align: left !important;
}
/* Report / list datatables */
html.sa-rtl .dt-cell__content--align-right,
html.sa-rtl .dt-cell__content.text-right {
	text-align: right !important;
}
html.sa-rtl.sa-num-left .dt-cell__content--align-right,
html.sa-rtl.sa-num-left .dt-cell__content.text-right {
	text-align: left !important;
}
html.sa-rtl .list-row-col.text-right,
html.sa-rtl .list-row-head .list-row-col.text-right {
	justify-content: flex-start;
	text-align: right;
}
html.sa-rtl.sa-num-left .list-row-col.text-right {
	justify-content: flex-end;
	text-align: left;
}
/* keep minus sign and digits in the right order inside Arabic text */
html.sa-rtl .frappe-control:is([data-fieldtype="Currency"], [data-fieldtype="Float"], [data-fieldtype="Int"], [data-fieldtype="Percent"]) input {
	unicode-bidi: plaintext;
}

/* ------------------------------------------------------------------ */
/* Date picker                                                        */
/* ------------------------------------------------------------------ */
html.sa-rtl .datepicker {
	direction: rtl;
	font-family: var(--font-stack);
}
html.sa-rtl .datepicker--day-name {
	font-size: 11px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: clip;
}
/* prev (right) arrow points right, next (left) arrow points left */
html.sa-rtl .datepicker--nav-action svg {
	transform: scaleX(-1);
}
html.sa-rtl .datepicker--nav-title {
	unicode-bidi: plaintext;
}

/* ------------------------------------------------------------------ */
/* Dropdowns, popovers, search                                        */
/* ------------------------------------------------------------------ */
html.sa-rtl .dropdown-menu {
	text-align: right;
}
html.sa-rtl .dropdown-menu .dropdown-item {
	unicode-bidi: plaintext;
	text-align: right;
}
html.sa-rtl .awesomplete > ul {
	text-align: right;
}
html.sa-rtl .search-bar input::placeholder {
	unicode-bidi: plaintext;
}

/* ------------------------------------------------------------------ */
/* Grids (child tables)                                               */
/* ------------------------------------------------------------------ */
html.sa-rtl .grid-heading-row .static-area,
html.sa-rtl .grid-static-col .static-area {
	unicode-bidi: plaintext;
	text-align: right;
}
html.sa-rtl .grid-footer .grid-buttons {
	display: flex;
	gap: 6px;
}

/* ------------------------------------------------------------------ */
/* Charts must stay LTR (axes and tooltips are drawn in LTR)          */
/* ------------------------------------------------------------------ */
html.sa-rtl .frappe-chart,
html.sa-rtl .chart-container .frappe-chart {
	direction: ltr;
}

/* ------------------------------------------------------------------ */
/* Reports                                                            */
/* ------------------------------------------------------------------ */
html.sa-rtl .report-summary .summary-label,
html.sa-rtl .report-summary .summary-value,
html.sa-rtl .dt-cell__content,
html.sa-rtl .dt-cell__content--header {
	unicode-bidi: plaintext;
}
html.sa-rtl .report-summary .summary-label {
	text-align: center;
}
html.sa-rtl .dt-cell__content:not(.dt-cell__content--align-right):not(.text-right) {
	text-align: right;
}

/* ------------------------------------------------------------------ */
/* Language switch button (all users)                                 */
/* ------------------------------------------------------------------ */
.ax-lang-item {
	display: flex;
	align-items: center;
}
.ax-lang-switch {
	min-width: 30px;
	height: 28px;
	padding: 0 8px !important;
	border-radius: var(--border-radius-md, 8px);
	border: 1px solid var(--border-color, #e2e2e2) !important;
	font-weight: 600;
	font-size: 13px;
	line-height: 26px;
	color: var(--text-color) !important;
	background: var(--fg-color, #fff);
	font-family: "IBM Plex Sans Arabic", "InterVariable", "Inter", sans-serif;
}
.ax-lang-switch:hover {
	background: var(--fg-hover-color, #f3f3f3);
}

/* Almarai (optional font) */
@font-face {
	font-family: "Almarai";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("/assets/alphax_arabic/fonts/almarai-arabic-400-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
	font-family: "Almarai";
	font-style: normal;
	font-weight: 600 700;
	font-display: swap;
	src: url("/assets/alphax_arabic/fonts/almarai-arabic-700-normal.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
html.sa-font-almarai,
html.sa-font-almarai body {
	--font-stack: "InterVariable", "Inter", "Almarai", "-apple-system", "BlinkMacSystemFont", "Segoe UI", sans-serif;
}
