/* ============================================================================
   rtl.css — вёрстка справа налево. Подключается ТОЛЬКО когда включённый язык
   пишется справа налево (сейчас — арабский): base.html и home.html, условие
   site_lang_rtl. Остальным языкам файл не отдаётся вовсе.

   Все правила — под html[dir="rtl"]: это зеркала физических свойств
   (margin-left, left, text-align: left …) из css/*.css и из <style>-блоков
   шаблонов. Добавил в вёрстку отступ слева/справа или text-align: left —
   допиши сюда зеркало (секции названы по файлу-источнику).

   Почему отдельный файл, а не логические свойства на месте: вывод для
   ru / en / zh не меняется ни на байт, и старые браузеры без margin-inline
   не теряют отступы.
   ========================================================================== */

/* ── 1. Общее ──────────────────────────────────────────────────────────── */

/* Арабская вязь рвётся от межбуквенного интервала. */
html[dir="rtl"] *,
html[dir="rtl"] *::before,
html[dir="rtl"] *::after { letter-spacing: 0 !important; }

/* Списки и таблицы по умолчанию. :where() держит специфичность исходных
   правил (ul / table th): страничные стили по-прежнему сильнее. */
:where(html[dir="rtl"]) ul,
:where(html[dir="rtl"]) ol { padding-left: 0; padding-right: 1.5em; }
:where(html[dir="rtl"]) table th,
:where(html[dir="rtl"]) table td { text-align: right; }

/* ── 2. Что остаётся слева направо ─────────────────────────────────────── */

/* Код, ключи, команды, адреса. */
html[dir="rtl"] pre,
html[dir="rtl"] code,
html[dir="rtl"] kbd,
html[dir="rtl"] samp,
html[dir="rtl"] .code-block,
html[dir="rtl"] .code-body,
html[dir="rtl"] .cl { direction: ltr; unicode-bidi: isolate; text-align: left; }
html[dir="rtl"] code,
html[dir="rtl"] kbd,
html[dir="rtl"] samp { text-align: inherit; }

/* Данные в ячейках и в выделениях: номер «+49…», IP, email, сумма. Направление
   берётся по первой «сильной» букве: арабский текст остаётся справа налево, а
   строка из цифр и латиницы не переворачивается («49…+», «1.00$»). */
html[dir="rtl"] td,
html[dir="rtl"] th,
html[dir="rtl"] strong,
html[dir="rtl"] b,
html[dir="rtl"] output,
html[dir="rtl"] .mono,
html[dir="rtl"] .otp-phone,
html[dir="rtl"] .mini-num,
html[dir="rtl"] .mini-code,
html[dir="rtl"] .number,
html[dir="rtl"] .otp-meta,
html[dir="rtl"] .otp-offer-price,
html[dir="rtl"] .esim-field-value,
html[dir="rtl"] .eotp-confirm-value,
html[dir="rtl"] .balance-amount,
html[dir="rtl"] .nav-balance,
html[dir="rtl"] .price,
html[dir="rtl"] .tg-price,
html[dir="rtl"] .pxg-price,
html[dir="rtl"] .gbval,
html[dir="rtl"] .num,
html[dir="rtl"] .number-value,
html[dir="rtl"] .phone-number,
html[dir="rtl"] .otp-code,
html[dir="rtl"] .otp-code-box,
html[dir="rtl"] .otp-history-code,
html[dir="rtl"] .price-cell,
html[dir="rtl"] .proxy-topup-sum,
html[dir="rtl"] .nav-balance__amount { unicode-bidi: plaintext; }

/* Чужой текст — SMS, письма, сообщения тикетов: язык заранее неизвестен,
   направление по первой букве (как dir="auto"). */
html[dir="rtl"] .sms-content-cell,
html[dir="rtl"] .sms-direct-content,
html[dir="rtl"] .sms-content-full,
html[dir="rtl"] .sms-content-box,
html[dir="rtl"] .sms-preview,
html[dir="rtl"] .mail-content-cell,
html[dir="rtl"] .mail-subject,
html[dir="rtl"] .mail-preview,
html[dir="rtl"] .message-text,
html[dir="rtl"] .ticket-preview { unicode-bidi: plaintext; }

/* Поля, куда вводят латиницу и цифры: email, телефон, адрес, пароль, число.
   Подсказка-плейсхолдер на арабском остаётся прижатой вправо. */
