/* Раскладка портала поверх дизайн-системы Global Activity. Цвета и размеры — только токены. */
:root { --surface-soft-hover: #dfe2ee; }
:root[data-theme="dark"] { --surface-soft-hover: #343e74; }
html, body { margin: 0; min-height: 100%; background: var(--surface-page); }
body.locked { overflow: hidden; }
[hidden] { display: none !important; }
h1, h2, p { margin: 0; }
a { color: var(--link); }
.muted, .page__hint { color: var(--ink-muted); font-size: 14px; line-height: 20px; }
.muted .ga-icon { vertical-align: -3px; margin-right: 4px; }
.nowrap { white-space: nowrap; }
.danger-text { color: var(--danger); }
.static { cursor: default; }
.static:hover { background: none; }
.loading { display: grid; place-items: center; padding: var(--space-12); color: var(--ink-muted); }
.spin { animation: spin .9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spin { animation-duration: 3s; } }
.ga-field__label { display: flex; align-items: center; gap: 6px; }
.ga-tabs { overflow-x: auto; }
.ga-tab { display: inline-flex; align-items: center; gap: var(--space-2); text-decoration: none; }
.ga-empty p { margin: 0; max-width: 460px; }
#docs-body, #admin-body { display: flex; flex-direction: column; gap: var(--space-4); }

/* Вход и регистрация */
.auth { display: grid; grid-template-columns: minmax(320px, 2fr) 3fr; min-height: 100vh; }
.auth__brand { display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-8); padding: var(--space-10); background: var(--surface-inverse); color: var(--on-inverse); }
.auth__brand .ga-logo { color: var(--on-inverse); }
.auth__logo { display: flex; align-items: center; gap: var(--space-3); font: 600 17px/28px var(--font-sans); }
.auth__slogan { max-width: 420px; font: 500 28px/36px var(--font-sans); letter-spacing: -0.01em; }
.auth__points { display: grid; gap: var(--space-3); margin: var(--space-8) 0 0; padding: 0; list-style: none; }
.auth__points li { display: flex; align-items: center; gap: var(--space-3); }
.auth__points .ga-icon { color: var(--accent); }
.auth__foot { font-size: 13px; line-height: 20px; opacity: .7; }
.auth__main { display: flex; flex-direction: column; padding: var(--space-6) var(--space-8); }
.auth__top { display: flex; justify-content: flex-end; }
.auth__card { display: flex; flex-direction: column; gap: var(--space-4); width: 100%; max-width: 400px; margin: auto; padding: var(--space-6) 0; }
.auth__title { font: 500 28px/36px var(--font-sans); letter-spacing: -0.01em; }
.auth__lead { margin-top: calc(-1 * var(--space-2)); color: var(--ink-secondary); }
.auth__switch { font-size: 14px; line-height: 20px; color: var(--ink-muted); text-align: center; }
.auth__done { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-4); }
.eye { position: absolute; top: 4px; right: 4px; display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: var(--radius-md); background: none; color: var(--ink-muted); cursor: pointer; }
.eye:hover { background: var(--surface-hover); color: var(--ink); }
.ga-input-wrap:has(.eye) .ga-input { padding-right: 40px; }
.form-error { align-items: center; }
.form-error > .ga-icon { margin-top: 0; }

/* Каркас */
.app { display: flex; min-height: 100vh; }
.app__sidebar { position: sticky; top: 0; flex: none; height: 100vh; overflow-y: auto; }
.ga-sidebar__brand { text-decoration: none; }
.nav-disabled, .nav-disabled:hover { background: none; color: var(--ink-disabled); cursor: not-allowed; }
.app__main { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ga-topbar { position: sticky; top: 0; z-index: 5; }
.app__content { flex: 1; }
.page { display: flex; flex-direction: column; gap: var(--space-6); width: 100%; max-width: var(--content-max); margin: 0 auto; padding: var(--space-8); }
.page__head { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); }
.page__title { font: 500 28px/36px var(--font-sans); letter-spacing: -0.01em; }
.user-menu { position: relative; margin-left: var(--space-2); }
.user-menu__button { display: flex; align-items: center; gap: var(--space-2); padding: 4px var(--space-2) 4px 4px; border: 0; border-radius: var(--radius-pill); background: none; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.user-menu__button:hover { background: var(--surface-hover); }
.user-menu__name { display: flex; flex-direction: column; font-size: 14px; line-height: 16px; }
.user-menu__name b { font-weight: 500; }
.user-menu__name small { font-size: 12px; color: var(--ink-muted); }
.user-menu__list { position: absolute; top: calc(100% + var(--space-2)); right: 0; z-index: 20; }
.bell { position: relative; }
.bell__dot { position: absolute; top: 5px; right: 6px; width: 8px; height: 8px; border: 2px solid var(--surface-card); border-radius: 50%; background: var(--accent); }

/* Главная и обзор */
.services { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: var(--space-6); }
.service { display: flex; flex-direction: column; gap: var(--space-2); color: var(--ink); text-decoration: none; }
a.service:hover, .stat-card:hover { border-color: var(--border-strong); }
.service__icon { display: grid; place-items: center; width: 40px; height: 40px; margin-bottom: var(--space-2); border-radius: var(--radius-md); background: var(--info-soft); color: var(--link); }
.service__text { flex: 1; font-size: 14px; line-height: 20px; color: var(--ink-secondary); }
.service__stats { display: flex; gap: var(--space-8); margin-top: var(--space-2); }
.service--off, .service--soon { border-style: dashed; background: transparent; }
.service--off .service__icon, .service--soon .service__icon { background: var(--surface-sunken); color: var(--ink-muted); }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-6); }
.stat-card { color: inherit; text-decoration: none; }

/* Таблицы и панели действий */
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); flex-wrap: wrap; }
.toolbar__search { flex: 1; min-width: 240px; max-width: 420px; }
.table-scroll { overflow-x: auto; }
.ga-table td:first-child { white-space: normal; }
.pager { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-6); border-top: 1px solid var(--border); font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.row-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--space-1); }
.role-select { min-width: 230px; }
.role-select .ga-input { height: var(--control-md); font-size: 14px; }
.role-select > .ga-icon { top: 8px; }
.code, .secret code { font: 500 15px/24px ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .04em; }
.secret { display: flex; align-items: center; gap: var(--space-3); margin: var(--space-2) 0 var(--space-4); padding: var(--space-4); border-radius: var(--radius-lg); background: var(--surface-sunken); }
.secret code { flex: 1; font-size: 22px; line-height: 28px; color: var(--ink); overflow-wrap: anywhere; }
.request { display: grid; grid-template-columns: minmax(260px, 1.2fr) minmax(240px, 1fr) auto; align-items: center; gap: var(--space-6); }
.request__who { display: flex; align-items: flex-start; gap: var(--space-3); }
.request__who b { font-weight: 500; }
.request__actions { display: flex; flex-direction: column; gap: var(--space-2); }

