/* Назначение: единая палитра AiServise. Компоненты используют смысловые цвета,
   поэтому смена темы не зависит от порядка загрузки стилей отдельных студий. */
:root {
    color-scheme: light;
    --as-bg: #f3f6f9;
    --as-surface: #ffffff;
    --as-surface-soft: #eaf0f5;
    --as-field: #fbfcfe;
    --as-surface-raised: #ffffff;
    --as-text: #192637;
    --as-secondary: #45566a;
    --as-muted: #5c6d80;
    --as-border: #d5dee8;
    --as-border-strong: #a4b4c6;
    --as-accent: #5746d6;
    --as-accent-hover: #4735c0;
    --as-accent-text: #5140c8;
    --as-accent-soft: #eeebfc;
    --as-accent-rgb: 87, 70, 214;
    --as-on-accent: #ffffff;
    --as-success: #157452;
    --as-success-soft: #e7f6ee;
    --as-warning: #91600b;
    --as-warning-soft: #fff4db;
    --as-danger: #b92e48;
    --as-danger-soft: #fff0f2;
    --as-danger-rgb: 185, 46, 72;
    --as-success-rgb: 21, 116, 82;
    --as-warning-rgb: 145, 96, 11;
    --as-text-rgb: 25, 38, 55;
    --as-surface-rgb: 255, 255, 255;
    --as-border-rgb: 107, 131, 155;
    --as-shadow-rgb: 25, 38, 55;
    --as-overlay: rgba(21, 18, 36, .55);
    --as-shadow: 0 10px 35px rgba(25, 38, 55, .06);
    --as-font: "Segoe UI", -apple-system, BlinkMacSystemFont, sans-serif;
    --as-radius: 16px;
    --as-motion: 160ms ease;
}

/* Тёмная палитра меняет те же смысловые цвета, сохраняя контраст элементов. */
:root[data-as-theme="dark"] {
    color-scheme: dark;
    --as-bg: #10161e;
    --as-surface: #19232e;
    --as-surface-soft: #23303e;
    --as-surface-raised: #2a3949;
    --as-field: #121b25;
    --as-text: #edf3fa;
    --as-secondary: #c3cfdd;
    --as-muted: #a2b2c5;
    --as-border: #364657;
    --as-border-strong: #60748c;
    --as-accent: #6854df;
    --as-accent-hover: #5b46d2;
    --as-accent-text: #b8acff;
    --as-accent-soft: #2d2a48;
    --as-accent-rgb: 104, 84, 223;
    --as-success: #71d9ad;
    --as-success-soft: #17392d;
    --as-warning: #e9c479;
    --as-warning-soft: #3d3120;
    --as-danger: #ff9faf;
    --as-danger-soft: #43242e;
    --as-danger-rgb: 255, 159, 175;
    --as-success-rgb: 113, 217, 173;
    --as-warning-rgb: 233, 196, 121;
    --as-text-rgb: 237, 243, 250;
    --as-surface-rgb: 25, 35, 46;
    --as-border-rgb: 127, 148, 174;
    --as-shadow-rgb: 0, 0, 0;
    --as-shadow: 0 8px 32px rgba(0, 0, 0, .15);
}

/* Общие правила фокуса, доступности и типографики для обеих тем. */
html { font-family: var(--as-font); accent-color: var(--as-accent); }
body { -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--as-accent-text);
    outline-offset: 3px;
}
[hidden] { display: none !important; }
::selection { background: var(--as-accent-soft); color: var(--as-text); }
/* Скрытый текст остаётся доступен программе чтения с экрана. */
.as-sr-only {
    position: absolute !important; width: 1px; height: 1px; padding: 0;
    overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
/* Кнопка темы не зависит от общего класса кнопок рабочей или публичной части. */
.as-theme-toggle {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 38px; width: 38px; height: 38px; padding: 8px;
    border: 1px solid var(--as-border); border-radius: 12px;
    background: var(--as-surface); color: var(--as-secondary); cursor: pointer;
}
.as-theme-toggle:hover { background: var(--as-accent-soft); color: var(--as-accent-text); }
.as-theme-toggle svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.as-theme-toggle__sun { display: none; }
[data-as-theme="dark"] .as-theme-toggle__sun { display: block; }
[data-as-theme="dark"] .as-theme-toggle__moon { display: none; }
/* Статичный знак сохраняет пропорции в любой части сайта. */
.as-brand-logo { display: block; width: 42px; height: 30px; object-fit: contain; flex-shrink: 0; }
.as-brand-link { display: inline-flex; align-items: center; gap: 11px; text-decoration: none; color: var(--as-text); }
.as-brand-link strong { font-size: 19px; font-weight: 650; letter-spacing: -.035em; }
/* Генерация занимает прежнее место кнопки; её текст и DOM сохраняются для восстановления. */
button.as-generation-button {
    position: relative !important;
    box-sizing: border-box !important;
    inline-size: var(--as-generation-width, auto) !important;
    block-size: var(--as-generation-height, auto) !important;
    max-inline-size: 100%;
    min-inline-size: 0 !important;
    filter: none !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    text-shadow: none !important;
    background: var(--as-surface, #fff) !important;
    border-color: var(--as-accent, #5746d6) !important;
    opacity: 1 !important;
    cursor: wait;
}
button.as-generation-button > * { visibility: hidden !important; }
button.as-generation-button::before { visibility: hidden !important; }
button.as-generation-button::after {
    content: "" !important;
    position: absolute !important;
    inset: 5px !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: var(--as-generation-logo) center / contain no-repeat !important;
    max-width: 44px !important;
    max-height: 28px !important;
    margin: auto !important;
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
    pointer-events: none !important;
    filter: none;
}
[data-as-theme="dark"] button.as-generation-button::after { filter: brightness(1.65) saturate(.85); }
/* Ожидание в ответе остаётся доступным для скринридера; видимый знак расположен в кнопке. */
.chat-turn__loader.as-button-loader { padding: 0; min-height: 0; height: 0; border: 0; overflow: hidden; }
.project-workspace-turn--waiting .project-workspace-waiting__progress { display: none; }
@media (prefers-reduced-motion: reduce) {
    button.as-generation-button::after { background-image: var(--as-generation-logo-static) !important; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; }
}

/* На тёмных поверхностях повышаем яркость знака, не меняя сам SVG. */
[data-as-theme="dark"] .as-brand-logo { filter: brightness(1.55) saturate(.85); }
