/* Approved light desktop shell. Business tables and semantic colors retain their own styles. */
body.app-shell { grid-template-rows: auto minmax(0, 1fr) auto; }
body.app-shell .shell-toolbar {
  flex-wrap: wrap; padding: 0 12px 0 0; gap: 6px 10px;
  min-height: 44px; background: #fff; color: var(--pes-ink, #253246); border-bottom: 1px solid var(--pes-line, #dce3eb);
}
body.app-shell .shell-brand { min-height: 44px; background: var(--pes-sidebar, #eef1f5); color: var(--pes-ink, #253246); }
body.app-shell .shell-icon-button { color: var(--pes-muted, #5d697a); }
body.app-shell .shell-icon-button:hover { background: var(--pes-sidebar, #eef1f5); }
body.app-shell .shell-page-title { color: var(--pes-ink, #253246); border-left-color: var(--pes-line, #dce3eb); flex: 0 1 auto; max-width: 240px; }
body.app-shell .shell-toolbar-actions { flex-wrap: wrap; margin-left: auto; }
body.app-shell .shell-toolbar-actions:empty { display: none; }
body.app-shell .shell-toolbar .button { color: #344b55; border-color: #b9c7ce; background: #fff; }
body.app-shell .shell-toolbar .button:hover { background: var(--pes-hover, #edf2f8); }
body.app-shell .shell-toolbar .button-primary { color: #fff; background: var(--pes-primary, #3e5f8a); border-color: var(--pes-primary, #3e5f8a); }
body.app-shell .shell-toolbar .button-primary:hover { background: var(--pes-primary-hover, #304c70); }
body.app-shell .shell-toolbar .button-danger { color: #b42318; }
body.app-shell .shell-toolbar .button:disabled { color: #64747d; background: #e8edef; border-color: #cbd5da; }
body.app-shell .shell-tenant-switch { color: var(--pes-muted, #5d697a); font-size: 12px; overflow-wrap: anywhere; max-width: 180px; }
body.app-shell .shell-user-menu { color: var(--pes-ink, #253246); max-width: 160px; }
body.app-shell .shell-user-menu summary { overflow-wrap: anywhere; }
body.app-shell .app-sidebar { background: var(--pes-sidebar, #eef1f5); color: var(--pes-muted, #5d697a); border-right: 1px solid #d5dfe3; }
body.app-shell .shell-nav-group { border-bottom-color: #d4dfe3; }
body.app-shell .shell-nav-group p, body.app-shell .shell-group-toggle { color: var(--pes-muted, #5d697a); }
body.app-shell .shell-group-toggle:hover, body.app-shell .shell-nav-link:hover { background: #e0e9ec; color: var(--pes-ink, #253246); }
body.app-shell .shell-nav-link { border-left-width: 4px; }
body.app-shell .shell-nav-link.is-active { background: var(--pes-selected, #e5edf7); color: var(--pes-primary, #3e5f8a); border-left-color: var(--pes-primary, #3e5f8a); }
body.app-shell :is(.shell-toolbar,.app-sidebar,.app-statusbar) :focus-visible { outline: 2px solid var(--pes-primary, #3e5f8a); outline-offset: -2px; }
body.app-shell .app-statusbar { min-height: 32px; background: var(--pes-footer, #f3f5f7); color: var(--pes-muted, #5d697a); border-top-color: var(--pes-line, #dce3eb); }
body.app-shell .shell-status-brand, body.app-shell .shell-task-summary::before,
body.app-shell .shell-task-summary .summary-label, body.app-shell .shell-task-summary .summary-value,
body.app-shell .shell-page-size { color: var(--pes-muted, #5d697a); }
body.app-shell .app-statusbar .page-button, body.app-shell .shell-page-size select { background: #fff; border-color: #b9c7ce; color: #344b55; }
body.app-shell .app-statusbar .page-button.active { background: var(--pes-primary, #3e5f8a); border-color: var(--pes-primary, #3e5f8a); color: #fff; }
body.app-shell .app-statusbar .page-button.disabled { color: #64747d; background: #e8edef; }
.shell-context { display: flex; align-items: center; flex: 1 1 580px; flex-wrap: wrap; gap: 4px 16px; min-width: 0; padding: 5px 0; }
.shell-context-welcome, .shell-context-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; min-width: 0; }
.shell-context-meta { margin-left: auto; }
.shell-greeting-person { display: inline-flex; align-items: center; flex-wrap: wrap; color: var(--pes-ink, #253246); font-size: 13px; font-weight: 600; }
.shell-greeting-icon { flex-shrink: 0; font-size: 20px; line-height: 24px; margin-right: 6px; }
.shell-greeting-message, .shell-weather, .shell-greeting-date { color: var(--pes-muted, #5d697a); font-size: 12px; font-weight: 400; }
.shell-weather[hidden] { display: none; }
.shell-greeting-date { border-left: 1px solid var(--pes-line, #dce3eb); padding-left: 12px; white-space: nowrap; }
.shell-context-meta:not(:has(.shell-weather:not([hidden]))) .shell-greeting-date { border-left: 0; padding-left: 0; }
.shell-weather { overflow-wrap: anywhere; }
@media (max-width: 1350px) {
  body.app-shell .shell-toolbar { padding-bottom: 4px; }
  .shell-context { flex-basis: 520px; }
}
@media (max-width: 760px) {
  body.app-shell .shell-toolbar { padding: 4px 8px; gap: 4px 8px; }
  body.app-shell .shell-brand { flex: 0 0 40px; min-height: 36px; background: transparent; padding: 0; }
  body.app-shell .shell-page-title { flex: 1; max-width: none; }
  body.app-shell .shell-tenant-switch { max-width: 150px; }
  .shell-context { order: 5; flex-basis: 100%; padding: 4px 0; gap: 4px 12px; }
  .shell-context-meta { margin-left: 0; }
  body.app-shell .shell-toolbar-actions { order: 6; flex-basis: 100%; }
}
@media print { .shell-context { display: none; } }
.shell-weather::before { content: '☁'; margin-right: 6px; font-size: 16px; }
