/* ==========================================================================
   Judisyn.uk — Judisyn.in design system (white & maroon theme)
   Loaded after the legacy stylesheets; restyles their class names.
   ========================================================================== */

:root {
  --jd-primary: #3B8FD4;
  --jd-primary-600: #4A4A4A;
  --jd-primary-400: #7EC4F5;
  --jd-primary-100: #CBCBCB;
  --jd-primary-50: #FFFFFF;
  --jd-cyan: #3B8FD4;
  --jd-ink: #4A4A4A;
  --jd-body: #4A4A4A;
  --jd-muted: #3B8FD4;
  --jd-border: #CBCBCB;
  --jd-soft: #FFFFFF;
  --jd-gradient: linear-gradient(135deg, #3B8FD4 0%, #2E6FB3 55%, #4A4A4A 100%);
  --jd-gradient-soft: linear-gradient(135deg, #FFFFFF 0%, #ffffff 100%);
  --jd-shadow-sm: 0 1px 2px rgba(74, 74, 74, .05), 0 2px 8px rgba(74, 74, 74, .04);
  --jd-shadow: 0 10px 30px -12px rgba(59, 143, 212, .28), 0 4px 12px rgba(74, 74, 74, .06);
  --jd-shadow-lg: 0 30px 60px -20px rgba(74, 74, 74, .22), 0 12px 24px -8px rgba(74, 74, 74, .08);
  --jd-radius: 18px;
  --jd-radius-lg: 26px;
  --jd-ease: cubic-bezier(.22, .61, .36, 1);

  --ud-navy: #4A4A4A;
  --ud-navy-2: #3d3d3d;
  --ud-navy-3: #5c5c5c;
  --ud-gold: #FFFFFF;
  --ud-gold-2: #CBCBCB;
  --ud-bg: #FFFFFF;

  --judisyn-crimson: #3B8FD4;
  --judisyn-crimson-deep: #4A4A4A;
  --judisyn-crimson-bright: #7EC4F5;
  --judisyn-ink: #4A4A4A;
  --judisyn-ink-soft: #3B8FD4;
  --judisyn-navy: #4A4A4A;
  --judisyn-blue: #3B8FD4;
  --judisyn-blue-light: #7EC4F5;
  --judisyn-silver: #CBCBCB;
  --judisyn-gold: #3B8FD4;
  --judisyn-gold-light: #CBCBCB;
  --judisyn-text: #4A4A4A;
  --judisyn-muted: #3B8FD4;
  --judisyn-radius: 18px;
  --judisyn-shadow: var(--jd-shadow-sm);
  --judisyn-shadow-lg: var(--jd-shadow-lg);

  --app-bg: var(--ud-bg);
  --app-sidebar-width: 264px;
  --app-border: var(--jd-border);

  --bs-primary: #3B8FD4;
  --bs-primary-rgb: 109, 129, 150;
  --bs-link-color: #3B8FD4;
  --bs-link-color-rgb: 109, 129, 150;
  --bs-link-hover-color: #4A4A4A;
  --bs-link-hover-color-rgb: 74, 74, 74;
  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-body-color: #4A4A4A;
  --bs-border-color: #CBCBCB;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
body.judisyn-body, body.app-shell-body, body.auth-page {
  font-family: var(--bs-body-font-family);
  background: #FFFFFF;
  color: var(--jd-body);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.judisyn-body { background: #FFFFFF; overflow-x: hidden; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, .display-font {
  font-family: var(--bs-body-font-family);
  color: var(--jd-ink);
  font-weight: 700;
  letter-spacing: -.02em;
}
a { text-decoration: none; transition: color .2s var(--jd-ease); }
::selection { background: var(--jd-primary-100); color: var(--jd-ink); }
.text-gradient, .text-gold-gradient {
  background: var(--jd-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* ---------- Buttons ---------- */
.btn { font-weight: 600; border-radius: 12px; transition: all .25s var(--jd-ease); }
.btn-lg { padding: .95rem 1.75rem; border-radius: 14px; font-size: 1.02rem; }
.btn-sm { border-radius: 10px; }
.btn-primary, .btn-gold, .btn-navy {
  --bs-btn-color: #FFFFFF;
  --bs-btn-hover-color: #FFFFFF;
  --bs-btn-active-color: #FFFFFF;
  --bs-btn-bg: var(--jd-primary);
  --bs-btn-border-color: var(--jd-primary);
  --bs-btn-hover-bg: var(--jd-primary-600);
  --bs-btn-hover-border-color: var(--jd-primary-600);
  --bs-btn-active-bg: var(--jd-primary-600);
  background: var(--jd-gradient);
  color: #FFFFFF;
  border: 0;
  box-shadow: 0 10px 24px -10px rgba(74, 74, 74, .35), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.btn-primary:hover, .btn-gold:hover, .btn-navy:hover,
.btn-primary:focus, .btn-gold:focus, .btn-navy:focus {
  background: var(--jd-gradient);
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 16px 30px -12px rgba(74, 74, 74, .4), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.btn-outline-navy, .btn-outline-primary, .btn-nav-ghost {
  background: rgba(255, 255, 255, .75);
  border: 1px solid var(--jd-border);
  color: var(--jd-ink);
  backdrop-filter: blur(8px);
}
.btn-outline-navy:hover, .btn-outline-primary:hover, .btn-nav-ghost:hover {
  background: #fff;
  border-color: var(--jd-primary-400);
  color: var(--jd-primary);
  transform: translateY(-2px);
  box-shadow: var(--jd-shadow);
}
.btn-nav-ghost { padding: .5rem 1.1rem; }
.btn-light-blue { background: var(--jd-primary-50); color: var(--jd-primary); border: 1px solid var(--jd-primary-100); }
.btn-light-blue:hover { background: var(--jd-primary-100); color: var(--jd-primary-600); transform: translateY(-2px); }

/* ---------- Eyebrow ---------- */
.section-eyebrow, .hero-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  font-size: .76rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--jd-primary) !important;
  background: rgba(255, 255, 255, .85);
  border: 1px solid var(--jd-primary-100);
  padding: .45rem .9rem; border-radius: 999px;
  box-shadow: var(--jd-shadow-sm);
  backdrop-filter: blur(10px);
  margin-bottom: 1rem;
}
.section-eyebrow::before, .hero-badge::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%;
  background: var(--jd-primary);
  box-shadow: 0 0 0 4px rgba(59, 143, 212, .15);
  animation: jd-pulse-dot 2s infinite;
}
.hero-badge i { display: none; }
@keyframes jd-pulse-dot { 0%, 100% { box-shadow: 0 0 0 4px rgba(59, 143, 212, .15); } 50% { box-shadow: 0 0 0 7px rgba(59, 143, 212, .06); } }

.section-padding { padding: 100px 0; position: relative; }
.section-padding-sm { padding: 70px 0; }
.section-title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); font-weight: 800; margin: .25rem 0 .9rem; letter-spacing: -.03em; }
.section-subtitle { font-size: 1.1rem; color: var(--jd-body); }
.text-muted { color: var(--jd-muted) !important; }

/* ---------- Navbar ---------- */
.judisyn-navbar {
  background: rgba(255, 255, 255, .92);
  backdrop-filter: saturate(180%) blur(18px);
  -webkit-backdrop-filter: saturate(180%) blur(18px);
  border-bottom: 0;
  padding: 14px 0;
  box-shadow: none;
  transition: all .35s var(--jd-ease);
  z-index: 1030;
}
.judisyn-navbar.is-scrolled {
  padding: 8px 0;
  box-shadow: 0 1px 0 rgba(74, 74, 74, .06), 0 8px 30px -12px rgba(74, 74, 74, .12);
}
.judisyn-nav-container { max-width: 1320px; }
.judisyn-navbar .brand-logo { height: 40px; max-width: 200px; }
.judisyn-main-nav .nav-link {
  color: var(--jd-ink) !important;
  font-weight: 500; font-size: .95rem;
  padding: .5rem .9rem !important;
  border-radius: 10px;
}
.judisyn-main-nav .nav-link:hover,
.judisyn-main-nav .nav-link.active {
  color: var(--jd-primary) !important;
  background: var(--jd-primary-50);
}
.judisyn-main-nav .nav-link.active { font-weight: 600; }
.judisyn-main-nav .nav-link.active::after { display: none; }
.judisyn-navbar .navbar-toggler {
  border: 1px solid var(--jd-border) !important; border-radius: 12px;
  padding: .5rem .65rem; background: #fff;
}
.judisyn-navbar .navbar-toggler:focus { box-shadow: 0 0 0 4px var(--jd-primary-100) !important; }
.judisyn-nav-actions .btn-gold { padding: .6rem 1.3rem; }
.nav-user-pill {
  background: #fff; border: 1px solid var(--jd-border);
  color: var(--jd-ink) !important;
}
.nav-user-pill:hover, .nav-user-pill.show { border-color: var(--jd-primary-400); box-shadow: var(--jd-shadow); }
.nav-user-avatar, .app-topbar-avatar, .app-sidebar-avatar, .author-avatar {
  background: linear-gradient(135deg, var(--ud-navy-3), var(--jd-primary));
  color: #fff;
}
.navbar-search .search-input-wrapper { background: var(--jd-soft); border: 1px solid var(--jd-border); }
.navbar-search .search-input-wrapper:focus-within { border-color: var(--jd-primary-400); box-shadow: 0 0 0 4px rgba(59, 143, 212, .12); }
.dropdown-menu { border: 1px solid var(--jd-border) !important; border-radius: 14px !important; box-shadow: var(--jd-shadow-lg) !important; padding: .4rem; }
.dropdown-item { border-radius: 8px; font-size: .9rem; padding: .5rem .75rem; }
.dropdown-item:hover, .dropdown-item:focus { background: var(--jd-primary-50); color: var(--jd-primary); }

@media (max-width: 1199.98px) {
  .judisyn-navbar .navbar-collapse {
    background: #fff; border: 1px solid var(--jd-border); border-radius: 18px;
    padding: 1rem; margin-top: .75rem; box-shadow: var(--jd-shadow);
  }
  .judisyn-nav-actions { border-top: 1px solid var(--jd-border); }
}

/* ---------- Hero (home) ---------- */
.hero-section {
  background:
    radial-gradient(1200px 600px at 85% -10%, rgba(59, 143, 212, .16), transparent 60%),
    radial-gradient(900px 500px at -10% 20%, rgba(59, 143, 212, .12), transparent 60%),
    linear-gradient(180deg, #ffffff 0%, #ffffff 70%);
  color: var(--jd-body);
}
.hero-section::before {
  background-image:
    linear-gradient(rgba(59, 143, 212, .06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59, 143, 212, .06) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse at 60% 30%, #000 20%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 60% 30%, #000 20%, transparent 70%);
  pointer-events: none;
}
.hero-particles, .hero-glow, .hero-mesh {
  border-radius: 50%; filter: blur(80px); opacity: .55; pointer-events: none;
  animation: jd-blob 18s ease-in-out infinite alternate;
}
.hero-particles { inset: auto; width: 460px; height: 460px; background: #B7D6F5; top: -120px; right: 8%; }
.hero-glow { width: 360px; height: 360px; background: #D4EBFF; top: auto; bottom: 0; left: -80px; right: auto; animation-delay: -6s; }
.hero-mesh { inset: auto; width: 300px; height: 300px; background: #E8F4FF; top: 40%; right: -60px; animation-delay: -12s; }
@keyframes jd-blob { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(30px, -30px) scale(1.08); } 100% { transform: translate(-20px, 20px) scale(.96); } }

.hero-section .hero-title {
  color: var(--jd-ink);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 800; line-height: 1.06; letter-spacing: -.035em;
  margin: .4rem 0 1.25rem;
}
.hero-section .hero-subtitle { color: var(--jd-body); opacity: 1; font-size: clamp(1.05rem, 1.4vw, 1.2rem); line-height: 1.65; }
.hero-section .btn-hero-outline {
  background: rgba(255, 255, 255, .75); border: 1px solid var(--jd-border); color: var(--jd-ink); backdrop-filter: blur(8px);
}
.hero-section .btn-hero-outline:hover { background: #fff; border-color: var(--jd-primary-400); color: var(--jd-primary); transform: translateY(-2px); box-shadow: var(--jd-shadow); }
.hero-section .hero-trust span { color: var(--jd-muted); }
.hero-section .hero-trust .text-warning { color: var(--jd-primary) !important; }

.mockup-window {
  background: #fff;
  border: 1px solid var(--jd-border);
  box-shadow: var(--jd-shadow-lg), 0 0 0 1px rgba(74, 74, 74, .04);
  border-radius: 20px;
}
.mockup-titlebar { background: #ffffff; border-bottom: 1px solid var(--jd-border); }
.mockup-titlebar .dot.red, .mockup-titlebar .dot.yellow, .mockup-titlebar .dot.green { background: #CBCBCB; }
.mockup-url { color: var(--jd-muted); background: #fff; border: 1px solid var(--jd-border); }
.mockup-live { color: #059669; }
.live-dot { background: #059669; }
.mockup-sidebar { background: linear-gradient(180deg, var(--ud-navy) 0%, #3d3d3d 100%); border-right: 0; }
.mockup-nav-item { color: #CBCBCB; }
.mockup-nav-item.active { background: linear-gradient(135deg, var(--ud-gold), var(--ud-gold-2)); color: var(--ud-navy); }
.mockup-main { background: linear-gradient(135deg, #ffffff, #FFFFFF); }
.mockup-search-bar { background: #fff; border: 1px solid var(--jd-border); color: var(--jd-muted); box-shadow: var(--jd-shadow-sm); }
.mockup-search-bar i, .mockup-ai-panel i { color: var(--jd-primary); }
.mockup-filters span { background: #fff; border: 1px solid var(--jd-border); color: var(--jd-body); border-radius: 999px; }
.mockup-result { background: rgba(255, 255, 255, .85); border: 1px solid var(--jd-border); }
.mockup-result.active { background: #fff; border-color: var(--jd-primary-400); box-shadow: var(--jd-shadow); }
.mockup-cite { color: var(--jd-primary); }
.mockup-case-title { color: var(--jd-ink); font-family: inherit; font-weight: 700; }
.mockup-meta { color: var(--jd-muted); }
.mockup-ai-panel { background: var(--jd-primary-50); border: 1px solid var(--jd-primary-100); color: var(--jd-ink); }
.hero-float-card {
  background: rgba(255, 255, 255, .82); border: 1px solid rgba(255, 255, 255, .95);
  box-shadow: var(--jd-shadow); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-radius: 14px;
}
.hero-float-card i {
  width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center;
  background: var(--jd-primary-50); color: var(--jd-primary); font-size: 1rem;
}
.hero-float-card strong { color: var(--jd-ink); }

.hero-court-ticker { background: rgba(255, 255, 255, .6); border-top: 1px solid var(--jd-border); backdrop-filter: blur(10px); }
.ticker-item { color: var(--jd-body); }
.ticker-item i { color: var(--jd-primary); }

/* ---------- Trust marquee + stats ---------- */
.trust-marquee { background: #fff; border-bottom: 0; }
.trust-label { color: var(--jd-muted); }
.trust-marquee-item { color: var(--jd-muted); }
.stats-section { background: #fff; padding: 10px 0 40px; position: relative; z-index: 5; }
.stats-grid {
  background: rgba(255, 255, 255, .85);
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius-lg);
  box-shadow: var(--jd-shadow-lg);
  backdrop-filter: blur(20px);
  padding: 1rem;
}
.stat-card { border: 0; position: relative; padding: 1.75rem 1.25rem; }
.stats-grid > div + div .stat-card::before {
  content: ""; position: absolute; left: 0; top: 18%; bottom: 18%; width: 1px; background: var(--jd-border);
}
.stat-number { color: var(--jd-ink); font-family: inherit; font-weight: 800; letter-spacing: -.03em; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.stat-label { color: var(--jd-ink); }
.stat-desc { color: var(--jd-muted); }
@media (max-width: 991.98px) { .stats-grid > div + div .stat-card::before { display: none; } }

/* ---------- Cards ---------- */
.judisyn-card, .case-preview-card, .explore-card, .step-card, .dash-panel, .case-library-list, .search-filters {
  background: #fff;
  border: 1px solid var(--jd-border);
  border-radius: var(--jd-radius);
  box-shadow: var(--jd-shadow-sm);
}
.judisyn-card, .case-preview-card, .explore-card, .step-card {
  transition: transform .35s var(--jd-ease), box-shadow .35s var(--jd-ease), border-color .35s var(--jd-ease);
}
.judisyn-card:hover, .case-preview-card:not(.locked):hover, .explore-card:hover, .step-card:hover {
  transform: translateY(-6px);
  box-shadow: var(--jd-shadow-lg);
  border-color: var(--jd-primary-100);
}
.product-panel.judisyn-card:hover, .comparison-card:hover { transform: none; }

.feature-icon, .explore-icon, .product-tab-icon, .workflow-step-icon {
  background: var(--jd-gradient-soft);
  border: 1px solid var(--jd-primary-100);
  color: var(--jd-primary);
  border-radius: 16px;
  box-shadow: none;
  transition: all .35s var(--jd-ease);
}
.judisyn-card:hover .feature-icon, .explore-card:hover .explore-icon, .product-tab.active .product-tab-icon, .workflow-step:hover .workflow-step-icon {
  background: var(--jd-gradient); color: #fff; border-color: transparent;
  box-shadow: 0 10px 20px -8px rgba(59, 143, 212, .6);
}
.judisyn-card:hover .feature-icon, .explore-card:hover .explore-icon { transform: scale(1.06) rotate(-4deg); }

.tag-pill, .workspace-chip { background: var(--jd-primary-50); color: var(--jd-primary); border: 1px solid var(--jd-primary-100); }
.badge-court { background: var(--jd-primary-50); color: var(--jd-primary); font-weight: 600; }
.case-preview-cite, .judgment-card .citation, .dash-list-cite, .search-hit .citation { color: var(--jd-primary); }
.case-preview-title, .judgment-card .title { font-family: inherit; font-weight: 700; color: var(--jd-ink); }
.case-preview-card-pro::before, .explore-card-pro::after { background: var(--jd-gradient); }
.case-preview-link, .explore-link, .workflow-link { color: var(--jd-primary); }
.explore-card:hover .explore-link, .workflow-link:hover { color: var(--jd-primary-600); }
.testimonial-stars { color: #f59e0b; }
.testimonial-quote { color: var(--jd-ink); font-style: normal; }
.testimonial-card-pro:hover { border-top-color: var(--jd-primary); }

/* ---------- Product showcase ---------- */
.product-showcase { background: linear-gradient(180deg, #fff 0%, var(--jd-soft) 100%) !important; }
.product-tab:hover { background: var(--jd-primary-50); }
.product-tab.active { background: #fff; border-color: var(--jd-primary-100); box-shadow: var(--jd-shadow); }
.product-tab strong { color: var(--jd-ink); }
.product-demo-search, .ai-demo-output, .compliance-badges span { background: var(--jd-soft); border: 1px solid var(--jd-border); color: var(--jd-ink); }
.product-demo-search i, .workspace-demo-item i, .compliance-badges i, .ai-capability-item i, .check-list li i, .court-chip i { color: var(--jd-primary); }
.product-demo-result, .workspace-demo-item, .reader-demo { background: #fff; border: 1px solid var(--jd-border); }
.reader-demo-toolbar { background: #ffffff; color: var(--jd-muted); border-bottom: 1px solid var(--jd-border); }
.reader-demo-toolbar span { background: #CBCBCB; }
.reader-demo-para.active { border-left-color: var(--jd-primary); color: var(--jd-ink); }
.ai-demo-card, .ai-demo-card-animated {
  border: 1px solid transparent;
  background: linear-gradient(#fff, #fff) padding-box, var(--jd-gradient) border-box;
}
.ai-capability-item { border: 1px solid var(--jd-border); border-radius: 14px; }
.ai-capability-item:hover { border-color: var(--jd-primary-100); box-shadow: var(--jd-shadow); }
.ai-capability-item strong { color: var(--jd-ink); }

/* ---------- Sections ---------- */
.capabilities-section, .comparison-section, .ai-showcase { background: var(--jd-soft) !important; }
.capability-card-glow { background: radial-gradient(circle, rgba(59, 143, 212, .1) 0%, transparent 70%); }
.workflow-connector { background: linear-gradient(90deg, var(--jd-primary-400), var(--jd-cyan)); opacity: .5; }
.comparison-table thead th { background: var(--jd-soft); color: var(--jd-ink); }
.comparison-table tbody td { border-color: var(--jd-border); }
.highlight-col { background: var(--jd-primary-50); color: var(--jd-primary); }
.check-list li { border-color: var(--jd-border); }

.bg-navy, .court-preview-section {
  background:
    radial-gradient(600px 300px at 10% 0%, rgba(255, 255, 255, .12), transparent 60%),
    radial-gradient(500px 300px at 100% 100%, rgba(59, 143, 212, .45), transparent 60%),
    #4A4A4A !important;
}
.bg-navy .section-eyebrow, .court-preview-section .section-eyebrow {
  color: #fff !important; background: rgba(255, 255, 255, .16); border-color: rgba(255, 255, 255, .3);
}
.bg-navy .section-eyebrow::before, .court-preview-section .section-eyebrow::before { background: #fff; box-shadow: 0 0 0 4px rgba(255, 255, 255, .2); }
.bg-navy .btn-gold, .court-preview-section .btn-gold, .cta-section .btn-gold {
  background: #fff; color: var(--jd-primary); box-shadow: 0 12px 24px -10px rgba(74, 74, 74, .35);
}
.bg-navy .btn-gold:hover, .court-preview-section .btn-gold:hover, .cta-section .btn-gold:hover { background: #fff; color: var(--jd-primary-600); }
.court-chip { background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .28); color: #fff; backdrop-filter: blur(8px); }
.court-chip i { color: #fff; }
.court-chip:hover { background: rgba(255, 255, 255, .24); border-color: rgba(255, 255, 255, .5); }

/* ---------- CTA ---------- */
.cta-section {
  background:
    radial-gradient(600px 300px at 10% 0%, rgba(255, 255, 255, .16), transparent 60%),
    radial-gradient(500px 300px at 100% 100%, rgba(59, 143, 212, .5), transparent 60%),
    #4A4A4A;
}
.cta-section::before { background: none; }
.cta-section h2 { font-weight: 800; }
.cta-section .btn-hero-outline, .bg-navy .btn-hero-outline {
  background: rgba(255, 255, 255, .14); color: #fff; border: 1px solid rgba(255, 255, 255, .4); backdrop-filter: blur(6px);
}
.cta-section .btn-hero-outline:hover, .bg-navy .btn-hero-outline:hover { background: rgba(255, 255, 255, .24); color: #fff; transform: translateY(-2px); }

/* ---------- Inner page hero ---------- */
.page-hero {
  padding: 90px 0 60px; text-align: center; position: relative; overflow: hidden;
  color: var(--jd-body);
  background:
    radial-gradient(900px 400px at 50% -10%, rgba(59, 143, 212, .22), transparent 65%),
    linear-gradient(180deg, #FFFFFF 0%, #ffffff 100%);
}
.page-hero .breadcrumb { justify-content: center; }
.page-hero-title { color: var(--jd-ink); font-size: clamp(2rem, 4vw, 3.1rem); font-weight: 800; letter-spacing: -.03em; }
.page-hero-subtitle { color: var(--jd-body); opacity: 1; margin: 0 auto; max-width: 640px; font-size: 1.12rem; }
.breadcrumb-light .breadcrumb-item a { color: var(--jd-muted); }
.breadcrumb-light .breadcrumb-item a:hover { color: var(--jd-primary); }
.breadcrumb-light .breadcrumb-item.active { color: var(--jd-ink); }
.breadcrumb-light .breadcrumb-item + .breadcrumb-item::before { color: var(--jd-muted); }

/* ---------- Footer (light) ---------- */
.judisyn-footer {
  background: #FFFFFF;
  border-top: 1px solid var(--jd-border);
  margin-top: 0;
  padding: 40px 0 0;
  color: var(--jd-body);
}
.judisyn-footer h6 { font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--jd-ink); margin-bottom: 1.1rem; }
.judisyn-footer p { color: var(--jd-body); }
.footer-links li { margin-bottom: .35rem; }
.footer-links a { color: var(--jd-body); font-size: .94rem; line-height: 1.9; }
.footer-links a:hover { color: var(--jd-primary); }
.judisyn-footer .brand-logo-footer { height: 44px; max-width: 220px; }
.judisyn-footer .footer-bottom { border-top: 1px solid var(--jd-border); font-size: .88rem; color: var(--jd-muted); }
.trust-pills { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; }
.trust-pills span { display: inline-flex; align-items: center; gap: .45rem; font-size: .86rem; color: var(--jd-body); }
.trust-pills i { color: var(--jd-primary); }

/* ---------- Forms ---------- */
.form-control, .form-select {
  border-radius: 12px; border: 1px solid var(--jd-border); color: var(--jd-ink);
  transition: border-color .2s var(--jd-ease), box-shadow .2s var(--jd-ease);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: var(--jd-primary-400);
  box-shadow: 0 0 0 4px rgba(59, 143, 212, .12);
}
.form-label { font-weight: 600; color: var(--jd-ink); font-size: .9rem; }
.form-check-input:checked { background-color: var(--jd-primary); border-color: var(--jd-primary); }
.page-link { color: var(--jd-primary); border-color: var(--jd-border); }
.page-item.active .page-link { background: var(--jd-gradient); border-color: transparent; color: #fff; }

/* ---------- FAQ ---------- */
.faq-item, .accordion-item { border: 1px solid var(--jd-border); border-radius: 16px !important; overflow: hidden; background: #fff; }
.faq-item .accordion-button, .accordion-button { font-weight: 600; color: var(--jd-ink); box-shadow: none !important; }
.faq-item .accordion-button:not(.collapsed), .accordion-button:not(.collapsed) { color: var(--jd-primary); background: var(--jd-primary-50); }

/* ---------- Pricing ---------- */
.pricing-card { border-radius: var(--jd-radius-lg); }
.pricing-card.featured {
  border: 2px solid transparent;
  background: linear-gradient(#fff, #fff) padding-box, var(--jd-gradient) border-box;
  box-shadow: var(--jd-shadow-lg);
}
.pricing-card.featured::before { white-space: nowrap; background: var(--jd-gradient); color: #fff; box-shadow: 0 8px 16px -8px rgba(59, 143, 212, .7); }
.pricing-price { color: var(--jd-ink); font-family: inherit; font-weight: 800; letter-spacing: -.04em; }

/* ---------- Cookie banner + legal ---------- */
.cookie-consent { background: rgba(255, 255, 255, .95); color: var(--jd-ink); border: 1px solid var(--jd-border); box-shadow: var(--jd-shadow-lg); backdrop-filter: blur(16px); }
.cookie-consent-text p { color: var(--jd-body); }
.cookie-consent-text a { color: var(--jd-primary); }
.cookie-consent .btn-outline-light { border-color: var(--jd-border); color: var(--jd-ink); background: #fff; }
.cookie-consent .btn-outline-light:hover { border-color: var(--jd-primary-400); color: var(--jd-primary); background: #fff; }
.legal-table thead th { background: var(--jd-soft); color: var(--jd-ink); }
.legal-callout { background: var(--jd-primary-50); }

/* ---------- Reveal ---------- */
.reveal-up { transition: opacity .8s var(--jd-ease), transform .8s var(--jd-ease); }

/* ---------- Back to top ---------- */
.back-to-top {
  position: fixed; right: 22px; bottom: 22px; width: 46px; height: 46px; border-radius: 14px; border: 0;
  background: var(--jd-gradient); color: #fff; box-shadow: var(--jd-shadow);
  opacity: 0; visibility: hidden; transform: translateY(12px); transition: all .3s var(--jd-ease); z-index: 1040;
}
.back-to-top.show { opacity: 1; visibility: visible; transform: none; }

/* ==========================================================================
   Signed-in app shell (Judisyn.in subscriber dashboard: maroon + gold)
   ========================================================================== */
body.app-shell-body { background: var(--ud-bg); }
.app-sidebar {
  width: var(--app-sidebar-width);
  background: #4A4A4A;
  color: #FFFFFF;
  border-right: 0;
}
.app-sidebar-header { padding: 1.25rem 1.25rem 1rem; border-bottom: 0; }
.app-sidebar-logo { height: 36px; max-width: 180px; }
.app-sidebar-close { background: rgba(255, 255, 255, .08); color: #fff; width: 34px; height: 34px; border-radius: 10px; font-size: 1rem; }
.app-sidebar-nav { padding: .25rem .85rem 1rem; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .15) transparent; }
.app-nav-label { color: #CBCBCB; letter-spacing: .12em; padding: 0 .9rem; }
.app-nav-link { color: #FFFFFF; font-size: .9rem; padding: .62rem .9rem; margin-bottom: 2px; }
.app-nav-link i { color: #B9D7F5; opacity: 1; transition: color .2s; }
.app-nav-link:hover { background: rgba(255, 255, 255, .08); color: #FFFFFF; }
.app-nav-link:hover i { color: #FFFFFF; }
.app-nav-link.active {
  background: #3B8FD4;
  color: #FFFFFF; font-weight: 700;
  box-shadow: none;
}
.app-nav-link.active i { color: #FFFFFF; }
.app-nav-link-muted { color: #CBCBCB; }
.app-sidebar-footer { border-top: 1px solid rgba(255, 255, 255, .06); padding: .85rem; }
.app-sidebar-user {
  background: rgba(255, 255, 255, .06);
  border: 1px solid #3B8FD4;
  border-radius: 12px;
}
.app-sidebar-user-info span { color: #FFFFFF; font-weight: 600; }
.app-sidebar-backdrop { background: rgba(74, 74, 74, .5); }

.app-topbar {
  background: #FFFFFF;
  backdrop-filter: blur(12px);
  border-bottom: 1px solid #CBCBCB;
  padding: 0 1.75rem;
}
.app-topbar-toggle { border: 1px solid var(--jd-border); background: #fff; width: 40px; height: 40px; border-radius: 10px; font-size: 1.2rem; color: var(--jd-ink); display: grid; place-items: center; }
.app-topbar-heading { color: var(--jd-ink); font-weight: 800; }
.app-topbar-search { background: var(--ud-bg); border: 1px solid var(--jd-border); height: 44px; }
.app-topbar-search:focus-within { background: #fff; border-color: #3B8FD4; box-shadow: 0 0 0 4px rgba(59, 143, 212, .15); }
.app-topbar-icon { width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--jd-border); background: #fff; color: var(--jd-ink); }
.app-topbar-icon:hover { border-color: var(--jd-primary-400); color: var(--jd-primary); background: #fff; }
.app-topbar-user { background: transparent; border: 0; color: var(--jd-ink); font-weight: 600; }
.app-topbar-user:hover { background: var(--ud-bg); }
.app-topbar-avatar { width: 40px; height: 40px; border-radius: 12px; }
.app-content { padding: 1.75rem; }
.app-legal-footer { border-top: 0; color: var(--jd-muted); }
.app-legal-footer a:hover { color: var(--jd-primary); }

.dash-welcome {
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0%, rgba(59, 143, 212, .28), transparent 55%),
    linear-gradient(135deg, var(--ud-navy) 0%, var(--ud-navy-3) 100%);
  color: #FFFFFF;
  box-shadow: 0 20px 40px -24px rgba(58, 6, 16, .8);
}
.dash-welcome h2 { color: #fff; font-weight: 800; }
.dash-panel, .dash-stat-card, .dash-action-btn { border: 1px solid var(--jd-border); border-radius: 18px; box-shadow: var(--jd-shadow-sm); }
.dash-stat-card:hover, .dash-action-btn:hover { transform: translateY(-3px); box-shadow: var(--jd-shadow); border-color: transparent; }
.dash-stat-value { color: var(--jd-ink); font-weight: 800; letter-spacing: -.02em; }
.dash-stat-icon { border-radius: 14px; }
.dash-stat-icon.blue { background: #FFFFFF; color: #3B8FD4; }
.dash-stat-icon.gold { background: #E8F4FF; color: #3B8FD4; }
.dash-stat-icon.green { background: #3B8FD4; color: #FFFFFF; }
.dash-stat-icon.purple { background: #4A4A4A; color: #FFFFFF; }
.dash-action-btn { color: var(--jd-ink); }
.dash-action-btn i { color: var(--jd-primary); }
.dash-action-btn:hover { color: var(--jd-primary); }
.dash-panel-header { border-bottom: 1px solid var(--jd-border); }
.dash-panel-header h5 { color: var(--jd-ink); font-weight: 700; }
.dash-list-item { border-bottom-color: #ffffff; }
.dash-list-title { color: var(--jd-ink); font-weight: 600; }
.dash-list-icon { background: #FFFFFF; color: #3B8FD4; border-radius: 11px; }
.dash-subscription-card { background: var(--jd-gradient); color: #fff; border: 0; border-radius: 18px; box-shadow: var(--jd-shadow-lg); }
.dash-subscription-card h5, .dash-subscription-card h6, .dash-subscription-card strong, .dash-subscription-card .text-muted { color: #fff !important; }

.ai-msg-user { background: var(--jd-gradient); }
.corpus-scope { border-left-color: var(--jd-primary); background: var(--jd-primary-50); border-color: var(--jd-primary-100); }
.corpus-scope > i, .corpus-scope a { color: var(--jd-primary); }

@media (max-width: 991px) {
  .app-sidebar { box-shadow: 20px 0 40px rgba(0, 0, 0, .25); }
  .app-topbar { padding: 0 1rem; }
  .app-content { padding: 1.25rem 1rem; }
}

/* ==========================================================================
   Auth (sign in / register)
   ========================================================================== */
.auth-page { background: #FFFFFF; }
.auth-brand-panel {
  background:
    radial-gradient(700px 400px at 100% 0%, rgba(59, 143, 212, .45), transparent 60%),
    radial-gradient(600px 400px at 0% 100%, rgba(255, 255, 255, .16), transparent 60%),
    #4A4A4A;
}
.auth-brand-panel::before { background: none; }
.auth-brand-glow { background: radial-gradient(circle, rgba(255, 255, 255, .16) 0%, transparent 70%); }
.auth-brand-title { color: #fff; font-weight: 800; }
.auth-brand-text { color: rgba(255, 255, 255, .88); }
.auth-feature-list li {
  background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .25);
  border-radius: 18px; padding: .9rem 1rem; backdrop-filter: blur(10px);
}
.auth-feature-list i { background: rgba(255, 255, 255, .2); color: #fff; border-radius: 10px; }
.auth-back-link { color: rgba(255, 255, 255, .85); }
.auth-form-card { border: 1px solid var(--jd-border); border-radius: var(--jd-radius-lg); box-shadow: var(--jd-shadow-lg); }
.auth-form-header h1 { color: var(--jd-ink); font-weight: 800; }
.auth-input-wrap .form-control { border: 1px solid var(--jd-border); background: #fff; }
.auth-input-wrap .form-control:focus { border-color: var(--jd-primary-400); }
.auth-remember .form-check-input:checked { background-color: var(--jd-primary); border-color: var(--jd-primary); }
.auth-link, .auth-footer-text a, .auth-consent-text a { color: var(--jd-primary); }
.auth-link:hover, .auth-footer-text a:hover { color: var(--jd-primary-600); }

/* SweetAlert / misc */
.swal2-popup { border-radius: 22px !important; font-family: var(--bs-body-font-family) !important; }
.swal2-styled.swal2-confirm { background: var(--jd-gradient) !important; border-radius: 12px !important; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* User dashboard palette: #4A4A4A #CBCBCB #FFFFFF #3B8FD4 */
body.app-shell-body:has(.uh-home) {
  background: #FFFFFF;
}
body.app-shell-body:has(.uh-home) .app-sidebar {
  background: #4A4A4A;
  color: #FFFFFF;
}
body.app-shell-body:has(.uh-home) .app-nav-label { color: #CBCBCB; }
body.app-shell-body:has(.uh-home) .app-nav-link { color: #FFFFFF; }
body.app-shell-body:has(.uh-home) .app-nav-link i { color: #B9D7F5; }
body.app-shell-body:has(.uh-home) .app-nav-link:hover { background: rgba(255, 255, 255, .08); color: #FFFFFF; }
body.app-shell-body:has(.uh-home) .app-nav-link:hover i { color: #FFFFFF; }
body.app-shell-body:has(.uh-home) .app-nav-link.active {
  background: #3B8FD4;
  color: #FFFFFF;
  box-shadow: none;
}
body.app-shell-body:has(.uh-home) .app-nav-link.active i { color: #FFFFFF; }
body.app-shell-body:has(.uh-home) .app-nav-link-muted { color: #CBCBCB; }
body.app-shell-body:has(.uh-home) .app-sidebar-user {
  background: rgba(255, 255, 255, .06);
  border: 1px solid #3B8FD4;
}
body.app-shell-body:has(.uh-home) .app-sidebar-user-info span { color: #FFFFFF; }
body.app-shell-body:has(.uh-home) .app-sidebar-avatar,
body.app-shell-body:has(.uh-home) .app-topbar-avatar {
  background: #3B8FD4;
  color: #FFFFFF;
}
body.app-shell-body:has(.uh-home) .app-topbar {
  background: #FFFFFF;
  border-bottom: 1px solid #CBCBCB;
}
body.app-shell-body:has(.uh-home) .app-topbar-heading,
body.app-shell-body:has(.uh-home) .app-topbar-user { color: #4A4A4A; }
body.app-shell-body:has(.uh-home) .app-topbar-subtitle,
body.app-shell-body:has(.uh-home) .app-topbar-plan { color: #3B8FD4; }
body.app-shell-body:has(.uh-home) .app-topbar-search,
body.app-shell-body:has(.uh-home) .app-topbar-icon,
body.app-shell-body:has(.uh-home) .app-topbar-toggle {
  background: #fff;
  border-color: #CBCBCB;
  color: #4A4A4A;
}
body.app-shell-body:has(.uh-home) .app-topbar-search:focus-within,
body.app-shell-body:has(.uh-home) .app-topbar-icon:hover {
  border-color: #3B8FD4;
  color: #3B8FD4;
  box-shadow: 0 0 0 4px rgba(59, 143, 212, .15);
}
body.app-shell-body:has(.uh-home) .app-legal-footer a:hover { color: #3B8FD4; }
body.app-shell-body:has(.uh-home) .app-sidebar-backdrop { background: rgba(74, 74, 74, .45); }