/* Диалоги и уведомления */
#overlay { position: fixed; inset: 0; z-index: 50; }
.scrim { position: absolute; inset: 0; overflow: auto; }
.form-grid { display: grid; gap: var(--space-4); margin-top: var(--space-4); }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.dialog-error { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-4); font-size: 14px; line-height: 20px; color: var(--danger); }
.profile-head { display: flex; align-items: center; gap: var(--space-3); }
#toasts { position: fixed; right: var(--space-6); bottom: var(--space-6); z-index: 80; display: flex; flex-direction: column; gap: var(--space-2); max-width: 420px; }
.toast { align-items: center; box-shadow: var(--shadow-md); }
.toast > .ga-icon { margin-top: 0; }

/* Документы: реестр и очередь */
.filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); padding: var(--space-4); }
.filters__search { flex: 1 1 280px; }
.filters > .ga-input-wrap:not(.filters__search) { flex: 0 1 190px; }
.filters__date { display: flex; align-items: center; gap: var(--space-2); font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.filters__date .ga-input { width: 150px; }
.th-sort { display: inline-flex; align-items: center; gap: var(--space-1); padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.th-sort[aria-pressed="true"] { color: var(--ink); }
.registry tbody tr { cursor: pointer; }
.file-icon { display: grid; place-items: center; flex: none; width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--surface-sunken); color: var(--ink-secondary); }
.doc-title { min-width: 180px; max-width: 380px; }
.doc-title__line { display: block; overflow: hidden; text-overflow: ellipsis; }
.drafts .ga-list__row { gap: var(--space-4); }

/* Документы: загрузка */
.dropzone { display: flex; flex-direction: column; align-items: center; gap: var(--space-3); margin-top: var(--space-4); padding: var(--space-8); border: 1.5px dashed var(--border-strong); border-radius: var(--radius-lg); background: var(--surface-page); text-align: center; }
.dropzone.over { border-color: var(--link); background: var(--info-soft); }
.dropzone__icon { width: 40px; height: 40px; color: var(--link); stroke-width: 1.5; }
.dropzone__title { font: 500 17px/28px var(--font-sans); color: var(--ink); }
.split-hint { margin-top: var(--space-3); font-size: 14px; line-height: 20px; }
.upload-list { max-height: 240px; margin-top: var(--space-4); overflow: auto; }
.upload-state.ok { color: var(--success); }
.upload-state.warn { color: var(--accent-ink); }
.upload-state.bad { color: var(--danger); }

/* Документы: карточка */
.scrim--card { display: flex; padding: var(--space-6); }
.doc-card { display: flex; flex-direction: column; width: 100%; max-width: 1400px; height: calc(100vh - 48px); margin: 0 auto; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-xl); background: var(--surface-card); box-shadow: var(--shadow-lg); }
.doc-card__head { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-6); border-bottom: 1px solid var(--border); }
.doc-card__name { flex: 1; min-width: 0; }
.doc-card__name h2 { overflow: hidden; font: 500 19px/28px var(--font-sans); white-space: nowrap; text-overflow: ellipsis; }
.doc-card__body { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(360px, 1fr); flex: 1; min-height: 0; }
.doc-card__preview { display: flex; flex-direction: column; min-height: 0; border-right: 1px solid var(--border); background: var(--surface-sunken); }
.doc-frame { flex: 1; width: 100%; border: 0; background: #fff; }
.doc-image { display: grid; place-items: center; flex: 1; padding: var(--space-4); overflow: auto; }
.doc-image img { max-width: 100%; }
.doc-note { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border-bottom: 1px solid var(--border); font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.doc-card__form { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-6); overflow: auto; }
.doc-card__foot { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-4) var(--space-6); border-top: 1px solid var(--border); }
.dict-field { display: flex; gap: var(--space-2); }
.dict-field .ga-input-wrap { flex: 1; }
.dict-add { display: flex; gap: var(--space-2); margin-top: var(--space-2); }
.history summary { display: flex; align-items: center; gap: var(--space-2); font-size: 14px; line-height: 20px; color: var(--ink-secondary); cursor: pointer; }
.history ul { display: grid; gap: var(--space-2); margin: 0; padding: var(--space-2) 0 0 var(--space-6); list-style: none; font-size: 13px; line-height: 20px; }
.history b { font-weight: 500; }
.history li span { display: block; color: var(--ink-muted); }

/* Документы: справочники */
.dicts { display: grid; grid-template-columns: 280px minmax(0, 1fr); align-items: start; gap: var(--space-6); }
.dicts__kinds { display: flex; flex-direction: column; gap: var(--space-2); }
.dict-kind { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-card); color: var(--ink); text-decoration: none; }
.dict-kind:hover { background: var(--surface-hover); }
.dict-kind[aria-current="page"] { border-color: var(--ink); box-shadow: var(--shadow-xs); }
.dict-kind__icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-md); background: var(--surface-sunken); color: var(--ink-secondary); }
.dict-kind[aria-current="page"] .dict-kind__icon { background: var(--accent-soft); color: var(--accent-ink); }
.dict-kind__text { display: flex; flex-direction: column; flex: 1; line-height: 20px; }
.dict-kind__text b { font-weight: 500; }
.dict-kind__text small { font-size: 13px; color: var(--ink-muted); }
.dict-kind > .ga-icon { color: var(--ink-muted); }
.dicts__intro { display: grid; gap: var(--space-3); padding: var(--space-6); border-bottom: 1px solid var(--border); }
.dicts__intro .ga-card__title { display: flex; align-items: center; gap: var(--space-2); }
.dict-new { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: var(--space-3); }
.dict-list { margin: 0; padding: 0; list-style: none; }
.dict-row { display: flex; align-items: center; gap: var(--space-3); padding: 10px var(--space-6); border-bottom: 1px solid var(--border); }
.dict-row:hover { background: var(--surface-hover); }
.dict-row__order { display: flex; flex-direction: column; width: 28px; }
.dict-row__order .ga-btn { height: 20px; }
.dict-row__name { flex: 1; min-width: 0; }
.dict-row__name b { font-weight: 500; }
.dict-row--archived .dict-row__name b { color: var(--ink-muted); }
.dicts__foot { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-6); font-size: 13px; line-height: 20px; color: var(--ink-muted); }

