/* ═══════════════ تنظیماتِ نمایش — پورتالِ خدمات ═══════════════
   فقط سه صفحهٔ service / ai-assistant / virtual-class این فایل را بار می‌کنند
   و هر قاعدهٔ تنظیم‌محور زیرِ html[data-svc-*] است که فقط
   templates/partials/svc-prefs-head.php می‌گذارد: دو قفلِ مستقل تا چیزی به
   پورتال‌هایِ دیگر نشت نکند. فایل‌هایِ مشترک (portal-mobile، chat-widget،
   service-portal، accounting) ویرایش نمی‌شوند؛ هرجا لازم بود از همین‌جا با
   گزینش‌گرِ قوی‌تر رونویسی شده‌اند. */

/* ─────────────── ۱. دکمهٔ تنظیمات ─────────────── */
.svcp-btn {
    display: inline-flex; align-items: center; justify-content: center;
    inline-size: 40px; block-size: 40px; min-inline-size: 40px; padding: 0; margin: 0;
    border-radius: 12px; border: 1px solid var(--ha-line); background: var(--ha-paper);
    color: var(--ha-blue-deep); cursor: pointer; flex: 0 0 auto; font: inherit; line-height: 1;
}
.svcp-btn:hover { background: var(--ha-blue-soft); }
.svcp-btn:focus-visible { outline: 3px solid var(--ha-blue-deep); outline-offset: 2px; }
.svcp-btn svg {
    inline-size: 22px; block-size: 22px; fill: none; stroke: currentColor;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round;
}
.svcp-btn--on-dark { background: transparent; border-color: rgba(255, 255, 255, .24); color: #e2e8f0; }
.svcp-btn--on-dark:hover { background: rgba(255, 255, 255, .08); }
.svcp-btn--on-dark:focus-visible { outline-color: #7dd3fc; }
@media (max-width: 720px) {
    .svcp-btn { inline-size: 44px; block-size: 44px; min-inline-size: 44px; }
}

/* جای دکمه در هر سربرگ. [hidden] روی نشانِ هویت را هم این‌جا قطعی می‌کنیم:
   display:flex/inline-flex آن نشان‌ها هیدن را بی‌اثر می‌کرد و یک کپسولِ خالی
   جایِ دکمه را می‌گرفت. */
[data-who][hidden] { display: none !important; }
.ha-header > .svcp-btn { margin-inline-start: auto; }
.svc-header--app > .svcp-btn { margin-inline-start: auto; }
.svc-header--app > .svc-header__user { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vc-head > .svcp-btn { margin-inline-start: auto; }
.vc-head > .vc-who:not([hidden]) + .svcp-btn { margin-inline-start: 0; }
/* با دکمهٔ تازه جمعِ عرضِ سربرگ روی گوشی از ۳۷۵px گذشت و ردیف می‌شکست (آیکونِ
   خانه به خطِ دوم می‌رفت). نشانِ هویت کوچک می‌شود، نه سربرگ دوخطی. */
@media (max-width: 720px) {
    body.svc-body .ha-header { flex-wrap: nowrap !important; }
    .ha-header__who { flex-shrink: 1; min-width: 0; }
    .ha-header--assist .ha-who { flex: 1 1 0; min-width: 0; overflow: hidden; }
    .ha-header--assist .ha-home { min-width: 44px; min-height: 44px; }
}

/* ─────────────── ۲. پنل ─────────────── */
body.svcp-open { overflow: hidden; }
.svcp-dlg:not([open]) { display: none; }
.svcp-dlg {
    position: fixed; margin: 0; padding: 0; z-index: 1350;
    inset-block-start: 72px; inset-block-end: auto; inset-inline-end: 24px; inset-inline-start: auto;
    inline-size: min(400px, calc(100vw - 32px)); max-inline-size: none;
    max-block-size: calc(100vh - 96px); max-block-size: calc(100dvh - 96px);
    overflow: auto; overscroll-behavior: contain;
    border: 1px solid var(--ha-line); border-radius: 16px;
    background: var(--ha-paper); color: var(--ha-ink);
    box-shadow: 0 24px 60px rgba(0, 0, 0, .25);
    font-family: var(--ha-font, 'Vazirmatn', system-ui, sans-serif); text-align: right;
}
.svcp-dlg::backdrop { background: rgba(0, 0, 0, .2); }
.svcp-backdrop { position: fixed; inset: 0; z-index: 1349; background: rgba(0, 0, 0, .2); }
@media (max-width: 720px) {
    .svcp-dlg {
        inset: auto 0 0 0; inline-size: 100%;
        max-block-size: 88vh; max-block-size: 88dvh;
        border-radius: 20px 20px 0 0; border-inline: 0; border-block-end: 0;
    }
    .svcp-dlg::backdrop, .svcp-backdrop { background: rgba(0, 0, 0, .35); }
}
.svcp-form {
    display: flex; flex-direction: column; gap: .8rem; margin: 0;
    padding: 1rem 1rem calc(.75rem + env(safe-area-inset-bottom, 0px));
}
.svcp-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.svcp-title { margin: 0; font-size: 1.05rem; font-weight: 800; color: var(--ha-ink); }
.svcp-x {
    inline-size: 44px; block-size: 44px; flex: 0 0 auto; padding: 0;
    border-radius: 12px; border: 1px solid var(--ha-line); background: var(--ha-sunk);
    color: var(--ha-ink); font: inherit; font-size: 1rem; cursor: pointer;
}
.svcp-note { margin: 0; font-size: .8rem; line-height: 1.8; color: var(--ha-muted); }
.svcp-sample {
    margin: 0; padding: .7rem .85rem; border-radius: 12px;
    background: var(--ha-sunk); border: 1px solid var(--ha-line);
    font-size: .95rem; line-height: 1.8; color: var(--ha-ink);
}
.svcp-group { border: 0; margin: 0; padding: 0; min-inline-size: 0; }
.svcp-legend { padding: 0; margin: 0 0 .4rem; font-size: .9rem; font-weight: 700; color: var(--ha-ink); }
.svcp-seg { display: grid; grid-template-columns: repeat(auto-fit, minmax(4.6em, 1fr)); gap: 6px; }
.svcp-opt { position: relative; display: block; margin: 0; cursor: pointer; }
.svcp-opt input {
    position: absolute; opacity: 0; inline-size: 1px !important; block-size: 1px !important;
    min-height: 0 !important; margin: 0; padding: 0; pointer-events: none;
}
.svcp-opt span {
    display: flex; align-items: center; justify-content: center; min-block-size: 44px;
    padding: .35rem .5rem; border: 1px solid var(--ha-line); border-radius: 12px;
    background: var(--ha-paper); color: var(--ha-ink); font-size: .86rem; line-height: 1.4; text-align: center;
}
.svcp-opt:hover span { border-color: var(--ha-blue); }
.svcp-opt input:checked + span {
    border: 2px solid var(--ha-blue-deep); background: var(--ha-blue-soft);
    color: var(--ha-blue-deep); font-weight: 800;
}
.svcp-opt input:focus-visible + span { outline: 3px solid var(--ha-ink); outline-offset: 2px; }
.svcp-desc { margin: .35rem 0 0; font-size: .76rem; line-height: 1.7; color: var(--ha-muted); }
.svcp-desc--warn { color: var(--ha-ink); }
.svcp-status { margin: 0; min-block-size: 1.3em; font-size: .8rem; color: var(--ha-ink); }
.svcp-actions {
    display: flex; gap: 8px; position: sticky; inset-block-end: 0;
    background: var(--ha-paper); padding-block: .5rem 0;
}
.svcp-reset, .svcp-done {
    flex: 1 1 0; min-block-size: 44px; border-radius: 12px; font: inherit;
    font-size: .88rem; font-weight: 700; cursor: pointer;
}
.svcp-reset { border: 1px solid var(--ha-line); background: var(--ha-sunk); color: var(--ha-ink); }
.svcp-done { border: 0; background: var(--ha-blue-deep); color: #fff; }
.svcp-x:focus-visible, .svcp-reset:focus-visible, .svcp-done:focus-visible { outline: 3px solid var(--ha-ink); outline-offset: 2px; }

/* ─────────────── ۳. اندازهٔ متن ───────────────
   ریشه بزرگ می‌شود (همهٔ rem ها دنبالش) و px های ثابت با --svc-k ضرب
   می‌شوند. portal-mobile.css روی گوشی html را 17px/16px کرده؛ بلوک‌هایِ
   رسانه‌ایِ زیر باید همان مبنا را تکرار کنند، وگرنه قاعدهٔ دسکتاپ روی گوشی
   مبنا را به 16px برمی‌گرداند. */
html[data-svc-text="115"] { --svc-k: 1.15; }
html[data-svc-text="130"] { --svc-k: 1.3; }
html[data-svc-text="150"] { --svc-k: 1.5; }
html[data-svc-text] { font-size: calc(100% * var(--svc-k)); }
@media (max-width: 720px) {
    html[data-svc-text] {
        font-size: calc(17px * var(--svc-k));
        --acc-m-text: calc(17px * var(--svc-k));
        --acc-m-small: calc(14px * var(--svc-k));
        --acc-m-tiny: calc(14px * var(--svc-k));
    }
}
@media (max-width: 390px) {
    html[data-svc-text] {
        font-size: calc(16px * var(--svc-k));
        --acc-m-text: calc(16px * var(--svc-k));
        --acc-m-small: calc(13.5px * var(--svc-k));
        --acc-m-tiny: calc(13.5px * var(--svc-k));
    }
}

/* px های !important مشترک روی گوشی (portal-mobile.css) */
@media (max-width: 720px) {
    html[data-svc-text] body.svc-body :is(.ha-btn, .acc-btn, .svc-btn) { font-size: calc(15px * var(--svc-k)) !important; }
    html[data-svc-text] body.svc-body :is(input, select, textarea) { font-size: calc(16px * var(--svc-k)) !important; }
    html[data-svc-text] body.svc-body :is(code, .svc-msg) { font-size: calc(13px * var(--svc-k)) !important; }
    html[data-svc-text] body.svc-body :is([class*="brand__sub"], [class*="-kicker"], [class*="__badge"], [class*="__tag"], [class*="-chip"], [class*="-hint"], dt) {
        font-size: calc(12.5px * var(--svc-k)) !important;
    }
}

/* داشبورد — service-portal.css با ThreePush مشترک است، پس فقط رونویسی */
html[data-svc-text] body.svc-body .svc-brand { font-size: calc(15px * var(--svc-k)); }
html[data-svc-text] body.svc-body :is(.svc-header__user, .svc-header__btn, .svc-header__nav a) { font-size: calc(13px * var(--svc-k)); }
html[data-svc-text] body.svc-body .svc-app--workspace .svc-header { height: auto; min-height: 60px; flex-wrap: wrap; padding-block: 8px; }
html[data-svc-text] body.svc-body .svc-dash-hero__greeting { font-size: calc(16px * var(--svc-k)); }
html[data-svc-text] body.svc-body .svc-dash-hero__sub { font-size: calc(12.5px * var(--svc-k)); }
html[data-svc-text] body.svc-body .svc-dash-hero__role { font-size: calc(11.5px * var(--svc-k)); }
html[data-svc-text] body.svc-body .svc-notif-panel__head,
html[data-svc-text] body.svc-body .svc-notif-item strong { font-size: calc(12.5px * var(--svc-k)); }
html[data-svc-text] body.svc-body .svc-notif-item p { font-size: calc(11.5px * var(--svc-k)); }
html[data-svc-text] body.svc-body :is(.svc-notif-readall, .svc-notif-empty) { font-size: calc(12px * var(--svc-k)); }
html[data-svc-text] body.svc-body .svc-notif-item time { font-size: calc(10.5px * var(--svc-k)); }
html[data-svc-text] body.svc-body .svc-notif-badge { font-size: calc(10px * var(--svc-k)); height: auto; min-height: 16px; padding: 1px 4px; }

/* ویجتِ چت (مشترک) — فقط متنِ پنجره؛ باقیِ اندازه‌هایش px و inline است */
html[data-svc-text] body.svc-body #acc-chat-window { font-size: calc(13px * var(--svc-k)); }

/* چیدمان‌هایی که با متنِ بزرگ می‌شکستند */
html[data-svc-text] body.svc-body .ha-brand__mark { inline-size: auto; min-inline-size: 42px; padding-inline: 6px; }
html[data-svc-text] body.svc-body .ha-app__label { overflow-wrap: anywhere; }
@media (max-width: 720px) {
    html:is([data-svc-text="130"], [data-svc-text="150"]) body.svc-body .ha-header:not(.ha-header--assist) .ha-brand__text { display: none; }
    html[data-svc-text] body.svc-body .ha-assist-input { max-height: 40vh; max-height: 40dvh; }
    html:is([data-svc-text="130"], [data-svc-text="150"]) body.svc-body .ha-chat__bar { flex-wrap: wrap; }
    html:is([data-svc-text="130"], [data-svc-text="150"]) body.svc-body .ha-chat__input { flex: 1 1 100%; }
    html:is([data-svc-text="130"], [data-svc-text="150"]) body.svc-body :is(.ha-chat__map, .ha-chat__enough) { white-space: normal; }
}
@media (max-width: 560px) {
    html[data-svc-text="150"] body.svc-body .ha-apps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
html[data-svc-text] body.svc-body .ha-chat__log { max-height: min(calc(260px * var(--svc-k)), 55vh); }
html[data-svc-text] body.svc-body .ha-chat--talk .ha-chat__log { max-height: min(calc(360px * var(--svc-k)), 60vh); }
html[data-svc-text] body.svc-body :is(.ha-login__panel, .ha-map__panel, .ha-page__panel) { max-height: calc(100vh - 24px); overflow: auto; }
html[data-svc-text] body.svc-body :is(.ha-page__close, .ha-diag__close) { inline-size: auto; block-size: auto; min-inline-size: max(30px, 2em); min-block-size: max(30px, 2em); }
html[data-svc-text] body.svc-body .ha-diag__no { inline-size: auto; min-inline-size: 26px; padding-inline: .3em; }
html[data-svc-text] body.svc-body .vc-row__n { flex: 0 0 auto; inline-size: auto; block-size: auto; min-inline-size: 26px; min-block-size: 26px; padding: .15em .35em; }
html[data-svc-text] body.svc-body .vc-topic__check { inline-size: auto; block-size: auto; min-inline-size: 18px; min-block-size: 18px; padding: .1em .25em; }
html[data-svc-text] body.svc-body :is(.vc-topicdetail__head, .vc-topicdetail__tabs) { flex-wrap: wrap; }
html[data-svc-text] body.svc-body .vc-topicdetail__head strong { min-width: 0; flex: 1 1 10em; }
html[data-svc-text] body.svc-body :is(.vc-topic__label, .vc-row__t strong, .vc-search__match, .vc-topicdetail__text, .vc-concept, .vc-turn, .vc-qanswer, .vc-case__code) { overflow-wrap: anywhere; }
html[data-svc-text] body.svc-body .vc-topics__grid { grid-template-columns: repeat(auto-fill, minmax(calc(120px * var(--svc-k)), 1fr)); }
html[data-svc-text] body.svc-body .vc-chat { max-height: min(calc(420px * var(--svc-k)), 65vh); }
html[data-svc-text] body.svc-body .vc-who { max-width: calc(160px * var(--svc-k)); }
@media (max-width: 1100px) {
    html:is([data-svc-text="130"], [data-svc-text="150"]) body.svc-body .vc-body { flex-direction: column; }
    html:is([data-svc-text="130"], [data-svc-text="150"]) body.svc-body .vc-list { flex: 0 0 auto; }
}

/* ─────────────── ۴. تمِ تیره ───────────────
   فقط صفحهٔ اصلی، دستیار و کلاس. داشبوردها (data-svc-surface="app") رنگ‌هایِ
   ثابتِ فراوان در فایل‌هایِ مشترک دارند؛ نیمه‌تیره بدتر از روشن است، پس
   آن‌جا روشن می‌ماند. تصاویر هرگز معکوس نمی‌شوند — رویِ زمینهٔ روشن می‌نشینند. */
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) {
    color-scheme: dark;
    --ha-paper: #111A23;
    --ha-mist: #0B1219;
    --ha-sunk: #1A2530;
    --ha-ink: #E6EDF3;
    --ha-muted: #A9B4C0;
    --ha-line: #2B3644;
    --ha-blue: #38BDF8;
    --ha-blue-deep: #7DD3FC;
    --ha-blue-soft: #0C2A3A;
    --ha-eco: #4ADE80;
    --ha-amber: #FBBF24;
    --ha-shadow: 0 0 0 1px #2B3644;
    --svcp-on-accent: #06121A;
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body,
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body:has(.ha-applied.is-solo) {
    background: var(--ha-mist); color: var(--ha-ink);
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(#acc-chat-launcher, #acc-chat-window) { color-scheme: light; }

html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-applied.is-solo, .vc-wrap) { background: var(--ha-mist); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-hero { background: linear-gradient(180deg, var(--ha-paper) 0%, var(--ha-mist) 100%); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-hero__media { background: none; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-hero__wheel-img { background: #F7FBFD; border-radius: 20px; padding: 10px; }

html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(
    .ha-wizard-modal__box, .ha-login__panel, .ha-map__panel, .hv-parts__panel, .ha-guide__panel, .ha-page__panel,
    .ha-chat, .ha-app, .ha-assistant, .hv-cat-card,
    .vc-head, .vc-authwall, .vc-list, .vc-lesson, .vc-topic, .vc-topicdetail, .vc-qr, .vc-case__cond, .vc-case__opt) {
    background: var(--ha-paper); color: var(--ha-ink); border-color: var(--ha-line);
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(
    .ha-header__who, .vc-who, .vc-search__match, .vc-qlist__item, .vc-qanswer, .vc-turn--teacher,
    .ha-chat__msg--bot, .ha-chat__bar, .ha-chat__done, .ha-assist-note, .ha-assist-input, .hv-err__field--fix,
    .ha-who__role, .ha-who__out, .ha-who__login, .ha-chat__map, .ha-chat__enough, .ha-chat__needlogin, .ha-home) {
    background: var(--ha-sunk); color: var(--ha-ink); border-color: var(--ha-line);
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-assist-input:focus { background: var(--ha-paper); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-assist-out { background: transparent; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-home, .ha-who__login, .ha-assist-note a, .ha-assist-note__login) { color: var(--ha-blue-deep); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-home:hover, .ha-who__out:hover, .ha-who__login:hover, .ha-chat__map:hover, .ha-chat__enough:hover) {
    background: var(--ha-blue-soft); border-color: var(--ha-blue);
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-chat__done > summary, .ha-chat__pair dd, .ha-login__head h3, .ha-who__name) { color: var(--ha-ink); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-chat__pair dt, .ha-login__body label, .ha-chat__enough) { color: var(--ha-muted); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-chat__msg--me { background: #0C4A6E; color: #E0F2FE; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-assist-err, .vc-error) { color: #FCA5A5; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-app--svc .ha-app__icon { background: #0C2A3A; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-app--go .ha-app__icon { background: #0F2E1F; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-app--ai .ha-app__icon { background: #231B3A; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-app--aux .ha-app__icon { background: #1A2530; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .ha-app[data-app="request"] { border-color: #0369A1; background: #0C2A3A; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-chat__input:focus, .ha-login__body input:focus) { outline-color: #38BDF8; }

/* متنِ رویِ رنگِ برند: آبیِ روشنِ حالتِ تیره با متنِ سفید خوانا نیست */
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(
    .ha-btn--primary, .ha-brand__mark, .vc-input button, .vc-btn:not(.vc-btn--quiz), .vc-turn--student, .vc-topic__check, .svcp-done) {
    color: var(--svcp-on-accent);
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-header__cta, .ha-header__live:hover) { color: var(--svcp-on-accent) !important; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.ha-btn--primary:hover, .vc-btn:not(.vc-btn--quiz):hover, .vc-input button:hover) { background: var(--ha-blue-deep); }

/* فیلدهایِ فرم — فقط داخلِ سطوحِ خودمان، نه ویجتِ چت */
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.svc-app, .vc-wrap, .ha-login, .ha-map, .ha-page, .ha-diag, .hv-parts, .ha-guide, .ha-wizard-modal)
    :is(input:not([type="radio"]):not([type="checkbox"]):not([type="range"]), textarea, select) {
    background-color: var(--ha-paper); color: var(--ha-ink); border-color: #3A4757;
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.svc-app, .vc-wrap, .ha-login, .ha-map, .ha-page) ::placeholder { color: var(--ha-muted); opacity: 1; }

/* رنگ‌هایِ وضعیت در کلاسِ مجازی و دستیار */
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.vc-quiz__pass, .vc-qr__ans, .vc-quiz__done, .vc-case__verdict.is-ok) { color: #86EFAC; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-quiz__fail { color: #FCD34D; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.vc-qr__chosen, .vc-case__verdict.is-bad) { color: #FCA5A5; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-qr.is-ok { border-color: rgba(74, 222, 128, .45); background: rgba(74, 222, 128, .10); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-qr.is-bad { border-color: rgba(248, 113, 113, .45); background: rgba(248, 113, 113, .10); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-case__opt.is-key { border-color: #22C55E; background: rgba(34, 197, 94, .12); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-case__opt.is-wrong { border-color: #EF4444; background: rgba(239, 68, 68, .12); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-topic.is-active { background: var(--ha-blue-soft); border-color: var(--ha-blue); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-topic.is-visited { border-color: rgba(74, 222, 128, .5); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-topic--fav { border-color: rgba(245, 158, 11, .45); background: rgba(245, 158, 11, .12); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-topic--fav .vc-topic__label { color: #FCD34D; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-bookmark-star:not(.is-on) { color: var(--ha-muted); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-search__match:hover { border-color: #8B5CF6; background: rgba(124, 58, 237, .18); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .vc-qlist__item.is-active { background: var(--ha-blue-soft); border-color: var(--ha-blue); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .hv-ec__prov { background: rgba(251, 191, 36, .12); border-color: rgba(251, 191, 36, .35); color: var(--ha-amber); }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .hv-err__cite-fig { background: rgba(74, 222, 128, .12); border-color: rgba(74, 222, 128, .30); color: #86EFAC; }

/* تصاویر: زمینهٔ روشن، نه معکوس — خط‌هایِ نقشهٔ فنی و عکس‌ها باید همان بمانند */
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.vc-lesson-image img, .vc-topic-image img, .vc-figure img, .ha-page__figbox img) {
    background: #fff; padding: 6px;
}

/* ─────────────── ۵. کنتراستِ بالا ─────────────── */
html[data-svc-contrast="more"] {
    --ha-ink: #0B0F14;
    --ha-muted: #2F3A46;
    --ha-line: #6B7785;
    --ha-blue: #005A8C;
    --ha-blue-deep: #004A73;
    --ha-blue-soft: #E6F3FA;
    --ha-eco: #14532D;
    --ha-amber: #7A4F00;
    --ha-sunk: #E9EEF3;
    --ha-shadow: none;
}
html[data-svc-theme="dark"][data-svc-contrast="more"]:not([data-svc-surface="app"]) {
    --ha-paper: #000;
    --ha-mist: #000;
    --ha-sunk: #0D1117;
    --ha-ink: #FFF;
    --ha-muted: #E5E7EB;
    --ha-line: #A3AEBB;
    --ha-blue: #7DD3FC;
    --ha-blue-deep: #BAE6FD;
    --ha-blue-soft: #082F49;
    --svcp-on-accent: #000;
}
html[data-svc-contrast="more"] body.svc-body { font-weight: 500; }
html[data-svc-contrast="more"] body.svc-body :is(
    .ha-app, .hv-cat-card, .ha-assistant, .ha-chat, .ha-src__chip, .ha-assist-input, .ha-chat__input,
    .vc-list, .vc-lesson, .vc-topic, .vc-topicdetail, .vc-search input, .vc-input input, .svcp-opt span) {
    border-width: 2px; border-style: solid; border-color: var(--ha-line);
}
html[data-svc-contrast="more"] body.svc-body .svcp-opt input:checked + span { border-color: var(--ha-blue-deep); }
html[data-svc-contrast="more"] body.svc-body :is(.hv-cat-card--empty, .vc-turn strong) { opacity: 1; }
html[data-svc-contrast="more"] body.svc-body .ha-header--scrolled { box-shadow: none; border-bottom-color: var(--ha-line); }
html[data-svc-contrast="more"] body.svc-body :focus-visible { outline: 3px solid var(--ha-ink) !important; outline-offset: 2px !important; }
html[data-svc-contrast="more"] body.svc-body .svcp-dlg::backdrop,
html[data-svc-contrast="more"] body.svc-body .svcp-backdrop { background: rgba(0, 0, 0, .6); }
html[data-svc-contrast="more"] body.svc-body :is(.hv-err__field a, .ha-ai__list a, .ha-page__text a, .vc-topicdetail__text a, .vc-back, .ha-assist-note__login, .ha-assist-note a) { text-decoration: underline; }
html[data-svc-contrast="more"] body.svc-body .vc-tt.is-active { text-decoration: underline 2px; text-underline-offset: .35em; }
html[data-svc-contrast="more"] body.svc-body .vc-row.is-active { border-inline-start: 4px solid var(--ha-ink); }
html[data-svc-contrast="more"] body.svc-body .vc-topic.is-active { outline: 2px solid var(--ha-ink); }
html[data-svc-contrast="more"] body.svc-body .vc-case__opt.is-key::before { content: "✓ "; }
html[data-svc-contrast="more"] body.svc-body .vc-case__opt.is-wrong::before { content: "✕ "; }
html[data-svc-contrast="more"]:not([data-svc-theme="dark"]) body.svc-body .vc-topic__check { background: #15803D; }
html[data-svc-contrast="more"]:not([data-svc-theme="dark"]) body.svc-body .hv-ec__prov { color: #5C3B00; background: #FFF4D6; border-color: #7A4F00; }
html[data-svc-contrast="more"]:not([data-svc-theme="dark"]) body.svc-body .hv-err__cite-fig { color: #14532D; }
html[data-svc-contrast="more"]:not([data-svc-theme="dark"]) body.svc-body :is(.vc-quiz__pass, .vc-qr__ans, .vc-quiz__done, .vc-case__verdict.is-ok) { color: #14532D; }
html[data-svc-contrast="more"]:not([data-svc-theme="dark"]) body.svc-body :is(.vc-qr__chosen, .vc-case__verdict.is-bad, .vc-error, .ha-assist-err) { color: #7F1D1D; }
html[data-svc-contrast="more"]:not([data-svc-theme="dark"]) body.svc-body .vc-quiz__fail { color: #78350F; }
/* داشبورد: خاکستری‌هایِ کم‌رنگ و عنوانِ تقریباً نامرئیِ صفحهٔ فرعی */
html[data-svc-contrast="more"] body.svc-body .svc-app--workspace :is(.cdash__rows dt, .cdash__thread-meta, .cdash__notif-meta, .cdash__device-site, .cdash__flow-l, .acc-loading, .acc-empty, .svc-notif-item time, .svc-notif-empty, .svc-notif-item p) { color: #334155; }
html[data-svc-contrast="more"] body.svc-body .svc-app--workspace :is(.svc-hub-spoke-title, .svc-hub-back) { color: #0B0F14; }

/* نوارِ پایینِ موبایل — portal-tabbar.css با ملک مشترک است، پس فقط رونویسیِ
   محدود به همین صفحه‌ها. بدونش در تمِ تیره یک نوارِ سفید پایینِ صفحه می‌ماند
   و در کنتراستِ بالا برچسب‌ها زیرِ ۷:۱ بودند. */
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .acc-portal-tabbar {
    background: var(--ha-paper) !important; border-top-color: var(--ha-line) !important; box-shadow: none !important;
}
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body :is(.acc-portal-tabbar__item, .acc-portal-tabbar__label),
html[data-svc-contrast="more"] body.svc-body :is(.acc-portal-tabbar__item, .acc-portal-tabbar__label) { color: var(--ha-muted) !important; }
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .acc-portal-tabbar__item.is-active :is(.acc-portal-tabbar__label, .acc-portal-tabbar__icon),
html[data-svc-theme="dark"]:not([data-svc-surface="app"]) body.svc-body .acc-portal-tabbar__item.is-active,
html[data-svc-contrast="more"] body.svc-body .acc-portal-tabbar__item.is-active :is(.acc-portal-tabbar__label, .acc-portal-tabbar__icon),
html[data-svc-contrast="more"] body.svc-body .acc-portal-tabbar__item.is-active { color: var(--ha-blue-deep) !important; }

/* ─────────────── ۶. فاصلهٔ خطوط ───────────────
   فقط بلوک‌هایِ خواندنی. letter-spacing هرگز: پیوستگیِ حروفِ فارسی را می‌شکند. */
html[data-svc-leading="relaxed"] body.svc-body :is(
    .hv-err__field, .ha-ai__list li, .hv-ec__causes li, .hv-ec__steps li, .hv-ec__det p, .ha-chat__msg,
    .ha-page__text, .ha-page__row p, .ha-diag__teach-body, .ha-assist-block li, .ha-diag__node-text,
    .vc-concept, .vc-topicdetail__text, .vc-qanswer, .vc-turn, .vc-case__why, .vc-qr__why, .vc-qr__q,
    .vc-qlist__item, .vc-search__match, .vc-quiz__opt, .vc-quiz__q legend, .vc-case__study li, .vc-case__cond,
    .vc-authwall p, .cdash__todo-txt, .cdash__notif-b, .svcp-sample) {
    line-height: 2;
}
html[data-svc-leading="relaxed"] body.svc-body :is(.hv-err__field, .ha-page__text p, .vc-topicdetail__text, .vc-concept, .vc-qanswer p) { margin-block-end: .9em; }
html[data-svc-leading="relaxed"] body.svc-body :is(.hv-err__field, .ha-ai__list, .ha-page__text, .vc-topicdetail__text, .vc-concept, .vc-qanswer) { max-inline-size: 70ch; }

/* ─────────────── ۷. کاهشِ حرکت ───────────────
   .001ms به‌جایِ none تا شنونده‌هایِ animationend/transitionend باز هم اجرا شوند. */
html[data-svc-motion="reduce"] { scroll-behavior: auto !important; }
html[data-svc-motion="reduce"] body.svc-body *,
html[data-svc-motion="reduce"] body.svc-body *::before,
html[data-svc-motion="reduce"] body.svc-body *::after {
    animation-duration: .001ms !important; animation-iteration-count: 1 !important; animation-delay: 0s !important;
    transition-duration: .001ms !important; transition-delay: 0s !important; scroll-behavior: auto !important;
}
html[data-svc-motion="reduce"] body.svc-body .ha-reveal { opacity: 1 !important; transform: none !important; }
html[data-svc-motion="reduce"] body.svc-body :is(.ha-btn, .ha-app, .ha-header__cta, .ha-reqcard, .hv-path, .hv-guide__btn,
    .ha-svc7-card, .ha-portal, .svc-hub-card, .vc-topic, .vc-casecard):hover { transform: none !important; }
html[data-svc-motion="reduce"] body.svc-body #acc-chat-launcher :is(.cw-launcher-btn, *) { animation: none !important; }

/* ─────────────── ۸. رنگ‌هایِ اجباریِ ویندوز ─────────────── */
@media (forced-colors: active) {
    .svcp-btn { border: 1px solid ButtonText; }
    .svcp-opt input:checked + span { outline: 3px solid Highlight; }
    .svcp-opt input:focus-visible + span { outline: 3px dashed CanvasText; }
    body.svc-body .ha-brand__mark { border: 1px solid CanvasText; }
    body.svc-body :is(.ha-kb__bar > i, .vc-progress__fill) { forced-color-adjust: none; background: Highlight; }
}

/* چاپ همیشه روشن و بی‌تغییر */
@media print {
    .svcp-btn, .svcp-dlg, .svcp-backdrop { display: none !important; }
}
