/* viewport-fit=cover / iOS standalone: reserve space for the status bar and cutouts. */
:root {
  --app-safe-top: env(safe-area-inset-top, 0px);
  --app-safe-right: env(safe-area-inset-right, 0px);
  --app-safe-bottom: env(safe-area-inset-bottom, 0px);
  --app-safe-left: env(safe-area-inset-left, 0px);
}
header.app-safe-header {
  position: relative;
  box-sizing: border-box;
  height: calc(var(--app-header-height, 64px) + var(--app-safe-top));
  min-height: calc(var(--app-header-height, 64px) + var(--app-safe-top));
  padding-top: var(--app-safe-top);
  padding-left: max(16px, var(--app-safe-left));
  padding-right: max(16px, var(--app-safe-right));
  flex-shrink: 0;
}
header.app-safe-header::before, #app-sidebar::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: var(--app-safe-top);
  background: #0f293e; /* White status icons in black-translucent mode remain legible. */
  pointer-events: none;
}
header.app-topbar { position: sticky; top: 0; }
.app-topbar #command-palette-open { min-width: 0; }
.app-topbar #command-palette-open > span { flex-shrink: 0; }
.app-topbar #command-palette-open > span:nth-child(2) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-topbar .app-topbar-actions { flex-shrink: 0; }
#app-sidebar {
  box-sizing: border-box;
  height: 100dvh;
  padding-top: var(--app-safe-top);
  padding-left: var(--app-safe-left);
  padding-bottom: var(--app-safe-bottom);
}
/* A row that scrolls sideways fades out at the edge with more to see, instead of cutting a word off (core/tabsOverflow.js). */
[data-scroll-fade="end"] { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); }
[data-scroll-fade="start"] { -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to left, #000 calc(100% - 32px), transparent); }
[data-scroll-fade="both"] { -webkit-mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 32px), transparent); }
#app-sidebar > div { flex-shrink: 0; }
#app-sidebar > nav { min-height: 0; }
@media (min-width: 640px) {
  header.app-safe-header { padding-left: max(24px, var(--app-safe-left)); padding-right: max(24px, var(--app-safe-right)); }
}
@media (min-width: 1024px) {
  header.app-topbar { padding-left: max(32px, var(--app-safe-left)); padding-right: max(32px, var(--app-safe-right)); }
}
@media (max-width: 639px) {
  header.app-topbar { gap: 8px; }
  .app-topbar .app-topbar-actions { gap: 2px; }
  .app-topbar [data-nav-toggle], .app-topbar #notification-bell, .app-topbar [data-tour="profile"], .app-topbar [data-tour="help"] {
    display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; flex-shrink: 0; margin-left: 0;
  }
  .app-topbar #command-palette-open { min-height: 44px; padding: 8px; gap: 6px; }
  .app-topbar [data-sync-compact] button { min-width: 44px; min-height: 44px; padding-left: 10px; padding-right: 10px; }
  .app-topbar #notification-panel {
    position: fixed;
    top: calc(64px + var(--app-safe-top) + 4px);
    right: max(8px, var(--app-safe-right));
    left: max(8px, var(--app-safe-left));
    width: auto; max-width: none;
    max-height: calc(100dvh - 80px - var(--app-safe-top) - var(--app-safe-bottom));
    overflow-y: auto;
  }
}