@media (max-width: 980px) {
  .request { grid-template-columns: 1fr; }
  .dicts { grid-template-columns: 1fr; }
  .dict-new { grid-template-columns: 1fr; }
  .doc-card__body { grid-template-columns: 1fr; overflow: auto; }
  .doc-card__preview { height: 50vh; border-right: 0; border-bottom: 1px solid var(--border); }
  .doc-card__form { overflow: visible; }
}
@media (max-width: 860px) {
  .auth { grid-template-columns: 1fr; }
  .auth__brand { display: none; }
}
@media (max-width: 760px) {
  .app { flex-direction: column; }
  .app__sidebar { position: static; flex-direction: row; flex-wrap: wrap; align-items: center; width: 100%; height: auto; border-right: 0; border-bottom: 1px solid var(--border); }
  .ga-nav__group { display: none; }
  .page { padding: var(--space-4); }
  .user-menu__name { display: none; }
  .form-row { grid-template-columns: 1fr; }
  .page__head, .toolbar { flex-wrap: wrap; }
  .filters > .ga-input-wrap:not(.filters__search), .filters__date { flex: 1 1 100%; }
  .filters__date .ga-input { flex: 1; width: auto; }
  .scrim--card { padding: 0; }
  .doc-card { height: 100vh; border: 0; border-radius: 0; }
  .doc-card__head { flex-wrap: wrap; padding: var(--space-3) var(--space-4); }
  .doc-card__head > .file-icon { display: none; }
  .doc-card__name { flex: 1 1 100%; order: 2; }
  .doc-card__head > [data-close] { margin-left: auto; }
  .doc-card__preview { height: 42vh; }
  .doc-card__form { padding: var(--space-4); }
  .doc-card__foot { padding: var(--space-3) var(--space-4); }
  .doc-card__foot .muted, .doc-card__foot .ga-topbar__spacer { display: none; }
  .doc-card__foot .ga-btn { flex: 1; }
  .dict-row { flex-wrap: wrap; }
  #toasts { right: var(--space-4); bottom: var(--space-4); left: var(--space-4); }
}

/* Реестр: выбор столбцов */
.columns { position: relative; }
.columns__menu { position: absolute; top: calc(100% + var(--space-2)); right: 0; z-index: 10; gap: var(--space-2); min-width: 240px; padding: var(--space-3); }
.columns__hint { margin: 0 0 var(--space-1); font: 500 12px/16px var(--font-sans); color: var(--ink-muted); }
.columns__menu .ga-check { font-size: 14px; line-height: 20px; }

