/* Общие компоненты beta — ОДИН источник для приложения и гайдлайна (дизайн-аудит 23.09, B01/B02).
   Здесь то, что повторяется на разных экранах: стеклянная оболочка окон и меню, содержимое окна §13,
   кнопка-капсула. Экранные файлы (shift.css, sheets.css) отвечают только за раскладку своих экранов.
   Подключается после liquid.css (токены — tokens.css) и до экранных файлов; гайдлайн подключает его же. */

@keyframes win-in{from{opacity:0}}

/* ── Стекло всплывающих поверхностей (§3): окна, меню, лист аватара ── */
.pop.win,#addModal.win,.screen.as-modal.win,.modal.win,#avatarMenu.avatar-sheet,.menu,.pop.menu,.win-sample{border:1px solid var(--glass-edge);background:var(--glass);
  backdrop-filter:blur(var(--glass-blur)) saturate(160%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);
  box-shadow:var(--shadow-lg),inset 0 1px 0 var(--glass-hi)}

/* ── Оболочка окна §13: скругление 22, поля 16, появление 220 мс ── */
.pop.win,#addModal.win,.screen.as-modal.win,.modal.win,#avatarMenu.avatar-sheet,.win-sample{padding:16px;border-radius:22px;animation:win-in .22s ease-out}
.pop.win,#addModal.win,.screen.as-modal.win,.modal.win,.win-sample{color:var(--text-primary);font:14px/1.4 var(--font)}
.pop.win,#addModal.win,.win-sample{width:330px}
.screen.as-modal.win,.modal.win{width:min(330px,calc(100 * var(--app-vw, 1vw) - 32px));display:flex;flex-direction:column;max-height:min(calc(86 * var(--app-vh, 1vh)),calc(100 * var(--app-vh, 1vh) - 32px));overflow:hidden}
#screen-schedule.as-modal.win{width:min(460px,calc(100 * var(--app-vw, 1vw) - 32px))}

/* ── Оболочка меню §12: скругление 16, поля 6, появление 160 мс ── */
.menu,.pop.menu{width:250px;padding:6px;border-radius:16px}
.menu{position:absolute;z-index:60;color:var(--text-primary);font:14px/1.35 var(--font);text-align:left;animation:win-in .16s ease-out}
.pop.menu{position:fixed;z-index:950;min-width:0}
/* образцы в гайдлайне: те же окно и меню, только стоят в потоке страницы и не «появляются» */
.win-sample{position:relative;animation:none}
.menu.menu-sample{position:relative;z-index:auto;animation:none}

/* ── Кнопка-капсула §9: одна база; размеры 40 (окна, F2), 36 («Записать»), 32 (малая); назначения —
   главная жёлтая, второстепенная (--ghost/--gh), опасная (--danger). Наведение, фокус, выключено, занято — здесь. ── */
.win-btn,.trk-save,.sbtn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:var(--radius-pill);
  background:var(--yellow);color:var(--on-accent);cursor:pointer;transition:background .16s ease-out}
.win-btn{height:40px;padding:0 16px;box-shadow:0 2px 8px rgba(255,200,0,.28);font:700 14px var(--font)}
.trk-save{height:36px;padding:0 18px;box-shadow:0 2px 8px rgba(255,200,0,.28);font:700 14px var(--font);white-space:nowrap}
.sbtn{height:32px;padding:0 14px;font:600 13px/1 var(--font);white-space:nowrap}
.win-btn .ui-icon,.trk-save .ui-icon{width:16px;height:16px}
.win-btn:hover:not(:disabled),.trk-save:hover:not(:disabled),.sbtn:hover:not(:disabled){background:var(--yellow-hover)}
.win-btn--ghost,.sbtn--gh{background:var(--border);color:var(--text-primary);font-weight:500;box-shadow:none}
.win-btn--ghost:hover:not(:disabled),.sbtn--gh:hover:not(:disabled){background:var(--border-2)}
.win-btn--danger,.sbtn--danger{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);box-shadow:none}
.win-btn--danger:hover:not(:disabled),.sbtn--danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 18%,transparent)}
.win-btn--wide{grid-column:1/-1}
.win-btn:disabled,.trk-save:disabled,.sbtn:disabled,.win-btn[aria-disabled="true"],.sbtn[aria-disabled="true"]{opacity:.45;cursor:default}
.win-btn:focus-visible,.trk-save:focus-visible,.sbtn:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
.sbtn.hidden{display:none}
/* малая кнопка в заголовке карточки: 24 px, чтобы заголовок был той же высоты, что у соседних карточек */
.sbtn.sbtn--head{height:22px;padding:0 10px;gap:5px;font-size:12px}
.sbtn--head .ui-icon{width:13px;height:13px}
/* кнопка-значок (карандаш, архив в шапке плитки) и включённый режим — жёлтая (правка на месте, владелец 25.09) */
.sbtn.sbtn--ico{width:22px;padding:0}
.sbtn[aria-pressed="true"]{background:var(--yellow);color:var(--on-accent)}
/* занято (UI.busy): текст прячется, по центру крутится кольцо; не тускнеет, как выключенная */
.win-btn[aria-busy="true"],.trk-save[aria-busy="true"],.sbtn[aria-busy="true"]{position:relative;opacity:1;color:transparent;pointer-events:none}
.win-btn[aria-busy="true"]>*,.trk-save[aria-busy="true"]>*,.sbtn[aria-busy="true"]>*{visibility:hidden}
.win-btn[aria-busy="true"]::after,.trk-save[aria-busy="true"]::after,.sbtn[aria-busy="true"]::after{content:'';position:absolute;left:calc(50% - 8px);top:calc(50% - 8px);
  width:16px;height:16px;box-sizing:border-box;border:2px solid var(--on-accent);border-right-color:transparent;border-radius:50%;animation:ui-spin .7s linear infinite}
