/* =========================================================
   PayKita · Digikita shell v2
   Final override for dashboard typography + desktop/mobile sidebar.
   Loaded after legacy styles so the app shell follows Digikita's UI.
   ========================================================= */

:root {
  --pk2-primary: #0D4694;
  --pk2-primary-dark: #0A3A7D;
  --pk2-active: #E6ECFB;
  --pk2-ink: #101828;
  --pk2-text: #49566D;
  --pk2-muted: #667085;
  --pk2-subtle: #98A2B3;
  --pk2-border: #E4E7EC;
  --pk2-border-soft: #EEF0F4;
  --pk2-bg: #F7F9FC;
  --pk2-sidebar: 248px;
}

/* Typography: use Plus Jakarta Sans for application UI.
   Technical values/code can remain monospace. */
html body,
html body button,
html body input,
html body select,
html body textarea,
html body .app-shell > main.content,
html body .app-shell > main.content h1,
html body .app-shell > main.content h2,
html body .app-shell > main.content h3,
html body .app-shell > main.content h4,
html body .app-shell > main.content h5,
html body .app-shell > main.content h6,
html body .app-shell > main.content p,
html body .app-shell > main.content label,
html body .app-shell > main.content button,
html body .app-shell > main.content .btn,
html body .app-shell > main.content .badge,
html body .app-shell > main.content .status-chip,
html body .app-shell > main.content th,
html body .app-shell > main.content td,
html body .app-shell > main.content .dbs-page,
html body .app-shell > main.content .dbs-chip,
html body .app-shell > main.content .dbs-trend,
html body .app-shell > main.content .dbs-export summary,
html body .app-shell > main.content .dbs-chart-legend,
html body .app-shell > main.content .dbs-day small,
html body .app-shell > main.content .dbs-filters a,
html body .app-shell > main.content .dbs-table th,
html body .app-shell > main.content .dbs-order-link,
html body .app-shell > main.content .dbs-pagination,
html body #paykita-sidebar,
html body #paykita-sidebar a,
html body #paykita-sidebar button,
html body #paykita-sidebar strong,
html body #paykita-sidebar small,
html body #paykita-sidebar .nav-label,
html body .paykita-mobile-header,
html body .paykita-mobile-header * {
  font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system,
    BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}

/* Only actual technical/code content stays mono. */
html body .app-shell > main.content pre,
html body .app-shell > main.content pre code,
html body .app-shell > main.content code,
html body .app-shell > main.content .mono,
html body .app-shell > main.content .endpoint-path,
html body .app-shell > main.content .field-table code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace !important;
}

/* App shell */
html body .app-shell,
html body .app-shell.sidebar-collapsed {
  grid-template-columns: var(--pk2-sidebar) minmax(0, 1fr) !important;
  background: var(--pk2-bg) !important;
}

/* Sidebar mirrors Digikita: white rail, subtle border, no dark logo block. */
html body .app-shell #paykita-sidebar.retro-sidebar {
  position: sticky !important;
  inset: auto !important;
  top: 0 !important;
  width: var(--pk2-sidebar) !important;
  min-width: var(--pk2-sidebar) !important;
  max-width: var(--pk2-sidebar) !important;
  height: 100vh !important;
  min-height: 100vh !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  color: var(--pk2-text) !important;
  border: 0 !important;
  border-right: 1px solid #D7DCE5 !important;
  box-shadow: none !important;
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
}

html body .app-shell #paykita-sidebar .retro-sidebar-top {
  position: relative !important;
  flex: 0 0 94px !important;
  min-height: 94px !important;
  height: 94px !important;
  padding: 17px 22px 13px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  background: #FFFFFF !important;
  border: 0 !important;
  border-bottom: 1px solid var(--pk2-border-soft) !important;
}

html body #paykita-sidebar .sidebar-brand,
html body #paykita-sidebar .sidebar-brand.brand-has-logo {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

html body #paykita-sidebar .sidebar-brand-copy {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow: visible !important;
}

html body #paykita-sidebar .sidebar-logo-wordmark {
  display: block !important;
  width: 126px !important;
  max-width: 126px !important;
  height: auto !important;
  max-height: 34px !important;
  object-fit: contain !important;
  object-position: left center !important;
  filter: none !important;
}

