html, body, body.vesta-app-body { height: 100%; }
body.vesta-app-body { overflow: hidden; }
.vesta-app-shell { display: block; height: 100vh; height: 100dvh; overflow: hidden; position: relative; }
.vesta-app-shell__main { min-width: 0; height: 100vh; height: 100dvh; margin-left: var(--vesta-sidebar-w); display: flex; flex-direction: column; overflow: hidden; transition: margin-left .22s ease; }
.vesta-app-shell.is-sidebar-collapsed .vesta-app-shell__main { margin-left: var(--vesta-sidebar-w-collapsed); }
.vesta-page-shell { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: calc(var(--vesta-page-padding) + 4px) var(--vesta-page-padding) var(--vesta-page-padding); }
.vesta-page-header { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:24px; }
.vesta-page-header__content { display:flex; gap:16px; align-items:flex-start; }
.vesta-page-header__icon { width:48px; height:48px; border-radius:14px; background:var(--vesta-surface); border:1px solid var(--vesta-border); display:grid; place-items:center; }
.vesta-page-header h1 { margin:0 0 6px; font-size:22px; line-height:1.25; }
.vesta-page-header p { margin:0; color:var(--vesta-text-2); font-size:14px; }
.vesta-section { margin-bottom:24px; }
.vesta-section__title-row { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.vesta-section__title-row h3 { margin:0; font-size:18px; }
.vesta-dashboard-grid { display:grid; grid-template-columns: minmax(0, 1.75fr) minmax(320px, 1fr); gap:24px; }
.vesta-dashboard-grid__main { display:grid; gap:16px; }
.vesta-utility-rail { display:grid; gap:16px; align-content:start; }
.vesta-dashboard-banner { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 24px; background:linear-gradient(135deg,#ffffff 0%,#faf7f1 100%); border:1px solid var(--vesta-border); border-radius:var(--vesta-radius-lg); margin-bottom:24px; }
.vesta-dashboard-banner h2 { margin:4px 0 8px; font-size:24px; }
.vesta-dashboard-banner p, .vesta-eyebrow { margin:0; color:var(--vesta-text-2); }
.vesta-eyebrow { display:inline-block; font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; color:var(--vesta-accent); }
@media (max-width: 1023px) {
  body.vesta-app-body { overflow: hidden; }
  .vesta-app-shell__main { margin-left: 0; }
  .vesta-page-shell { padding: 16px; }
  .vesta-dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .vesta-page-shell { padding: 12px; }
  .vesta-page-header { flex-direction: column; align-items: stretch; gap: 12px; margin-bottom: 16px; }
  .vesta-page-header__content { gap: 12px; }
  .vesta-page-header__icon { width: 42px; height: 42px; border-radius: 12px; }
  .vesta-page-header h1 { font-size: 20px; }
  .vesta-dashboard-banner { flex-direction: column; align-items: stretch; padding: 18px; margin-bottom: 16px; }
  .vesta-dashboard-banner h2 { font-size: 20px; }
}


.vesta-mobile-quick-actions { display:none; }

@media (max-width: 767px) {
  .vesta-mobile-quick-actions { display:block; margin-bottom:16px; }
  .vesta-utility-rail .vesta-utility-rail__quick-actions { display:none; }
  .vesta-dashboard-grid__main { order: 2; }
  .vesta-utility-rail { order: 3; }
}

@media (max-width: 767px) {
  :root {
    --vesta-mobile-safe-top: max(18px, env(safe-area-inset-top, 0px));
    --vesta-topbar-mobile-row-h: 60px;
    --vesta-topbar-mobile-extra: 12px;
    --vesta-topbar-mobile-total: calc(var(--vesta-mobile-safe-top) + var(--vesta-topbar-mobile-row-h) + var(--vesta-topbar-mobile-extra));
  }
  .vesta-app-shell, .vesta-app-shell__main {
    height: 100vh;
    height: 100dvh;
  }
  .vesta-app-shell__main {
    padding-top: var(--vesta-topbar-mobile-total);
  }
  .vesta-page-shell {
    padding-top: 12px;
  }
}
