.progress-timeline { position: relative; padding-left: 24px; }
.progress-timeline::before { content: ''; position: absolute; left: 8px; top: 8px; bottom: 8px; width: 2px; background: #f97316; opacity: 0.3; }
.timeline-step { position: relative; margin-bottom: 20px; }
.timeline-step .dot { position: absolute; left: -20px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: #f97316; border: 2px solid #ffffff; box-shadow: 0 0 0 2px rgba(249,115,22,0.3); }
body.dark-theme .timeline-step .dot { border-color: #0f172a; }
body:not(.dark-theme) .progress-timeline::before { background: #fdba74; opacity: 0.55; }
body:not(.dark-theme) .timeline-step .text-xs { color: #334155; }
body.dark-theme .timeline-step .text-xs { color: #e2e8f0; }
.timeline-step.completed .dot { background: #22c55e; box-shadow: 0 0 0 2px rgba(34,197,94,0.3); }
.loading-shimmer { background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%); background-size: 200% 100%; animation: shimmer 1.5s infinite; }
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes gentleCelebrate { 0% { transform: scale(1); } 50% { transform: scale(1.05); background-color: rgba(34,197,94,0.3); } 100% { transform: scale(1); } }
.celebrate-pulse { animation: gentleCelebrate 0.6s ease-in-out 2; }
.eta-pulse { animation: pulse 1s infinite; }
@keyframes fadeInUp { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.fade-up { animation: fadeInUp 0.3s ease forwards; }
/* Depth + hover layering: stabilize.css (theme-specific); keep transition only here */
.hover-glow {
  transition: box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.3s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.tech-avatar { width: 36px; height: 36px; border-radius: 50%; background: #f97316; display: flex; align-items: center; justify-content: center; }
.ai-thinking-pulse { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.2); backdrop-filter: blur(2px); z-index: 150; display: flex; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.2s; pointer-events: none; }
.ai-thinking-pulse.active { opacity: 1; pointer-events: none; }
.thinking-glow { width: 60px; height: 60px; border-radius: 50%; background: #f97316; box-shadow: 0 0 20px rgba(249,115,22,0.6); animation: pulse 0.8s infinite; }
.transition-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.4); backdrop-filter: blur(6px); z-index: 130; opacity: 0; pointer-events: none; transition: opacity 0.25s ease; }
.transition-overlay.active { opacity: 1; pointer-events: none; }
.reassurance-badge { animation: soft-breathing 1.5s infinite alternate; }
@keyframes soft-breathing { 0% { opacity: 0.4; } 100% { opacity: 0.8; } }
.info-footer-link { cursor: pointer; transition: opacity 0.2s; }
.info-footer-link:hover { opacity: 0.7; }
.home-info-footer { flex-wrap: wrap; justify-content: center; row-gap: 0.625rem; column-gap: 1rem; padding-bottom: 0.25rem; }
.home-info-footer .info-footer-link {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.375rem 0.5rem;
    -webkit-tap-highlight-color: transparent;
}
.home-info-footer .continuity-footer-entry { font-weight: 800; color: #ea580c; }
body.dark-theme .home-info-footer .continuity-footer-entry { color: #fb923c; }
.home-trust-footer { margin-top: 0; }
@media (max-width: 639px) {
  #contentArea.content-home-active .home-trust-footer {
    margin-bottom: max(6.75rem, calc(5.75rem + env(safe-area-inset-bottom, 0px)));
  }
}
.home-trust-footer a { -webkit-tap-highlight-color: transparent; }
.home-info-footer a.info-footer-link { text-decoration: none; color: inherit; }
.home-info-footer a.info-footer-link:hover { color: #ea580c; }
body.dark-theme .home-info-footer a.info-footer-link:hover { color: #fb923c; }
#app { height: 100dvh; max-height: 100dvh; }
:root {
    --c8-mobile-dock-band: max(10.75rem, calc(9.35rem + env(safe-area-inset-bottom, 0px)));
    --c8-mobile-dock-band-transcript: max(13.25rem, calc(12.1rem + env(safe-area-inset-bottom, 0px)));
    --c8-mobile-fab-band: max(5.25rem, calc(4.35rem + env(safe-area-inset-bottom, 0px)));
    --c8-mobile-fab-band-transcript: max(8.5rem, calc(7.35rem + env(safe-area-inset-bottom, 0px)));
    --c8-problem-fab-lift-bottom: max(5.75rem, calc(5rem + env(safe-area-inset-bottom, 0px)));
    --c8-dock-action-clearance: max(6.5rem, calc(5.35rem + env(safe-area-inset-bottom, 0px)));
}
#contentArea.success-view-dock-clearance {
    padding-bottom: var(--c8-dock-action-clearance);
    scroll-padding-bottom: var(--c8-dock-action-clearance);
}
@media (min-width: 640px) {
  #contentArea.problem-step-active,
  #contentArea.booking-step-action-clearance,
  #contentArea.success-view-dock-clearance {
    padding-bottom: var(--c8-dock-action-clearance);
    scroll-padding-bottom: var(--c8-dock-action-clearance);
  }
}
@supports (padding: max(0px)) {
    .dock-safe { padding-bottom: env(safe-area-inset-bottom, 0px); }
}
@media (max-width: 639px) {
  /* Reserve bottom space only while full dock is present — not when retreated off-screen */
  #contentArea.content-footer-clearance--dock-present {
    padding-bottom: max(8rem, calc(6.75rem + env(safe-area-inset-bottom, 0px)));
  }
  #contentArea.content-footer-clearance--dock-present.content-footer-clearance--transcript-visible {
    padding-bottom: var(--c8-mobile-dock-band-transcript);
  }
  /* C8 final — home only: full dock + welcome bubble clearance when expanded */
  #contentArea.content-home-active.content-footer-clearance--dock-present {
    padding-bottom: var(--c8-mobile-dock-band-transcript);
    scroll-padding-bottom: var(--c8-mobile-dock-band-transcript);
  }
  #contentArea.content-home-active.content-footer-clearance--dock-present.content-footer-clearance--transcript-visible {
    padding-bottom: var(--c8-mobile-dock-band-transcript);
    scroll-padding-bottom: var(--c8-mobile-dock-band-transcript);
  }
  /* C8 P1 — problem step: scroll band + anchored Next; FAB lifted above Next via sibling rule */
  #contentArea.problem-step-active {
    padding-bottom: max(11.5rem, calc(var(--c8-problem-fab-lift-bottom) + 6.75rem + env(safe-area-inset-bottom, 0px)));
    scroll-padding-bottom: max(11.5rem, calc(var(--c8-problem-fab-lift-bottom) + 6.75rem + env(safe-area-inset-bottom, 0px)));
  }
  #contentArea.problem-step-active.content-footer-clearance--transcript-visible {
    padding-bottom: var(--c8-mobile-fab-band-transcript);
  }
  #contentArea.content-footer-clearance--dock-fab {
    padding-bottom: var(--c8-mobile-fab-band);
    scroll-padding-bottom: var(--c8-mobile-fab-band);
  }
  /* Home trust footer + link rows need extra scroll band above FAB dock */
  #contentArea.content-home-active.content-footer-clearance--dock-fab {
    padding-bottom: max(9.75rem, calc(8.5rem + env(safe-area-inset-bottom, 0px)));
    scroll-padding-bottom: max(9.75rem, calc(8.5rem + env(safe-area-inset-bottom, 0px)));
  }
  #contentArea.content-footer-clearance--dock-fab.content-footer-clearance--transcript-visible {
    padding-bottom: var(--c8-mobile-fab-band-transcript);
    scroll-padding-bottom: var(--c8-mobile-fab-band-transcript);
  }
  #contentArea.problem-step-active .problem-next-dock--anchored {
    padding-bottom: max(0.35rem, env(safe-area-inset-bottom, 0px));
    margin-bottom: max(4.75rem, calc(var(--c8-problem-fab-lift-bottom) + 0.35rem));
  }
  #contentArea.booking-step-action-clearance {
    padding-bottom: var(--c8-mobile-dock-band-transcript);
    scroll-padding-bottom: var(--c8-mobile-dock-band-transcript);
  }
  #contentArea.success-view-dock-clearance {
    padding-bottom: var(--c8-mobile-dock-band);
    scroll-padding-bottom: var(--c8-mobile-dock-band);
  }
  #contentArea.success-view-dock-clearance.content-footer-clearance--transcript-visible {
    padding-bottom: var(--c8-mobile-dock-band-transcript);
    scroll-padding-bottom: var(--c8-mobile-dock-band-transcript);
  }
  #locConfirmPanel,
  #phoneConfWrap,
  #problemContinueBtn,
  #phoneContinueBtn,
  .problem-next-dock--anchored {
    position: relative;
    z-index: 62;
    pointer-events: auto;
  }
  /* Legacy sticky dock (retired on problem step; kept for safety if old markup cached) */
  #contentArea:not(.problem-step-active).content-footer-clearance--dock-present .problem-next-dock.sticky[class*="bottom-0"] {
    bottom: var(--c8-mobile-dock-band) !important;
  }
  #contentArea:not(.problem-step-active).content-footer-clearance--dock-present.content-footer-clearance--transcript-visible .problem-next-dock.sticky[class*="bottom-0"] {
    bottom: var(--c8-mobile-dock-band-transcript) !important;
  }
  .dock-safe {
    transition:
      transform 0.52s cubic-bezier(0.22, 1, 0.36, 1),
      opacity 0.42s cubic-bezier(0.22, 1, 0.36, 1),
      visibility 0.42s cubic-bezier(0.22, 1, 0.36, 1),
      bottom 0.42s cubic-bezier(0.22, 1, 0.36, 1);
  }
  .dock-safe.dock-ambient--expanded #dock {
    animation: dock-cinematic-float 5.75s ease-in-out infinite;
  }
  .dock-safe.dock-ambient--expanded {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: none;
  }
  .dock-safe.dock-ambient--expanded #dock {
    pointer-events: auto;
  }
  .dock-safe.dock-ambient--retracted {
    transform: translateY(calc(115% + env(safe-area-inset-bottom, 0px)));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .dock-safe.dock-ambient--retracted #dock {
    pointer-events: none;
  }
  /* C8 P1 — floating mic FAB (idle); full dock on expand */
  .dock-safe.dock-ambient--fab {
    transform: translateY(0);
    opacity: 1;
    visibility: visible;
    pointer-events: none;
    bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    padding-left: 0;
    padding-right: 0;
  }
  .dock-safe.dock-ambient--fab #dock {
    pointer-events: auto;
    width: auto;
    height: auto;
    max-width: none;
    min-height: 0;
    border: none;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    padding: 0;
    justify-content: center;
    gap: 0;
  }
  .dock-safe.dock-ambient--fab .dock-left-cluster,
  .dock-safe.dock-ambient--fab .dock-right-cluster {
    display: none;
    pointer-events: none;
  }
  .dock-safe.dock-ambient--fab #dock > .relative {
    transform: none;
    min-height: 0;
    min-width: 0;
  }
  .dock-safe.dock-ambient--fab .mic-orb-stack {
    filter: drop-shadow(0 8px 22px rgba(249, 115, 22, 0.38));
  }
  /* C8 Option C — problem identifier only: FAB above anchored Next Step band */
  #contentArea.problem-step-active ~ .dock-safe.dock-ambient--fab {
    bottom: var(--c8-problem-fab-lift-bottom) !important;
  }
}
@media (max-width: 430px) {
  :root {
    --c8-mobile-dock-band: max(10.6rem, calc(9.45rem + env(safe-area-inset-bottom, 0px)));
    --c8-mobile-dock-band-transcript: max(13rem, calc(11.95rem + env(safe-area-inset-bottom, 0px)));
  }
  #contentArea.content-footer-clearance--dock-present {
    padding-bottom: max(8.75rem, calc(7.65rem + env(safe-area-inset-bottom, 0px)));
  }
  #contentArea.content-footer-clearance--dock-present.content-footer-clearance--transcript-visible {
    padding-bottom: max(12.5rem, calc(11.3rem + env(safe-area-inset-bottom, 0px)));
  }
  #contentArea.content-home-active.content-footer-clearance--dock-present {
    padding-bottom: var(--c8-mobile-dock-band-transcript);
    scroll-padding-bottom: var(--c8-mobile-dock-band-transcript);
  }
  #contentArea.problem-step-active.content-footer-clearance--transcript-visible {
    padding-bottom: var(--c8-mobile-dock-band-transcript);
  }
  #contentArea.content-rhythm:not(.problem-step-active) {
    scroll-padding-bottom: max(8.85rem, calc(7.9rem + env(safe-area-inset-bottom, 0px)));
  }
}
.modal-sheet { transition: transform 0.3s ease-out; }
.improved-guide-card { border-radius: 1.25rem; box-shadow: 0 4px 12px rgba(0,0,0,0.05); transition: all 0.2s; }