html body #paykita-sidebar .sidebar-brand-copy small {
  display: block !important;
  margin: 4px 0 0 1px !important;
  color: var(--pk2-subtle) !important;
  font-size: 9px !important;
  line-height: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .11em !important;
  text-transform: uppercase !important;
  opacity: 1 !important;
}

/* Old section labels are hidden so spacing/layout matches Digikita. */
html body #paykita-sidebar > .retro-sidebar-label:not(.footer-label) {
  display: none !important;
}

html body #paykita-sidebar .retro-nav {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  display: grid !important;
  align-content: start !important;
  gap: 3px !important;
  margin: 0 !important;
  padding: 14px 8px !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
}

html body #paykita-sidebar .retro-nav a,
html body #paykita-sidebar .retro-logout {
  position: relative !important;
  width: 100% !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 14px 0 18px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  border: 0 !important;
  border-radius: 0 9px 9px 0 !important;
  background: transparent !important;
  color: var(--pk2-text) !important;
  box-shadow: none !important;
  text-decoration: none !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  transform: none !important;
  transition: background-color .15s ease, color .15s ease !important;
}

html body #paykita-sidebar .retro-nav a::before {
  content: "" !important;
  display: none !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  bottom: 0 !important;
  width: 3px !important;
  border-radius: 0 !important;
  background: #0B3F93 !important;
}

html body #paykita-sidebar .retro-nav a:hover,
html body #paykita-sidebar .retro-logout:hover {
  background: #F5F7FB !important;
  color: var(--pk2-primary) !important;
  border: 0 !important;
  transform: none !important;
}

html body #paykita-sidebar .retro-nav a.active {
  background: var(--pk2-active) !important;
  color: #0B2F76 !important;
  border: 0 !important;
  box-shadow: none !important;
  font-weight: 600 !important;
}

html body #paykita-sidebar .retro-nav a.active::before {
  display: block !important;
}

html body #paykita-sidebar .retro-nav .nav-label,
html body #paykita-sidebar .retro-logout .nav-label {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  color: inherit !important;
  font-size: 13px !important;
  font-weight: inherit !important;
  line-height: 1.3 !important;
  letter-spacing: 0 !important;
}

html body #paykita-sidebar .retro-nav .nav-icon,
html body #paykita-sidebar .retro-logout .nav-icon {
  flex: 0 0 19px !important;
  width: 19px !important;
  min-width: 19px !important;
  height: 19px !important;
  display: grid !important;
  place-items: center !important;
  color: #9BBBEA !important;
  opacity: 1 !important;
}

html body #paykita-sidebar .retro-nav a:hover .nav-icon,
html body #paykita-sidebar .retro-nav a.active .nav-icon,
html body #paykita-sidebar .retro-logout:hover .nav-icon {
  color: var(--pk2-primary) !important;
}

html body #paykita-sidebar .nav-icon svg {
  display: block !important;
  width: 19px !important;
  height: 19px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.85 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

html body #paykita-sidebar .retro-sidebar-footer {
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 14px 16px 16px !important;
  background: #FFFFFF !important;
  border: 0 !important;
  border-top: 1px solid var(--pk2-border-soft) !important;
}

html body #paykita-sidebar .retro-sidebar-footer::before {
  display: none !important;
  content: none !important;
}

html body #paykita-sidebar .retro-sidebar-footer .footer-label {
  display: none !important;
}

html body #paykita-sidebar .retro-sidebar-footer .user-mini {
  width: 100% !important;
  min-width: 0 !important;
  padding: 0 0 11px !important;
  margin: 0 !important;
  display: block !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html body #paykita-sidebar .retro-sidebar-footer .user-mini strong {
  display: block !important;
  color: var(--pk2-ink) !important;
  font-size: 12px !important;
  line-height: 18px !important;
  font-weight: 650 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

html body #paykita-sidebar .retro-sidebar-footer .user-mini small {
  display: block !important;
  margin-top: 2px !important;
  color: var(--pk2-muted) !important;
  font-size: 10px !important;
  line-height: 16px !important;
  font-weight: 500 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

html body #paykita-sidebar .retro-sidebar-footer form {
  margin: 0 !important;
  width: 100% !important;
}