.win-btn--ghost[aria-busy="true"]::after,.sbtn--gh[aria-busy="true"]::after{border-color:var(--text-primary);border-right-color:transparent}
.win-btn--danger[aria-busy="true"]::after,.sbtn--danger[aria-busy="true"]::after{border-color:var(--danger);border-right-color:transparent}

/* ── Содержимое окна §13: шапка, крестик, группы строк, поля, кнопки F2 (раньше жило в shift.css) ── */
.win-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.win-head h3{flex:1;min-width:0;margin:0;font:700 16px/1.3 var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.win-dot{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}

/* группы строк, как в настройках iOS: подпись слева, значение справа */
.win-grp{margin:0 0 10px;border-radius:14px;background:var(--matte);overflow:hidden}
.win .win-row{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin:0;padding:10px 12px;border-bottom:1px solid var(--border);font-size:14px}
.win .win-row:last-child{border-bottom:0}
.win-row>label:first-child,.win-row>span:first-child{color:var(--text-secondary)}
.win-val{font:500 14px/1.4 var(--font-num);font-variant-numeric:tabular-nums}
.win .field__error{flex-basis:100%;margin:0;font:500 12px/1.4 var(--font);color:var(--danger-text)}

/* поля: время — капсула, ввод по клику; количество — только с клавиатуры */
.win input.win-time{width:64px;height:auto;margin:0;padding:4px 10px;border:0;border-radius:8px;background:var(--border);color:var(--text-primary);
  font:700 14px/1.3 var(--font-num);font-variant-numeric:tabular-nums;text-align:center}
.win-qty{display:inline-flex;align-items:center;gap:6px}
.win-qty>span{font:13px var(--font-num);color:var(--text-tertiary)}
/* число — как поле времени: без рамки (гайд: «Поля ввода — без рамки», 22.09), тот же фон, скругление и шрифт; цифры вправо (приёмка 24.09) */
.win input.win-num{width:62px;height:auto;margin:0;padding:4px 10px;border:0;border-radius:8px;background:var(--border);
  color:var(--text-primary);font:700 14px/1.3 var(--font-num);font-variant-numeric:tabular-nums;text-align:right;-moz-appearance:textfield;appearance:textfield}
.win input.win-num::-webkit-outer-spin-button,.win input.win-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.win input.win-num::placeholder{color:var(--text-tertiary)}
/* фокус полей — без чёрной рамки (решение владельца 22.09): курсор ввода и так виден */
.win input:focus,.win input:focus-visible{outline:0}
.win input[aria-invalid="true"]{box-shadow:inset 0 0 0 1px var(--danger)}
.win-hint{margin:0 0 10px;font-size:12.5px;color:var(--text-tertiary)}

/* кнопки F2: «Отмена» и главное действие в строку, опасное — отдельной красной строкой во всю ширину */
.win-acts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}