/* ── C8 — light/dark readability (guide modal, typography; no layout change) ── */
body:not(.dark-theme) #helpModal {
    background-color: rgba(15, 23, 42, 0.44) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}
body.dark-theme #helpModal {
    background-color: rgba(2, 6, 23, 0.65) !important;
    backdrop-filter: blur(9px);
    -webkit-backdrop-filter: blur(9px);
}
body:not(.dark-theme) #modalContent.modal-sheet {
    background: rgba(253, 253, 255, 0.98) !important;
    border: 1px solid rgba(148, 163, 184, 0.26);
    box-shadow:
        0 -10px 44px rgba(15, 23, 42, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
}
body.dark-theme #modalContent.modal-sheet {
    background: rgba(15, 23, 42, 0.98) !important;
    border: 1px solid rgba(100, 116, 139, 0.18);
    box-shadow:
        0 -12px 52px rgba(0, 0, 0, 0.5),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
}
body:not(.dark-theme) #modalContent.modal-sheet h3 {
    color: #0f172a;
    letter-spacing: 0.01em;
}
body.dark-theme #modalContent.modal-sheet h3 {
    color: #f1f5f9;
}
body:not(.dark-theme) #helpDynamicContent .improved-guide-card.bg-slate-100 {
    background: rgba(248, 250, 252, 0.96) !important;
    border: 1px solid rgba(148, 163, 184, 0.32) !important;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.05);
}
body:not(.dark-theme) #helpDynamicContent .improved-guide-card.bg-green-50 {
    background: rgba(236, 253, 245, 0.94) !important;
    border: 1px solid rgba(134, 239, 172, 0.45) !important;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
}
body:not(.dark-theme) #helpDynamicContent .improved-guide-card.bg-gradient-to-r {
    border: 1px solid rgba(249, 115, 22, 0.35) !important;
    box-shadow: 0 1px 10px rgba(249, 115, 22, 0.07);
}
body.dark-theme #helpDynamicContent .improved-guide-card.bg-slate-100 {
    background: rgba(30, 41, 59, 0.72) !important;
    border: 1px solid rgba(148, 163, 184, 0.15) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