html body #paykita-sidebar .retro-logout {
  min-height: 40px !important;
  padding-left: 10px !important;
  border-radius: 9px !important;
  color: #475467 !important;
}

/* Dashboard visual typography/spacing clean-up. */
html body .app-shell > main.content {
  background: var(--pk2-bg) !important;
}

html body .app-shell > main.content .dbs-page {
  max-width: 1280px !important;
  color: var(--pk2-ink) !important;
}

html body .app-shell > main.content .dbs-head h1 {
  font-size: 30px !important;
  line-height: 38px !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}

html body .app-shell > main.content .dbs-head p {
  color: var(--pk2-muted) !important;
  font-size: 14px !important;
}

html body .app-shell > main.content .dbs-chip,
html body .app-shell > main.content .dbs-trend,
html body .app-shell > main.content .dbs-export summary,
html body .app-shell > main.content .dbs-chart-legend,
html body .app-shell > main.content .dbs-day small,
html body .app-shell > main.content .dbs-filters a,
html body .app-shell > main.content .dbs-table th,
html body .app-shell > main.content .dbs-order-link,
html body .app-shell > main.content .dbs-pagination {
  letter-spacing: 0 !important;
}

/* Mobile header is intentionally a Digikita-style white bar. */
.paykita-mobile-header {
  display: none;
}

.sidebar-mobile-close {
  display: none;
}

@media (max-width: 980px) and (min-width: 768px) {
  :root { --pk2-sidebar: 84px; }

  html body .app-shell,
  html body .app-shell.sidebar-collapsed {
    grid-template-columns: 84px minmax(0, 1fr) !important;
  }

  html body .app-shell #paykita-sidebar.retro-sidebar {
    width: 84px !important;
    min-width: 84px !important;
    max-width: 84px !important;
  }

  html body #paykita-sidebar .retro-sidebar-top {
    padding: 20px 18px !important;
    justify-content: center !important;
  }

  html body #paykita-sidebar .sidebar-logo-wordmark {
    width: 48px !important;
    max-width: 48px !important;
    object-fit: cover !important;
    object-position: left center !important;
  }

  html body #paykita-sidebar .sidebar-brand-copy small,
  html body #paykita-sidebar .retro-nav .nav-label,
  html body #paykita-sidebar .retro-sidebar-footer {
    display: none !important;
  }

  html body #paykita-sidebar .retro-nav {
    padding-inline: 10px !important;
  }

  html body #paykita-sidebar .retro-nav a {
    padding: 0 !important;
    justify-content: center !important;
    border-radius: 10px !important;
  }

  html body #paykita-sidebar .retro-nav a::before {
    display: none !important;
  }
}

