/* Optional contract for SPECIAL widgets. Root flag AND an explicit marker required.
   Does not style hidden native inputs; does not position/open/close portals.
   Источник: Астра, шаг 6 плана (visual-widgets.css, 12.09.2026) — адресно
   подключаемый образец стилей для .tsel-trigger/.status-pill-tsel/
   .icon-select-wrap/.cal-nav-arrow/.icon-action-btn/.swatch-btn/
   .discount-toggle, не готовая миграция всех конструкторов виджетов.
   Гейт двойной (в отличие от data-ui-controls/surfaces/typography):
   html[data-ui-widgets="v2"] САМ ПО СЕБЕ ничего не меняет — нужен ещё
   явный data-ui-widget="<тип>" на самом элементе (см. shell.js/patient.js
   и admin.html). Только тестовая клиника — см. UI_V2_TEST_CLINIC_IDS. */
html[data-ui-widgets="v2"] [data-ui-widget] { --widget-h: var(--control-h); }
html[data-ui-widgets="v2"] [data-ui-widget][data-ui-size="small"] { --widget-h: var(--control-h-sm); }
html[data-ui-widgets="v2"] .tsel[data-ui-widget="field"] > .tsel-trigger {
  box-sizing: border-box; min-height: var(--widget-h); padding: 7px 12px;
  border: 1px solid var(--border-control); border-radius: var(--r-sm);
  background: var(--card); color: var(--ink); font: 400 var(--fs-base)/20px var(--font-body);
}
html[data-ui-widgets="v2"] .tsel[data-ui-widget="field"][data-ui-size="small"] > .tsel-trigger { padding-block: 3px; }
html[data-ui-widgets="v2"] .tsel[data-ui-widget="field"] > .tsel-trigger:hover { border-color: var(--ink-soft); }
html[data-ui-widgets="v2"] .tsel[data-ui-widget="field"].open > .tsel-trigger { border-color: var(--ink); box-shadow: 0 0 0 1px var(--ink); }
html[data-ui-widgets="v2"] .status-pill-tsel[data-ui-widget="status"] > .tsel-trigger {
  box-sizing: border-box; min-height: var(--control-h-sm); padding: 3px 10px;
  border-radius: var(--r-pill); font: 600 var(--fs-caption)/20px var(--font-body);
  /* Existing status-specific text and fill stay intact. */
}
html[data-ui-widgets="v2"] :is(.cal-nav-arrow,.icon-action-btn)[data-ui-widget="icon"],
html[data-ui-widgets="v2"] .icon-select-wrap[data-ui-widget="icon-select"] {
  box-sizing: border-box; width: var(--widget-h); height: var(--widget-h); min-width: var(--widget-h);
  min-height: var(--widget-h); padding: 0; border-radius: var(--r-sm);
}
html[data-ui-widgets="v2"] :is(.cal-nav-arrow,.icon-action-btn)[data-ui-widget="icon"] {
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border-control); background: var(--card); color: var(--ink);
}
html[data-ui-widgets="v2"] :is(.cal-nav-arrow,.icon-action-btn)[data-ui-widget="icon"]:hover { background: var(--selection-bg); }
html[data-ui-widgets="v2"] :is(.cal-nav-arrow,.icon-action-btn)[data-ui-widget="icon"] svg { width: 16px; height: 16px; }
html[data-ui-widgets="v2"] .tsel-panel-portal[data-ui-widget="field-panel"] {
  border: 1px solid var(--border-control); border-radius: var(--r-md); box-shadow: var(--shadow-md);
  background: var(--card); color: var(--ink); font-family: var(--font-body);
}
html[data-ui-widgets="v2"] .tsel-panel-portal[data-ui-widget="field-panel"] .tsel-opt { min-height: 36px; padding: 8px 12px; box-sizing: border-box; font-size: var(--fs-base); }
html[data-ui-widgets="v2"] .tsel-panel-portal[data-ui-widget="field-panel"] .tsel-opt.selected { background: var(--selection-bg); color: var(--ink); font-weight: 600; }
html[data-ui-widgets="v2"] .discount-toggle[data-ui-widget="discount"] { padding: 2px; gap: 4px; border-color: var(--money-warn-ink); border-radius: var(--r-sm); }
html[data-ui-widgets="v2"] .discount-toggle[data-ui-widget="discount"] button {
  min-height: 28px; padding: 3px 10px; border: 1px solid transparent;
  font: 600 var(--fs-sm)/20px var(--font-body); color: var(--money-warn-ink); background: var(--card);
}
html[data-ui-widgets="v2"] .discount-toggle[data-ui-widget="discount"] button.active { color: #fff; background: var(--money-warn-ink); border-color: var(--money-warn-ink); }
html[data-ui-widgets="v2"] .swatch-btn[data-ui-widget="swatch"] {
  box-sizing: border-box; width: 36px; height: 36px; min-width: 36px; padding: 0;
  border: 7px solid var(--card); background: var(--sw-color); border-radius: var(--r-pill); box-shadow: none;
}
html[data-ui-widgets="v2"] .swatch-btn[data-ui-widget="swatch"].active { outline: 2px solid var(--ink); outline-offset: 1px; box-shadow: none; }
html[data-ui-widgets="v2"] :is([data-ui-widget]:focus-visible,[data-ui-widget] > button:focus-visible) { outline: 2px solid var(--ink); outline-offset: 3px; }
html[data-ui-widgets="v2"] :is(button[data-ui-widget]:disabled,[data-ui-widget] > button:disabled) { opacity: .5; cursor: not-allowed; }
@media(pointer:coarse) {
  html[data-ui-widgets="v2"] [data-ui-widget],html[data-ui-widgets="v2"] [data-ui-widget][data-ui-size="small"] { --widget-h: var(--control-h-touch); }
  html[data-ui-widgets="v2"] .status-pill-tsel[data-ui-widget="status"] > .tsel-trigger,
  html[data-ui-widgets="v2"] .discount-toggle[data-ui-widget="discount"] button,
  html[data-ui-widgets="v2"] .tsel-panel-portal[data-ui-widget="field-panel"] .tsel-opt { min-height: 44px; }
  html[data-ui-widgets="v2"] .swatch-btn[data-ui-widget="swatch"] { width: 44px; height: 44px; min-width: 44px; border-width: 11px; }
}