html[dir="rtl"] input[type="email"],
html[dir="rtl"] input[type="tel"],
html[dir="rtl"] input[type="url"],
html[dir="rtl"] input[type="number"],
html[dir="rtl"] input[type="password"],
html[dir="rtl"] input[inputmode="numeric"],
html[dir="rtl"] input[inputmode="decimal"],
html[dir="rtl"] input[name="username"],
html[dir="rtl"] input[name="promo_code"],
html[dir="rtl"] input[readonly],
html[dir="rtl"] textarea[readonly] { direction: ltr; text-align: right; }

/* ── 3. Значки направления ─────────────────────────────────────────────── */

html[dir="rtl"] .pxg-caret { display: inline-block; transform: scaleX(-1); }

/* ── 4. Инлайновые style="" в шаблонах (правилом их не достать иначе) ──── */

html[dir="rtl"] input[type="checkbox"][style*="margin-right: 0.5rem"] { margin-right: 0 !important; margin-left: 0.5rem !important; }
html[dir="rtl"] ul[style*="padding-left: 1.5rem"] { padding-left: 0 !important; padding-right: 1.5rem !important; }
html[dir="rtl"] ul[style*="margin: 1rem 0 0 1.25rem"] { margin: 1rem 1.25rem 0 0 !important; padding-left: 0 !important; padding-right: 0.5rem !important; }
html[dir="rtl"] [style*="float: right"] { float: left !important; }
html[dir="rtl"] th[style*="text-align:left"] { text-align: right !important; }
html[dir="rtl"] [style*="margin-left:0.5rem;padding:0.1rem 0.45rem"] { margin-left: 0 !important; margin-right: 0.5rem !important; }

/* ── 5. Зеркала физических свойств (по файлам-источникам) ──────────────── */