/* Очередь проверки: плитки с превью */
.draft-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-4); }
.draft { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-card); }
.draft__thumb { position: relative; display: block; width: 100%; aspect-ratio: 3 / 4; padding: 0; overflow: hidden; border: 0; border-bottom: 1px solid var(--border); background: var(--surface-sunken); cursor: zoom-in; }
.draft__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; background: #fff; }
.draft__text { display: block; height: 100%; padding: var(--space-4); overflow: hidden; background: #fff; color: #1c2449; font: 400 11px/16px var(--font-sans); text-align: left; white-space: pre-wrap; overflow-wrap: anywhere; }
.draft__none { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2); height: 100%; padding: var(--space-4); color: var(--ink-muted); }
.draft__none .ga-icon { width: 40px; height: 40px; stroke-width: 1.25; }
.draft__zoom { position: absolute; right: var(--space-2); bottom: var(--space-2); display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--surface-inverse); color: var(--on-inverse); box-shadow: var(--shadow-md); }
.draft__format { position: absolute; top: var(--space-2); left: var(--space-2); background: var(--surface-card); box-shadow: var(--shadow-xs); }
.draft__thumb:hover .draft__zoom { background: var(--accent); color: var(--on-accent); }
.draft__body { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); flex: 1; padding: var(--space-3) var(--space-4) var(--space-4); }
.draft__title { display: -webkit-box; overflow: hidden; font-weight: 500; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
.draft__body .ga-btn { width: 100%; margin-top: auto; }

/* Просмотрщик документов */
.viewer { position: absolute; inset: 0; display: flex; flex-direction: column; background: rgba(11, 15, 38, 0.94); outline: none; }
.viewer__bar { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-6); background: var(--surface-card); border-bottom: 1px solid var(--border); }
.viewer__title { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.viewer__title b { overflow: hidden; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.viewer__title span { font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.viewer__zoom { min-width: 48px; font: 500 14px/20px var(--font-sans); font-variant-numeric: tabular-nums; text-align: center; }
.viewer__stage { position: relative; display: flex; flex: 1; min-height: 0; }
.viewer__scroll { flex: 1; overflow: auto; text-align: center; }
.viewer__scroll img { display: block; margin: 0 auto; background: #fff; }
.viewer__scroll img.fit { width: 100%; height: 100%; object-fit: contain; background: none; cursor: zoom-in; }
.viewer__frame { display: block; width: min(1000px, 100%); height: 100%; margin: 0 auto; border: 0; background: #fff; }
.viewer__nav { position: absolute; top: 50%; z-index: 2; display: grid; place-items: center; width: 48px; height: 48px; margin-top: -24px; border: 0; border-radius: 50%; background: var(--surface-card); color: var(--ink); box-shadow: var(--shadow-md); cursor: pointer; }
.viewer__nav:hover { background: var(--accent); color: var(--on-accent); }
.viewer__nav:disabled { opacity: .35; cursor: default; background: var(--surface-card); color: var(--ink); }
.viewer__nav--prev { left: var(--space-6); }
.viewer__nav--next { right: var(--space-6); }
@media (max-width: 760px) {
  .draft-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
  .viewer__bar { flex-wrap: wrap; padding: var(--space-2) var(--space-3); }
  .viewer__title { flex: 1 1 100%; }
  .viewer__nav--prev { left: var(--space-2); }
  .viewer__nav--next { right: var(--space-2); }
}
#registry { overflow: visible; }
.viewer { background: #0b0f26; }
.draft__text { padding-top: 36px; }

/* Автозаполнение и печать */
.suggested .ga-input { border-color: var(--accent-ink); background: var(--accent-soft); }
.suggest-mark { margin-left: auto; }
.print-frame { position: fixed; right: 0; bottom: 0; width: 1px; height: 1px; border: 0; opacity: 0; pointer-events: none; }
.service .ga-card__title { display: flex; align-items: center; gap: var(--space-2); }
@media (max-width: 760px) { .doc-card__head .ga-btn { padding: 0 var(--space-3); } }

/* Имущество, База, Заявки */
.inv-head { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; margin-top: var(--space-2); }
.facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 var(--space-6); margin-top: var(--space-4); }
.facts__row { display: flex; justify-content: space-between; gap: var(--space-4); padding: var(--space-2) 0; border-bottom: 1px solid var(--border); font-size: 14px; line-height: 20px; }
.facts__row span { display: flex; align-items: center; gap: 6px; color: var(--ink-muted); white-space: nowrap; }
.facts__row b { font-weight: 500; color: var(--ink); text-align: right; overflow-wrap: anywhere; }
.inv-sub { display: flex; align-items: center; gap: var(--space-2); margin: var(--space-6) 0 var(--space-2); font: 600 15px/24px var(--font-sans); color: var(--ink); }
.moves { display: grid; gap: var(--space-2); max-height: 220px; margin: 0; padding: 0; overflow: auto; list-style: none; font-size: 14px; line-height: 20px; }
.moves li { display: flex; align-items: flex-start; gap: var(--space-2); }
.moves b { display: block; font-weight: 500; color: var(--ink); }
.moves span { color: var(--ink-muted); font-size: 13px; }
.ga-dialog__actions { flex-wrap: wrap; }
.rq-pick { display: grid; gap: var(--space-2); margin-top: var(--space-4); }
.rq-pick__item { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.rq-pick__text { flex: 1; min-width: 0; color: var(--ink); }
.rq-pick__text b { font-weight: 500; }
.rq-card { max-width: 980px; }
.rq-form { display: flex; flex-direction: column; flex: 1; gap: var(--space-4); padding: var(--space-6); overflow: auto; }
.rq-fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.rq-table { width: 100%; border-collapse: collapse; }
.rq-table th { padding: var(--space-1) var(--space-1) var(--space-2); font: 500 12px/16px var(--font-sans); color: var(--ink-muted); text-align: left; }
.rq-table td { padding: 2px var(--space-1) 2px 0; }
.rq-table--view { margin-top: var(--space-4); font-size: 14px; line-height: 20px; }
.rq-table--view td, .rq-table--view th { padding: var(--space-2); border: 1px solid var(--border); color: var(--ink); }
@media (max-width: 760px) {
  .facts, .rq-fields { grid-template-columns: 1fr; }
  .rq-pick__item { flex-wrap: wrap; }
  .rq-form { padding: var(--space-4); }
}
#inv-body, #rq-body { display: flex; flex-direction: column; gap: var(--space-4); }
#inv-table { overflow: visible; }

/* Диалог не шире экрана; выбор строк; сканер */
.ga-scrim { grid-template-columns: minmax(0, 1fr); }
.ga-dialog { justify-self: center; }
.ga-table th.cell-check, .ga-table td.cell-check { width: 32px; padding-right: 0; }
.scan { position: relative; display: grid; place-items: center; min-height: 220px; margin-top: var(--space-4); overflow: hidden; border-radius: var(--radius-lg); background: var(--surface-sunken); }
.scan video { display: block; width: 100%; max-height: 50vh; object-fit: cover; }
.scan__state { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-6); text-align: center; color: var(--ink-muted); }
.scan__state p { margin: 0; }
.scan__icon { width: 40px; height: 40px; stroke-width: 1.25; }
.scan__row { display: flex; align-items: flex-end; gap: var(--space-2); margin-top: var(--space-4); }
.scan__row .ga-field { flex: 1; }
.scan__row > .ga-btn--outline { width: 100%; }

/* Телефон */
@media (max-width: 760px) {
  .app__sidebar { flex-wrap: nowrap; gap: var(--space-1); padding: var(--space-2) var(--space-3); overflow-x: auto; scrollbar-width: none; }
  .app__sidebar::-webkit-scrollbar { display: none; }
  .app__sidebar .ga-sidebar__brand { flex: none; gap: 0; height: var(--control-md); margin: 0; padding: 0 var(--space-1) 0 0; font-size: 0; }
  .app__sidebar .ga-nav__item { flex: none; }
  .ga-topbar { padding: 0 var(--space-3); }
  .page__title { font-size: 24px; line-height: 32px; }
  .page__head > .ga-btn, .page__head > .row-actions { width: 100%; }
  .page__head .row-actions .ga-btn { flex: 1; }
  .ga-scrim { padding: var(--space-3); }
  .ga-dialog { padding: var(--space-4); }
  .ga-dialog__title { font-size: 19px; line-height: 28px; }
  .ga-dialog__actions .ga-btn { flex: 1 1 auto; }
  .secret code { font-size: 17px; line-height: 24px; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
  .stats .ga-card { padding: var(--space-3) var(--space-4); }
  .stats .ga-stat__label { white-space: normal; font-size: 13px; line-height: 18px; }
  .stats .ga-stat__value { font-size: 24px; line-height: 32px; }
  .ga-card__head { flex-wrap: wrap; }
  .ga-card--flush > .ga-card__head { padding: var(--space-3) var(--space-4); }
  .pager { padding: var(--space-3) var(--space-4); }
  /* Таблица становится списком карточек: подпись слева, значение справа */
  .table-scroll { overflow-x: visible; }
  .table-scroll:has(.rq-table--view) { overflow-x: auto; }
  .ga-table thead { display: none; }
  .ga-table, .ga-table tbody, .ga-table tr { display: block; width: 100%; }
  .ga-table tr { position: relative; padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--border); }
  .ga-table tbody tr:last-child { border-bottom: 0; }
  .ga-table td, .ga-table td:first-child, .ga-table td:last-child { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: 3px 0; border: 0; font-size: 14px; line-height: 20px; text-align: right; }
  .ga-table td[data-label]::before { content: attr(data-label); flex: none; max-width: 45%; font-size: 12px; line-height: 16px; color: var(--ink-muted); text-align: left; }
  .ga-table td.cell-main { justify-content: flex-start; padding: 0 var(--space-8) var(--space-1) 0; font-size: 15px; line-height: 24px; text-align: left; }
  .ga-table td:not([data-label]):not(.cell-main):not(.cell-check) { justify-content: flex-end; }
  .ga-table td:has(> .ga-list__chev) { display: none; }
  .ga-table td.cell-check { position: absolute; top: var(--space-3); right: var(--space-4); width: auto; padding: 0; }
  .ga-table tbody tr:hover td { background: none; }
  .ga-table .doc-title { min-width: 0; max-width: none; text-align: left; }
  .ga-table .ga-table__party, .ga-table .ga-list__sub { text-align: left; }
  .ga-table td[data-label] .ga-table__party, .ga-table td[data-label] .doc-title { text-align: right; }
  .role-select { flex: 1; min-width: 0; }
  .doc-card__foot { flex-wrap: wrap; }
  .doc-card__foot .ga-btn { flex: 1 1 150px; min-width: 0; padding: 0 var(--space-3); }
  .rq-table:not(.rq-table--view) thead { display: none; }
  .rq-table:not(.rq-table--view), .rq-table:not(.rq-table--view) tbody { display: block; }
  .rq-table:not(.rq-table--view) tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-2); margin-bottom: var(--space-2); padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-md); }
  .rq-table:not(.rq-table--view) td { display: block; grid-column: 1; padding: 0; }
  .rq-table:not(.rq-table--view) td:last-child { grid-column: 2; grid-row: 1; }
  .scan__manual { flex-wrap: wrap; }
  .scan__manual .ga-btn { width: 100%; }
}
@media (max-width: 760px) {
  .ga-table td[data-label] { flex-wrap: wrap; }
  .ga-table td[data-label] > .ga-list__sub { flex-basis: 100%; text-align: right; }
  .rq-pick__text { flex: 1 1 60%; }
  .rq-pick__item .ga-btn { flex: 1; }
  .doc-card__foot .ga-btn { flex: 1 1 100%; }
}

/* Личный кабинет */
.profile { display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); align-items: start; gap: var(--space-6); }
.profile__side, .profile__main { display: flex; flex-direction: column; gap: var(--space-6); }
.profile__who { display: flex; align-items: center; gap: var(--space-4); }
.profile__who b { font: 500 17px/28px var(--font-sans); }
.profile__avatar { width: 72px; height: 72px; font-size: 22px; }
.profile__photo { justify-content: flex-start; margin: var(--space-3) 0 var(--space-2); }
.profile__title, .profile .ga-card__title { display: flex; align-items: center; gap: var(--space-2); }
.profile__title { margin-bottom: var(--space-2); }
.profile__buttons { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-4); }
.profile__none { margin: 0; padding: 0 var(--space-6) var(--space-6); color: var(--ink-muted); font-size: 14px; line-height: 20px; }
.profile .ga-list__row { text-decoration: none; }
.facts--one { grid-template-columns: 1fr; }
.facts__row b .ga-btn { vertical-align: middle; }
/* Календарь */
.cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.cal__weekday { padding: var(--space-2); border-bottom: 1px solid var(--border); font: 500 12px/16px var(--font-sans); color: var(--ink-muted); text-align: center; }
.cal__day { display: flex; flex-direction: column; gap: 2px; min-height: 104px; padding: var(--space-1); border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); cursor: pointer; }
.cal__day:nth-child(7n) { border-right: 0; }
.cal__day:hover { background: var(--surface-hover); }
.cal__day--other .cal__num { color: var(--ink-disabled); }
.cal__weekend { background: var(--surface-page); }
.cal__num { align-self: flex-end; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font: 500 13px/16px var(--font-sans); font-variant-numeric: tabular-nums; }
.cal__day--today .cal__num { background: var(--action); color: var(--on-action); }
.cal-chip { display: flex; align-items: center; gap: var(--space-1); width: 100%; padding: 1px 6px; border: 0; border-radius: var(--radius-xs); background: var(--info-soft); color: var(--link); font: 500 12px/18px var(--font-sans); text-align: left; cursor: pointer; }
.cal-chip span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.cal-chip .ga-icon { width: 12px; height: 12px; }
.cal-chip--deadline { background: var(--accent-soft); color: var(--accent-ink); }
.cal-chip--dayoff { background: var(--success-soft); color: var(--success); }
.cal__more { padding: 0 6px; font-size: 12px; line-height: 16px; color: var(--ink-muted); }
.cal__dots { display: none; justify-content: center; gap: 3px; }
.cal-dot { display: inline-block; width: 6px; height: 6px; border-radius: 50%; background: var(--link); }
.cal-dot--deadline { background: var(--accent-ink); }
.cal-dot--dayoff { background: var(--success); }
.cal__legend { display: flex; flex-wrap: wrap; gap: var(--space-4); padding: var(--space-3) var(--space-6); font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.cal__legend span { display: inline-flex; align-items: center; gap: 6px; }
.con-star { display: inline-flex; margin-right: var(--space-1); color: var(--accent-ink); vertical-align: -2px; }
.con-star .ga-icon { fill: currentColor; }
@media (max-width: 980px) { .profile { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .cal__day { min-height: 52px; align-items: center; }
  .cal__num { align-self: center; }
  .cal-chip, .cal__more { display: none; }
  .cal__dots { display: flex; }
  .cal__legend { padding: var(--space-3) var(--space-4); gap: var(--space-3); }
  .profile__none { padding: 0 var(--space-4) var(--space-4); }
}
@media (max-width: 760px) {
  .profile .ga-list__row { flex-wrap: wrap; }
  .profile .ga-list__end { flex-basis: 100%; margin-left: 0; padding-left: 52px; white-space: normal; }
}

/* Поддержка: окно у сотрудника, чат, раздел у администратора */
.page { padding-bottom: 96px; }
#support { position: fixed; right: var(--space-6); bottom: var(--space-6); z-index: 40; }
.support__fab { position: relative; display: inline-flex; align-items: center; gap: var(--space-2); height: 48px; padding: 0 var(--space-5); border: 0; border-radius: var(--radius-pill); background: var(--action); color: var(--on-action); font: 500 15px/24px var(--font-sans); box-shadow: var(--shadow-md); cursor: pointer; }
.support__fab:hover { background: var(--action-hover); }
.support__dot { display: inline-block; flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--accent); }
.support__fab .support__dot { position: absolute; top: 4px; right: 8px; box-sizing: content-box; border: 2px solid var(--surface-page); }
.support__panel { display: flex; flex-direction: column; width: 380px; height: min(560px, calc(100vh - 48px)); overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-xl); background: var(--surface-card); box-shadow: var(--shadow-lg); }
.support__head { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-bottom: 1px solid var(--border); }
.support__title { display: flex; flex-direction: column; flex: 1; min-width: 0; line-height: 20px; }
.support__title b { overflow: hidden; font-weight: 500; white-space: nowrap; text-overflow: ellipsis; }
.support__title span { font-size: 13px; color: var(--ink-muted); }
.support__body { flex: 1; overflow: auto; }
.support__new { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); }
.support__foot { padding: var(--space-3) var(--space-4); border-top: 1px solid var(--border); }
.support__foot .ga-btn { width: 100%; }
.support__chat { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.chat__log { display: flex; flex-direction: column; flex: 1; gap: var(--space-3); padding: var(--space-4); overflow: auto; background: var(--surface-page); }
.chat__msg { align-self: flex-start; max-width: 85%; }
.chat__msg--mine { align-self: flex-end; }
.chat__bubble { padding: var(--space-2) var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-card); font-size: 14px; line-height: 20px; overflow-wrap: anywhere; }
.chat__msg--mine .chat__bubble { border-color: var(--action); background: var(--action); color: var(--on-action); }
.chat__meta { margin-top: 2px; font-size: 11px; line-height: 16px; color: var(--ink-muted); }
.chat__msg--mine .chat__meta { text-align: right; }
.chat__note { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border-top: 1px solid var(--border); font-size: 13px; line-height: 20px; color: var(--ink-muted); }
.chat__form { display: flex; align-items: flex-end; gap: var(--space-2); padding: var(--space-3); border-top: 1px solid var(--border); }
.chat__form textarea.ga-input { min-height: var(--control-lg); max-height: 120px; padding: var(--space-2) var(--space-3); resize: none; }
.sup-row { align-items: flex-start; }
.sup-row__top { display: flex; align-items: center; gap: 6px; font-size: 13px; line-height: 20px; color: var(--ink-secondary); }
.sup-row__end { display: flex; flex-direction: column; align-items: flex-end; flex: none; gap: 2px; margin-left: auto; }
.sup-row--active { background: var(--surface-hover); }
.sup { display: grid; grid-template-columns: minmax(280px, 400px) minmax(0, 1fr); gap: var(--space-6); height: calc(100vh - 230px); min-height: 420px; }
.sup__list { overflow: auto; }
.sup__chat { display: flex; flex-direction: column; min-height: 0; }
.sup__back { display: none; }
@media (max-width: 760px) {
  #support { right: var(--space-3); bottom: var(--space-3); }
  .support__fab { justify-content: center; width: 48px; padding: 0; }
  .support__fab > span { display: none; }
  .support__panel { position: fixed; inset: 0; width: auto; height: auto; border: 0; border-radius: 0; }
  .sup { grid-template-columns: 1fr; height: auto; min-height: 0; }
  .sup__chat { display: none; height: calc(100vh - 210px); }
  .sup-page--chat .sup__list { display: none; }
  .sup-page--chat .sup__chat { display: flex; }
  .sup__back { display: inline-flex; }
}
#toasts { bottom: 88px; }
@media (max-width: 760px) { #toasts { bottom: 72px; } }

/* Учёт: характеристики по шаблону и дерево категорий */
.spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
#inv-specs:empty { display: none; }
#inv-specs .inv-sub { margin: var(--space-2) 0 0; }
.spec-table { margin-top: 0; }
.spec-empty { display: flex; align-items: center; gap: 6px; margin: var(--space-4) 0 0; }
.cats { display: grid; gap: var(--space-3); margin-top: var(--space-4); max-height: 56vh; overflow: auto; }
.cat-group { display: grid; gap: var(--space-2); padding: var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-lg); }
.cat-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) auto auto; align-items: center; gap: var(--space-2); }
.cat-row--child { padding-left: var(--space-6); }
.cat-row:not(.cat-row--child) > [data-name] { font-weight: 500; }
.cat-row--add { grid-template-columns: minmax(0, 1fr) auto; }
@media (max-width: 760px) {
  .spec-grid { grid-template-columns: 1fr; }
  .cat-row { grid-template-columns: minmax(0, 1fr) auto auto; }
  .cat-row > .ga-input-wrap { grid-column: 1 / -1; grid-row: 2; }
  .cat-row--child { padding-left: var(--space-3); }
}