/* окно «Добавить активность» (design/guideline.html#windows, вариант Б): своё, не UI.popover */
#addModal.win{position:fixed;z-index:950;display:flex;flex-direction:column;max-height:calc(100 * var(--app-vh, 1vh) - 16px);overflow:hidden}
#addModal.win.hidden{display:none}
/* окно не выше экрана: прокручивается только список, заголовок, время и кнопки видны всегда */
#addModal.win>*{flex:none}
#addModal.win--embed>:not([data-embed]){display:none!important}
.win-back{flex:none;display:grid;place-items:center;width:26px;height:26px;margin:0 2px 0 -4px;padding:0;border:0;border-radius:50%;background:var(--border);color:var(--text-primary);cursor:pointer}
.win-back:hover{background:var(--border-2)}.win-back:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
.win-back .ui-icon{width:16px;height:16px}
/* режим правки окна «+» (владелец 25.09): карандаш в шапке, кнопки «Категорий» три в ряд, «Готово» во всю ширину */
#addModal.win--one #actEditBtn,#addModal:not(.win--editing)>.win-acts--edit{display:none}
#addModal.win--editing>.win-acts:not(.win-acts--edit),#addModal.win--editing #activityNameRow,#addModal.win--editing #activityTimeRow{display:none!important}
#addModal .win-acts--edit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
#addModal .win-acts--edit .win-btn--wide{grid-column:1/-1}
#addModal .win-acts--edit .win-btn .ui-icon{width:14px;height:14px}
#addModal .win-li__grp--edit{width:100%;border:0;background:none;cursor:pointer;text-align:left}
#addModal .win-li__grp--edit>.ui-icon{width:12px;height:12px;margin-left:auto;color:var(--text-secondary)}
#addModal .win-li__grp--edit .badge{padding:0 7px;border-radius:var(--radius-pill);font:700 10px/16px var(--font);text-transform:none;letter-spacing:0;background:var(--border);color:var(--text-primary)}
#addModal.win--editing .win-li__pin .ui-icon{fill:none}
#addModal .win-li__empty{margin:0;padding:6px 12px 10px;font-size:12px;color:var(--text-secondary)}   /* форма правки внутри окна «+» (владелец 25.09): список спрятан, не удалён */
#addModal.win>.win-list{flex:0 1 auto;min-height:120px;overflow-y:auto}
.win-list{padding:2px 0}
.win-li__grp{display:flex;align-items:center;gap:7px;padding:8px 12px 4px;font:700 11.5px/1.3 var(--font);letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}
.win-li{display:flex;align-items:center;gap:8px;width:100%;margin:0;padding:9px 12px;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent;
  color:var(--text-primary);font:500 14px/1.3 var(--font);text-align:left;cursor:pointer;transition:background .16s ease-out}
.win-li:last-child{border-bottom:0}
.win-li:hover{background:var(--matte)}
.win-li:focus{outline:0}
.win-li:focus-visible{background:var(--matte)}
.win-li__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.win-li__dur{flex:none;font:500 12px var(--font-num);color:var(--text-tertiary)}
.win-li__ck{flex:none;display:grid;place-items:center;width:16px;height:16px;visibility:hidden}
.win-li__ck .ui-icon{width:16px;height:16px}
.win-li.is-selected{font-weight:700}
.win-li.is-selected .win-li__ck{visibility:visible}
.win-li__plus{display:grid;place-items:center;width:8px;color:var(--text-tertiary)}
.win-li__plus .ui-icon{width:14px;height:14px}
.win input.win-text{flex:1;min-width:0;max-width:190px;height:auto;margin:0;padding:4px 10px;border:0;border-radius:8px;background:var(--border);color:var(--text-primary);font:500 14px/1.3 var(--font)}
.win input.win-text::placeholder,.win input.win-time::placeholder{color:var(--text-tertiary);font-weight:500}
/* время посчитано само — просто значение, не поле */
.win input.win-time--ro{padding:4px 0;background:transparent;font-weight:500;text-align:right;cursor:default}


/* ── Меню и всплывашки (design/guideline.html#menus, вариант А — компактное меню) ──
   Таймер темпа, состав «Вне функц.», «+ группа», аватар. Строки прямо на стекле, наведение — матовая подложка. */
.menu.hidden{display:none}
.menu--avatar{top:44px;right:0}
.menu.fc-pop{width:max-content;min-width:220px;max-width:300px}
.menu-ttl{padding:8px 10px 6px;font:700 15px/1.3 var(--font)}
.menu-ttl small{display:block;font:500 12px/1.4 var(--font-num);font-variant-numeric:tabular-nums;color:var(--text-tertiary)}
.menu-lbl{padding:8px 10px 2px;font:700 11.5px/1.3 var(--font);letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary)}
.menu-it{display:flex;align-items:center;gap:10px;width:100%;margin:0;padding:8px 10px;border:0;border-radius:10px;background:transparent;
  color:var(--text-primary);font:500 14px/1.35 var(--font);text-align:left;cursor:pointer;transition:background .16s ease-out}