/* ── static/css/design-system.css ── */
html[dir="rtl"] .ds-theme-toggle {
  margin-left: 0;
  margin-right: 0.25rem;
}
html[dir="rtl"] .nav-badge {
  margin-left: 0;
  margin-right: 0.25rem;
}
html[dir="rtl"] .help-button {
  margin-left: 0;
  margin-right: 0.4rem;
}
html[dir="rtl"] table td {
  text-align: right;
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-tab-badge {
    right: auto;
    left: 22%;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-drawer:not([hidden]) {
    border-left: 0;
    border-right: 1px solid var(--ds-border);
    right: auto;
    left: 0;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-drawer-theme {
    text-align: right;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-drawer-logout button {
    text-align: right;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-cards-mobile thead {
    left: auto;
    right: -9999px;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-cards-mobile td {
    text-align: left;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-cards-mobile td::before {
    text-align: right;
  }
}

/* ── static/css/email_otp.css ── */
html[dir="rtl"] .eotp-back-btn {
  padding: 0.45rem 0.6rem 0.45rem 0.8rem;
}
html[dir="rtl"] .eotp-chip {
  padding: 0.4rem 0.45rem 0.4rem 0.85rem;
}
html[dir="rtl"] .eotp-tag {
  padding: 0.32rem 0.7rem 0.32rem 0.4rem;
}
html[dir="rtl"] .eotp-confirm-value {
  text-align: left;
}
@media (max-width: 560px) {
  html[dir="rtl"] .eotp-confirm-value {
    text-align: right;
  }
}
html[dir="rtl"] .eotp-alt-btn {
  margin: 0 0 0.4rem 0.4rem;
}
@media (max-width: 560px) {
  html[dir="rtl"] .eotp-alt-btn {
    margin-right: 0;
    margin-left: 0;
  }
}
html[dir="rtl"] .mbx-cart-table th,
html[dir="rtl"] .mbx-cart-table td {
  text-align: right;
}
@media (max-width: 560px) {
  html[dir="rtl"] .mbx-cart-table thead {
    left: auto;
    right: -9999px;
  }
}

/* ── static/css/esim.css ── */
html[dir="rtl"] .otp-tile .esim-tile-native {
  right: auto;
  left: 6px;
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .esim-offer .esim-offer-price {
    margin-left: 0;
    margin-right: 0;
    text-align: right;
  }
}

/* ── static/css/news.css ── */
html[dir="rtl"] .news-x {
  right: auto;
  left: 12px;
}

/* ── static/css/otp.css ── */
html[dir="rtl"] .otp-prefix-chip {
  padding: 0.2rem 0.6rem 0.2rem 0.3rem;
}
html[dir="rtl"] .otp-search input {
  padding: 0.6rem 2.2rem 0.6rem 0.75rem;
}
html[dir="rtl"] .otp-search::before {
  left: auto;
  right: 0.7rem;
}
html[dir="rtl"] .otp-tile {
  text-align: right;
  padding: 0.7rem 0.8rem 0.7rem 1.9rem;
}
html[dir="rtl"] .otp-star {
  right: auto;
  left: 5px;
}
html[dir="rtl"] .otp-list-scroll {
  padding-right: 0;
  padding-left: 0.15rem;
}
html[dir="rtl"] .otp-sort {
  margin-left: 0;
  margin-right: auto;
}
html[dir="rtl"] .otp-offer-price {
  text-align: left;
}
html[dir="rtl"] .otp-activation-card-header .otp-meta {
  margin-left: 0;
  margin-right: auto;
}
html[dir="rtl"] .otp-modal-body.padded ul {
  padding-left: 0;
  padding-right: 1.4rem;
}
html[dir="rtl"] .otp-history-table th,
html[dir="rtl"] .otp-history-table td {
  text-align: right;
}
html[dir="rtl"] .mini-av {
  margin-left: 0;
  margin-right: -7px;
}
@media (max-width: 640px) {
  html[dir="rtl"] .otp-sort {
    margin-left: 0;
    margin-right: 0;
  }
}
@media (max-width: 640px) {
  html[dir="rtl"] .otp-activation-card-header .otp-meta {
    margin-left: 0;
    margin-right: 0;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .otp-tile {
    padding: 0.7rem 0.7rem 0.7rem 1.9rem;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .otp-sort {
    margin-left: 0;
    margin-right: 0;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .otp-offer-price {
    margin-left: 0;
    margin-right: 0;
    text-align: right;
  }
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .mini-code .mini-copy-code {
    margin-left: 0;
    margin-right: 0.4rem;
  }
}

/* ── static/css/partrent_shop.css ── */
html[dir="rtl"] .part-period-opts {
  margin-left: 0;
  margin-right: auto;
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .part-period-opts {
    margin-left: 0;
    margin-right: 0;
  }
}

/* ── static/css/typography.css ── */
html[dir="rtl"] ol {
  padding-left: 0;
  padding-right: 1.5em;
}

/* ── templates/base.html ── */
html[dir="rtl"] .dropdown-menu {
  right: auto;
  left: 0;
}
html[dir="rtl"] .dropdown-badge {
  margin-left: 0;
  margin-right: 0.5rem;
}
html[dir="rtl"] .language-switcher {
  margin-left: 0;
  margin-right: 0.5rem;
}
html[dir="rtl"] .user-dropdown-menu {
  left: auto;
  right: 0;
}

/* ── templates/esim/order_detail.html ── */
html[dir="rtl"] .esim-field .esim-field-value {
  text-align: left;
}
html[dir="rtl"] .esim-guide-section ol {
  padding-left: 0;
  padding-right: 1.2rem;
}
html[dir="rtl"] .esim-guide-close {
  right: auto;
  left: 0.8rem;
}

/* ── templates/home.html ── */
html[dir="rtl"] .home-hero::before {
  right: auto;
  left: -200px;
}
html[dir="rtl"] .home-hero::after {
  left: auto;
  right: 30%;
}
html[dir="rtl"] .win-host {
  margin-left: 0;
  margin-right: 6px;
}
html[dir="rtl"] .live {
  margin-left: 0;
  margin-right: auto;
}
html[dir="rtl"] .news-row {
  text-align: right;
}
html[dir="rtl"] .tile-badge {
  right: auto;
  left: 14px;
}
html[dir="rtl"] .pxc-badge {
  margin-left: 0;
  margin-right: 0.4rem;
}
html[dir="rtl"] .code-filename {
  margin-left: 0;
  margin-right: 0.5rem;
}

/* ── templates/partials/_tariff_grid.html ── */
html[dir="rtl"] .tg-table th,
html[dir="rtl"] .tg-table td {
  text-align: left;
}
html[dir="rtl"] .tg-th-country,
html[dir="rtl"] td.tg-country {
  text-align: right;
}
html[dir="rtl"] td.tg-country .num-flag {
  margin-right: 0;
  margin-left: 0.45rem;
}
html[dir="rtl"] .tg-act {
  text-align: left;
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .tg-table-wrap::after {
    right: auto;
    left: 0;
    border-radius: 8px 0 0 8px;
  }
}
html[dir="rtl"] .pxg-head {
  text-align: right;
}
html[dir="rtl"] .pxg-price {
  text-align: left;
}

/* ── templates/registration/register.html ── */
html[dir="rtl"] .alert-error ul {
  padding-left: 0;
  padding-right: 1.25rem;
}

/* ── templates/sms/_webhook_config.html ── */
html[dir="rtl"] .webhook-deliveries th,
html[dir="rtl"] .webhook-deliveries td {
  text-align: right;
}

/* ── templates/sms/balance.html ── */
html[dir="rtl"] .pay-method-staff-badge {
  margin-left: 0;
  margin-right: 0.35rem;
}
html[dir="rtl"] .transaction-modal-table th,
html[dir="rtl"] .transaction-modal-table td {
  text-align: right;
}

/* ── templates/sms/compare_countries.html ── */
html[dir="rtl"] .table-card th,
html[dir="rtl"] .table-card td {
  text-align: right;
}

/* ── templates/sms/country_detail.html ── */
html[dir="rtl"] .price-table th,
html[dir="rtl"] .price-table td {
  text-align: right;
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .price-table td::before {
    margin-right: 0;
    margin-left: 0.5rem;
  }
}

/* ── templates/sms/dashboard.html ── */
html[dir="rtl"] .vps-badge {
  margin-left: 0;
  margin-right: 6px;
}
html[dir="rtl"] .vps-tag {
  margin-right: 0;
  margin-left: 2px;
}
html[dir="rtl"] .dash-rent-menu {
  left: auto;
  right: 0;
}
html[dir="rtl"] .auto-renewal-link {
  margin-left: 0;
  margin-right: .4rem;
}
html[dir="rtl"] .proxy-badge-rot {
  margin-left: 0;
  margin-right: .4rem;
}
html[dir="rtl"] .dashboard-empty-steps {
  padding-left: 0;
  padding-right: 1.2rem;
  text-align: right;
}
html[dir="rtl"] .btn-expand {
  margin-left: 0;
  margin-right: 0.5rem;
}
html[dir="rtl"] .modal-table th {
  text-align: right;
}
html[dir="rtl"] .modal-footer {
  text-align: left;
}
html[dir="rtl"] .country-flag {
  margin-right: 0;
  margin-left: 0.25rem;
}
html[dir="rtl"] .checkbox-label input[type="checkbox"] {
  margin-right: 0;
  margin-left: 0.5rem;
}

/* ── templates/sms/devices_list.html ── */
html[dir="rtl"] .btn-save {
  margin-left: 0;
  margin-right: 0.35rem;
}

/* ── templates/sms/did_line_calls.html ── */
html[dir="rtl"] .table-card .td-right {
  text-align: left;
}

/* ── templates/sms/otp_shop.html ── */
html[dir="rtl"] .otp-results th,
html[dir="rtl"] .otp-results td {
  text-align: right;
}
html[dir="rtl"] #helpOtpModal .help-modal-body ul {
  padding-left: 0;
  padding-right: 1.5rem;
}

/* ── templates/sms/partrent/rental.html ── */
html[dir="rtl"] .matrix-table:not(#offlineMatrix) thead th {
  text-align: right;
}

/* ── templates/sms/prices.html ── */
html[dir="rtl"] .price-table td.num,
html[dir="rtl"] .price-table th.num {
  text-align: left;
}

/* ── templates/sms/proxy_detail.html ── */
html[dir="rtl"] .proxy-row strong {
  margin-right: 0;
  margin-left: 0.4rem;
}

/* ── templates/sms/referral_dashboard.html ── */
html[dir="rtl"] .ref-table th {
  text-align: right;
}
html[dir="rtl"] .ref-table td.num,
html[dir="rtl"] .ref-table th.num {
  text-align: left;
}

/* ── templates/sms/service_detail.html ── */
html[dir="rtl"] .feature-item {
  border-left: 0;
  border-right: 3px solid var(--ds-accent);
}

/* ── templates/sms/shop.html ── */
html[dir="rtl"] .channels-table th,
html[dir="rtl"] .channels-table td {
  text-align: right;
}
html[dir="rtl"] .info-message {
  border-left: 0;
  border-right: 4px solid var(--ds-accent);
}
html[dir="rtl"] .info-message ul {
  margin: 0.4rem 1.25rem 0 0;
}
html[dir="rtl"] .help-modal-body ul {
  padding-left: 0;
  padding-right: 1.5rem;
}
html[dir="rtl"] span.loading {
  margin-left: 0;
  margin-right: 0.5rem;
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-cards-mobile .channels-table td {
    text-align: left;
  }
}

/* ── templates/sms/shop_offline.html ── */
html[dir="rtl"] .how-it-works {
  border-left: 0;
  border-right: 4px solid var(--ds-accent);
}
html[dir="rtl"] .matrix-table thead th.col-country {
  text-align: right;
}
html[dir="rtl"] .country-code {
  margin-left: 0;
  margin-right: 0.25rem;
}
html[dir="rtl"] .sort-btn .sort-mark {
  margin-left: 0;
  margin-right: 0.2rem;
}
html[dir="rtl"] .help-body ul {
  margin: 0 1.25rem 0.9rem 0;
}

/* ── templates/sms/shop_proxies.html ── */
html[dir="rtl"] #helpProxyModal .help-modal-body ul {
  padding-left: 0;
  padding-right: 1.5rem;
}

/* ── templates/sms/shop_proxies_resell.html ── */
html[dir="rtl"] .pxr .cat {
  text-align: right;
}
html[dir="rtl"] .pxr .cat .check {
  right: auto;
  left: 14px;
}
html[dir="rtl"] .pxr .countries {
  padding-right: 0;
  padding-left: 4px;
}
html[dir="rtl"] .pxr .gbval {
  text-align: left;
}
html[dir="rtl"] .pxr #pxrQtyInput {
  text-align: left;
}

/* ── templates/sms/sms_detail.html ── */
html[dir="rtl"] .detail-card th,
html[dir="rtl"] .detail-card td {
  text-align: right;
}

/* ── templates/sms/telegram_link.html ── */
html[dir="rtl"] .tg-steps {
  padding-left: 0;
  padding-right: 1.2rem;
}

/* ── templates/sms/ticket_detail.html ── */
html[dir="rtl"] .message.user {
  border-left: 1px solid var(--ds-border);
  border-right: 3px solid var(--ds-accent);
}
html[dir="rtl"] .message.admin {
  border-left: 1px solid var(--ds-border);
  border-right: 3px solid var(--ds-green);
}
html[dir="rtl"] .attachment-item {
  margin-right: 0;
  margin-left: 0.7rem;
}
@media (max-width: 767.98px) {
  html[dir="rtl"] .attachment-item {
    margin-right: 0;
    margin-left: 0;
  }
}

/* ── templates/sms/ticket_list.html ── */
html[dir="rtl"] .help-ticket-type {
  border-left: 0;
  border-right: 3px solid var(--ds-accent);
  border-radius: var(--ds-radius) 0 0 var(--ds-radius);
}
html[dir="rtl"] .ticket-item.new {
  border-left: 1px solid var(--ds-border);
  border-right: 3px solid var(--ds-accent);
}
html[dir="rtl"] .unread-badge {
  margin-left: 0;
  margin-right: 0.35rem;
}

/* ── 6. То, что зеркалом одного свойства не выразить ───────────────────── */

/* Выдвижное мобильное меню: выезжает с левого края. */
@media (max-width: 767.98px) {
  html[dir="rtl"] .ds-drawer:not([hidden]) { transform: translateX(-100%); }
  html[dir="rtl"] .ds-drawer.is-open:not([hidden]) { transform: translateX(0); }
}

/* Тень-подсказка «таблица прокручивается» — у левого края. */
@media (max-width: 767.98px) {
  html[dir="rtl"] .tg-table-wrap::after {
    background: linear-gradient(to right, var(--ds-surface, #1a1a2e) 0%, transparent 100%);
  }
}

/* Витрина offline-аренды и история тикетов: свои значения отступов. */
html[dir="rtl"] #offlineMatrix .country-flag { margin-right: 0; margin-left: 0.35rem; }
html[dir="rtl"] #helpTicketsModal .help-modal-body ul { padding-left: 0; padding-right: 1.4rem; }
