/* Dadplus Visual Architecture v57 — generated foundation runtime.
   Source stylesheets remain individually versioned during the v57 migration.
   Ordering is intentional. Canonical v57 owners may replace older page layers.
   Do not edit this generated file directly. */

/* ===== v57 source: android-bottom-nav-v38.css ===== */
/* Dadplus Android v38 bottom navigation contract.
   Menu belongs to the top App Bar only; bottom navigation contains four core destinations. */

html[data-dadplus-app="android"] {
  --dp38-nav-height: 60px;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-inner {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  min-height: var(--dp38-nav-height) !important;
  padding: 2px 8px 2px !important;
}

html[data-dadplus-app="android"] :is(.dadplus-app-bottom-nav-link, .dadplus-app-bottom-nav-action) {
  min-height: 52px !important;
  gap: 2px !important;
  padding: 3px 2px 4px !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-icon {
  width: 26px !important;
  height: 26px !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-icon svg {
  width: 22px !important;
  height: 22px !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-link.is-active::after {
  inset-block-end: 1px !important;
}

/* Defensive compatibility: if an older cached bundle still renders the former menu action,
   keep it out of the visible bottom navigation. */
html[data-dadplus-app="android"] .dadplus-app-bottom-nav-action {
  display: none !important;
}

/* ===== v57 source: android-design-system-v39.css ===== */
/* Dadplus Android Design System v39
   Direction: Editorial Legal + Premium Utility.
   Color values are owned exclusively by android-color-system-v45.css.
   This file keeps geometry, spacing, typography and compatibility aliases only. */

html[data-dadplus-app="android"] {
  --dp39-brand: var(--color-primary);
  --dp39-brand-strong: var(--color-primary-strong);
  --dp39-brand-soft: var(--color-primary-soft);
  --dp39-accent: var(--color-accent);
  --dp39-accent-strong: var(--color-accent-strong);
  --dp39-accent-soft: var(--color-accent-soft);
  --dp39-success: var(--color-success);
  --dp39-success-soft: var(--color-success-soft);
  --dp39-danger: var(--color-danger);
  --dp39-danger-soft: var(--color-danger-soft);

  --dp39-bg: var(--color-bg-app);
  --dp39-surface: var(--color-surface-1);
  --dp39-surface-soft: var(--color-surface-2);
  --dp39-surface-warm: var(--color-surface-warm);
  --dp39-text: var(--color-text-primary);
  --dp39-muted: var(--color-text-secondary);
  --dp39-subtle: var(--color-text-muted);
  --dp39-line: var(--color-border-subtle);
  --dp39-line-strong: var(--color-border);

  --dp39-r-sm: 8px;
  --dp39-r-md: 12px;
  --dp39-r-lg: 16px;

  --dp39-s1: 4px;
  --dp39-s2: 8px;
  --dp39-s3: 12px;
  --dp39-s4: 16px;
  --dp39-s5: 20px;
  --dp39-s6: 24px;
  --dp39-s7: 32px;

  --dp39-hero-title: clamp(22px, calc(5.5vw * var(--dp-app-font-scale, 1)), 26px);
  --dp39-page-title: calc(20px * var(--dp-app-font-scale, 1));
  --dp39-section-title: calc(17.5px * var(--dp-app-font-scale, 1));
  --dp39-card-title: calc(15px * var(--dp-app-font-scale, 1));
  --dp39-body: calc(14.5px * var(--dp-app-font-scale, 1));
  --dp39-small: calc(12.5px * var(--dp-app-font-scale, 1));
  --dp39-caption: calc(11.5px * var(--dp-app-font-scale, 1));
  --dp39-icon-stroke: 1.75;
  --dp39-nav-height: 64px;
  --dp39-shadow-raised: var(--shadow-elevated);

  /* Compatibility bridge: v38 components, including Calendar, inherit the same semantic source. */
  --dp38-brand: var(--dp39-brand);
  --dp38-brand-strong: var(--dp39-brand-strong);
  --dp38-brand-soft: var(--dp39-brand-soft);
  --dp38-accent: var(--dp39-accent);
  --dp38-accent-strong: var(--dp39-accent-strong);
  --dp38-accent-soft: var(--dp39-accent-soft);
  --dp38-success: var(--dp39-success);
  --dp38-success-soft: var(--dp39-success-soft);
  --dp38-danger: var(--dp39-danger);
  --dp38-danger-soft: var(--dp39-danger-soft);
  --dp38-bg: var(--dp39-bg);
  --dp38-surface: var(--dp39-surface);
  --dp38-surface-soft: var(--dp39-surface-soft);
  --dp38-text: var(--dp39-text);
  --dp38-muted: var(--dp39-muted);
  --dp38-subtle: var(--dp39-subtle);
  --dp38-line: var(--dp39-line);
  --dp38-line-strong: var(--dp39-line-strong);
  --dp38-shadow: var(--dp39-shadow-raised);
  --dp38-r-sm: var(--dp39-r-sm);
  --dp38-r-md: var(--dp39-r-md);
  --dp38-r-lg: var(--dp39-r-lg);
  --dp38-r-xl: var(--dp39-r-lg);
  --dp38-s1: var(--dp39-s1);
  --dp38-s2: var(--dp39-s2);
  --dp38-s3: var(--dp39-s3);
  --dp38-s4: var(--dp39-s4);
  --dp38-s5: var(--dp39-s5);
  --dp38-s6: var(--dp39-s6);
  --dp38-s7: var(--dp39-s7);
  --dp38-title: var(--dp39-section-title);
  --dp38-body: var(--dp39-body);
  --dp38-small: var(--dp39-small);
  --dp38-caption: var(--dp39-caption);
  --dp38-icon-stroke: var(--dp39-icon-stroke);
  --dp38-nav-height: var(--dp39-nav-height);
}

html[data-dadplus-app="android"] body {
  background: var(--dp39-bg) !important;
  color: var(--dp39-text) !important;
}

html[data-dadplus-app="android"] :is(button, input, textarea, select, a) {
  -webkit-tap-highlight-color: transparent;
}

html[data-dadplus-app="android"] :is(button, a, input, textarea, select):focus-visible {
  outline: 2px solid color-mix(in srgb, var(--dp39-accent) 78%, var(--color-on-primary)) !important;
  outline-offset: 2px !important;
}

/* Home app bar is fused with the hero rather than presented as a second card/header. */
html[data-dadplus-app="android"][data-dadplus-app-route="home"] .dp14-app-bar {
  min-height: calc(52px + env(safe-area-inset-top)) !important;
  padding: env(safe-area-inset-top) 14px 0 !important;
  background: var(--dp39-brand-strong) !important;
  border: 0 !important;
  box-shadow: none !important;
}

html[data-dadplus-app="android"][data-dadplus-app-route="home"] .dp14-brand,
html[data-dadplus-app="android"][data-dadplus-app-route="home"] .dp14-brand > span:last-child {
  min-height: 52px !important;
}

html[data-dadplus-app="android"][data-dadplus-app-route="home"] .dp14-brand strong {
  font-size: calc(16.5px * var(--dp-app-font-scale, 1)) !important;
  font-weight: 790 !important;
  letter-spacing: -.01em !important;
}

html[data-dadplus-app="android"][data-dadplus-app-route="home"] .dp14-app-bar-actions :is(a, button) {
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  color: var(--color-on-primary) !important;
  border-radius: var(--dp39-r-sm) !important;
}

/* Internal routes keep a compact utility bar. */
html[data-dadplus-app="android"]:not([data-dadplus-app-route="home"]) .dp14-app-bar {
  min-height: calc(50px + env(safe-area-inset-top)) !important;
  padding: env(safe-area-inset-top) 14px 0 !important;
  background: var(--dp39-surface) !important;
  border-bottom: 1px solid color-mix(in srgb, var(--dp39-line) 75%, transparent) !important;
  box-shadow: none !important;
}

html[data-dadplus-app="android"]:not([data-dadplus-app-route="home"]) .dp14-brand {
  min-height: 50px !important;
}

html[data-dadplus-app="android"]:not([data-dadplus-app-route="home"]) .dp14-brand > span:last-child {
  display: none !important;
}

html[data-dadplus-app="android"]:not([data-dadplus-app-route="home"]) .dp14-brand-mark {
  width: 32px !important;
  height: 32px !important;
  display: grid !important;
  place-items: center !important;
  color: var(--dp39-accent-strong) !important;
  background: var(--dp39-accent-soft) !important;
  border: 0 !important;
  border-radius: var(--dp39-r-sm) !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: -.05em !important;
}

html[data-dadplus-app="android"]:not([data-dadplus-app-route="home"]) .dp14-app-bar-actions :is(a, button) {
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  min-height: 42px !important;
  color: var(--dp39-brand) !important;
  background: transparent !important;
  border-radius: var(--dp39-r-sm) !important;
}

html[data-dadplus-app="android"]:not([data-dadplus-app-route="home"]) .dp14-app-bar-actions :is(a, button):active {
  background: var(--dp39-brand-soft) !important;
}

/* Keep one outline-icon language across the shell. */
html[data-dadplus-app="android"] :is(
  .dp14-app-bar,
  .dp14-drawer,
  .dadplus-app-bottom-nav,
  .dp39-home
) svg,
html[data-dadplus-app="android"] :is(
  .dp14-app-bar,
  .dp14-drawer,
  .dadplus-app-bottom-nav,
  .dp39-home
) svg * {
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: var(--dp39-icon-stroke) !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vector-effect: non-scaling-stroke !important;
}

/* Four-option navigation architecture is preserved. */
html[data-dadplus-app="android"] .dadplus-app-bottom-nav {
  min-height: calc(var(--dp39-nav-height) + env(safe-area-inset-bottom)) !important;
  padding-bottom: env(safe-area-inset-bottom) !important;
  background: color-mix(in srgb, var(--dp39-surface) 98%, transparent) !important;
  border-top: 1px solid var(--dp39-line) !important;
  box-shadow: var(--shadow-subtle) !important;
  backdrop-filter: none !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-inner {
  min-height: var(--dp39-nav-height) !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  padding: 3px 8px 2px !important;
}

html[data-dadplus-app="android"] :is(.dadplus-app-bottom-nav-link, .dadplus-app-bottom-nav-action) {
  min-height: 58px !important;
  gap: 2px !important;
  padding: 5px 2px 4px !important;
  color: var(--dp39-muted) !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  font-size: var(--dp39-caption) !important;
  font-weight: 620 !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-icon {
  width: 34px !important;
  height: 30px !important;
  border-radius: var(--dp39-r-sm) !important;
  transition: background-color .14s ease, color .14s ease !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-link.is-active {
  color: var(--dp39-brand) !important;
  font-weight: 760 !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-link.is-active .dadplus-app-bottom-nav-icon {
  color: var(--dp39-accent-strong) !important;
  background: var(--dp39-accent-soft) !important;
}

html[data-dadplus-app="android"] .dadplus-app-bottom-nav-link.is-active::before,
html[data-dadplus-app="android"] .dadplus-app-bottom-nav-link.is-active::after {
  content: none !important;
  display: none !important;
}

/* Reduce the legacy card-like feel of the drawer without changing its navigation. */
html[data-dadplus-app="android"] .dp14-drawer {
  background: var(--dp39-surface) !important;
  border-radius: var(--dp39-r-lg) 0 0 var(--dp39-r-lg) !important;
  box-shadow: var(--shadow-modal) !important;
}

html[data-dadplus-app="android"] .dp14-drawer > header {
  background: var(--dp39-brand-strong) !important;
}

html[data-dadplus-app="android"] .dp14-drawer nav a {
  min-height: 50px !important;
  border-radius: var(--dp39-r-sm) !important;
}

html[data-dadplus-app="android"] .dp14-drawer nav a.is-active {
  color: var(--dp39-brand) !important;
  background: var(--dp39-accent-soft) !important;
}

html[data-dadplus-app="android"] .dp14-drawer > footer {
  color: var(--dp39-muted) !important;
  background: var(--dp39-surface-soft) !important;
  border-top-color: var(--dp39-line) !important;
}

@media (prefers-reduced-motion: reduce) {
  html[data-dadplus-app="android"] *,
  html[data-dadplus-app="android"] *::before,
  html[data-dadplus-app="android"] *::after {
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
  }
}