.menu-it:hover,.menu-it:focus-visible,.menu-it.is-hover{background:var(--matte);outline:0}
.menu-it--static{cursor:default}
.menu-it--static:hover{background:transparent}
.menu-ic{display:grid;place-items:center;width:18px;flex:none;color:var(--text-secondary)}
.menu-ic .ui-icon{width:16px;height:16px}
.menu-it--danger,.menu-it--danger .menu-ic{color:var(--danger)}
.menu-val{margin-left:auto;font:500 14px var(--font-num);font-variant-numeric:tabular-nums;color:var(--text-secondary)}
.menu-ver{display:block;font:11.5px var(--font-num);color:var(--text-tertiary)}
.menu-sep{height:1px;margin:4px 6px;background:var(--border)}
.menu-hint{padding:4px 10px 6px;font-size:12px;line-height:1.4;color:var(--text-tertiary)}
.menu-sum{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;font:13px var(--font-num);font-variant-numeric:tabular-nums}
.menu-sum--gap{color:var(--text-tertiary)}
.menu-sum--total{font-weight:700}
.menu-theme{display:flex;align-items:center;gap:10px;padding:6px 10px}
.menu .seg-control{margin-left:auto;display:inline-flex;gap:2px;padding:3px;border:0;border-radius:var(--radius-pill);background:var(--border)}
.menu .seg-btn{padding:3px 10px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);font:500 12.5px/1.3 var(--font);cursor:pointer;box-shadow:none}
.menu .seg-btn--active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}
:root[data-theme="dark"] .menu .seg-btn--active{background:rgba(255,255,255,.16)}
.menu .win-dot{margin:0 5px}



/* ── Блок тайм-лайна §17 (S2): «Сегодня», прошлый день и «Аналитика» — один вид (аудит B03). Разметку даёт
   _blockHTML в today.js; экраны задают только сетку и масштаб. ── */
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block{position:absolute;left:0;right:0;overflow:hidden;border-bottom:2px solid transparent;border-radius:14px;
  background:color-mix(in srgb,var(--block-color) 14%,var(--block-fill));background-clip:padding-box;box-shadow:inset 0 0 0 .5px var(--border);
  user-select:none;transition:background-color .16s ease-out,box-shadow .16s ease-out}
:root[data-theme="dark"] :is(.shift-today,.analytics-day-tl,.tl-view) .tl-block{background-color:color-mix(in srgb,var(--block-color) 18%,var(--block-fill))}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) :is(.shift-today,.analytics-day-tl,.tl-view) .tl-block{background-color:color-mix(in srgb,var(--block-color) 18%,var(--block-fill))}}
:root :is(.shift-today,.analytics-day-tl,.tl-view) .tl-block:hover{background-color:color-mix(in srgb,var(--block-color) 24%,var(--block-fill))}
:root :is(.shift-today,.analytics-day-tl,.tl-view) .tl-block--selected,:root :is(.shift-today,.analytics-day-tl,.tl-view) .tl-block--selected:hover{background-color:var(--surface);box-shadow:inset 0 0 0 1px var(--block-color),0 6px 16px rgba(0,0,0,.10);z-index:3}
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px;z-index:6}
.day-b{height:100%;padding:5px 9px;overflow:hidden;cursor:grab}
.day-b:active{cursor:grabbing}
.day-b__t{display:flex;align-items:center;gap:6px;min-width:0;font:700 12.5px/1.3 var(--font);white-space:nowrap}
.day-b__name{overflow:hidden;text-overflow:ellipsis}
.day-dot{width:8px;height:8px;border-radius:50%;background:var(--block-color);flex:none}
.day-b__m{font:400 11.5px/1.4 var(--font-num);font-variant-numeric:tabular-nums;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-b--one{display:flex;align-items:center;gap:6px;padding-top:0;padding-bottom:0}
.day-b--one .day-b__name{flex:0 1 auto;min-width:0;max-width:45%;font:700 11.5px/1.3 var(--font)}
.day-b--one .day-b__m{flex:1;min-width:0;font-size:11px}
.day-badge{flex:none;padding:0 6px;border-radius:var(--radius-pill);background:var(--border-2);color:var(--text-secondary);font:700 10px/1.5 var(--font)}

/* ручки: зоны растягивания сверху и снизу; видимые полоски — только у выбранного блока */
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block__handle{position:absolute;left:0;right:0;height:7px;cursor:ns-resize;z-index:2}
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block__handle--top{top:0}
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block__handle--bottom{bottom:0}
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block--selected .tl-block__handle::after{content:'';position:absolute;left:calc(50% - 13px);width:26px;height:4px;border-radius:4px;background:var(--block-color)}
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block--selected .tl-block__handle--top::after{top:3px}
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block--selected .tl-block__handle--bottom::after{bottom:3px}
:is(.shift-today,.analytics-day-tl,.tl-view) .tl-block--static,.tl-block--static .day-b{cursor:default}
.tl-block--static:hover{background-color:color-mix(in srgb,var(--block-color) 14%,var(--block-fill))}

:is(.shift-today,.analytics-day-tl,.tl-view) .tl-live{z-index:4}
.tl-live .day-b{cursor:default}
.tl-live--compact .day-b__m{display:none}
.tl-live--compact .day-b{display:flex;align-items:center;padding-top:0;padding-bottom:0}
.tl-live--compact .day-b__t{flex:1}   /* заголовок во всю ширину — «Записать» у правого края, как в высоком блоке (владелец 24.09) */
.day-pulse{width:6px;height:6px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 25%,transparent);flex:none}
.day-stop{flex:none;margin:-3px 0 -3px auto;display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border:0;border-radius:var(--radius-pill);
  background:var(--chip);box-shadow:inset 0 0 0 .5px var(--border);color:var(--text-primary);font:700 12px/1.3 var(--font);cursor:pointer}
