/* Написано Codex для Димы, 12.11.2026.
 * Единое оформление склада, документооборота и двух вариантов отчётов.
 * Бизнес-логика и HTML Димы сохранены. Этот файл не добавляет/не скрывает
 * поля, не меняет значения, права, расчёты, обработчики и порядок колонок.
 * Подключение после gronn-glass.css; !important переопределяет inline/CSS,
 * которые исходные PHP-фрагменты вставляют позже через innerHTML.
 * Все правила только screen: печать/экспорт сохраняют прежнюю геометрию.
 * Для отката удалить одно подключение этого файла в pwa_head.php.
 */
@media screen {
 /* Склад: общие панель и вкладки. Состояния active/disabled задаёт код Димы.
  * Не переопределяем display: скрытые комплектации/производитель остаются
  * скрыты, а служебные вкладки управляются прежним warehouse_tabs.js. */
 html[data-gronn-theme] .warehouse-compact-hero{border-radius:20px!important;padding:18px 22px!important;margin-bottom:20px!important}
 html[data-gronn-theme] .warehouse-compact-hero .header-title{margin-left:0!important;font-size:24px!important;letter-spacing:-.035em}
 html[data-gronn-theme] .content-container:has(#content-movement){--gb-radius:20px;color:var(--gg-text);font-family:GronnGolos,Inter,sans-serif}
 html[data-gronn-theme] .content-container:has(#content-movement) .top-buttons-container{gap:12px!important;align-items:center;flex-wrap:wrap;padding:6px;background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:18px;box-shadow:var(--gg-shadow)}
 html[data-gronn-theme] .content-container:has(#content-movement) .top-buttons-container>.d-flex{gap:6px!important;flex-wrap:wrap}
 html[data-gronn-theme] .content-container:has(#content-movement) :is(.top-button,.action-button){border:1px solid transparent!important;border-radius:12px!important;min-height:42px!important;height:auto!important;padding:11px 16px!important;background:transparent!important;color:var(--gg-muted)!important;box-shadow:none!important;font-size:13px!important;line-height:1.3;transition:background .18s ease,box-shadow .18s ease}
 html[data-gronn-theme] .content-container:has(#content-movement) :is(.top-button,.action-button):hover{background:var(--gg-field)!important;color:var(--gg-blue)!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .top-button.active{background:var(--gg-accent)!important;color:#fff!important;box-shadow:0 5px 14px #1644d527!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .action-button{background:var(--gg-field)!important;color:var(--gg-blue)!important;border-color:var(--gg-line)!important}
 html[data-gronn-theme] .content-container:has(#content-movement) #delete-button{color:#b42336!important}
 html[data-gronn-theme=dark] .content-container:has(#content-movement) #delete-button{color:#ffadb6!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .button-text{font-size:13px!important;color:inherit!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .info-block{background:var(--gg-glass)!important;border:1px solid var(--gg-border)!important;border-radius:var(--gb-radius)!important;box-shadow:var(--gg-shadow)!important;color:var(--gg-text)!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .info-form-block{padding:20px!important;height:auto!important;min-height:0!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .info-form-block p{color:var(--gg-muted)!important;font-size:12px!important;line-height:1.4!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .info-form-block>.d-flex{gap:10px!important;min-height:46px}
 html[data-gronn-theme] #content-movement .info-form-block>.d-flex{flex-direction:column;align-items:stretch!important;gap:7px!important;margin-bottom:14px!important}
 html[data-gronn-theme] #content-movement .info-form-block :is(select,input){width:100%!important;max-width:none!important;min-width:0!important}
 html[data-gronn-theme] .content-container:has(#content-movement) :is(select,input:not([type=checkbox]):not([type=radio])){border:1px solid var(--gg-line)!important;border-radius:11px!important;color:var(--gg-text)!important;background-color:var(--gg-field)!important;font-size:13px!important;min-height:36px;box-shadow:none!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .block-header{background:var(--gg-head)!important;color:var(--gg-muted)!important;border-bottom:1px solid var(--gg-line)!important;font-size:12px!important;min-height:54px!important;border-radius:19px 19px 0 0!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .block-header>div{color:inherit!important;font-size:12px!important}
 html[data-gronn-theme] :is(#warehouse-products-table,#registry-table-body){color:var(--gg-text)!important}
 html[data-gronn-theme] #warehouse-products-table>div{border-bottom-color:var(--gg-line)!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .image-block{min-height:210px!important;height:clamp(210px,27vh,300px)!important;background:var(--gg-field)!important;border:1px dashed var(--gg-line)!important;color:var(--gg-muted)!important;box-shadow:none!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .image-block :is(button,.btn){color:#fff!important;background:#1644d5!important;border-radius:11px!important;font-size:12px!important;padding:10px 14px!important}
 html[data-gronn-theme] .content-container:has(#content-movement) [data-parts-target]{background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:18px;padding:16px}
 html[data-gronn-theme] .content-container:has(#content-movement) [data-parts-target] label{font-size:12px;color:var(--gg-muted)!important}
 /* Складской отчёт и детализация перемещения: те же поверхности и разделители.
  * Не трогаем ширины колонок, sticky-поведение и классы выбранной строки. */
 html[data-gronn-theme] .content-container:has(#content-movement) :is(.warehouse-report-header,.warehouse-report-filters,.warehouse-report-meta){background:var(--gg-glass)!important;color:var(--gg-text)!important;border-color:var(--gg-line)!important}
 html[data-gronn-theme] .content-container:has(#content-movement) :is(.warehouse-report-subtitle,.warehouse-report-filter-item label,.warehouse-report-total-label){color:var(--gg-muted)!important}
 html[data-gronn-theme] .content-container:has(#content-movement) :is(.warehouse-report-filter-icon,.warehouse-report-total-content){background:var(--gg-head)!important;color:var(--gg-blue)!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .warehouse-report-title{font-size:20px!important;letter-spacing:-.03em}
 html[data-gronn-theme] .content-container:has(#content-movement) :is(.warehouse-report-scroll,.warehouse-report-table){background:transparent!important}
 html[data-gronn-theme] .content-container:has(#content-movement) .warehouse-report-table :is(td,th){padding:14px 16px!important;font-size:13px!important;border-color:var(--gg-line)!important}
 html[data-gronn-theme] :is(.warehouse-report-action-button,.movement-detail-tab){border:1px solid var(--gg-line)!important;background:var(--gg-field)!important;color:var(--gg-blue)!important;border-radius:11px!important;padding:9px 13px!important;box-shadow:none!important}
 html[data-gronn-theme] .movement-detail-tab.active{background:var(--gg-accent)!important;color:#fff!important}
 html[data-gronn-theme] #registry-movement-details-modal :is(.movement-detail-tabs,.md-section,.md-section-body,.md-field-row,.registry-filters,.movement-details-content){background:var(--gg-solid)!important;color:var(--gg-text)!important;border-color:var(--gg-line)!important}
 html[data-gronn-theme] #registry-movement-details-modal .md-field-label{color:var(--gg-muted)!important}

 /* Документооборот: связываем его собственные токены с темой GRONN.
  * Акцент остаётся насыщенным синим, в том числе в тёмной теме: белый текст
  * активной кнопки должен сохранять достаточный контраст. */
 html[data-gronn-theme] #document-flow-root{--df-blue:#1644d5;--df-blue-soft:#287bfa;--df-ink:var(--gg-text);--df-muted:var(--gg-muted);--df-line:var(--gg-line);--df-surface:var(--gg-solid);font-family:GronnGolos,Inter,sans-serif!important;background:transparent!important;border:0!important;padding:0!important;box-shadow:none!important}
 html[data-gronn-theme] #document-flow-root .df-header{padding:18px 22px!important;background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:20px;box-shadow:var(--gg-shadow);margin-bottom:20px!important}
 html[data-gronn-theme] #document-flow-root .df-header h1{font-size:24px;letter-spacing:-.035em}
 html[data-gronn-theme] #document-flow-root .df-header-mark{border-radius:15px;background:var(--gg-head);color:var(--gg-blue);box-shadow:none}
 html[data-gronn-theme] #document-flow-root .df-kicker{color:var(--gg-muted);font-size:10px;font-weight:600;letter-spacing:.1em}
 html[data-gronn-theme] #document-flow-root .df-lead{font-size:13px;line-height:1.5}
 html[data-gronn-theme] #document-flow-root .df-tabs{background:var(--gg-glass)!important;border-color:var(--gg-border)!important;box-shadow:var(--gg-shadow);gap:6px;border-radius:18px;margin-bottom:20px}
 html[data-gronn-theme] #document-flow-root .df-tab{font-size:13px;border-radius:12px;color:var(--gg-muted)}
 html[data-gronn-theme] #document-flow-root .df-tab.active{color:white;background:var(--gg-accent);box-shadow:0 5px 14px #1644d527}
 html[data-gronn-theme] #document-flow-root .df-tab:not(.active) i{color:var(--gg-blue)}
 html[data-gronn-theme] #document-flow-root :is(.df-card,.df-state,.df-type-choice){background:var(--gg-glass)!important;border:1px solid var(--gg-border)!important;box-shadow:var(--gg-shadow);border-radius:20px;color:var(--gg-text);padding:22px}
 html[data-gronn-theme] #document-flow-root .df-state{padding:32px 24px;color:var(--gg-muted);font-size:14px}
 html[data-gronn-theme] #document-flow-root :is(.df-type,.df-choice-ico){color:var(--gg-blue)}
 html[data-gronn-theme] #document-flow-root .df-choice-ico{background:var(--gg-head);border-radius:14px;box-shadow:none}
 html[data-gronn-theme] #document-flow-root .df-meta{color:var(--gg-muted)}
 /* Сетка реестра Димы — отдельная разметка от старых df-card; поддерживаем
  * обе, чтобы актуальный список и его боковые панели не выпадали из темы. */
 html[data-gronn-theme] #document-flow-root .df-board{font-family:inherit;gap:16px}
 html[data-gronn-theme] #document-flow-root .df-box{background:var(--gg-glass)!important;border-color:var(--gg-border);border-radius:20px;box-shadow:var(--gg-shadow)}
 html[data-gronn-theme] #document-flow-root :is(.df-box-title,.df-reg-head){background:var(--gg-head)!important;color:var(--gg-muted)!important;border-color:var(--gg-line);font-size:11px;font-weight:600}
 html[data-gronn-theme] #document-flow-root .df-kind{font-size:13px;min-height:48px}
 html[data-gronn-theme] #document-flow-root .df-kind.active{background:var(--gg-accent);color:white}
 html[data-gronn-theme] #document-flow-root :is(.df-kind:not(.active) i,.df-reg-name,.df-reg-empty i,.df-empty-visual i,.df-reg-row>span:first-child){color:var(--gg-blue)}
 html[data-gronn-theme] #document-flow-root :is(.df-file-link,.df-image-body img,.df-reg-row.selected){background:var(--gg-head);color:var(--gg-blue)}
 html[data-gronn-theme] #document-flow-root .df-reg-row{border-bottom-color:var(--gg-line);font-size:13px;min-height:48px}
 html[data-gronn-theme] #document-flow-root :is(.df-chip,.df-btn){background:var(--gg-field);border-color:var(--gg-line);color:var(--gg-blue);border-radius:11px;font-size:13px;box-shadow:none}
 html[data-gronn-theme] #document-flow-root :is(.df-chip.active,.df-btn.primary){background:var(--gg-accent);color:white;border-color:transparent}
 html[data-gronn-theme] #document-flow-root .df-btn.danger{color:#b42336;border-color:#b4233644}
 html[data-gronn-theme=dark] #document-flow-root :is(.df-btn.danger,.df-error){color:#ffb7be;background:#4b2132;border-color:#ffb7be40}
 /* Бланк остаётся белой «бумагой» в обеих темах, включая заполнение и просмотр.
  * Точные размеры реквизитов, дат, подписей и таблиц задаёт прежний CSS Димы.
  * Изоляция от общих тёмных таблиц устраняет светлый текст на белом бланке.
  * Правила не действуют при печати — сохраняется штатный print stylesheet. */
 html[data-gronn-theme] #document-flow-root .df-sheet{--df-ink:#203858;--df-muted:#526b8c;--df-line:#c8d5e9;--df-surface:#fff;background:#fff!important;color:#203858!important;border:1px solid #dbe4f0;border-radius:16px;box-shadow:0 12px 40px #0b357714}
 html[data-gronn-theme] #document-flow-root .df-sheet :is(h1,h2,h3,h4,label,td,th){color:#203858!important}
 html[data-gronn-theme] #document-flow-root .df-sheet :is(input:not([type=checkbox]):not([type=radio]),textarea,select){background:#f6f9ff!important;color:#203858!important;border-color:#c8d5e9!important}
 html[data-gronn-theme] #document-flow-root .df-sheet table{--bs-table-color:#203858;--bs-table-bg:transparent;color:#203858!important}
 html[data-gronn-theme] #document-flow-root .df-sheet table :is(td,th){border-color:#b8c4d4!important}
 html[data-gronn-theme] #document-flow-root .df-sheet table thead th{background:#edf3fc!important}
 html[data-gronn-theme] #document-flow-root .df-sheet .df-act-section{background:#edf3fc!important}

 /* Отчёты аналитика и дилера используют одинаковые ID и структуру блоков.
  * :has ограничивает оформление реальным контейнером отчётов и продолжает
  * работать после замены блоков ajax=1, не требуя нового JS-инициализатора. */
 html[data-gronn-theme] :is(.container-fluid,.content-area):has(>.switch-report-btns){color:var(--gg-text);font-family:GronnGolos,Inter,sans-serif}
 html[data-gronn-theme] .container-fluid:has(>.switch-report-btns){padding:0}
 html[data-gronn-theme] :is(.container-fluid,.content-area):has(>.switch-report-btns)>.page-header{background:var(--gg-glass)!important;color:var(--gg-text)!important;border:1px solid var(--gg-border);border-radius:20px;box-shadow:var(--gg-shadow);padding:22px!important;margin-bottom:20px!important}
 html[data-gronn-theme] :is(.container-fluid,.content-area):has(>.switch-report-btns)>.page-header h1{font-size:24px!important;line-height:1.3;letter-spacing:-.035em}
 html[data-gronn-theme] :is(.container-fluid,.content-area):has(>.switch-report-btns)>.page-header p{font-size:13px;line-height:1.6;color:var(--gg-muted)!important;opacity:1!important}
 html[data-gronn-theme] #dispatcher-filter-form{background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:18px;padding:10px 16px;margin:0 0 16px!important;gap:10px}
 html[data-gronn-theme] #dispatcher-filter-form>.col-auto{margin:0;padding:0}
 html[data-gronn-theme] #dispatcher-filter-form label{font-size:12px;color:var(--gg-muted)!important}
 html[data-gronn-theme] #dispatcher-filter-form select{min-width:240px;min-height:40px;font-size:13px}
 html[data-gronn-theme] .switch-report-btns{display:flex;gap:6px;flex-wrap:wrap;padding:6px;border:1px solid var(--gg-border);border-radius:18px;background:var(--gg-glass);box-shadow:var(--gg-shadow);margin-bottom:20px!important}
 html[data-gronn-theme] .switch-report-btns .btn{margin:0!important;padding:11px 16px!important;border-radius:12px!important;font-size:13px!important;font-weight:600;border:1px solid transparent!important;box-shadow:none!important}
 html[data-gronn-theme] .switch-report-btns .btn-outline-primary{background:transparent!important;color:var(--gg-muted)!important}
 html[data-gronn-theme] .switch-report-btns .btn-primary{background:var(--gg-accent)!important;color:white!important;box-shadow:0 5px 14px #1644d527!important}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .card{border-radius:20px!important;overflow:hidden;margin-bottom:18px;box-shadow:var(--gg-shadow)!important}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .card-header{padding:17px 20px;background:transparent!important;border-bottom:1px solid var(--gg-line)!important}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .card-header h5{font-size:14px!important;font-weight:600;letter-spacing:0}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .card-body{padding:20px}
 /* Подложка графика светлая намеренно: цвета подписей Chart.js исходного кода
  * заданы независимо от CSS. Сохраняем их контраст без вмешательства в данные
  * или жизненный цикл экземпляров Chart. Остальная карточка следует теме. */
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) canvas{background:#f8fbff;border-radius:12px;padding:8px;max-width:100%}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .checkbox-group{background:var(--gg-field)!important;border:1px solid var(--gg-line)!important;border-radius:12px;padding:12px;max-height:150px}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .filters-card{height:auto!important;min-height:0!important}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .table-responsive{background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:20px;box-shadow:var(--gg-shadow);overflow-x:auto}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) table :is(td,th){padding:14px 18px!important;font-size:13px!important;line-height:1.5;vertical-align:middle}
 /* Старый глобальный .user-photo относился к профилю и делал фото в таблицах
  * огромными. Здесь ограничиваем исправление только строками отчёта. */
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) :is(.user-photo,.user-photo-placeholder){position:static!important;width:38px!important;height:38px!important;min-width:38px;border:2px solid var(--gg-border)!important;border-radius:12px!important;margin:0!important;object-fit:cover;box-shadow:none!important;background:var(--gg-head);color:var(--gg-blue)}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .text-center.py-5{background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:20px;padding:40px 24px!important}
 html[data-gronn-theme] :is(#client-report-block,#machine-report-block,#executor-report-block) .text-center.py-5 h3{font-size:18px}

 @media(min-width:1001px){html[data-gronn-theme] #content-movement .left-column{width:290px!important;flex:0 0 290px!important}}
 @media(max-width:1000px){
  html[data-gronn-theme] #content-movement{flex-wrap:wrap}
  html[data-gronn-theme] #content-movement .left-column{width:100%!important;flex:1 1 100%!important}
  html[data-gronn-theme] #content-movement>.info-block:has(#warehouse-products-table){flex:1 1 100%!important;width:100%!important;min-height:280px;height:auto!important;max-height:65vh}
  html[data-gronn-theme] .content-container:has(#content-movement) .image-block{height:180px!important;min-height:180px!important}
 }
 @media(max-width:600px){
  html[data-gronn-theme] .content-container:has(#content-movement) .top-buttons-container{align-items:stretch;gap:8px!important}
  html[data-gronn-theme] .content-container:has(#content-movement) .top-buttons-container>.d-flex{width:100%}
  html[data-gronn-theme] .content-container:has(#content-movement) .top-button{flex:1 1 130px!important}
  html[data-gronn-theme] #dispatcher-filter-form select{min-width:0;width:100%;max-width:100%}
  html[data-gronn-theme] #dispatcher-filter-form>.col-auto{width:100%}
  html[data-gronn-theme] .switch-report-btns .btn{flex:1 1 120px}
  html[data-gronn-theme] #document-flow-root .df-header{padding:16px!important}
  html[data-gronn-theme] #document-flow-root .df-header h1,html[data-gronn-theme] .warehouse-compact-hero .header-title{font-size:20px!important}
  html[data-gronn-theme] #document-flow-root .df-type-picker{grid-template-columns:minmax(0,1fr)}
 }
 /* Наведение мягкое, без сдвига таблиц или элементов заполнения. */
 html[data-gronn-effects=off] :is(#document-flow-root,.content-container:has(#content-movement),.switch-report-btns) *{transition:none!important;animation:none!important}
 @media(prefers-reduced-motion:reduce){:is(#document-flow-root,.content-container:has(#content-movement),.switch-report-btns) *{transition:none!important;animation:none!important}}
}

/* Написано Codex для Димы: вёрстка отчётных экранов собирает заголовок, фильтры, быстрые переходы, графики и таблицы в одну понятную иерархию. Это только представление: расчёты и обработчики исходных отчётов не меняются. */
html[data-gronn-theme] body:has(#client-report-block) .page-header{padding:22px 24px!important;border:1px solid var(--gg-border)!important;border-radius:20px!important;background:var(--gg-glass)!important;box-shadow:var(--gg-shadow)!important}
html[data-gronn-theme] body:has(#client-report-block) .page-header h1{font-size:26px!important;font-weight:720!important;letter-spacing:-.03em!important}
html[data-gronn-theme] body:has(#client-report-block) .page-header p{color:var(--gg-muted)!important;font-size:13px!important}
html[data-gronn-theme] body:has(#client-report-block) #dispatcher-filter-form{padding:12px 16px!important;margin-bottom:16px!important;border:1px solid var(--gg-border)!important;border-radius:16px!important;background:var(--gg-glass)!important;box-shadow:var(--gg-shadow)!important}
html[data-gronn-theme] body:has(#client-report-block) p:has(>[data-gronn-page="dealer_network_reports.php"]){margin:0 0 12px!important}
html[data-gronn-theme] body:has(#client-report-block) [data-gronn-page="dealer_network_reports.php"]{display:inline-flex!important;align-items:center!important;gap:9px!important;padding:11px 16px!important;border-radius:12px!important;font-weight:650!important;box-shadow:0 8px 20px #1644d526!important}
html[data-gronn-theme] body:has(#client-report-block) .row.mb-4{row-gap:14px!important}
html[data-gronn-theme] body:has(#client-report-block) .table-responsive{margin-top:18px!important}

/* Написано Codex для Димы: общая витрина отчётности. Карточки не рисуют
   показатели сами — они ведут к существующим защищённым аналитическим экранам. */
html[data-gronn-theme] #reports-hub{max-width:1240px;margin:0 auto;color:var(--gg-text);font-family:GronnGolos,Inter,sans-serif}
html[data-gronn-theme] #reports-hub .rh-hero{display:flex;gap:17px;align-items:flex-start;padding:28px 30px;border:1px solid var(--gg-border);border-radius:22px;background:linear-gradient(125deg,var(--gg-solid),var(--gg-head));box-shadow:var(--gg-shadow)}
html[data-gronn-theme] #reports-hub .rh-hero-icon{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:17px;background:var(--gg-accent);color:#fff;box-shadow:0 10px 22px #1644d52e}
html[data-gronn-theme] #reports-hub svg{width:25px;height:25px}
html[data-gronn-theme] #reports-hub .rh-kicker{display:block;margin-bottom:5px;color:var(--gg-muted);font-size:10px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}
html[data-gronn-theme] #reports-hub h1{margin:0;color:var(--gg-text);font-size:28px;font-weight:750;letter-spacing:-.04em}
html[data-gronn-theme] #reports-hub .rh-hero p{max-width:720px;margin:7px 0 0;color:var(--gg-muted);font-size:14px;line-height:1.55}
html[data-gronn-theme] #reports-hub .rh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
html[data-gronn-theme] #reports-hub .rh-card{display:grid;grid-template-columns:52px minmax(0,1fr) 24px;gap:15px;align-items:center;min-height:178px;padding:24px;border:1px solid var(--gg-line);border-radius:20px;background:var(--gg-solid);color:var(--gg-text);text-align:left;box-shadow:var(--gg-shadow);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease}
html[data-gronn-theme] #reports-hub .rh-card:hover{transform:translateY(-3px);border-color:#84a8ff;box-shadow:0 15px 32px #173e7920;background:linear-gradient(135deg,var(--gg-solid),var(--gg-head))}
html[data-gronn-theme] #reports-hub .rh-card-primary{border-color:#1644d54a;background:linear-gradient(135deg,#1644d5,#236df1);color:#fff;box-shadow:0 15px 35px #1644d52e}
html[data-gronn-theme] #reports-hub .rh-card-primary:hover{border-color:transparent;background:linear-gradient(135deg,#113dbf,#1974fa);box-shadow:0 19px 40px #1644d542}
html[data-gronn-theme] #reports-hub .rh-icon{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;background:var(--gg-head);color:var(--gg-blue)}
html[data-gronn-theme] #reports-hub .rh-card-primary .rh-icon{background:#ffffff25;color:#fff}
html[data-gronn-theme] #reports-hub .rh-copy{display:grid;gap:6px;min-width:0}
html[data-gronn-theme] #reports-hub .rh-eyebrow{color:var(--gg-muted);font-size:10px;font-weight:750;letter-spacing:.1em;text-transform:uppercase}
html[data-gronn-theme] #reports-hub .rh-card-primary .rh-eyebrow{color:#dce8ff}
html[data-gronn-theme] #reports-hub .rh-copy strong{font-size:18px;font-weight:730;letter-spacing:-.018em;line-height:1.22}
html[data-gronn-theme] #reports-hub .rh-copy>span:last-child{color:var(--gg-muted);font-size:13px;line-height:1.52}
html[data-gronn-theme] #reports-hub .rh-card-primary .rh-copy>span:last-child{color:#e7efff}
html[data-gronn-theme] #reports-hub .rh-arrow{color:var(--gg-muted);font-size:24px;font-weight:400;transition:transform .18s ease}
html[data-gronn-theme] #reports-hub .rh-card-primary .rh-arrow{color:#fff}
html[data-gronn-theme] #reports-hub .rh-card:hover .rh-arrow{transform:translateX(4px)}
html[data-gronn-theme] #reports-hub .rh-note{margin:14px 4px;color:var(--gg-muted);font-size:12px;line-height:1.5}
@media(max-width:760px){html[data-gronn-theme] #reports-hub .rh-hero{padding:22px;gap:13px}html[data-gronn-theme] #reports-hub .rh-grid{grid-template-columns:1fr}html[data-gronn-theme] #reports-hub .rh-card{min-height:144px;padding:20px}}
@media(max-width:480px){html[data-gronn-theme] #reports-hub .rh-hero{display:block}html[data-gronn-theme] #reports-hub .rh-hero-icon{margin-bottom:14px}html[data-gronn-theme] #reports-hub h1{font-size:25px}html[data-gronn-theme] #reports-hub .rh-card{grid-template-columns:43px minmax(0,1fr) 16px;gap:11px}html[data-gronn-theme] #reports-hub .rh-icon{width:42px;height:42px}}

/*
 * Написано Codex для Димы: рабочий экран ServiceDesk.
 * Старые PHP-панели подставляются внутрь .sd-pane-content, поэтому правила
 * ограничены #servicedesk-workspace: они не меняют отдельные страницы заявок,
 * печатные формы и существующую логику статусов.
 */
html[data-gronn-theme] #servicedesk-workspace{max-width:1480px;margin:0 auto;padding:0;color:var(--gg-text);font-family:GronnGolos,Inter,sans-serif}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header{display:flex;align-items:center;gap:15px;padding:20px 22px;margin-bottom:14px;background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:20px;box-shadow:var(--gg-shadow)}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-mark{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:var(--gg-head);color:var(--gg-blue)}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-mark svg{width:26px;height:26px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-kicker,html[data-gronn-theme] #servicedesk-workspace .sd-pane-kicker{display:block;color:var(--gg-muted);font-size:10px;font-weight:700;line-height:1.2;letter-spacing:.11em}
html[data-gronn-theme] #servicedesk-workspace h2{margin:3px 0 4px!important;color:var(--gg-text)!important;font-size:25px!important;font-weight:700;letter-spacing:-.035em}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header p{margin:0;color:var(--gg-muted)!important;font-size:13px;line-height:1.45}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:6px;margin-bottom:14px;background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:16px;box-shadow:var(--gg-shadow)}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-tabs button{min-height:36px;padding:8px 14px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--gg-muted);font-size:13px;font-weight:650;cursor:pointer}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-tabs button:hover{background:var(--gg-head);color:var(--gg-blue)}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-tabs .is-primary{background:var(--gg-accent);color:#fff;box-shadow:0 6px 16px #1644d528}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);grid-template-areas:"active create" "archive create";gap:14px;align-items:start}
html[data-gronn-theme] #servicedesk-workspace .sd-pane{min-width:0;overflow:hidden;background:var(--gg-glass);border:1px solid var(--gg-border);border-radius:20px;box-shadow:var(--gg-shadow)}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-active{grid-area:active}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-create{grid-area:create}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-archive{grid-area:archive}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--gg-line);background:linear-gradient(90deg,var(--gg-solid),transparent)}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-header h3{margin:3px 0 0!important;color:var(--gg-text)!important;font-size:16px!important;font-weight:680;letter-spacing:-.02em}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-header button{padding:7px 10px;border:1px solid var(--gg-line);border-radius:9px;background:var(--gg-field);color:var(--gg-blue);font-size:12px;font-weight:650;cursor:pointer}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-header button:hover{border-color:var(--gg-blue);background:var(--gg-head)}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-content{max-height:540px;overflow:auto;overscroll-behavior:contain;padding:14px;scrollbar-color:#b8c7df transparent}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-create .sd-pane-content{max-height:1094px}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-loading,html[data-gronn-theme] #servicedesk-workspace .sd-pane-error{display:grid;min-height:150px;place-items:center;padding:24px;color:var(--gg-muted);font-size:13px;text-align:center}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-error{color:#b42336}
html[data-gronn-theme] #servicedesk-workspace .requests-container{padding:0!important}
html[data-gronn-theme] #servicedesk-workspace .requests-title{display:none!important}
html[data-gronn-theme] #servicedesk-workspace .request-card{padding:14px!important;margin:0 0 10px!important;border:1px solid var(--gg-line)!important;border-radius:13px!important;background:var(--gg-solid)!important;box-shadow:none!important}
html[data-gronn-theme] #servicedesk-workspace .request-card:last-child{margin-bottom:0!important}
html[data-gronn-theme] #servicedesk-workspace .request-header{gap:10px;margin-bottom:10px!important;padding-bottom:9px!important}
html[data-gronn-theme] #servicedesk-workspace .request-id{font-size:14px!important;color:var(--gg-blue)!important}
html[data-gronn-theme] #servicedesk-workspace .request-info{gap:4px!important;font-size:11px!important}
html[data-gronn-theme] #servicedesk-workspace :is(.dates-info,.client-info,.machine-info){margin:7px 0!important;padding:8px 10px!important;border-radius:8px!important;font-size:12px!important;line-height:1.45!important}
html[data-gronn-theme] #servicedesk-workspace .request-text{font-size:12px!important;line-height:1.55!important;margin:10px 0!important}
html[data-gronn-theme] #servicedesk-workspace .action-buttons{margin-top:10px!important;gap:7px!important}
html[data-gronn-theme] #servicedesk-workspace :is(.execute-btn,.complete-btn,.cancel-btn){width:auto!important;min-height:34px!important;padding:7px 10px!important;border-radius:8px!important;font-size:12px!important}
html[data-gronn-theme] #servicedesk-workspace .request-form{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;transform:none!important;top:auto!important;background:transparent!important;box-shadow:none!important;border:0!important}
html[data-gronn-theme] #servicedesk-workspace .request-form h2{margin:0 0 15px!important;font-size:19px!important;text-align:left!important}
html[data-gronn-theme] #servicedesk-workspace .request-form .form-group{margin-bottom:13px!important}
html[data-gronn-theme] #servicedesk-workspace .request-form textarea{min-height:112px!important}
html[data-gronn-theme] #servicedesk-workspace .request-form .submit-btn{width:100%!important;max-width:none!important;margin:15px 0 0!important;border-radius:10px!important}
@media(max-width:1100px){html[data-gronn-theme] #servicedesk-workspace .sd-workspace-grid{grid-template-columns:1fr;grid-template-areas:"create" "active" "archive"}html[data-gronn-theme] #servicedesk-workspace .sd-pane-create .sd-pane-content{max-height:none}}
@media(max-width:620px){html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header{align-items:flex-start;padding:16px}.sd-workspace-mark{flex-basis:42px!important;width:42px!important;height:42px!important}html[data-gronn-theme] #servicedesk-workspace h2{font-size:21px!important}html[data-gronn-theme] #servicedesk-workspace .sd-pane-content{padding:10px;max-height:none}html[data-gronn-theme] #servicedesk-workspace .sd-workspace-tabs button{flex:1 1 120px}}

/* Написано Codex для Димы: вторая итерация композиции ServiceDesk.
   Архив получает всю ширину нижней строки, а фирменная шапка создаёт ясный
   визуальный вход в раздел без изменения самих данных заявок. */
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header{position:relative;overflow:hidden;padding:22px 24px;background:linear-gradient(118deg,#0b306f 0%,#1644d5 58%,#347cf2 100%);border-color:#6f98ff;box-shadow:0 16px 34px #123f9730;color:#fff}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header:after{content:"";position:absolute;right:-46px;top:-106px;width:260px;height:260px;border:1px solid #ffffff42;border-radius:50%;box-shadow:0 0 0 34px #ffffff0a,0 0 0 72px #ffffff08;pointer-events:none}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header>div,html[data-gronn-theme] #servicedesk-workspace .sd-workspace-mark{position:relative;z-index:1}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-mark{border:1px solid #ffffff45;background:#ffffff17;color:#fff;box-shadow:inset 0 1px #ffffff35}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header .sd-workspace-kicker{color:#dbe7ff}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header h2{color:#fff!important}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-header p{color:#e5edff!important}
html[data-gronn-theme] #servicedesk-workspace .sd-workspace-grid{grid-template-columns:minmax(0,1.3fr) minmax(360px,.7fr);grid-template-areas:"active create" "archive archive"}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-content{max-height:545px}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-create .sd-pane-content{max-height:545px}
html[data-gronn-theme] #servicedesk-workspace .sd-pane-archive .sd-pane-content{max-height:420px}
html[data-gronn-theme] #servicedesk-workspace .request-card:hover{border-color:#8baaff!important;box-shadow:0 8px 22px #103a8810!important}
html[data-gronn-theme] #servicedesk-workspace .request-media-gallery{display:flex!important;align-items:flex-start;flex-wrap:wrap;gap:8px;max-height:124px;overflow:auto;margin:10px 0!important;padding:8px!important;border:1px solid var(--gg-line);border-radius:10px;background:var(--gg-head)}
html[data-gronn-theme] #servicedesk-workspace .request-media-gallery>p{width:100%;margin:0!important;color:var(--gg-muted)!important;font-size:11px!important}
html[data-gronn-theme] #servicedesk-workspace .request-media-gallery .media-item{display:block!important;width:88px!important;max-width:88px!important;margin:0!important}
html[data-gronn-theme] #servicedesk-workspace :is(.request-media-gallery .request-photo,.request-media-gallery .request-video){width:88px!important;height:78px!important;object-fit:cover!important;border-radius:8px!important}