/* === Оформление: фирменная тёмная навигация, крупные иконки, цветные плитки === */
:root { --side-bg: #1c2449; --side-ink: #c5cae6; --side-strong: #ffffff; --side-hover: rgba(255, 255, 255, 0.08); --side-active: rgba(255, 255, 255, 0.14); --side-line: rgba(255, 255, 255, 0.12); --gold: #eeb557; }
:root[data-theme="dark"] { --side-bg: #0b0f26; }
.app__sidebar { background: var(--side-bg); border-right-color: var(--side-line); }
.app__sidebar .ga-sidebar__brand, .app__sidebar .ga-logo { color: var(--side-strong); }
.app__sidebar .ga-nav__group { color: rgba(255, 255, 255, 0.5); }
.app__sidebar .ga-nav__item { color: var(--side-ink); }
.app__sidebar .ga-nav__item:hover { background: var(--side-hover); color: var(--side-strong); }
.app__sidebar .ga-nav__item[aria-current="page"] { background: var(--side-active); box-shadow: inset 3px 0 0 var(--gold); color: var(--side-strong); }
.app__sidebar .ga-nav__item[aria-current="page"] .ga-icon { color: var(--gold); }
.app__sidebar .ga-nav__count { min-width: 20px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--gold); color: #182144; line-height: 20px; text-align: center; }
.app__sidebar .ga-nav__count:empty { display: none; }
.app__sidebar .nav-disabled, .app__sidebar .nav-disabled:hover { background: none; color: rgba(255, 255, 255, 0.35); }
.app__sidebar :focus-visible { outline-color: var(--gold); }

.bell-wrap { position: relative; }
.bell__menu { position: absolute; top: calc(100% + var(--space-2)); right: 0; z-index: 20; min-width: 320px; }
.bell__menu .ga-menu__item { height: auto; min-height: var(--control-lg); padding: var(--space-2); line-height: 20px; white-space: normal; }
.bell__none { display: flex; align-items: center; gap: var(--space-2); margin: 0; padding: var(--space-2); font-size: 14px; line-height: 20px; color: var(--ink-muted); }
.bell__menu .columns__hint { padding: var(--space-1) var(--space-2) 0; }
.exp-list { max-height: 60vh; overflow-y: auto; margin-top: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-lg); }

/* Главная: приветствие */
.hero { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--space-6); padding: var(--space-8); overflow: hidden; border-radius: var(--radius-xl); background: #1c2449; color: #fff; }
.hero__text { position: relative; z-index: 1; min-width: 0; }
.hero__date { font: 600 12px/16px var(--font-sans); letter-spacing: 0.08em; text-transform: uppercase; color: var(--gold); }
.hero__title { margin: var(--space-2) 0 var(--space-1); font: 500 32px/40px var(--font-sans); letter-spacing: -0.01em; }
.hero__sub { color: rgba(255, 255, 255, 0.72); }
.hero__actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.hero__btn { border-color: rgba(255, 255, 255, 0.32); background: rgba(255, 255, 255, 0.08); color: #fff; }
.hero__btn:hover { background: rgba(255, 255, 255, 0.16); }
.hero__logo { position: absolute; top: 50%; right: 18%; transform: translateY(-50%); color: rgba(255, 255, 255, 0.06); pointer-events: none; }
.hero__logo .ga-logo { color: inherit; }

/* Плитки сервисов и показателей */
.service__icon { width: 56px; height: 56px; border-radius: var(--radius-lg); }
.service__icon .ga-icon { width: 28px; height: 28px; }
a.service { transition: box-shadow .12s ease, border-color .12s ease; }
a.service:hover { box-shadow: var(--shadow-md); }
.service--assets .service__icon { background: var(--accent-soft); color: var(--accent-ink); }
.service--base .service__icon { background: var(--success-soft); color: var(--success); }
.service--calendar .service__icon { background: var(--danger-soft); color: var(--danger); }
.service--contacts .service__icon { background: var(--surface-inverse); color: var(--on-inverse); }
.service .ga-card__foot > .ga-icon { box-sizing: content-box; padding: 4px; border-radius: 50%; background: var(--surface-soft); color: var(--ink-secondary); }
.stats .ga-stat__label .ga-icon, .stat-card .ga-stat__label .ga-icon { box-sizing: border-box; width: 40px; height: 40px; padding: 9px; border-radius: var(--radius-md); background: var(--info-soft); color: var(--link); }
.stats > :nth-child(2) .ga-stat__label .ga-icon { background: var(--success-soft); color: var(--success); }
.stats > :nth-child(3) .ga-stat__label .ga-icon { background: var(--accent-soft); color: var(--accent-ink); }
.stats > :nth-child(4) .ga-stat__label .ga-icon { background: var(--danger-soft); color: var(--danger); }
.stats .ga-stat__label { gap: var(--space-3); }
.stat-button { font: inherit; text-align: left; color: inherit; cursor: pointer; }
.stat-button:hover { border-color: var(--border-strong); }
.page__title { position: relative; padding-left: var(--space-4); }
.page__title::before { content: ""; position: absolute; top: 6px; bottom: 6px; left: 0; width: 4px; border-radius: var(--radius-pill); background: var(--gold); }

/* Компьютер: всё крупнее */
@media (min-width: 761px) {
  :root { --sidebar-width: 264px; --topbar-height: 64px; }
  .app__sidebar { gap: 4px; padding: var(--space-4) var(--space-3); }
  .app__sidebar .ga-sidebar__brand { gap: var(--space-3); height: 48px; margin-bottom: var(--space-3); font-size: 17px; }
  .app__sidebar .ga-sidebar__brand .ga-logo { width: 32px; height: 32px; }
  .app__sidebar .ga-nav__item { gap: var(--space-3); height: 44px; padding: 0 var(--space-3); font-size: 15px; line-height: 24px; }
  .app__sidebar .ga-nav__item .ga-icon { width: 22px; height: 22px; }
  .ga-icon { width: 18px; height: 18px; }
  .ga-icon--md { width: 24px; height: 24px; }
  .ga-btn--lg .ga-icon { width: 20px; height: 20px; }
  .ga-topbar .ga-btn--icon { width: 40px; height: 40px; }
  .ga-topbar .ga-btn--icon .ga-icon { width: 22px; height: 22px; }
  .ga-topbar .ga-avatar { width: 40px; height: 40px; font-size: 14px; }
  .bell__dot { top: 8px; right: 9px; }
  .ga-tab { gap: 10px; padding: var(--space-3) 0; }
  .ga-tab .ga-icon { width: 20px; height: 20px; }
  .file-icon { width: 44px; height: 44px; border-radius: var(--radius-lg); }
  .ga-empty__icon { width: 64px; height: 64px; }
  .ga-empty__icon .ga-icon { width: 30px; height: 30px; }
  .inv-sub .ga-icon { width: 20px; height: 20px; }
  .ga-menu__item { height: var(--control-lg); }
}
@media (max-width: 760px) {
  .hero { flex-direction: column; align-items: flex-start; gap: var(--space-4); padding: var(--space-5); }
  .hero__title { font-size: 24px; line-height: 32px; }
  .hero__logo { display: none; }
  .hero__actions, .hero__actions .ga-btn { width: 100%; }
  .stats .ga-stat__label .ga-icon { width: 32px; height: 32px; padding: 7px; }
  .bell__menu { position: fixed; top: 112px; right: var(--space-3); left: var(--space-3); min-width: 0; }
  .page__title::before { top: 4px; bottom: 4px; }
}
/* Логотип крупнее: в навигации и на экране входа */
.auth__logo { gap: var(--space-4); font-size: 22px; line-height: 28px; }
.auth__logo .ga-logo { width: 64px; height: 64px; }
@media (min-width: 761px) {
  .app__sidebar .ga-sidebar__brand { gap: 14px; height: 64px; margin-bottom: var(--space-4); font-size: 19px; line-height: 24px; }
  .app__sidebar .ga-sidebar__brand .ga-logo { width: 48px; height: 48px; }
}
@media (max-width: 760px) {
  .app__sidebar .ga-sidebar__brand { height: 36px; }
  .app__sidebar .ga-sidebar__brand .ga-logo { width: 32px; height: 32px; }
}
.upload-list .ga-list__end { margin-left: auto; }
.upload-remove { flex: none; }
.dropzone .dropzone__icon, .scan .scan__icon { width: 40px; height: 40px; }
[data-add].is-open { background: var(--action); color: var(--on-action); }
.draft__actions { display: flex; gap: var(--space-2); width: 100%; margin-top: auto; }
.draft__body .draft__actions .ga-btn { margin-top: 0; }
.draft__body .draft__actions [data-fill] { flex: 1; width: auto; min-width: 0; }
.draft__body .draft__actions [data-remove] { flex: none; width: var(--control-md); }
.draft__body .ga-badge { align-items: flex-start; max-width: 100%; height: auto; padding: 2px var(--space-2); white-space: normal; text-align: left; }
.draft__body .ga-badge .ga-icon { flex: none; margin-top: 3px; }

/* Набор сервисов в меню */
.app__sidebar { display: flex; flex-direction: column; }
.nav-services { margin-top: auto; width: 100%; border: 0; background: none; font: inherit; text-align: left; cursor: pointer; opacity: 0.8; }
.svc-list { display: grid; gap: var(--space-3); margin-top: var(--space-4); }
.svc-list .ga-switch { gap: var(--space-3); }
/* Соглашение */
.agree { align-items: flex-start; font-size: 14px; line-height: 20px; }
.agree input { margin-top: 2px; }
.agreement { max-height: 60vh; margin-top: var(--space-2); padding-right: var(--space-2); overflow: auto; font-size: 14px; line-height: 22px; }
.agreement h3 { margin: var(--space-4) 0 var(--space-1); font: 600 15px/24px var(--font-sans); color: var(--ink); }
.agreement p { margin: 0; }
/* Редактор фото */
.crop { display: grid; place-items: center; margin-top: var(--space-4); }
.crop canvas { width: min(320px, 100%); aspect-ratio: 1; border-radius: var(--radius-lg); cursor: grab; touch-action: none; }
.crop canvas:active { cursor: grabbing; }
.crop__zoom { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-4); color: var(--ink-muted); }
.crop__zoom input, .login-set input[type="range"] { flex: 1; accent-color: var(--action); }
.crop__hint { margin-top: var(--space-2); text-align: center; }
.profile__lock { margin-top: var(--space-4); }
/* Экран входа: сменяющийся фон */
.auth__brand { position: relative; overflow: hidden; }
.auth__brand > :not(.auth__slides) { position: relative; z-index: 1; }
.auth__slides, .auth__slide, .auth__dim { position: absolute; inset: 0; }
.auth__slide { background-position: center; background-size: cover; opacity: 0; transition: opacity 1.2s ease; }
.auth__slide.is-on { opacity: 1; }
.auth__dim { background: #141a3a; }
.login-set { display: grid; gap: var(--space-3); }
.login-set__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(220px, 2fr); gap: var(--space-6); margin-top: var(--space-2); }
.login-set__images { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: var(--space-3); }
.login-set__img, .login-set__add { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius-lg); background-position: center; background-size: cover; }
.login-set__img .ga-btn { position: absolute; top: var(--space-2); right: var(--space-2); background: var(--surface-card); }
.login-set__add { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-2); border: 1px dashed var(--border-strong); background: var(--surface-page); color: var(--ink-secondary); font: 500 13px/20px var(--font-sans); cursor: pointer; }
.login-set__add:hover { background: var(--surface-hover); }
.login-set__form { margin-top: var(--space-6); }
.login-set__preview { position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 3 / 4; max-height: 420px; margin-top: var(--space-2); padding: var(--space-5); overflow: hidden; border-radius: var(--radius-lg); background: #1c2449 center / cover; color: #fff; }
.login-set__preview > :not(.auth__dim) { position: relative; z-index: 1; }
.login-set__brand { display: flex; align-items: center; gap: var(--space-3); font: 500 15px/20px var(--font-sans); }
.login-set__brand .ga-logo { color: #fff; }
.login-set__preview p { margin: 0; font: 500 17px/24px var(--font-sans); }
@media (max-width: 760px) {
  .app__sidebar { flex-direction: row; }
  .nav-services { width: auto; margin-top: 0; }
  .login-set__grid { grid-template-columns: 1fr; }
}

/* Кадры и личные документы */
.service--mydocs .service__icon { background: var(--info-soft); color: var(--link); }
.service--staff .service__icon { background: var(--success-soft); color: var(--success); }
.staff-head { display: flex; align-items: center; gap: var(--space-4); margin-top: var(--space-2); }
.staff-head__position { font: 500 15px/24px var(--font-sans); color: var(--ink-secondary); }
.staff-head .inv-head { margin-top: var(--space-1); }
.my-note { max-width: 320px; margin-top: 2px; white-space: normal; }
.request__who .ga-badge { height: auto; margin-top: var(--space-1); padding: 2px var(--space-2); white-space: normal; text-align: left; }

/* === Компактные плитки сервисов === */
.services { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: var(--space-4); }
.service { position: relative; display: flex; flex-direction: row; align-items: center; gap: var(--space-4); padding: var(--space-4); overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius-xl); background: var(--surface-card); color: var(--ink); text-decoration: none; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.service::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .22s ease; }
a.service:hover { transform: translateY(-2px); border-color: var(--border-strong); box-shadow: var(--shadow-md); }
a.service:hover::after, a.service:focus-visible::after { transform: scaleX(1); }
.service .service__icon { flex: none; width: 52px; height: 52px; margin: 0; border-radius: var(--radius-lg); transition: transform .22s ease, background-color .22s ease, color .22s ease; }
.service .service__icon .ga-icon { width: 26px; height: 26px; transition: transform .28s ease; }
a.service:hover .service__icon { transform: scale(1.08) rotate(-5deg); background: var(--action); color: var(--on-action); }
a.service:hover .service__icon .ga-icon { transform: scale(1.12) rotate(5deg); }
.service__body { display: flex; flex-direction: column; flex: 1; gap: 2px; min-width: 0; }
.service__name { display: flex; align-items: center; gap: var(--space-2); font: 500 17px/24px var(--font-sans); letter-spacing: -0.01em; }
.service .service__text { display: -webkit-box; flex: none; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 13px; line-height: 18px; color: var(--ink-muted); }
.service__meta { margin-top: 2px; font-size: 12px; line-height: 16px; font-variant-numeric: tabular-nums; color: var(--ink-secondary); }
.service__go { display: grid; flex: none; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--ink-muted); transition: transform .2s ease, background-color .2s ease, color .2s ease; }
a.service:hover .service__go { transform: translateX(3px); background: var(--surface-soft); color: var(--ink); }
@media (prefers-reduced-motion: reduce) { .service, .service *, .service::after { transition: none !important; } }