.day-stop:hover:not(:disabled){background:var(--matte)}   /* «Записать» — полупрозрачная капсула, как в «Рабочей задаче» (п. 23) */
.day-stop .ui-icon{width:12px;height:12px}
.day-stop:disabled{opacity:.45;cursor:default}
.day-stop:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}

/* ── Состояния §15 (аудит G03): загружается · пусто · ошибка + «Повторить» — одна плашка на матовом для всех экранов.
   Разметку даёт UI.stateHTML(); ошибка — красная обводка и текст, действие — малая кнопка справа. ── */
.ui-state{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 12px;border-radius:14px;background:var(--matte);
  font:400 13.5px/1.4 var(--font);color:var(--text-secondary)}
.ui-state__t{color:var(--text-primary);font-weight:700}
.ui-state__x{flex:1 1 220px;min-width:0}
.ui-state .sbtn{margin-left:auto;flex:none}
.ui-state--error{box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--danger) 45%,transparent)}
.ui-state--error .ui-state__t{color:var(--danger-text)}
.ui-state__spin{width:16px;height:16px;flex:none;box-sizing:border-box;border:2px solid var(--border-2);border-right-color:var(--text-secondary);border-radius:50%;animation:ui-spin .7s linear infinite}
.ui-state.hidden{display:none}

/* ── Иконки §7 (аудит V03): одна толщина линии Tabler 1.75 для всех .ui-icon — и из реестра uiIcon(), и в разметке ── */
svg.ui-icon{stroke-width:1.75}

/* ── Меньше движения (аудит V02): при системной настройке окна и меню появляются без анимации.
   Стоит в конце общего файла и перебивает поздние экранные правила. ── */
@media (prefers-reduced-motion:reduce){
  .pop.win,#addModal.win,.screen.as-modal.win,.modal.win,#avatarMenu.avatar-sheet,.menu,.pop.menu,.pop,.popover{animation:none!important}
}

/* Булавка «закрепить над «Сегодня»» в окне «Добавить активность» (§25 п. 6): видна при наведении/фокусе строки,
   у закреплённых — всегда, жёлтая; клик по ней не выбирает строку */
.win-li__pin{flex:none;display:grid;place-items:center;width:22px;height:22px;margin-left:auto;border-radius:50%;color:var(--text-tertiary);opacity:0;transition:opacity .16s ease-out,background .16s ease-out}
.win-li__pin .ui-icon{width:14px;height:14px}
.win-li:hover .win-li__pin,.win-li:focus-visible .win-li__pin{opacity:1}
.win-li__pin:hover{background:var(--matte);color:var(--text-primary)}
.win-li__pin.is-on{opacity:1;color:var(--text-primary)}
.win-li__pin.is-on .ui-icon{fill:var(--yellow)}
.win-li__pin+.win-li__dur{margin-left:6px}

