/* Shared screen controls. Document print layouts remain owned by their modules. */
@media screen {
  body.admin-app {
    --ui-ink: #263444;
    --ui-muted: #687587;
    --ui-line: #d8e0e8;
    --ui-soft: #edf2f6;
    color: var(--ui-ink);
    background: #f5f7fa;
    font-family: Arial, sans-serif;
    font-weight: 400;
  }
  body.admin-app :is(button, input, select, textarea) { font-family: inherit; letter-spacing: 0; }
  body.admin-app :is(button, [role=button], input, select, textarea, .icon-button, .ghost, .primary, [role=tab]) { border-radius: 0 !important; }
  body.admin-app :is(button, .icon-button, .ghost, .primary) { font-weight: 600; }
  body.admin-app :is(input:not([type=checkbox]):not([type=radio]), select, textarea) {
    border-color: var(--ui-line);
    font-weight: 400;
    color: var(--ui-ink);
  }
  body.admin-app label { font-weight: 400; color: #4b5868; }
  body.admin-app :is(.app-title-row h1, .warehouse-title-row h1) { font-size: 28px; line-height: 1.2; letter-spacing: 0; font-weight: 700; }
  body.admin-app :is(.app-title-row p:last-child, .settings-hint) { font-size: 14px; font-weight: 400; color: var(--ui-muted); }
  body.admin-app :is(.icon-button, .crm-icon-button) { min-width: 38px; min-height: 38px; }
  body.admin-app :is(.ghost, .icon-button) { box-shadow: none; }
  body.admin-app :is(.app-tabs a, .mobile-tabbar a, [role=tab], .service-quick-filters button, .warehouse-summary-filter, .crm-status-quick button) {
    border-radius: 0 !important;
    transition: background-color 140ms ease, color 140ms ease, transform 140ms ease;
  }
  body.admin-app :is(.app-tabs a, .mobile-tabbar a, [role=tab], .service-quick-filters button, .warehouse-summary-filter, .crm-status-quick button)::before,
  body.admin-app :is(.app-tabs a, .mobile-tabbar a, [role=tab], .service-quick-filters button, .warehouse-summary-filter, .crm-status-quick button)::after { content: none !important; }
  body.admin-app :is(.app-tabs a.active, .mobile-tabbar a.active, [role=tab][aria-selected=true], .service-quick-filters button.active, .warehouse-summary-filter[aria-pressed=true]) {
    background: var(--ui-soft) !important;
    color: #29455b !important;
    box-shadow: none !important;
  }
  body.admin-app :is(.admin-dialog, .admin-dialog-card, .crm-detail-dialog, .crm-reschedule-dialog, .cash-workspace, .service-detail-dialog) { border-radius: 0 !important; }
  body.admin-app table th { font-size: 13px; font-weight: 600; color: #536174; background: #f4f7fa; }
  body.admin-app table td { font-size: 14px; }
  body.admin-app :is(button, a, input, select, textarea):focus-visible { outline: 2px solid #6b9bc2; outline-offset: 2px; }
}
@media screen and (hover: hover) {
  body.admin-app :is(.app-tabs a, .mobile-tabbar a, [role=tab], .service-quick-filters button, .warehouse-summary-filter, .crm-status-quick button):hover:not(:disabled) {
    background: #f0f4f7 !important;
    color: #29455b !important;
    box-shadow: none !important;
    transform: scale(1.015);
  }
}
@media screen and (min-width: 901px) {
  body.admin-app {
    --admin-sidebar-width: 240px;
    min-height: 100dvh; padding-top: 0 !important; padding-left: var(--admin-sidebar-width) !important;
    transition: padding-left 180ms ease;
  }
  body.admin-app.admin-nav-collapsed { --admin-sidebar-width: 72px; }
  body.admin-app .app-topbar {
    position: fixed; inset: 0 auto 0 0; z-index: 150;
    display: flex; flex-direction: column; align-items: stretch; gap: 0;
    width: var(--admin-sidebar-width) !important; height: 100dvh; min-height: 0;
    padding: 0; background: #fff; border: 0; border-right: 1px solid var(--ui-line);
    overflow: hidden; transition: width 180ms ease;
  }
  body.admin-app .app-brand {
    flex: 0 0 72px; justify-content: flex-start; min-height: 72px; padding: 12px 16px;
    font-size: 16px; border-bottom: 1px solid var(--ui-line);
  }
  body.admin-app .app-brand img { width: 42px; height: 42px; object-fit: contain; }
  body.admin-app .app-brand span { display: inline !important; }
  body.admin-app .app-nav-toggle {
    position: absolute; top: 17px; right: 12px; display: grid !important;
    width: 38px; height: 38px; margin: 0; padding: 0; border: 0; background: transparent;
  }
  body.admin-app .app-tabs {
    display: flex !important; flex: 1 1 auto; flex-direction: column; flex-wrap: nowrap;
    align-items: stretch; justify-content: flex-start; width: 100%; min-width: 0; min-height: 0;
    margin: 0; padding: 4px 10px 10px; gap: 3px; overflow: hidden auto; border: 0; background: transparent;
  }
  body.admin-app .app-tabs a {
    display: flex; flex: 0 0 auto; justify-content: flex-start; align-items: center; width: 100%; min-height: 44px;
    gap: 11px; padding: 9px 12px; color: #4f5e70; border: 0; font-size: 14px; white-space: nowrap;
  }
  body.admin-app .app-tabs a[href="/admin/settings.html"] { margin-top: auto; }
  body.admin-app .app-tabs a .admin-icon { flex: 0 0 20px; width: 20px; height: 20px; }
  body.admin-app .app-tabs .nav-label { display: inline !important; }
  body.admin-app .app-actions {
    display: flex; flex: 0 0 auto; flex-direction: column; align-items: stretch; width: 100%;
    margin: 0; padding: 0 10px 12px; gap: 4px; border: 0;
  }
  body.admin-app .app-actions > #adminUser {
    display: block; overflow: hidden; padding: 10px 12px 6px; color: var(--ui-muted);
    border-top: 1px solid var(--ui-line); font-size: 12px; font-weight: 400;
    line-height: 1.35; text-overflow: ellipsis; white-space: nowrap;
  }
  body.admin-app .app-actions > #logout { display: flex; justify-content: flex-start; width: 100%; min-height: 42px; padding: 8px 12px; border: 0; background: transparent; }
  body.admin-app :is(.app-main, .settings-shell, .warehouse-shell, .service-shell) {
    width: calc(100% - 32px) !important; max-width: none !important;
    margin: 20px 16px 32px !important; min-width: 0;
  }
  body.admin-app .messenger-shell { height: calc(var(--admin-viewport-height, 100dvh) - 32px); margin-top: 16px !important; margin-bottom: 16px !important; }
  body.admin-app .warehouse-sale-bar { left: calc(var(--admin-sidebar-width) + 16px); right: 16px; width: auto; transition: left 180ms ease; }
  body.admin-app.admin-nav-collapsed .app-brand { justify-content: center; padding-inline: 8px; }
  body.admin-app.admin-nav-collapsed .app-brand span,
  body.admin-app.admin-nav-collapsed .app-tabs .nav-label,
  body.admin-app.admin-nav-collapsed .app-actions > #adminUser { display: none !important; }
  body.admin-app.admin-nav-collapsed .app-nav-toggle { top: 78px; right: 17px; }
  body.admin-app.admin-nav-collapsed .app-tabs { padding: 52px 8px 10px; }
  body.admin-app.admin-nav-collapsed .app-tabs a { justify-content: center; padding-inline: 0; }
  body.admin-app.admin-nav-collapsed .app-actions { padding-inline: 8px; }
  body.admin-app.admin-nav-collapsed .app-actions > #logout { justify-content: center; padding-inline: 0; }
}
@media screen and (max-width: 900px) {
  body.admin-app { padding-top: calc(62px + env(safe-area-inset-top)) !important; padding-left: 0 !important; }
  body.admin-app .app-topbar {
    position: fixed; inset: 0 0 auto; z-index: 150; display: flex; flex-direction: row;
    align-items: center; width: 100% !important; height: calc(62px + env(safe-area-inset-top));
    min-height: 0; padding: max(8px, env(safe-area-inset-top)) 12px 8px; gap: 10px;
    background: #fff; border: 0; border-bottom: 1px solid var(--ui-line);
  }
  body.admin-app .app-brand { padding: 0; }
  body.admin-app .app-brand span { display: inline !important; }
  body.admin-app :is(.app-tabs, .app-nav-toggle) { display: none !important; }
  body.admin-app .app-actions > #adminUser { display: none; }
  body.admin-app :is(.app-main, .settings-shell, .warehouse-shell, .service-shell) {
    width: calc(100% - 20px) !important; margin-left: 10px !important; margin-right: 10px !important;
    min-width: 0;
  }
  body.admin-app .messenger-shell { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
  body.admin-app :is(.app-title-row h1, .warehouse-title-row h1) { font-size: 24px; }
  body.admin-app :is(input:not([type=checkbox]):not([type=radio]), select, textarea) { font-size: 16px; }
}
@media screen and (prefers-reduced-motion: reduce) {
  body.admin-app :is(.app-tabs a, .mobile-tabbar a, [role=tab], .service-quick-filters button, .warehouse-summary-filter, .crm-status-quick button) { transition: none; transform: none !important; }
}
