/* Final layout layer: shared dashboard on phone, tablet and desktop. */
:root { --pulso-safe-top: env(safe-area-inset-top, 0px); --pulso-safe-bottom: env(safe-area-inset-bottom, 0px); }
.app-shell { min-height:100svh; }
.main-content, .content-wrap, .page-section, .page-section > * { min-width:0; }
.content-wrap { padding-bottom:calc(46px + var(--pulso-safe-bottom)); }
.sidebar { padding-top:var(--pulso-safe-top); padding-bottom:var(--pulso-safe-bottom); }
.main-nav { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.pulso-nav-shade { display:none; }
.pulso-nav-close { display:none; }
.pulso-install { margin:8px 12px; padding:10px; border:1px solid #475569; border-radius:10px; color:#e2e8f0; background:transparent; cursor:pointer; }
.pulso-install-dialog { width:min(440px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; border:1px solid #334155; border-radius:18px; padding:24px; color:#e2e8f0; background:#101c2d; line-height:1.6; }
.pulso-install-dialog::backdrop { background:rgba(2,6,23,.65); }
.pulso-install-dialog h2 { margin:0 0 12px; }
.pulso-install-dialog button { min-height:44px; padding:10px 20px; border:0; border-radius:10px; background:#f97316; color:#fff; cursor:pointer; }
.pulso-table-scroll { max-width:100%; overflow:auto; overscroll-behavior-x:contain; }
.pulso-table-scroll:focus-visible { outline:2px solid #f97316; outline-offset:2px; }
@media (display-mode:standalone) { .pulso-install { display:none; } .topbar { padding-top:var(--pulso-safe-top); height:calc(58px + var(--pulso-safe-top)); } }
@media (max-width:1100px) {
  body .main-content, body.analyst-mode .main-content, body:has(#section-analyst.active).analyst-sidebar-open .main-content { width:100%!important; margin-left:0!important; }
  body .sidebar { width:min(300px,calc(100vw - 56px))!important; z-index:1000!important; transform:translateX(-105%)!important; visibility:hidden; }
  body .sidebar.open, body.analyst-sidebar-open .sidebar, body:has(#section-analyst.active).analyst-sidebar-open .sidebar { display:flex!important; transform:translateX(0)!important; visibility:visible; }
  body.nav-compact .sidebar .nav-group-label, body.nav-compact .sidebar .nav-item > span:not(.nav-icon), body.nav-compact .sidebar .candidate-switcher, body.nav-compact .sidebar .brand > div:not(.brand-mark), body.nav-compact .sidebar .sidebar-logout span:not(.nav-icon) { display:block!important; }
  body.nav-compact .sidebar .nav-item { justify-content:flex-start; padding-inline:12px; }
  body.nav-compact .sidebar .brand { height:76px; flex-direction:row; justify-content:flex-start; padding:12px; }
  #navRailToggle { display:none; }
  .mobile-menu { display:grid!important; place-items:center; flex:0 0 44px; width:44px; height:44px; }
  .pulso-nav-close { display:block; position:absolute; right:8px; top:calc(8px + var(--pulso-safe-top)); width:44px; height:44px; z-index:2; border:0; border-radius:8px; color:#fff; background:#263449; font-size:24px; }
  .sidebar .brand { padding-right:56px!important; }
  body.pulso-drawer-open { overflow:hidden; }
  body.pulso-drawer-open .pulso-nav-shade { display:block; position:fixed; inset:0; z-index:999; border:0; background:rgba(2,6,23,.65); touch-action:none; }
  .topbar { gap:10px; }
  .breadcrumb { min-width:0; flex:1; }
  .breadcrumb strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .global-control-bar { flex-wrap:wrap; gap:10px; }
  .time-range-control { max-width:100%; min-width:0; overflow-x:auto; }
  .time-range-control button { flex-shrink:0; }
  .custom-range { max-width:100%; flex-wrap:wrap; }
  .analyst-composer { max-width:calc(100vw - 32px)!important; }
  .modal-backdrop { padding:16px; padding-top:calc(16px + var(--pulso-safe-top)); padding-bottom:calc(16px + var(--pulso-safe-bottom)); overflow-y:auto; }
  .modal-backdrop .modal { max-width:100%; max-height:calc(100dvh - 32px - var(--pulso-safe-top) - var(--pulso-safe-bottom)); overflow-y:auto; }
}
@media (pointer:coarse) {
  .nav-item, .button, .time-range-control button, .sidebar-logout, .pulso-install { min-height:44px; }
  input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea { font-size:16px!important; }
  input:not([type=checkbox]):not([type=radio]):not([type=range]), select { min-height:44px; }
}
@media (max-width:600px) {
  .content-wrap { padding-inline:max(12px,env(safe-area-inset-left)); }
  .topbar { padding-inline:8px; }
  .breadcrumb > span, .breadcrumb > b, .top-actions .last-update { display:none; }
  .operation-chip { max-width:112px; }
  .freshness-status { max-width:100%; }
  .page-section header { flex-wrap:wrap; }
  .page-section h1 { overflow-wrap:anywhere; }
  .analyst-page-bar { flex-wrap:wrap; gap:10px!important; }
  .analyst-context-bar { flex-wrap:wrap; gap:8px; }
  .analyst-workspace { width:calc(100% - 24px)!important; }
  .analyst-message, .analyst-message .message-body { min-width:0; overflow-wrap:anywhere; }
  .analyst-message pre { max-width:100%; overflow:auto; }
  .analyst-composer { width:100%!important; max-width:100%!important; }
  .modal-backdrop .form-grid, .modal-backdrop .form-row { grid-template-columns:minmax(0,1fr); }
  .modal-backdrop input, .modal-backdrop select, .modal-backdrop textarea { min-width:0; max-width:100%; }
  #manageUserDialog { max-height:calc(100dvh - 24px - var(--pulso-safe-top) - var(--pulso-safe-bottom)); }
}
@media (prefers-reduced-motion:reduce) {
  .sidebar, .pulso-nav-shade { transition:none!important; }
  .page-section *, .page-section *::before, .page-section *::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; }
}
/* Tablet drawers must not retain the desktop rail's reserved width. */
@media (max-width:1100px) {
  html body .app-shell.app-shell.app-shell > .main-content {
    width:100%!important; max-width:100%!important; margin-left:0!important;
  }
  html body .app-shell.app-shell.app-shell > .sidebar {
    width:min(300px,calc(100vw - 56px))!important;
    transform:translateX(-105%)!important;
    visibility:hidden!important; opacity:0!important; pointer-events:none!important;
  }
  html body .app-shell.app-shell.app-shell > .sidebar.open,
  html body.analyst-sidebar-open .app-shell.app-shell.app-shell > .sidebar {
    transform:translateX(0)!important;
    visibility:visible!important; opacity:1!important; pointer-events:auto!important;
  }
}