/* ── Размер интерфейса при первом входе (§27, владелец 23.09) — три варианта как сегменты крупным планом ── */
.ui-size-ask { width: 400px; }
.ui-size-ask__opts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 4px 0 12px; }
.ui-size-ask__opt {
  display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 4px;
  height: 84px; padding: 10px 6px; border-radius: var(--radius-md); cursor: pointer;
  border: 1px solid var(--border); background: var(--surface-2); color: var(--text-secondary);
  font: 500 13px/1.2 var(--font); transition: all var(--transition);
}
.ui-size-ask__opt b { color: var(--text-primary); font-weight: 600; line-height: 1; }
.ui-size-ask__opt[aria-checked="true"] { background: var(--surface); color: var(--text-primary); border-color: var(--border-focus); box-shadow: var(--shadow-sm); }
.ui-size-ask__opt:focus-visible { outline: 2px solid var(--border-focus); outline-offset: 2px; }
/* сегменты в окне дня календаря смен (свободный час «в начале / в конце») — как в меню аватара */
.sched-edit-panel .seg-control,.rep-form .seg-control,.imp-win .seg-control{margin-left:auto;display:inline-flex;gap:2px;padding:3px;border:0;border-radius:var(--radius-pill);background:var(--border)}
.sched-edit-panel .seg-btn,.rep-form .seg-btn,.imp-win .seg-btn{padding:3px 10px;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--text-secondary);font:500 12.5px/1.3 var(--font);cursor:pointer;box-shadow:none}
.sched-edit-panel .seg-btn--active,.rep-form .seg-btn--active,.imp-win .seg-btn--active{background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-sm)}
.sched-edit-panel .seg-control[aria-disabled="true"]{opacity:.45;pointer-events:none}
:root[data-theme="dark"] .sched-edit-panel .seg-btn--active{background:rgba(255,255,255,.16)}

/* «Повтор» в окне типа активности (владелец 25.09): дни недели — капсулы-переключатели, дата — как поле времени */
.rep-days{margin-left:auto;display:inline-flex;gap:4px}
.rep-days button{width:28px;height:24px;padding:0;border:0;border-radius:8px;background:var(--border);color:var(--text-secondary);font:600 11.5px/1 var(--font);cursor:pointer}
.rep-days button[aria-pressed="true"]{background:var(--yellow);color:var(--on-accent)}
.rep-days button:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}
.win input.win-date{flex:0 0 108px;width:108px;text-align:right}
.rep-hint{margin:0;padding:2px 12px 8px;font-size:12px;color:var(--text-secondary)}
.rep-ic{width:12px;height:12px;flex:none;color:var(--text-secondary)}

/* Окно «Загрузить распределение» (владелец 25.09): файл, месяц, логин; функции файла → группы */
.imp-win .imp-step{margin-left:auto;font:600 11.5px var(--font);color:var(--text-tertiary)}
.imp-win .imp-file{display:flex;align-items:center;gap:8px;min-width:0}
.imp-win .imp-file b{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.imp-win .imp-file .ui-icon{width:16px;height:16px;flex:none;color:var(--text-secondary)}
.imp-win .imp-login{margin-left:auto;font-weight:600}
.imp-win .imp-map{gap:10px}
.imp-win .imp-fn{display:flex;flex-direction:column;min-width:0;flex:1}
.imp-win .imp-fn b{font-weight:600}.imp-win .imp-fn small{font:500 11.5px var(--font-num);color:var(--text-secondary)}
.imp-win .imp-tag{display:inline-block;margin-left:6px;padding:0 7px;border-radius:var(--radius-pill);font:700 10.5px/17px var(--font);vertical-align:1px}
.imp-win .imp-tag--ok{background:color-mix(in srgb,var(--success) 18%,transparent);color:var(--success-text,var(--text-primary))}
.imp-win .imp-tag--mem{background:var(--border);color:var(--text-primary)}
.imp-win .imp-tag--new{background:color-mix(in srgb,var(--yellow) 45%,transparent);color:var(--text-primary)}
.imp-win .imp-new{padding:0 0 10px 12px;display:flex;flex-direction:column;gap:6px}
.imp-win .win-grp .imp-new .win-row{padding-left:0}
.exchange-window { max-height:85vh; overflow:auto; }
.exchange-value { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; margin:4px 0; max-height:160px; overflow:auto; }