@media (max-width: 767px) {
  html,
  body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  html body .app-shell,
  html body .app-shell.sidebar-collapsed {
    display: block !important;
    width: 100% !important;
    grid-template-columns: none !important;
  }

  .paykita-mobile-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1250 !important;
    width: 100% !important;
    height: 64px !important;
    padding: 0 14px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    background: rgba(255,255,255,.97) !important;
    backdrop-filter: blur(10px) !important;
    border-bottom: 1px solid var(--pk2-border) !important;
  }

  .paykita-mobile-header-brand {
    min-width: 0 !important;
    flex: 1 1 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  .paykita-mobile-header-brand img {
    display: block !important;
    width: 104px !important;
    max-width: 104px !important;
    height: auto !important;
  }

  .paykita-mobile-profile {
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
    border-radius: 50% !important;
    display: grid !important;
    place-items: center !important;
    background: var(--pk2-primary) !important;
    color: #fff !important;
    text-decoration: none !important;
    font-size: 11px !important;
    font-weight: 700 !important;
  }

  html body .mobile-sidebar-burger {
    position: static !important;
    inset: auto !important;
    z-index: auto !important;
    display: grid !important;
    place-items: center !important;
    flex: 0 0 40px !important;
    width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: #344054 !important;
    box-shadow: none !important;
    font-size: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  html body .mobile-sidebar-burger::before {
    content: none !important;
    display: none !important;
  }

  html body .mobile-sidebar-burger svg {
    width: 22px !important;
    height: 22px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
  }

  html body .app-shell > main.content,
  html body .app-shell.sidebar-collapsed > main.content {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    padding-top: 20px !important;
  }

  html body .app-shell #paykita-sidebar.retro-sidebar,
  html body:not(.paykita-mobile-sidebar-open) .app-shell #paykita-sidebar.retro-sidebar,
  html body.paykita-mobile-sidebar-open .app-shell #paykita-sidebar.retro-sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    z-index: 1400 !important;
    width: 248px !important;
    min-width: 248px !important;
    max-width: min(248px, 86vw) !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    overflow: hidden !important;
    background: #fff !important;
    border-right: 1px solid #D7DCE5 !important;
    box-shadow: 18px 0 40px rgba(16,24,40,.12) !important;
    transition: transform .22s ease !important;
  }

  html body:not(.paykita-mobile-sidebar-open) .app-shell #paykita-sidebar.retro-sidebar {
    transform: translateX(-102%) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: none !important;
  }

  html body.paykita-mobile-sidebar-open .app-shell #paykita-sidebar.retro-sidebar {
    transform: translateX(0) !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  html body #paykita-sidebar .retro-sidebar-top {
    padding: 17px 14px 13px 20px !important;
  }

  html body #paykita-sidebar .sidebar-logo-wordmark {
    width: 122px !important;
    max-width: 122px !important;
  }

  .sidebar-mobile-close {
    position: absolute !important;
    top: 26px !important;
    right: 12px !important;
    width: 36px !important;
    height: 36px !important;
    display: grid !important;
    place-items: center !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 9px !important;
    background: transparent !important;
    color: #475467 !important;
    cursor: pointer !important;
  }

  .sidebar-mobile-close:hover {
    background: #F2F4F7 !important;
  }

  .sidebar-mobile-close svg {
    width: 20px !important;
    height: 20px !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round !important;
  }

  html body .mobile-sidebar-clickout {
    position: fixed !important;
    inset: 0 !important;
    z-index: 1350 !important;
    display: block !important;
    width: 100vw !important;
    height: 100dvh !important;
    background: rgba(16,24,40,.34) !important;
    backdrop-filter: blur(1px) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transition: opacity .2s ease, visibility .2s ease !important;
  }

  html body.paykita-mobile-sidebar-open .mobile-sidebar-clickout {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  html body.paykita-mobile-sidebar-open {
    overflow: hidden !important;
  }

  /* Unlike the old build, hamburger lives in the header; don't hide it globally. */
  html body.paykita-mobile-sidebar-open .mobile-sidebar-burger {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
  }

  html body #paykita-sidebar .retro-nav {
    padding: 14px 8px !important;
    gap: 3px !important;
  }

  html body #paykita-sidebar .retro-nav a {
    min-height: 44px !important;
    padding: 0 14px 0 18px !important;
    border-radius: 0 9px 9px 0 !important;
  }

  html body #paykita-sidebar .retro-sidebar-footer {
    display: block !important;
    padding: 14px 16px 16px !important;
  }
}

/* =========================================================
   Mobile tap/focus cleanup
   Prevent Chromium/WebKit from painting the rectangular blue tap
   highlight around the centered logo and circular profile avatar.
   Keyboard focus remains accessible via :focus-visible.
   ========================================================= */
@media (max-width: 767px) {
  .paykita-mobile-header a,
  .paykita-mobile-header button,
  .paykita-mobile-header-brand,
  .paykita-mobile-profile,
  .mobile-sidebar-burger {
    -webkit-tap-highlight-color: transparent !important;
  }

  .paykita-mobile-header-brand,
  .paykita-mobile-header-brand:hover,
  .paykita-mobile-header-brand:active,
  .paykita-mobile-header-brand:focus {
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .paykita-mobile-profile:active,
  .paykita-mobile-profile:focus {
    background: var(--pk2-primary) !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .mobile-sidebar-burger:active,
  .mobile-sidebar-burger:focus {
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .paykita-mobile-header-brand:focus-visible,
  .paykita-mobile-profile:focus-visible,
  .mobile-sidebar-burger:focus-visible {
    outline: 2px solid rgba(13, 70, 148, .38) !important;
    outline-offset: 2px !important;
  }
}