/* Язык в меню профиля, окно «Мои сервисы» */
.user-menu__lang { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-1) var(--space-2); font-size: 14px; line-height: 20px; color: var(--ink-secondary); }
.user-menu__lang > span { flex: 1; }
.user-menu__list { min-width: 240px; }
.svc-list { gap: var(--space-2); }
.svc-row { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2); border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--surface-card); }
.svc-row__grip { display: grid; place-items: center; color: var(--ink-disabled); cursor: grab; }
.svc-row__name { flex: 1; min-width: 0; font-weight: 500; color: var(--ink); }
.svc-row .file-icon { width: 36px; height: 36px; }
.svc-row.is-dragging { opacity: 0.5; }

/* Страница никогда не шире экрана */
.app__main, .app__content, .page, .profile__side, .profile__main, .ga-card { min-width: 0; }
.page { max-width: 100%; }
@media (max-width: 980px) { .profile { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  html, body { overflow-x: hidden; }
  .row-actions { flex-wrap: wrap; }
  .profile__photo .ga-btn { flex: 1 1 auto; }
  .profile__who { min-width: 0; }
  .profile__who > div { min-width: 0; overflow-wrap: anywhere; }
  .form-row { grid-template-columns: minmax(0, 1fr); }
  .services { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .service { gap: var(--space-3); padding: var(--space-3); }
  .service .service__icon { width: 44px; height: 44px; }
  .service .service__icon .ga-icon { width: 22px; height: 22px; }
  .service .service__text { -webkit-line-clamp: 1; }
  .svc-row__grip { display: none; }
}

/* === Телефон: закреплённый каркас ===
   Документ не прокручивается вообще. Меню и верхняя панель стоят на месте, прокручивается только содержимое,
   и только по вертикали — сдвинуть страницу вбок нельзя. */
@media (max-width: 760px) {
  html, body { height: 100%; overflow: hidden; overscroll-behavior: none; }
  .app { position: fixed; top: 0; right: 0; left: 0; height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; overflow: clip; }
  .app__sidebar { box-sizing: border-box; flex: none; max-width: 100%; overscroll-behavior-x: contain; }
  .app__main { flex: 1; min-height: 0; overflow: hidden; overflow: clip; }
  .ga-topbar { flex: none; }
  .app__content { flex: 1; min-height: 0; overflow-x: hidden; overflow-x: clip; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; touch-action: pan-y; }
  .app__content .table-scroll, .app__content .ga-tabs, .app__content .rq-table, .cal__grid { touch-action: pan-x pan-y; }
  .auth { height: 100vh; height: 100dvh; min-height: 0; overflow-x: hidden; overflow-y: auto; }
  .page { padding-bottom: 104px; }
}
/* Строки, которые листаются вбок (вкладки, меню на телефоне), не должны двигаться по вертикали */
.ga-tabs { overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-width: none; }
.ga-tabs::-webkit-scrollbar { display: none; }
.ga-tabs .ga-tab { flex: none; margin-bottom: 0; }
@media (max-width: 760px) {
  .app__sidebar { overflow-y: hidden; }
}
/* Телефон: логотип (переход на главную) закреплён слева, вбок листаются только пункты меню */
@media (max-width: 760px) {
  .app__sidebar { padding-left: 0; }
  .app__sidebar .ga-sidebar__brand { position: sticky; left: 0; z-index: 2; align-self: stretch; display: flex; align-items: center; height: auto; margin: calc(-1 * var(--space-2)) var(--space-1) calc(-1 * var(--space-2)) 0; padding: 0 var(--space-2) 0 var(--space-3); background: var(--side-bg); box-shadow: 10px 0 10px -6px var(--side-bg); }
}
/* Телефон: на экране входа логотип виден всегда — сверху, на фоне со сменой изображений */
@media (max-width: 760px) {
  .auth { display: flex; flex-direction: column; }
  .auth__brand { display: flex; flex: none; justify-content: flex-end; gap: var(--space-3); min-height: 200px; padding: var(--space-5); }
  .auth__brand .auth__logo { gap: var(--space-3); font-size: 20px; line-height: 28px; }
  .auth__brand .auth__logo .ga-logo { width: 56px; height: 56px; }
  .auth__brand .auth__slogan { margin: 0; font-size: 15px; line-height: 22px; }
  .auth__brand .auth__points, .auth__brand .auth__foot { display: none; }
  .auth__main { flex: 1; padding: var(--space-4) var(--space-5) var(--space-8); }
}

/* iPhone увеличивает страницу, если в поле ввода шрифт мельче 16 px, и вёрстка съезжает. На телефоне поля — 16 px. */
@media (max-width: 760px) {
  .ga-input, input, select, textarea { font-size: 16px; }
  .ga-input::placeholder { font-size: 15px; }
}

/* Телефон, экран входа: логотип сразу под верхним краем, без пустого поля над ним; форма — сразу под блоком */
@media (max-width: 760px) {
  .auth__brand { justify-content: flex-start; min-height: 0; padding: calc(var(--space-5) + env(safe-area-inset-top, 0px)) var(--space-5) var(--space-5); }
  .auth__card { margin: 0 auto; padding: var(--space-4) 0; }
  .auth__main { padding-top: var(--space-3); }
}