body.dark-theme #helpDynamicContent .improved-guide-card.bg-green-50 {
    border: 1px solid rgba(74, 222, 128, 0.2) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}
body.dark-theme #helpDynamicContent .improved-guide-card.bg-gradient-to-r {
    border: 1px solid rgba(249, 115, 22, 0.22) !important;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.22);
}
body:not(.dark-theme) #helpDynamicContent .improved-guide-card p.text-sm.font-bold,
body:not(.dark-theme) #helpDynamicContent .improved-guide-card p.text-sm {
    color: #0f172a;
}
body:not(.dark-theme) #helpDynamicContent .improved-guide-card p.text-xs {
    color: #334155;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}
body.dark-theme #helpDynamicContent .improved-guide-card p.text-sm.font-bold,
body.dark-theme #helpDynamicContent .improved-guide-card p.text-sm {
    color: #f8fafc;
}
body.dark-theme #helpDynamicContent .improved-guide-card p.text-xs {
    color: #cbd5e1;
    line-height: 1.52;
    -webkit-font-smoothing: antialiased;
}
body:not(.dark-theme) #helpModal #closeHelp {
    background: rgba(241, 245, 249, 0.98);
    border: 1px solid rgba(148, 163, 184, 0.35);
    color: #334155;
}
body.dark-theme #helpModal #closeHelp {
    background: rgba(30, 41, 59, 0.9);
    border: 1px solid rgba(71, 85, 105, 0.45);
    color: #e2e8f0;
}
body:not(.dark-theme) #helpModal #closeHelp svg {
    stroke: #334155;
}
body.dark-theme #helpModal #closeHelp svg {
    stroke: #e2e8f0;
}
/* Light mode: nudge washed utility grays in main scroll (Bengali body copy) */
body:not(.dark-theme) #contentArea .text-slate-400 {
    color: rgb(100, 116, 139) !important;
}
body:not(.dark-theme) #contentArea .text-slate-500 {
    color: rgb(71, 85, 105) !important;
}
body:not(.dark-theme) #contentArea .text-gray-400,
body:not(.dark-theme) #contentArea .text-gray-500 {
    color: rgb(71, 85, 105) !important;
}
body.dark-theme #contentArea .text-slate-600 {
    color: rgb(203, 213, 225) !important;
}
body.dark-theme #contentArea .text-slate-500 {
    color: rgb(148, 163, 184) !important;
}
body:not(.dark-theme) .home-info-footer .info-footer-link {
    color: #64748b;
}
body.dark-theme .home-info-footer .info-footer-link {
    color: #94a3b8;
}

html.modal-open, body.modal-open { overflow: hidden; overscroll-behavior: none; }
#voiceFallbackBar { -webkit-user-select: text; user-select: text; }
