/* БАЗА: общие компоненты, одинаковые для классики и OSBOS. Правила режимов сюда не добавлять. */
/* ==========================================================================
   Оформление в духе Apple HIG (macOS / iOS / iPadOS) — единственный профиль системы.
   Схемы задают только акцент (--ap) и обои (--w1..3); всё остальное — системные нейтральные цвета Apple.
   Ориентиры: сгруппированные списки (inset grouped), «tinted/filled/plain» кнопки, сегментированный контроль,
   переключатель 51×31, источник-список (sidebar) macOS, навигационная панель и нижняя панель вкладок iOS.
   ========================================================================== */
html[data-pf="apple"] {
  color-scheme: light;
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Inter, "Segoe UI", Roboto, Arial, sans-serif;

  --primary: var(--ap); --acc: var(--ap);
  --primary-hover: color-mix(in srgb, var(--ap) 84%, #000); --acc-d: var(--primary-hover);
  --primary-soft: color-mix(in srgb, var(--ap) 12%, transparent);
  --primary-ring: color-mix(in srgb, var(--ap) 30%, transparent);
  --dsk-accent: var(--ap); --tg-c: var(--ap);
  --bg: #f2f2f7; --surface: #fff; --surface-2: #f9f9fb; --surface-3: rgba(118, 118, 128, .12);
  --text: #1c1c1e; --text-2: #3a3a3c; --muted: #6c6c70; --faint: #8e8e93;
  --line: rgba(60, 60, 67, .14); --line-strong: rgba(60, 60, 67, .28);
  --fill: rgba(118, 118, 128, .12); --fill-2: rgba(118, 118, 128, .2);
  --danger: #ff3b30; --danger-hover: #d92d24; --danger-soft: rgba(255, 59, 48, .1);
  --success: #34c759; --success-soft: rgba(52, 199, 89, .15); --warn: #b26b00; --warn-soft: rgba(255, 149, 0, .15);
  --r-sm: 8px; --r: 10px; --r-lg: 14px;
  --sh-1: 0 0 0 .5px rgba(60, 60, 67, .12); --sh-2: 0 8px 28px rgba(0, 0, 0, .12); --sh-pop: 0 20px 60px rgba(0, 0, 0, .3);
  --os-grad: linear-gradient(135deg, color-mix(in srgb, var(--ap) 100%, #fff 0%), color-mix(in srgb, var(--ap) 70%, #fff));

  --hit: 36px;
}

@media (pointer: coarse) {
 html[data-pf="apple"] { --hit: 44px; }
}

html[data-pf="apple"] body { font-size: 15px; letter-spacing: -.005em; }

html[data-pf="apple"] body:not(.dsk):not(.login-page) { background: var(--bg); }

html[data-pf="apple"] body.login-page { background: linear-gradient(160deg, var(--w1), var(--w2) 55%, var(--w3)); }

html[data-pf="apple"] h1 { font-size: 30px; font-weight: 700; letter-spacing: -.03em; }

html[data-pf="apple"] h2 { font-weight: 650; letter-spacing: -.02em; }


/* ----- кнопки: filled / tinted / plain ----- */
html[data-pf="apple"] .btn { min-height: var(--hit); border-radius: 10px; border: 0; background: rgba(0, 0, 0, .08); color: var(--text); font-weight: 500; box-shadow: none; transition: background .15s, opacity .15s, transform .08s; }

html[data-pf="apple"] .btn:hover { background: rgba(0, 0, 0, .13); border: 0; }

html[data-pf="apple"] .btn:active { transform: scale(.97); opacity: .85; }

html[data-pf="apple"] .btn-primary,
html[data-pf="apple"] .btn-create { background: linear-gradient(#3b9bff, #007aff); color: #fff; box-shadow: 0 1px 2px rgba(0, 80, 200, .28), inset 0 1px 0 rgba(255, 255, 255, .22); border: 0; }

html[data-pf="apple"] .btn-primary:hover,
html[data-pf="apple"] .btn-create:hover { background: linear-gradient(#52a8ff, #0a84ff); transform: none; }

html[data-pf="apple"] .btn-soft { background: var(--primary-soft); color: var(--ap); }

html[data-pf="apple"] .btn-soft:hover { background: color-mix(in srgb, var(--ap) 20%, transparent); }

html[data-pf="apple"] .btn-ghost { background: transparent; color: var(--ap); }

html[data-pf="apple"] .btn-ghost:hover { background: var(--primary-soft); }

html[data-pf="apple"] .btn-danger { background: linear-gradient(#ff6a60, #ff3b30); color: #fff; box-shadow: 0 1px 2px rgba(200, 40, 30, .28), inset 0 1px 0 rgba(255, 255, 255, .22); }

html[data-pf="apple"] .btn-danger-ghost { background: transparent; color: var(--danger); }

html[data-pf="apple"] .btn-danger-ghost:hover { background: var(--danger-soft); }

html[data-pf="apple"] .btn-sm { min-height: 32px; border-radius: 9px; }

html[data-pf="apple"] .btn-icon { width: var(--hit); }

html[data-pf="apple"] .btn-icon.btn-sm { width: 32px; }

html[data-pf="apple"] .btn-create .cr-ico { background: rgba(255, 255, 255, .22); border-radius: 8px; }

html[data-pf="apple"] .list-actions .btn-ghost { color: var(--muted); }

html[data-pf="apple"] .list-actions .btn-ghost:hover { color: var(--ap); }

html[data-pf="apple"] .list-actions .btn-danger-ghost { color: var(--danger); }


/* ----- сегментированный контроль и переключатель режима ----- */
html[data-pf="apple"] .seg,
html[data-pf="apple"] .mode-switch { background: var(--fill); border: 0; border-radius: 10px; padding: 2px; }

html[data-pf="apple"] .seg a,
html[data-pf="apple"] .mode-switch button { border-radius: 8px; font-weight: 600; }

html[data-pf="apple"] .seg a.is-active,
html[data-pf="apple"] .mode-switch button.is-active { background: #fff; color: var(--text); box-shadow: 0 .5px 1px rgba(0, 0, 0, .12), 0 2px 6px rgba(0, 0, 0, .1); }

html[data-pf="apple"] .set-tabs a { border: 0; background: var(--fill); color: var(--text-2); border-radius: 999px; padding: 7px 14px; font-weight: 600; font-size: 13.5px; }

html[data-pf="apple"] .set-tabs a:hover { background: var(--fill-2); }

html[data-pf="apple"] .set-tabs a.is-active { background: var(--ap); color: #fff; border: 0; }

html[data-pf="apple"] .set-tabs a.is-active .i { color: #fff; }


/* ----- переключатель iOS 51×31 ----- */
html[data-pf="apple"] .switch-track { width: 51px; height: 31px; border-radius: 99px; background: rgba(120, 120, 128, .32); }

html[data-pf="apple"] .switch-track::after { left: 2px; top: 2px; width: 27px; height: 27px; background: #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, .15), 0 1px 1px rgba(0, 0, 0, .16), 0 3px 1px rgba(0, 0, 0, .1); }

html[data-pf="apple"] .switch input:checked + .switch-track { background: #34c759; }

html[data-pf="apple"] .switch input:checked + .switch-track::after { transform: translateX(20px); }

html[data-pf="apple"] .svc-track { background: rgba(120, 120, 128, .32); }

html[data-pf="apple"] input[type="range"] { accent-color: var(--ap); }

html[data-pf="apple"] input[type="checkbox"],
html[data-pf="apple"] input[type="radio"] { accent-color: var(--ap); }


/* ----- сгруппированные блоки (inset grouped) ----- */
html[data-pf="apple"] .card,
html[data-pf="apple"] .fold,
html[data-pf="apple"] .stat,
html[data-pf="apple"] .list,
html[data-pf="apple"] .module-card { border: 0; border-radius: var(--r-lg); box-shadow: var(--sh-1); background: var(--surface); }

html[data-pf="apple"] .card-head,
html[data-pf="apple"] .list-head { border-bottom: .5px solid var(--line); background: transparent; }

html[data-pf="apple"] .list-head { color: var(--faint); font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; }

html[data-pf="apple"] .list-row { border-bottom: 0; position: relative; }

html[data-pf="apple"] .list-row + .list-row::before { content: ""; position: absolute; top: 0; left: 22px; right: 0; border-top: .5px solid var(--line); }

html[data-pf="apple"] .list-row:hover { background: rgba(60, 60, 67, .035); }

html[data-pf="apple"] .fold-head { padding: 14px 18px; }

html[data-pf="apple"] .fold-chev { background: var(--fill); border-radius: 50%; width: 28px; height: 28px; }

html[data-pf="apple"] .page-head h1 { font-size: 32px; }

html[data-pf="apple"] .page-head p { color: var(--muted); }

html[data-pf="apple"] .badge { border-radius: 999px; font-weight: 600; background: var(--fill); color: var(--text-2); }

html[data-pf="apple"] .badge-ok { background: var(--success-soft); color: #1b7a38; }

html[data-pf="apple"] .badge-warn { background: var(--warn-soft); color: var(--warn); }

html[data-pf="apple"] .hero { border-radius: 20px; background: radial-gradient(900px 300px at 100% -20%, rgba(255, 255, 255, .28), transparent 60%), var(--os-grad); box-shadow: 0 12px 32px color-mix(in srgb, var(--ap) 28%, transparent); }


/* ----- поля ввода ----- */
html[data-pf="apple"] .input,
html[data-pf="apple"] .select,
html[data-pf="apple"] .textarea,
html[data-pf="apple"] input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),
html[data-pf="apple"] select,
html[data-pf="apple"] textarea {
  border: .5px solid var(--line-strong); border-radius: 10px; background-color: #fff; min-height: var(--hit); }

html[data-pf="apple"] .input:hover,
html[data-pf="apple"] .select:hover,
html[data-pf="apple"] .textarea:hover { border-color: var(--line-strong); }

html[data-pf="apple"] .input:focus,
html[data-pf="apple"] .select:focus,
html[data-pf="apple"] .textarea:focus,
html[data-pf="apple"] input:focus,
html[data-pf="apple"] select:focus,
html[data-pf="apple"] textarea:focus { border-color: var(--ap); box-shadow: 0 0 0 4px var(--primary-ring); outline: 0; }

html[data-pf="apple"] .field-label { font-weight: 600; font-size: 13.5px; }


/* ----- модальные окна и листы ----- */
html[data-pf="apple"] .osb-overlay { background: rgba(0, 0, 0, .32); }

html[data-pf="apple"] .dlg,
html[data-pf="apple"] .osb-dialog { border-radius: 14px; }

html[data-pf="apple"] .fab-top { background: rgba(255, 255, 255, .85); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); color: var(--ap); border: 0; box-shadow: var(--sh-2); }

html[data-pf="apple"] .fab-top:hover { background: var(--ap); color: #fff; }

html[data-pf="apple"] .osb-toast { background: rgba(40, 40, 44, .94); border-radius: 14px; }

html[data-pf="apple"] .chat-compose-row [data-act="send"],
html[data-pf="apple"] .messenger-app .chat-compose-row [data-act="send"] { background: var(--ap); border-color: var(--ap); box-shadow: none; }

html[data-pf="apple"] .form-bar { background: rgba(249, 249, 251, .85); -webkit-backdrop-filter: saturate(1.8) blur(20px); backdrop-filter: saturate(1.8) blur(20px); border-top: .5px solid var(--line-strong); }

@media (max-width: 900px) {
  html[data-pf="apple"] body:not(.has-bar) .page { padding-bottom: calc(64px + var(--sab, 0px)); }

  html[data-pf="apple"] .fab-top { bottom: calc(76px + var(--fab-lift, 0px) + var(--sab, 0px)); }

  html[data-pf="apple"] body:has(.form-bar) .fab-top,
html[data-pf="apple"] body:has(.ed-bar) .fab-top { bottom: calc(136px + var(--fab-lift, 0px) + var(--sab, 0px)); }

  html[data-pf="apple"] .osb-toasts { bottom: 76px; }
}


/* ----- рабочий стол (режим ОС) ----- */
html[data-pf="apple"]:has(body.dsk),
html[data-pf="apple"] body.dsk { background: radial-gradient(1200px 800px at 80% 0, var(--w3), transparent 60%), radial-gradient(1100px 800px at 0 100%, var(--w1), transparent 60%), radial-gradient(900px 700px at 50% 50%, var(--w2), transparent 70%), linear-gradient(160deg, var(--w1), var(--w2) 55%, var(--w3)); }

html[data-pf="apple"] .dsk-bar { background: rgba(246, 246, 248, .62) !important; -webkit-backdrop-filter: saturate(1.8) blur(24px); backdrop-filter: saturate(1.8) blur(24px); color: #1c1c1e; text-shadow: none; border-bottom: .5px solid rgba(0, 0, 0, .12); }

html[data-pf="apple"] .dsk-bar .mb > button:hover,
html[data-pf="apple"] .dsk-bar .mb.open > button,
html[data-pf="apple"] .dsk-bar .tool:hover { background: rgba(0, 0, 0, .08); }

html[data-pf="apple"] .dsk-bar .clock { color: #1c1c1e; }

html[data-pf="apple"] .dsk-bar img:not(.uav) { filter: brightness(0) opacity(.86); }

html[data-pf="apple"] .dsk-bar svg { stroke: currentColor; }

html[data-pf="apple"] .dsk-dock { background: rgba(255, 255, 255, .5) !important; border-color: rgba(255, 255, 255, .7); box-shadow: 0 10px 40px rgba(0, 0, 0, .18); }

html[data-pf="apple"] .dk,
html[data-pf="apple"] .dk small { color: #1c1c1e; text-shadow: none; }

html[data-pf="apple"] .dk.home .ic { background: linear-gradient(160deg, color-mix(in srgb, var(--ap) 70%, #fff), var(--ap)); }

html[data-pf="apple"] .di > span,
html[data-pf="apple"] .di small { color: #1c1c1e; text-shadow: 0 1px 2px rgba(255, 255, 255, .6); }

html[data-pf="apple"] .win .wt { background: linear-gradient(#f6f6f8, #e8e8ec); }

html[data-pf="apple"] .win:not(.foc) .wt { background: #f4f4f6; }

html[data-pf="apple"] .dsk-narrow { background: #f2f2f7; color: #1c1c1e; }

html[data-pf="apple"] .status-select { min-height: 30px; padding: 0 28px 0 12px; border: 0; border-radius: 999px; background-color: var(--fill); font-weight: 600; font-size: 13px; }

html[data-pf="apple"] .list-row .status-select[data-v="published"] { background-color: var(--success-soft); color: #1b7a38; }

html[data-pf="apple"] .dsk-bar .logo,
html[data-pf="apple"] .dsk-bar .mb > button img:not(.uav) { filter: brightness(0) opacity(.86) !important; }

html[data-pf="apple"] .di .ic { background: rgba(255, 255, 255, .78); color: var(--ap); box-shadow: 0 6px 18px rgba(0, 0, 0, .14), inset 0 0 0 .5px rgba(255, 255, 255, .8); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }

html[data-pf="apple"] .di .ic .i { stroke: currentColor; }

html[data-pf="apple"] .win { box-shadow: 0 10px 36px rgba(0, 0, 0, .22), 0 0 0 .5px rgba(0, 0, 0, .22); }

html[data-pf="apple"] .win.foc { box-shadow: 0 22px 60px rgba(0, 0, 0, .3), 0 0 0 .5px rgba(0, 0, 0, .3); }

html[data-pf="apple"] .di.sel { background: color-mix(in srgb, var(--ap) 30%, transparent); outline: 1px solid color-mix(in srgb, var(--ap) 60%, #fff); }


/* ----- выпадающие списки: «pop-up button» с шевронами вверх/вниз ----- */
html[data-pf="apple"] select:not([multiple]),
html[data-pf="apple"] .select,
html[data-pf="apple"] .status-select {
  appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 34px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238e8e93' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 9 5-5 5 5M7 15l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 11px center; background-size: 14px; }

html[data-pf="apple"] select:not([multiple]):hover,
html[data-pf="apple"] .status-select:hover { background-color: #fafafc; }

html[data-pf="apple"] .status-select { background-color: var(--fill); }

html[data-pf="apple"] .status-select[data-v="published"] { background-color: var(--success-soft); }

html[data-pf="apple"] .status-select[data-v="archived"] { background-color: var(--fill-2); color: var(--muted); }


/* ----- «назад»: капсула со стеклом и шевроном ----- */
html[data-pf="apple"] .back-link { align-self: flex-start; gap: 4px; padding: 6px 14px 6px 8px; border-radius: 999px; background: rgba(255, 255, 255, .78); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border: .5px solid var(--line-strong); box-shadow: 0 1px 3px rgba(0, 0, 0, .06); color: var(--ap); font-weight: 600; font-size: 14px; min-height: 34px; }

html[data-pf="apple"] .back-link:hover { color: var(--ap); background: #fff; }

html[data-pf="apple"] .back-link > .i { display: none; }

html[data-pf="apple"] .back-link::before { content: ""; width: 20px; height: 20px; flex: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 5-7 7 7 7'/%3E%3C/svg%3E") center / 20px no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 5-7 7 7 7'/%3E%3C/svg%3E") center / 20px no-repeat; }

html[data-pf="apple"] .chat-back,
html[data-pf="apple"] .fm-ib.back { border-radius: 999px; }


/* ----- ползунок iOS ----- */
html[data-pf="apple"] input[type="range"] { -webkit-appearance: none; appearance: none; height: 28px; background: transparent; min-height: 0; border: 0; padding: 0; box-shadow: none; }

html[data-pf="apple"] input[type="range"]::-webkit-slider-runnable-track { height: 4px; border-radius: 2px; background: var(--fill-2); }

html[data-pf="apple"] input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; margin-top: -11px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 .5px rgba(0, 0, 0, .12), 0 3px 8px rgba(0, 0, 0, .18); }

html[data-pf="apple"] input[type="range"]::-moz-range-track { height: 4px; border-radius: 2px; background: var(--fill-2); }

html[data-pf="apple"] input[type="range"]::-moz-range-thumb { width: 26px; height: 26px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 .5px rgba(0, 0, 0, .12), 0 3px 8px rgba(0, 0, 0, .18); }


/* ----- окна рабочего стола как в macOS: мягкая тень, неактивное окно светлее и прозрачнее ----- */
html[data-pf="apple"] .win { box-shadow: 0 0 0 .5px rgba(0, 0, 0, .18), 0 6px 18px rgba(0, 0, 0, .12); transition: box-shadow .25s, opacity .25s; }

html[data-pf="apple"] .win.foc { box-shadow: 0 0 0 .5px rgba(0, 0, 0, .22), 0 22px 54px rgba(0, 0, 0, .26), 0 6px 14px rgba(0, 0, 0, .12); }

html[data-pf="apple"] .win:not(.foc):not(.moving) { opacity: 1; }

html[data-pf="apple"] .win:not(.foc) .wt { background: #f3f3f5; }

html[data-pf="apple"] .win:not(.foc) .wt .tt,
html[data-pf="apple"] .win:not(.foc) .wt .wi { opacity: .55; }

html[data-pf="apple"] .win:not(.foc) .wt button { opacity: .5; }


/* ----- лист «Ещё» (iOS sheet) и настройка нижней панели ----- */
.more-sheet { position: fixed; inset: 0; z-index: 9100; }

.more-sheet .ms-back { position: absolute; inset: 0; background: rgba(0, 0, 0, 0); transition: background .25s; }

.more-sheet.open .ms-back { background: rgba(0, 0, 0, .32); }

.more-sheet .ms-panel { position: absolute; left: 0; right: 0; bottom: 0; max-height: calc(100dvh - 44px); display: flex; flex-direction: column; background: #f2f2f7; border-radius: 14px 14px 0 0; box-shadow: 0 -8px 40px rgba(0, 0, 0, .2); transform: translateY(100%); transition: transform .32s cubic-bezier(.2, .8, .2, 1); padding-bottom: var(--sab, 0px); }

.more-sheet.open .ms-panel { transform: none; }

@media (min-width: 640px) {
 .more-sheet .ms-panel { left: 50%; right: auto; width: 520px; margin-left: -260px; }
}

.ms-grab { width: 36px; height: 5px; border-radius: 3px; background: rgba(60, 60, 67, .3); margin: 6px auto 0; }

.more-sheet header { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 6px 12px 8px; }

.more-sheet .ms-title { margin: 0; font-size: 17px; font-weight: 650; text-align: center; }

.ms-btn { justify-self: start; min-height: 36px; padding: 0 12px; border: 0; border-radius: 999px; background: transparent; color: var(--ap); font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; }

.ms-btn.ms-x { justify-self: end; width: 34px; height: 34px; min-height: 0; padding: 0; display: grid; place-items: center; background: rgba(118, 118, 128, .16); color: var(--muted); }

.ms-btn.ms-x .i { width: 16px; height: 16px; }

.ms-body { overflow-y: auto; padding: 4px 16px 20px; overscroll-behavior: contain; }

.ms-body section { margin-top: 14px; }

.ms-body h3 { margin: 0 0 6px 16px; font-size: 12px; font-weight: 600; color: var(--faint); text-transform: uppercase; letter-spacing: .03em; }

.ms-hint { margin: 8px 6px 0; color: var(--muted); font-size: 13px; }

.ms-group { background: #fff; border-radius: 12px; overflow: hidden; }

.ms-row { position: relative; display: flex; align-items: center; gap: 12px; width: 100%; min-height: 48px; padding: 8px 14px 8px 14px; border: 0; background: #fff; color: var(--text); font: inherit; font-size: 16px; text-align: left; cursor: pointer; text-decoration: none; }

.ms-row + .ms-row::before { content: ""; position: absolute; top: 0; left: 58px; right: 0; border-top: .5px solid var(--line); }

.ms-row:active { background: rgba(60, 60, 67, .08); }

.ms-ico { flex: none; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: var(--ap); color: #fff; }

.ms-ico .i { width: 18px; height: 18px; color: #fff; stroke: #fff; }

.ms-lb { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.ms-row > .i { width: 16px; height: 16px; color: var(--faint); flex: none; }

.ms-pick { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid rgba(60, 60, 67, .3); display: grid; place-items: center; color: transparent; }

.ms-pick.on { background: var(--ap); border-color: var(--ap); color: #fff; }

.ms-pick .i { width: 14px; height: 14px; }

.ms-row.shake { animation: dskshake .3s; }

.ms-out { color: var(--danger); }

.ms-out .ms-ico { background: var(--danger); }

html[data-pf="apple"]:has(body.login-page) { background: var(--w1); }

html[data-pf="apple"] .fm-ib { height: 32px; border: 0; border-radius: 9px; background: var(--fill); color: var(--text); font-weight: 600; }

html[data-pf="apple"] .fm-ib:hover { background: var(--fill-2); }

html[data-pf="apple"] .fm-ib.prim { background: var(--ap); color: #fff; }

html[data-pf="apple"] .fm-search { border: 0; background: var(--fill); border-radius: 9px; }

html[data-pf="apple"] .fm-tools { background: rgba(249, 249, 251, .85); border-bottom: .5px solid var(--line-strong); }


/* ===== Боковой список разделов (как в «Файлах» и «Настройках» iPadOS) ===== */
.set-tabs .set-group { display: none; }

@media (min-width: 721px) {
  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs { padding: 12px 10px; gap: 2px; background: var(--surface-2); border-right: 1px solid var(--line); }

  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs .set-group { display: block; padding: 14px 12px 5px; font-size: 11.5px; font-weight: 600; letter-spacing: .02em; text-transform: uppercase; color: var(--text-3, #8a8f9a); }

  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs .set-group:first-child { padding-top: 4px; }

  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs a { background: transparent; color: var(--text); border-radius: 10px; padding: 8px 12px; font-weight: 500; font-size: 14px; gap: 10px; }

  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs a .i { color: var(--ap); }

  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs a:hover { background: var(--fill); }

  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs a.is-active { background: var(--ap); color: #fff; }

  html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs a.is-active .i { color: #fff; }
}

@media (min-width: 721px) {
 html[data-pf="apple"]:not(.zz) .page:has(> .set-tabs) > .set-tabs a { white-space: normal; line-height: 1.25; }
}


/* ===== Без лишних заголовков: название модуля — в главном меню / заголовке окна; на телефоне — над лентой подразделов ===== */
.mod-title { display: none; }

.page:has(> .set-tabs) > .page-head > div:first-child:not(.page-head-actions):not(.an-actions),
.page:has(> .set-tabs) > .page-head > .head-ico { display: none; }

.page:has(> .set-tabs) > .page-head:not(:has(a.btn, button.btn, .page-head-actions, .an-actions)) { display: none; }

.page:has(> .set-tabs) > .page-head { justify-content: flex-end; align-items: center; margin-bottom: 14px; }

/* планшет и узкие окна: компактный список разделов, плотные строки */
@media (min-width: 721px) and (max-width: 1100px) {
  .page:has(> .set-tabs) { grid-template-columns: 188px minmax(0, 1fr) !important; }

  .page:has(> .set-tabs) .user-row { grid-template-columns: 44px minmax(0, 1fr); }

  .page:has(> .set-tabs) .user-row .u-meta,
.page:has(> .set-tabs) .user-row .list-actions { grid-column: 1 / -1; justify-content: flex-start; }

  .page:has(> .set-tabs) > .page-head > .btn { align-self: center; }
}

.page:has(> .set-tabs) > .page-head > .btn { margin-left: auto; }

html[data-pf="apple"] .help-search input[type=search] { border: 0 !important; background: transparent !important; box-shadow: none !important; height: auto; }


/* ===== Заголовок модуля в стиле iOS/macOS (large title) ===== */
.set-tabs .set-title { display: none; }

/* длинное название модуля: уменьшаем кегль, переносим по словам и слогам, не ломая колонку */
.set-tabs .set-title { overflow-wrap: anywhere; hyphens: auto; text-wrap: balance; max-width: 100%; }

.set-tabs .set-title { hyphens: manual; overflow-wrap: break-word; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }

.set-tabs .set-title { flex: none; }


/* ===== Плоский интерфейс: панель формы выезжает справа (как push в iOS) ===== */
.fm-panel { position: fixed; z-index: 80; display: flex; flex-direction: column; background: #fff; transform: translateX(100%); transition: transform .28s cubic-bezier(.2, .8, .2, 1); box-shadow: -10px 0 30px rgba(0, 0, 0, .12); }

.fm-panel.on { transform: none; }

@media (max-width: 720px) {
 .fm-panel { z-index: 200; box-shadow: none; }
}

.fm-nav { flex: none; height: 50px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 8px; background: rgba(249, 249, 251, .94); border-bottom: .5px solid var(--line-strong); }

.fm-back { justify-self: start; display: inline-flex; align-items: center; gap: 2px; max-width: 42vw; border: 0; background: none; color: var(--ap); font: inherit; font-size: 16px; padding: 8px 8px 8px 2px; border-radius: 10px; cursor: pointer; }

.fm-back:hover { background: var(--primary-soft); }

.fm-back span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.fm-title { max-width: 42vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; font-size: 16px; }

.fm-panel iframe { flex: 1; min-height: 0; width: 100%; border: 0; background: #fff; }

.fm-ask { position: absolute; inset: 0; z-index: 5; }

.fm-ask .mini-back { position: absolute; inset: 0; background: rgba(0, 0, 0, .22); }

.fm-ask .mini-win { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 420px; max-width: 92%; background: #fff; border-radius: 14px; box-shadow: 0 18px 50px rgba(0, 0, 0, .35), 0 0 0 .5px rgba(0, 0, 0, .2); overflow: hidden; }

.fm-ask .mw-t { height: 40px; display: flex; align-items: center; padding: 0 16px; background: linear-gradient(#f6f6f8, #e8e8ec); border-bottom: 1px solid rgba(0, 0, 0, .12); font-weight: 600; font-size: 14px; }

.fm-ask .mw-b { padding: 16px; }
 .fm-ask p { margin: 0 0 14px; color: #3a3a3c; font-size: 14px; line-height: 1.4; }

.fm-ask .mw-a { display: flex; gap: 8px; justify-content: flex-end; flex-wrap: wrap; }

.fm-ask .mw-btn { border: 0; border-radius: 10px; padding: 9px 14px; font: inherit; font-weight: 600; background: #ececf0; color: #1c1c1e; cursor: pointer; }

.fm-ask .mw-btn.pri { background: var(--ap); color: #fff; }

body:has(.fm-panel) .fab-top { display: none !important; }


/* вход: поля белые — текст тёмный, подсказка серая (раньше наследовали белый цвет и не читались) */
html[data-pf="apple"] body.login-page .login-card .input,
html[data-pf="apple"] body.login-page .login-card input:not([type=checkbox]) { color: #1c1c1e; -webkit-text-fill-color: #1c1c1e; caret-color: var(--ap); }

html[data-pf="apple"] body.login-page .login-card .input::placeholder,
html[data-pf="apple"] body.login-page .login-card input::placeholder { color: #8e8e93; -webkit-text-fill-color: #8e8e93; opacity: 1; }

@media (max-width: 900px) {
  html[data-pf="apple"] .chat-panel [data-act="close"] { display: none !important; }
}


/* ===== Планшет: книжная ориентация — колонка меню (плоский вид), подменю модуля чипсами; альбом — меню + колонка подменю ===== */
@media (min-width: 721px) and (max-width: 900px) {
  html[data-pf="apple"] .fab-top { bottom: 24px; }

  html[data-pf="apple"] .osb-toasts { bottom: 20px; }
}

@media (orientation: portrait) and (max-width: 1100px) {
 .mode-switch { display: none !important; }
}


/* размытие краёв прокручиваемых лент — везде (плоские версии, окна ОС, планшет, телефон); класс ставит ui.js только когда есть что прокрутить */
.sc-r { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 44px), transparent) !important; mask-image: linear-gradient(to right, #000 calc(100% - 44px), transparent) !important; }

.sc-l { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 44px), transparent) !important; mask-image: linear-gradient(to left, #000 calc(100% - 44px), transparent) !important; }

.sc-l.sc-r { -webkit-mask-image: linear-gradient(to right, transparent, #000 36px, #000 calc(100% - 44px), transparent) !important; mask-image: linear-gradient(to right, transparent, #000 36px, #000 calc(100% - 44px), transparent) !important; }


/* строки поиска с иконкой: поле внутри не рисует вторую рамку и фон — только обёртка */
.ml-search,
.fm-search,
.help-search { align-items: center; gap: 8px; min-height: 38px; padding-top: 0; padding-bottom: 0; }

.ml-search input[type=search],
.fm-search input[type=search],
.help-search input[type=search] { flex: 1; min-width: 0; width: auto; height: auto !important; min-height: 0 !important; margin: 0; padding: 8px 0 !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; outline: 0 !important; -webkit-appearance: none; appearance: none; }

.fm-search { height: auto; min-height: 38px; }

.fm-search input[type=search],
.ml-search input[type=search] { font-size: 16px; }


/* кнопка «наверх»: ровно в правом нижнем углу области контента; высоту панелей (форма, нижнее меню) добавляет --fab-lift из ui.js */
html .fab-top,
html[data-pf="apple"] .fab-top,
html[data-pf="apple"] body:has(.form-bar) .fab-top,
html[data-pf="apple"] body:has(.ed-bar) .fab-top,
body.has-bar .fab-top { right: 16px !important; bottom: calc(16px + var(--fab-lift, 0px)) !important; }

/* Верхнее меню OSBOS — «жидкое стекло» как в macOS: почти прозрачное, с размытием и светлой кромкой; логотип мягкий графитовый */
html[data-pf="apple"] .dsk-bar { background: linear-gradient(180deg, rgba(255,255,255,.34), rgba(255,255,255,.14)) !important; -webkit-backdrop-filter: saturate(2.2) blur(34px) brightness(1.06); backdrop-filter: saturate(2.2) blur(34px) brightness(1.06); border-bottom: 0 !important; box-shadow: inset 0 -1px 0 rgba(255,255,255,.38), inset 0 1px 0 rgba(255,255,255,.5), 0 1px 14px rgba(40,50,110,.12); text-shadow: 0 1px 0 rgba(255,255,255,.35); }
html[data-pf="apple"] .dsk-bar .logo,
html[data-pf="apple"] .dsk-bar .mb > button img.logo { filter: brightness(0) opacity(.58) !important; }
html[data-pf="apple"] .dsk-bar .mb > button:hover,
html[data-pf="apple"] .dsk-bar .mb.open > button,
html[data-pf="apple"] .dsk-bar .tool:hover { background: rgba(255,255,255,.34); box-shadow: inset 0 0 0 .5px rgba(255,255,255,.55); }
html[data-pf="apple"] .dsk-bar .mode-switch { background: rgba(255,255,255,.28); box-shadow: inset 0 0 0 .5px rgba(255,255,255,.5); }

/* Логотип в верхнем меню — как яблоко в macOS: компактный знак «TRS», стеклянный, без «кнопки» (ни плашки, ни подсветки при наведении) */
.dsk-bar .mb:first-child > button { background: none !important; box-shadow: none !important; padding: 0 !important; overflow: visible; }
.dsk-bar .logo.glyph { display: block; height: 52px !important; width: 148px !important; margin: -6px 0 -6px 4px; padding: 0 !important; background: url(../../img/osbos-glass.png) center / contain no-repeat !important; -webkit-mask: none !important; mask: none !important; filter: none !important; pointer-events: none; }

/* логотип OSBOS в верхней панели OSBOS: по вертикали по центру панели */
.dsk-bar .logo.glyph { position: relative; top: 5.5px; }

/* окна (iframe OSBOS и модалки): единые отступы контента — сверху, снизу (от панели кнопок или низа окна) и по бокам = 16px */
html.is-embed main.page { padding: 16px !important; }
html.is-embed.has-treepane main.page { padding: 16px 16px 16px 0 !important; }
html.is-embed main.page::before, html.is-embed main.page::after { display: none !important; content: none !important; }
html.is-embed main.page > :last-child { margin-bottom: 0 !important; }
html.is-embed main.page > form.editor > .card:last-of-type { margin-bottom: 16px !important; }
html.is-embed main.page:has(.form-bar, .ed-bar) { padding-bottom: 0 !important; }
html.is-embed main.page .form-bar, html.is-embed main.page .ed-bar { margin-bottom: 0 !important; bottom: 0 !important; }
html.is-embed > body { padding-bottom: 0 !important; }
html.is-embed main.page > :not(.form-bar):not(.ed-bar):has(+ .form-bar), html.is-embed main.page > :not(.form-bar):not(.ed-bar):has(+ .ed-bar) { margin-bottom: 16px !important; }
