/*
 * WELES FIT — Графит и шампань, вариант 02, кандидат 0.1.0.
 * НЕ установлен в WordPress. Это токены и базовый слой, не готовый UI runtime.
 * Применять только внутри .weles-ui; portal-окна также получают этот корень.
 * Перед миграцией устранить конфликтующие legacy-стили в разрешённой области.
 * Шрифт Montserrat подключает существующий механизм приложения; файлов шрифта здесь нет.
 * Семантика, события, серверная авторизация, aria и фокус реализуются в компонентах.
 */
:root {
  --wf-bg: #0b0d0f;
  --wf-surface: #14181b;
  --wf-raised: #1c2125;
  --wf-hover: #242b2f;
  --wf-input: #0f1214;
  --wf-tabbar: #111517;
  --wf-line: #30383e;
  --wf-control-border: #7b848b;
  --wf-text: #f2f1ed;
  --wf-text-secondary: #b8bec2;
  --wf-text-muted: #9aa3aa;
  --wf-gold: #d6c08f;
  --wf-gold-light: #e4d3af;
  --wf-gold-deep: #bca474;
  --wf-primary: #29261f;
  --wf-primary-hover: #353024;
  --wf-primary-pressed: #201d17;
  --wf-success: #8db8a2;
  --wf-error: #e5a3a0;
  --wf-overlay: rgb(0 0 0 / 64%);
  --wf-space-1: .25rem;
  --wf-space-2: .5rem;
  --wf-space-3: .75rem;
  --wf-space-4: 1rem;
  --wf-space-6: 1.5rem;
  --wf-space-8: 2rem;
  --wf-space-12: 3rem;
  --wf-space-16: 4rem;
  --wf-radius-small: .5rem;
  --wf-radius-control: .75rem;
  --wf-radius-panel: 1.25rem;
  --wf-radius-pill: 999px;
  --wf-control-min: 3rem;
  --wf-target-compact: 2.75rem;
  --wf-icon: 1.25rem;
  --wf-ease: cubic-bezier(.2, 0, 0, 1);
  --wf-hover-ms: 120ms;
  --wf-state-ms: 150ms;
  --wf-panel-ms: 180ms;
  --wf-shadow-panel: 0 8px 24px rgb(0 0 0 / 18%);
  --wf-shadow-dialog: 0 16px 48px rgb(0 0 0 / 32%);
  --wf-page-gutter: 2rem;
  --wf-layer-header: 20;
  --wf-layer-mentor: 40;
  --wf-layer-popover: 50;
  --wf-layer-modal: 80;
  --wf-layer-notice: 90;
}
.weles-ui {
  color-scheme: dark;
  color: var(--wf-text);
  background: var(--wf-bg);
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.625;
  font-synthesis: none;
  text-align: start;
}
.weles-ui, .weles-ui *, .weles-ui *::before, .weles-ui *::after { box-sizing: border-box; }
.weles-ui [hidden] { display: none; }
.weles-ui .wf-container { inline-size: min(100%, 80rem); margin-inline: auto; padding-inline: var(--wf-page-gutter); }
.weles-ui .wf-app-container { inline-size: min(100%, 75rem); margin-inline: auto; }
.weles-ui .wf-title { margin: 0; font-size: 2rem; line-height: 1.25; font-weight: 600; letter-spacing: -.02em; }
.weles-ui .wf-section-title { margin: 0; font-size: 1.5rem; line-height: 1.3334; font-weight: 600; letter-spacing: -.01em; }
.weles-ui .wf-card-title { margin: 0; font-size: 1.125rem; line-height: 1.4445; font-weight: 600; }
.weles-ui .wf-label { display: block; margin-block-end: .5rem; font-size: .875rem; line-height: 1.4286; font-weight: 500; }
.weles-ui .wf-help { margin: .5rem 0 0; color: var(--wf-text-secondary); font-size: .875rem; line-height: 1.4286; }
.weles-ui .wf-error { color: var(--wf-error); }
.weles-ui .wf-meta { color: var(--wf-text-muted); font-size: .875rem; line-height: 1.4286; }
.weles-ui .wf-prose { max-inline-size: 70ch; overflow-wrap: anywhere; }
.weles-ui .wf-data-number { font-variant-numeric: tabular-nums; }
.weles-ui .wf-icon { inline-size: var(--wf-icon); block-size: var(--wf-icon); flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.weles-ui .wf-icon :is(path, line, polyline, polygon, circle, rect, ellipse) { vector-effect: non-scaling-stroke; }
.weles-ui .wf-icon--large { inline-size: 1.5rem; block-size: 1.5rem; }
.weles-ui .wf-icon--small { inline-size: 1rem; block-size: 1rem; }
.weles-ui .wf-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-block-size: var(--wf-control-min); min-inline-size: var(--wf-control-min);
  padding: .75rem 1.25rem;
  border: 1px solid var(--wf-control-border); border-radius: var(--wf-radius-control);
  color: var(--wf-text); background: var(--wf-raised); box-shadow: none;
  font-family: inherit; font-size: .9375rem; line-height: 1.3334; font-weight: 600;
  letter-spacing: 0; text-decoration: none; text-align: center;
  cursor: pointer; touch-action: manipulation;
  transition: background-color var(--wf-hover-ms) var(--wf-ease), border-color var(--wf-hover-ms) var(--wf-ease), color var(--wf-hover-ms) var(--wf-ease), box-shadow var(--wf-hover-ms) var(--wf-ease);
}
.weles-ui .wf-btn--primary { background: var(--wf-primary); border-color: var(--wf-gold); color: var(--wf-gold-light); }
.weles-ui .wf-btn--quiet { background: transparent; border-color: transparent; }
.weles-ui .wf-btn--danger { color: var(--wf-error); }
.weles-ui .wf-btn--icon { inline-size: var(--wf-control-min); padding: .75rem; }
.weles-ui .wf-btn:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) { background: var(--wf-surface); box-shadow: inset 0 1px 3px rgb(0 0 0 / 24%); }
.weles-ui .wf-btn--primary:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) { background: var(--wf-primary-pressed); border-color: var(--wf-gold); color: var(--wf-gold-light); }
.weles-ui .wf-btn[aria-busy="true"] { cursor: progress; }
/* aria-disabled still requires the event handler to refuse activation. */
.weles-ui .wf-btn:is(:disabled, [aria-disabled="true"]) { color: var(--wf-text-muted); background: var(--wf-raised); border-color: var(--wf-line); cursor: not-allowed; box-shadow: none; }
.weles-ui :is(.wf-btn, .wf-input, .wf-textarea, .wf-select, .wf-tab, .wf-link, .wf-nav-link):focus-visible { outline: 2px solid var(--wf-gold-light); outline-offset: 3px; }
.weles-ui .wf-link { color: var(--wf-gold); text-underline-offset: .2em; text-decoration: underline; text-decoration-thickness: 1px; }
.weles-ui .wf-card { min-inline-size: 0; padding: 1.5rem; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-panel); background: var(--wf-surface); box-shadow: var(--wf-shadow-panel); }
.weles-ui .wf-card--large { padding: 2rem; }
.weles-ui .wf-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
.weles-ui .wf-parameters-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; align-items: start; }
.weles-ui .wf-field { min-inline-size: 0; }
.weles-ui :is(.wf-input, .wf-select, .wf-textarea) {
  display: block; inline-size: 100%; min-inline-size: 0; min-block-size: var(--wf-control-min);
  padding: .6875rem 1rem; border: 1px solid var(--wf-control-border); border-radius: var(--wf-radius-control);
  color: var(--wf-text); background: var(--wf-input); box-shadow: none;
  font-family: inherit; font-size: 1rem; line-height: 1.5; font-weight: 500;
  transition: border-color var(--wf-hover-ms) var(--wf-ease), background-color var(--wf-hover-ms) var(--wf-ease);
}
.weles-ui :is(.wf-input, .wf-textarea)::placeholder { color: var(--wf-text-muted); opacity: 1; font-weight: 400; }
.weles-ui :is(.wf-input, .wf-select, .wf-textarea):focus { border-color: var(--wf-gold); }
.weles-ui :is(.wf-input, .wf-select, .wf-textarea)[aria-invalid="true"] { border-color: var(--wf-error); }
.weles-ui :is(.wf-input, .wf-select, .wf-textarea):disabled { color: var(--wf-text-muted); background: var(--wf-raised); border-color: var(--wf-line); cursor: not-allowed; }
.weles-ui .wf-textarea { min-block-size: 8rem; resize: vertical; line-height: 1.625; }
.weles-ui .wf-input-wrap { position: relative; }
.weles-ui .wf-input-wrap > .wf-icon { position: absolute; inset-inline-start: .875rem; inset-block-start: .875rem; color: var(--wf-gold); pointer-events: none; }
.weles-ui .wf-input-wrap--with-icon > .wf-input { padding-inline-start: 2.75rem; }
.weles-ui .wf-control-row { display: flex; align-items: center; gap: .75rem; min-block-size: 2.75rem; }
.weles-ui .wf-control-row :is(input[type="checkbox"], input[type="radio"]) { inline-size: 1.25rem; block-size: 1.25rem; accent-color: var(--wf-gold); flex-shrink: 0; }
.weles-ui .wf-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.weles-ui .wf-tabs {
  display: flex; gap: .25rem; min-block-size: 4rem; padding: .3125rem;
  border: 1px solid var(--wf-line); border-radius: 2rem; background: var(--wf-tabbar);
  overflow-x: auto; scroll-padding-inline: .5rem; max-inline-size: 100%;
}
.weles-ui .wf-tab {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  flex: 1 0 auto; min-block-size: 3.25rem; padding: .75rem 1.5rem;
  border: 1px solid transparent; border-radius: 1.625rem;
  background: transparent; color: var(--wf-text-secondary);
  font-family: inherit; font-size: .9375rem; line-height: 1.3334; font-weight: 600; text-decoration: none; white-space: nowrap;
  transition: color var(--wf-state-ms) var(--wf-ease), background-color var(--wf-state-ms) var(--wf-ease), border-color var(--wf-state-ms) var(--wf-ease);
  cursor: pointer;
}
.weles-ui .wf-tab:is([aria-selected="true"], [aria-current="page"]) { background: var(--wf-primary); border-color: var(--wf-gold); color: var(--wf-gold-light); }
.weles-ui .wf-tabpanel { padding-block-start: 1.5rem; min-inline-size: 0; }
.weles-ui .wf-nav-link { display: inline-flex; align-items: center; min-block-size: 2.75rem; color: var(--wf-text); font-size: .875rem; font-weight: 600; line-height: 1.4286; letter-spacing: .02em; text-decoration: none; border-block-end: 2px solid transparent; }
.weles-ui .wf-nav-link[aria-current="page"] { color: var(--wf-gold); border-block-end-color: var(--wf-gold); }
.weles-ui .wf-value { font-size: 2.25rem; line-height: 1.2223; font-weight: 600; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.weles-ui .wf-table-wrap { max-inline-size: 100%; overflow: auto; }
.weles-ui .wf-table { inline-size: 100%; border-collapse: collapse; font-size: .9375rem; }
.weles-ui .wf-table :is(th, td) { padding: .875rem 1rem; border-block-end: 1px solid var(--wf-line); text-align: start; }
.weles-ui .wf-table th { color: var(--wf-text-secondary); font-size: .875rem; font-weight: 600; }
.weles-ui .wf-table .wf-table-number { text-align: end; font-variant-numeric: tabular-nums; }
.weles-ui .wf-unread-dot { display: inline-block; inline-size: .375rem; block-size: .375rem; border-radius: 50%; background: var(--wf-gold); }
.weles-ui .wf-unread-dot--error { background: var(--wf-error); }
.weles-ui .wf-menu { min-inline-size: 12rem; max-inline-size: min(24rem,100%); padding: .5rem; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-control); background: var(--wf-raised); box-shadow: var(--wf-shadow-panel); }
.weles-ui .wf-menu-item { display: flex; align-items: center; inline-size: 100%; min-block-size: var(--wf-target-compact); padding: .5rem .75rem; border: 0; border-radius: var(--wf-radius-small); background: transparent; color: var(--wf-text); font: inherit; text-align: start; cursor: pointer; }
.weles-ui .wf-menu-item:is(:hover,:focus-visible) { background: var(--wf-hover); color: var(--wf-gold-light); }
.weles-ui .wf-tooltip { display: inline-block; max-inline-size: 24rem; padding: .5rem .75rem; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-small); background: var(--wf-raised); color: var(--wf-text); font-size: .875rem; line-height: 1.4286; box-shadow: var(--wf-shadow-panel); }
.weles-ui .wf-notice { padding: 1rem 1.25rem; border: 1px solid var(--wf-line); border-inline-start: 3px solid var(--wf-gold); border-radius: var(--wf-radius-control); background: var(--wf-surface); color: var(--wf-text); }
.weles-ui .wf-notice--error { border-inline-start-color: var(--wf-error); }
.weles-ui .wf-notice--success { border-inline-start-color: var(--wf-success); }
.weles-ui .wf-dialog {
  inline-size: min(45rem, calc(100vw - 3rem)); max-block-size: calc(100dvh - 3rem);
  padding: 0; border: 1px solid var(--wf-line); border-radius: var(--wf-radius-panel);
  background: var(--wf-surface); color: var(--wf-text); box-shadow: var(--wf-shadow-dialog);
}
.weles-ui .wf-dialog::backdrop { background: var(--wf-overlay); }
.weles-ui .wf-dialog-frame { display: flex; flex-direction: column; min-block-size: 0; max-block-size: calc(100dvh - 3rem); }
.weles-ui .wf-dialog-head, .weles-ui .wf-dialog-actions { flex: 0 0 auto; padding: 1.5rem; }
.weles-ui .wf-dialog-body { min-block-size: 0; overflow-y: auto; padding: 0 1.5rem 1.5rem; scrollbar-gutter: stable; }
.weles-ui .wf-mentor-grid { display: grid; grid-template-columns: 16rem minmax(0, 1fr); min-block-size: 0; }
.weles-ui .wf-conversation { inline-size: min(100%, 51.25rem); margin-inline: auto; min-inline-size: 0; }
.weles-ui .wf-message { max-inline-size: 70ch; font-size: 1rem; line-height: 1.625; overflow-wrap: anywhere; }
.weles-ui .wf-message--user { background: var(--wf-raised); padding: 1rem; border-radius: var(--wf-radius-control); }
.weles-ui .wf-mentor-launcher { border-radius: var(--wf-radius-pill); }
.weles-ui .wf-sr-only { position: absolute; inline-size: 1px; block-size: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (hover: hover) and (pointer: fine) {
  .weles-ui .wf-btn:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) { background: var(--wf-hover); border-color: var(--wf-text-secondary); }
  .weles-ui .wf-btn--primary:hover:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) { background: var(--wf-primary-hover); border-color: var(--wf-gold-light); color: var(--wf-text); }
  .weles-ui .wf-btn:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) { background: var(--wf-surface); }
  .weles-ui .wf-btn--primary:active:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]) { background: var(--wf-primary-pressed); border-color: var(--wf-gold); color: var(--wf-gold-light); }
  .weles-ui :is(.wf-input, .wf-select, .wf-textarea):hover:not(:disabled):not(:focus):not([aria-invalid="true"]) { border-color: var(--wf-text-secondary); }
  .weles-ui .wf-tab:hover:not([aria-selected="true"]):not([aria-current="page"]) { color: var(--wf-text); background: var(--wf-raised); }
  .weles-ui :is(.wf-link, .wf-nav-link):hover { color: var(--wf-gold-light); }
}
@media (max-width: 63.999rem) {
  .weles-ui { --wf-page-gutter: 1.5rem; }
  .weles-ui .wf-parameters-grid, .weles-ui .wf-mentor-grid { grid-template-columns: minmax(0, 1fr); }
  /* Sidebar visibility/drawer behavior must be implemented by the real component. */
}
@media (max-width: 47.999rem) {
  .weles-ui { --wf-page-gutter: 1rem; }
  .weles-ui .wf-title { font-size: 1.625rem; line-height: 1.3077; }
  .weles-ui .wf-section-title { font-size: 1.375rem; line-height: 1.3637; }
  .weles-ui .wf-card, .weles-ui .wf-card--large { padding: 1rem; }
  .weles-ui .wf-value { font-size: 1.875rem; line-height: 1.2667; }
  .weles-ui .wf-tab { flex-grow: 0; padding-inline: 1rem; }
  .weles-ui .wf-dialog { inline-size: calc(100vw - 1.5rem); max-block-size: calc(100dvh - 2rem); }
  .weles-ui .wf-dialog-frame { max-block-size: calc(100dvh - 2rem); }
  .weles-ui .wf-dialog-head, .weles-ui .wf-dialog-actions { padding: 1rem; }
  .weles-ui .wf-dialog-body { padding: 0 1rem 1rem; }
}
@media (max-width: 34.999rem) { .weles-ui .wf-form-grid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 22.499rem) { .weles-ui { --wf-page-gutter: .75rem; } }
@media (prefers-reduced-motion: reduce) {
  .weles-ui { --wf-hover-ms: 0ms; --wf-state-ms: 0ms; --wf-panel-ms: 0ms; }
  .weles-ui .wf-decorative-motion { animation: none; transform: none; }
}
@media (forced-colors: active) {
  .weles-ui :is(.wf-btn, .wf-input, .wf-select, .wf-textarea, .wf-tab, .wf-card) { border-color: CanvasText; }
  .weles-ui .wf-tab:is([aria-selected="true"], [aria-current="page"]) { outline: 2px solid Highlight; outline-offset: -3px; }
  .weles-ui :is(.wf-btn, .wf-input, .wf-textarea, .wf-select, .wf-tab, .wf-link):focus-visible { outline-color: Highlight; }
}
