﻿/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   NutryX Go â€” GOATED Design System v5.0
   Premium Dark Aurora Theme with Cinematic Animations
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
  /* â”€â”€ Deep Space Background â”€â”€ */
  --bg-darkest: #04060f;
  --bg-space:   #060a1a;
  --bg-panel:   rgba(10, 14, 30, 0.72);
  --bg-panel-hover: rgba(15, 20, 42, 0.85);
  --bg-input:   rgba(8, 12, 28, 0.75);

  /* â”€â”€ Borders â”€â”€ */
  --border-light: rgba(129, 140, 248, 0.12);
  --border-glow:  rgba(129, 140, 248, 0.35);
  --border-pink:  rgba(244, 114, 182, 0.3);

  /* â”€â”€ Text â”€â”€ */
  --text-primary:   #f0f4ff;
  --text-secondary: #8b95b8;
  --text-muted:     #4a5278;

  /* â”€â”€ Neon Brand Colors â”€â”€ */
  --neon-violet:  #7c3aed;
  --neon-indigo:  #6366f1;
  --neon-purple:  #a855f7;
  --neon-pink:    #ec4899;
  --neon-cyan:    #06b6d4;
  --neon-teal:    #14b8a6;
  --neon-emerald: #10b981;
  --neon-amber:   #f59e0b;
  --neon-rose:    #f43f5e;

  /* â”€â”€ Vibrant UI Colors â”€â”€ */
  --c-pink:    #f472b6;
  --c-indigo:  #818cf8;
  --c-blue:    #60a5fa;
  --c-emerald: #34d399;
  --c-rose:    #fb7185;
  --c-amber:   #fbbf24;
  --c-violet:  #c084fc;
  --c-cyan:    #22d3ee;

  /* â”€â”€ Cinematic Gradients â”€â”€ */
  --grad-primary:     linear-gradient(135deg, #6366f1 0%, #a855f7 50%, #ec4899 100%);
  --grad-aurora:      linear-gradient(135deg, #0ea5e9 0%, #6366f1 40%, #a855f7 70%, #ec4899 100%);
  --grad-indigo-pink: linear-gradient(135deg, #6366f1, #ec4899);
  --grad-violet-cyan: linear-gradient(135deg, #7c3aed, #06b6d4);
  --grad-emerald:     linear-gradient(135deg, #10b981, #06b6d4);
  --grad-hover:       linear-gradient(135deg, #4f46e5, #db2777);
  --grad-dark-glow:   linear-gradient(135deg, rgba(99,102,241,0.18), rgba(236,72,153,0.18));
  --grad-card-border: linear-gradient(135deg, rgba(99,102,241,0.4), rgba(168,85,247,0.2), rgba(236,72,153,0.4));

  /* ==========================================================================
   ULTRA-FAST & SMOOTH DUAL-LAYER BACKGROUND CROSSFADE SYSTEM
   ========================================================================== */
#bg-crossfade-container {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  min-height: 100lvh;
  z-index: -2;
  overflow: hidden;
  pointer-events: none;
  contain: strict;
  background-color: #06040f;
  transition: background-color 500ms ease-in-out;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

[data-theme="light"] #bg-crossfade-container {
  background-color: #e4dff5 !important;
  background-image: linear-gradient(135deg, #f8f6fc 0%, #ede9f8 50%, #e4dff5 100%) !important;
}

.bg-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 500ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.bg-layer.active {
  opacity: 1;
}

.bg-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  transition: background-color 500ms ease-in-out;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

[data-theme="light"] .bg-overlay {
  background: rgba(255, 255, 255, 0.05);
}

/* Hide legacy single-layer pseudo-element background swaps to allow smooth crossfading */
body.auth-bg-active::before,
html.pre-auth body::before,
body.dashboard-bg-active::before,
html.pre-dashboard body::before,
[data-theme="light"] body.dashboard-bg-active::before,
body.start-bg-active::before {
  display: none !important;
}

  /* ── Glow Shadows ── */
  --glow-indigo: 0 0 40px rgba(99, 102, 241, 0.4);
  --glow-pink:   0 0 40px rgba(236, 72, 153, 0.4);
  --glow-violet: 0 0 40px rgba(168, 85, 247, 0.4);
  --glow-cyan:   0 0 40px rgba(6, 182, 212, 0.4);
  --shadow-card: 0 20px 60px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(129,140,248,0.08);
  --shadow-deep: 0 32px 80px rgba(0, 0, 0, 0.8);

  /* â”€â”€ Transitions â”€â”€ */
  --ease-spring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
  --ease-smooth: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Base Styles */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  background-color: #020408;
  overscroll-behavior: none;
}

[data-theme="light"] html {
  background-color: #e4dff5 !important;
  overscroll-behavior: none;
}

body {
  background-color: #020408;
  background-image: none !important;
  color: var(--text-primary);
  font-family: 'Outfit', 'Space Grotesk', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  min-height: 100vh;
  overflow-x: hidden;
  position: relative;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.section-title {
  font-size: 1.5rem;
  font-weight: 800;
  margin-bottom: 1rem;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

/* Two-column dashboard: meals left, sidebar right */
.dashboard-grid {
  display: grid;
  grid-template-columns: 2.2fr 1fr;
  gap: 1.75rem;
  align-items: start;
}

@media (max-width: 868px) {
  .dashboard-grid { grid-template-columns: 1fr; }
}

.meals-col {
  min-width: 0;
}

.sidebar-col {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

svg {
  max-width: 100%;
  height: auto;
  flex-shrink: 0;
}

/* Aurora Background */
.aurora-bg {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

#particle-canvas {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
  z-index: 1;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   COSMIC AURORA BOREALIS BACKGROUND SYSTEM
   Palette: Emerald Â· Cyan Â· Violet Â· Magenta Â· Blue
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Aurora curtain â€” the northern lights ribbon at top */
.aurora-bg::before {
  content: '';
  position: absolute;
  top: -30%;
  left: -20%;
  right: -20%;
  height: 60%;
  background: conic-gradient(
    from 180deg at 50% 100%,
    rgba(16,185,129,0) 0deg,
    rgba(6,182,212,0.09) 60deg,
    rgba(16,185,129,0.11) 120deg,
    rgba(20,184,166,0.07) 180deg,
    rgba(6,182,212,0.05) 240deg,
    rgba(16,185,129,0) 360deg
  );
  filter: blur(60px);
  animation: auroraCurtain 12s ease-in-out infinite;
  transform-origin: 50% 100%;
}

@keyframes auroraCurtain {
  0%, 100% { transform: scaleX(1)   scaleY(1)   rotate(-2deg); opacity: 0.7; }
  25%       { transform: scaleX(1.1) scaleY(1.15) rotate(1deg);  opacity: 1; }
  50%       { transform: scaleX(0.95) scaleY(0.9) rotate(3deg);  opacity: 0.85; }
  75%       { transform: scaleX(1.05) scaleY(1.1) rotate(-1deg); opacity: 0.95; }
}

.aurora-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(90px);
  will-change: transform, opacity;
}

/* ORB 1 â€” Electric Emerald â€” drifts top-left */
.orb-1 {
  width: 60vw;
  height: 60vw;
  top: -25%;
  left: -20%;
  background: radial-gradient(circle at 40% 40%,
    rgba(16,185,129,0.30) 0%,
    rgba(5,150,105,0.18)   40%,
    rgba(6,182,212,0.09)  65%,
    transparent 80%);
  animation: orbPath1 20s cubic-bezier(0.45,0.05,0.55,0.95) infinite;
}

/* ORB 2 â€” Deep Violet â†’ Magenta â€” anchored bottom-right */
.orb-2 {
  width: 55vw;
  height: 55vw;
  bottom: -25%;
  right: -20%;
  background: radial-gradient(circle at 55% 55%,
    rgba(139,92,246,0.28)  0%,
    rgba(168,85,247,0.18)  35%,
    rgba(232,121,249,0.10) 60%,
    transparent 80%);
  animation: orbPath2 25s cubic-bezier(0.45,0.05,0.55,0.95) infinite;
}

/* ORB 3 â€” Plasma Cyan â€” mid-screen right */
.orb-3 {
  width: 40vw;
  height: 40vw;
  top: 25%;
  right: 5%;
  background: radial-gradient(circle at 45% 45%,
    rgba(6,182,212,0.22)  0%,
    rgba(14,165,233,0.13) 45%,
    rgba(59,130,246,0.06) 70%,
    transparent 85%);
  animation: orbPath3 17s cubic-bezier(0.45,0.05,0.55,0.95) infinite;
}

/* ORB 4 â€” Royal Blue â€” mid-left slow drift */
.orb-4 {
  width: 35vw;
  height: 35vw;
  top: 55%;
  left: 8%;
  background: radial-gradient(circle at 50% 50%,
    rgba(59,130,246,0.20)  0%,
    rgba(99,102,241,0.12) 45%,
    rgba(139,92,246,0.05)  70%,
    transparent 85%);
  animation: orbPath4 22s cubic-bezier(0.45,0.05,0.55,0.95) infinite;
}

/* ORB 5 â€” Hot Magenta â€” top-center accent */
.orb-5 {
  width: 25vw;
  height: 25vw;
  top: 5%;
  left: 38%;
  background: radial-gradient(circle at 50% 50%,
    rgba(236,72,153,0.35) 0%,
    rgba(244,114,182,0.18) 50%,
    transparent 75%);
  animation: orbPath5 14s cubic-bezier(0.45,0.05,0.55,0.95) infinite;
}

/* Perspective grid â€” cyan tinted */
.aurora-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(6,182,212,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(6,182,212,0.04) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 10%, transparent 80%);
  animation: gridPulse 10s ease-in-out infinite;
}

/* â”€â”€ Complex multi-keyframe paths â”€â”€ */
@keyframes orbPath1 {
  0%   { transform: translate(0%,    0%)    scale(1);    opacity: 0.8; }
  15%  { transform: translate(4%,    6%)    scale(1.06); opacity: 1;   }
  30%  { transform: translate(-2%,   10%)   scale(0.97); opacity: 0.9; }
  45%  { transform: translate(-6%,   4%)    scale(1.03); opacity: 1;   }
  60%  { transform: translate(-3%,   -2%)   scale(1.08); opacity: 0.85;}
  75%  { transform: translate(2%,    -6%)   scale(0.95); opacity: 0.95;}
  90%  { transform: translate(5%,    -1%)   scale(1.02); opacity: 1;   }
  100% { transform: translate(0%,    0%)    scale(1);    opacity: 0.8; }
}
@keyframes orbPath2 {
  0%   { transform: translate(0%,    0%)    scale(1);    opacity: 0.85; }
  20%  { transform: translate(-6%,   -4%)   scale(1.1);  opacity: 1;    }
  40%  { transform: translate(4%,    -8%)   scale(0.93); opacity: 0.9;  }
  60%  { transform: translate(7%,    -2%)   scale(1.05); opacity: 1;    }
  80%  { transform: translate(2%,    5%)    scale(0.97); opacity: 0.88; }
  100% { transform: translate(0%,    0%)    scale(1);    opacity: 0.85; }
}
@keyframes orbPath3 {
  0%   { transform: translate(0%,    0%)    scale(1)    rotate(0deg);   opacity: 0.9;  }
  25%  { transform: translate(-8%,   5%)    scale(1.12) rotate(5deg);   opacity: 1;    }
  50%  { transform: translate(-4%,   10%)   scale(0.95) rotate(-3deg);  opacity: 0.85; }
  75%  { transform: translate(3%,    5%)    scale(1.08) rotate(2deg);   opacity: 1;    }
  100% { transform: translate(0%,    0%)    scale(1)    rotate(0deg);   opacity: 0.9;  }
}
@keyframes orbPath4 {
  0%   { transform: translate(0%,    0%)    scale(1);    opacity: 0.75; }
  33%  { transform: translate(8%,    -7%)   scale(1.15); opacity: 1;    }
  66%  { transform: translate(-5%,   -4%)   scale(0.92); opacity: 0.85; }
  100% { transform: translate(0%,    0%)    scale(1);    opacity: 0.75; }
}
@keyframes orbPath5 {
  0%   { transform: translate(0%,    0%)    scale(1);    opacity: 0.6;  }
  20%  { transform: translate(-10%,  8%)    scale(1.2);  opacity: 0.9;  }
  40%  { transform: translate(5%,    12%)   scale(0.88); opacity: 0.7;  }
  60%  { transform: translate(10%,   4%)    scale(1.15); opacity: 1;    }
  80%  { transform: translate(3%,    -5%)   scale(0.95); opacity: 0.75; }
  100% { transform: translate(0%,    0%)    scale(1);    opacity: 0.6;  }
}
@keyframes gridPulse {
  0%, 100% { opacity: 0.4; }
  50%       { opacity: 1; }
}

/* App Layout Container */
.app-container {
  position: relative;
  z-index: 10;
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
  isolation: isolate;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Global App Header */
.app-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 3.5rem;
  padding: 0.75rem 1.25rem;
  background: rgba(6, 9, 20, 0.6);
  backdrop-filter: blur(24px);
  border: 1px solid rgba(99,102,241,0.15);
  border-radius: 1.5rem;
  box-shadow: 0 4px 24px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.05);
}

.logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 190px;
  width: 190px;
  height: 58px;
  overflow: hidden;
  text-decoration: none;
  filter: drop-shadow(0 0 18px rgba(139,92,246,0.36));
  animation: logoPulse 4s ease-in-out infinite;
}

.brand-lockup {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: left center;
}

.brand-lockup-dark {
  display: none;
}

[data-theme="dark"] .brand-lockup-light {
  display: none;
}

[data-theme="dark"] .brand-lockup-dark {
  display: block;
}

@keyframes logoPulse {
  0%, 100% { filter: drop-shadow(0 0 14px rgba(99,102,241,0.3)); }
  50%       { filter: drop-shadow(0 0 22px rgba(236,72,153,0.46)); }
}

.header-actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

/* Badges & Avatars */
.streak-badge {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(249, 115, 22, 0.1);
  border: 1px solid rgba(249, 115, 22, 0.2);
  color: #fdba74;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 700;
}

.fire-icon {
  width: 1.1rem;
  height: 1.1rem;
  color: #f97316;
  filter: drop-shadow(0 0 4px rgba(249, 115, 22, 0.5));
}

.user-badge {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border-light);
  padding: 0.5rem 1rem 0.5rem 0.5rem;
  border-radius: 9999px;
}

.avatar {
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  background: var(--grad-indigo-pink);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1rem;
}

.username-txt {
  font-size: 0.875rem;
  font-weight: 500;
  color: #e2e8f0;
  max-width: 120px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Typography & General Buttons */
h1, h2, h3, h4 {
  font-weight: 700;
  letter-spacing: -0.02em;
}

button {
  cursor: pointer;
  border: none;
  font-family: inherit;
  transition: all 0.25s var(--ease-smooth);
}

button:active,
[class*="btn"]:active {
  transform: scale(0.96) !important;
  transition: transform 0.1s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.btn-text {
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.875rem;
  font-weight: 500;
  will-change: transform;
}

.btn-text:hover {
  color: white;
}

.btn-primary {
  background: linear-gradient(135deg, #6366f1, #818cf8);
  color: white;
  font-weight: 700;
  border-radius: 0.85rem;
  padding: 1rem 1.5rem;
  will-change: transform;
  box-shadow: 0 4px 20px rgba(99,102,241,0.35), inset 0 1px 0 rgba(255,255,255,0.15);
  position: relative;
  overflow: hidden;
}

.btn-primary::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.1), transparent);
  opacity: 0;
  transition: opacity 0.25s;
}

.btn-primary:hover::before { opacity: 1; }
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(99,102,241,0.5), inset 0 1px 0 rgba(255,255,255,0.2);
}

.btn-secondary {
  background: linear-gradient(135deg, #ec4899, #f472b6);
  color: white;
  font-weight: 700;
  border-radius: 0.85rem;
  padding: 1rem 1.5rem;
  will-change: transform;
  box-shadow: 0 4px 20px rgba(236,72,153,0.35), inset 0 1px 0 rgba(255,255,255,0.15);
}

.btn-secondary:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 30px rgba(236,72,153,0.5);
}

.btn-link {
  background: transparent;
  color: #818cf8;
  font-weight: 600;
  font-size: inherit;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.btn-link:hover {
  color: #a5b4fc;
}





/* Screen Transitions */
.screen-fade {
  animation: fadeIn 0.4s ease-out forwards;
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

/* SCREEN: Auth Box Card */
.auth-box {
  max-width: 460px;
  margin: 4rem auto 0 auto;
  background: rgba(8, 12, 30, 0.8);
  border: 1px solid rgba(99,102,241,0.2);
  border-radius: 2rem;
  padding: 3rem;
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  box-shadow: 0 32px 80px rgba(0,0,0,0.7), 0 0 0 1px rgba(99,102,241,0.08), inset 0 1px 0 rgba(255,255,255,0.06), 0 0 80px rgba(99,102,241,0.06);
  position: relative;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.auth-box::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2px;
  background: var(--grad-primary);
  border-radius: 2rem 2rem 0 0;
}

.auth-title {
  font-size: 2.25rem;
  margin-bottom: 1.75rem;
  text-align: center;
  font-weight: 900;
  background: var(--grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: -0.04em;
}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}






.step-title {
  font-size: 2.75rem;
  font-weight: 900;
  margin-bottom: 0.75rem;
  background: linear-gradient(135deg, #ffffff 0%, #c4b5fd 50%, #818cf8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 4px 20px rgba(129,140,248,0.4));
  letter-spacing: -0.02em;
  text-align: center;
}
.step-subtitle {
  font-size: 1.15rem;
  color: #e0e7ff;
  margin-bottom: 2.5rem;
  font-weight: 500;
  text-align: center;
  opacity: 0.9;
}
.section-label {
  font-size: 0.9rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #a5b4fc;
  margin-bottom: 1rem;
  display: block;
  text-shadow: 0 0 10px rgba(165,180,252,0.3);
}

.form-group label {
  font-size: 0.85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #c7d2fe;
  margin-bottom: 0.5rem;
  display: block;
}

.form-group input, .form-stack select {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  padding: 1rem 1.25rem;
  color: var(--text-primary);
  font-size: 1.05rem;
  outline: none;
  font-family: inherit;
  transition: all 0.3s var(--ease-smooth);
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.2);
}

.form-group input:focus, .form-stack select:focus {
  border-color: rgba(168, 85, 247, 0.5);
  background: rgba(255, 255, 255, 0.06);
  box-shadow: 0 0 20px rgba(168, 85, 247, 0.2), inset 0 2px 4px rgba(0,0,0,0.1);
  transform: translateY(-2px);
}

.auth-submit-btn {
  margin-top: 1rem;
  padding: 1rem;
  font-size: 1rem;
}

.alert-error {
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.4);
  color: #fca5a5;
  padding: 1.2rem;
  border-radius: 1rem;
  margin-bottom: 1.5rem;
  text-align: center;
  backdrop-filter: blur(10px);
}

/* SCREEN: Welcome Hero Box */
.welcome-box {
  max-width: 700px;
  margin: 5rem auto 0 auto;
  text-align: center;
}

.hero-title {
  font-size: clamp(2.5rem, 5vw, 4rem);
  font-weight: 900;
  line-height: 1.1;
  margin-bottom: 1.5rem;
  letter-spacing: -0.04em;
}

.hero-gradient {
  background: var(--grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  background-size: 200% auto;
  animation: gradientShift 4s linear infinite;
}

@keyframes gradientShift { 0% { background-position: 0% center; } 100% { background-position: 200% center; } }

.hero-subtitle {
  font-size: 1.15rem;
  color: var(--text-secondary);
  line-height: 1.7;
  margin-bottom: 2.5rem;
  max-width: 520px;
  margin: 0 auto 2.5rem auto;
}

.btn-glow {
  background: var(--grad-primary);
  color: white;
  font-weight: 800;
  font-size: 1.15rem;
  padding: 1.1rem 2.5rem;
  border-radius: 9999px;
  box-shadow: 0 0 0 1px rgba(255,255,255,0.1), 0 8px 32px rgba(99,102,241,0.5), 0 0 60px rgba(168,85,247,0.3);
  will-change: transform;
  position: relative;
  overflow: hidden;
  transition: all 0.3s var(--ease-smooth);
}

.btn-glow:hover {
  transform: scale(1.05) translateY(-2px);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.15), 0 12px 48px rgba(99,102,241,0.65), 0 0 80px rgba(168,85,247,0.45);
}

.btn-welcome-logout {
  display: block;
  margin: 1.75rem auto 0;
  background: transparent;
  color: var(--text-secondary);
  font-size: 0.95rem;
  font-weight: 500;
  border: 1px solid rgba(129,140,248,0.2);
  border-radius: 9999px;
  padding: 0.6rem 1.75rem;
  cursor: pointer;
  transition: all 0.25s var(--ease-smooth);
}

.btn-welcome-logout:hover {
  background: rgba(99,102,241,0.08);
  color: var(--text-primary);
  border-color: rgba(129,140,248,0.4);
}

/* SCREEN: Onboarding Form Steps Panel */
.panel-card {
  max-width: 600px;
  margin: 2rem auto;
  background: linear-gradient(145deg, rgba(4, 8, 18, 0.88), rgba(2, 5, 14, 0.96));
  border: 1px solid rgba(139, 92, 246, 0.25);
  border-radius: 2rem;
  padding: 3rem;
  backdrop-filter: blur(40px);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  position: relative;
  overflow: hidden;
}

.panel-card::before {
  content: '';
  position: absolute;
  top: -50%; left: -50%;
  width: 200%; height: 200%;
  background: radial-gradient(circle at 50% 0%, rgba(139, 92, 246, 0.15), transparent 50%);
  pointer-events: none;
  z-index: 0;
}
.panel-card > * {
  position: relative;
  z-index: 1;
}








.btn-loading {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  pointer-events: none;
}

.btn-loading:disabled { opacity: 0.78; }
.btn-chat-send.btn-loading { gap: 0; }
.btn-chat-send .btn-spinner { width: 1rem; height: 1rem; }

/* Grid layout for checkbox buttons */
.conditions-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.875rem;
}

.btn-spinner {
  width: 1em; height: 1em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; animation: spin 0.75s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }







.section-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.button-split {
  display: flex;
  gap: 1rem;
}

.btn-text-nav {
  background: rgba(8, 12, 28, 0.8);
  border: 1px solid rgba(99,102,241,0.15);
  color: var(--text-primary);
  border-radius: 1rem;
  padding: 1rem 1.5rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.25s var(--ease-smooth);
}

.btn-text-nav:hover {
  background: rgba(99,102,241,0.08);
  border-color: rgba(99,102,241,0.3);
}

.flex-expand { flex: 1; }

.btn-glow-accent {
  background: var(--grad-primary);
  color: white;
  font-weight: 800;
  font-size: 1.125rem;
  padding: 1rem 1.25rem;
  border-radius: 1rem;
  box-shadow: 0 4px 24px rgba(99,102,241,0.4), 0 0 50px rgba(168,85,247,0.2);
  will-change: transform;
  background-size: 200% auto;
  transition: all 0.3s var(--ease-smooth);
}

.btn-glow-accent:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 8px 40px rgba(99,102,241,0.6), 0 0 70px rgba(168,85,247,0.3);
}

/* auth toggle tip */
.auth-toggle-tip {
  text-align: center;
  margin-top: 1.5rem;
  font-size: 0.875rem;
  color: var(--text-secondary);
}

/* SCREEN: Dashboard Layout */
.dashboard-layout { max-width: 1000px; margin: 0 auto; }

.dashboard-back-link-row { margin-bottom: 1.5rem; }

.stats-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1.25rem;
  margin-bottom: 2.5rem;
}

.stat-card {
  background: rgba(8, 12, 30, 0.8);
  border: 1px solid rgba(99,102,241,0.15);
  border-radius: 1.75rem;
  padding: 1.5rem 1.75rem;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.05);
  transition: all 0.3s var(--ease-smooth);
  position: relative;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.stat-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(ellipse at 0% 0%, rgba(99,102,241,0.08), transparent 60%);
  pointer-events: none;
}

.stat-card:hover {
  transform: translateY(-4px);
  border-color: rgba(99,102,241,0.35);
  box-shadow: 0 16px 48px rgba(0,0,0,0.5), 0 0 40px rgba(99,102,241,0.1), inset 0 1px 0 rgba(255,255,255,0.08);
}

.stat-icon-box {
  width: 3.75rem;
  height: 3.75rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.card-pink .stat-icon-box   { background: radial-gradient(circle, rgba(236,72,153,0.25), rgba(236,72,153,0.08)); color: #ec4899;   box-shadow: 0 0 20px rgba(236,72,153,0.25); }
.card-indigo .stat-icon-box { background: radial-gradient(circle, rgba(99,102,241,0.25), rgba(99,102,241,0.08)); color: #6366f1; box-shadow: 0 0 20px rgba(99,102,241,0.25); }
.card-blue .stat-icon-box   { background: radial-gradient(circle, rgba(6,182,212,0.25),   rgba(6,182,212,0.08));  color: #06b6d4;   box-shadow: 0 0 20px rgba(6,182,212,0.25); }
.card-emerald .stat-icon-box{ background: radial-gradient(circle, rgba(16,185,129,0.25), rgba(16,185,129,0.08)); color: #10b981;box-shadow: 0 0 20px rgba(16,185,129,0.25); }

.stat-number {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.2;
  background: var(--grad-primary);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.stat-label {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--text-muted);
  margin-top: 0.15rem;
}

.sparkline-svg {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 60%;
  opacity: 0.15;
  pointer-events: none;
  z-index: 0;
}

.stat-card > div {
  position: relative;
  z-index: 1;
}

.section-title {
  font-size: 1.5rem;
  font-weight: 800;
  margin-bottom: 1rem;
  color: var(--text-primary);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.meal-group-card {
  background: rgba(8, 12, 30, 0.78);
  border: 1px solid rgba(99,102,241,0.12);
  border-radius: 1.75rem;
  padding: 1.75rem;
  margin-bottom: 1.5rem;
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.35), inset 0 1px 0 rgba(255,255,255,0.04);
  position: relative;
  overflow: hidden;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.meal-group-card::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(99,102,241,0.4), rgba(168,85,247,0.4), transparent);
}

.meal-time-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.meal-target-summary {
  margin-left: auto;
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-shadow: none;
  white-space: nowrap;
}

.text-morning  { color: #f472b6; text-shadow: 0 0 12px rgba(244,114,182,0.4); }
.text-afternoon{ color: #818cf8; text-shadow: 0 0 12px rgba(129,140,248,0.4); }
.text-night    { color: #22d3ee; text-shadow: 0 0 12px rgba(34,211,238,0.4); }

.meal-item-stack {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}

/* Meal item row card */
.meal-item-card {
  background: rgba(6, 9, 22, 0.65);
  border: 1px solid rgba(99,102,241,0.08);
  border-radius: 1.25rem;
  padding: 1rem 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: all 0.25s var(--ease-smooth);
  position: relative;
  overflow: hidden;
}

.meal-item-card::before {
  content: '';
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--grad-primary);
  opacity: 0;
  border-radius: 3px 0 0 3px;
  transition: opacity 0.25s;
}

.meal-item-card:hover::before { opacity: 1; }
.meal-item-card:hover {
  border-color: rgba(99,102,241,0.3);
  background: rgba(10, 14, 35, 0.85);
  transform: translateX(4px);
  box-shadow: 0 6px 24px rgba(0,0,0,0.35), 0 0 20px rgba(99,102,241,0.06);
}

.meal-clickable-area {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1;
  cursor: pointer;
  min-width: 0;
}

.meal-img {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.85rem;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background-color: #111827;
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.4s ease;
}

.meal-img.loaded {
  opacity: 1;
}

.meal-details {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.meal-name {
  font-weight: 600;
  font-size: 1rem;
  color: #f1f5f9;
  transition: color 0.2s;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.meal-item-card:hover .meal-name {
  color: #a5b4fc;
}

.meal-meta {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 0rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.meal-actions-group {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

.badge-diet {
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 0rem 0.5rem;
  border-radius: 9999px;
}

.badge-veg {
  background-color: rgba(52, 211, 153, 0.15);
  color: #6ee7b7;
  border: 1px solid rgba(52, 211, 153, 0.2);
}

.badge-nonveg {
  background-color: rgba(248, 113, 113, 0.15);
  color: #fca5a5;
  border: 1px solid rgba(248, 113, 113, 0.2);
}

.btn-swap-item {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.65rem;
  border-radius: 9999px;
  background: rgba(251, 191, 36, 0.12);
  color: #fcd34d;
  border: 1px solid rgba(251, 191, 36, 0.25);
  white-space: nowrap;
  flex-shrink: 0;
  transition: all 0.2s var(--ease-smooth);
}

.btn-swap-item:hover {
  background: rgba(251, 191, 36, 0.25);
  box-shadow: 0 0 12px rgba(251, 191, 36, 0.2);
}

/* Sidebar Presc card */
.presc-generation-card {
  background: linear-gradient(135deg, rgba(30, 20, 80, 0.9), rgba(80, 10, 50, 0.9));
  border: 1px solid rgba(168,85,247,0.3);
  border-radius: 1.75rem;
  padding: 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
  /* Glassmorphism effect */
  backdrop-filter: blur(20px);
}

.presc-glow-orb {
  position: absolute;
  top: -20px;
  right: -20px;
  width: 100px;
  height: 100px;
  background: white;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.05;
}

.doc-icon {
  margin: 0 auto 1.5rem auto;
  color: #fbcfe8;
  filter: drop-shadow(0 0 8px rgba(244, 114, 182, 0.3));
}

.side-card-title {
  font-size: 1.5rem;
  font-weight: 800;
  margin-bottom: 0.5rem;
}

.side-card-desc {
  font-size: 0.875rem;
  color: #c7d2fe;
  line-height: 1.5;
  margin-bottom: 2rem;
}

.btn-glow-dark {
  background: white;
  color: var(--bg-darkest);
  font-weight: 700;
  padding: 1rem 1.5rem;
  border-radius: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  justify-content: center;
  box-shadow: 0 0 20px rgba(255, 255, 255, 0.15);
  will-change: transform;
}

.btn-glow-dark:hover {
  transform: scale(1.02);
  box-shadow: 0 0 25px rgba(255, 255, 255, 0.25);
}


.warn-alert-box {
  background: rgba(244, 114, 182, 0.08);
  border-left: 3px solid #f472b6;
  padding: 1rem 1rem;
  border-radius: 0 0.5rem 0.5rem 0;
  font-size: 0.875rem;
  color: #fbcfe8;
  line-height: 1.4;
}

.warn-alert-box strong {
  display: block;
  font-weight: 700;
  margin-bottom: 0rem;
  color: white;
}

/* FLOATING CHATBOT WIDGET */
.chatbot-container {
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  z-index: 10000;
}

.chat-toggle-btn {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--grad-indigo-pink);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 24px rgba(236, 72, 153, 0.4);
  transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s ease;
  cursor: pointer;
}

.chat-toggle-btn:hover {
  transform: scale(1.08);
  box-shadow: 0 12px 28px rgba(236, 72, 153, 0.55);
}

.shadow-pink {
  box-shadow: 0 10px 25px rgba(236, 72, 153, 0.35);
}

.chat-window-panel {
  position: absolute;
  bottom: 4.5rem;
  right: 0;
  width: 380px;
  max-width: calc(100vw - 2rem);
  height: 520px;
  max-height: calc(100vh - 6.5rem);
  background: rgba(15, 23, 42, 0.96);
  border: 1px solid var(--border-light);
  border-radius: 1.25rem;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* Glassmorphism effect */
  backdrop-filter: blur(20px);
  animation: slideUp 0.25s cubic-bezier(0.4, 0, 0.2, 1) forwards;
  z-index: 10001;
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.chat-header {
  background: var(--grad-indigo-pink);
  color: white;
  padding: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
}

.chat-bot-identity {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.chat-close-btn {
  background: transparent;
  color: white;
  opacity: 0.7;
}

.chat-close-btn:hover {
  opacity: 1;
}

.chat-body {
  flex: 1;
  overflow-y: auto;
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.chat-row {
  display: flex;
  gap: 0.5rem;
}

.user-row {
  flex-direction: row-reverse;
}

.chat-avatar {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  flex-shrink: 0;
}

.bot-avatar {
  background: #ec4899;
}

.user-avatar {
  background: #6366f1;
}

.chat-bubble {
  padding: 0.5rem 1rem;
  border-radius: 1.25rem;
  font-size: 0.875rem;
  max-width: 75%;
  line-height: 1.45;
}

.bot-bubble {
  background: rgba(31, 41, 55, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.03);
  color: #e2e8f0;
  border-top-left-radius: 0.25rem;
}

.user-bubble {
  background: #6366f1;
  color: white;
  border-top-right-radius: 0.25rem;
}

/* Bouncing Typing Indicator */
.typing-dots {
  display: flex;
  align-items: center;
  gap: 0rem;
  padding: 1rem 1rem;
}

.typing-dot {
  width: 0.5rem;
  height: 0.5rem;
  background-color: #94a3b8;
  border-radius: 50%;
  animation: bounce 1.2s infinite ease-in-out;
}

.typing-dot:nth-child(2) { animation-delay: 0.2s; }
.typing-dot:nth-child(3) { animation-delay: 0.4s; }

@keyframes bounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

.chat-footer {
  padding: 1rem;
  border-top: 1px solid var(--border-light);
  display: flex;
  gap: 0.5rem;
  background: var(--bg-darkest);
}

.chat-footer input {
  flex: 1;
  background: var(--bg-input);
  border: 1px solid var(--border-light);
  border-radius: 9999px;
  padding: 0.5rem 1rem;
  color: white;
  outline: none;
  font-size: 0.875rem;
}

.btn-chat-send {
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  background: #ec4899;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
}

.btn-chat-send:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* GENERAL MODAL OVERLAY */
.modal-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(3, 7, 18, 0.75);
  /* Glassmorphism effect */
  backdrop-filter: blur(4px);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.modal-box-card {
  background: #111827;
  border: 1px solid var(--border-light);
  border-radius: 1.75rem;
  width: 100%;
  max-width: 540px;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
  animation: slideUp 0.3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

.recipe-hero-banner {
  height: 12rem;
  position: relative;
  flex-shrink: 0;
}

.recipe-hero-banner img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  opacity: 0.75;
}

.recipe-gradient-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, #111827, transparent);
}

.btn-recipe-close {
  position: absolute;
  top: 1rem;
  right: 1rem;
  background: rgba(0, 0, 0, 0.35);
  color: white;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Glassmorphism effect */
  backdrop-filter: blur(4px);
}

.recipe-banner-text-details {
  position: absolute;
  bottom: 1.25rem;
  left: 1.5rem;
  right: 1.5rem;
}

.recipe-modal-title {
  font-size: 1.75rem;
  font-weight: 800;
  color: white;
  margin-bottom: 0.5rem;
}

.recipe-action-links {
  display: flex;
  gap: 1rem;
}

.badge-blue {
  background-color: rgba(59, 130, 246, 0.2);
  color: #93c5fd;
  border: 1px solid rgba(59, 130, 246, 0.3);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  /* Glassmorphism effect */
  backdrop-filter: blur(4px);
}

.badge-rose-btn {
  background-color: rgba(244, 114, 182, 0.2);
  color: #fbcfe8;
  border: 1px solid rgba(244, 114, 182, 0.3);
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
  /* Glassmorphism effect */
  backdrop-filter: blur(4px);
  text-decoration: none;
  display: inline-block;
}

.badge-rose-btn:hover {
  background-color: rgba(244, 114, 182, 0.35);
}

.recipe-scroll-body {
  flex: 1;
  overflow-y: auto;
  padding: 2rem;
}

.guide-alert-box {
  background: rgba(59, 130, 246, 0.08);
  border: 1px solid rgba(59, 130, 246, 0.15);
  border-radius: 1.25rem;
  padding: 1rem 1rem;
  margin-bottom: 2rem;
}

.guide-alert-header {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 0.5rem;
}

.guide-accent-title {
  color: #60a5fa;
}

.guide-light-lbl {
  color: var(--text-muted);
}

.guide-alert-flex {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.guide-servings-txt {
  font-size: 1.5rem;
  font-weight: 800;
  color: white;
}

.text-pink { color: #f472b6; }
.text-highlight { color: white; font-weight: 700; }

.guide-grams-txt {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin-top: 0rem;
}

.guide-serving-unit-card {
  text-align: right;
  background: rgba(255, 255, 255, 0.03);
  padding: 0.5rem 1rem;
  border-radius: 0.85rem;
  border: 1px solid var(--border-light);
}

.guide-unit-lbl {
  font-size: 0.75rem;
  color: var(--text-muted);
  font-weight: 700;
  text-transform: uppercase;
}

.guide-unit-val {
  font-size: 1.125rem;
  font-weight: 800;
  color: white;
  margin-top: 0rem;
}

.recipe-section {
  margin-bottom: 2rem;
}

.recipe-section-title {
  font-size: 0.875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  margin-bottom: 1rem;
}

.ingredients-grid-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  list-style: none;
}

@media (max-width: 480px) {
  .ingredients-grid-list {
    grid-template-columns: 1fr;
  }
}

.ingredients-grid-list li {
  font-size: 0.875rem;
  color: #cbd5e1;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border-light);
  padding: 0.5rem 1rem;
  border-radius: 0.85rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.ingredients-grid-list li::before {
  content: "";
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  background-color: #6366f1;
  border-radius: 50%;
  flex-shrink: 0;
}

.steps-ordered-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.step-row-flex {
  display: flex;
  gap: 1rem;
  align-items: start;
}

.step-num-bubble {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: rgba(236, 72, 153, 0.15);
  color: var(--c-pink);
  font-size: 0.75rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 0rem;
}

.step-txt {
  font-size: 0.875rem;
  color: #cbd5e1;
  line-height: 1.55;
}

/* FULLSCREEN PRESCRIPTION OVERLAY */
.modal-overlay-fullscreen {
  position: fixed;
  inset: 0;
  background-color: rgba(3, 7, 18, 0.98);
  z-index: 1000;
  display: flex;
  flex-direction: column;
}

.prescription-preview-header {
  background: #0f172a !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding: 0.85rem 1.75rem !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  flex-shrink: 0 !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3) !important;
}

.presc-header-title {
  font-size: 1.2rem !important;
  font-weight: 700 !important;
  color: #f8fafc !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.6rem !important;
  margin: 0 !important;
}

.prescription-header-actions {
  display: flex !important;
  align-items: center !important;
  gap: 0.85rem !important;
}

#btn-prescription-cancel,
.prescription-header-actions .btn-cancel {
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(255, 255, 255, 0.18) !important;
  color: #e2e8f0 !important;
  font-weight: 600 !important;
  font-size: 0.92rem !important;
  padding: 0.5rem 1.15rem !important;
  border-radius: 0.6rem !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

#btn-prescription-cancel:hover,
.prescription-header-actions .btn-cancel:hover {
  background: rgba(255, 255, 255, 0.16) !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
  color: #ffffff !important;
  transform: translateY(-1px);
}

.btn-pink-print {
  background: linear-gradient(135deg, #ec4899 0%, #be123c 100%) !important;
  color: #ffffff !important;
  border: none !important;
  font-weight: 700 !important;
  font-size: 0.92rem !important;
  padding: 0.55rem 1.25rem !important;
  border-radius: 0.6rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  box-shadow: 0 4px 16px rgba(236, 72, 153, 0.35) !important;
  cursor: pointer !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.btn-pink-print:hover {
  background: linear-gradient(135deg, #f43f5e 0%, #db2777 100%) !important;
  box-shadow: 0 6px 20px rgba(236, 72, 153, 0.5) !important;
  transform: translateY(-1px);
}

/* Light Theme Overrides for Prescription Preview Modal Header & Controls */
[data-theme="light"] #modal-prescription {
  background-color: rgba(241, 245, 249, 0.98) !important;
}

[data-theme="light"] .prescription-preview-header {
  background: #ffffff !important;
  border-bottom: 1px solid #e2e8f0 !important;
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.06) !important;
}

#btn-pdf-disclaimer-proceed:not(:disabled):hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(225, 29, 72, 0.6) !important;
  background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%) !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

#btn-pdf-disclaimer-proceed * {
  pointer-events: none !important;
  cursor: pointer !important;
}

[data-theme="light"] .presc-header-title {
  color: #0f172a !important;
}

[data-theme="light"] .presc-header-title svg {
  stroke: #e11d48 !important;
}

[data-theme="light"] #btn-prescription-cancel,
[data-theme="light"] .prescription-header-actions .btn-cancel {
  background: #f1f5f9 !important;
  border: 1px solid #cbd5e1 !important;
  color: #334155 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
}

[data-theme="light"] #btn-prescription-cancel:hover,
[data-theme="light"] .prescription-header-actions .btn-cancel:hover {
  background: #e2e8f0 !important;
  border-color: #94a3b8 !important;
  color: #0f172a !important;
}

[data-theme="light"] #btn-prescription-print,
[data-theme="light"] .prescription-header-actions .btn-pink-print {
  background: linear-gradient(135deg, #e11d48 0%, #be123c 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(225, 29, 72, 0.28) !important;
}

[data-theme="light"] #btn-prescription-print:hover,
[data-theme="light"] .prescription-header-actions .btn-pink-print:hover {
  background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%) !important;
  box-shadow: 0 6px 18px rgba(225, 29, 72, 0.4) !important;
}

@media (max-width: 640px) {
  .prescription-preview-header {
    padding: 0.75rem 1rem !important;
    gap: 0.5rem !important;
  }
  .presc-header-title {
    font-size: 1rem !important;
    white-space: nowrap !important;
  }
  .prescription-header-actions {
    gap: 0.45rem !important;
  }
  #btn-prescription-cancel,
  .prescription-header-actions .btn-cancel {
    padding: 0.42rem 0.75rem !important;
    font-size: 0.82rem !important;
  }
  .btn-pink-print {
    padding: 0.45rem 0.85rem !important;
    font-size: 0.82rem !important;
    white-space: nowrap !important;
  }
}

[data-theme="light"] .prescription-paper-scroll {
  background: #f8fafc !important;
}

.prescription-paper-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 2.5rem 1.5rem;
  display: flex;
  justify-content: center;
  align-items: flex-start;
}

.prescription-loading-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: auto;
  color: var(--text-secondary);
  text-align: center;
}

.spinner {
  width: 4rem;
  height: 4rem;
  border: 4px solid rgba(236, 72, 153, 0.1);
  border-top-color: #ec4899;
  border-radius: 50%;
  animation: spin 1s cubic-bezier(0.5, 0.1, 0.4, 0.9) infinite;
  margin-bottom: 1.5rem;
  filter: drop-shadow(0 0 10px rgba(236, 72, 153, 0.5));
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.loading-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: white;
  margin-bottom: 0.5rem;
}

.loading-subtitle {
  font-size: 0.875rem;
}

.prescription-page-border {
  display: none;
}

/* MEDICAL DOCUMENT SHEET (A4 layout emulation) */
.prescription-document-sheet {
  width: 100%;
  max-width: 800px;
  background-color: white;
  color: #0f172a;
  border-radius: 0.75rem;
  padding: 2.5rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  font-family: 'Outfit', sans-serif;
}

/* Elements inside the printable prescription */
.presc-logo-section {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 2rem;
}

.presc-hospital-meta {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.hospital-icon {
  position: relative;
  overflow: hidden;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background-color: #0f172a;
  flex: 0 0 3.5rem;
}

.hospital-logo-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  padding: 0.15rem;
  box-sizing: border-box;
  display: block;
}

.hospital-title {
  font-family: 'Playfair Display', serif;
  font-size: 2rem;
  line-height: 1;
  font-weight: 900;
  letter-spacing: -0.01em;
}

.hospital-sub {
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #64748b;
  margin-top: 0.5rem;
}

.presc-contact-block {
  text-align: right;
  font-size: 0.75rem;
  color: #64748b;
  line-height: 1.5;
}

.presc-date-pill {
  display: inline-block;
  background-color: #f1f5f9;
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-weight: 700;
  color: #334155;
  margin-top: 0.5rem;
}

.presc-divider {
  border: 0;
  border-top: 2px solid #0f172a;
  margin-bottom: 2rem;
}

.presc-rx-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}

.rx-symbol {
  font-family: 'Playfair Display', serif;
  font-size: 5rem;
  font-weight: 900;
  font-style: italic;
  line-height: 0.7;
  color: #e2e8f0;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.rx-document-title {
  text-align: right;
}

.rx-doc-type {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #64748b;
}

.rx-doc-id {
  font-family: monospace;
  font-size: 0.75rem;
  color: #94a3b8;
  margin-top: 0rem;
}

.patient-info-box {
  background: white;
  border: 1px solid #e2e8f0;
  border-left: 5px solid #0f172a;
  padding: 1rem 1.5rem;
  border-radius: 0.5rem;
  margin-bottom: 2.5rem;
}

.box-title {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  color: #64748b;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.patient-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.stat-group-lbl {
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #94a3b8;
  text-transform: uppercase;
  margin-bottom: 0rem;
}

.stat-group-val {
  font-size: 0.9rem;
  font-weight: 700;
  color: #0f172a;
}

.box-row-divider {
  border-top: 1px solid #f1f5f9;
  margin: 1rem 0;
}

.patient-medical-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.medical-txt-desc {
  font-size: 0.8rem;
  color: #475569;
  font-weight: 500;
  line-height: 1.4;
}

.clinical-assessment-section {
  margin-bottom: 2.5rem;
}

.presc-section-header {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 1.25rem;
  font-family: 'Playfair Display', serif;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 1rem;
}

.presc-section-header svg {
  color: #475569;
}

.clinical-quote-box {
  border-left: 4px solid #e2e8f0;
  padding-left: 1rem;
  padding-top: 0rem;
  padding-bottom: 0rem;
  background-color: #f8fafc;
}

.quote-txt {
  font-family: 'Playfair Display', serif;
  font-size: 1rem;
  font-style: italic;
  line-height: 1.6;
  color: #334155;
}

.presc-regimen-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.presc-cals-badge {
  background-color: #0f172a;
  color: white;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.5rem 1rem;
  border-radius: 9999px;
}

.presc-meals-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 2.5rem;
}

.presc-meal-col-card {
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  overflow: hidden;
}

.presc-meal-header-title {
  background-color: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  text-align: center;
  padding: 0.5rem 0.5rem;
  font-weight: 700;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #475569;
}

.presc-meal-foods-stack {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.presc-food-row {
  display: flex;
  gap: 1rem;
  align-items: start;
}

.presc-food-img {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.5rem;
  -o-object-fit: cover;
     object-fit: cover;
  border: 1px solid #e2e8f0;
  flex-shrink: 0;
}

.presc-food-name {
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.2;
}

.presc-food-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 0rem;
}

.presc-food-serv {
  font-size: 0.75rem;
  color: #64748b;
}

.presc-food-cals {
  background-color: #f1f5f9;
  color: #334155;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0rem 0.5rem;
  border-radius: 0.2rem;
  border: 1px solid #cbd5e1;
}

.presc-recipe-link {
  display: flex;
  align-items: center;
  gap: 0rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: #3b82f6;
  text-decoration: none;
  margin-top: 0rem;
}

.presc-item-instruction-note {
  margin-top: 0.35rem;
  margin-bottom: 0.35rem;
  padding: 0.35rem 0.5rem;
  background: rgba(99, 102, 241, 0.05);
  border-left: 3px solid #6366f1;
  border-radius: 0.35rem;
  font-size: 0.72rem;
  line-height: 1.35;
  color: #334155;
}

.presc-item-instruction-note strong {
  color: #0f172a;
}

.presc-nine-items-card {
  background: #ffffff;
  padding: 1.25rem;
  border-radius: 0.85rem;
  border: 1px solid #e2e8f0;
  margin-bottom: 1.5rem;
  overflow: hidden;
}

.presc-table-wrapper {
  width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-top: 0.75rem;
  margin-bottom: 0.5rem;
}

.presc-matrix-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.8rem;
  text-align: left;
}

.presc-matrix-table th {
  background: #f8fafc;
  border-bottom: 2px solid #e2e8f0;
  color: #334155;
  padding: 0.5rem 0.6rem;
  font-weight: 700;
  white-space: nowrap;
}

.presc-matrix-table td {
  padding: 0.5rem 0.6rem;
  border-bottom: 1px solid #f1f5f9;
}

.presc-bottom-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.presc-bottom-card {
  border-top: 1px solid #e2e8f0;
  padding-top: 1rem;
}

.presc-bullets-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.presc-bullets-list li {
  font-size: 0.75rem;
  color: #334155;
  line-height: 1.45;
  display: flex;
  gap: 0.5rem;
  align-items: start;
}

.bullet-dot {
  width: 0.3rem;
  height: 0.3rem;
  border-radius: 50%;
  background-color: #0f172a;
  margin-top: 0.5rem;
  flex-shrink: 0;
  opacity: 0.6;
}

.presc-bullets-list li.bold-txt {
  font-weight: 700;
  color: #0f172a;
}

.warn-alert-box {
  background-color: #fff1f2;
  border: 1px solid #fecdd3;
  border-left: 3px solid #e11d48;
  border-radius: 0.5rem;
  padding: 1rem 1rem;
  margin-top: 1.5rem;
}

.warn-box-title {
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #be123c;
  text-transform: uppercase;
  margin-bottom: 0.5rem;
}

.warn-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.warn-list li {
  font-size: 0.7rem;
  color: #9f1239;
  line-height: 1.4;
  display: flex;
  gap: 0.5rem;
}

.warn-symbol {
  color: #f43f5e;
}

/* UTILITY CLASSES */
.hidden {
  display: none !important;
}

.mt-4 { margin-top: 1rem; }
.mt-6 { margin-top: 1.5rem; }
.mb-6 { margin-bottom: 1.5rem; }

/* PRINT MEDIA OVERRIDES */
@media print {
  /* Draw thin page border during prints */
  .prescription-page-border {
    display: block !important;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 3px solid #0f172a;
    outline: 1px solid #0f172a;
    outline-offset: -6px;
    pointer-events: none;
    z-index: 9999;
  }

  body {
    background-color: white !important;
    color: black !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Do not hide app-container, but reset its layout for print */
  .app-container {
    display: block !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    width: auto !important;
    height: auto !important;
    overflow: visible !important;
  }

  /* Hide headers, footers, dashboard, chatbot, other modals, and preview actions */
  .app-header,
  .main-content,
  .ambient-glow,
  .chatbot-container,
  .prescription-preview-header,
  .modal-overlay,
  #modal-checkin,
  #modal-daily-preference,
  #modal-profile-settings {
    display: none !important;
  }

  .modal-overlay-fullscreen {
    position: static !important;
    inset: 0 !important;
    background-color: white !important;
    z-index: auto !important;
    display: block !important;
  }

  .prescription-paper-scroll {
    overflow: visible !important;
    padding: 0 !important;
    display: block !important;
  }

  .prescription-document-sheet {
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    display: block !important;
    background-color: white !important;
    color: black !important;
  }

  /* Hide watch recipe links in print to look more professional */
  .presc-recipe-link {
    display: none !important;
  }
}

/* Page rules for clinical standard spacing and margins */
@page {
  size: A4;
  margin: 15mm;
}

/* AI Answer Uncovering Reveal Animations */
@keyframes uncoverReveal {
  from {
    clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%);
    opacity: 0.8;
  }
  to {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    opacity: 1;
  }
}

@keyframes scanLineGlow {
  0% {
    left: 0%;
    opacity: 0;
  }
  15% {
    opacity: 1;
  }
  85% {
    opacity: 1;
  }
  100% {
    left: 100%;
    opacity: 0;
  }
}

.reveal-uncover {
  animation: uncoverReveal var(--reveal-duration, 0.8s) cubic-bezier(0.19, 1, 0.22, 1) forwards;
  position: relative;
}

.bot-bubble-glow-line {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(to bottom, #6366f1, #ec4899);
  box-shadow: 0 0 10px #ec4899, 0 0 20px #6366f1;
  animation: scanLineGlow var(--reveal-duration, 0.8s) cubic-bezier(0.19, 1, 0.22, 1) forwards;
  pointer-events: none;
  z-index: 10;
}

.uncover-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(6px) scale(0.96);
  filter: blur(2px);
  transition: opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1),
              transform 0.4s cubic-bezier(0.215, 0.61, 0.355, 1),
              filter 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
  transition-delay: calc(var(--word-index) * 12ms);
  will-change: transform, opacity, filter;
}

.uncover-word.revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
  filter: blur(0);
}

/* ============================================ */
/* WEEKLY CHECK-IN MODAL STYLES                 */
/* ============================================ */

.card-emerald {
  border-color: rgba(52, 211, 153, 0.15);
}
.card-emerald .stat-icon-box {
  background: rgba(52, 211, 153, 0.1);
  color: #34d399;
}

.stat-card {
  position: relative;
  overflow: hidden;
}

.sparkline-svg {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 40px;
  opacity: 0.2;
}

.sparkline-svg polyline {
  fill: none;
  stroke: #34d399;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.sparkline-svg .sparkline-fill {
  fill: url(#sparkline-grad);
  opacity: 0.3;
}

/* Check-in Modal Card */
.checkin-card {
  background: rgba(15, 23, 42, 0.92);
  /* Glassmorphism effect */
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 1.5rem;
  max-width: 560px;
  width: 92%;
  margin: 2rem auto;
  padding: 2rem;
  position: relative;
  max-height: 88vh;
  overflow-y: auto;
  animation: modalSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes modalSlideUp {
  from { opacity: 0; transform: translateY(30px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.checkin-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.checkin-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: #f1f5f9;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex: 1;
}

.checkin-title svg {
  color: #34d399;
}

/* Step Dots */
.step-dots {
  display: flex;
  gap: 0.5rem;
  align-items: center;
}

.step-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  transition: all 0.3s ease;
}

.step-dot.active {
  background: #6366f1;
  box-shadow: 0 0 8px rgba(99, 102, 241, 0.4);
  width: 24px;
  border-radius: 4px;
}

.step-dot.completed {
  background: #34d399;
}

/* Check-in Steps */
.checkin-step {
  display: none;
  animation: stepFadeIn 0.35s ease forwards;
}

.checkin-step.active {
  display: block;
}

@keyframes stepFadeIn {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}

.checkin-step-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: #f1f5f9;
  margin-bottom: 0.5rem;
}

.checkin-step-desc {
  color: #94a3b8;
  font-size: 0.9rem;
  margin-bottom: 1rem;
}

/* Weight Input Group */
.weight-input-group {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin: 1.5rem 0;
}

.weight-stepper {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(99, 102, 241, 0.3);
  background: rgba(99, 102, 241, 0.1);
  color: #a5b4fc;
  font-size: 1.5rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.weight-stepper:hover {
  background: rgba(99, 102, 241, 0.25);
  border-color: #6366f1;
  transform: scale(1.1);
}

.weight-big-input {
  width: 120px;
  text-align: center;
  font-size: 2.5rem;
  font-weight: 800;
  font-family: 'Outfit', sans-serif;
  background: transparent;
  border: none;
  border-bottom: 3px solid rgba(99, 102, 241, 0.4);
  color: #f1f5f9;
  padding: 0rem 0;
  outline: none;
  transition: border-color 0.3s;
}

.weight-big-input:focus {
  border-bottom-color: #6366f1;
}

.weight-unit {
  font-size: 1.2rem;
  color: #64748b;
  font-weight: 600;
}

/* Delta Badge */
.delta-badge {
  text-align: center;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.5rem 1rem;
  border-radius: 2rem;
  display: inline-block;
  margin: 0 auto 1rem;
  width: -moz-fit-content;
  width: fit-content;
}

.delta-badge.loss {
  background: rgba(52, 211, 153, 0.12);
  color: #34d399;
  border: 1px solid rgba(52, 211, 153, 0.2);
}

.delta-badge.gain {
  background: rgba(251, 146, 60, 0.12);
  color: #fb923c;
  border: 1px solid rgba(251, 146, 60, 0.2);
}

.delta-badge.neutral {
  background: rgba(148, 163, 184, 0.1);
  color: #94a3b8;
  border: 1px solid rgba(148, 163, 184, 0.15);
}

/* Emoji Scale */
.emoji-scale {
  display: flex;
  gap: 0.5rem;
  justify-content: center;
  margin-bottom: 1rem;
}

.emoji-btn {
  width: 52px;
  height: 52px;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(30, 41, 59, 0.6);
  font-size: 1.4rem;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.emoji-btn:hover {
  background: rgba(99, 102, 241, 0.15);
  border-color: rgba(99, 102, 241, 0.3);
  transform: translateY(-2px);
}

.emoji-btn.active {
  background: rgba(99, 102, 241, 0.2);
  border-color: #6366f1;
  box-shadow: 0 0 12px rgba(99, 102, 241, 0.3);
  transform: scale(1.1);
}

/* Symptom Grid */
.symptom-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.symptom-btn {
  padding: 0.5rem 0.5rem;
  border-radius: 0.6rem;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(30, 41, 59, 0.5);
  color: #94a3b8;
  font-size: 0.78rem;
  cursor: pointer;
  transition: all 0.2s ease;
  text-align: center;
}

.symptom-btn:hover {
  border-color: rgba(255, 255, 255, 0.15);
  background: rgba(30, 41, 59, 0.8);
}

.symptom-btn.improved-btn.active {
  background: rgba(52, 211, 153, 0.12);
  border-color: rgba(52, 211, 153, 0.35);
  color: #34d399;
  box-shadow: 0 0 10px rgba(52, 211, 153, 0.15);
}

.symptom-btn.worsened-btn.active {
  background: rgba(251, 113, 133, 0.12);
  border-color: rgba(251, 113, 133, 0.35);
  color: #fb7185;
  box-shadow: 0 0 10px rgba(251, 113, 133, 0.15);
}

.symptom-btn.pref-btn.active {
  background: rgba(99, 102, 241, 0.18) !important;
  border-color: #6366f1 !important;
  color: #a5b4fc !important;
  box-shadow: 0 0 12px rgba(99, 102, 241, 0.3) !important;
  transform: translateY(-2px);
}

/* Illness symptom buttons â€” amber/orange theme for acute illness */
.symptom-btn.illness-btn {
  border-color: rgba(251, 191, 36, 0.15);
}

.symptom-btn.illness-btn:hover {
  border-color: rgba(251, 191, 36, 0.3);
  background: rgba(251, 191, 36, 0.08);
}

.symptom-btn.illness-btn.active {
  background: rgba(251, 146, 60, 0.15) !important;
  border-color: rgba(251, 146, 60, 0.5) !important;
  color: #fb923c !important;
  box-shadow: 0 0 14px rgba(251, 146, 60, 0.25) !important;
  animation: illness-pulse 2s ease-in-out infinite;
}

@keyframes illness-pulse {
  0%, 100% { box-shadow: 0 0 14px rgba(251, 146, 60, 0.25); }
  50% { box-shadow: 0 0 20px rgba(251, 146, 60, 0.4); }
}

/* Textarea */
.checkin-textarea {
  width: 100%;
  background: rgba(30, 41, 59, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0.75rem;
  color: #e2e8f0;
  padding: 1rem 1rem;
  font-family: 'Outfit', sans-serif;
  font-size: 0.875rem;
  resize: vertical;
  outline: none;
  transition: border-color 0.3s;
}

.checkin-textarea:focus {
  border-color: rgba(99, 102, 241, 0.4);
}

/* Loading State */
.checkin-loading-state {
  text-align: center;
  padding: 3rem 1rem;
}

/* Check-in Result Metrics Row */
.checkin-metrics-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin: 1rem 0;
}

.checkin-metric-card {
  background: rgba(30, 41, 59, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 0.75rem;
  padding: 1rem 0.5rem;
  text-align: center;
}

.metric-label {
  font-size: 0.7rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.metric-value {
  font-size: 1.1rem;
  font-weight: 700;
  color: #f1f5f9;
}

.metric-delta {
  font-size: 0.75rem;
  font-weight: 600;
  margin-top: 0rem;
}

.metric-delta.positive {
  color: #34d399;
}

.metric-delta.negative {
  color: #fb7185;
}

.metric-delta.neutral {
  color: #94a3b8;
}

/* AI Analysis Result Card */
.analysis-result-card {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.08), rgba(236, 72, 153, 0.06));
  border: 1px solid rgba(99, 102, 241, 0.15);
  border-radius: 1rem;
  padding: 1rem;
  margin: 1rem 0;
  position: relative;
  overflow: hidden;
}

.analysis-icon {
  font-size: 1.5rem;
  margin-bottom: 0.5rem;
}

.analysis-text {
  color: #cbd5e1;
  font-size: 0.9rem;
  line-height: 1.6;
  word-break: break-word;
  overflow-wrap: break-word;
  white-space: pre-wrap;
}

.checkin-done-btn {
  width: 100%;
  margin-top: 1rem;
}

.checkin-next-btn {
  width: 100%;
  margin-top: 0.5rem;
}

/* Responsive */
@media (max-width: 600px) {
  .symptom-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .checkin-metrics-row {
    grid-template-columns: repeat(2, 1fr);
  }
  .emoji-btn {
    width: 44px;
    height: 44px;
    font-size: 1.2rem;
  }
}

/* ============================================ */
/* ADMIN CONSOLE STYLES                         */
/* ============================================ */

.admin-layout {
  padding: 2rem 0;
  max-width: 1200px;
  margin: 0 auto;
  width: 95%;
}

.admin-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  padding-bottom: 1rem;
}

.admin-brand {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.admin-brand h2 {
  font-family: 'Outfit', sans-serif;
  font-size: 1.5rem;
  font-weight: 800;
  color: #f1f5f9;
}

.admin-user-profile {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}

.admin-user-details {
  display: flex;
  flex-direction: column;
  text-align: right;
}

.admin-user-name {
  font-weight: 600;
  color: #f1f5f9;
  font-size: 1rem;
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
}

.admin-user-role {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.btn-logout-admin {
  background: rgba(239, 68, 68, 0.1);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.2);
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: all 0.2s;
}

.btn-logout-admin:hover {
  background: #ef4444;
  color: white;
  box-shadow: 0 0 12px rgba(239, 68, 68, 0.35);
}

.admin-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  margin-bottom: 2rem;
}

/* Controls Card */
.admin-controls-card {
  background: rgba(15, 23, 42, 0.4);
  /* Glassmorphism effect */
  backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.05);
  padding: 1rem;
  border-radius: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1.5rem;
  margin-bottom: 1.5rem;
}

.admin-search-wrapper {
  position: relative;
  flex-grow: 1;
}

.admin-search-wrapper .search-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
}

#admin-search-input {
  width: 100%;
  background: rgba(30, 41, 59, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0.75rem;
  padding: 1rem 1rem 1rem 3rem;
  color: #f1f5f9;
  outline: none;
  font-size: 0.9rem;
  transition: border-color 0.3s;
}

#admin-search-input:focus {
  border-color: rgba(99, 102, 241, 0.4);
}

.admin-filters {
  display: flex;
  gap: 1rem;
}

.admin-select {
  background: rgba(30, 41, 59, 0.7);
  border: 1px solid rgba(255, 255, 255, 0.06);
  color: #cbd5e1;
  padding: 1rem 1rem;
  border-radius: 0.75rem;
  font-size: 0.875rem;
  outline: none;
  cursor: pointer;
}

.admin-select option {
  background: #0f172a;
  color: #cbd5e1;
}

/* Glass Table Styles */
.admin-table-container {
  background: rgba(15, 23, 42, 0.4);
  /* Glassmorphism effect */
  backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 1.25rem;
  overflow: hidden;
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
}

.admin-table th {
  background: rgba(30, 41, 59, 0.3);
  padding: 1rem;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--text-muted);
  letter-spacing: 0.05em;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.admin-table td {
  padding: 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: middle;
  font-size: 0.9rem;
  color: #cbd5e1;
}

.admin-table tr:last-child td {
  border-bottom: none;
}

.admin-table tr:hover td {
  background: rgba(255, 255, 255, 0.015);
}

.admin-client-info {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.admin-client-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(236, 72, 153, 0.15));
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: #f1f5f9;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.1rem;
}

.admin-client-meta {
  display: flex;
  flex-direction: column;
}

.admin-client-name {
  font-weight: 600;
  color: #f8fafc;
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
}

.admin-client-username {
  font-size: 0.75rem;
  color: var(--text-muted);
  max-width: 150px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: inline-block;
}

/* Badges for Goals/Streaks */
.badge-streak {
  background: rgba(251, 146, 60, 0.12);
  color: #fb923c;
  border: 1px solid rgba(251, 146, 60, 0.2);
  padding: 0rem 0.5rem;
  border-radius: 2rem;
  font-size: 0.75rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 0rem;
}

.badge-goal {
  padding: 0rem 0.5rem;
  border-radius: 2rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.badge-goal.lose {
  background: rgba(248, 113, 113, 0.1);
  color: #f87171;
  border: 1px solid rgba(248, 113, 113, 0.15);
}

.badge-goal.gain {
  background: rgba(129, 140, 248, 0.1);
  color: #818cf8;
  border: 1px solid rgba(129, 140, 248, 0.15);
}

.badge-goal.maintain {
  background: rgba(52, 211, 153, 0.1);
  color: #34d399;
  border: 1px solid rgba(52, 211, 153, 0.15);
}

.admin-targets-column {
  display: flex;
  flex-direction: column;
  gap: 0rem;
  font-size: 0.8rem;
}

.admin-target-lbl {
  color: var(--text-muted);
}

.admin-target-val {
  font-weight: 600;
  color: #e2e8f0;
}

.admin-btn-inspect {
  background: rgba(99, 102, 241, 0.1);
  border: 1px solid rgba(99, 102, 241, 0.2);
  color: #a5b4fc;
  padding: 0.5rem 1rem;
  border-radius: 0.6rem;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.8rem;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.admin-btn-inspect:hover {
  background: #6366f1;
  color: white;
  border-color: #6366f1;
  box-shadow: 0 0 10px rgba(99, 102, 241, 0.35);
}

/* Admin Detail Inspect Modal Drawer */
.admin-inspect-card {
  background: rgba(15, 23, 42, 0.93);
  /* Glassmorphism effect */
  backdrop-filter: blur(28px);
  -webkit-backdrop-filter: blur(28px);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 1.75rem;
  max-width: 820px;
  width: 92%;
  margin: 3rem auto;
  padding: 2.5rem;
  position: relative;
  max-height: 88vh;
  overflow-y: auto;
  animation: modalSlideUp 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.admin-inspect-header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  margin-bottom: 2rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  padding-bottom: 1rem;
}

.inspect-title-group {
  display: flex;
  flex-direction: column;
}

.inspect-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1.6rem;
  font-weight: 800;
  color: #f1f5f9;
}

.inspect-subtitle {
  font-size: 0.875rem;
  color: var(--text-muted);
  font-weight: 500;
}

.inspect-details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
}

.inspect-vitals-card, .inspect-trend-card {
  background: rgba(30, 41, 59, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.03);
  border-radius: 1.25rem;
  padding: 1.5rem;
}

.inspect-section-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  color: #cbd5e1;
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.vitals-details-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.vital-detail-item {
  display: flex;
  flex-direction: column;
  background: rgba(15, 23, 42, 0.3);
  padding: 0.5rem 1rem;
  border-radius: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.02);
}

.detail-label {
  font-size: 0.7rem;
  color: var(--text-muted);
  text-transform: uppercase;
  margin-bottom: 0rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.detail-value {
  font-weight: 600;
  color: #f1f5f9;
  font-size: 1rem;
}

.detail-sub-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}

.alert-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.badge-title {
  font-size: 0.75rem;
  color: var(--text-muted);
  font-weight: 600;
}

.alert-badges-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.warning-badge {
  background: rgba(239, 68, 68, 0.1);
  color: #fca5a5;
  border: 1px solid rgba(239, 68, 68, 0.15);
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0rem 0.5rem;
  border-radius: 2rem;
}

.warning-badge.allergen {
  background: rgba(245, 158, 11, 0.1);
  color: #fcd34d;
  border: 1px solid rgba(245, 158, 11, 0.15);
}

/* Large SVG Sparkline in Inspector */
.trend-header-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.inspect-sparkline-wrapper {
  background: rgba(15, 23, 42, 0.5);
  border-radius: 0.75rem;
  padding: 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.02);
  height: 120px;
  position: relative;
}

.large-sparkline-svg {
  width: 100%;
  height: 100%;
}

.large-sparkline-svg polyline {
  fill: none;
  stroke: #ec4899;
  stroke-width: 3;
  stroke-linecap: round;
}

.large-sparkline-svg .sparkline-fill {
  fill: url(#large-sparkline-grad);
  opacity: 0.25;
}

.sparkline-axes {
  display: flex;
  justify-content: space-between;
  font-size: 0.7rem;
  color: var(--text-muted);
  margin-top: 0.5rem;
  padding: 0 0rem;
}

/* Accordion Check-ins */
.checkin-log-card {
  background: rgba(30, 41, 59, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.04);
  border-radius: 0.75rem;
  margin-bottom: 1rem;
  overflow: hidden;
}

.checkin-log-header {
  background: rgba(30, 41, 59, 0.15);
  padding: 1rem 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  transition: background 0.2s;
}

.checkin-log-header:hover {
  background: rgba(30, 41, 59, 0.3);
}

.log-date-group {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.log-date {
  font-weight: 600;
  color: #e2e8f0;
}

.log-streak {
  font-size: 0.75rem;
  background: rgba(99, 102, 241, 0.1);
  color: #a5b4fc;
  padding: 0rem 0.5rem;
  border-radius: 1rem;
}

.log-meta-right {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.log-weight-delta {
  font-weight: 700;
  font-size: 0.875rem;
}

.log-accordion-icon {
  transition: transform 0.3s;
  color: var(--text-muted);
  will-change: transform;
}

.checkin-log-card.open .log-accordion-icon {
  transform: rotate(180deg);
}

.checkin-log-body {
  display: none;
  padding: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.03);
  background: rgba(15, 23, 42, 0.25);
  animation: accordionSlideDown 0.3s ease forwards;
}

.checkin-log-card.open .checkin-log-body {
  display: block;
}

@keyframes accordionSlideDown {
  from { opacity: 0; transform: translateY(-5px); }
  to { opacity: 1; transform: translateY(0); }
}

.log-ratings-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1rem;
  margin-bottom: 1rem;
}

.log-rating-pill {
  background: rgba(30, 41, 59, 0.4);
  padding: 0.5rem 1rem;
  border-radius: 0.5rem;
  font-size: 0.8rem;
  display: flex;
  justify-content: space-between;
}

.rating-pill-lbl {
  color: var(--text-muted);
}

.rating-pill-val {
  font-weight: 700;
  color: #f1f5f9;
}

.log-symptoms-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-bottom: 1rem;
}

.log-symptom-column {
  background: rgba(30, 41, 59, 0.15);
  padding: 1rem 1rem;
  border-radius: 0.6rem;
  font-size: 0.8rem;
}

.log-symptom-column-title {
  color: var(--text-muted);
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.log-symptom-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  color: #e2e8f0;
}

.log-symptom-tag {
  background: rgba(255, 255, 255, 0.05);
  padding: 0rem 0.5rem;
  border-radius: 0.5rem;
}

.log-notes-section {
  background: rgba(30, 41, 59, 0.15);
  padding: 1rem 1rem;
  border-radius: 0.6rem;
  font-size: 0.8rem;
  margin-bottom: 1rem;
}

.log-notes-title {
  color: var(--text-muted);
  font-weight: 600;
  margin-bottom: 0rem;
}

.log-notes-txt {
  color: #cbd5e1;
  font-style: italic;
}

.log-ai-card {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.06), rgba(236, 72, 153, 0.04));
  border: 1px solid rgba(99, 102, 241, 0.1);
  border-radius: 0.75rem;
  padding: 1rem 1rem;
}

.log-ai-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: #a5b4fc;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.log-ai-text {
  font-size: 0.875rem;
  color: #cbd5e1;
  line-height: 1.5;
}

/* Responsive Table */
@media (max-width: 900px) {
  .admin-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .admin-controls-card {
    flex-direction: column;
    align-items: stretch;
  }
  .admin-filters {
    justify-content: flex-end;
  }
  .inspect-details-grid {
    grid-template-columns: 1fr;
  }
}

/* Custom UI/UX Enhancements for Menu Locking */
.btn-lock-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.7);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  backdrop-filter: blur(4px);
  padding: 0;
  flex-shrink: 0;
}

.btn-lock-item:hover {
  background: rgba(255, 255, 255, 0.15);
  color: #fff;
  transform: scale(1.1);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.btn-lock-item.locked {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.2), rgba(5, 150, 105, 0.4));
  border-color: rgba(16, 185, 129, 0.5);
  color: #10b981;
  box-shadow: 0 0 15px rgba(16, 185, 129, 0.3);
}

.btn-lock-item.locked:hover {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.3), rgba(5, 150, 105, 0.5));
  box-shadow: 0 0 20px rgba(16, 185, 129, 0.5);
  transform: scale(1.1);
}

.btn-lock-item.unlocked {
  color: #FFF;
}

/* --- Extra Calories Card Styles --- */
.extra-calories-card {
  margin-bottom: 2rem;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 16px;
  /* Glassmorphism effect */
  backdrop-filter: blur(10px);
  transition: all 0.3s ease;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.extra-calories-card:hover {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 142, 139, 0.3);
  box-shadow: 0 8px 30px rgba(255, 107, 107, 0.1);
}

.extra-cal-header {
  display: flex;
  align-items: center;
  margin-bottom: 0.5rem;
}

.extra-cal-header .section-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: #fff;
}

.extra-calories-card .subtitle {
  color: rgba(255,255,255,0.85);
  font-size: 0.875rem;
  margin-bottom: 1rem;
}

.extra-cal-input-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 1rem;
}

.extra-cal-input {
  flex: 1;
  padding: 1rem 1rem;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.1) !important;
  background: rgba(0,0,0,0.25) !important;
  color: #fff !important;
  font-size: 1rem;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, background 0.3s ease;
}

.extra-cal-input:focus {
  outline: none;
  border-color: rgba(255, 142, 139, 0.6);
  background: rgba(0,0,0,0.4);
  box-shadow: 0 0 12px rgba(255, 107, 107, 0.2), 0 0 0 3px rgba(255, 107, 107, 0.15);
}

.extra-cal-input:not(:placeholder-shown) {
  border-color: rgba(255, 142, 139, 0.8);
  background: rgba(0,0,0,0.35);
  box-shadow: inset 0 0 8px rgba(255, 142, 139, 0.15);
}

.extra-cal-btn {
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 1.5rem;
  border-radius: 12px;
  background: linear-gradient(135deg, #FF6B6B 0%, #FF8E8B 100%) !important;
  border: none !important;
  color: white !important;
  cursor: pointer;
  font-weight: 600;
  font-size: 1rem;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 15px rgba(255, 107, 107, 0.3);
}

.extra-cal-btn:hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 6px 20px rgba(255, 107, 107, 0.4);
}

.extra-cal-btn:active {
  transform: translateY(1px);
}

.feedback-box {
  padding: 1rem 1rem;
  border-radius: 12px;
  background: rgba(16, 185, 129, 0.1); /* default success */
  border: 1px solid rgba(16, 185, 129, 0.2);
  color: #34d399;
  font-size: 0.875rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  max-height: 150px;
  opacity: 1;
  margin-bottom: 1rem;
  transform: translateY(0);
  transition: max-height 0.4s ease, opacity 0.4s ease, margin-bottom 0.4s ease, padding 0.4s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}

.feedback-box.hidden {
  display: none !important;
  max-height: 0 !important;
  opacity: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  border-width: 0 !important;
  transform: translateY(-10px);
  pointer-events: none;
}

.feedback-box.error-state {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #fca5a5;
  box-shadow: 0 4px 15px rgba(239, 68, 68, 0.1);
  /* Glassmorphism effect */
  backdrop-filter: blur(8px);
}

.extra-cal-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.extra-cal-item {
  background: rgba(255,255,255,0.04);
  padding: 1rem;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.05);
  transition: all 0.3s ease;
  animation: slideInRight 0.4s ease forwards;
}

.extra-cal-item:hover {
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.1);
  transform: translateX(4px);
}

.extra-cal-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}

.extra-cal-item-header strong {
  color: #fff;
  font-size: 1rem;
  word-break: break-word;
  min-width: 0;
  flex: 1;
}

.extra-cal-val {
  color: #FF8E8B;
  font-weight: 600;
  font-size: 0.9rem;
  background: rgba(255, 107, 107, 0.1);
  padding: 0rem 0.5rem;
  border-radius: 20px;
  flex-shrink: 0;
}

.extra-cal-feedback-text {
  font-size: 0.875rem;
  color: #a1a1aa;
  line-height: 1.4;
}

@keyframes slideInRight {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}



/* --- Global Keyboard Accessibility --- */
:focus-visible {
  outline: 2px solid #818cf8 !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.2) !important;
}

@media (max-width: 480px) {
  .meal-item-card {
    flex-wrap: wrap;
    gap: 1rem;
  }
  .meal-clickable-area {
    width: 100%;
    flex: none;
  }
  .meal-actions-group {
    width: 100%;
    justify-content: flex-end;
  }
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyQ0FBMkM7O0FBRTNDO0VBQ0UsV0FBVztFQUNYLHFCQUFxQjtFQUNyQixrQ0FBa0M7RUFDbEMsaUNBQWlDO0VBQ2pDLHlDQUF5QztFQUN6Qyx1QkFBdUI7RUFDdkIseUJBQXlCO0VBQ3pCLHFCQUFxQjs7RUFFckIsb0JBQW9CO0VBQ3BCLDZEQUE2RDtFQUM3RCx1REFBdUQ7RUFDdkQsNkZBQTZGOztFQUU3RiwwQkFBMEI7RUFDMUIsaUJBQWlCO0VBQ2pCLG1CQUFtQjtFQUNuQixpQkFBaUI7RUFDakIsb0JBQW9CO0VBQ3BCLGlCQUFpQjtFQUNqQixrQkFBa0I7QUFDcEI7O0FBRUEsZ0JBQWdCO0FBQ2hCO0VBQ0Usc0JBQXNCO0VBQ3RCLFNBQVM7RUFDVCxVQUFVO0FBQ1o7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMsMEJBQTBCO0VBQzFCLGlDQUFpQztFQUNqQyxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixtQ0FBbUM7RUFDbkMsa0NBQWtDO0FBQ3BDOztBQUVBO0VBQ0UsZUFBZTtFQUNmLFlBQVk7QUFDZDs7QUFFQSw0QkFBNEI7QUFDNUI7RUFDRSxlQUFlO0VBQ2Ysa0JBQWtCO0VBQ2xCLG9CQUFvQjtFQUNwQixVQUFVO0VBQ1YsbUJBQW1CO0VBQ25CLGFBQWE7QUFDZjs7QUFFQTtFQUNFLFNBQVM7RUFDVCxVQUFVO0VBQ1YsV0FBVztFQUNYLFlBQVk7RUFDWix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxZQUFZO0VBQ1osV0FBVztFQUNYLFdBQVc7RUFDWCxZQUFZO0VBQ1oseUJBQXlCO0FBQzNCOztBQUVBLHlCQUF5QjtBQUN6QjtFQUNFLGtCQUFrQjtFQUNsQixXQUFXO0VBQ1gsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxvQkFBb0I7QUFDdEI7O0FBRUEsc0JBQXNCO0FBQ3RCO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixtQkFBbUI7RUFDbkIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsdURBQXVEO0VBQ3ZELDZCQUE2QjtFQUM3QixxQkFBcUI7RUFDckIsb0NBQW9DO0FBQ3RDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixZQUFZO0FBQ2Q7O0FBRUEscUJBQXFCO0FBQ3JCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsbUNBQW1DO0VBQ25DLHlDQUF5QztFQUN6QyxjQUFjO0VBQ2QscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGNBQWM7RUFDZCxjQUFjO0VBQ2Qsb0RBQW9EO0FBQ3REOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1oscUNBQXFDO0VBQ3JDLHFDQUFxQztFQUNyQyxxQ0FBcUM7RUFDckMscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLFlBQVk7RUFDWixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0FBQ3pCOzs7QUFHQSxpQ0FBaUM7QUFDakM7RUFDRSxnQkFBZ0I7RUFDaEIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLFlBQVk7RUFDWixvQkFBb0I7RUFDcEIsa0RBQWtEO0FBQ3BEOztBQUVBO0VBQ0UsdUJBQXVCO0VBQ3ZCLDRCQUE0QjtFQUM1QixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQiwwQkFBMEI7RUFDMUIsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2Qiw0QkFBNEI7RUFDNUIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFlBQVk7QUFDZDs7QUFFQSx1QkFBdUI7QUFDdkI7RUFDRSx3Q0FBd0M7QUFDMUM7O0FBRUE7RUFDRTtJQUNFLFVBQVU7SUFDViwyQkFBMkI7RUFDN0I7RUFDQTtJQUNFLFVBQVU7SUFDVix3QkFBd0I7RUFDMUI7QUFDRjs7QUFFQSwwQkFBMEI7QUFDMUI7RUFDRSxnQkFBZ0I7RUFDaEIsd0JBQXdCO0VBQ3hCLDJCQUEyQjtFQUMzQixxQ0FBcUM7RUFDckMscUJBQXFCO0VBQ3JCLGVBQWU7RUFDZiwyQkFBMkI7RUFDM0IsMENBQTBDO0FBQzVDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLFdBQVc7QUFDYjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHNCQUFzQjtFQUN0Qix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSwyQkFBMkI7RUFDM0IsMkNBQTJDO0VBQzNDLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2Isb0JBQW9CO0VBQ3BCLDhCQUE4QjtBQUNoQzs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsZUFBZTtBQUNqQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLG1DQUFtQztFQUNuQyx5Q0FBeUM7RUFDekMsY0FBYztFQUNkLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7O0FBRUEsNkJBQTZCO0FBQzdCO0VBQ0UsZ0JBQWdCO0VBQ2hCLHdCQUF3QjtFQUN4QixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixxQkFBcUI7RUFDckIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsOERBQThEO0VBQzlELDZCQUE2QjtFQUM3QixxQkFBcUI7RUFDckIsb0NBQW9DO0FBQ3RDOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLDRCQUE0QjtFQUM1QixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLHNCQUFzQjtFQUN0QixxQkFBcUI7RUFDckIsOENBQThDO0VBQzlDLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHNCQUFzQjtFQUN0Qiw4Q0FBOEM7QUFDaEQ7O0FBRUE7RUFDRSxjQUFjO0VBQ2QscUJBQXFCO0VBQ3JCLHVCQUF1QjtFQUN2Qiw0QkFBNEI7RUFDNUIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQiwyQ0FBMkM7RUFDM0MscUJBQXFCO0VBQ3JCLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2YsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UscUNBQXFDO0VBQ3JDLDBCQUEwQjtFQUMxQixzQ0FBc0M7QUFDeEM7OztBQUdBLHdDQUF3QztBQUN4QztFQUNFLGdCQUFnQjtFQUNoQixpQkFBaUI7RUFDakIsMkJBQTJCO0VBQzNCLHFDQUFxQztFQUNyQyxzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLDJCQUEyQjtFQUMzQiwwQ0FBMEM7QUFDNUM7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLDRCQUE0QjtFQUM1QixrQkFBa0I7RUFDbEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLFNBQVM7QUFDWDs7QUFFQTtFQUNFLG1DQUFtQztFQUNuQyxZQUFZO0VBQ1osZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLFdBQVc7RUFDWCxnREFBZ0Q7QUFDbEQ7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsWUFBWTtFQUNaLG1CQUFtQjtBQUNyQjs7QUFFQSxxQ0FBcUM7QUFDckM7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLFNBQVM7QUFDWDs7QUFFQTtFQUNFLGlDQUFpQztFQUNqQywyQ0FBMkM7RUFDM0Msc0JBQXNCO0VBQ3RCLG9CQUFvQjtFQUNwQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsNEJBQTRCO0VBQzVCLHlCQUF5QjtFQUN6QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSx1Q0FBdUM7RUFDdkMsWUFBWTtBQUNkOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLHFCQUFxQjtFQUNyQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLG9CQUFvQjtFQUNwQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQix1QkFBdUI7RUFDdkIsbUJBQW1CO0VBQ25CLDBCQUEwQjtFQUMxQixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHNCQUFzQjtFQUN0Qix3QkFBd0I7RUFDeEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLFNBQVM7QUFDWDs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLHVCQUF1QjtFQUN2QixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxPQUFPO0FBQ1Q7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMsWUFBWTtFQUNaLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0Qiw0Q0FBNEM7RUFDNUMsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsMkJBQTJCO0VBQzNCLDRDQUE0QztBQUM5Qzs7QUFFQSw2QkFBNkI7QUFDN0I7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYiwyREFBMkQ7RUFDM0QsV0FBVztFQUNYLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixxQ0FBcUM7RUFDckMsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCwyQkFBMkI7QUFDN0I7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLDBDQUEwQztFQUMxQyxvQkFBb0I7QUFDdEI7O0FBRUE7RUFDRSwwQ0FBMEM7RUFDMUMsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsMENBQTBDO0VBQzFDLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtBQUMxQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixnQ0FBZ0M7RUFDaEMsU0FBUztBQUNYOztBQUVBO0VBQ0U7SUFDRSwwQkFBMEI7RUFDNUI7QUFDRjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLFlBQVk7QUFDZDs7QUFFQTtFQUNFLDJCQUEyQjtFQUMzQixxQ0FBcUM7RUFDckMsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGdCQUFnQjtFQUNoQixtQkFBbUI7QUFDckI7O0FBRUEsZ0JBQWdCLGNBQWMsRUFBRTtBQUNoQyxrQkFBa0IsY0FBYyxFQUFFO0FBQ2xDLGNBQWMsY0FBYyxFQUFFOztBQUU5QjtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsWUFBWTtBQUNkOztBQUVBLHVCQUF1QjtBQUN2QjtFQUNFLGtDQUFrQztFQUNsQywyQ0FBMkM7RUFDM0Msc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLG1CQUFtQjtFQUNuQix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxzQ0FBc0M7RUFDdEMsaUNBQWlDO0FBQ25DOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QsT0FBTztFQUNQLGVBQWU7RUFDZixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIsMkNBQTJDO0VBQzNDLHlCQUF5QjtFQUN6QixjQUFjO0VBQ2QsVUFBVTtFQUNWLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLFVBQVU7QUFDWjs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2Qsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQix3QkFBd0I7RUFDeEIsbUJBQW1CO0VBQ25CLG1CQUFtQjtFQUNuQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHdCQUF3QjtFQUN4QixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSwwQ0FBMEM7RUFDMUMsY0FBYztFQUNkLHlDQUF5QztBQUMzQzs7QUFFQTtFQUNFLDJDQUEyQztFQUMzQyxjQUFjO0VBQ2QsMENBQTBDO0FBQzVDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsd0JBQXdCO0VBQ3hCLHFCQUFxQjtFQUNyQix5Q0FBeUM7RUFDekMsY0FBYztFQUNkLHlDQUF5QztFQUN6QyxtQkFBbUI7RUFDbkIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLDBDQUEwQztBQUM1Qzs7QUFFQSx1QkFBdUI7QUFDdkI7RUFDRSxtRkFBbUY7RUFDbkYsMENBQTBDO0VBQzFDLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2Isa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFVBQVU7RUFDVixZQUFZO0VBQ1osWUFBWTtFQUNaLGFBQWE7RUFDYixpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSwwQkFBMEI7RUFDMUIsY0FBYztFQUNkLHFEQUFxRDtBQUN2RDs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLHNCQUFzQjtFQUN0QixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxXQUFXO0VBQ1gsdUJBQXVCO0VBQ3ZCLDhDQUE4QztFQUM5QyxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsOENBQThDO0FBQ2hEOztBQUVBLGlDQUFpQztBQUNqQztFQUNFLGtCQUFrQjtFQUNsQiwyQkFBMkI7RUFDM0IsMENBQTBDO0VBQzFDLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2YsZ0RBQWdEO0VBQ2hELDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UscUNBQXFDO0VBQ3JDLDhCQUE4QjtFQUM5QixxQkFBcUI7RUFDckIsZ0NBQWdDO0VBQ2hDLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIsWUFBWTtBQUNkOztBQUVBLDRCQUE0QjtBQUM1QjtFQUNFLGVBQWU7RUFDZixjQUFjO0VBQ2QsYUFBYTtFQUNiLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLG1DQUFtQztFQUNuQyxZQUFZO0VBQ1osYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxnREFBZ0Q7QUFDbEQ7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsY0FBYztFQUNkLFFBQVE7RUFDUixZQUFZO0VBQ1osYUFBYTtFQUNiLGtDQUFrQztFQUNsQyxxQ0FBcUM7RUFDckMsc0JBQXNCO0VBQ3RCLDBDQUEwQztFQUMxQyxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQiwyQkFBMkI7RUFDM0IsOERBQThEO0FBQ2hFOztBQUVBO0VBQ0U7SUFDRSxVQUFVO0lBQ1YsdUNBQXVDO0VBQ3pDO0VBQ0E7SUFDRSxVQUFVO0lBQ1YsaUNBQWlDO0VBQ25DO0FBQ0Y7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMsWUFBWTtFQUNaLGFBQWE7RUFDYixhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLG1CQUFtQjtFQUNuQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFdBQVc7QUFDYjs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osWUFBWTtBQUNkOztBQUVBO0VBQ0UsVUFBVTtBQUNaOztBQUVBO0VBQ0UsT0FBTztFQUNQLGdCQUFnQjtFQUNoQixnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsV0FBVztBQUNiOztBQUVBO0VBQ0UsMkJBQTJCO0FBQzdCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsWUFBWTtFQUNaLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxvQkFBb0I7RUFDcEIsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixjQUFjO0VBQ2QsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsaUNBQWlDO0VBQ2pDLDJDQUEyQztFQUMzQyxjQUFjO0VBQ2QsK0JBQStCO0FBQ2pDOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixnQ0FBZ0M7QUFDbEM7O0FBRUEsOEJBQThCO0FBQzlCO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsa0JBQWtCO0VBQ2xCLDJDQUEyQztBQUM3Qzs7QUFFQSwyQkFBMkIscUJBQXFCLEVBQUU7QUFDbEQsMkJBQTJCLHFCQUFxQixFQUFFOztBQUVsRDtFQUNFLFdBQVcsd0JBQXdCLEVBQUU7RUFDckMsTUFBTSwyQkFBMkIsRUFBRTtBQUNyQzs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQix5Q0FBeUM7RUFDekMsYUFBYTtFQUNiLFdBQVc7RUFDWCw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxPQUFPO0VBQ1AsMkJBQTJCO0VBQzNCLHFDQUFxQztFQUNyQyxxQkFBcUI7RUFDckIsb0JBQW9CO0VBQ3BCLFlBQVk7RUFDWixhQUFhO0VBQ2IsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLFlBQVk7RUFDWixtQkFBbUI7QUFDckI7O0FBRUEsMEJBQTBCO0FBQzFCO0VBQ0UsZUFBZTtFQUNmLFFBQVE7RUFDUixzQ0FBc0M7RUFDdEMsMEJBQTBCO0VBQzFCLGFBQWE7RUFDYixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIscUNBQXFDO0VBQ3JDLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQiwwQ0FBMEM7RUFDMUMsNkRBQTZEO0FBQy9EOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixvQkFBaUI7S0FBakIsaUJBQWlCO0VBQ2pCLGFBQWE7QUFDZjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixRQUFRO0VBQ1IseURBQXlEO0FBQzNEOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLFNBQVM7RUFDVCxXQUFXO0VBQ1gsK0JBQStCO0VBQy9CLFlBQVk7RUFDWixjQUFjO0VBQ2QsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QiwwQkFBMEI7QUFDNUI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsZUFBZTtFQUNmLFlBQVk7RUFDWixhQUFhO0FBQ2Y7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsWUFBWTtBQUNkOztBQUVBO0VBQ0UseUNBQXlDO0VBQ3pDLGNBQWM7RUFDZCx5Q0FBeUM7RUFDekMsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLDBDQUEwQztFQUMxQyxjQUFjO0VBQ2QsMENBQTBDO0VBQzFDLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsdUJBQXVCO0VBQ3ZCLHFCQUFxQjtFQUNyQiwwQkFBMEI7RUFDMUIscUJBQXFCO0VBQ3JCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLDJDQUEyQztBQUM3Qzs7QUFFQTtFQUNFLE9BQU87RUFDUCxnQkFBZ0I7RUFDaEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLDBDQUEwQztFQUMxQyxzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsWUFBWTtBQUNkOztBQUVBLGFBQWEsY0FBYyxFQUFFO0FBQzdCLGtCQUFrQixZQUFZLEVBQUUsZ0JBQWdCLEVBQUU7O0FBRWxEO0VBQ0Usa0JBQWtCO0VBQ2xCLDRCQUE0QjtFQUM1QixrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIscUNBQXFDO0VBQ3JDLHdCQUF3QjtFQUN4QixzQkFBc0I7RUFDdEIscUNBQXFDO0FBQ3ZDOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixZQUFZO0VBQ1osa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLHdCQUF3QjtFQUN4QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLFlBQVk7RUFDWixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRTtJQUNFLDBCQUEwQjtFQUM1QjtBQUNGOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGNBQWM7RUFDZCxxQ0FBcUM7RUFDckMscUNBQXFDO0VBQ3JDLHdCQUF3QjtFQUN4QixzQkFBc0I7RUFDdEIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxXQUFXO0VBQ1gscUJBQXFCO0VBQ3JCLGNBQWM7RUFDZCxlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsU0FBUztFQUNULGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLG9DQUFvQztFQUNwQyxvQkFBb0I7RUFDcEIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixjQUFjO0VBQ2Qsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLGNBQWM7RUFDZCxpQkFBaUI7QUFDbkI7O0FBRUEsb0NBQW9DO0FBQ3BDO0VBQ0UsZUFBZTtFQUNmLFFBQVE7RUFDUixzQ0FBc0M7RUFDdEMsYUFBYTtFQUNiLGFBQWE7RUFDYixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsNENBQTRDO0VBQzVDLGtCQUFrQjtFQUNsQixhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLG1CQUFtQjtFQUNuQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsV0FBVztBQUNiOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixTQUFTO0FBQ1g7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIsNEJBQTRCO0VBQzVCLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsb0JBQW9CO0FBQ3RCOztBQUVBO0VBQ0UsWUFBWTtBQUNkOztBQUVBO0VBQ0UsbUJBQW1CO0VBQ25CLFlBQVk7RUFDWixnQkFBZ0I7RUFDaEIsa0JBQWtCO0VBQ2xCLHVCQUF1QjtFQUN2QixxQkFBcUI7RUFDckIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxPQUFPO0VBQ1AsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2IsdUJBQXVCO0VBQ3ZCLHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osNEJBQTRCO0VBQzVCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osMENBQTBDO0VBQzFDLHlCQUF5QjtFQUN6QixrQkFBa0I7RUFDbEIsb0NBQW9DO0VBQ3BDLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLEtBQUsseUJBQXlCLEVBQUU7QUFDbEM7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLFlBQVk7RUFDWixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0FBQ2Y7O0FBRUEsaURBQWlEO0FBQ2pEO0VBQ0UsV0FBVztFQUNYLGdCQUFnQjtFQUNoQix1QkFBdUI7RUFDdkIsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixlQUFlO0VBQ2YsMENBQTBDO0VBQzFDLGlDQUFpQztBQUNuQzs7QUFFQSwrQ0FBK0M7QUFDL0M7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGFBQWE7RUFDYixjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxzQ0FBc0M7RUFDdEMsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxxQkFBcUI7RUFDckIseUJBQXlCO0VBQ3pCLHFCQUFxQjtFQUNyQixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxTQUFTO0VBQ1QsNkJBQTZCO0VBQzdCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLHNDQUFzQztFQUN0QyxlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLHlCQUFpQjtLQUFqQixzQkFBaUI7VUFBakIsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0UsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixzQkFBc0I7RUFDdEIseUJBQXlCO0VBQ3pCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHFDQUFxQztFQUNyQyxTQUFTO0FBQ1g7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixjQUFjO0VBQ2QseUJBQXlCO0VBQ3pCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLDZCQUE2QjtFQUM3QixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsY0FBYztFQUNkLGdCQUFnQjtFQUNoQixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsc0NBQXNDO0VBQ3RDLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2Qsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLDhCQUE4QjtFQUM5QixxQkFBcUI7RUFDckIsb0JBQW9CO0VBQ3BCLHVCQUF1QjtFQUN2Qix5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxzQ0FBc0M7RUFDdEMsa0JBQWtCO0VBQ2xCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixZQUFZO0VBQ1osaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixxQkFBcUI7RUFDckIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHFDQUFxQztFQUNyQyxTQUFTO0VBQ1QscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLHNCQUFzQjtFQUN0QixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIsZ0NBQWdDO0VBQ2hDLGtCQUFrQjtFQUNsQixzQkFBc0I7RUFDdEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixzQkFBc0I7RUFDdEIseUJBQXlCO0VBQ3pCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsWUFBWTtFQUNaLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxlQUFlO0VBQ2Ysc0JBQXNCO0VBQ3RCLG9CQUFpQjtLQUFqQixpQkFBaUI7RUFDakIseUJBQXlCO0VBQ3pCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsbUJBQW1CO0VBQ25CLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLHdCQUF3QjtFQUN4QixxQkFBcUI7RUFDckIseUJBQXlCO0FBQzNCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QscUJBQXFCO0VBQ3JCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsU0FBUztBQUNYOztBQUVBO0VBQ0UsNkJBQTZCO0VBQzdCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYixXQUFXO0VBQ1gsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIseUJBQXlCO0VBQ3pCLG1CQUFtQjtFQUNuQixjQUFjO0VBQ2QsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSx5QkFBeUI7RUFDekIseUJBQXlCO0VBQ3pCLDhCQUE4QjtFQUM5QixzQkFBc0I7RUFDdEIscUJBQXFCO0VBQ3JCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYixzQkFBc0I7RUFDdEIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUEsb0JBQW9CO0FBQ3BCO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBLFFBQVEsZ0JBQWdCLEVBQUU7QUFDMUIsUUFBUSxrQkFBa0IsRUFBRTtBQUM1QixRQUFRLHFCQUFxQixFQUFFOztBQUUvQiwwQkFBMEI7QUFDMUI7RUFDRSx3Q0FBd0M7RUFDeEM7SUFDRSx5QkFBeUI7SUFDekIsZUFBZTtJQUNmLE1BQU07SUFDTixPQUFPO0lBQ1AsUUFBUTtJQUNSLFNBQVM7SUFDVCx5QkFBeUI7SUFDekIsMEJBQTBCO0lBQzFCLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsYUFBYTtFQUNmOztFQUVBO0lBQ0Usa0NBQWtDO0lBQ2xDLHVCQUF1QjtJQUN2QixpQ0FBaUM7SUFDakMseUJBQXlCO0VBQzNCOztFQUVBLDhEQUE4RDtFQUM5RDtJQUNFLHlCQUF5QjtJQUN6QixrQ0FBa0M7SUFDbEMsMkJBQTJCO0lBQzNCLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIsdUJBQXVCO0lBQ3ZCLHNCQUFzQjtJQUN0Qix1QkFBdUI7SUFDdkIsNEJBQTRCO0VBQzlCOztFQUVBLGlGQUFpRjtFQUNqRjs7Ozs7Ozs7O0lBU0Usd0JBQXdCO0VBQzFCOztFQUVBO0lBQ0UsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixrQ0FBa0M7SUFDbEMsd0JBQXdCO0lBQ3hCLHlCQUF5QjtFQUMzQjs7RUFFQTtJQUNFLDRCQUE0QjtJQUM1QixxQkFBcUI7SUFDckIseUJBQXlCO0VBQzNCOztFQUVBO0lBQ0UsMkJBQTJCO0lBQzNCLDJCQUEyQjtJQUMzQixxQkFBcUI7SUFDckIsc0JBQXNCO0lBQ3RCLDBCQUEwQjtJQUMxQix5QkFBeUI7SUFDekIsa0NBQWtDO0lBQ2xDLHVCQUF1QjtFQUN6Qjs7RUFFQSwrREFBK0Q7RUFDL0Q7SUFDRSx3QkFBd0I7RUFDMUI7QUFDRjs7QUFFQSx5REFBeUQ7QUFDekQ7RUFDRSxRQUFRO0VBQ1IsWUFBWTtBQUNkOztBQUVBLDJDQUEyQztBQUMzQztFQUNFO0lBQ0UsNkNBQTZDO0lBQzdDLFlBQVk7RUFDZDtFQUNBO0lBQ0Usa0RBQWtEO0lBQ2xELFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0U7SUFDRSxRQUFRO0lBQ1IsVUFBVTtFQUNaO0VBQ0E7SUFDRSxVQUFVO0VBQ1o7RUFDQTtJQUNFLFVBQVU7RUFDWjtFQUNBO0lBQ0UsVUFBVTtJQUNWLFVBQVU7RUFDWjtBQUNGOztBQUVBO0VBQ0UsNkZBQTZGO0VBQzdGLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sU0FBUztFQUNULFVBQVU7RUFDVix3REFBd0Q7RUFDeEQsOENBQThDO0VBQzlDLDRGQUE0RjtFQUM1RixvQkFBb0I7RUFDcEIsV0FBVztBQUNiOztBQUVBO0VBQ0UscUJBQXFCO0VBQ3JCLFVBQVU7RUFDVixzQ0FBc0M7RUFDdEMsaUJBQWlCO0VBQ2pCOzs2REFFMkQ7RUFDM0QsZ0RBQWdEO0VBQ2hELHVDQUF1QztBQUN6Qzs7QUFFQTtFQUNFLFVBQVU7RUFDVixpQ0FBaUM7RUFDakMsZUFBZTtBQUNqQjs7QUFFQSxpREFBaUQ7QUFDakQsaURBQWlEO0FBQ2pELGlEQUFpRDs7QUFFakQ7RUFDRSxzQ0FBc0M7QUFDeEM7QUFDQTtFQUNFLG1DQUFtQztFQUNuQyxjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixTQUFTO0VBQ1QsT0FBTztFQUNQLFFBQVE7RUFDUixXQUFXO0VBQ1gsWUFBWTtFQUNaLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFVBQVU7RUFDVixlQUFlO0VBQ2YsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSwwQkFBMEI7RUFDMUIsWUFBWTtBQUNkOztBQUVBLHdCQUF3QjtBQUN4QjtFQUNFLGtDQUFrQztFQUNsQywyQkFBMkI7RUFDM0IsbUNBQW1DO0VBQ25DLDJDQUEyQztFQUMzQyxxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLFVBQVU7RUFDVixpQkFBaUI7RUFDakIsYUFBYTtFQUNiLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsZ0JBQWdCO0VBQ2hCLG1FQUFtRTtBQUNyRTs7QUFFQTtFQUNFLE9BQU8sVUFBVSxFQUFFLHVDQUF1QyxFQUFFO0VBQzVELEtBQUssVUFBVSxFQUFFLGlDQUFpQyxFQUFFO0FBQ3REOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixTQUFTO0VBQ1QscUJBQXFCO0VBQ3JCLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2QsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0VBQ1gsT0FBTztBQUNUOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQSxjQUFjO0FBQ2Q7RUFDRSxhQUFhO0VBQ2IsV0FBVztFQUNYLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLHFDQUFxQztFQUNyQyx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsMkNBQTJDO0VBQzNDLFdBQVc7RUFDWCxrQkFBa0I7QUFDcEI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUEsbUJBQW1CO0FBQ25CO0VBQ0UsYUFBYTtFQUNiLHlDQUF5QztBQUMzQzs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxPQUFPLFVBQVUsRUFBRSwyQkFBMkIsRUFBRTtFQUNoRCxLQUFLLFVBQVUsRUFBRSx3QkFBd0IsRUFBRTtBQUM3Qzs7QUFFQTtFQUNFLGlDQUFpQztFQUNqQyxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLGNBQWM7RUFDZCxxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLHFCQUFxQjtBQUN2Qjs7QUFFQSx1QkFBdUI7QUFDdkI7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsV0FBVztFQUNYLFlBQVk7RUFDWixrQkFBa0I7RUFDbEIseUNBQXlDO0VBQ3pDLG1DQUFtQztFQUNuQyxjQUFjO0VBQ2QsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0FBQ3pCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLHFCQUFxQjtFQUNyQixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsaUNBQWlDO0VBQ2pDLHVCQUF1QjtFQUN2QixZQUFZO0VBQ1osZ0RBQWdEO0VBQ2hELGNBQWM7RUFDZCxrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLDZCQUE2QjtBQUMvQjs7QUFFQTtFQUNFLDRCQUE0QjtBQUM5Qjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBLGdCQUFnQjtBQUNoQjtFQUNFLGtCQUFrQjtFQUNsQixpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLHNCQUFzQjtFQUN0QixtQkFBbUI7RUFDbkIscUJBQXFCO0VBQ3JCLG1CQUFtQjtFQUNuQix1QkFBa0I7RUFBbEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLGNBQWM7RUFDZCx5Q0FBeUM7QUFDM0M7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMsY0FBYztFQUNkLHlDQUF5QztBQUMzQzs7QUFFQTtFQUNFLG9DQUFvQztFQUNwQyxjQUFjO0VBQ2QsMkNBQTJDO0FBQzdDOztBQUVBLGdCQUFnQjtBQUNoQjtFQUNFLGFBQWE7RUFDYixXQUFXO0VBQ1gsdUJBQXVCO0VBQ3ZCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osc0JBQXNCO0VBQ3RCLDJDQUEyQztFQUMzQyxpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZix5QkFBeUI7RUFDekIsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7QUFDekI7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMscUNBQXFDO0VBQ3JDLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLG1DQUFtQztFQUNuQyxxQkFBcUI7RUFDckIsNENBQTRDO0VBQzVDLHFCQUFxQjtBQUN2Qjs7QUFFQSxpQkFBaUI7QUFDakI7RUFDRSxhQUFhO0VBQ2IscUNBQXFDO0VBQ3JDLFdBQVc7RUFDWCxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSx1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLDJDQUEyQztFQUMzQyxpQ0FBaUM7RUFDakMsY0FBYztFQUNkLGtCQUFrQjtFQUNsQixlQUFlO0VBQ2YseUJBQXlCO0VBQ3pCLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLHVDQUF1QztFQUN2QyxpQ0FBaUM7QUFDbkM7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMsc0NBQXNDO0VBQ3RDLGNBQWM7RUFDZCw2Q0FBNkM7QUFDL0M7O0FBRUE7RUFDRSxxQ0FBcUM7RUFDckMsdUNBQXVDO0VBQ3ZDLGNBQWM7RUFDZCw4Q0FBOEM7QUFDaEQ7O0FBRUE7RUFDRSwrQ0FBK0M7RUFDL0MsZ0NBQWdDO0VBQ2hDLHlCQUF5QjtFQUN6Qix1REFBdUQ7RUFDdkQsMkJBQTJCO0FBQzdCOztBQUVBLG1FQUFtRTtBQUNuRTtFQUNFLHNDQUFzQztBQUN4Qzs7QUFFQTtFQUNFLHFDQUFxQztFQUNyQyxvQ0FBb0M7QUFDdEM7O0FBRUE7RUFDRSwrQ0FBK0M7RUFDL0MsZ0RBQWdEO0VBQ2hELHlCQUF5QjtFQUN6Qix3REFBd0Q7RUFDeEQsZ0RBQWdEO0FBQ2xEOztBQUVBO0VBQ0UsV0FBVyw2Q0FBNkMsRUFBRTtFQUMxRCxNQUFNLDRDQUE0QyxFQUFFO0FBQ3REOztBQUVBLGFBQWE7QUFDYjtFQUNFLFdBQVc7RUFDWCxpQ0FBaUM7RUFDakMsMkNBQTJDO0VBQzNDLHNCQUFzQjtFQUN0QixjQUFjO0VBQ2QscUJBQXFCO0VBQ3JCLGlDQUFpQztFQUNqQyxtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGFBQWE7RUFDYiw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxxQ0FBcUM7QUFDdkM7O0FBRUEsa0JBQWtCO0FBQ2xCO0VBQ0Usa0JBQWtCO0VBQ2xCLGtCQUFrQjtBQUNwQjs7QUFFQSxnQ0FBZ0M7QUFDaEM7RUFDRSxhQUFhO0VBQ2IscUNBQXFDO0VBQ3JDLFdBQVc7RUFDWCxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsMkNBQTJDO0VBQzNDLHNCQUFzQjtFQUN0Qix1QkFBdUI7RUFDdkIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCx5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxjQUFjO0FBQ2hCOztBQUVBLDRCQUE0QjtBQUM1QjtFQUNFLHVGQUF1RjtFQUN2RiwwQ0FBMEM7RUFDMUMsbUJBQW1CO0VBQ25CLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2Qsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGNBQWM7RUFDZCxpQkFBaUI7RUFDakIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsV0FBVztFQUNYLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7QUFDcEI7O0FBRUEsZUFBZTtBQUNmO0VBQ0U7SUFDRSxxQ0FBcUM7RUFDdkM7RUFDQTtJQUNFLHFDQUFxQztFQUN2QztFQUNBO0lBQ0UsV0FBVztJQUNYLFlBQVk7SUFDWixpQkFBaUI7RUFDbkI7QUFDRjs7QUFFQSxpREFBaUQ7QUFDakQsaURBQWlEO0FBQ2pELGlEQUFpRDs7QUFFakQ7RUFDRSxlQUFlO0VBQ2YsaUJBQWlCO0VBQ2pCLGNBQWM7RUFDZCxVQUFVO0FBQ1o7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLG1CQUFtQjtFQUNuQixtQkFBbUI7RUFDbkIsa0RBQWtEO0VBQ2xELG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsaUNBQWlDO0VBQ2pDLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsV0FBVztBQUNiOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQix3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMsY0FBYztFQUNkLHdDQUF3QztFQUN4QyxvQkFBb0I7RUFDcEIscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLG9CQUFvQjtFQUNwQixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLG9CQUFvQjtBQUN0Qjs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osNENBQTRDO0FBQzlDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHFDQUFxQztFQUNyQyxXQUFXO0VBQ1gsbUJBQW1CO0FBQ3JCOztBQUVBLGtCQUFrQjtBQUNsQjtFQUNFLGlDQUFpQztFQUNqQywyQkFBMkI7RUFDM0IsMkNBQTJDO0VBQzNDLGdCQUFnQjtFQUNoQixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixtQkFBbUI7RUFDbkIsV0FBVztFQUNYLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsVUFBVTtFQUNWLFFBQVE7RUFDUiwyQkFBMkI7RUFDM0Isd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsV0FBVztFQUNYLGlDQUFpQztFQUNqQywyQ0FBMkM7RUFDM0Msc0JBQXNCO0VBQ3RCLHFDQUFxQztFQUNyQyxjQUFjO0VBQ2QsYUFBYTtFQUNiLGlCQUFpQjtFQUNqQiw2QkFBNkI7QUFDL0I7O0FBRUE7RUFDRSxxQ0FBcUM7QUFDdkM7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsU0FBUztBQUNYOztBQUVBO0VBQ0UsaUNBQWlDO0VBQ2pDLDJDQUEyQztFQUMzQyxjQUFjO0VBQ2Qsd0JBQXdCO0VBQ3hCLHNCQUFzQjtFQUN0QixrQkFBa0I7RUFDbEIsYUFBYTtFQUNiLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxtQkFBbUI7RUFDbkIsY0FBYztBQUNoQjs7QUFFQSx1QkFBdUI7QUFDdkI7RUFDRSxpQ0FBaUM7RUFDakMsMkJBQTJCO0VBQzNCLDJDQUEyQztFQUMzQyxzQkFBc0I7RUFDdEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsV0FBVztFQUNYLHlCQUF5QjtFQUN6QixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHdCQUF3QjtFQUN4QixzQkFBc0I7RUFDdEIsa0RBQWtEO0FBQ3BEOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGtEQUFrRDtFQUNsRCxzQkFBc0I7RUFDdEIsaUJBQWlCO0VBQ2pCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxzQ0FBc0M7QUFDeEM7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0VBQ1osa0JBQWtCO0VBQ2xCLHVGQUF1RjtFQUN2RiwyQ0FBMkM7RUFDM0MsY0FBYztFQUNkLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsdUJBQXVCO0VBQ3ZCLGdCQUFnQjtFQUNoQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsd0JBQXdCO0FBQzFCOztBQUVBLDZCQUE2QjtBQUM3QjtFQUNFLG9DQUFvQztFQUNwQyxjQUFjO0VBQ2QseUNBQXlDO0VBQ3pDLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDs7QUFFQTtFQUNFLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQix5QkFBeUI7RUFDekIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usb0NBQW9DO0VBQ3BDLGNBQWM7RUFDZCwyQ0FBMkM7QUFDN0M7O0FBRUE7RUFDRSxvQ0FBb0M7RUFDcEMsY0FBYztFQUNkLDJDQUEyQztBQUM3Qzs7QUFFQTtFQUNFLG1DQUFtQztFQUNuQyxjQUFjO0VBQ2QsMENBQTBDO0FBQzVDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixXQUFXO0VBQ1gsaUJBQWlCO0FBQ25COztBQUVBO0VBQ0Usd0JBQXdCO0FBQzFCOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMseUNBQXlDO0VBQ3pDLGNBQWM7RUFDZCx1QkFBdUI7RUFDdkIscUJBQXFCO0VBQ3JCLGVBQWU7RUFDZixnQkFBZ0I7RUFDaEIsaUJBQWlCO0VBQ2pCLG9CQUFvQjtFQUNwQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1oscUJBQXFCO0VBQ3JCLDZDQUE2QztBQUMvQzs7QUFFQSxzQ0FBc0M7QUFDdEM7RUFDRSxrQ0FBa0M7RUFDbEMsMkJBQTJCO0VBQzNCLG1DQUFtQztFQUNuQywyQ0FBMkM7RUFDM0Msc0JBQXNCO0VBQ3RCLGdCQUFnQjtFQUNoQixVQUFVO0VBQ1YsaUJBQWlCO0VBQ2pCLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGdCQUFnQjtFQUNoQixtRUFBbUU7QUFDckU7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsa0RBQWtEO0VBQ2xELHVCQUF1QjtBQUN6Qjs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLHdCQUF3QjtFQUN4QixnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLFNBQVM7QUFDWDs7QUFFQTtFQUNFLGlDQUFpQztFQUNqQywyQ0FBMkM7RUFDM0Msc0JBQXNCO0VBQ3RCLGVBQWU7QUFDakI7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2Qsc0JBQXNCO0VBQ3RCLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsV0FBVztBQUNiOztBQUVBO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLGlDQUFpQztFQUNqQyx1QkFBdUI7RUFDdkIsc0JBQXNCO0VBQ3RCLDJDQUEyQztBQUM3Qzs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQix3QkFBd0I7RUFDeEIseUJBQXlCO0VBQ3pCLHNCQUFzQjtBQUN4Qjs7QUFFQTtFQUNFLGdCQUFnQjtFQUNoQixjQUFjO0VBQ2Qsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsaUJBQWlCO0VBQ2pCLGdCQUFnQjtFQUNoQix3QkFBd0I7RUFDeEIseUJBQXlCO0VBQ3pCLHNCQUFzQjtFQUN0QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSxhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQix3QkFBd0I7RUFDeEIsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGVBQWU7RUFDZixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMsY0FBYztFQUNkLHlDQUF5QztFQUN6QyxpQkFBaUI7RUFDakIsZ0JBQWdCO0VBQ2hCLHVCQUF1QjtFQUN2QixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMsY0FBYztFQUNkLDBDQUEwQztBQUM1Qzs7QUFFQSxxQ0FBcUM7QUFDckM7RUFDRSxhQUFhO0VBQ2IsOEJBQThCO0VBQzlCLG1CQUFtQjtFQUNuQixtQkFBbUI7QUFDckI7O0FBRUE7RUFDRSxpQ0FBaUM7RUFDakMsc0JBQXNCO0VBQ3RCLGVBQWU7RUFDZiwyQ0FBMkM7RUFDM0MsYUFBYTtFQUNiLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxVQUFVO0VBQ1YsZUFBZTtFQUNmLGVBQWU7RUFDZixxQkFBcUI7QUFDdkI7O0FBRUE7RUFDRSxnQ0FBZ0M7RUFDaEMsYUFBYTtBQUNmOztBQUVBO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixpQkFBaUI7RUFDakIsd0JBQXdCO0VBQ3hCLG1CQUFtQjtFQUNuQixrQkFBa0I7QUFDcEI7O0FBRUEsd0JBQXdCO0FBQ3hCO0VBQ0Usa0NBQWtDO0VBQ2xDLDJDQUEyQztFQUMzQyxzQkFBc0I7RUFDdEIsc0JBQXNCO0VBQ3RCLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFLGtDQUFrQztFQUNsQyxxQkFBcUI7RUFDckIsYUFBYTtFQUNiLDhCQUE4QjtFQUM5QixtQkFBbUI7RUFDbkIsZUFBZTtFQUNmLDJCQUEyQjtBQUM3Qjs7QUFFQTtFQUNFLGlDQUFpQztBQUNuQzs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsWUFBWTtBQUNkOztBQUVBO0VBQ0UsZ0JBQWdCO0VBQ2hCLGNBQWM7QUFDaEI7O0FBRUE7RUFDRSxrQkFBa0I7RUFDbEIsbUNBQW1DO0VBQ25DLGNBQWM7RUFDZCx1QkFBdUI7RUFDdkIsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixTQUFTO0FBQ1g7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsa0JBQWtCO0FBQ3BCOztBQUVBO0VBQ0UsMEJBQTBCO0VBQzFCLHdCQUF3QjtFQUN4QixzQkFBc0I7QUFDeEI7O0FBRUE7RUFDRSx5QkFBeUI7QUFDM0I7O0FBRUE7RUFDRSxhQUFhO0VBQ2IsZ0JBQWdCO0VBQ2hCLCtDQUErQztFQUMvQyxrQ0FBa0M7RUFDbEMsZ0RBQWdEO0FBQ2xEOztBQUVBO0VBQ0UsY0FBYztBQUNoQjs7QUFFQTtFQUNFLE9BQU8sVUFBVSxFQUFFLDJCQUEyQixFQUFFO0VBQ2hELEtBQUssVUFBVSxFQUFFLHdCQUF3QixFQUFFO0FBQzdDOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHFDQUFxQztFQUNyQyxTQUFTO0VBQ1QsbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsaUNBQWlDO0VBQ2pDLHVCQUF1QjtFQUN2QixxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLGFBQWE7RUFDYiw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRSx3QkFBd0I7QUFDMUI7O0FBRUE7RUFDRSxnQkFBZ0I7RUFDaEIsY0FBYztBQUNoQjs7QUFFQTtFQUNFLGFBQWE7RUFDYiw4QkFBOEI7RUFDOUIsU0FBUztFQUNULG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLGtDQUFrQztFQUNsQyxxQkFBcUI7RUFDckIscUJBQXFCO0VBQ3JCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGVBQWU7RUFDZixZQUFZO0VBQ1osY0FBYztBQUNoQjs7QUFFQTtFQUNFLHFDQUFxQztFQUNyQyx1QkFBdUI7RUFDdkIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0Usa0NBQWtDO0VBQ2xDLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIsaUJBQWlCO0VBQ2pCLG1CQUFtQjtBQUNyQjs7QUFFQTtFQUNFLHdCQUF3QjtFQUN4QixnQkFBZ0I7RUFDaEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsY0FBYztFQUNkLGtCQUFrQjtBQUNwQjs7QUFFQTtFQUNFLHVGQUF1RjtFQUN2Rix5Q0FBeUM7RUFDekMsc0JBQXNCO0VBQ3RCLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLGlCQUFpQjtFQUNqQixnQkFBZ0I7RUFDaEIsY0FBYztFQUNkLHNCQUFzQjtFQUN0QixhQUFhO0VBQ2IsbUJBQW1CO0VBQ25CLFlBQVk7QUFDZDs7QUFFQTtFQUNFLGtCQUFrQjtFQUNsQixjQUFjO0VBQ2QsZ0JBQWdCO0FBQ2xCOztBQUVBLHFCQUFxQjtBQUNyQjtFQUNFO0lBQ0UscUNBQXFDO0VBQ3ZDO0VBQ0E7SUFDRSxzQkFBc0I7SUFDdEIsb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSx5QkFBeUI7RUFDM0I7RUFDQTtJQUNFLDBCQUEwQjtFQUM1QjtBQUNGOztBQUVBLCtDQUErQzs7QUFFL0M7RUFDRSxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsWUFBWTtFQUNaLGtCQUFrQjtFQUNsQixvQ0FBb0M7RUFDcEMsMkNBQTJDO0VBQzNDLGNBQWM7RUFDZCxlQUFlO0VBQ2YsaURBQWlEO0VBQ2pELDBCQUEwQjtFQUMxQixVQUFVO0VBQ1YsY0FBYztBQUNoQjs7QUFFQTtFQUNFLG9DQUFvQztFQUNwQyxXQUFXO0VBQ1gsa0NBQWtDO0VBQ2xDLHNDQUFzQztBQUN4Qzs7QUFFQTtFQUNFLG9DQUFvQztFQUNwQyxxQ0FBcUM7RUFDckMsY0FBYztBQUNoQjs7QUFFQTtFQUNFLG9DQUFvQztFQUNwQyw0Q0FBNEM7QUFDOUM7O0FBRUE7RUFDRSxxREFBcUQ7RUFDckQsV0FBVztBQUNiOztBQUVBLHVDQUF1QztBQUN2QztFQUNFLG1CQUFtQjtFQUNuQixlQUFlO0VBQ2YscUNBQXFDO0VBQ3JDLDJDQUEyQztFQUMzQyxtQkFBbUI7RUFDbkIsMkJBQTJCO0VBQzNCLHlCQUF5QjtFQUN6Qix5Q0FBeUM7QUFDM0M7O0FBRUE7RUFDRSxxQ0FBcUM7RUFDckMsMENBQTBDO0VBQzFDLCtDQUErQztBQUNqRDs7QUFFQTtFQUNFLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGdCQUFnQjtFQUNoQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLFdBQVc7QUFDYjs7QUFFQTtFQUNFLDZCQUE2QjtFQUM3QixrQkFBa0I7RUFDbEIsc0JBQXNCO0FBQ3hCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLGVBQWU7RUFDZixZQUFZO0VBQ1osbUJBQW1CO0FBQ3JCOztBQUVBO0VBQ0UsT0FBTztFQUNQLHFCQUFxQjtFQUNyQixtQkFBbUI7RUFDbkIsdUNBQXVDO0VBQ3ZDLDRCQUE0QjtFQUM1QixXQUFXO0VBQ1gsa0JBQWtCO0VBQ2xCLHlCQUF5QjtBQUMzQjs7QUFFQTtFQUNFLGFBQWE7RUFDYixzQ0FBc0M7RUFDdEMsMkJBQTJCO0VBQzNCLCtDQUErQztBQUNqRDs7QUFFQTtFQUNFLG1CQUFtQjtFQUNuQixvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLHVCQUF1QjtFQUN2QixXQUFXO0VBQ1gsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQiw2REFBNkQ7RUFDN0QsWUFBWTtFQUNaLFlBQVk7RUFDWixlQUFlO0VBQ2YsZ0JBQWdCO0VBQ2hCLGtCQUFrQjtFQUNsQixpREFBaUQ7RUFDakQsK0NBQStDO0FBQ2pEOztBQUVBO0VBQ0UsdUNBQXVDO0VBQ3ZDLCtDQUErQztBQUNqRDs7QUFFQTtFQUNFLDBCQUEwQjtBQUM1Qjs7QUFFQTtFQUNFLHFCQUFxQjtFQUNyQixtQkFBbUI7RUFDbkIsbUNBQW1DLEVBQUUsb0JBQW9CO0VBQ3pELHlDQUF5QztFQUN6QyxjQUFjO0VBQ2Qsa0JBQWtCO0VBQ2xCLG1CQUFtQjtFQUNuQiwyQkFBMkI7RUFDM0IsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQixXQUFXO0FBQ2I7O0FBRUE7RUFDRSxtQ0FBbUM7RUFDbkMsd0NBQXdDO0VBQ3hDLGNBQWM7RUFDZCw2Q0FBNkM7RUFDN0MsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLHNCQUFzQjtFQUN0QixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxrQ0FBa0M7RUFDbEMsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix3Q0FBd0M7RUFDeEMseUJBQXlCO0VBQ3pCLDBDQUEwQztBQUM1Qzs7QUFFQTtFQUNFLGtDQUFrQztFQUNsQyxtQ0FBbUM7RUFDbkMsMEJBQTBCO0FBQzVCOztBQUVBO0VBQ0UsYUFBYTtFQUNiLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsV0FBVztFQUNYLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLFdBQVc7RUFDWCxrQkFBa0I7RUFDbEIsc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWixPQUFPO0FBQ1Q7O0FBRUE7RUFDRSxjQUFjO0VBQ2QsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUNqQixvQ0FBb0M7RUFDcEMsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUNuQixjQUFjO0FBQ2hCOztBQUVBO0VBQ0Usa0JBQWtCO0VBQ2xCLGNBQWM7RUFDZCxnQkFBZ0I7QUFDbEI7O0FBRUE7RUFDRSxPQUFPLFVBQVUsRUFBRSwyQkFBMkIsRUFBRTtFQUNoRCxLQUFLLFVBQVUsRUFBRSx3QkFBd0IsRUFBRTtBQUM3Qzs7QUFFQTtFQUNFLE9BQU8sVUFBVSxFQUFFO0VBQ25CLEtBQUssVUFBVSxFQUFFO0FBQ25COztBQUVBLDBDQUEwQztBQUMxQztFQUNFLHFDQUFxQztFQUNyQyw4QkFBOEI7QUFDaEM7O0FBRUE7RUFDRTtJQUNFLGVBQWU7SUFDZixZQUFZO0VBQ2Q7RUFDQTtJQUNFLFdBQVc7SUFDWCxVQUFVO0VBQ1o7RUFDQTtJQUNFLFdBQVc7SUFDWCx5QkFBeUI7RUFDM0I7QUFDRiIsImZpbGUiOiJzdHlsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBPcHRpbWFsIERpZXQgUGxhbm5lciBDU1MgRGVzaWduIFN5c3RlbSAqL1xyXG5cclxuOnJvb3Qge1xyXG4gIC8qIENvbG9ycyAqL1xyXG4gIC0tYmctZGFya2VzdDogIzAzMDcxMjtcclxuICAtLWJnLXBhbmVsOiByZ2JhKDE3LCAyNCwgMzksIDAuNjUpO1xyXG4gIC0tYmctaW5wdXQ6IHJnYmEoMzEsIDQxLCA1NSwgMC42KTtcclxuICAtLWJvcmRlci1saWdodDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcclxuICAtLXRleHQtcHJpbWFyeTogI2Y4ZmFmYztcclxuICAtLXRleHQtc2Vjb25kYXJ5OiAjOTRhM2I4O1xyXG4gIC0tdGV4dC1tdXRlZDogIzY0NzQ4YjtcclxuICBcclxuICAvKiBCcmFuZCBHcmFkaWVudHMgKi9cclxuICAtLWdyYWQtaW5kaWdvLXBpbms6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2MzY2ZjEsICNlYzQ4OTkpO1xyXG4gIC0tZ3JhZC1ob3ZlcjogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzRmNDZlNSwgI2RiMjc3Nyk7XHJcbiAgLS1ncmFkLWRhcmstZ2xvdzogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5OSwgMTAyLCAyNDEsIDAuMTUpLCByZ2JhKDIzNiwgNzIsIDE1MywgMC4xNSkpO1xyXG5cclxuICAvKiBDb2xvcnMgZm9yIFVJIGRldGFpbHMgKi9cclxuICAtLWMtcGluazogI2Y0NzJiNjtcclxuICAtLWMtaW5kaWdvOiAjODE4Y2Y4O1xyXG4gIC0tYy1ibHVlOiAjNjBhNWZhO1xyXG4gIC0tYy1lbWVyYWxkOiAjMzRkMzk5O1xyXG4gIC0tYy1yb3NlOiAjZjg3MTcxO1xyXG4gIC0tYy1hbWJlcjogI2ZiYmYyNDtcclxufVxyXG5cclxuLyogQmFzZSBTdHlsZXMgKi9cclxuKiB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuICBtYXJnaW46IDA7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG5cclxuYm9keSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYmctZGFya2VzdCk7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtcHJpbWFyeSk7XHJcbiAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmO1xyXG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xyXG4gIG92ZXJmbG93LXg6IGhpZGRlbjtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XHJcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcclxufVxyXG5cclxuc3ZnIHtcclxuICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4vKiBCYWNrZ3JvdW5kIEFtYmllbnQgT3JicyAqL1xyXG4uYW1iaWVudC1nbG93IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG4gIHotaW5kZXg6IDA7XHJcbiAgZmlsdGVyOiBibHVyKDEyMHB4KTtcclxuICBvcGFjaXR5OiAwLjEyO1xyXG59XHJcblxyXG4uYmctZ2xvdy1pbmRpZ28ge1xyXG4gIHRvcDogLTEwJTtcclxuICBsZWZ0OiAtMTAlO1xyXG4gIHdpZHRoOiA0NXZ3O1xyXG4gIGhlaWdodDogNDV2dztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjM2NmYxO1xyXG59XHJcblxyXG4uYmctZ2xvdy1waW5rIHtcclxuICBib3R0b206IC0xMCU7XHJcbiAgcmlnaHQ6IC0xMCU7XHJcbiAgd2lkdGg6IDQ1dnc7XHJcbiAgaGVpZ2h0OiA0NXZ3O1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNlYzQ4OTk7XHJcbn1cclxuXHJcbi8qIEFwcCBMYXlvdXQgQ29udGFpbmVyICovXHJcbi5hcHAtY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgei1pbmRleDogMTA7XHJcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgcGFkZGluZzogMnJlbSAxLjVyZW07XHJcbn1cclxuXHJcbi8qIEdsb2JhbCBBcHAgSGVhZGVyICovXHJcbi5hcHAtaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDMuNXJlbTtcclxufVxyXG5cclxuLmxvZ28ge1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjAzZW07XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCAjODE4Y2Y4LCAjZjQ3MmI2KTtcclxuICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICBiYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XHJcbiAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xyXG59XHJcblxyXG4uaGVhZGVyLWFjdGlvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDEuMjVyZW07XHJcbn1cclxuXHJcbi8qIEJhZGdlcyAmIEF2YXRhcnMgKi9cclxuLnN0cmVhay1iYWRnZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjEpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjIpO1xyXG4gIGNvbG9yOiAjZmRiYTc0O1xyXG4gIHBhZGRpbmc6IDAuNDVyZW0gMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiA5OTk5cHg7XHJcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbn1cclxuXHJcbi5maXJlLWljb24ge1xyXG4gIHdpZHRoOiAxLjFyZW07XHJcbiAgaGVpZ2h0OiAxLjFyZW07XHJcbiAgY29sb3I6ICNmOTczMTY7XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNHB4IHJnYmEoMjQ5LCAxMTUsIDIyLCAwLjUpKTtcclxufVxyXG5cclxuLnVzZXItYmFkZ2Uge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDAuNzVyZW07XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xyXG4gIHBhZGRpbmc6IDAuMzVyZW0gMXJlbSAwLjM1cmVtIDAuMzVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xyXG59XHJcblxyXG4uYXZhdGFyIHtcclxuICB3aWR0aDogMi4ycmVtO1xyXG4gIGhlaWdodDogMi4ycmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkLWluZGlnby1waW5rKTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG59XHJcblxyXG4udXNlcm5hbWUtdHh0IHtcclxuICBmb250LXNpemU6IDAuODc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgY29sb3I6ICNlMmU4ZjA7XHJcbiAgbWF4LXdpZHRoOiAxMjBweDtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbn1cclxuXHJcblxyXG4vKiBUeXBvZ3JhcGh5ICYgR2VuZXJhbCBCdXR0b25zICovXHJcbmgxLCBoMiwgaDMsIGg0IHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMmVtO1xyXG59XHJcblxyXG5idXR0b24ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBib3JkZXI6IG5vbmU7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMjVzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XHJcbn1cclxuXHJcbi5idG4tdGV4dCB7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcclxuICBmb250LXNpemU6IDAuODc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxufVxyXG5cclxuLmJ0bi10ZXh0OmhvdmVyIHtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeSB7XHJcbiAgYmFja2dyb3VuZDogIzYzNjZmMTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xyXG4gIHBhZGRpbmc6IDAuODVyZW0gMS41cmVtO1xyXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcbn1cclxuXHJcbi5idG4tcHJpbWFyeTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogIzRmNDZlNTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XHJcbn1cclxuXHJcbi5idG4tc2Vjb25kYXJ5IHtcclxuICBiYWNrZ3JvdW5kOiAjZWM0ODk5O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XHJcbiAgcGFkZGluZzogMC44NXJlbSAxLjVyZW07XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxufVxyXG5cclxuLmJ0bi1zZWNvbmRhcnk6aG92ZXIge1xyXG4gIGJhY2tncm91bmQ6ICNkYjI3Nzc7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xyXG59XHJcblxyXG4uYnRuLWxpbmsge1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiAjODE4Y2Y4O1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zaXplOiBpbmhlcml0O1xyXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gIHRleHQtdW5kZXJsaW5lLW9mZnNldDogNHB4O1xyXG59XHJcblxyXG4uYnRuLWxpbms6aG92ZXIge1xyXG4gIGNvbG9yOiAjYTViNGZjO1xyXG59XHJcblxyXG4uYnRuLWJhY2sge1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG59XHJcblxyXG4uYnRuLWJhY2s6aG92ZXIge1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLyogU2NyZWVuIFRyYW5zaXRpb25zICovXHJcbi5zY3JlZW4tZmFkZSB7XHJcbiAgYW5pbWF0aW9uOiBmYWRlSW4gMC40cyBlYXNlLW91dCBmb3J3YXJkcztcclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW4ge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgxMnB4KTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcclxuICB9XHJcbn1cclxuXHJcbi8qIFNDUkVFTjogQXV0aCBCb3ggQ2FyZCAqL1xyXG4uYXV0aC1ib3gge1xyXG4gIG1heC13aWR0aDogNDQwcHg7XHJcbiAgbWFyZ2luOiA0cmVtIGF1dG8gMCBhdXRvO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLXBhbmVsKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEuNXJlbTtcclxuICBwYWRkaW5nOiAyLjVyZW07XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xyXG4gIGJveC1zaGFkb3c6IDAgMjBweCA0MHB4IHJnYmEoMCwgMCwgMCwgMC40KTtcclxufVxyXG5cclxuLmF1dGgtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS44NXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbn1cclxuXHJcbi5hdXRoLWZvcm0ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IDEuMjVyZW07XHJcbn1cclxuXHJcbi5mb3JtLWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAwLjVyZW07XHJcbn1cclxuXHJcbi5mb3JtLWdyb3VwIGxhYmVsIHtcclxuICBmb250LXNpemU6IDAuNzVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XHJcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCBpbnB1dCwgLmZvcm0tc3RhY2sgc2VsZWN0IHtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1pbnB1dCk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcclxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xyXG4gIHBhZGRpbmc6IDAuODVyZW0gMXJlbTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMjVzO1xyXG59XHJcblxyXG4uZm9ybS1ncm91cCBpbnB1dDpmb2N1cywgLmZvcm0tc3RhY2sgc2VsZWN0OmZvY3VzIHtcclxuICBib3JkZXItY29sb3I6ICM4MThjZjg7XHJcbn1cclxuXHJcbi5hdXRoLXN1Ym1pdC1idG4ge1xyXG4gIG1hcmdpbi10b3A6IDAuNzVyZW07XHJcbiAgcGFkZGluZzogMC45NXJlbTtcclxuICBmb250LXNpemU6IDFyZW07XHJcbn1cclxuXHJcbi5hdXRoLXRvZ2dsZS10aXAge1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBtYXJnaW4tdG9wOiAxLjVyZW07XHJcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpO1xyXG59XHJcblxyXG4uYWxlcnQtZXJyb3Ige1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjM5LCA2OCwgNjgsIDAuMjUpO1xyXG4gIGNvbG9yOiAjZmNhNWE1O1xyXG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi8qIFNDUkVFTjogV2VsY29tZSBIZXJvIEJveCAqL1xyXG4ud2VsY29tZS1ib3gge1xyXG4gIG1heC13aWR0aDogNjUwcHg7XHJcbiAgbWFyZ2luOiA2cmVtIGF1dG8gMCBhdXRvO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmhlcm8tdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMy4yNXJlbTtcclxuICBmb250LXdlaWdodDogOTAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xyXG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxuICBsZXR0ZXItc3BhY2luZzogLTAuMDNlbTtcclxufVxyXG5cclxuLmhlcm8tZ3JhZGllbnQge1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM4MThjZjgsICNjMDg0ZmMsICNmNDcyYjYpO1xyXG4gIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xyXG4gIGJhY2tncm91bmQtY2xpcDogdGV4dDtcclxuICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5oZXJvLXN1YnRpdGxlIHtcclxuICBmb250LXNpemU6IDEuMXJlbTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjY7XHJcbiAgbWFyZ2luLWJvdHRvbTogMi41cmVtO1xyXG4gIG1heC13aWR0aDogNTAwcHg7XHJcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xyXG59XHJcblxyXG4uYnRuLWdsb3cge1xyXG4gIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gIGNvbG9yOiB2YXIoLS1iZy1kYXJrZXN0KTtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gIHBhZGRpbmc6IDEuMXJlbSAyLjJyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xyXG4gIGJveC1zaGFkb3c6IDAgMCA0MHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxufVxyXG5cclxuLmJ0bi1nbG93OmhvdmVyIHtcclxuICB0cmFuc2Zvcm06IHNjYWxlKDEuMDQpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA1MHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSk7XHJcbn1cclxuXHJcbi5idG4td2VsY29tZS1sb2dvdXQge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIG1hcmdpbjogMS41cmVtIGF1dG8gMDtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpO1xyXG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xyXG4gIHBhZGRpbmc6IDAuNnJlbSAxLjVyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjI1cyBlYXNlO1xyXG59XHJcblxyXG4uYnRuLXdlbGNvbWUtbG9nb3V0OmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXByaW1hcnkpO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xyXG59XHJcblxyXG5cclxuLyogU0NSRUVOOiBPbmJvYXJkaW5nIEZvcm0gU3RlcHMgUGFuZWwgKi9cclxuLnBhbmVsLWNhcmQge1xyXG4gIG1heC13aWR0aDogNTUwcHg7XHJcbiAgbWFyZ2luOiAycmVtIGF1dG87XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctcGFuZWwpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMS43NXJlbTtcclxuICBwYWRkaW5nOiAyLjI1cmVtO1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcclxuICBib3gtc2hhZG93OiAwIDE1cHggMzVweCByZ2JhKDAsIDAsIDAsIDAuMyk7XHJcbn1cclxuXHJcbi5wYW5lbC1jYXJkIC5idG4tYmFjayB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG59XHJcblxyXG4uc3RlcC10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAxLjg1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMC4zNXJlbTtcclxufVxyXG5cclxuLnN0ZXAtc3VidGl0bGUge1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbn1cclxuXHJcbi5mb3JtLXN0YWNrIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAxLjVyZW07XHJcbn1cclxuXHJcbi5ncmlkLTJjb2wge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xyXG4gIGdhcDogMXJlbTtcclxufVxyXG5cclxuLmJ0bi1ncmFkaWVudC1zdWJtaXQge1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWQtaW5kaWdvLXBpbmspO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMS4wNXJlbTtcclxuICBwYWRkaW5nOiAxLjA1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuODVyZW07XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IHJnYmEoMjM2LCA3MiwgMTUzLCAwLjE1KTtcclxufVxyXG5cclxuLmJ0bi1ncmFkaWVudC1zdWJtaXQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xyXG4gIG9wYWNpdHk6IDAuOTI7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xyXG59XHJcblxyXG4uYnRuLWdyYWRpZW50LXN1Ym1pdDpkaXNhYmxlZCB7XHJcbiAgb3BhY2l0eTogMC40O1xyXG4gIGN1cnNvcjogbm90LWFsbG93ZWQ7XHJcbn1cclxuXHJcbi8qIEdyaWQgbGF5b3V0IGZvciBjaGVja2JveCBidXR0b25zICovXHJcbi5jb25kaXRpb25zLWdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xyXG4gIGdhcDogMXJlbTtcclxufVxyXG5cclxuLmNvbmQtYnRuLCAuYWxsZXJneS1idG4ge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzEsIDQxLCA1NSwgMC40KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuODVyZW07XHJcbiAgcGFkZGluZzogMS4xcmVtIDFyZW07XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC43NXJlbTtcclxuICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcclxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG59XHJcblxyXG4uY29uZC1idG46aG92ZXIsIC5hbGxlcmd5LWJ0bjpob3ZlciB7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLmNvbmQtYnRuLmFjdGl2ZSwgLmFsbGVyZ3ktYnRuLmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSg5OSwgMTAyLCAyNDEsIDAuMTIpO1xyXG4gIGJvcmRlci1jb2xvcjogIzYzNjZmMTtcclxuICBjb2xvcjogd2hpdGU7XHJcbn1cclxuXHJcbi5hbGxlcmd5LWJ0bi5hY3RpdmUge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjM2LCA3MiwgMTUzLCAwLjEyKTtcclxuICBib3JkZXItY29sb3I6ICNlYzQ4OTk7XHJcbn1cclxuXHJcbi5jaGVja2JveC1vdXRlciB7XHJcbiAgd2lkdGg6IDEuMjVyZW07XHJcbiAgaGVpZ2h0OiAxLjI1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS10ZXh0LW11dGVkKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XHJcbiAgZmxleC1zaHJpbms6IDA7XHJcbn1cclxuXHJcbi5jb25kLWJ0bi5hY3RpdmUgLmNoZWNrYm94LW91dGVyIHtcclxuICBib3JkZXItY29sb3I6ICM2MzY2ZjE7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzYzNjZmMTtcclxufVxyXG5cclxuLmFsbGVyZ3ktYnRuLmFjdGl2ZSAuY2hlY2tib3gtb3V0ZXIge1xyXG4gIGJvcmRlci1jb2xvcjogI2VjNDg5OTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWM0ODk5O1xyXG59XHJcblxyXG4uY2hlY2tib3gtaW5uZXIge1xyXG4gIHdpZHRoOiAwLjQ1cmVtO1xyXG4gIGhlaWdodDogMC40NXJlbTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgdHJhbnNmb3JtOiBzY2FsZSgwKTtcclxuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycztcclxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG59XHJcblxyXG4uY29uZC1idG4uYWN0aXZlIC5jaGVja2JveC1pbm5lciwgLmFsbGVyZ3ktYnRuLmFjdGl2ZSAuY2hlY2tib3gtaW5uZXIge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XHJcbn1cclxuXHJcbi5jb25kLWxibCB7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBmb250LXNpemU6IDAuODc1cmVtO1xyXG59XHJcblxyXG4uc2VjdGlvbi1sYWJlbCB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xyXG59XHJcblxyXG4uYnV0dG9uLXNwbGl0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGdhcDogMXJlbTtcclxufVxyXG5cclxuLmJ0bi10ZXh0LW5hdiB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctaW5wdXQpO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBib3JkZXItcmFkaXVzOiAwLjg1cmVtO1xyXG4gIHBhZGRpbmc6IDEuMDVyZW0gMS41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC40cmVtO1xyXG59XHJcblxyXG4uYnRuLXRleHQtbmF2OmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA2NSwgODEsIDAuOCk7XHJcbn1cclxuXHJcbi5mbGV4LWV4cGFuZCB7XHJcbiAgZmxleDogMTtcclxufVxyXG5cclxuLmJ0bi1nbG93LWFjY2VudCB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JhZC1pbmRpZ28tcGluayk7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgZm9udC1zaXplOiAxLjA1cmVtO1xyXG4gIHBhZGRpbmc6IDEuMDVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC44NXJlbTtcclxuICBib3gtc2hhZG93OiAwIDAgMzBweCByZ2JhKDIzNiwgNzIsIDE1MywgMC4zKTtcclxuICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtO1xyXG59XHJcblxyXG4uYnRuLWdsb3ctYWNjZW50OmhvdmVyIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XHJcbiAgYm94LXNoYWRvdzogMCAwIDM1cHggcmdiYSgyMzYsIDcyLCAxNTMsIDAuNCk7XHJcbn1cclxuXHJcbi8qIFNDUkVFTjogRGFzaGJvYXJkIExheW91dCAqL1xyXG4uZGFzaGJvYXJkLWxheW91dCB7XHJcbiAgbWF4LXdpZHRoOiAxMDAwcHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbn1cclxuXHJcbi5kYXNoYm9hcmQtYmFjay1saW5rLXJvdyB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG59XHJcblxyXG4uc3RhdHMtcm93IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjgwcHgsIDFmcikpO1xyXG4gIGdhcDogMS41cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcclxufVxyXG5cclxuLnN0YXQtY2FyZCB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tYmctcGFuZWwpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMS43NXJlbTtcclxuICBwYWRkaW5nOiAxLjVyZW07XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMS41cmVtO1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KTtcclxufVxyXG5cclxuLnN0YXQtaWNvbi1ib3gge1xyXG4gIHdpZHRoOiAzLjc1cmVtO1xyXG4gIGhlaWdodDogMy43NXJlbTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4uY2FyZC1waW5rIC5zdGF0LWljb24tYm94IHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIzNiwgNzIsIDE1MywgMC4xNSk7XHJcbiAgY29sb3I6IHZhcigtLWMtcGluayk7XHJcbn1cclxuXHJcbi5jYXJkLWluZGlnbyAuc3RhdC1pY29uLWJveCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg5OSwgMTAyLCAyNDEsIDAuMTUpO1xyXG4gIGNvbG9yOiB2YXIoLS1jLWluZGlnbyk7XHJcbn1cclxuXHJcbi5jYXJkLWJsdWUgLnN0YXQtaWNvbi1ib3gge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjE1KTtcclxuICBjb2xvcjogdmFyKC0tYy1ibHVlKTtcclxufVxyXG5cclxuLnN0YXQtbnVtYmVyIHtcclxuICBmb250LXNpemU6IDEuODVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICBsaW5lLWhlaWdodDogMS4yO1xyXG59XHJcblxyXG4uc3RhdC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxufVxyXG5cclxuLmRhc2hib2FyZC1ncmlkIHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMi4yZnIgMWZyO1xyXG4gIGdhcDogMnJlbTtcclxufVxyXG5cclxuQG1lZGlhIChtYXgtd2lkdGg6IDg2OHB4KSB7XHJcbiAgLmRhc2hib2FyZC1ncmlkIHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gIH1cclxufVxyXG5cclxuLnNlY3Rpb24tdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS4zNXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDEuMjVyZW07XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4ubWVhbC1ncm91cC1jYXJkIHtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tYm9yZGVyLWxpZ2h0KTtcclxuICBib3JkZXItcmFkaXVzOiAxLjc1cmVtO1xyXG4gIHBhZGRpbmc6IDEuNXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xyXG59XHJcblxyXG4ubWVhbC10aW1lLXRpdGxlIHtcclxuICBmb250LXNpemU6IDFyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4udGV4dC1tb3JuaW5nIHsgY29sb3I6ICNmNDcyYjY7IH1cclxuLnRleHQtYWZ0ZXJub29uIHsgY29sb3I6ICM4MThjZjg7IH1cclxuLnRleHQtbmlnaHQgeyBjb2xvcjogIzYwYTVmYTsgfVxyXG5cclxuLm1lYWwtaXRlbS1zdGFjayB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogMC43NXJlbTtcclxufVxyXG5cclxuLyogTWVhbCBpdGVtIHJvdyBjYXJkICovXHJcbi5tZWFsLWl0ZW0tY2FyZCB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMSwgNDEsIDU1LCAwLjM1KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDQpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEuMjVyZW07XHJcbiAgcGFkZGluZzogMXJlbTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XHJcbn1cclxuXHJcbi5tZWFsLWl0ZW0tY2FyZDpob3ZlciB7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyOSwgMTQwLCAyNDgsIDAuNCk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMSwgNDEsIDU1LCAwLjYpO1xyXG59XHJcblxyXG4ubWVhbC1jbGlja2FibGUtYXJlYSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMXJlbTtcclxuICBmbGV4OiAxO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBtaW4td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5tZWFsLWltZyB7XHJcbiAgd2lkdGg6IDMuNXJlbTtcclxuICBoZWlnaHQ6IDMuNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwLjg1cmVtO1xyXG4gIG9iamVjdC1jb3ZlcjogY292ZXI7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4KTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTExODI3O1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG4gIG9wYWNpdHk6IDA7XHJcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjRzIGVhc2U7XHJcbn1cclxuXHJcbi5tZWFsLWltZy5sb2FkZWQge1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5tZWFsLWRldGFpbHMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBtaW4td2lkdGg6IDA7XHJcbn1cclxuXHJcbi5tZWFsLW5hbWUge1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gIGNvbG9yOiAjZjFmNWY5O1xyXG4gIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XHJcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG59XHJcblxyXG4ubWVhbC1pdGVtLWNhcmQ6aG92ZXIgLm1lYWwtbmFtZSB7XHJcbiAgY29sb3I6ICNhNWI0ZmM7XHJcbn1cclxuXHJcbi5tZWFsLW1ldGEge1xyXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbiAgbWFyZ2luLXRvcDogMC4yNXJlbTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbn1cclxuXHJcbi5tZWFsLWFjdGlvbnMtZ3JvdXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDAuNnJlbTtcclxuICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLmJhZGdlLWRpZXQge1xyXG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgcGFkZGluZzogMC4yNXJlbSAwLjY1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcclxufVxyXG5cclxuLmJhZGdlLXZlZyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MiwgMjExLCAxNTMsIDAuMTUpO1xyXG4gIGNvbG9yOiAjNmVlN2I3O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTIsIDIxMSwgMTUzLCAwLjIpO1xyXG59XHJcblxyXG4uYmFkZ2Utbm9udmVnIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMTUpO1xyXG4gIGNvbG9yOiAjZmNhNWE1O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjQ4LCAxMTMsIDExMywgMC4yKTtcclxufVxyXG5cclxuLmJ0bi1zd2FwLWl0ZW0ge1xyXG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgcGFkZGluZzogMC4yNXJlbSAwLjY1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1MSwgMTkxLCAzNiwgMC4xKTtcclxuICBjb2xvcjogI2ZjZDM0ZDtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1MSwgMTkxLCAzNiwgMC4yKTtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4uYnRuLXN3YXAtaXRlbTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMjUpO1xyXG59XHJcblxyXG4vKiBTaWRlYmFyIFByZXNjIGNhcmQgKi9cclxuLnByZXNjLWdlbmVyYXRpb24tY2FyZCB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg0OSwgNDYsIDEyOSwgMC44KSwgcmdiYSgxMzEsIDI0LCA3MywgMC44KSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEuNzVyZW07XHJcbiAgcGFkZGluZzogMnJlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xyXG59XHJcblxyXG4ucHJlc2MtZ2xvdy1vcmIge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IC0yMHB4O1xyXG4gIHJpZ2h0OiAtMjBweDtcclxuICB3aWR0aDogMTAwcHg7XHJcbiAgaGVpZ2h0OiAxMDBweDtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgZmlsdGVyOiBibHVyKDQwcHgpO1xyXG4gIG9wYWNpdHk6IDAuMDU7XHJcbn1cclxuXHJcbi5kb2MtaWNvbiB7XHJcbiAgbWFyZ2luOiAwIGF1dG8gMS41cmVtIGF1dG87XHJcbiAgY29sb3I6ICNmYmNmZTg7XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgOHB4IHJnYmEoMjQ0LCAxMTQsIDE4MiwgMC4zKSk7XHJcbn1cclxuXHJcbi5zaWRlLWNhcmQtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS4zNXJlbTtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLnNpZGUtY2FyZC1kZXNjIHtcclxuICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgY29sb3I6ICNjN2QyZmU7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxuICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG59XHJcblxyXG4uYnRuLWdsb3ctZGFyayB7XHJcbiAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgY29sb3I6IHZhcigtLWJnLWRhcmtlc3QpO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgcGFkZGluZzogMC45NXJlbSAxLjVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAyMHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcclxufVxyXG5cclxuLmJ0bi1nbG93LWRhcms6aG92ZXIge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wMik7XHJcbiAgYm94LXNoYWRvdzogMCAwIDI1cHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcclxufVxyXG5cclxuLyogQ2xpbmljYWwgQWxlcnRzIENhbGxvdXQgQ2FyZCAqL1xyXG4uY2xpbmljYWwtYWxlcnRzLWNhcmQge1xyXG4gIG1hcmdpbi10b3A6IDEuNXJlbTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1wYW5lbCk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDQsIDExNCwgMTgyLCAwLjIpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEuMjVyZW07XHJcbiAgcGFkZGluZzogMS41cmVtO1xyXG4gIGJveC1zaGFkb3c6IDAgMTBweCAyNXB4IHJnYmEoMjM2LCA3MiwgMTUzLCAwLjA1KTtcclxuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XHJcbn1cclxuXHJcbi5hbGVydHMtY2FyZC10aXRsZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIGZvbnQtc2l6ZTogMS4xcmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgY29sb3I6ICNmNDcyYjY7XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLmFsZXJ0cy1saXN0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAwLjc1cmVtO1xyXG59XHJcblxyXG4ud2Fybi1hbGVydC1ib3gge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjQ0LCAxMTQsIDE4MiwgMC4wOCk7XHJcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjZjQ3MmI2O1xyXG4gIHBhZGRpbmc6IDAuODVyZW0gMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwIDAuNXJlbSAwLjVyZW0gMDtcclxuICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgY29sb3I6ICNmYmNmZTg7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNDtcclxufVxyXG5cclxuLndhcm4tYWxlcnQtYm94IHN0cm9uZyB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxufVxyXG5cclxuLyogRkxPQVRJTkcgQ0hBVEJPVCBXSURHRVQgKi9cclxuLmNoYXRib3QtY29udGFpbmVyIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgYm90dG9tOiAxLjVyZW07XHJcbiAgcmlnaHQ6IDEuNXJlbTtcclxuICB6LWluZGV4OiA5OTk7XHJcbn1cclxuXHJcbi5jaGF0LXRvZ2dsZS1idG4ge1xyXG4gIHdpZHRoOiAzLjVyZW07XHJcbiAgaGVpZ2h0OiAzLjVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWdyYWQtaW5kaWdvLXBpbmspO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5jaGF0LXRvZ2dsZS1idG46aG92ZXIge1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMS4wOCk7XHJcbn1cclxuXHJcbi5zaGFkb3ctcGluayB7XHJcbiAgYm94LXNoYWRvdzogMCAxMHB4IDI1cHggcmdiYSgyMzYsIDcyLCAxNTMsIDAuMzUpO1xyXG59XHJcblxyXG4uY2hhdC13aW5kb3ctcGFuZWwge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBib3R0b206IDQuNXJlbTtcclxuICByaWdodDogMDtcclxuICB3aWR0aDogMzYwcHg7XHJcbiAgaGVpZ2h0OiA1MDBweDtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMS4yNXJlbTtcclxuICBib3gtc2hhZG93OiAwIDE1cHggMzVweCByZ2JhKDAsIDAsIDAsIDAuNSk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xyXG4gIGFuaW1hdGlvbjogc2xpZGVVcCAwLjI1cyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpIGZvcndhcmRzO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNsaWRlVXAge1xyXG4gIGZyb20ge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcclxuICB9XHJcbiAgdG8ge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcclxuICB9XHJcbn1cclxuXHJcbi5jaGF0LWhlYWRlciB7XHJcbiAgYmFja2dyb3VuZDogdmFyKC0tZ3JhZC1pbmRpZ28tcGluayk7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIHBhZGRpbmc6IDFyZW07XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG59XHJcblxyXG4uY2hhdC1ib3QtaWRlbnRpdHkge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDAuNXJlbTtcclxufVxyXG5cclxuLmNoYXQtY2xvc2UtYnRuIHtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgb3BhY2l0eTogMC43O1xyXG59XHJcblxyXG4uY2hhdC1jbG9zZS1idG46aG92ZXIge1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbi5jaGF0LWJvZHkge1xyXG4gIGZsZXg6IDE7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBwYWRkaW5nOiAxLjI1cmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IDFyZW07XHJcbn1cclxuXHJcbi5jaGF0LXJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDAuNXJlbTtcclxufVxyXG5cclxuLnVzZXItcm93IHtcclxuICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XHJcbn1cclxuXHJcbi5jaGF0LWF2YXRhciB7XHJcbiAgd2lkdGg6IDJyZW07XHJcbiAgaGVpZ2h0OiAycmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4uYm90LWF2YXRhciB7XHJcbiAgYmFja2dyb3VuZDogI2VjNDg5OTtcclxufVxyXG5cclxuLnVzZXItYXZhdGFyIHtcclxuICBiYWNrZ3JvdW5kOiAjNjM2NmYxO1xyXG59XHJcblxyXG4uY2hhdC1idWJibGUge1xyXG4gIHBhZGRpbmc6IDAuNnJlbSAxcmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEuMjVyZW07XHJcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcclxuICBtYXgtd2lkdGg6IDc1JTtcclxuICBsaW5lLWhlaWdodDogMS40NTtcclxufVxyXG5cclxuLmJvdC1idWJibGUge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzEsIDQxLCA1NSwgMC44KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xyXG4gIGNvbG9yOiAjZTJlOGYwO1xyXG4gIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDAuMjVyZW07XHJcbn1cclxuXHJcbi51c2VyLWJ1YmJsZSB7XHJcbiAgYmFja2dyb3VuZDogIzYzNjZmMTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDAuMjVyZW07XHJcbn1cclxuXHJcbi8qIEJvdW5jaW5nIFR5cGluZyBJbmRpY2F0b3IgKi9cclxuLnR5cGluZy1kb3RzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjI1cmVtO1xyXG4gIHBhZGRpbmc6IDAuOHJlbSAxcmVtO1xyXG59XHJcblxyXG4udHlwaW5nLWRvdCB7XHJcbiAgd2lkdGg6IDAuMzVyZW07XHJcbiAgaGVpZ2h0OiAwLjM1cmVtO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICM5NGEzYjg7XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGFuaW1hdGlvbjogYm91bmNlIDEuMnMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XHJcbn1cclxuXHJcbi50eXBpbmctZG90Om50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogMC4yczsgfVxyXG4udHlwaW5nLWRvdDpudGgtY2hpbGQoMykgeyBhbmltYXRpb24tZGVsYXk6IDAuNHM7IH1cclxuXHJcbkBrZXlmcmFtZXMgYm91bmNlIHtcclxuICAwJSwgMTAwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTsgfVxyXG4gIDUwJSB7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNXB4KTsgfVxyXG59XHJcblxyXG4uY2hhdC1mb290ZXIge1xyXG4gIHBhZGRpbmc6IDAuNzVyZW07XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDAuNXJlbTtcclxuICBiYWNrZ3JvdW5kOiB2YXIoLS1iZy1kYXJrZXN0KTtcclxufVxyXG5cclxuLmNoYXQtZm9vdGVyIGlucHV0IHtcclxuICBmbGV4OiAxO1xyXG4gIGJhY2tncm91bmQ6IHZhcigtLWJnLWlucHV0KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDk5OTlweDtcclxuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBmb250LXNpemU6IDAuODc1cmVtO1xyXG59XHJcblxyXG4uYnRuLWNoYXQtc2VuZCB7XHJcbiAgd2lkdGg6IDIuMjVyZW07XHJcbiAgaGVpZ2h0OiAyLjI1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBiYWNrZ3JvdW5kOiAjZWM0ODk5O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbn1cclxuXHJcbi5idG4tY2hhdC1zZW5kOmRpc2FibGVkIHtcclxuICBvcGFjaXR5OiAwLjQ7XHJcbiAgY3Vyc29yOiBub3QtYWxsb3dlZDtcclxufVxyXG5cclxuLyogR0VORVJBTCBNT0RBTCBPVkVSTEFZICovXHJcbi5tb2RhbC1vdmVybGF5IHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgaW5zZXQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzLCA3LCAxOCwgMC43NSk7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XHJcbiAgei1pbmRleDogMTAwMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgcGFkZGluZzogMXJlbTtcclxufVxyXG5cclxuLm1vZGFsLWJveC1jYXJkIHtcclxuICBiYWNrZ3JvdW5kOiAjMTExODI3O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMS43NXJlbTtcclxuICB3aWR0aDogMTAwJTtcclxuICBtYXgtd2lkdGg6IDU0MHB4O1xyXG4gIG1heC1oZWlnaHQ6IDkwdmg7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgYm94LXNoYWRvdzogMCAyNXB4IDUwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gIGFuaW1hdGlvbjogc2xpZGVVcCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSkgZm9yd2FyZHM7XHJcbn1cclxuXHJcbi5yZWNpcGUtaGVyby1iYW5uZXIge1xyXG4gIGhlaWdodDogMTJyZW07XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4ucmVjaXBlLWhlcm8tYmFubmVyIGltZyB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIG9iamVjdC1maXQ6IGNvdmVyO1xyXG4gIG9wYWNpdHk6IDAuNzU7XHJcbn1cclxuXHJcbi5yZWNpcGUtZ3JhZGllbnQtb3ZlcmxheSB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGluc2V0OiAwO1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byB0b3AsICMxMTE4MjcsIHRyYW5zcGFyZW50KTtcclxufVxyXG5cclxuLmJ0bi1yZWNpcGUtY2xvc2Uge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICB0b3A6IDFyZW07XHJcbiAgcmlnaHQ6IDFyZW07XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjM1KTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgd2lkdGg6IDIuMjVyZW07XHJcbiAgaGVpZ2h0OiAyLjI1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7XHJcbn1cclxuXHJcbi5yZWNpcGUtYmFubmVyLXRleHQtZGV0YWlscyB7XHJcbiAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gIGJvdHRvbTogMS4yNXJlbTtcclxuICBsZWZ0OiAxLjVyZW07XHJcbiAgcmlnaHQ6IDEuNXJlbTtcclxufVxyXG5cclxuLnJlY2lwZS1tb2RhbC10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAxLjY1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLnJlY2lwZS1hY3Rpb24tbGlua3Mge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZ2FwOiAwLjc1cmVtO1xyXG59XHJcblxyXG4uYmFkZ2UtYmx1ZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1OSwgMTMwLCAyNDYsIDAuMik7XHJcbiAgY29sb3I6ICM5M2M1ZmQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgcGFkZGluZzogMC4zcmVtIDAuODVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xyXG59XHJcblxyXG4uYmFkZ2Utcm9zZS1idG4ge1xyXG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ0LCAxMTQsIDE4MiwgMC4yKTtcclxuICBjb2xvcjogI2ZiY2ZlODtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI0NCwgMTE0LCAxODIsIDAuMyk7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgcGFkZGluZzogMC4zcmVtIDAuODVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cig0cHgpO1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbn1cclxuXHJcbi5iYWRnZS1yb3NlLWJ0bjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNDQsIDExNCwgMTgyLCAwLjM1KTtcclxufVxyXG5cclxuLnJlY2lwZS1zY3JvbGwtYm9keSB7XHJcbiAgZmxleDogMTtcclxuICBvdmVyZmxvdy15OiBhdXRvO1xyXG4gIHBhZGRpbmc6IDEuNzVyZW07XHJcbn1cclxuXHJcbi5ndWlkZS1hbGVydC1ib3gge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjA4KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDU5LCAxMzAsIDI0NiwgMC4xNSk7XHJcbiAgYm9yZGVyLXJhZGl1czogMS4yNXJlbTtcclxuICBwYWRkaW5nOiAxcmVtIDEuMjVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTtcclxufVxyXG5cclxuLmd1aWRlLWFsZXJ0LWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLmd1aWRlLWFjY2VudC10aXRsZSB7XHJcbiAgY29sb3I6ICM2MGE1ZmE7XHJcbn1cclxuXHJcbi5ndWlkZS1saWdodC1sYmwge1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxufVxyXG5cclxuLmd1aWRlLWFsZXJ0LWZsZXgge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxufVxyXG5cclxuLmd1aWRlLXNlcnZpbmdzLXR4dCB7XHJcbiAgZm9udC1zaXplOiAxLjM1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4udGV4dC1waW5rIHsgY29sb3I6ICNmNDcyYjY7IH1cclxuLnRleHQtaGlnaGxpZ2h0IHsgY29sb3I6IHdoaXRlOyBmb250LXdlaWdodDogNzAwOyB9XHJcblxyXG4uZ3VpZGUtZ3JhbXMtdHh0IHtcclxuICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgY29sb3I6IHZhcigtLXRleHQtc2Vjb25kYXJ5KTtcclxuICBtYXJnaW4tdG9wOiAwLjJyZW07XHJcbn1cclxuXHJcbi5ndWlkZS1zZXJ2aW5nLXVuaXQtY2FyZCB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTtcclxuICBwYWRkaW5nOiAwLjQ1cmVtIDAuNzVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC44NXJlbTtcclxuICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1ib3JkZXItbGlnaHQpO1xyXG59XHJcblxyXG4uZ3VpZGUtdW5pdC1sYmwge1xyXG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4uZ3VpZGUtdW5pdC12YWwge1xyXG4gIGZvbnQtc2l6ZTogMS4wNXJlbTtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBtYXJnaW4tdG9wOiAwLjFyZW07XHJcbn1cclxuXHJcbi5yZWNpcGUtc2VjdGlvbiB7XHJcbiAgbWFyZ2luLWJvdHRvbTogMS43NXJlbTtcclxufVxyXG5cclxuLnJlY2lwZS1zZWN0aW9uLXRpdGxlIHtcclxuICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XHJcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuODVyZW07XHJcbn1cclxuXHJcbi5pbmdyZWRpZW50cy1ncmlkLWxpc3Qge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xyXG4gIGdhcDogMC43NXJlbTtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcclxuICAuaW5ncmVkaWVudHMtZ3JpZC1saXN0IHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyO1xyXG4gIH1cclxufVxyXG5cclxuLmluZ3JlZGllbnRzLWdyaWQtbGlzdCBsaSB7XHJcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcclxuICBjb2xvcjogI2NiZDVlMTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDIpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XHJcbiAgcGFkZGluZzogMC42NXJlbSAwLjg1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuODVyZW07XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG59XHJcblxyXG4uaW5ncmVkaWVudHMtZ3JpZC1saXN0IGxpOjpiZWZvcmUge1xyXG4gIGNvbnRlbnQ6IFwiXCI7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIHdpZHRoOiAwLjM1cmVtO1xyXG4gIGhlaWdodDogMC4zNXJlbTtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjM2NmYxO1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBmbGV4LXNocmluazogMDtcclxufVxyXG5cclxuLnN0ZXBzLW9yZGVyZWQtbGlzdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogMXJlbTtcclxufVxyXG5cclxuLnN0ZXAtcm93LWZsZXgge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZ2FwOiAxcmVtO1xyXG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcclxufVxyXG5cclxuLnN0ZXAtbnVtLWJ1YmJsZSB7XHJcbiAgd2lkdGg6IDEuNXJlbTtcclxuICBoZWlnaHQ6IDEuNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyMzYsIDcyLCAxNTMsIDAuMTUpO1xyXG4gIGNvbG9yOiB2YXIoLS1jLXBpbmspO1xyXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBmbGV4LXNocmluazogMDtcclxuICBtYXJnaW4tdG9wOiAwLjFyZW07XHJcbn1cclxuXHJcbi5zdGVwLXR4dCB7XHJcbiAgZm9udC1zaXplOiAwLjg3NXJlbTtcclxuICBjb2xvcjogI2NiZDVlMTtcclxuICBsaW5lLWhlaWdodDogMS41NTtcclxufVxyXG5cclxuLyogRlVMTFNDUkVFTiBQUkVTQ1JJUFRJT04gT1ZFUkxBWSAqL1xyXG4ubW9kYWwtb3ZlcmxheS1mdWxsc2NyZWVuIHtcclxuICBwb3NpdGlvbjogZml4ZWQ7XHJcbiAgaW5zZXQ6IDA7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzLCA3LCAxOCwgMC45OCk7XHJcbiAgei1pbmRleDogMTAwMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbn1cclxuXHJcbi5wcmVzY3JpcHRpb24tcHJldmlldy1oZWFkZXIge1xyXG4gIGJhY2tncm91bmQ6ICMwZjE3MmE7XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWJvcmRlci1saWdodCk7XHJcbiAgcGFkZGluZzogMXJlbSAycmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZmxleC1zaHJpbms6IDA7XHJcbn1cclxuXHJcbi5wcmVzYy1oZWFkZXItdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjVyZW07XHJcbn1cclxuXHJcbi5wcmVzY3JpcHRpb24taGVhZGVyLWFjdGlvbnMge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDFyZW07XHJcbn1cclxuXHJcbi5idG4tY2FuY2VsIHtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1zZWNvbmRhcnkpO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gIHBhZGRpbmc6IDAuNXJlbSAxcmVtO1xyXG59XHJcblxyXG4uYnRuLWNhbmNlbDpob3ZlciB7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG59XHJcblxyXG4uYnRuLXBpbmstcHJpbnQge1xyXG4gIGJhY2tncm91bmQ6ICNlYzQ4OTk7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gIHBhZGRpbmc6IDAuNnJlbSAxLjI1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNXJlbTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjVyZW07XHJcbn1cclxuXHJcbi5idG4tcGluay1wcmludDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogI2RiMjc3NztcclxufVxyXG5cclxuLnByZXNjcmlwdGlvbi1wYXBlci1zY3JvbGwge1xyXG4gIGZsZXg6IDE7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBwYWRkaW5nOiAyLjVyZW0gMS41cmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbn1cclxuXHJcbi5wcmVzY3JpcHRpb24tbG9hZGluZy1zdGF0ZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LXNlY29uZGFyeSk7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uc3Bpbm5lciB7XHJcbiAgd2lkdGg6IDNyZW07XHJcbiAgaGVpZ2h0OiAzcmVtO1xyXG4gIGJvcmRlcjogNHB4IHNvbGlkIHJnYmEoMjM2LCA3MiwgMTUzLCAwLjE1KTtcclxuICBib3JkZXItdG9wLWNvbG9yOiAjZWM0ODk5O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBhbmltYXRpb246IHNwaW4gMC44cyBsaW5lYXIgaW5maW5pdGU7XHJcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIHNwaW4ge1xyXG4gIHRvIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxyXG59XHJcblxyXG4ubG9hZGluZy10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAxLjE1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY29sb3I6IHdoaXRlO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLmxvYWRpbmctc3VidGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XHJcbn1cclxuXHJcbi5wcmVzY3JpcHRpb24tcGFnZS1ib3JkZXIge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qIE1FRElDQUwgRE9DVU1FTlQgU0hFRVQgKEE0IGxheW91dCBlbXVsYXRpb24pICovXHJcbi5wcmVzY3JpcHRpb24tZG9jdW1lbnQtc2hlZXQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1heC13aWR0aDogODAwcHg7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XHJcbiAgY29sb3I6ICMwZjE3MmE7XHJcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICBwYWRkaW5nOiAyLjVyZW07XHJcbiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjUpO1xyXG4gIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjtcclxufVxyXG5cclxuLyogRWxlbWVudHMgaW5zaWRlIHRoZSBwcmludGFibGUgcHJlc2NyaXB0aW9uICovXHJcbi5wcmVzYy1sb2dvLXNlY3Rpb24ge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbn1cclxuXHJcbi5wcmVzYy1ob3NwaXRhbC1tZXRhIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjc1cmVtO1xyXG59XHJcblxyXG4uaG9zcGl0YWwtaWNvbiB7XHJcbiAgd2lkdGg6IDMuNXJlbTtcclxuICBoZWlnaHQ6IDMuNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTcyYTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG59XHJcblxyXG4uaG9zcGl0YWwtdGl0bGUge1xyXG4gIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMS44NXJlbTtcclxuICBsaW5lLWhlaWdodDogMTtcclxuICBmb250LXdlaWdodDogOTAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAtMC4wMWVtO1xyXG59XHJcblxyXG4uaG9zcGl0YWwtc3ViIHtcclxuICBmb250LXNpemU6IDAuN3JlbTtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjE1ZW07XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBjb2xvcjogIzY0NzQ4YjtcclxuICBtYXJnaW4tdG9wOiAwLjM1cmVtO1xyXG59XHJcblxyXG4ucHJlc2MtY29udGFjdC1ibG9jayB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGNvbG9yOiAjNjQ3NDhiO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjU7XHJcbn1cclxuXHJcbi5wcmVzYy1kYXRlLXBpbGwge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjFmNWY5O1xyXG4gIHBhZGRpbmc6IDAuMzVyZW0gMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgY29sb3I6ICMzMzQxNTU7XHJcbiAgbWFyZ2luLXRvcDogMC41cmVtO1xyXG59XHJcblxyXG4ucHJlc2MtZGl2aWRlciB7XHJcbiAgYm9yZGVyOiAwO1xyXG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAjMGYxNzJhO1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbn1cclxuXHJcbi5wcmVzYy1yeC1zZWN0aW9uIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi1ib3R0b206IDEuNXJlbTtcclxufVxyXG5cclxuLnJ4LXN5bWJvbCB7XHJcbiAgZm9udC1mYW1pbHk6ICdQbGF5ZmFpciBEaXNwbGF5Jywgc2VyaWY7XHJcbiAgZm9udC1zaXplOiA1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gIGxpbmUtaGVpZ2h0OiAwLjc7XHJcbiAgY29sb3I6ICNlMmU4ZjA7XHJcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XHJcbn1cclxuXHJcbi5yeC1kb2N1bWVudC10aXRsZSB7XHJcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbn1cclxuXHJcbi5yeC1kb2MtdHlwZSB7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiAjNjQ3NDhiO1xyXG59XHJcblxyXG4ucngtZG9jLWlkIHtcclxuICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xyXG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcclxuICBjb2xvcjogIzk0YTNiODtcclxuICBtYXJnaW4tdG9wOiAwLjJyZW07XHJcbn1cclxuXHJcbi5wYXRpZW50LWluZm8tYm94IHtcclxuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gIGJvcmRlci1sZWZ0OiA1cHggc29saWQgIzBmMTcyYTtcclxuICBwYWRkaW5nOiAxLjI1cmVtIDEuNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDIuNXJlbTtcclxufVxyXG5cclxuLmJveC10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xyXG4gIGNvbG9yOiAjNjQ3NDhiO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLnBhdGllbnQtc3RhdHMtZ3JpZCB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCg0LCAxZnIpO1xyXG4gIGdhcDogMXJlbTtcclxufVxyXG5cclxuLnN0YXQtZ3JvdXAtbGJsIHtcclxuICBmb250LXNpemU6IDAuNnJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XHJcbiAgY29sb3I6ICM5NGEzYjg7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XHJcbn1cclxuXHJcbi5zdGF0LWdyb3VwLXZhbCB7XHJcbiAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBjb2xvcjogIzBmMTcyYTtcclxufVxyXG5cclxuLmJveC1yb3ctZGl2aWRlciB7XHJcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNmMWY1Zjk7XHJcbiAgbWFyZ2luOiAxcmVtIDA7XHJcbn1cclxuXHJcbi5wYXRpZW50LW1lZGljYWwtZ3JpZCB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgZ2FwOiAxcmVtO1xyXG59XHJcblxyXG4ubWVkaWNhbC10eHQtZGVzYyB7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgY29sb3I6ICM0NzU1Njk7XHJcbiAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICBsaW5lLWhlaWdodDogMS40O1xyXG59XHJcblxyXG4uY2xpbmljYWwtYXNzZXNzbWVudC1zZWN0aW9uIHtcclxuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XHJcbn1cclxuXHJcbi5wcmVzYy1zZWN0aW9uLWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIGZvbnQtc2l6ZTogMS4xNXJlbTtcclxuICBmb250LWZhbWlseTogJ1BsYXlmYWlyIERpc3BsYXknLCBzZXJpZjtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGNvbG9yOiAjMGYxNzJhO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNzVyZW07XHJcbn1cclxuXHJcbi5wcmVzYy1zZWN0aW9uLWhlYWRlciBzdmcge1xyXG4gIGNvbG9yOiAjNDc1NTY5O1xyXG59XHJcblxyXG4uY2xpbmljYWwtcXVvdGUtYm94IHtcclxuICBib3JkZXItbGVmdDogNHB4IHNvbGlkICNlMmU4ZjA7XHJcbiAgcGFkZGluZy1sZWZ0OiAxLjI1cmVtO1xyXG4gIHBhZGRpbmctdG9wOiAwLjI1cmVtO1xyXG4gIHBhZGRpbmctYm90dG9tOiAwLjI1cmVtO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICNmOGZhZmM7XHJcbn1cclxuXHJcbi5xdW90ZS10eHQge1xyXG4gIGZvbnQtZmFtaWx5OiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNjtcclxuICBjb2xvcjogIzMzNDE1NTtcclxufVxyXG5cclxuLnByZXNjLXJlZ2ltZW4taGVhZGVyLXJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xyXG59XHJcblxyXG4ucHJlc2MtY2Fscy1iYWRnZSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzBmMTcyYTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBwYWRkaW5nOiAwLjM1cmVtIDFyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogOTk5OXB4O1xyXG59XHJcblxyXG4ucHJlc2MtbWVhbHMtZ3JpZCB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gIGdhcDogMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAyLjVyZW07XHJcbn1cclxuXHJcbi5wcmVzYy1tZWFsLWNvbC1jYXJkIHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcclxufVxyXG5cclxuLnByZXNjLW1lYWwtaGVhZGVyLXRpdGxlIHtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjhmYWZjO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICBwYWRkaW5nOiAwLjZyZW0gMC41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiAjNDc1NTY5O1xyXG59XHJcblxyXG4ucHJlc2MtbWVhbC1mb29kcy1zdGFjayB7XHJcbiAgcGFkZGluZzogMXJlbTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAxcmVtO1xyXG59XHJcblxyXG4ucHJlc2MtZm9vZC1yb3cge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZ2FwOiAwLjc1cmVtO1xyXG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcclxufVxyXG5cclxuLnByZXNjLWZvb2QtaW1nIHtcclxuICB3aWR0aDogMi43NXJlbTtcclxuICBoZWlnaHQ6IDIuNzVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC4zNXJlbTtcclxuICBvYmplY3QtZml0OiBjb3ZlcjtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4ucHJlc2MtZm9vZC1uYW1lIHtcclxuICBmb250LXNpemU6IDAuOHJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjI7XHJcbn1cclxuXHJcbi5wcmVzYy1mb29kLW1ldGEtcm93IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIG1hcmdpbi10b3A6IDAuMjVyZW07XHJcbn1cclxuXHJcbi5wcmVzYy1mb29kLXNlcnYge1xyXG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcclxuICBjb2xvcjogIzY0NzQ4YjtcclxufVxyXG5cclxuLnByZXNjLWZvb2QtY2FscyB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2YxZjVmOTtcclxuICBjb2xvcjogIzMzNDE1NTtcclxuICBmb250LXNpemU6IDAuNjVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBwYWRkaW5nOiAwLjA1cmVtIDAuMzVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC4ycmVtO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNjYmQ1ZTE7XHJcbn1cclxuXHJcbi5wcmVzYy1yZWNpcGUtbGluayB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC4ycmVtO1xyXG4gIGZvbnQtc2l6ZTogMC42NXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGNvbG9yOiAjM2I4MmY2O1xyXG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICBtYXJnaW4tdG9wOiAwLjI1cmVtO1xyXG59XHJcblxyXG4ucHJlc2MtYm90dG9tLWxheW91dCB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7XHJcbiAgZ2FwOiAycmVtO1xyXG59XHJcblxyXG4ucHJlc2MtYm90dG9tLWNhcmQge1xyXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZTJlOGYwO1xyXG4gIHBhZGRpbmctdG9wOiAxcmVtO1xyXG59XHJcblxyXG4ucHJlc2MtYnVsbGV0cy1saXN0IHtcclxuICBsaXN0LXN0eWxlOiBub25lO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICBnYXA6IDAuNzVyZW07XHJcbn1cclxuXHJcbi5wcmVzYy1idWxsZXRzLWxpc3QgbGkge1xyXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICBjb2xvcjogIzMzNDE1NTtcclxuICBsaW5lLWhlaWdodDogMS40NTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIGFsaWduLWl0ZW1zOiBzdGFydDtcclxufVxyXG5cclxuLmJ1bGxldC1kb3Qge1xyXG4gIHdpZHRoOiAwLjNyZW07XHJcbiAgaGVpZ2h0OiAwLjNyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gIGJhY2tncm91bmQtY29sb3I6ICMwZjE3MmE7XHJcbiAgbWFyZ2luLXRvcDogMC40NXJlbTtcclxuICBmbGV4LXNocmluazogMDtcclxuICBvcGFjaXR5OiAwLjY7XHJcbn1cclxuXHJcbi5wcmVzYy1idWxsZXRzLWxpc3QgbGkuYm9sZC10eHQge1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgY29sb3I6ICMwZjE3MmE7XHJcbn1cclxuXHJcbi53YXJuLWFsZXJ0LWJveCB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjFmMjtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjZmVjZGQzO1xyXG4gIGJvcmRlci1sZWZ0OiAzcHggc29saWQgI2UxMWQ0ODtcclxuICBib3JkZXItcmFkaXVzOiAwLjM1cmVtO1xyXG4gIHBhZGRpbmc6IDAuODVyZW0gMXJlbTtcclxuICBtYXJnaW4tdG9wOiAxLjVyZW07XHJcbn1cclxuXHJcbi53YXJuLWJveC10aXRsZSB7XHJcbiAgZm9udC1zaXplOiAwLjY1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcclxuICBjb2xvcjogI2JlMTIzYztcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcclxufVxyXG5cclxuLndhcm4tbGlzdCB7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAwLjM1cmVtO1xyXG59XHJcblxyXG4ud2Fybi1saXN0IGxpIHtcclxuICBmb250LXNpemU6IDAuN3JlbTtcclxuICBjb2xvcjogIzlmMTIzOTtcclxuICBsaW5lLWhlaWdodDogMS40O1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZ2FwOiAwLjM1cmVtO1xyXG59XHJcblxyXG4ud2Fybi1zeW1ib2wge1xyXG4gIGNvbG9yOiAjZjQzZjVlO1xyXG59XHJcblxyXG4vKiBVVElMSVRZIENMQVNTRVMgKi9cclxuLmhpZGRlbiB7XHJcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ubXQtNCB7IG1hcmdpbi10b3A6IDFyZW07IH1cclxuLm10LTYgeyBtYXJnaW4tdG9wOiAxLjVyZW07IH1cclxuLm1iLTYgeyBtYXJnaW4tYm90dG9tOiAxLjVyZW07IH1cclxuXHJcbi8qIFBSSU5UIE1FRElBIE9WRVJSSURFUyAqL1xyXG5AbWVkaWEgcHJpbnQge1xyXG4gIC8qIERyYXcgdGhpbiBwYWdlIGJvcmRlciBkdXJpbmcgcHJpbnRzICovXHJcbiAgLnByZXNjcmlwdGlvbi1wYWdlLWJvcmRlciB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgcG9zaXRpb246IGZpeGVkO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgYm9yZGVyOiAzcHggc29saWQgIzBmMTcyYTtcclxuICAgIG91dGxpbmU6IDFweCBzb2xpZCAjMGYxNzJhO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC02cHg7XHJcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuICAgIHotaW5kZXg6IDk5OTk7XHJcbiAgfVxyXG5cclxuICBib2R5IHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XHJcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxuICAgIC13ZWJraXQtcHJpbnQtY29sb3ItYWRqdXN0OiBleGFjdDtcclxuICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XHJcbiAgfVxyXG5cclxuICAvKiBEbyBub3QgaGlkZSBhcHAtY29udGFpbmVyLCBidXQgcmVzZXQgaXRzIGxheW91dCBmb3IgcHJpbnQgKi9cclxuICAuYXBwLWNvbnRhaW5lciB7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcclxuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XHJcbiAgICBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLyogSGlkZSBoZWFkZXJzLCBmb290ZXJzLCBkYXNoYm9hcmQsIGNoYXRib3QsIG90aGVyIG1vZGFscywgYW5kIHByZXZpZXcgYWN0aW9ucyAqL1xyXG4gIC5hcHAtaGVhZGVyLFxyXG4gIC5tYWluLWNvbnRlbnQsXHJcbiAgLmFtYmllbnQtZ2xvdyxcclxuICAuY2hhdGJvdC1jb250YWluZXIsXHJcbiAgLnByZXNjcmlwdGlvbi1wcmV2aWV3LWhlYWRlcixcclxuICAubW9kYWwtb3ZlcmxheSxcclxuICAjbW9kYWwtY2hlY2tpbixcclxuICAjbW9kYWwtZGFpbHktcHJlZmVyZW5jZSxcclxuICAjbW9kYWwtcHJvZmlsZS1zZXR0aW5ncyB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAubW9kYWwtb3ZlcmxheS1mdWxsc2NyZWVuIHtcclxuICAgIHBvc2l0aW9uOiBzdGF0aWMgIWltcG9ydGFudDtcclxuICAgIGluc2V0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgei1pbmRleDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIC5wcmVzY3JpcHRpb24tcGFwZXItc2Nyb2xsIHtcclxuICAgIG92ZXJmbG93OiB2aXNpYmxlICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLnByZXNjcmlwdGlvbi1kb2N1bWVudC1zaGVldCB7XHJcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xyXG4gICAgbWF4LXdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGUgIWltcG9ydGFudDtcclxuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgLyogSGlkZSB3YXRjaCByZWNpcGUgbGlua3MgaW4gcHJpbnQgdG8gbG9vayBtb3JlIHByb2Zlc3Npb25hbCAqL1xyXG4gIC5wcmVzYy1yZWNpcGUtbGluayB7XHJcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG59XHJcblxyXG4vKiBQYWdlIHJ1bGVzIGZvciBjbGluaWNhbCBzdGFuZGFyZCBzcGFjaW5nIGFuZCBtYXJnaW5zICovXHJcbkBwYWdlIHtcclxuICBzaXplOiBBNDtcclxuICBtYXJnaW46IDE1bW07XHJcbn1cclxuXHJcbi8qIEFJIEFuc3dlciBVbmNvdmVyaW5nIFJldmVhbCBBbmltYXRpb25zICovXHJcbkBrZXlmcmFtZXMgdW5jb3ZlclJldmVhbCB7XHJcbiAgZnJvbSB7XHJcbiAgICBjbGlwLXBhdGg6IHBvbHlnb24oMCAwLCAwIDAsIDAgMTAwJSwgMCUgMTAwJSk7XHJcbiAgICBvcGFjaXR5OiAwLjg7XHJcbiAgfVxyXG4gIHRvIHtcclxuICAgIGNsaXAtcGF0aDogcG9seWdvbigwIDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAwIDEwMCUpO1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc2NhbkxpbmVHbG93IHtcclxuICAwJSB7XHJcbiAgICBsZWZ0OiAwJTtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgfVxyXG4gIDE1JSB7XHJcbiAgICBvcGFjaXR5OiAxO1xyXG4gIH1cclxuICA4NSUge1xyXG4gICAgb3BhY2l0eTogMTtcclxuICB9XHJcbiAgMTAwJSB7XHJcbiAgICBsZWZ0OiAxMDAlO1xyXG4gICAgb3BhY2l0eTogMDtcclxuICB9XHJcbn1cclxuXHJcbi5yZXZlYWwtdW5jb3ZlciB7XHJcbiAgYW5pbWF0aW9uOiB1bmNvdmVyUmV2ZWFsIHZhcigtLXJldmVhbC1kdXJhdGlvbiwgMC44cykgY3ViaWMtYmV6aWVyKDAuMTksIDEsIDAuMjIsIDEpIGZvcndhcmRzO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmJvdC1idWJibGUtZ2xvdy1saW5lIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgdG9wOiAwO1xyXG4gIGJvdHRvbTogMDtcclxuICB3aWR0aDogM3B4O1xyXG4gIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICM2MzY2ZjEsICNlYzQ4OTkpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4ICNlYzQ4OTksIDAgMCAyMHB4ICM2MzY2ZjE7XHJcbiAgYW5pbWF0aW9uOiBzY2FuTGluZUdsb3cgdmFyKC0tcmV2ZWFsLWR1cmF0aW9uLCAwLjhzKSBjdWJpYy1iZXppZXIoMC4xOSwgMSwgMC4yMiwgMSkgZm9yd2FyZHM7XHJcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgei1pbmRleDogMTA7XHJcbn1cclxuXHJcbi51bmNvdmVyLXdvcmQge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBvcGFjaXR5OiAwO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTYpO1xyXG4gIGZpbHRlcjogYmx1cigycHgpO1xyXG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC40cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSxcclxuICAgICAgICAgICAgICB0cmFuc2Zvcm0gMC40cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKSxcclxuICAgICAgICAgICAgICBmaWx0ZXIgMC40cyBjdWJpYy1iZXppZXIoMC4yMTUsIDAuNjEsIDAuMzU1LCAxKTtcclxuICB0cmFuc2l0aW9uLWRlbGF5OiBjYWxjKHZhcigtLXdvcmQtaW5kZXgpICogMTJtcyk7XHJcbiAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eSwgZmlsdGVyO1xyXG59XHJcblxyXG4udW5jb3Zlci13b3JkLnJldmVhbGVkIHtcclxuICBvcGFjaXR5OiAxO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcclxuICBmaWx0ZXI6IGJsdXIoMCk7XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi8qIFdFRUtMWSBDSEVDSy1JTiBNT0RBTCBTVFlMRVMgICAgICAgICAgICAgICAgICovXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uY2FyZC1lbWVyYWxkIHtcclxuICBib3JkZXItY29sb3I6IHJnYmEoNTIsIDIxMSwgMTUzLCAwLjE1KTtcclxufVxyXG4uY2FyZC1lbWVyYWxkIC5zdGF0LWljb24tYm94IHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDUyLCAyMTEsIDE1MywgMC4xKTtcclxuICBjb2xvcjogIzM0ZDM5OTtcclxufVxyXG5cclxuLnN0YXQtY2FyZCB7XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5zcGFya2xpbmUtc3ZnIHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgYm90dG9tOiAwO1xyXG4gIGxlZnQ6IDA7XHJcbiAgcmlnaHQ6IDA7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgaGVpZ2h0OiA0MHB4O1xyXG4gIG9wYWNpdHk6IDAuMjtcclxufVxyXG5cclxuLnNwYXJrbGluZS1zdmcgcG9seWxpbmUge1xyXG4gIGZpbGw6IG5vbmU7XHJcbiAgc3Ryb2tlOiAjMzRkMzk5O1xyXG4gIHN0cm9rZS13aWR0aDogMjtcclxuICBzdHJva2UtbGluZWNhcDogcm91bmQ7XHJcbiAgc3Ryb2tlLWxpbmVqb2luOiByb3VuZDtcclxufVxyXG5cclxuLnNwYXJrbGluZS1zdmcgLnNwYXJrbGluZS1maWxsIHtcclxuICBmaWxsOiB1cmwoI3NwYXJrbGluZS1ncmFkKTtcclxuICBvcGFjaXR5OiAwLjM7XHJcbn1cclxuXHJcbi8qIENoZWNrLWluIE1vZGFsIENhcmQgKi9cclxuLmNoZWNraW4tY2FyZCB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjkyKTtcclxuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCk7XHJcbiAgLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjRweCk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA2KTtcclxuICBib3JkZXItcmFkaXVzOiAxLjVyZW07XHJcbiAgbWF4LXdpZHRoOiA1NjBweDtcclxuICB3aWR0aDogOTIlO1xyXG4gIG1hcmdpbjogMnJlbSBhdXRvO1xyXG4gIHBhZGRpbmc6IDJyZW07XHJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIG1heC1oZWlnaHQ6IDg4dmg7XHJcbiAgb3ZlcmZsb3cteTogYXV0bztcclxuICBhbmltYXRpb246IG1vZGFsU2xpZGVVcCAwLjRzIGN1YmljLWJlemllcigwLjE2LCAxLCAwLjMsIDEpIGZvcndhcmRzO1xyXG59XHJcblxyXG5Aa2V5ZnJhbWVzIG1vZGFsU2xpZGVVcCB7XHJcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgzMHB4KSBzY2FsZSgwLjk3KTsgfVxyXG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpOyB9XHJcbn1cclxuXHJcbi5jaGVja2luLWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxLjVyZW07XHJcbiAgZmxleC13cmFwOiB3cmFwO1xyXG59XHJcblxyXG4uY2hlY2tpbi10aXRsZSB7XHJcbiAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMS4ycmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgY29sb3I6ICNmMWY1Zjk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG4gIGZsZXg6IDE7XHJcbn1cclxuXHJcbi5jaGVja2luLXRpdGxlIHN2ZyB7XHJcbiAgY29sb3I6ICMzNGQzOTk7XHJcbn1cclxuXHJcbi8qIFN0ZXAgRG90cyAqL1xyXG4uc3RlcC1kb3RzIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGdhcDogMC40cmVtO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5zdGVwLWRvdCB7XHJcbiAgd2lkdGg6IDhweDtcclxuICBoZWlnaHQ6IDhweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEyKTtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG59XHJcblxyXG4uc3RlcC1kb3QuYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiAjNjM2NmYxO1xyXG4gIGJveC1zaGFkb3c6IDAgMCA4cHggcmdiYSg5OSwgMTAyLCAyNDEsIDAuNCk7XHJcbiAgd2lkdGg6IDI0cHg7XHJcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xyXG59XHJcblxyXG4uc3RlcC1kb3QuY29tcGxldGVkIHtcclxuICBiYWNrZ3JvdW5kOiAjMzRkMzk5O1xyXG59XHJcblxyXG4vKiBDaGVjay1pbiBTdGVwcyAqL1xyXG4uY2hlY2tpbi1zdGVwIHtcclxuICBkaXNwbGF5OiBub25lO1xyXG4gIGFuaW1hdGlvbjogc3RlcEZhZGVJbiAwLjM1cyBlYXNlIGZvcndhcmRzO1xyXG59XHJcblxyXG4uY2hlY2tpbi1zdGVwLmFjdGl2ZSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc3RlcEZhZGVJbiB7XHJcbiAgZnJvbSB7IG9wYWNpdHk6IDA7IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgyMHB4KTsgfVxyXG4gIHRvIHsgb3BhY2l0eTogMTsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDApOyB9XHJcbn1cclxuXHJcbi5jaGVja2luLXN0ZXAtdGl0bGUge1xyXG4gIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjtcclxuICBmb250LXNpemU6IDEuM3JlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGNvbG9yOiAjZjFmNWY5O1xyXG4gIG1hcmdpbi1ib3R0b206IDAuM3JlbTtcclxufVxyXG5cclxuLmNoZWNraW4tc3RlcC1kZXNjIHtcclxuICBjb2xvcjogIzk0YTNiODtcclxuICBmb250LXNpemU6IDAuOXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XHJcbn1cclxuXHJcbi8qIFdlaWdodCBJbnB1dCBHcm91cCAqL1xyXG4ud2VpZ2h0LWlucHV0LWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjc1cmVtO1xyXG4gIG1hcmdpbjogMS41cmVtIDA7XHJcbn1cclxuXHJcbi53ZWlnaHQtc3RlcHBlciB7XHJcbiAgd2lkdGg6IDQ4cHg7XHJcbiAgaGVpZ2h0OiA0OHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDk5LCAxMDIsIDI0MSwgMC4xKTtcclxuICBjb2xvcjogI2E1YjRmYztcclxuICBmb250LXNpemU6IDEuNXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLndlaWdodC1zdGVwcGVyOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDk5LCAxMDIsIDI0MSwgMC4yNSk7XHJcbiAgYm9yZGVyLWNvbG9yOiAjNjM2NmYxO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxufVxyXG5cclxuLndlaWdodC1iaWctaW5wdXQge1xyXG4gIHdpZHRoOiAxMjBweDtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgZm9udC1zaXplOiAyLjVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDgwMDtcclxuICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7XHJcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XHJcbiAgYm9yZGVyOiBub25lO1xyXG4gIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCByZ2JhKDk5LCAxMDIsIDI0MSwgMC40KTtcclxuICBjb2xvcjogI2YxZjVmOTtcclxuICBwYWRkaW5nOiAwLjI1cmVtIDA7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4zcztcclxufVxyXG5cclxuLndlaWdodC1iaWctaW5wdXQ6Zm9jdXMge1xyXG4gIGJvcmRlci1ib3R0b20tY29sb3I6ICM2MzY2ZjE7XHJcbn1cclxuXHJcbi53ZWlnaHQtdW5pdCB7XHJcbiAgZm9udC1zaXplOiAxLjJyZW07XHJcbiAgY29sb3I6ICM2NDc0OGI7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLyogRGVsdGEgQmFkZ2UgKi9cclxuLmRlbHRhLWJhZGdlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgZm9udC1zaXplOiAwLjlyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBwYWRkaW5nOiAwLjNyZW0gMC44cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gIG1hcmdpbjogMCBhdXRvIDFyZW07XHJcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG59XHJcblxyXG4uZGVsdGEtYmFkZ2UubG9zcyB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSg1MiwgMjExLCAxNTMsIDAuMTIpO1xyXG4gIGNvbG9yOiAjMzRkMzk5O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTIsIDIxMSwgMTUzLCAwLjIpO1xyXG59XHJcblxyXG4uZGVsdGEtYmFkZ2UuZ2FpbiB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDE0NiwgNjAsIDAuMTIpO1xyXG4gIGNvbG9yOiAjZmI5MjNjO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjUxLCAxNDYsIDYwLCAwLjIpO1xyXG59XHJcblxyXG4uZGVsdGEtYmFkZ2UubmV1dHJhbCB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjEpO1xyXG4gIGNvbG9yOiAjOTRhM2I4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4xNSk7XHJcbn1cclxuXHJcbi8qIEVtb2ppIFNjYWxlICovXHJcbi5lbW9qaS1zY2FsZSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDAuNXJlbTtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XHJcbn1cclxuXHJcbi5lbW9qaS1idG4ge1xyXG4gIHdpZHRoOiA1MnB4O1xyXG4gIGhlaWdodDogNTJweDtcclxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjYpO1xyXG4gIGZvbnQtc2l6ZTogMS40cmVtO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxufVxyXG5cclxuLmVtb2ppLWJ0bjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSg5OSwgMTAyLCAyNDEsIDAuMTUpO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSg5OSwgMTAyLCAyNDEsIDAuMyk7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xyXG59XHJcblxyXG4uZW1vamktYnRuLmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSg5OSwgMTAyLCAyNDEsIDAuMik7XHJcbiAgYm9yZGVyLWNvbG9yOiAjNjM2NmYxO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxMnB4IHJnYmEoOTksIDEwMiwgMjQxLCAwLjMpO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcclxufVxyXG5cclxuLyogU3ltcHRvbSBHcmlkICovXHJcbi5zeW1wdG9tLWdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMywgMWZyKTtcclxuICBnYXA6IDAuNXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4uc3ltcHRvbS1idG4ge1xyXG4gIHBhZGRpbmc6IDAuNTVyZW0gMC42cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNnJlbTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC41KTtcclxuICBjb2xvcjogIzk0YTNiODtcclxuICBmb250LXNpemU6IDAuNzhyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uc3ltcHRvbS1idG46aG92ZXIge1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuOCk7XHJcbn1cclxuXHJcbi5zeW1wdG9tLWJ0bi5pbXByb3ZlZC1idG4uYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDUyLCAyMTEsIDE1MywgMC4xMik7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDUyLCAyMTEsIDE1MywgMC4zNSk7XHJcbiAgY29sb3I6ICMzNGQzOTk7XHJcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSg1MiwgMjExLCAxNTMsIDAuMTUpO1xyXG59XHJcblxyXG4uc3ltcHRvbS1idG4ud29yc2VuZWQtYnRuLmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDExMywgMTMzLCAwLjEyKTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjUxLCAxMTMsIDEzMywgMC4zNSk7XHJcbiAgY29sb3I6ICNmYjcxODU7XHJcbiAgYm94LXNoYWRvdzogMCAwIDEwcHggcmdiYSgyNTEsIDExMywgMTMzLCAwLjE1KTtcclxufVxyXG5cclxuLnN5bXB0b20tYnRuLnByZWYtYnRuLmFjdGl2ZSB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSg5OSwgMTAyLCAyNDEsIDAuMTgpICFpbXBvcnRhbnQ7XHJcbiAgYm9yZGVyLWNvbG9yOiAjNjM2NmYxICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNhNWI0ZmMgIWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDk5LCAxMDIsIDI0MSwgMC4zKSAhaW1wb3J0YW50O1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcclxufVxyXG5cclxuLyogSWxsbmVzcyBzeW1wdG9tIGJ1dHRvbnMg4oCUIGFtYmVyL29yYW5nZSB0aGVtZSBmb3IgYWN1dGUgaWxsbmVzcyAqL1xyXG4uc3ltcHRvbS1idG4uaWxsbmVzcy1idG4ge1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMTUpO1xyXG59XHJcblxyXG4uc3ltcHRvbS1idG4uaWxsbmVzcy1idG46aG92ZXIge1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMyk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTEsIDE5MSwgMzYsIDAuMDgpO1xyXG59XHJcblxyXG4uc3ltcHRvbS1idG4uaWxsbmVzcy1idG4uYWN0aXZlIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1MSwgMTQ2LCA2MCwgMC4xNSkgIWltcG9ydGFudDtcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjUxLCAxNDYsIDYwLCAwLjUpICFpbXBvcnRhbnQ7XHJcbiAgY29sb3I6ICNmYjkyM2MgIWltcG9ydGFudDtcclxuICBib3gtc2hhZG93OiAwIDAgMTRweCByZ2JhKDI1MSwgMTQ2LCA2MCwgMC4yNSkgIWltcG9ydGFudDtcclxuICBhbmltYXRpb246IGlsbG5lc3MtcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgaWxsbmVzcy1wdWxzZSB7XHJcbiAgMCUsIDEwMCUgeyBib3gtc2hhZG93OiAwIDAgMTRweCByZ2JhKDI1MSwgMTQ2LCA2MCwgMC4yNSk7IH1cclxuICA1MCUgeyBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDI1MSwgMTQ2LCA2MCwgMC40KTsgfVxyXG59XHJcblxyXG4vKiBUZXh0YXJlYSAqL1xyXG4uY2hlY2tpbi10ZXh0YXJlYSB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XHJcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICBjb2xvcjogI2UyZThmMDtcclxuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XHJcbiAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMC44NzVyZW07XHJcbiAgcmVzaXplOiB2ZXJ0aWNhbDtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzO1xyXG59XHJcblxyXG4uY2hlY2tpbi10ZXh0YXJlYTpmb2N1cyB7XHJcbiAgYm9yZGVyLWNvbG9yOiByZ2JhKDk5LCAxMDIsIDI0MSwgMC40KTtcclxufVxyXG5cclxuLyogTG9hZGluZyBTdGF0ZSAqL1xyXG4uY2hlY2tpbi1sb2FkaW5nLXN0YXRlIHtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgcGFkZGluZzogM3JlbSAxcmVtO1xyXG59XHJcblxyXG4vKiBDaGVjay1pbiBSZXN1bHQgTWV0cmljcyBSb3cgKi9cclxuLmNoZWNraW4tbWV0cmljcy1yb3cge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcclxuICBnYXA6IDAuNnJlbTtcclxuICBtYXJnaW46IDEuMnJlbSAwO1xyXG59XHJcblxyXG4uY2hlY2tpbi1tZXRyaWMtY2FyZCB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjYpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICBwYWRkaW5nOiAwLjc1cmVtIDAuNXJlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuXHJcbi5tZXRyaWMtbGFiZWwge1xyXG4gIGZvbnQtc2l6ZTogMC43cmVtO1xyXG4gIGNvbG9yOiAjNjQ3NDhiO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcclxuICBtYXJnaW4tYm90dG9tOiAwLjI1cmVtO1xyXG59XHJcblxyXG4ubWV0cmljLXZhbHVlIHtcclxuICBmb250LXNpemU6IDEuMXJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGNvbG9yOiAjZjFmNWY5O1xyXG59XHJcblxyXG4ubWV0cmljLWRlbHRhIHtcclxuICBmb250LXNpemU6IDAuNzVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBtYXJnaW4tdG9wOiAwLjJyZW07XHJcbn1cclxuXHJcbi5tZXRyaWMtZGVsdGEucG9zaXRpdmUge1xyXG4gIGNvbG9yOiAjMzRkMzk5O1xyXG59XHJcblxyXG4ubWV0cmljLWRlbHRhLm5lZ2F0aXZlIHtcclxuICBjb2xvcjogI2ZiNzE4NTtcclxufVxyXG5cclxuLm1ldHJpYy1kZWx0YS5uZXV0cmFsIHtcclxuICBjb2xvcjogIzk0YTNiODtcclxufVxyXG5cclxuLyogQUkgQW5hbHlzaXMgUmVzdWx0IENhcmQgKi9cclxuLmFuYWx5c2lzLXJlc3VsdC1jYXJkIHtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDk5LCAxMDIsIDI0MSwgMC4wOCksIHJnYmEoMjM2LCA3MiwgMTUzLCAwLjA2KSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg5OSwgMTAyLCAyNDEsIDAuMTUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDFyZW07XHJcbiAgcGFkZGluZzogMS4yNXJlbTtcclxuICBtYXJnaW46IDFyZW0gMDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5hbmFseXNpcy1pY29uIHtcclxuICBmb250LXNpemU6IDEuNXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAwLjVyZW07XHJcbn1cclxuXHJcbi5hbmFseXNpcy10ZXh0IHtcclxuICBjb2xvcjogI2NiZDVlMTtcclxuICBmb250LXNpemU6IDAuOXJlbTtcclxuICBsaW5lLWhlaWdodDogMS42O1xyXG59XHJcblxyXG4uY2hlY2tpbi1kb25lLWJ0biB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbWFyZ2luLXRvcDogMXJlbTtcclxufVxyXG5cclxuLmNoZWNraW4tbmV4dC1idG4ge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG1hcmdpbi10b3A6IDAuNXJlbTtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAuc3ltcHRvbS1ncmlkIHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgfVxyXG4gIC5jaGVja2luLW1ldHJpY3Mtcm93IHtcclxuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIDFmcik7XHJcbiAgfVxyXG4gIC5lbW9qaS1idG4ge1xyXG4gICAgd2lkdGg6IDQ0cHg7XHJcbiAgICBoZWlnaHQ6IDQ0cHg7XHJcbiAgICBmb250LXNpemU6IDEuMnJlbTtcclxuICB9XHJcbn1cclxuXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcbi8qIEFETUlOIENPTlNPTEUgU1RZTEVTICAgICAgICAgICAgICAgICAgICAgICAgICovXHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4uYWRtaW4tbGF5b3V0IHtcclxuICBwYWRkaW5nOiAycmVtIDA7XHJcbiAgbWF4LXdpZHRoOiAxMjAwcHg7XHJcbiAgbWFyZ2luOiAwIGF1dG87XHJcbiAgd2lkdGg6IDk1JTtcclxufVxyXG5cclxuLmFkbWluLWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xyXG4gIHBhZGRpbmctYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4uYWRtaW4tYnJhbmQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDAuNzVyZW07XHJcbn1cclxuXHJcbi5hZG1pbi1icmFuZCBoMiB7XHJcbiAgZm9udC1mYW1pbHk6ICdPdXRmaXQnLCBzYW5zLXNlcmlmO1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA4MDA7XHJcbiAgY29sb3I6ICNmMWY1Zjk7XHJcbn1cclxuXHJcbi5hZG1pbi11c2VyLXByb2ZpbGUge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDEuNXJlbTtcclxufVxyXG5cclxuLmFkbWluLXVzZXItZGV0YWlscyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIHRleHQtYWxpZ246IHJpZ2h0O1xyXG59XHJcblxyXG4uYWRtaW4tdXNlci1uYW1lIHtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGNvbG9yOiAjZjFmNWY5O1xyXG4gIGZvbnQtc2l6ZTogMC45NXJlbTtcclxufVxyXG5cclxuLmFkbWluLXVzZXItcm9sZSB7XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxufVxyXG5cclxuLmJ0bi1sb2dvdXQtYWRtaW4ge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7XHJcbiAgY29sb3I6ICNlZjQ0NDQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4yKTtcclxuICBwYWRkaW5nOiAwLjVyZW0gMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwLjVyZW07XHJcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjVyZW07XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XHJcbn1cclxuXHJcbi5idG4tbG9nb3V0LWFkbWluOmhvdmVyIHtcclxuICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xyXG4gIGNvbG9yOiB3aGl0ZTtcclxuICBib3gtc2hhZG93OiAwIDAgMTJweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjM1KTtcclxufVxyXG5cclxuLmFkbWluLXN0YXRzLWdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoNCwgMWZyKTtcclxuICBnYXA6IDEuNXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAycmVtO1xyXG59XHJcblxyXG4vKiBDb250cm9scyBDYXJkICovXHJcbi5hZG1pbi1jb250cm9scy1jYXJkIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNCk7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XHJcbiAgcGFkZGluZzogMS4yNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAxcmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgZ2FwOiAxLjVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtO1xyXG59XHJcblxyXG4uYWRtaW4tc2VhcmNoLXdyYXBwZXIge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBmbGV4LWdyb3c6IDE7XHJcbn1cclxuXHJcbi5hZG1pbi1zZWFyY2gtd3JhcHBlciAuc2VhcmNoLWljb24ge1xyXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICBsZWZ0OiAxcmVtO1xyXG4gIHRvcDogNTAlO1xyXG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbn1cclxuXHJcbiNhZG1pbi1zZWFyY2gtaW5wdXQge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC42KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XHJcbiAgcGFkZGluZzogMC43NXJlbSAxcmVtIDAuNzVyZW0gMi43NXJlbTtcclxuICBjb2xvcjogI2YxZjVmOTtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjNzO1xyXG59XHJcblxyXG4jYWRtaW4tc2VhcmNoLWlucHV0OmZvY3VzIHtcclxuICBib3JkZXItY29sb3I6IHJnYmEoOTksIDEwMiwgMjQxLCAwLjQpO1xyXG59XHJcblxyXG4uYWRtaW4tZmlsdGVycyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBnYXA6IDFyZW07XHJcbn1cclxuXHJcbi5hZG1pbi1zZWxlY3Qge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC43KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xyXG4gIGNvbG9yOiAjY2JkNWUxO1xyXG4gIHBhZGRpbmc6IDAuNzVyZW0gMS4yNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwLjc1cmVtO1xyXG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcclxuICBvdXRsaW5lOiBub25lO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmFkbWluLXNlbGVjdCBvcHRpb24ge1xyXG4gIGJhY2tncm91bmQ6ICMwZjE3MmE7XHJcbiAgY29sb3I6ICNjYmQ1ZTE7XHJcbn1cclxuXHJcbi8qIEdsYXNzIFRhYmxlIFN0eWxlcyAqL1xyXG4uYWRtaW4tdGFibGUtY29udGFpbmVyIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuNCk7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDE2cHgpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNSk7XHJcbiAgYm9yZGVyLXJhZGl1czogMS4yNXJlbTtcclxuICBvdmVyZmxvdzogaGlkZGVuO1xyXG59XHJcblxyXG4uYWRtaW4tdGFibGUge1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgdGV4dC1hbGlnbjogbGVmdDtcclxufVxyXG5cclxuLmFkbWluLXRhYmxlIHRoIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuMyk7XHJcbiAgcGFkZGluZzogMS4yNXJlbTtcclxuICBmb250LXNpemU6IDAuNzVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDYpO1xyXG59XHJcblxyXG4uYWRtaW4tdGFibGUgdGQge1xyXG4gIHBhZGRpbmc6IDEuMjVyZW07XHJcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XHJcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICBmb250LXNpemU6IDAuOXJlbTtcclxuICBjb2xvcjogI2NiZDVlMTtcclxufVxyXG5cclxuLmFkbWluLXRhYmxlIHRyOmxhc3QtY2hpbGQgdGQge1xyXG4gIGJvcmRlci1ib3R0b206IG5vbmU7XHJcbn1cclxuXHJcbi5hZG1pbi10YWJsZSB0cjpob3ZlciB0ZCB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAxNSk7XHJcbn1cclxuXHJcbi5hZG1pbi1jbGllbnQtaW5mbyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC43NXJlbTtcclxufVxyXG5cclxuLmFkbWluLWNsaWVudC1hdmF0YXIge1xyXG4gIHdpZHRoOiA0MHB4O1xyXG4gIGhlaWdodDogNDBweDtcclxuICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5OSwgMTAyLCAyNDEsIDAuMTUpLCByZ2JhKDIzNiwgNzIsIDE1MywgMC4xNSkpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wOCk7XHJcbiAgY29sb3I6ICNmMWY1Zjk7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgZm9udC1zaXplOiAxLjFyZW07XHJcbn1cclxuXHJcbi5hZG1pbi1jbGllbnQtbWV0YSB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG59XHJcblxyXG4uYWRtaW4tY2xpZW50LW5hbWUge1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgY29sb3I6ICNmOGZhZmM7XHJcbn1cclxuXHJcbi5hZG1pbi1jbGllbnQtdXNlcm5hbWUge1xyXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbn1cclxuXHJcbi8qIEJhZGdlcyBmb3IgR29hbHMvU3RyZWFrcyAqL1xyXG4uYmFkZ2Utc3RyZWFrIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1MSwgMTQ2LCA2MCwgMC4xMik7XHJcbiAgY29sb3I6ICNmYjkyM2M7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTEsIDE0NiwgNjAsIDAuMik7XHJcbiAgcGFkZGluZzogMC4yNXJlbSAwLjZyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMnJlbTtcclxuICBmb250LXNpemU6IDAuNzVyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC4yNXJlbTtcclxufVxyXG5cclxuLmJhZGdlLWdvYWwge1xyXG4gIHBhZGRpbmc6IDAuMjVyZW0gMC42cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDJyZW07XHJcbiAgZm9udC1zaXplOiAwLjc1cmVtO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxuICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xyXG59XHJcblxyXG4uYmFkZ2UtZ29hbC5sb3NlIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI0OCwgMTEzLCAxMTMsIDAuMSk7XHJcbiAgY29sb3I6ICNmODcxNzE7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDgsIDExMywgMTEzLCAwLjE1KTtcclxufVxyXG5cclxuLmJhZGdlLWdvYWwuZ2FpbiB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxMjksIDE0MCwgMjQ4LCAwLjEpO1xyXG4gIGNvbG9yOiAjODE4Y2Y4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI5LCAxNDAsIDI0OCwgMC4xNSk7XHJcbn1cclxuXHJcbi5iYWRnZS1nb2FsLm1haW50YWluIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDUyLCAyMTEsIDE1MywgMC4xKTtcclxuICBjb2xvcjogIzM0ZDM5OTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDUyLCAyMTEsIDE1MywgMC4xNSk7XHJcbn1cclxuXHJcbi5hZG1pbi10YXJnZXRzLWNvbHVtbiB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gIGdhcDogMC4ycmVtO1xyXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xyXG59XHJcblxyXG4uYWRtaW4tdGFyZ2V0LWxibCB7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xyXG59XHJcblxyXG4uYWRtaW4tdGFyZ2V0LXZhbCB7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogI2UyZThmMDtcclxufVxyXG5cclxuLmFkbWluLWJ0bi1pbnNwZWN0IHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDk5LCAxMDIsIDI0MSwgMC4xKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDk5LCAxMDIsIDI0MSwgMC4yKTtcclxuICBjb2xvcjogI2E1YjRmYztcclxuICBwYWRkaW5nOiAwLjVyZW0gMC44NXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAwLjZyZW07XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zaXplOiAwLjhyZW07XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuMnM7XHJcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDAuMzVyZW07XHJcbn1cclxuXHJcbi5hZG1pbi1idG4taW5zcGVjdDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogIzYzNjZmMTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgYm9yZGVyLWNvbG9yOiAjNjM2NmYxO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoOTksIDEwMiwgMjQxLCAwLjM1KTtcclxufVxyXG5cclxuLyogQWRtaW4gRGV0YWlsIEluc3BlY3QgTW9kYWwgRHJhd2VyICovXHJcbi5hZG1pbi1pbnNwZWN0LWNhcmQge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMTUsIDIzLCA0MiwgMC45Myk7XHJcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI4cHgpO1xyXG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI4cHgpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNik7XHJcbiAgYm9yZGVyLXJhZGl1czogMS43NXJlbTtcclxuICBtYXgtd2lkdGg6IDgyMHB4O1xyXG4gIHdpZHRoOiA5MiU7XHJcbiAgbWFyZ2luOiAzcmVtIGF1dG87XHJcbiAgcGFkZGluZzogMi41cmVtO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBtYXgtaGVpZ2h0OiA4OHZoO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgYW5pbWF0aW9uOiBtb2RhbFNsaWRlVXAgMC40cyBjdWJpYy1iZXppZXIoMC4xNiwgMSwgMC4zLCAxKSBmb3J3YXJkcztcclxufVxyXG5cclxuLmFkbWluLWluc3BlY3QtaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICBhbGlnbi1pdGVtczogc3RhcnQ7XHJcbiAgbWFyZ2luLWJvdHRvbTogMnJlbTtcclxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcclxuICBwYWRkaW5nLWJvdHRvbTogMS4yNXJlbTtcclxufVxyXG5cclxuLmluc3BlY3QtdGl0bGUtZ3JvdXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxufVxyXG5cclxuLmluc3BlY3QtdGl0bGUge1xyXG4gIGZvbnQtZmFtaWx5OiAnT3V0Zml0Jywgc2Fucy1zZXJpZjtcclxuICBmb250LXNpemU6IDEuNnJlbTtcclxuICBmb250LXdlaWdodDogODAwO1xyXG4gIGNvbG9yOiAjZjFmNWY5O1xyXG59XHJcblxyXG4uaW5zcGVjdC1zdWJ0aXRsZSB7XHJcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxuICBmb250LXdlaWdodDogNTAwO1xyXG59XHJcblxyXG4uaW5zcGVjdC1kZXRhaWxzLWdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xyXG4gIGdhcDogMnJlbTtcclxufVxyXG5cclxuLmluc3BlY3Qtdml0YWxzLWNhcmQsIC5pbnNwZWN0LXRyZW5kLWNhcmQge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC4zKTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDMpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDEuMjVyZW07XHJcbiAgcGFkZGluZzogMS41cmVtO1xyXG59XHJcblxyXG4uaW5zcGVjdC1zZWN0aW9uLXRpdGxlIHtcclxuICBmb250LWZhbWlseTogJ091dGZpdCcsIHNhbnMtc2VyaWY7XHJcbiAgZm9udC1zaXplOiAxLjFyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICBjb2xvcjogI2NiZDVlMTtcclxuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDAuNXJlbTtcclxufVxyXG5cclxuLnZpdGFscy1kZXRhaWxzLWdyaWQge1xyXG4gIGRpc3BsYXk6IGdyaWQ7XHJcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnIgMWZyO1xyXG4gIGdhcDogMXJlbTtcclxufVxyXG5cclxuLnZpdGFsLWRldGFpbC1pdGVtIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjMpO1xyXG4gIHBhZGRpbmc6IDAuNnJlbSAwLjg1cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAyKTtcclxufVxyXG5cclxuLmRldGFpbC1sYWJlbCB7XHJcbiAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgbWFyZ2luLWJvdHRvbTogMC4xNXJlbTtcclxufVxyXG5cclxuLmRldGFpbC12YWx1ZSB7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogI2YxZjVmOTtcclxuICBmb250LXNpemU6IDAuOTVyZW07XHJcbn1cclxuXHJcbi5kZXRhaWwtc3ViLXRpdGxlIHtcclxuICBmb250LXNpemU6IDAuOHJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMC43NXJlbTtcclxufVxyXG5cclxuLmFsZXJ0LWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAwLjM1cmVtO1xyXG59XHJcblxyXG4uYmFkZ2UtdGl0bGUge1xyXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxufVxyXG5cclxuLmFsZXJ0LWJhZGdlcy1saXN0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBnYXA6IDAuNHJlbTtcclxufVxyXG5cclxuLndhcm5pbmctYmFkZ2Uge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSk7XHJcbiAgY29sb3I6ICNmY2E1YTU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMzksIDY4LCA2OCwgMC4xNSk7XHJcbiAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBwYWRkaW5nOiAwLjE1cmVtIDAuNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAycmVtO1xyXG59XHJcblxyXG4ud2FybmluZy1iYWRnZS5hbGxlcmdlbiB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNDUsIDE1OCwgMTEsIDAuMSk7XHJcbiAgY29sb3I6ICNmY2QzNGQ7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNDUsIDE1OCwgMTEsIDAuMTUpO1xyXG59XHJcblxyXG4vKiBMYXJnZSBTVkcgU3BhcmtsaW5lIGluIEluc3BlY3RvciAqL1xyXG4udHJlbmQtaGVhZGVyLXJvdyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4uaW5zcGVjdC1zcGFya2xpbmUtd3JhcHBlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxNSwgMjMsIDQyLCAwLjUpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XHJcbiAgcGFkZGluZzogMC41cmVtO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMik7XHJcbiAgaGVpZ2h0OiAxMjBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbn1cclxuXHJcbi5sYXJnZS1zcGFya2xpbmUtc3ZnIHtcclxuICB3aWR0aDogMTAwJTtcclxuICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuXHJcbi5sYXJnZS1zcGFya2xpbmUtc3ZnIHBvbHlsaW5lIHtcclxuICBmaWxsOiBub25lO1xyXG4gIHN0cm9rZTogI2VjNDg5OTtcclxuICBzdHJva2Utd2lkdGg6IDM7XHJcbiAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xyXG59XHJcblxyXG4ubGFyZ2Utc3BhcmtsaW5lLXN2ZyAuc3BhcmtsaW5lLWZpbGwge1xyXG4gIGZpbGw6IHVybCgjbGFyZ2Utc3BhcmtsaW5lLWdyYWQpO1xyXG4gIG9wYWNpdHk6IDAuMjU7XHJcbn1cclxuXHJcbi5zcGFya2xpbmUtYXhlcyB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgZm9udC1zaXplOiAwLjdyZW07XHJcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xyXG4gIG1hcmdpbi10b3A6IDAuMzVyZW07XHJcbiAgcGFkZGluZzogMCAwLjI1cmVtO1xyXG59XHJcblxyXG4vKiBBY2NvcmRpb24gQ2hlY2staW5zICovXHJcbi5jaGVja2luLWxvZy1jYXJkIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuMjUpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wNCk7XHJcbiAgYm9yZGVyLXJhZGl1czogMC43NXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi5jaGVja2luLWxvZy1oZWFkZXIge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMzAsIDQxLCA1OSwgMC4xNSk7XHJcbiAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcclxufVxyXG5cclxuLmNoZWNraW4tbG9nLWhlYWRlcjpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjMpO1xyXG59XHJcblxyXG4ubG9nLWRhdGUtZ3JvdXAge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDAuNzVyZW07XHJcbn1cclxuXHJcbi5sb2ctZGF0ZSB7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBjb2xvcjogI2UyZThmMDtcclxufVxyXG5cclxuLmxvZy1zdHJlYWsge1xyXG4gIGZvbnQtc2l6ZTogMC43NXJlbTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDk5LCAxMDIsIDI0MSwgMC4xKTtcclxuICBjb2xvcjogI2E1YjRmYztcclxuICBwYWRkaW5nOiAwLjE1cmVtIDAuNXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAxcmVtO1xyXG59XHJcblxyXG4ubG9nLW1ldGEtcmlnaHQge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICBnYXA6IDFyZW07XHJcbn1cclxuXHJcbi5sb2ctd2VpZ2h0LWRlbHRhIHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcclxufVxyXG5cclxuLmxvZy1hY2NvcmRpb24taWNvbiB7XHJcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3M7XHJcbiAgY29sb3I6IHZhcigtLXRleHQtbXV0ZWQpO1xyXG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XHJcbn1cclxuXHJcbi5jaGVja2luLWxvZy1jYXJkLm9wZW4gLmxvZy1hY2NvcmRpb24taWNvbiB7XHJcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcclxufVxyXG5cclxuLmNoZWNraW4tbG9nLWJvZHkge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbiAgcGFkZGluZzogMS4yNXJlbTtcclxuICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjAzKTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuMjUpO1xyXG4gIGFuaW1hdGlvbjogYWNjb3JkaW9uU2xpZGVEb3duIDAuM3MgZWFzZSBmb3J3YXJkcztcclxufVxyXG5cclxuLmNoZWNraW4tbG9nLWNhcmQub3BlbiAuY2hlY2tpbi1sb2ctYm9keSB7XHJcbiAgZGlzcGxheTogYmxvY2s7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgYWNjb3JkaW9uU2xpZGVEb3duIHtcclxuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01cHgpOyB9XHJcbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7IH1cclxufVxyXG5cclxuLmxvZy1yYXRpbmdzLXJvdyB7XHJcbiAgZGlzcGxheTogZ3JpZDtcclxuICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgzLCAxZnIpO1xyXG4gIGdhcDogMXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxcmVtO1xyXG59XHJcblxyXG4ubG9nLXJhdGluZy1waWxsIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDMwLCA0MSwgNTksIDAuNCk7XHJcbiAgcGFkZGluZzogMC41cmVtIDAuNzVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xyXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG59XHJcblxyXG4ucmF0aW5nLXBpbGwtbGJsIHtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbn1cclxuXHJcbi5yYXRpbmctcGlsbC12YWwge1xyXG4gIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgY29sb3I6ICNmMWY1Zjk7XHJcbn1cclxuXHJcbi5sb2ctc3ltcHRvbXMtYm94IHtcclxuICBkaXNwbGF5OiBncmlkO1xyXG4gIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcclxuICBnYXA6IDFyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLmxvZy1zeW1wdG9tLWNvbHVtbiB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjE1KTtcclxuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xyXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xyXG59XHJcblxyXG4ubG9nLXN5bXB0b20tY29sdW1uLXRpdGxlIHtcclxuICBjb2xvcjogdmFyKC0tdGV4dC1tdXRlZCk7XHJcbiAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICBtYXJnaW4tYm90dG9tOiAwLjM1cmVtO1xyXG59XHJcblxyXG4ubG9nLXN5bXB0b20tbGlzdCB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgZ2FwOiAwLjM1cmVtO1xyXG4gIGNvbG9yOiAjZTJlOGYwO1xyXG59XHJcblxyXG4ubG9nLXN5bXB0b20tdGFnIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDUpO1xyXG4gIHBhZGRpbmc6IDAuMTVyZW0gMC40cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuMzVyZW07XHJcbn1cclxuXHJcbi5sb2ctbm90ZXMtc2VjdGlvbiB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgzMCwgNDEsIDU5LCAwLjE1KTtcclxuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMC42cmVtO1xyXG4gIGZvbnQtc2l6ZTogMC44cmVtO1xyXG4gIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbn1cclxuXHJcbi5sb2ctbm90ZXMtdGl0bGUge1xyXG4gIGNvbG9yOiB2YXIoLS10ZXh0LW11dGVkKTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuMjVyZW07XHJcbn1cclxuXHJcbi5sb2ctbm90ZXMtdHh0IHtcclxuICBjb2xvcjogI2NiZDVlMTtcclxuICBmb250LXN0eWxlOiBpdGFsaWM7XHJcbn1cclxuXHJcbi5sb2ctYWktY2FyZCB7XHJcbiAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSg5OSwgMTAyLCAyNDEsIDAuMDYpLCByZ2JhKDIzNiwgNzIsIDE1MywgMC4wNCkpO1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoOTksIDEwMiwgMjQxLCAwLjEpO1xyXG4gIGJvcmRlci1yYWRpdXM6IDAuNzVyZW07XHJcbiAgcGFkZGluZzogMXJlbSAxLjI1cmVtO1xyXG59XHJcblxyXG4ubG9nLWFpLXRpdGxlIHtcclxuICBmb250LXNpemU6IDAuOHJlbTtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG4gIGNvbG9yOiAjYTViNGZjO1xyXG4gIG1hcmdpbi1ib3R0b206IDAuMzVyZW07XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC4zNXJlbTtcclxufVxyXG5cclxuLmxvZy1haS10ZXh0IHtcclxuICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgY29sb3I6ICNjYmQ1ZTE7XHJcbiAgbGluZS1oZWlnaHQ6IDEuNTtcclxufVxyXG5cclxuLyogUmVzcG9uc2l2ZSBUYWJsZSAqL1xyXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcclxuICAuYWRtaW4tc3RhdHMtZ3JpZCB7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdCgyLCAxZnIpO1xyXG4gIH1cclxuICAuYWRtaW4tY29udHJvbHMtY2FyZCB7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XHJcbiAgfVxyXG4gIC5hZG1pbi1maWx0ZXJzIHtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgfVxyXG4gIC5pbnNwZWN0LWRldGFpbHMtZ3JpZCB7XHJcbiAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmcjtcclxuICB9XHJcbn1cclxuXHJcbi8qIEN1c3RvbSBVSS9VWCBFbmhhbmNlbWVudHMgZm9yIE1lbnUgTG9ja2luZyAqL1xyXG5cclxuLmJ0bi1sb2NrLWl0ZW0ge1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgd2lkdGg6IDMycHg7XHJcbiAgaGVpZ2h0OiAzMnB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTtcclxuICBjb2xvcjogI2ExYTFhYTtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKTtcclxuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoNHB4KTtcclxuICBwYWRkaW5nOiAwO1xyXG4gIGZsZXgtc2hyaW5rOiAwO1xyXG59XHJcblxyXG4uYnRuLWxvY2staXRlbTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG4gIHRyYW5zZm9ybTogc2NhbGUoMS4xKSByb3RhdGUoNWRlZyk7XHJcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsMCwwLDAuMik7XHJcbn1cclxuXHJcbi5idG4tbG9jay1pdGVtLmxvY2tlZCB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMTUpO1xyXG4gIGJvcmRlci1jb2xvcjogcmdiYSgxNiwgMTg1LCAxMjksIDAuMyk7XHJcbiAgY29sb3I6ICMxMGI5ODE7XHJcbn1cclxuXHJcbi5idG4tbG9jay1pdGVtLmxvY2tlZDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMjUpO1xyXG4gIGJveC1zaGFkb3c6IDAgMCAxMHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjIpO1xyXG59XHJcblxyXG4uYnRuLWxvY2staXRlbS51bmxvY2tlZCB7XHJcbiAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDAgNHB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSk7XHJcbiAgY29sb3I6ICNGRkY7XHJcbn1cclxuXHJcbi8qIC0tLSBFeHRyYSBDYWxvcmllcyBDYXJkIFN0eWxlcyAtLS0gKi9cclxuLmV4dHJhLWNhbG9yaWVzLWNhcmQge1xyXG4gIG1hcmdpbi1ib3R0b206IDJyZW07XHJcbiAgcGFkZGluZzogMS41cmVtO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4wMyk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcclxuICBib3JkZXItcmFkaXVzOiAxNnB4O1xyXG4gIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcclxuICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlO1xyXG4gIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG59XHJcblxyXG4uZXh0cmEtY2Fsb3JpZXMtY2FyZDpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA1KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMTQyLCAxMzksIDAuMyk7XHJcbiAgYm94LXNoYWRvdzogMCA4cHggMzBweCByZ2JhKDI1NSwgMTA3LCAxMDcsIDAuMSk7XHJcbn1cclxuXHJcbi5leHRyYS1jYWwtaGVhZGVyIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xyXG59XHJcblxyXG4uZXh0cmEtY2FsLWhlYWRlciAuc2VjdGlvbi10aXRsZSB7XHJcbiAgbWFyZ2luLXRvcDogMDtcclxuICBtYXJnaW4tYm90dG9tOiAwO1xyXG4gIGZvbnQtc2l6ZTogMS4yNXJlbTtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGNvbG9yOiAjZmZmO1xyXG59XHJcblxyXG4uZXh0cmEtY2Fsb3JpZXMtY2FyZCAuc3VidGl0bGUge1xyXG4gIGNvbG9yOiByZ2JhKDI1NSwyNTUsMjU1LDAuODUpO1xyXG4gIGZvbnQtc2l6ZTogMC44NXJlbTtcclxuICBtYXJnaW4tYm90dG9tOiAxLjI1cmVtO1xyXG59XHJcblxyXG4uZXh0cmEtY2FsLWlucHV0LWdyb3VwIHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtd3JhcDogd3JhcDtcclxuICBnYXA6IDAuNzVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxufVxyXG5cclxuLmV4dHJhLWNhbC1pbnB1dCB7XHJcbiAgZmxleDogMTtcclxuICBwYWRkaW5nOiAwLjc1cmVtIDFyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuMSk7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgwLDAsMCwwLjI1KTtcclxuICBjb2xvcjogI2ZmZjtcclxuICBmb250LXNpemU6IDAuOTVyZW07XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxufVxyXG5cclxuLmV4dHJhLWNhbC1pbnB1dDpmb2N1cyB7XHJcbiAgb3V0bGluZTogbm9uZTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAxNDIsIDEzOSwgMC41KTtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNCk7XHJcbiAgYm94LXNoYWRvdzogMCAwIDAgM3B4IHJnYmEoMjU1LCAxMDcsIDEwNywgMC4xNSk7XHJcbn1cclxuXHJcbi5leHRyYS1jYWwtYnRuIHtcclxuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xyXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgZ2FwOiAwLjVyZW07XHJcbiAgcGFkZGluZzogMC43NXJlbSAxLjVyZW07XHJcbiAgYm9yZGVyLXJhZGl1czogMTJweDtcclxuICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjRkY2QjZCIDAlLCAjRkY4RThCIDEwMCUpO1xyXG4gIGJvcmRlcjogbm9uZTtcclxuICBjb2xvcjogd2hpdGU7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSk7XHJcbiAgYm94LXNoYWRvdzogMCA0cHggMTVweCByZ2JhKDI1NSwgMTA3LCAxMDcsIDAuMyk7XHJcbn1cclxuXHJcbi5leHRyYS1jYWwtYnRuOmhvdmVyIHtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMik7XHJcbiAgYm94LXNoYWRvdzogMCA2cHggMjBweCByZ2JhKDI1NSwgMTA3LCAxMDcsIDAuNCk7XHJcbn1cclxuXHJcbi5leHRyYS1jYWwtYnRuOmFjdGl2ZSB7XHJcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7XHJcbn1cclxuXHJcbi5mZWVkYmFjay1ib3gge1xyXG4gIHBhZGRpbmc6IDAuNzVyZW0gMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEpOyAvKiBkZWZhdWx0IHN1Y2Nlc3MgKi9cclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKTtcclxuICBjb2xvcjogIzM0ZDM5OTtcclxuICBmb250LXNpemU6IDAuODVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcclxuICBhbmltYXRpb246IGZhZGVJbiAwLjNzIGVhc2U7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIGdhcDogMC41cmVtO1xyXG59XHJcblxyXG4uZmVlZGJhY2stYm94LmVycm9yLXN0YXRlIHtcclxuICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTtcclxuICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIzOSwgNjgsIDY4LCAwLjMpO1xyXG4gIGNvbG9yOiAjZmNhNWE1O1xyXG4gIGJveC1zaGFkb3c6IDAgNHB4IDE1cHggcmdiYSgyMzksIDY4LCA2OCwgMC4xKTtcclxuICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcclxufVxyXG5cclxuLmV4dHJhLWNhbC1saXN0IHtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgZ2FwOiAwLjc1cmVtO1xyXG59XHJcblxyXG4uZXh0cmEtY2FsLWl0ZW0ge1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LDI1NSwyNTUsMC4wNCk7XHJcbiAgcGFkZGluZzogMXJlbTtcclxuICBib3JkZXItcmFkaXVzOiAxMnB4O1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsMC4wNSk7XHJcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcclxuICBhbmltYXRpb246IHNsaWRlSW5SaWdodCAwLjRzIGVhc2UgZm9yd2FyZHM7XHJcbn1cclxuXHJcbi5leHRyYS1jYWwtaXRlbTpob3ZlciB7XHJcbiAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwwLjA4KTtcclxuICBib3JkZXItY29sb3I6IHJnYmEoMjU1LDI1NSwyNTUsMC4xKTtcclxuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoNHB4KTtcclxufVxyXG5cclxuLmV4dHJhLWNhbC1pdGVtLWhlYWRlciB7XHJcbiAgZGlzcGxheTogZmxleDtcclxuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgZ2FwOiAwLjVyZW07XHJcbiAgbWFyZ2luLWJvdHRvbTogMC40cmVtO1xyXG59XHJcblxyXG4uZXh0cmEtY2FsLWl0ZW0taGVhZGVyIHN0cm9uZyB7XHJcbiAgY29sb3I6ICNmZmY7XHJcbiAgZm9udC1zaXplOiAwLjk1cmVtO1xyXG4gIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgbWluLXdpZHRoOiAwO1xyXG4gIGZsZXg6IDE7XHJcbn1cclxuXHJcbi5leHRyYS1jYWwtdmFsIHtcclxuICBjb2xvcjogI0ZGOEU4QjtcclxuICBmb250LXdlaWdodDogNjAwO1xyXG4gIGZvbnQtc2l6ZTogMC45cmVtO1xyXG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAxMDcsIDEwNywgMC4xKTtcclxuICBwYWRkaW5nOiAwLjJyZW0gMC42cmVtO1xyXG4gIGJvcmRlci1yYWRpdXM6IDIwcHg7XHJcbiAgZmxleC1zaHJpbms6IDA7XHJcbn1cclxuXHJcbi5leHRyYS1jYWwtZmVlZGJhY2stdGV4dCB7XHJcbiAgZm9udC1zaXplOiAwLjg1cmVtO1xyXG4gIGNvbG9yOiAjYTFhMWFhO1xyXG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XHJcbn1cclxuXHJcbkBrZXlmcmFtZXMgc2xpZGVJblJpZ2h0IHtcclxuICBmcm9tIHsgb3BhY2l0eTogMDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDIwcHgpOyB9XHJcbiAgdG8geyBvcGFjaXR5OiAxOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7IH1cclxufVxyXG5cclxuQGtleWZyYW1lcyBmYWRlSW4ge1xyXG4gIGZyb20geyBvcGFjaXR5OiAwOyB9XHJcbiAgdG8geyBvcGFjaXR5OiAxOyB9XHJcbn1cclxuXHJcbi8qIC0tLSBHbG9iYWwgS2V5Ym9hcmQgQWNjZXNzaWJpbGl0eSAtLS0gKi9cclxuOmZvY3VzLXZpc2libGUge1xyXG4gIG91dGxpbmU6IDJweCBzb2xpZCAjRkY4RThCICFpbXBvcnRhbnQ7XHJcbiAgb3V0bGluZS1vZmZzZXQ6IDJweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcclxuICAubWVhbC1pdGVtLWNhcmQge1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gICAgZ2FwOiAwLjc1cmVtO1xyXG4gIH1cclxuICAubWVhbC1jbGlja2FibGUtYXJlYSB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGZsZXg6IG5vbmU7XHJcbiAgfVxyXG4gIC5tZWFsLWFjdGlvbnMtZ3JvdXAge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIH1cclxufVxyXG4iXX0= */

/* Premium Tooltip */
[data-tooltip] {
  position: relative;
  cursor: help;
}

[data-tooltip]::before {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  padding: 0.5rem 0.75rem;
  background: var(--bg-darkest);
  color: white;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
  border-radius: 0.5rem;
  border: 1px solid var(--border-light);
  opacity: 0;
  pointer-events: none;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.5);
  z-index: 100;
}

[data-tooltip]:hover::before {
  opacity: 1;
  transform: translateX(-50%) translateY(-4px);
}

/* --- PREMIUM GLASSMORPHISM & EFFECTS --- */
.premium-glass-panel {
  background: rgba(17, 24, 39, 0.4);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 1rem;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05);
}

.glowing-border {
  position: relative;
}
.glowing-border::before {
  content: "";
  position: absolute;
  top: -1px; left: -1px; right: -1px; bottom: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.5), rgba(239, 68, 68, 0.5), rgba(99, 102, 241, 0.5));
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.glowing-border-hover {
  padding: 16px;
  border-radius: 12px;
  margin-bottom: 12px;
  background: linear-gradient(145deg, rgba(30,41,59,0.7), rgba(15,23,42,0.8));
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-left: 4px solid #F59E0B;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
.glowing-border-hover:hover {
  transform: translateY(-2px) scale(1.01);
  box-shadow: 0 12px 30px rgba(245, 158, 11, 0.2);
  border-color: rgba(245, 158, 11, 0.4);
  border-left: 4px solid #F59E0B;
}

.icon-glow-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  margin-right: 12px;
}
.orange-glow {
  background: rgba(245, 158, 11, 0.15);
  box-shadow: 0 0 20px rgba(245, 158, 11, 0.3);
  color: #F59E0B;
}

.premium-input {
  flex: 1;
  padding: 14px 18px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(15, 23, 42, 0.5);
  color: #fff;
  font-size: 1rem;
  outline: none;
  transition: all 0.3s ease;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
}
.premium-input:focus {
  border-color: #F59E0B;
  background: rgba(15, 23, 42, 0.8);
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2), 0 0 0 3px rgba(245, 158, 11, 0.2);
}

.btn-glow-orange {
  padding: 12px 24px;
  border-radius: 12px;
  background: linear-gradient(135deg, #F59E0B, #EF4444);
  color: white;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 4px 15px rgba(245, 158, 11, 0.4);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: none;
  cursor: pointer;
}
.btn-glow-orange:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 25px rgba(245, 158, 11, 0.6);
  filter: brightness(1.1);
}

.premium-feedback {
  padding: 12px;
  border-radius: 10px;
  margin-bottom: 16px;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(245, 158, 11, 0.1);
  border: 1px solid rgba(245, 158, 11, 0.2);
  color: #fbbf24;
}

.extra-cal-desc {
  color: #f8fafc;
  font-size: 1.15rem;
  letter-spacing: 0.3px;
}
.badge-orange {
  color: #F59E0B;
  font-weight: 800;
  background: rgba(245, 158, 11, 0.15);
  padding: 6px 12px;
  border-radius: 8px;
  border: 1px solid rgba(245, 158, 11, 0.3);
  font-size: 0.95rem;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.2);
}

.extra-cal-item-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.extra-cal-feedback-text {
  color: #cbd5e1;
  font-size: 0.95rem;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.5;
}

.orange-icon {
  flex-shrink: 0;
  margin-top: 2px;
  color: #F59E0B;
  filter: drop-shadow(0 0 4px rgba(245, 158, 11, 0.5));
}

.error-bubble {
  color: #fca5a5;
  background: rgba(239, 68, 68, 0.15) !important;
  border: 1px solid rgba(239, 68, 68, 0.3) !important;
  box-shadow: 0 4px 15px rgba(239, 68, 68, 0.2);
}

/* TYPEWRITER EFFECT */
.typewriter-cursor {
  display: inline-block;
  width: 2px;
  height: 1em;
  background-color: #818cf8;
  margin-left: 4px;
  animation: blink 1s step-start infinite;
  vertical-align: text-bottom;
  box-shadow: 0 0 5px #818cf8;
}
@keyframes blink {
  50% { opacity: 0; }
}
/ *   B u t t o n   L o a d i n g   S t a t e s   * / 
 
 . b t n - l o a d i n g   { 
 
     p o s i t i o n :   r e l a t i v e ; 
 
     c o l o r :   t r a n s p a r e n t   ! i m p o r t a n t ; 
 
     p o i n t e r - e v e n t s :   n o n e ; 
 
 } 
 
 . b t n - l o a d i n g : : a f t e r   { 
 
     c o n t e n t :   ' ' ; 
 
     p o s i t i o n :   a b s o l u t e ; 
 
     l e f t :   5 0 % ; 
 
     t o p :   5 0 % ; 
 
     w i d t h :   1 . 2 r e m ; 
 
     h e i g h t :   1 . 2 r e m ; 
 
     b o r d e r :   2 p x   s o l i d   r g b a ( 2 5 5 ,   2 5 5 ,   2 5 5 ,   0 . 3 ) ; 
 
     b o r d e r - r a d i u s :   5 0 % ; 
 
     b o r d e r - t o p - c o l o r :   w h i t e ; 
 
     t r a n s f o r m :   t r a n s l a t e ( - 5 0 % ,   - 5 0 % ) ; 
 
     a n i m a t i o n :   b t n - s p i n   0 . 8 s   l i n e a r   i n f i n i t e ; 
 
 } 
 
 @ k e y f r a m e s   b t n - s p i n   { 
 
     t o   {   t r a n s f o r m :   t r a n s l a t e ( - 5 0 % ,   - 5 0 % )   r o t a t e ( 3 6 0 d e g ) ;   } 
 
 } 
 
 









.allergy-btn.selected 



.allergy-btn.selected 



























/* ===============================================================
   ULTRA GOATED ANIMATION SYSTEM v3.0
   Float . Shimmer . NeonPulse . StaggerFadeUp . CheckBounce
   =============================================================== */

@keyframes panelFloat {
  0%, 100% {
    transform: translateY(0px);
    box-shadow: 0 10px 40px rgba(0,0,0,0.8), 0 0 0 1px rgba(139,92,246,0.12), 0 0 60px rgba(139,92,246,0.04);
  }
  50% {
    transform: translateY(-6px);
    box-shadow: 0 22px 65px rgba(0,0,0,0.9), 0 0 0 1px rgba(139,92,246,0.28), 0 0 90px rgba(139,92,246,0.14);
  }
}

@keyframes btnPulseGlow {
  0%, 100% {
    box-shadow: 0 4px 22px rgba(168,85,247,0.4), 0 0 45px rgba(99,102,241,0.18), inset 0 1px 0 rgba(255,255,255,0.18);
  }
  50% {
    box-shadow: 0 6px 38px rgba(168,85,247,0.7), 0 0 80px rgba(99,102,241,0.4), inset 0 1px 0 rgba(255,255,255,0.32);
  }
}

@keyframes staggerFadeUp {
  0%   { opacity: 0; transform: translateY(20px) scale(0.97); filter: blur(5px); }
  100% { opacity: 1; transform: translateY(0)    scale(1);    filter: blur(0); }
}

@keyframes shimmer {
  0%   { background-position: -250% center; }
  100% { background-position:  250% center; }
}

@keyframes gradientShift {
  0%, 100% { background-position: 0% 50%; }
  50%       { background-position: 100% 50%; }
}

@keyframes neonRingPulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(168,85,247,0.55), 0 0 18px rgba(168,85,247,0.35), inset 0 0 10px rgba(168,85,247,0.1); }
  50%       { box-shadow: 0 0 0 4px rgba(168,85,247,0.9),  0 0 35px rgba(168,85,247,0.7), inset 0 0 20px rgba(168,85,247,0.2); }
}

@keyframes checkBounce {
  0%   { transform: scale(0) rotate(-45deg); }
  60%  { transform: scale(1.35) rotate(8deg); }
  100% { transform: scale(1) rotate(0deg); }
}

@keyframes cardEntrance {
  0%   { opacity: 0; transform: translateY(32px) scale(0.94); filter: blur(10px); }
  100% { opacity: 1; transform: translateY(0)    scale(1);    filter: blur(0); }
}

@keyframes inputGlow {
  0%   { opacity: 0; transform: scaleX(0); }
  100% { opacity: 1; transform: scaleX(1); }
}

/* â”€â”€ Apply â”€â”€ */

.panel-card {
  animation: panelFloat 7s ease-in-out infinite, cardEntrance 0.7s cubic-bezier(0.16,1,0.3,1) both !important;
}

.btn-gradient-submit:not(:disabled) {
  animation: btnPulseGlow 3.5s ease-in-out infinite !important;
}

.btn-gradient-submit {
  position: relative !important;
  overflow: hidden !important;
}

.btn-gradient-submit::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.18) 50%, transparent 60%);
  background-size: 250% 100%;
  animation: shimmer 2.8s linear infinite;
  pointer-events: none;
  z-index: 1;
}

.form-group {
  animation: staggerFadeUp 0.6s cubic-bezier(0.16,1,0.3,1) both;
}
.form-group:nth-child(1)  { animation-delay: 0.07s; }
.form-group:nth-child(2)  { animation-delay: 0.14s; }
.form-group:nth-child(3)  { animation-delay: 0.21s; }
.form-group:nth-child(4)  { animation-delay: 0.28s; }
.form-group:nth-child(5)  { animation-delay: 0.35s; }

.conditions-grid > button {
  animation: staggerFadeUp 0.55s cubic-bezier(0.16,1,0.3,1) both;
}
.conditions-grid > button:nth-child(1) { animation-delay: 0.05s; }
.conditions-grid > button:nth-child(2) { animation-delay: 0.10s; }
.conditions-grid > button:nth-child(3) { animation-delay: 0.15s; }
.conditions-grid > button:nth-child(4) { animation-delay: 0.20s; }
.conditions-grid > button:nth-child(5) { animation-delay: 0.25s; }
.conditions-grid > button:nth-child(6) { animation-delay: 0.30s; }
.conditions-grid > button:nth-child(7) { animation-delay: 0.35s; }

.allergy-btn.selected, .allergy-btn.active,
.cond-btn.selected, .cond-btn.active {
    background: rgba(139,92,246,0.22) !important;
  border-color: rgba(168,85,247,0.85) !important;
  color: #ffffff !important;
}

.allergy-btn.selected .checkbox-inner,
.allergy-btn.active .checkbox-inner,
.cond-btn.selected .checkbox-inner,
.cond-btn.active .checkbox-inner {
  animation: checkBounce 0.4s cubic-bezier(0.34,1.56,0.64,1) forwards !important;
  opacity: 1 !important;
}

.step-title {
  background-size: 300% 300% !important;
  animation: gradientShift 5s ease infinite;
}

.section-label {
  animation: staggerFadeUp 0.5s cubic-bezier(0.16,1,0.3,1) 0.04s both;
}

.auth-box {
  animation: cardEntrance 0.65s cubic-bezier(0.16,1,0.3,1) both;
}

.stat-card, .diet-card, .presc-card, .alert-card, .meal-plan-card, .info-card {
  animation: staggerFadeUp 0.55s cubic-bezier(0.16,1,0.3,1) both;
}

.form-group input:focus,
.form-stack select:focus,
.form-group select:focus {
  border-color: rgba(168,85,247,0.75) !important;
  background: rgba(8,4,20,0.95) !important;
  box-shadow: 0 0 0 3px rgba(168,85,247,0.2), 0 0 25px rgba(168,85,247,0.15), inset 0 2px 6px rgba(0,0,0,0.35) !important;
  transform: translateY(-2px) !important;
}

.btn-back {
  transition: transform 0.2s var(--ease-spring), background 0.25s, box-shadow 0.25s !important;
}

.btn-back:hover {
  transform: translateX(-5px) !important;
  box-shadow: 4px 0 22px rgba(139,92,246,0.25), 0 4px 15px rgba(0,0,0,0.35) !important;
}



/* â”€â”€ BUTTON BASE STYLES â”€â”€ */
.btn-gradient-submit {
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.9), rgba(99, 102, 241, 0.9)) !important;
  color: white !important;
  font-weight: 800 !important;
  font-size: 1.15rem !important;
  padding: 1.125rem 2rem !important;
  border-radius: 1.25rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  border: 1px solid rgba(255, 255, 255, 0.25) !important;
  box-shadow: 0 4px 25px rgba(168, 85, 247, 0.4), inset 0 2px 4px rgba(255, 255, 255, 0.2) !important;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  will-change: transform !important;
  cursor: pointer !important;
  width: 100% !important;
}

.btn-gradient-submit:hover:not(:disabled) {
  transform: translateY(-3px) scale(1.02) !important;
  background: linear-gradient(135deg, rgba(168, 85, 247, 1), rgba(99, 102, 241, 1)) !important;
  box-shadow: 0 8px 40px rgba(168, 85, 247, 0.6), inset 0 2px 4px rgba(255, 255, 255, 0.3) !important;
  border-color: rgba(255, 255, 255, 0.5) !important;
}

.btn-gradient-submit:disabled {
  opacity: 0.5 !important;
  cursor: not-allowed !important;
  background: rgba(168, 85, 247, 0.3) !important;
  box-shadow: none !important;
}

.btn-back {
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  color: var(--text-primary) !important;
  font-weight: 700 !important;
  padding: 0.8rem 1.25rem !important;
  border-radius: 1rem !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  transition: all 0.25s var(--ease-smooth) !important;
  backdrop-filter: blur(10px) !important;
  cursor: pointer !important;
}

.btn-back:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  border-color: rgba(255, 255, 255, 0.3) !important;
  transform: translateX(-4px) !important;
  box-shadow: 0 4px 15px rgba(0,0,0,0.2) !important;
}



/* â”€â”€ GOATED ALLERGY & CONDITION CARDS â”€â”€ */
.allergy-btn, .cond-btn {
  background: rgba(13, 20, 38, 0.65) !important;
  border: 1px solid rgba(139, 92, 246, 0.18) !important;
  border-radius: 1.25rem !important;
  padding: 1.1rem 1.4rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 1.1rem !important;
  text-align: left !important;
  color: #a5b4fc !important;
  font-weight: 600 !important;
  font-size: 1rem !important;
  transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
  box-shadow: 0 4px 15px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.03) !important;
  backdrop-filter: blur(12px) !important;
  cursor: pointer !important;
  will-change: transform, box-shadow !important;
}

.allergy-btn:hover, .cond-btn:hover {
  background: rgba(20, 28, 54, 0.85) !important;
  border-color: rgba(168, 85, 247, 0.45) !important;
  color: #ffffff !important;
  transform: translateY(-3px) scale(1.01) !important;
  box-shadow: 0 10px 25px rgba(168, 85, 247, 0.22), inset 0 1px 0 rgba(255,255,255,0.08) !important;
}

.allergy-btn.selected, .allergy-btn.active, .cond-btn.selected, .cond-btn.active {
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.25), rgba(99, 102, 241, 0.2)) !important;
  border-color: rgba(168, 85, 247, 0.8) !important;
  color: #ffffff !important;
  box-shadow: 0 0 30px rgba(168, 85, 247, 0.4), inset 0 1px 0 rgba(255,255,255,0.15) !important;
  transform: scale(1.02) !important;
}

.checkbox-outer {
  width: 1.4rem !important;
  height: 1.4rem !important;
  border-radius: 50% !important;
  border: 2px solid rgba(165, 180, 252, 0.4) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(0,0,0,0.3) !important;
  transition: all 0.25s ease !important;
  flex-shrink: 0 !important;
}

.allergy-btn.selected .checkbox-outer, .allergy-btn.active .checkbox-outer,
.cond-btn.selected .checkbox-outer, .cond-btn.active .checkbox-outer {
  border-color: #a855f7 !important;
  background: #a855f7 !important;
  box-shadow: 0 0 12px rgba(168, 85, 247, 0.65) !important;
}

.checkbox-inner {
  width: 0.65rem !important;
  height: 0.65rem !important;
  background: #ffffff !important;
  border-radius: 50% !important;
  opacity: 0 !important;
  transform: scale(0) !important;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  box-shadow: 0 0 8px #ffffff !important;
}

.allergy-btn.selected .checkbox-inner, .allergy-btn.active .checkbox-inner,
.cond-btn.selected .checkbox-inner, .cond-btn.active .checkbox-inner {
  opacity: 1 !important;
  transform: scale(1) !important;
}






/* ── Universal theme-switch transition ── */
*, *::before, *::after {
  transition-property: background-color, background, color, border-color,
                        box-shadow, opacity, filter, transform;
  transition-duration: 0.5s;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

[data-theme="light"] body.start-bg-active,
[data-theme="light"] body {
  background-color: #f8fafc !important;
  background-image: none !important;
  color: #0f172a !important;
}

/* ────────────────────────────────────────────────────────────────────────────────────────
   GOATED LIGHT MODE — Soft-Dusk Pearl Palette
   Not blindingly white — rich pearl/lavender with depth.
   All components fully mapped. Background orbs re-skinned.
   ────────────────────────────────────────────────────────────────────────────────────────  */

/* ── Light mode CSS custom props ── */
[data-theme="light"] {
  color-scheme: light;
  --text-primary:   #1a1040;
  --text-secondary: #4338ca;
  --text-muted:     #7c6fcd;
  --bg-darkest:     #e8e4f8;
  --bg-space:       #ede9f8;
  --bg-panel:       rgba(255,255,255,0.72);
  --bg-input:       rgba(255,255,255,0.88);
  --border-light:   rgba(99,102,241,0.2);
  --border-glow:    rgba(99,102,241,0.5);
  --glow-indigo:    0 0 40px rgba(99,102,241,0.3);
  --glow-violet:    0 0 40px rgba(139,92,246,0.3);
  --shadow-card:    0 12px 40px rgba(79,70,229,0.15), 0 0 0 1px rgba(99,102,241,0.1);
}

/* â”€â”€ body: soft pearl-lavender, NOT white â”€â”€ */
[data-theme="light"] body {
  background-color: #e4dff5 !important;
  background-image:
    radial-gradient(ellipse 130% 65% at 50% -5%, rgba(139,92,246,0.22) 0%, transparent 58%),
    radial-gradient(ellipse 80%  55% at 5%  85%, rgba(99,102,241,0.16) 0%, transparent 65%),
    radial-gradient(ellipse 70%  75% at 95% 25%, rgba(236,72,153,0.10) 0%, transparent 65%),
    radial-gradient(ellipse 50%  50% at 50% 50%, rgba(167,139,250,0.08) 0%, transparent 75%) !important;
  background-attachment: fixed !important;
  color: #1a1040 !important;
}

/* â”€â”€ Light aurora orbs: re-skinned to warm purples & pinks â”€â”€ */
[data-theme="light"] .orb-1 {
  background: radial-gradient(circle at 40% 40%,
    rgba(167,139,250,0.45) 0%,
    rgba(139,92,246,0.25)  40%,
    rgba(196,181,253,0.12) 65%,
    transparent 80%) !important;
  opacity: 0.55 !important;
}
[data-theme="light"] .orb-2 {
  background: radial-gradient(circle at 55% 55%,
    rgba(236,72,153,0.35) 0%,
    rgba(219,39,119,0.2)  35%,
    rgba(251,191,219,0.1) 60%,
    transparent 80%) !important;
  opacity: 0.5 !important;
}
[data-theme="light"] .orb-3 {
  background: radial-gradient(circle at 45% 45%,
    rgba(99,102,241,0.4)  0%,
    rgba(79,70,229,0.22)  45%,
    rgba(165,180,252,0.1) 70%,
    transparent 85%) !important;
  opacity: 0.45 !important;
}
[data-theme="light"] .orb-4 {
  background: radial-gradient(circle at 50% 50%,
    rgba(167,139,250,0.35) 0%,
    rgba(139,92,246,0.2)   45%,
    rgba(196,181,253,0.08) 70%,
    transparent 85%) !important;
  opacity: 0.4 !important;
}
[data-theme="light"] .orb-5 {
  opacity: 0.3 !important;
}

/* â”€â”€ Aurora curtain tinted warm in light mode â”€â”€ */
[data-theme="light"] .aurora-bg::before {
  background: conic-gradient(
    from 180deg at 50% 100%,
    rgba(167,139,250,0) 0deg,
    rgba(139,92,246,0.14) 60deg,
    rgba(99,102,241,0.18) 120deg,
    rgba(167,139,250,0.1) 180deg,
    rgba(236,72,153,0.06) 240deg,
    rgba(167,139,250,0) 360deg
  ) !important;
  opacity: 0.6 !important;
}

/* â”€â”€ Particle canvas: keep, just softer â”€â”€ */
[data-theme="light"] #particle-canvas, [data-theme="light"] .aurora-bg { display: none !important; opacity: 0 !important; }

/* â”€â”€ Aurora grid â”€â”€ */
[data-theme="light"] .aurora-grid { opacity: 0.05 !important; }

/* â”€â”€ App header â”€â”€ */
[data-theme="light"] .app-header {
  background: rgba(228,223,245,0.78) !important;
  border-bottom: 1px solid rgba(139,92,246,0.2) !important;
  box-shadow: 0 4px 28px rgba(99,102,241,0.12), inset 0 1px 0 rgba(255,255,255,0.5) !important;
}
[data-theme="light"] .logo {
  background: linear-gradient(135deg, #4f46e5, #7c3aed) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 2px 8px rgba(79,70,229,0.25)) !important;
}
[data-theme="light"] .btn-text     { color: #4338ca !important; }
[data-theme="light"] .btn-text:hover { color: #3730a3 !important; background: rgba(99,102,241,0.08) !important; }
[data-theme="light"] .username-txt  { color: #3730a3 !important; }
[data-theme="light"] .avatar {
  background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
  color: #fff !important;
  box-shadow: 0 0 12px rgba(99,102,241,0.4) !important;
}
[data-theme="light"] .streak-badge { color: #7c3aed !important; }
[data-theme="light"] .fire-icon    { filter: drop-shadow(0 0 4px rgba(245,158,11,0.5)) !important; }

/* â”€â”€ Panel card (onboarding form panels) â”€â”€ */
[data-theme="light"] .panel-card {
  background: linear-gradient(145deg, rgba(255,255,255,0.78), rgba(237,233,248,0.88)) !important;
  border: 1px solid rgba(139,92,246,0.22) !important;
  box-shadow:
    0 16px 56px rgba(79,70,229,0.18),
    0 2px 8px rgba(139,92,246,0.08),
    inset 0 1px 0 rgba(255,255,255,0.75) !important;
}

/* â”€â”€ Auth box â”€â”€ */
[data-theme="light"] .auth-box {
  background: linear-gradient(145deg, rgba(255,255,255,0.82), rgba(237,233,248,0.9)) !important;
  border: 1px solid rgba(139,92,246,0.2) !important;
  box-shadow: 0 16px 56px rgba(79,70,229,0.15), inset 0 1px 0 rgba(255,255,255,0.8) !important;
}
[data-theme="light"] .auth-title {
  background: linear-gradient(135deg, #3730a3, #7c3aed) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

/* â”€â”€ Step titles â”€â”€ */
[data-theme="light"] .step-title {
  background: linear-gradient(135deg, #3730a3 0%, #7c3aed 50%, #db2777 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-size: 300% 300% !important;
  filter: drop-shadow(0 2px 10px rgba(99,102,241,0.2)) !important;
}
[data-theme="light"] .step-subtitle { color: #4338ca !important; opacity: 0.9 !important; }

/* â”€â”€ Form labels & section labels â”€â”€ */
[data-theme="light"] .form-group label {
  color: #4f46e5 !important;
  text-shadow: none !important;
}
[data-theme="light"] .section-label {
  color: #4338ca !important;
  text-shadow: none !important;
}

/* â”€â”€ Inputs & selects â”€â”€ */
[data-theme="light"] .form-group input,
[data-theme="light"] .form-stack select,
[data-theme="light"] .form-group select {
  background: rgba(255,255,255,0.85) !important;
  border: 1px solid rgba(139,92,246,0.25) !important;
  color: #1a1040 !important;
  box-shadow: 0 2px 8px rgba(79,70,229,0.08), inset 0 1px 4px rgba(0,0,0,0.04) !important;
}
[data-theme="light"] .form-group input::placeholder { color: #a5b4fc !important; }
[data-theme="light"] .form-group input:focus,
[data-theme="light"] .form-stack select:focus,
[data-theme="light"] .form-group select:focus {
  border-color: rgba(99,102,241,0.7) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(99,102,241,0.18), 0 0 20px rgba(99,102,241,0.1), inset 0 1px 3px rgba(0,0,0,0.04) !important;
  transform: translateY(-2px) !important;
  color: #1a1040 !important;
}
[data-theme="light"] select option { background: #ede9f8 !important; color: #1a1040 !important; }

/* â”€â”€ Condition & allergy buttons â”€â”€ */
[data-theme="light"] .allergy-btn,
[data-theme="light"] .cond-btn {
  background: rgba(255,255,255,0.65) !important;
  border: 1px solid rgba(139,92,246,0.2) !important;
  color: #3730a3 !important;
  box-shadow: 0 4px 14px rgba(79,70,229,0.1), inset 0 1px 0 rgba(255,255,255,0.7) !important;
  backdrop-filter: blur(12px) !important;
}
[data-theme="light"] .allergy-btn:hover,
[data-theme="light"] .cond-btn:hover {
  background: rgba(237,233,248,0.9) !important;
  border-color: rgba(99,102,241,0.45) !important;
  color: #1a1040 !important;
  box-shadow: 0 8px 24px rgba(79,70,229,0.2), inset 0 1px 0 rgba(255,255,255,0.8) !important;
  transform: translateY(-3px) scale(1.01) !important;
}
[data-theme="light"] .allergy-btn.selected,
[data-theme="light"] .allergy-btn.active,
[data-theme="light"] .cond-btn.selected,
[data-theme="light"] .cond-btn.active {
  background: linear-gradient(135deg, rgba(99,102,241,0.2), rgba(139,92,246,0.15)) !important;
  border-color: rgba(99,102,241,0.75) !important;
  color: #1a1040 !important;
  box-shadow: 0 0 28px rgba(99,102,241,0.3), inset 0 1px 0 rgba(255,255,255,0.5) !important;
  transform: scale(1.02) !important;
}
[data-theme="light"] .allergy-btn.selected .checkbox-outer,
[data-theme="light"] .allergy-btn.active .checkbox-outer,
[data-theme="light"] .cond-btn.selected .checkbox-outer,
[data-theme="light"] .cond-btn.active .checkbox-outer {
  border-color: #4f46e5 !important;
  background: linear-gradient(135deg, #6366f1, #8b5cf6) !important;
  box-shadow: 0 0 12px rgba(99,102,241,0.5) !important;
}
[data-theme="light"] .checkbox-outer {
  border-color: rgba(99,102,241,0.4) !important;
  background: rgba(255,255,255,0.6) !important;
}
[data-theme="light"] .checkbox-inner { background: #fff !important; }

/* â”€â”€ cond-lbl text â”€â”€ */
[data-theme="light"] .cond-lbl { color: inherit !important; }

/* â”€â”€ Primary CTA buttons â”€â”€ */
[data-theme="light"] .btn-gradient-submit {
  background: linear-gradient(135deg, #5b56f0, #8b5cf6) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,0.3) !important;
  box-shadow: 0 6px 28px rgba(79,70,229,0.4), inset 0 2px 4px rgba(255,255,255,0.2) !important;
}
[data-theme="light"] .btn-gradient-submit:hover:not(:disabled) {
  background: linear-gradient(135deg, #4f46e5, #7c3aed) !important;
  box-shadow: 0 10px 45px rgba(79,70,229,0.55), inset 0 2px 4px rgba(255,255,255,0.25) !important;
  transform: translateY(-3px) scale(1.02) !important;
}
[data-theme="light"] .btn-gradient-submit:disabled {
  background: rgba(99,102,241,0.35) !important;
  box-shadow: none !important;
}

/* â”€â”€ Back button â”€â”€ */
[data-theme="light"] .btn-back {
  background: rgba(255,255,255,0.65) !important;
  border: 1px solid rgba(139,92,246,0.25) !important;
  color: #4338ca !important;
  box-shadow: 0 2px 8px rgba(79,70,229,0.1) !important;
  backdrop-filter: blur(8px) !important;
}
[data-theme="light"] .btn-back:hover {
  background: rgba(237,233,248,0.9) !important;
  border-color: rgba(99,102,241,0.5) !important;
  box-shadow: 0 6px 20px rgba(79,70,229,0.2) !important;
  transform: translateX(-5px) !important;
}

/* â”€â”€ btn-text-nav (back button in split layout) â”€â”€ */
[data-theme="light"] .btn-text-nav {
  background: rgba(255,255,255,0.5) !important;
  border: 1px solid rgba(99,102,241,0.2) !important;
  color: #4338ca !important;
  border-radius: 1rem !important;
  padding: 0.8rem 1.25rem !important;
}
[data-theme="light"] .btn-text-nav:hover {
  background: rgba(237,233,248,0.85) !important;
  border-color: rgba(99,102,241,0.4) !important;
}

/* â”€â”€ Btn primary/secondary (login/signup) â”€â”€ */
[data-theme="light"] .btn-primary,
[data-theme="light"] .auth-submit-btn {
  background: linear-gradient(135deg, #5b56f0, #8b5cf6) !important;
  color: #fff !important;
  box-shadow: 0 6px 24px rgba(79,70,229,0.35) !important;
}
[data-theme="light"] .btn-secondary {
  background: linear-gradient(135deg, #ec4899, #8b5cf6) !important;
  color: #fff !important;
  box-shadow: 0 6px 24px rgba(236,72,153,0.3) !important;
}

/* â”€â”€ Welcome / hero screen â”€â”€ */
[data-theme="light"] .welcome-box {
  background: linear-gradient(145deg, rgba(255,255,255,0.75), rgba(237,233,248,0.88)) !important;
  border: 1px solid rgba(139,92,246,0.18) !important;
  box-shadow: 0 16px 56px rgba(79,70,229,0.14), inset 0 1px 0 rgba(255,255,255,0.7) !important;
}
[data-theme="light"] .hero-title  { color: #0f172a !important; text-shadow: none !important; font-weight: 800 !important; }
[data-theme="light"] .hero-gradient {
  background: linear-gradient(135deg, #4f46e5, #8b5cf6, #db2777) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}
[data-theme="light"] .hero-subtitle { color: #334155 !important; opacity: 1 !important; text-shadow: none !important; font-weight: 500 !important; }
[data-theme="light"] .btn-glow {
  background: linear-gradient(135deg, #5b56f0, #8b5cf6) !important;
  color: #fff !important;
  box-shadow: 0 8px 32px rgba(79,70,229,0.45) !important;
}
[data-theme="light"] .btn-welcome-logout {
  color: #7c3aed !important;
  border-color: rgba(139,92,246,0.3) !important;
  background: rgba(255,255,255,0.4) !important;
}

/* â”€â”€ Dashboard cards â”€â”€ */
[data-theme="light"] .stat-card,
[data-theme="light"] .diet-card,
[data-theme="light"] .presc-card,
[data-theme="light"] .meal-plan-card,
[data-theme="light"] .info-card {
  background: linear-gradient(145deg, rgba(255,255,255,0.82), rgba(237,233,248,0.88)) !important;
  border: 1px solid rgba(139,92,246,0.16) !important;
  box-shadow: 0 8px 30px rgba(79,70,229,0.12), inset 0 1px 0 rgba(255,255,255,0.7) !important;
  color: #1a1040 !important;
}
[data-theme="light"] .alert-card {
  background: linear-gradient(145deg, rgba(255,255,255,0.85), rgba(237,233,248,0.9)) !important;
  border: 1px solid rgba(251,191,36,0.35) !important;
  box-shadow: 0 6px 24px rgba(245,158,11,0.1) !important;
}
[data-theme="light"] .section-title { color: #3730a3 !important; }

/* â”€â”€ Scrollbar â”€â”€ */
[data-theme="light"] ::-webkit-scrollbar-track { background: #ddd6f8 !important; }
[data-theme="light"] ::-webkit-scrollbar-thumb { background: rgba(99,102,241,0.4) !important; border-radius: 99px; }
[data-theme="light"] ::-webkit-scrollbar-thumb:hover { background: rgba(99,102,241,0.65) !important; }

/* â”€â”€ Auth input fields â”€â”€ */
[data-theme="light"] .auth-form input {
  background: rgba(255,255,255,0.85) !important;
  border: 1px solid rgba(139,92,246,0.25) !important;
  color: #1a1040 !important;
}
[data-theme="light"] .auth-form input:focus {
  border-color: rgba(99,102,241,0.7) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(99,102,241,0.15) !important;
  color: #1a1040 !important;
}
[data-theme="light"] .auth-toggle-tip,
[data-theme="light"] .auth-toggle-tip .btn-link {
  color: #4338ca !important;
}
[data-theme="light"] .btn-link:hover { color: #3730a3 !important; }

/* â”€â”€ button-split nav row â”€â”€ */
[data-theme="light"] .button-split { gap: 1rem; }

/* â”€â”€ General text & headings â”€â”€ */
[data-theme="light"] h1, [data-theme="light"] h2,
[data-theme="light"] h3, [data-theme="light"] h4 { color: #1a1040 !important; }
[data-theme="light"] p   { color: #3730a3 !important; }
[data-theme="light"] label { color: #4338ca !important; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   GOATED LIGHT-MODE BACKGROUND ANIMATIONS
   Warm aurora shimmer + floating light bubbles
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

@keyframes lightOrb1 {
  0%,100% { transform: translate(0,0) scale(1); }
  33%     { transform: translate(5vw,-4vh) scale(1.1); }
  66%     { transform: translate(-3vw,6vh) scale(0.95); }
}
@keyframes lightOrb2 {
  0%,100% { transform: translate(0,0) scale(1); }
  40%     { transform: translate(-6vw,5vh) scale(1.08); }
  70%     { transform: translate(4vw,-3vh) scale(1.05); }
}
@keyframes lightBubble {
  0%   { transform: translateY(100vh) scale(0.5); opacity: 0; }
  10%  { opacity: 0.4; }
  90%  { opacity: 0.15; }
  100% { transform: translateY(-10vh) scale(1.2); opacity: 0; }
}
@keyframes shimmerWave {
  0%   { transform: translateX(-100%) skewX(-15deg); }
  100% { transform: translateX(200%) skewX(-15deg); }
}

[data-theme="light"] .orb-1 { animation: lightOrb1 18s ease-in-out infinite, orbPath1 20s cubic-bezier(0.45,0.05,0.55,0.95) infinite !important; }
[data-theme="light"] .orb-2 { animation: lightOrb2 22s ease-in-out infinite, orbPath2 25s cubic-bezier(0.45,0.05,0.55,0.95) infinite !important; }

/* Light-mode shimmer overlay on panel-card */
[data-theme="light"] .panel-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,0.4) 50%, transparent 65%);
  background-size: 200% 100%;
  animation: shimmerWave 4s linear infinite;
  pointer-events: none;
  z-index: 0;
  opacity: 0.7;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   THEME TOGGLE BUTTON & RIPPLE ANIMATION
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
#theme-toggle {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.13);
  border-radius: 3rem;
  padding: 0.45rem 0.9rem;
  cursor: pointer;
  color: var(--text-primary);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  backdrop-filter: blur(12px);
  flex-shrink: 0;
}
#theme-toggle:hover {
  background: rgba(255,255,255,0.15);
  border-color: rgba(168,85,247,0.5);
  box-shadow: 0 4px 20px rgba(168,85,247,0.25);
  transform: translateY(-2px);
}
.toggle-track {
  width: 2.6rem; height: 1.45rem;
  background: rgba(139,92,246,0.45);
  border-radius: 3rem; position: relative;
  border: 1px solid rgba(168,85,247,0.35);
  flex-shrink: 0;
}
.toggle-thumb {
  width: 1.05rem; height: 1.05rem;
  background: #ffffff; border-radius: 50%;
  position: absolute; top: 50%; left: 0.18rem;
  transform: translateY(-50%);
  transition: left 0.35s cubic-bezier(0.34,1.56,0.64,1);
  box-shadow: 0 2px 6px rgba(0,0,0,0.35);
}
.toggle-icon { font-size: 1rem; line-height: 1; }

[data-theme="light"] .toggle-track {
  background: rgba(99,102,241,0.6) !important;
  border-color: rgba(99,102,241,0.5) !important;
}
[data-theme="light"] .toggle-thumb { left: 1.35rem !important; }
[data-theme="light"] #theme-toggle {
  background: rgba(255,255,255,0.6) !important;
  border-color: rgba(99,102,241,0.3) !important;
  color: #4338ca !important;
}
[data-theme="light"] #theme-toggle:hover {
  background: rgba(255,255,255,0.85) !important;
  box-shadow: 0 4px 20px rgba(99,102,241,0.2) !important;
}

@keyframes themeRipple {
  0%   { transform: scale(0);  opacity: 0.6; }
  100% { transform: scale(45); opacity: 0; }
}
.theme-ripple {
  position: fixed; width: 3rem; height: 3rem;
  border-radius: 50%; pointer-events: none; z-index: 9999;
  animation: themeRipple 0.75s cubic-bezier(0.4,0,0.2,1) forwards;
}
.theme-ripple.dark  { background: radial-gradient(circle, #020408 0%, transparent 70%); }
.theme-ripple.light { background: radial-gradient(circle, #e4dff5 0%, transparent 70%); }




/* â”€â”€ Meal Group Cards (Morning, Afternoon, Night) â”€â”€ */
[data-theme="light"] .meal-group-card {
  background: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
  box-shadow: 0 8px 32px rgba(79, 70, 229, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.8) !important;
}
[data-theme="light"] .meal-time-title {
  color: #3730a3 !important;
  text-shadow: none !important;
}

/* â”€â”€ Meal Item Cards (Inside the groups) â”€â”€ */
[data-theme="light"] .meal-item-card {
  background: rgba(255, 255, 255, 0.85) !important;
  border: 1px solid rgba(99, 102, 241, 0.25) !important;
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.06) !important;
}
[data-theme="light"] .meal-item-card:hover {
  background: #ffffff !important;
  border-color: rgba(99, 102, 241, 0.5) !important;
  box-shadow: 0 8px 24px rgba(79, 70, 229, 0.15) !important;
  transform: translateY(-2px) !important;
}
[data-theme="light"] .meal-name {
  color: #1a1040 !important;
}
[data-theme="light"] .meal-meta {
  color: #4338ca !important;
}

/* â”€â”€ Meal Item Actions â”€â”€ */
[data-theme="light"] .btn-swap-item {
  background: rgba(255, 255, 255, 0.8) !important;
  color: #3730a3 !important;
  border: 1px solid rgba(99, 102, 241, 0.3) !important;
}
[data-theme="light"] .btn-swap-item:hover {
  background: rgba(237, 233, 248, 0.95) !important;
  border-color: rgba(99, 102, 241, 0.6) !important;
}
[data-theme="light"] .btn-lock-item {
  background: rgba(255, 255, 255, 0.6) !important;
  color: #4338ca !important;
  border: 1px solid rgba(99, 102, 241, 0.25) !important;
}
[data-theme="light"] .btn-lock-item:hover {
  background: rgba(237, 233, 248, 0.9) !important;
  color: #3730a3 !important;
}
[data-theme="light"] .btn-lock-item.locked {
  background: rgba(239, 68, 68, 0.1) !important;
  color: #ef4444 !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
}

/* â”€â”€ Right Side: Extra Calories Card â”€â”€ */
[data-theme="light"] .extra-calories-card {
  background: linear-gradient(145deg, rgba(255,255,255,0.85), rgba(255,237,213,0.6)) !important;
  border: 1px solid rgba(249, 115, 22, 0.25) !important;
  box-shadow: 0 12px 32px rgba(249, 115, 22, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}
[data-theme="light"] .extra-calories-card .subtitle {
  color: #9a3412 !important;
}
[data-theme="light"] .extra-cal-input {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid rgba(249, 115, 22, 0.3) !important;
  color: #431407 !important;
}
[data-theme="light"] .extra-cal-input:focus {
  border-color: rgba(249, 115, 22, 0.6) !important;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.15) !important;
}
[data-theme="light"] .extra-cal-input::placeholder {
  color: #fdba74 !important;
}

/* â”€â”€ Right Side: Prescription / Alert / Symptoms Cards â”€â”€ */
[data-theme="light"] .presc-generation-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.85), rgba(237, 233, 248, 0.9)) !important;
  border: 1px solid rgba(139, 92, 246, 0.25) !important;
  box-shadow: 0 12px 32px rgba(79, 70, 229, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
}
[data-theme="light"] .side-card-title {
  color: #3730a3 !important;
}
[data-theme="light"] .side-card-desc {
  color: #4338ca !important;
}
[data-theme="light"] .btn-glow-dark {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid rgba(139, 92, 246, 0.4) !important;
  color: #4338ca !important;
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.08) !important;
}
[data-theme="light"] .btn-glow-dark:hover {
  background: rgba(237, 233, 248, 1) !important;
  border-color: rgba(99, 102, 241, 0.6) !important;
  box-shadow: 0 6px 20px rgba(79, 70, 229, 0.15) !important;
  transform: translateY(-2px) !important;
}

/* â”€â”€ Specific Overrides for Alerts â”€â”€ */
[data-theme="light"] #general-precautions-trigger-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.85), rgba(254, 226, 226, 0.6)) !important;
  border-color: rgba(244, 63, 94, 0.25) !important;
}
[data-theme="light"] #general-precautions-trigger-card .side-card-title {
  color: #be123c !important;
}
[data-theme="light"] #general-precautions-trigger-card .side-card-desc {
  color: #e11d48 !important;
}

/* â”€â”€ Log Out Button â”€â”€ */
[data-theme="light"] .btn-cancel {
  background: rgba(255, 255, 255, 0.7) !important;
  border-color: rgba(244, 63, 94, 0.3) !important;
  color: #e11d48 !important;
}
[data-theme="light"] .btn-cancel:hover {
  background: rgba(254, 226, 226, 0.9) !important;
  border-color: rgba(244, 63, 94, 0.5) !important;
}




/* â”€â”€ Global Text Catch-all for Light Mode â”€â”€ */
/* This ensures NO text stays white/light-grey from dark mode */
[data-theme="light"] {
  --text-main: #1e1b4b !important;   /* Very deep midnight indigo */
  --text-muted: #4338ca !important;  /* Soft indigo */
  --text-accent: #6d28d9 !important; /* Deep purple */
}

[data-theme="light"] body, 
[data-theme="light"] .app-container, 
[data-theme="light"] main {
  color: var(--text-main) !important;
}

[data-theme="light"] p, 
[data-theme="light"] span, 
[data-theme="light"] div, 
[data-theme="light"] li, 
[data-theme="light"] a {
  /* Only apply default text if it's not meant to be transparent (like gradient text) */
}

/* â”€â”€ Typography Overrides â”€â”€ */
[data-theme="light"] h1, [data-theme="light"] .h1,
[data-theme="light"] h2, [data-theme="light"] .h2,
[data-theme="light"] h3, [data-theme="light"] .h3,
[data-theme="light"] h4, [data-theme="light"] .h4,
[data-theme="light"] h5, [data-theme="light"] h6 {
  color: var(--text-main) !important;
}

[data-theme="light"] .section-title,
[data-theme="light"] .step-title,
[data-theme="light"] .side-card-title,
[data-theme="light"] .hero-title,
[data-theme="light"] .auth-title {
  /* These might have gradients, let's make sure they are legible or fallback */
}

/* â”€â”€ Dashboard Stats Cards Text â”€â”€ */
[data-theme="light"] .stat-number {
  color: var(--text-main) !important;
  text-shadow: none !important;
}
[data-theme="light"] .stat-label {
  color: var(--text-accent) !important;
  text-shadow: none !important;
}
[data-theme="light"] .macro-text,
[data-theme="light"] .macro-val {
  color: var(--text-main) !important;
}

/* â”€â”€ Dashboard Meals Text â”€â”€ */
[data-theme="light"] .meal-time-title {
  color: var(--text-accent) !important;
  font-weight: 700 !important;
}
[data-theme="light"] .meal-name {
  color: var(--text-main) !important;
  font-weight: 600 !important;
}
[data-theme="light"] .meal-meta {
  color: #4f46e5 !important;
}

/* â”€â”€ Form Labels & Helpers â”€â”€ */
[data-theme="light"] label,
[data-theme="light"] .form-label,
[data-theme="light"] .section-label,
[data-theme="light"] .cond-lbl {
  color: var(--text-main) !important;
  font-weight: 500 !important;
}
[data-theme="light"] .subtitle,
[data-theme="light"] .step-subtitle,
[data-theme="light"] .side-card-desc,
[data-theme="light"] .helper-text {
  color: var(--text-muted) !important;
}

/* â”€â”€ Inputs & Placeholders â”€â”€ */
[data-theme="light"] input,
[data-theme="light"] select,
[data-theme="light"] textarea {
  color: var(--text-main) !important;
}
[data-theme="light"] input::placeholder,
[data-theme="light"] textarea::placeholder {
  color: #818cf8 !important; /* light indigo placeholder */
}

/* â”€â”€ Buttons Text (Non-Gradient ones) â”€â”€ */
[data-theme="light"] .btn-text,
[data-theme="light"] .btn-back,
[data-theme="light"] .btn-text-nav,
[data-theme="light"] .btn-swap-item,
[data-theme="light"] .btn-lock-item {
  color: var(--text-accent) !important;
}
[data-theme="light"] .btn-text:hover,
[data-theme="light"] .btn-back:hover,
[data-theme="light"] .btn-text-nav:hover,
[data-theme="light"] .btn-swap-item:hover,
[data-theme="light"] .btn-lock-item:hover {
  color: var(--text-main) !important;
}

/* â”€â”€ Misc Components â”€â”€ */
[data-theme="light"] .username-txt,
[data-theme="light"] .streak-badge {
  color: var(--text-accent) !important;
}
[data-theme="light"] .allergy-btn,
[data-theme="light"] .cond-btn {
  color: var(--text-main) !important;
}

/* Explicitly fix any dark mode inherited spans/divs inside cards */
[data-theme="light"] .stat-card div, 
[data-theme="light"] .stat-card span,
[data-theme="light"] .presc-generation-card div,
[data-theme="light"] .presc-generation-card span {
  /* Just overriding color for these specific scopes if they inherited white */
}

/* â”€â”€ Critical Alerts Text Override â”€â”€ */
[data-theme="light"] #general-precautions-trigger-card .side-card-title {
  color: #be123c !important; /* Dark Rose */
}
[data-theme="light"] #general-precautions-trigger-card .side-card-desc {
  color: #e11d48 !important; /* Rose */
}



/* â”€â”€ Welcome Box Layout Fix â”€â”€ */
/* Add missing padding and border-radius that was absent from base styles */
[data-theme="light"] .welcome-box {
  border-radius: 2rem !important;
  padding: 4rem 3rem !important;
  backdrop-filter: blur(40px) !important;
  animation: panelFloat 7s ease-in-out infinite, cardEntrance 0.7s cubic-bezier(0.16,1,0.3,1) both !important;
}



/* â”€â”€ Welcome Box Transparent Fix â”€â”€ */
[data-theme="light"] .welcome-box {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}



/* â”€â”€ Goated Background Light Animations â”€â”€ */
/* Add sweeping, angelic light beams over the background in light mode */
@keyframes angelicBeams {
  0%   { background-position: -200% 0%; }
  100% { background-position: 200% 0%; }
}

[data-theme="light"] body::after {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -1; /* Behind everything but above base background */
  background: 
    linear-gradient(60deg, 
      transparent 20%, 
      rgba(255, 255, 255, 0.4) 30%, 
      transparent 40%, 
      rgba(255, 255, 255, 0.5) 45%, 
      transparent 55%
    );
  background-size: 300% 100%;
  animation: angelicBeams 12s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  opacity: 0.6;
  mix-blend-mode: overlay;
}

/* â”€â”€ Goated Button Hover Animations (Magnetic & Shine) â”€â”€ */
/* Apply to all primary CTA buttons */
[data-theme="light"] .btn-glow,
[data-theme="light"] .btn-gradient-submit,
[data-theme="light"] .btn-primary,
[data-theme="light"] .auth-submit-btn,
[data-theme="light"] .btn-secondary {
  position: relative;
  overflow: hidden;
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important; /* Spring easing */
}

/* The ultra-premium shine effect */
[data-theme="light"] .btn-glow::after,
[data-theme="light"] .btn-gradient-submit::after,
[data-theme="light"] .btn-primary::after,
[data-theme="light"] .auth-submit-btn::after,
[data-theme="light"] .btn-secondary::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 50%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
  transform: skewX(-20deg);
  transition: all 0.5s ease-in-out;
}

/* Hover state: trigger shine, extreme scale, deep glowing shadow */
[data-theme="light"] .btn-glow:hover,
[data-theme="light"] .btn-gradient-submit:hover:not(:disabled),
[data-theme="light"] .btn-primary:hover,
[data-theme="light"] .auth-submit-btn:hover,
[data-theme="light"] .btn-secondary:hover {
  transform: translateY(-4px) scale(1.06) !important;
  box-shadow: 
    0 20px 40px rgba(99, 102, 241, 0.45),
    0 8px 15px rgba(139, 92, 246, 0.3),
    inset 0 2px 4px rgba(255, 255, 255, 0.5) !important;
  letter-spacing: 0.05em; /* Text gently expands */
}

/* Make the shine sweep across on hover */
[data-theme="light"] .btn-glow:hover::after,
[data-theme="light"] .btn-gradient-submit:hover:not(:disabled)::after,
[data-theme="light"] .btn-primary:hover::after,
[data-theme="light"] .auth-submit-btn:hover::after,
[data-theme="light"] .btn-secondary:hover::after {
  left: 150%;
  transition: left 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* â”€â”€ Active (Click) State for extreme tactile feel â”€â”€ */
[data-theme="light"] .btn-glow:active,
[data-theme="light"] .btn-gradient-submit:active:not(:disabled),
[data-theme="light"] .btn-primary:active,
[data-theme="light"] .auth-submit-btn:active,
[data-theme="light"] .btn-secondary:active {
  transform: translateY(2px) scale(0.96) !important;
  box-shadow: 
    0 4px 10px rgba(99, 102, 241, 0.2),
    inset 0 4px 8px rgba(0, 0, 0, 0.1) !important;
  transition: all 0.1s ease !important;
}

/* â”€â”€ Goated Side-Card & Secondary Buttons (View Alerts, Check-In, etc) â”€â”€ */
[data-theme="light"] .btn-glow-dark {
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
[data-theme="light"] .btn-glow-dark:hover {
  transform: translateY(-3px) scale(1.04) !important;
  background: #ffffff !important;
  box-shadow: 
    0 12px 30px rgba(139, 92, 246, 0.2),
    0 4px 12px rgba(99, 102, 241, 0.1) !important;
}



/* â”€â”€ Modals Light Mode Overrides â”€â”€ */
[data-theme="light"] .modal-box-card,
[data-theme="light"] .checkin-card {
  background: linear-gradient(145deg, rgba(255,255,255,0.95), rgba(245,243,255,0.98)) !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
  box-shadow: 
    0 25px 50px rgba(79, 70, 229, 0.15),
    inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
  color: #1e1b4b !important;
}

[data-theme="light"] .checkin-title,
[data-theme="light"] .checkin-question,
[data-theme="light"] .recipe-title {
  color: #1e1b4b !important;
}

/* Modal text and labels */
[data-theme="light"] .checkin-card label,
[data-theme="light"] .checkin-card p,
[data-theme="light"] .checkin-subtitle,
[data-theme="light"] .recipe-meta,
[data-theme="light"] .ingredient-item,
[data-theme="light"] .prep-step {
  color: #4338ca !important;
}

/* Modal Inputs & Textareas */
[data-theme="light"] .checkin-card input[type="number"],
[data-theme="light"] .checkin-card input[type="text"],
[data-theme="light"] .checkin-card textarea,
[data-theme="light"] .checkin-card select,
[data-theme="light"] .modal-box-card input,
[data-theme="light"] .modal-box-card select {
  background: rgba(255, 255, 255, 0.8) !important;
  border: 1px solid rgba(139, 92, 246, 0.3) !important;
  color: #1e1b4b !important;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.02) !important;
}

[data-theme="light"] .checkin-card input:focus,
[data-theme="light"] .checkin-card textarea:focus,
[data-theme="light"] .checkin-card select:focus {
  background: #ffffff !important;
  border-color: #6366f1 !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.2) !important;
}

/* Feeling & Symptom Buttons inside Modals */
[data-theme="light"] .feeling-btn,
[data-theme="light"] .symptom-btn,
[data-theme="light"] .preference-btn {
  background: rgba(255, 255, 255, 0.6) !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
  color: #3730a3 !important;
  box-shadow: 0 2px 8px rgba(79, 70, 229, 0.05) !important;
}

[data-theme="light"] .feeling-btn:hover,
[data-theme="light"] .symptom-btn:hover,
[data-theme="light"] .preference-btn:hover {
  background: #ffffff !important;
  border-color: #8b5cf6 !important;
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow: 0 6px 16px rgba(139, 92, 246, 0.15) !important;
}

[data-theme="light"] .feeling-btn.active,
[data-theme="light"] .symptom-btn.active,
[data-theme="light"] .preference-btn.active {
  background: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(139,92,246,0.2)) !important;
  border-color: #6366f1 !important;
  color: #1e1b4b !important;
  box-shadow: 0 0 20px rgba(99, 102, 241, 0.2) !important;
}

/* +/- Stepper buttons in Check-In */
[data-theme="light"] .btn-icon {
  background: rgba(255, 255, 255, 0.8) !important;
  border: 1px solid rgba(139, 92, 246, 0.3) !important;
  color: #4f46e5 !important;
}
[data-theme="light"] .btn-icon:hover {
  background: #ffffff !important;
  border-color: #6366f1 !important;
  color: #3730a3 !important;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.2) !important;
}

/* Close Button on Modals (X) */
[data-theme="light"] .modal-close-btn,
[data-theme="light"] .recipe-close {
  background: rgba(255, 255, 255, 0.5) !important;
  color: #1e1b4b !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
}
[data-theme="light"] .modal-close-btn:hover,
[data-theme="light"] .recipe-close:hover {
  background: #f1f5f9 !important;
  color: #ef4444 !important;
}

/* Recipe specific overrides */
[data-theme="light"] .recipe-hero::after {
  background: linear-gradient(to top, rgba(255,255,255,1), transparent) !important;
}
[data-theme="light"] .recipe-target-box {
  background: rgba(255,255,255,0.7) !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
}

/* ── LIGHT MODE: Recipe Modal Text Fixes ── */

/* The main card background */
[data-theme="light"] .modal-box-card {
  background: linear-gradient(145deg, #ffffff, #f5f3ff) !important;
  color: #1e1b4b !important;
}

/* Guide alert box (serving size panel) */
[data-theme="light"] .guide-alert-box {
  background: rgba(238, 235, 255, 0.7) !important;
  border: 1px solid rgba(139, 92, 246, 0.18) !important;
}

/* "Target & Serving Size" accent title — was blue (fine on dark, low on light) */
[data-theme="light"] .guide-accent-title {
  color: #4f46e5 !important;
  font-weight: 700 !important;
}

/* "Calorie Target for Morning" muted label */
[data-theme="light"] .guide-light-lbl {
  color: #6d7ac4 !important;
}

/* "4.2 Servings" large text — was hardcoded white */
[data-theme="light"] .guide-servings-txt {
  color: #1e1b4b !important;
}

/* "Total 1050g to reach 790 kcal" */
[data-theme="light"] .guide-grams-txt {
  color: #4338ca !important;
}

/* Inline highlights (pink servings count, blue kcal) */
[data-theme="light"] .text-highlight {
  color: #4f46e5 !important;
}

/* "1 SERVING =" unit card */
[data-theme="light"] .guide-serving-unit-card {
  background: rgba(255, 255, 255, 0.85) !important;
  border: 1px solid rgba(139, 92, 246, 0.22) !important;
}

[data-theme="light"] .guide-unit-lbl {
  color: #6d7ac4 !important;
}

/* "250g" unit value — was hardcoded white */
[data-theme="light"] .guide-unit-val {
  color: #1e1b4b !important;
}

/* INGREDIENTS / PREPARATION STEPS section titles */
[data-theme="light"] .recipe-section-title {
  color: #3730a3 !important;
}

/* Ingredient chip items — were hardcoded #cbd5e1 (light gray, invisible on white) */
[data-theme="light"] .ingredients-grid-list li {
  color: #374151 !important;
  background: rgba(255, 255, 255, 0.85) !important;
  border: 1px solid rgba(139, 92, 246, 0.15) !important;
}

/* Preparation step text */
[data-theme="light"] .step-row-flex,
[data-theme="light"] .step-row-flex p,
[data-theme="light"] .steps-ordered-list p {
  color: #374151 !important;
}

[data-theme="light"] .step-num-bubble {
  background: rgba(236, 72, 153, 0.12) !important;
  color: #db2777 !important;
}

/* Recipe modal title (inside banner — keep white since it's over image) */
[data-theme="light"] .recipe-modal-title {
  color: #ffffff !important;
}

/* Recipe scroll body background */
[data-theme="light"] .recipe-scroll-body {
  background: transparent !important;
}

/* ── LIGHT MODE: Daily Preference Popup Label Fix ── */
/* Override the dark-glass muted label color for proper light contrast */
[data-theme="light"] #modal-daily-preference label,
[data-theme="light"] #modal-daily-preference .section-label {
  color: #4338ca !important;
}

[data-theme="light"] #modal-daily-preference .checkin-step-desc,
[data-theme="light"] #modal-daily-preference p.checkin-step-desc {
  color: #4b5563 !important;
}

[data-theme="light"] #modal-daily-preference .checkin-title {
  color: #1e1b4b !important;
}

/* ── LIGHT MODE: Weekly Check-In Metric Cards ── */

/* The dark gray card bg → soft white with purple border */
[data-theme="light"] .checkin-metric-card {
  background: rgba(255, 255, 255, 0.88) !important;
  border: 1px solid rgba(139, 92, 246, 0.18) !important;
  box-shadow: 0 2px 12px rgba(99, 102, 241, 0.08) !important;
}

/* Metric label (Weight / Calories / Protein / Water) */
[data-theme="light"] .metric-label {
  color: #6d7ac4 !important;
}

/* Metric value (91 kg / 2258 / etc) — was near-white */
[data-theme="light"] .metric-value {
  color: #1e1b4b !important;
}

/* Delta badges */
[data-theme="light"] .metric-delta.neutral {
  color: #6b7280 !important;
}
[data-theme="light"] .metric-delta.positive {
  color: #059669 !important;
}
[data-theme="light"] .metric-delta.negative {
  color: #dc2626 !important;
}

/* AI analysis card and text */
[data-theme="light"] .analysis-result-card {
  background: linear-gradient(135deg, rgba(99,102,241,0.06), rgba(236,72,153,0.04)) !important;
  border: 1px solid rgba(99, 102, 246, 0.18) !important;
}
[data-theme="light"] .analysis-text {
  color: #374151 !important;
}

/* ── LIGHT MODE: Daily Preference Popup — Full Panel ── */

/* Overlay stays slightly dark to keep contrast */
[data-theme="light"] #modal-daily-preference {
  background: rgba(15, 10, 40, 0.55) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
}

/* Card: clean white/lavender glass instead of dark navy */
[data-theme="light"] #modal-daily-preference .checkin-card {
  background:
    radial-gradient(ellipse at 15% 0%, rgba(139, 92, 246, 0.07) 0%, transparent 55%),
    radial-gradient(ellipse at 85% 100%, rgba(99, 102, 241, 0.05) 0%, transparent 55%),
    rgba(255, 255, 255, 0.96) !important;
  backdrop-filter: blur(24px) saturate(140%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(140%) !important;
  border: 1px solid rgba(139, 92, 246, 0.22) !important;
  box-shadow:
    0 30px 80px rgba(79, 70, 229, 0.18),
    0 0 60px rgba(139, 92, 246, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 1),
    inset 1px 0 0 rgba(255, 255, 255, 0.9) !important;
}

/* Title */
[data-theme="light"] #modal-daily-preference .checkin-title {
  color: #1e1b4b !important;
}
[data-theme="light"] #modal-daily-preference .checkin-title svg {
  color: #6d28d9 !important;
  filter: drop-shadow(0 0 6px rgba(109, 40, 217, 0.35)) !important;
}

/* Description */
[data-theme="light"] #modal-daily-preference .checkin-step-desc,
[data-theme="light"] #modal-daily-preference p.checkin-step-desc {
  color: #4b5563 !important;
}

/* Labels */
[data-theme="light"] #modal-daily-preference label,
[data-theme="light"] #modal-daily-preference .section-label {
  color: #5b21b6 !important;
}

/* Inputs & selects */
[data-theme="light"] #modal-daily-preference input[type="number"],
[data-theme="light"] #modal-daily-preference input[type="text"],
[data-theme="light"] #modal-daily-preference select {
  background: rgba(255, 255, 255, 0.85) !important;
  border: 1px solid rgba(139, 92, 246, 0.28) !important;
  color: #1e1b4b !important;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05) !important;
}
[data-theme="light"] #modal-daily-preference input[type="number"]:hover,
[data-theme="light"] #modal-daily-preference input[type="text"]:hover,
[data-theme="light"] #modal-daily-preference select:hover {
  background: #ffffff !important;
  border-color: rgba(139, 92, 246, 0.45) !important;
}
[data-theme="light"] #modal-daily-preference input[type="number"]:focus,
[data-theme="light"] #modal-daily-preference input[type="text"]:focus,
[data-theme="light"] #modal-daily-preference select:focus {
  background: #ffffff !important;
  border-color: #7c3aed !important;
  box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.15) !important;
}
[data-theme="light"] #modal-daily-preference input::placeholder {
  color: rgba(107, 114, 128, 0.6) !important;
}

/* Custom select arrow — darker for light bg */
[data-theme="light"] #modal-daily-preference select {
  background-color: rgba(255, 255, 255, 0.92) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5L7 7l5.5-5.5' stroke='rgba(109,40,217,0.7)' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 14px 9px !important;
}
[data-theme="light"] #modal-daily-preference select option {
  background: #ffffff !important;
  color: #1e1b4b !important;
}


/* Symptom chips */
[data-theme="light"] #modal-daily-preference .symptom-btn {
  background: rgba(255, 255, 255, 0.8) !important;
  border: 1px solid rgba(139, 92, 246, 0.20) !important;
  color: #3730a3 !important;
  box-shadow: 0 1px 4px rgba(79, 70, 229, 0.06) !important;
}
[data-theme="light"] #modal-daily-preference .symptom-btn:hover {
  background: #ffffff !important;
  border-color: rgba(139, 92, 246, 0.45) !important;
  color: #1e1b4b !important;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.15) !important;
}

/* Mobile & Tablet Portrait Mode: use auth_bg_mobile.png for Login screen ONLY */
@media (max-width: 1024px) and (orientation: portrait), (max-width: 768px) {
  body.auth-bg-active::before,
  html.pre-auth body::before {
    display: none !important;
  }
}

body.auth-bg-active .aurora-bg,
body.auth-bg-active #particle-canvas {
  opacity: 0 !important;
  pointer-events: none !important;
}

[data-theme="light"] #modal-daily-preference .symptom-btn.active,
[data-theme="light"] #modal-daily-preference .symptom-btn.worsened-btn.active,
[data-theme="light"] #modal-daily-preference .daily-symptom-btn.active {
  background: linear-gradient(135deg, rgba(109,40,217,0.12), rgba(139,92,246,0.18)) !important;
  border-color: #7c3aed !important;
  color: #3730a3 !important;
  box-shadow: 0 0 16px rgba(109, 40, 217, 0.18) !important;
}
[data-theme="light"] #modal-daily-preference .symptom-btn.illness-btn {
  border-color: rgba(217, 119, 6, 0.22) !important;
  background: rgba(255, 251, 235, 0.8) !important;
  color: #92400e !important;
}
[data-theme="light"] #modal-daily-preference .symptom-btn.illness-btn.active {
  background: rgba(251, 146, 60, 0.15) !important;
  border-color: rgba(234, 88, 12, 0.50) !important;
  color: #c2410c !important;
  box-shadow: 0 0 12px rgba(234, 88, 12, 0.15) !important;
}

/* Food preference cards */
[data-theme="light"] #modal-daily-preference .pref-btn {
  background: rgba(255, 255, 255, 0.80) !important;
  border: 1px solid rgba(139, 92, 246, 0.20) !important;
  color: #374151 !important;
  box-shadow: 0 1px 4px rgba(79, 70, 229, 0.06) !important;
}
[data-theme="light"] #modal-daily-preference .pref-btn:hover {
  background: #ffffff !important;
  border-color: rgba(139, 92, 246, 0.45) !important;
  color: #1e1b4b !important;
  box-shadow: 0 6px 18px rgba(99, 102, 241, 0.14) !important;
}
[data-theme="light"] #modal-daily-preference .pref-btn.active {
  background: linear-gradient(135deg, rgba(109,40,217,0.12), rgba(139,92,246,0.18)) !important;
  border-color: #7c3aed !important;
  color: #3730a3 !important;
  box-shadow: 0 0 20px rgba(109, 40, 217, 0.20) !important;
}

/* Dislike hint */
[data-theme="light"] #modal-daily-preference .text-pink,
[data-theme="light"] #modal-daily-preference small.text-pink {
  color: #be185d !important;
}

/* CTA button — keep gradient but adjust glow for light bg */
[data-theme="light"] #modal-daily-preference #btn-daily-submit {
  box-shadow:
    0 8px 28px rgba(109, 40, 217, 0.35),
    0 2px 10px rgba(99, 102, 241, 0.20) !important;
}

/* Scrollbar */
[data-theme="light"] #modal-daily-preference .checkin-card::-webkit-scrollbar-thumb {
  background: rgba(139, 92, 246, 0.20) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   PREMIUM AUTH REDESIGN â€” Two-Column Layout v2.0
   Matching NutryX Go reference design exactly
â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* Auth Screen Wrapper */
.auth-screen-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
  padding: 0 1rem 3rem;
}

/* â”€â”€ AUTH-ONLY BACKGROUND IMAGE â”€â”€ */
/* Full-viewport background image applied only when auth screen is active */
body.auth-bg-active,
html.pre-auth body {
  background-color: transparent !important;
  background-image: none !important;
}

body.auth-bg-active::before,
html.pre-auth body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  background-image: url('/static/background.webp');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  /* Minimal darkening â€” keep the vivid original colours */
  filter: brightness(0.9) saturate(1.0);
  pointer-events: none;
}

/* Hide aurora orbs & particles on auth screen â€” photo is the hero */
body.auth-bg-active .aurora-bg,
body.auth-bg-active #particle-canvas {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Auth Card â€” the main two-column glass card */
.auth-card {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  width: 100%;
  max-width: 800px;
  background: rgba(10, 8, 28, 0.88);
  border: 1px solid rgba(147, 51, 234, 0.45);
  border-radius: 1.75rem;
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(168, 85, 247, 0.1),
    0 32px 80px rgba(0, 0, 0, 0.75),
    0 0 60px rgba(147, 51, 234, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(40px);
  -webkit-backdrop-filter: blur(40px);
  position: relative;
  transform: translate3d(0, 0, 0);
  -webkit-transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Purple glowing border effect */
.auth-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 1.75rem;
  padding: 1px;
  background: linear-gradient(135deg, rgba(147,51,234,0.6) 0%, rgba(168,85,247,0.3) 40%, rgba(236,72,153,0.15) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* â”€â”€ LEFT PANEL â”€â”€ */
.auth-left-panel {
  background: rgba(8, 6, 22, 0.6);
  padding: 2.5rem 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  border-right: 1px solid rgba(147, 51, 234, 0.2);
  position: relative;
}

/* Logo ring with leaf icon */
.auth-logo-ring {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 1.5px solid rgba(168, 85, 247, 0.6);
  background: rgba(147, 51, 234, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 24px rgba(168, 85, 247, 0.2), inset 0 0 16px rgba(168, 85, 247, 0.05);
  flex-shrink: 0;
}

.auth-brand-text {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.auth-welcome-heading {
  font-size: 2rem;
  font-weight: 800;
  color: #f0f4ff;
  letter-spacing: -0.03em;
  line-height: 1.1;
}

.auth-accent {
  background: linear-gradient(135deg, #a855f7, #ec4899);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}

.auth-glad-text {
  font-size: 0.95rem;
  color: rgba(200, 200, 230, 0.75);
  font-weight: 400;
}

.auth-divider-line {
  width: 2.5rem;
  height: 2px;
  background: linear-gradient(90deg, #7c3aed, #a855f7);
  border-radius: 999px;
  margin: 0.25rem 0;
}

.auth-desc-text {
  font-size: 0.875rem;
  color: rgba(180, 180, 215, 0.7);
  line-height: 1.65;
  font-weight: 400;
}

.auth-brand-link {
  color: #818cf8;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.2s;
}
.auth-brand-link:hover { color: #a5b4fc; }

/* Trust badge at bottom of left panel */
.auth-trust-badge {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.65rem 1rem;
  background: rgba(147, 51, 234, 0.06);
  border: 1px solid rgba(147, 51, 234, 0.2);
  border-radius: 0.75rem;
  margin-top: auto;
}

.auth-trust-badge span {
  font-size: 0.8rem;
  color: rgba(180, 180, 220, 0.75);
  font-weight: 500;
}

/* â”€â”€ RIGHT PANEL â”€â”€ */
.auth-right-panel {
  padding: 2.5rem 2.25rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Form v2 */
.auth-form-v2 {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

/* Field group */
.auth-field-group {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.auth-field-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: rgba(190, 200, 240, 0.8);
  text-transform: uppercase;
}

/* Input wrapper with icon */
.auth-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.auth-input-icon {
  position: absolute;
  left: 0.9rem;
  color: rgba(148, 163, 184, 0.6);
  pointer-events: none;
  flex-shrink: 0;
}

.auth-input-field {
  width: 100%;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 0.75rem;
  padding: 0.85rem 2.75rem 0.85rem 2.6rem;
  color: #f0f4ff;
  font-size: 0.95rem;
  font-family: inherit;
  outline: none;
  transition: all 0.25s ease;
}

.auth-input-field::placeholder {
  color: rgba(148, 163, 184, 0.45);
}

.auth-input-field:focus {
  border-color: rgba(168, 85, 247, 0.5);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.12), 0 0 20px rgba(168, 85, 247, 0.08);
}

/* Password eye toggle */
.auth-pwd-toggle {
  position: absolute;
  right: 0.8rem;
  background: transparent;
  border: none;
  color: rgba(148, 163, 184, 0.5);
  cursor: pointer;
  padding: 0.2rem;
  display: flex;
  align-items: center;
  transition: color 0.2s;
}
.auth-pwd-toggle:hover { color: rgba(168, 85, 247, 0.8); }

/* Forgot password */
.auth-forgot-wrap {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.15rem;
}

.auth-forgot-link {
  background: transparent;
  border: none;
  color: #818cf8;
  font-size: 0.82rem;
  font-weight: 500;
}

/* Real-time Password Requirements Checklist */
.pwd-rules-container {
  margin-top: 0.6rem;
  padding: 0.65rem 0.85rem;
  background: rgba(15, 23, 42, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.78rem;
  backdrop-filter: blur(8px);
  transition: all 0.3s ease;
}

.pwd-rule-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  color: #94a3b8;
  transition: color 0.25s ease;
  font-weight: 450;
}

.pwd-rule-icon {
  font-size: 0.75rem;
  font-weight: 700;
  width: 14px;
  height: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.25s ease;
}

.pwd-rule-item.invalid .pwd-rule-icon {
  color: #f43f5e;
  background: rgba(244, 63, 94, 0.12);
}

.pwd-rule-item.valid {
  color: #34d399;
}

.pwd-rule-item.valid .pwd-rule-icon {
  color: #10b981;
  background: rgba(16, 185, 129, 0.18);
}
.auth-forgot-link {
  cursor: pointer;
  transition: color 0.2s;
  padding: 0;
}
.auth-forgot-link:hover { color: #a5b4fc; }

/* â”€â”€ CAPTCHA WIDGET â”€â”€ */
.auth-captcha-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.65rem;
  padding: 0.75rem 1rem;
  cursor: pointer;
  user-select: none;
  transition: border-color 0.3s, box-shadow 0.3s, background 0.3s;
  margin-top: 0.2rem;
}

.auth-captcha-box:hover {
  border-color: rgba(168, 85, 247, 0.3);
  background: rgba(255, 255, 255, 0.05);
}

.auth-captcha-box.captcha-confirmed {
  border-color: rgba(34, 197, 94, 0.5);
  background: rgba(34, 197, 94, 0.05);
  box-shadow: 0 0 16px rgba(34, 197, 94, 0.1);
}

/* Error state — fires when login is attempted without confirming */
@keyframes captchaShake {
  0%   { transform: translateX(0); }
  15%  { transform: translateX(-6px); }
  30%  { transform: translateX(6px); }
  45%  { transform: translateX(-5px); }
  60%  { transform: translateX(5px); }
  75%  { transform: translateX(-3px); }
  90%  { transform: translateX(3px); }
  100% { transform: translateX(0); }
}

.auth-captcha-box.captcha-error {
  border-color: rgba(239, 68, 68, 0.65) !important;
  background: rgba(239, 68, 68, 0.06) !important;
  box-shadow: 0 0 18px rgba(239, 68, 68, 0.18) !important;
  animation: captchaShake 0.55s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
}

.captcha-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

/* The checkbox circle */
.captcha-checkbox {
  width: 24px;
  height: 24px;
  border: 2px solid rgba(148, 163, 184, 0.4);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.03);
  flex-shrink: 0;
  position: relative;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.captcha-checkbox.checked {
  background: #22c55e;
  border-color: #22c55e;
  transform: scale(1.05);
  box-shadow: 0 0 12px rgba(34, 197, 94, 0.4);
}

.captcha-checkmark {
  opacity: 0;
  transform: scale(0) rotate(-10deg);
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  display: flex;
  align-items: center;
  justify-content: center;
}

.captcha-checkmark.visible {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

.captcha-label {
  font-size: 0.9rem;
  color: rgba(200, 210, 240, 0.85);
  font-weight: 400;
  transition: color 0.3s;
}

.captcha-label.confirmed-text {
  color: #86efac;
  font-weight: 600;
}

.captcha-right {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  opacity: 0.7;
}

.captcha-brand-text {
  font-size: 0.62rem;
  color: rgba(148, 163, 184, 0.6);
  line-height: 1.3;
  font-weight: 500;
  text-align: right;
}

.captcha-sub {
  font-size: 0.55rem;
  opacity: 0.7;
}

/* â”€â”€ LOGIN BUTTON â”€â”€ */
.auth-login-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
  width: 100%;
  padding: 0.95rem 1.5rem;
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 50%, #ec4899 100%);
  color: white;
  font-size: 1rem;
  font-weight: 700;
  font-family: inherit;
  border: none;
  border-radius: 0.75rem;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: all 0.3s ease;
  box-shadow: 0 4px 24px rgba(168, 85, 247, 0.4), 0 0 0 1px rgba(168, 85, 247, 0.2);
  margin-top: 0.5rem;
}

.auth-login-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.15), transparent 60%);
  opacity: 0;
  transition: opacity 0.25s;
}

.auth-login-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(168, 85, 247, 0.55), 0 0 0 1px rgba(168, 85, 247, 0.3);
}
.auth-login-btn:hover::before { opacity: 1; }

.auth-login-btn:active {
  transform: translateY(0) scale(0.98);
  box-shadow: 0 4px 16px rgba(168, 85, 247, 0.35);
}

.auth-signup-submit-btn {
  background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);
}

/* Sign up link */
.auth-signup-link {
  text-align: center;
  font-size: 0.875rem;
  color: rgba(180, 185, 220, 0.7);
  margin-top: 1.25rem;
}

.auth-signup-btn-link {
  background: transparent;
  border: none;
  color: #818cf8;
  font-weight: 600;
  font-size: 0.875rem;
  cursor: pointer;
  font-family: inherit;
  transition: color 0.2s;
}
.auth-signup-btn-link:hover { color: #a5b4fc; }

/* Alert error in new layout */
.auth-right-panel .alert-error {
  margin-bottom: 0.75rem;
  border-radius: 0.65rem;
  font-size: 0.875rem;
}

/* ── FEATURES STRIP ── */
.auth-features-strip {
  display: flex;
  gap: 2rem;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  padding: 0 0.5rem;
}

.auth-feature-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
}

.auth-feature-title {
  font-size: 0.85rem;
  font-weight: 600;
  color: rgba(220, 225, 255, 0.9);
}

.auth-feature-sub {
  font-size: 0.72rem;
  color: rgba(148, 163, 184, 0.6);
  margin-top: 0.1rem;
}

/* ── CAPTCHA LOADING ANIMATION ── */
@keyframes captchaSpinner {
  0%   { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.captcha-loading {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(148, 163, 184, 0.3);
  border-top-color: #a855f7;
  border-radius: 50%;
  animation: captchaSpinner 0.7s linear infinite;
}

/* ── RESPONSIVE ── */
@media (max-width: 700px) {
  .auth-card {
    grid-template-columns: 1fr;
    max-width: 420px;
  }
  .auth-left-panel {
    border-right: none;
    border-bottom: 1px solid rgba(147, 51, 234, 0.2);
    padding: 1.75rem 1.5rem;
  }
  .auth-right-panel {
    padding: 1.75rem 1.5rem;
  }
  .auth-welcome-heading {
    font-size: 1.65rem;
  }
  .auth-features-strip {
    gap: 1.25rem;
  }
}

@media (max-width: 480px) {
  .auth-features-strip {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.75rem;
  }
}

/* ── LIGHT THEME OVERRIDES FOR NEW AUTH ── */
[data-theme="light"] .auth-card {
  background: rgba(255, 255, 255, 0.92) !important;
  border-color: rgba(147, 51, 234, 0.3) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,0.12), 0 0 0 1px rgba(147,51,234,0.12) !important;
}
[data-theme="light"] .auth-left-panel {
  background: rgba(248, 245, 255, 0.8) !important;
  border-right-color: rgba(147, 51, 234, 0.15) !important;
}
[data-theme="light"] .auth-welcome-heading {
  color: #1e1b4b !important;
}
[data-theme="light"] .auth-glad-text,
[data-theme="light"] .auth-desc-text {
  color: rgba(80, 70, 120, 0.75) !important;
}
[data-theme="light"] .auth-input-field {
  background: rgba(255, 255, 255, 0.8) !important;
  border-color: rgba(147, 51, 234, 0.2) !important;
  color: #1e1b4b !important;
}
[data-theme="light"] .auth-input-field::placeholder {
  color: rgba(100, 90, 140, 0.5) !important;
}
[data-theme="light"] .auth-field-label {
  color: rgba(80, 70, 120, 0.85) !important;
}
[data-theme="light"] .auth-captcha-box {
  background: rgba(255,255,255,0.7) !important;
  border-color: rgba(147, 51, 234, 0.2) !important;
}
[data-theme="light"] .captcha-label {
  color: rgba(60, 50, 100, 0.85) !important;
}
[data-theme="light"] .auth-signup-link {
  color: rgba(80, 70, 130, 0.8) !important;
}
[data-theme="light"] .auth-trust-badge {
  background: rgba(147, 51, 234, 0.05) !important;
  border-color: rgba(147, 51, 234, 0.15) !important;
}
[data-theme="light"] .auth-trust-badge span {
  color: rgba(80, 70, 120, 0.7) !important;
}
[data-theme="light"] .auth-feature-title {
  color: rgba(30, 27, 75, 0.9) !important;
}
[data-theme="light"] .auth-feature-sub {
  color: rgba(100, 90, 140, 0.65) !important;
}

/* ────────────────────────────────────────────────────────────────────────────────────────── 
   PREMIUM 2026 DASHBOARD REDESIGN — NutryX Go v6.0
   Apple · Linear · Stripe · Vercel · Framer Aesthetic
   Background: background_meal.png | Dark overlay 40% | Glassmorphism
   ──────────────────────────────────────────────────────────────────────────────────────────  */

/* ── DASHBOARD BACKGROUND: background_meal.png ── */
body.dashboard-bg-active {
  background-color: transparent !important;
  background-image: none !important;
}

/* Pre-paint class set by inline <head> script on <html> before body exists */
html.pre-dashboard body {
  background-color: transparent !important;
  background-image: none !important;
}

/* Phase 1: actual image layer */
body.dashboard-bg-active::before,
html.pre-dashboard body::before {
  display: none !important;
}

/* Mobile & Tablet Portrait Mode: dark meal section */
@media (max-width: 1024px) and (orientation: portrait), (max-width: 768px) {
  body.dashboard-bg-active::before,
  html.pre-dashboard body::before {
    display: none !important;
  }
}

/* Phase 2: no overlay — new image is already dark and vivid */

/* Hide aurora orbs on dashboard — photo is the hero */
body.dashboard-bg-active .aurora-bg,
body.dashboard-bg-active #particle-canvas {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Elevate all dashboard content above overlays */
body.dashboard-bg-active .app-container {
  position: relative;
  z-index: 10;
}

/* ──────────────────────────────────────────────────────────────────────────────────────── 
   PREMIUM HEADER — Frosted Glass Pill
   ────────────────────────────────────────────────────────────────────────────────────────  */
body.dashboard-bg-active .app-header {
  background: rgba(6, 4, 18, 0.62) !important;
  backdrop-filter: blur(36px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(36px) saturate(1.8) !important;
  border: 1px solid rgba(168, 85, 247, 0.22) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 0 0 1px rgba(168,85,247,0.10),
    0 8px 32px rgba(0,0,0,0.55),
    inset 0 1px 0 rgba(255,255,255,0.07) !important;
  padding: 0.7rem 1.4rem !important;
}

/* ──────────────────────────────────────────────────────────────────────────────────────── 
   PREMIUM METRIC STAT CARDS (4 exact)
   ────────────────────────────────────────────────────────────────────────────────────────  */
body.dashboard-bg-active .stat-card {
  background: rgba(8, 5, 24, 0.68) !important;
  backdrop-filter: blur(40px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(40px) saturate(1.6) !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 0 0 1px rgba(168,85,247,0.10),
    0 12px 40px rgba(0,0,0,0.6),
    inset 0 1px 0 rgba(255,255,255,0.06) !important;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275),
              box-shadow 0.3s ease,
              border-color 0.3s ease !important;
  position: relative;
  overflow: hidden;
}

body.dashboard-bg-active .stat-card:hover {
  transform: translateY(-6px) scale(1.01) !important;
  border-color: rgba(168,85,247,0.30) !important;
  box-shadow:
    0 0 0 1px rgba(168,85,247,0.20),
    0 20px 60px rgba(0,0,0,0.65),
    0 0 50px rgba(168,85,247,0.12),
    inset 0 1px 0 rgba(255,255,255,0.10) !important;
}

/* Stat numbers — vivid gradient per card accent */
body.dashboard-bg-active .card-pink .stat-number {
  background: linear-gradient(135deg, #f472b6, #ec4899) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 0 8px rgba(236,72,153,0.55));
}
body.dashboard-bg-active .card-indigo .stat-number {
  background: linear-gradient(135deg, #c084fc, #a855f7, #818cf8) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 0 8px rgba(168,85,247,0.55));
}
body.dashboard-bg-active .card-blue .stat-number {
  background: linear-gradient(135deg, #22d3ee, #06b6d4) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 0 8px rgba(6,182,212,0.55));
}
body.dashboard-bg-active .card-emerald .stat-number {
  background: linear-gradient(135deg, #34d399, #10b981) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 0 8px rgba(16,185,129,0.55));
}

/* Icon boxes — deeper glow */
body.dashboard-bg-active .card-pink .stat-icon-box   { background: radial-gradient(circle, rgba(236,72,153,0.30), rgba(236,72,153,0.06)) !important; box-shadow: 0 0 28px rgba(236,72,153,0.35), inset 0 1px 0 rgba(255,255,255,0.08) !important; }
body.dashboard-bg-active .card-indigo .stat-icon-box { background: radial-gradient(circle, rgba(168,85,247,0.30), rgba(99,102,241,0.06)) !important; box-shadow: 0 0 28px rgba(168,85,247,0.35), inset 0 1px 0 rgba(255,255,255,0.08) !important; }
body.dashboard-bg-active .card-blue .stat-icon-box   { background: radial-gradient(circle, rgba(6,182,212,0.30), rgba(6,182,212,0.06)) !important; box-shadow: 0 0 28px rgba(6,182,212,0.35), inset 0 1px 0 rgba(255,255,255,0.08) !important; }
body.dashboard-bg-active .card-emerald .stat-icon-box{ background: radial-gradient(circle, rgba(16,185,129,0.30), rgba(16,185,129,0.06)) !important; box-shadow: 0 0 28px rgba(16,185,129,0.35), inset 0 1px 0 rgba(255,255,255,0.08) !important; }

/* ──────────────────────────────────────────────────────────────────────────────────────── 
   MEAL GROUP CARDS (Morning/Afternoon/Night)
   ────────────────────────────────────────────────────────────────────────────────────────  */
body.dashboard-bg-active .meal-group-card {
  background: rgba(6, 4, 20, 0.70) !important;
  backdrop-filter: blur(44px) saturate(1.7) !important;
  -webkit-backdrop-filter: blur(44px) saturate(1.7) !important;
  border: 1px solid rgba(255,255,255,0.06) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 0 0 1px rgba(168,85,247,0.08),
    0 16px 48px rgba(0,0,0,0.65),
    inset 0 1px 0 rgba(255,255,255,0.05) !important;
}

/* Meal time labels */
body.dashboard-bg-active .text-morning  { color: #f472b6 !important; text-shadow: 0 0 16px rgba(244,114,182,0.6) !important; font-weight: 700 !important; }
body.dashboard-bg-active .text-afternoon{ color: #a5b4fc !important; text-shadow: 0 0 16px rgba(165,180,252,0.6) !important; font-weight: 700 !important; }
body.dashboard-bg-active .text-night    { color: #22d3ee !important; text-shadow: 0 0 16px rgba(34,211,238,0.6) !important; font-weight: 700 !important; }

/* ──────────────────────────────────────────────────────────────────────────────────────── 
   INDIVIDUAL MEAL ITEM CARDS
   ────────────────────────────────────────────────────────────────────────────────────────  */
body.dashboard-bg-active .meal-item-card {
  background: rgba(8, 5, 22, 0.60) !important;
  border: 1px solid rgba(255,255,255,0.05) !important;
  border-radius: 1.15rem !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.4) !important;
  transition: transform 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275),
              border-color 0.25s ease,
              box-shadow 0.25s ease !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
}

body.dashboard-bg-active .meal-item-card:hover {
  transform: translateX(5px) !important;
  border-color: rgba(168,85,247,0.28) !important;
  background: rgba(12, 8, 30, 0.78) !important;
  box-shadow: 0 8px 28px rgba(0,0,0,0.5), 0 0 20px rgba(168,85,247,0.08) !important;
}

body.dashboard-bg-active .meal-item-card::before {
  background: linear-gradient(135deg, #a855f7, #ec4899) !important;
}

body.dashboard-bg-active .meal-name { color: #e8eeff !important; font-weight: 600 !important; }
body.dashboard-bg-active .meal-item-card:hover .meal-name { color: #c4b5fd !important; }
body.dashboard-bg-active .meal-meta { color: rgba(148,163,184,0.7) !important; }

body.dashboard-bg-active .meal-img {
  border-radius: 0.85rem !important;
  border: 1px solid rgba(168,85,247,0.18) !important;
  box-shadow: 0 0 12px rgba(168,85,247,0.15) !important;
}

/* Swap/Remarks button */
body.dashboard-bg-active .btn-swap-item {
  background: rgba(251,191,36,0.10) !important;
  color: #fcd34d !important;
  border: 1px solid rgba(251,191,36,0.22) !important;
  border-radius: 9999px !important;
  font-weight: 700 !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.05em !important;
  padding: 0.25rem 0.7rem !important;
  transition: all 0.2s ease !important;
}
body.dashboard-bg-active .btn-swap-item:hover {
  background: rgba(251,191,36,0.22) !important;
  box-shadow: 0 0 14px rgba(251,191,36,0.25) !important;
  transform: scale(1.04) !important;
}

/* ──────────────────────────────────────────────────────────────────────────────────────── 
   RIGHT SIDEBAR CARDS
   ────────────────────────────────────────────────────────────────────────────────────────  */
body.dashboard-bg-active .extra-calories-card,
body.dashboard-bg-active .glass-card.extra-calories-card {
  background: rgba(8, 5, 24, 0.75) !important;
  backdrop-filter: blur(44px) saturate(1.7) !important;
  -webkit-backdrop-filter: blur(44px) saturate(1.7) !important;
  border: 1px solid rgba(249,115,22,0.22) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 0 0 1px rgba(249,115,22,0.08),
    0 12px 40px rgba(0,0,0,0.6),
    0 0 30px rgba(249,115,22,0.06),
    inset 0 1px 0 rgba(255,255,255,0.05) !important;
}

body.dashboard-bg-active .presc-generation-card {
  background: rgba(8, 5, 30, 0.80) !important;
  backdrop-filter: blur(44px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(44px) saturate(1.6) !important;
  border: 1px solid rgba(168,85,247,0.28) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 0 0 1px rgba(168,85,247,0.10),
    0 12px 40px rgba(0,0,0,0.60),
    0 0 30px rgba(168,85,247,0.07),
    inset 0 1px 0 rgba(255,255,255,0.05) !important;
}

body.dashboard-bg-active #general-precautions-trigger-card {
  border-color: rgba(251,113,133,0.28) !important;
  box-shadow:
    0 0 0 1px rgba(244,63,94,0.10),
    0 12px 40px rgba(0,0,0,0.60),
    0 0 30px rgba(244,63,94,0.07),
    inset 0 1px 0 rgba(255,255,255,0.05) !important;
}

body.dashboard-bg-active .side-card-title {
  font-size: 1.3rem !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
  color: #f0f4ff !important;
}

body.dashboard-bg-active .side-card-desc {
  color: rgba(199,210,254,0.75) !important;
  font-size: 0.85rem !important;
  line-height: 1.55 !important;
}

/* ──────────────────────────────────────────────────────────────────────────────────────── 
   PREMIUM BUTTONS
   ────────────────────────────────────────────────────────────────────────────────────────  */
body.dashboard-bg-active .btn-glow-dark {
  background: rgba(255,255,255,0.07) !important;
  color: #f0f4ff !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  border-radius: 0.85rem !important;
  font-weight: 700 !important;
  backdrop-filter: blur(12px) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.10) !important;
  transition: all 0.25s ease !important;
}
body.dashboard-bg-active .btn-glow-dark:hover {
  background: rgba(255,255,255,0.14) !important;
  transform: translateY(-2px) scale(1.01) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4), inset 0 1px 0 rgba(255,255,255,0.15) !important;
}

body.dashboard-bg-active #btn-dashboard-checkin {
  background: rgba(99,102,241,0.12) !important;
  color: #a5b4fc !important;
  border-color: rgba(129,140,248,0.38) !important;
}
body.dashboard-bg-active #btn-dashboard-checkin:hover {
  background: rgba(99,102,241,0.22) !important;
  box-shadow: 0 0 20px rgba(99,102,241,0.3) !important;
}

body.dashboard-bg-active #btn-show-alerts {
  background: rgba(244,63,94,0.10) !important;
  color: #fb7185 !important;
  border-color: rgba(251,113,133,0.35) !important;
}
body.dashboard-bg-active #btn-show-alerts:hover {
  background: rgba(244,63,94,0.20) !important;
  box-shadow: 0 0 20px rgba(244,63,94,0.25) !important;
}

body.dashboard-bg-active #add-extra-cal-btn,
body.dashboard-bg-active .extra-cal-btn {
  background: linear-gradient(135deg, #f97316, #fb923c) !important;
  color: white !important;
  border: none !important;
  border-radius: 0.75rem !important;
  font-weight: 800 !important;
  box-shadow: 0 4px 20px rgba(249,115,22,0.40), inset 0 1px 0 rgba(255,255,255,0.15) !important;
  transition: all 0.25s ease !important;
}
body.dashboard-bg-active #add-extra-cal-btn:hover,
body.dashboard-bg-active .extra-cal-btn:hover {
  transform: translateY(-2px) scale(1.03) !important;
  box-shadow: 0 8px 30px rgba(249,115,22,0.55) !important;
}

body.dashboard-bg-active #btn-sidebar-logout {
  background: rgba(251,113,133,0.07) !important;
  border: 1px solid rgba(251,113,133,0.35) !important;
  color: #fb7185 !important;
  border-radius: 0.85rem !important;
  font-weight: 700 !important;
  transition: all 0.25s ease !important;
}
body.dashboard-bg-active #btn-sidebar-logout:hover {
  background: rgba(251,113,133,0.16) !important;
  box-shadow: 0 0 20px rgba(244,63,94,0.25) !important;
  transform: translateY(-2px) !important;
}

body.dashboard-bg-active .extra-cal-input,
body.dashboard-bg-active .modern-input {
  background: rgba(4, 2, 16, 0.65) !important;
  border: 1px solid rgba(249,115,22,0.22) !important;
  border-radius: 0.85rem !important;
  color: #f0f4ff !important;
  backdrop-filter: blur(12px) !important;
}
body.dashboard-bg-active .extra-cal-input:focus,
body.dashboard-bg-active .modern-input:focus {
  border-color: rgba(249,115,22,0.55) !important;
  box-shadow: 0 0 18px rgba(249,115,22,0.20) !important;
  outline: none !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   HEADER BADGES
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
body.dashboard-bg-active .streak-badge {
  background: rgba(249,115,22,0.12) !important;
  border: 1px solid rgba(249,115,22,0.28) !important;
  color: #fdba74 !important;
  box-shadow: 0 0 16px rgba(249,115,22,0.15) !important;
}

body.dashboard-bg-active .user-badge {
  background: rgba(255,255,255,0.04) !important;
  border: 1px solid rgba(168,85,247,0.18) !important;
}

/* Back button */
body.dashboard-bg-active .btn-back {
  background: rgba(8,5,24,0.65) !important;
  border: 1px solid rgba(168,85,247,0.20) !important;
  border-radius: 0.85rem !important;
  color: rgba(165,180,252,0.80) !important;
  backdrop-filter: blur(12px) !important;
  transition: all 0.25s ease !important;
}
body.dashboard-bg-active .btn-back:hover {
  border-color: rgba(168,85,247,0.42) !important;
  color: #c4b5fd !important;
  background: rgba(12,8,34,0.78) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   "Your Daily Meals" heading
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
body.dashboard-bg-active h2.section-title {
  font-size: 1.6rem !important;
  font-weight: 900 !important;
  background: linear-gradient(135deg, #ffffff 0%, #e0d5ff 60%, #c084fc 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 2px 12px rgba(168,85,247,0.30)) !important;
  letter-spacing: -0.025em !important;
}

/* Orange icon glow (Extra Cal card) */
body.dashboard-bg-active .icon-glow-wrap.orange-glow,
body.dashboard-bg-active .orange-glow {
  color: #fb923c !important;
  filter: drop-shadow(0 0 8px rgba(249,115,22,0.60)) !important;
}

/* Logo animated glow */
body.dashboard-bg-active .logo {
  animation: logoPulsePremium 3.5s ease-in-out infinite !important;
}

@keyframes logoPulsePremium {
  0%, 100% { filter: drop-shadow(0 0 14px rgba(168,85,247,0.60)); }
  33%       { filter: drop-shadow(0 0 24px rgba(236,72,153,0.75)); }
  66%       { filter: drop-shadow(0 0 20px rgba(6,182,212,0.55)); }
}

/* Stat labels */
body.dashboard-bg-active .stat-label {
  color: rgba(148,163,184,0.65) !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
}

/* Subtitle text in sidebar cards */
body.dashboard-bg-active .subtitle {
  color: rgba(186,202,235,0.65) !important;
  font-size: 0.82rem !important;
}

/* Feedback box (extra calories) */
body.dashboard-bg-active .feedback-box:not(.hidden) {
  background: rgba(249,115,22,0.08) !important;
  border: 1px solid rgba(249,115,22,0.22) !important;
  border-radius: 0.85rem !important;
}

/* Glow orb in sidebar cards */
body.dashboard-bg-active .presc-glow-orb {
  opacity: 0.08 !important;
  filter: blur(45px) !important;
}

/* Extra calorie header */
body.dashboard-bg-active .extra-cal-header .section-title {
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  color: #f0f4ff !important;
  -webkit-text-fill-color: #f0f4ff !important;
  background: none !important;
  filter: none !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   PREMIUM LIGHT MODE DASHBOARD â€” NutryX Go v6.0
   Apple Â· Linear Â· Stripe Â· Notion Â· Arc Browser Â· Framer Aesthetic
   Background: background_meal_light.png | White glassmorphism | Purple accents
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */

/* â”€â”€ Universal smooth theme transition â”€â”€ */
body.dashboard-bg-active,
body.dashboard-bg-active *,
body.dashboard-bg-active ::before,
body.dashboard-bg-active ::after {
  transition:
    background-color 300ms ease-in-out,
    border-color 300ms ease-in-out,
    box-shadow 300ms ease-in-out,
    color 300ms ease-in-out,
    opacity 300ms ease-in-out,
    filter 300ms ease-in-out !important;
  /* background-image removed — browsers can't animate it cross-fade, was causing a paint delay */
}

/* â”€â”€ LIGHT DASHBOARD BACKGROUND â”€â”€ */
[data-theme="light"] body.dashboard-bg-active {
  background-color: transparent !important;
  background-image: none !important;
}

/* Phase 1: light nature image layer */
[data-theme="light"] body.dashboard-bg-active::before {
  display: none !important;
}

/* Mobile & Tablet Portrait Mode: light meal section */
@media (max-width: 1024px) and (orientation: portrait), (max-width: 768px) {
  [data-theme="light"] body.dashboard-bg-active::before {
    display: none !important;
  }
}

/* Phase 2: very subtle white overlay (8%) for readability without killing the scene */
[data-theme="light"] body.dashboard-bg-active::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(ellipse 70% 45% at 50% 0%, rgba(255,255,255,0.18) 0%, transparent 60%),
    radial-gradient(ellipse 55% 55% at 0% 100%, rgba(255,255,255,0.12) 0%, transparent 65%),
    linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 50%, rgba(255,255,255,0.10) 100%);
  pointer-events: none;
}

/* Hide aurora orbs on light dashboard â€” photo is the hero */
[data-theme="light"] body.dashboard-bg-active .aurora-bg,
[data-theme="light"] body.dashboard-bg-active #particle-canvas {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Elevate all dashboard content above overlays */
[data-theme="light"] body.dashboard-bg-active .app-container {
  position: relative;
  z-index: 10;
}

/* â”€â”€ Theme ripple: light version â”€â”€ */
.theme-ripple.light {
  background: radial-gradient(circle, rgba(240,248,255,0.95) 0%, transparent 70%) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   HEADER â€” White frosted glass pill
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .app-header {
  background: rgba(255, 255, 255, 0.78) !important;
  backdrop-filter: blur(28px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(28px) saturate(1.8) !important;
  border: 1px solid rgba(255, 255, 255, 0.65) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 4px 20px rgba(0, 0, 0, 0.08),
    0 1px 4px rgba(0, 0, 0, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.90) !important;
}

[data-theme="light"] body.dashboard-bg-active .logo {
  background: linear-gradient(135deg, #4f46e5, #7c3aed) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 1px 6px rgba(79, 70, 229, 0.22)) !important;
  animation: none !important;
}

[data-theme="light"] body.dashboard-bg-active .streak-badge {
  background: rgba(249, 115, 22, 0.08) !important;
  border: 1px solid rgba(249, 115, 22, 0.22) !important;
  color: #c2410c !important;
  box-shadow: none !important;
}

[data-theme="light"] body.dashboard-bg-active .user-badge {
  background: rgba(255, 255, 255, 0.70) !important;
  border: 1px solid rgba(99, 102, 241, 0.20) !important;
}

[data-theme="light"] body.dashboard-bg-active .username-txt {
  color: #3730a3 !important;
}

[data-theme="light"] body.dashboard-bg-active #theme-toggle {
  background: rgba(255, 255, 255, 0.75) !important;
  border: 1px solid rgba(99, 102, 241, 0.22) !important;
  color: #4338ca !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

[data-theme="light"] body.dashboard-bg-active #theme-toggle:hover {
  background: rgba(255, 255, 255, 0.95) !important;
  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.15) !important;
}

[data-theme="light"] body.dashboard-bg-active .btn-text {
  color: #4338ca !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   BACK BUTTON
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .btn-back {
  background: rgba(255, 255, 255, 0.72) !important;
  border: 1px solid rgba(99, 102, 241, 0.20) !important;
  color: #4338ca !important;
  backdrop-filter: blur(16px) !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.06) !important;
}

[data-theme="light"] body.dashboard-bg-active .btn-back:hover {
  background: rgba(237, 233, 248, 0.95) !important;
  border-color: rgba(99, 102, 241, 0.42) !important;
  color: #3730a3 !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   4 STAT METRIC CARDS
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .stat-card {
  background: rgba(255, 255, 255, 0.55) !important;
  backdrop-filter: blur(18px) saturate(1.8) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.8) !important;
  border: 1px solid rgba(255, 255, 255, 0.45) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 8px 32px rgba(0, 0, 0, 0.10),
    0 2px 8px rgba(0, 0, 0, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.80) !important;
  color: #111827 !important;
}

[data-theme="light"] body.dashboard-bg-active .stat-card:hover {
  transform: translateY(-4px) !important;
  box-shadow:
    0 16px 48px rgba(0, 0, 0, 0.13),
    0 4px 12px rgba(0, 0, 0, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.90) !important;
  border-color: rgba(99, 102, 241, 0.25) !important;
  background: rgba(255, 255, 255, 0.68) !important;
}

/* Stat numbers â€” keep colorful accent */
[data-theme="light"] body.dashboard-bg-active .card-pink .stat-number {
  background: linear-gradient(135deg, #ec4899, #db2777) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: none !important;
}
[data-theme="light"] body.dashboard-bg-active .card-indigo .stat-number {
  background: linear-gradient(135deg, #6366f1, #7c3aed) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: none !important;
}
[data-theme="light"] body.dashboard-bg-active .card-blue .stat-number {
  background: linear-gradient(135deg, #0ea5e9, #06b6d4) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: none !important;
}
[data-theme="light"] body.dashboard-bg-active .card-emerald .stat-number {
  background: linear-gradient(135deg, #059669, #10b981) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: none !important;
}

/* Icon boxes â€” softer light mode glow */
[data-theme="light"] body.dashboard-bg-active .card-pink .stat-icon-box   { background: rgba(236,72,153,0.10) !important; box-shadow: 0 0 16px rgba(236,72,153,0.15) !important; }
[data-theme="light"] body.dashboard-bg-active .card-indigo .stat-icon-box { background: rgba(99,102,241,0.10) !important; box-shadow: 0 0 16px rgba(99,102,241,0.15) !important; }
[data-theme="light"] body.dashboard-bg-active .card-blue .stat-icon-box   { background: rgba(6,182,212,0.10) !important; box-shadow: 0 0 16px rgba(6,182,212,0.15) !important; }
[data-theme="light"] body.dashboard-bg-active .card-emerald .stat-icon-box{ background: rgba(16,185,129,0.10) !important; box-shadow: 0 0 16px rgba(16,185,129,0.15) !important; }

[data-theme="light"] body.dashboard-bg-active .stat-label {
  color: #6b7280 !important;
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
}

[data-theme="light"] body.dashboard-bg-active .sparkline-svg {
  opacity: 0.15 !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   "Your Daily Meals" section heading
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active h2.section-title {
  font-size: 1.6rem !important;
  font-weight: 900 !important;
  background: none !important;
  -webkit-text-fill-color: #111827 !important;
  color: #111827 !important;
  filter: none !important;
  letter-spacing: -0.025em !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   MEAL GROUP CARDS (Morning/Afternoon/Night)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .meal-group-card {
  background: rgba(255, 255, 255, 0.75) !important;
  backdrop-filter: blur(24px) saturate(1.6) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.6) !important;
  border: 1px solid rgba(255, 255, 255, 0.55) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 8px 30px rgba(0, 0, 0, 0.07),
    0 2px 8px rgba(0, 0, 0, 0.03),
    inset 0 1px 0 rgba(255, 255, 255, 0.90) !important;
}

/* Remove dark mode colored top edge */
[data-theme="light"] body.dashboard-bg-active .meal-group-card::after {
  background: linear-gradient(90deg, transparent, rgba(99,102,241,0.25), rgba(139,92,246,0.20), transparent) !important;
}

/* Meal time labels â€” colorful but softer */
[data-theme="light"] body.dashboard-bg-active .text-morning  { color: #db2777 !important; text-shadow: none !important; font-weight: 700 !important; }
[data-theme="light"] body.dashboard-bg-active .text-afternoon{ color: #4f46e5 !important; text-shadow: none !important; font-weight: 700 !important; }
[data-theme="light"] body.dashboard-bg-active .text-night    { color: #0891b2 !important; text-shadow: none !important; font-weight: 700 !important; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   MEAL ITEM ROWS
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .meal-item-card {
  background: rgba(255, 255, 255, 0.88) !important;
  border: 1px solid rgba(0, 0, 0, 0.04) !important;
  border-radius: 1.15rem !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
}

[data-theme="light"] body.dashboard-bg-active .meal-item-card:hover {
  background: rgba(255, 255, 255, 1) !important;
  border-color: rgba(99, 102, 241, 0.20) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.09), 0 0 0 1px rgba(99,102,241,0.08) !important;
  transform: translateX(3px) !important;
}

[data-theme="light"] body.dashboard-bg-active .meal-item-card::before {
  background: linear-gradient(135deg, #7c3aed, #db2777) !important;
}

[data-theme="light"] body.dashboard-bg-active .meal-name {
  color: #111827 !important;
  font-weight: 600 !important;
}
[data-theme="light"] body.dashboard-bg-active .meal-item-card:hover .meal-name {
  color: #4f46e5 !important;
}
[data-theme="light"] body.dashboard-bg-active .meal-meta {
  color: #6b7280 !important;
}

/* Meal image */
[data-theme="light"] body.dashboard-bg-active .meal-img {
  border: 1px solid rgba(0, 0, 0, 0.06) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
}

/* Swap / Remarks button */
[data-theme="light"] body.dashboard-bg-active .btn-swap-item {
  background: rgba(237, 233, 248, 0.80) !important;
  color: #5b21b6 !important;
  border: 1px solid rgba(99, 102, 241, 0.22) !important;
  border-radius: 9999px !important;
  font-weight: 700 !important;
  font-size: 0.68rem !important;
  letter-spacing: 0.05em !important;
}
[data-theme="light"] body.dashboard-bg-active .btn-swap-item:hover {
  background: rgba(221, 214, 254, 0.95) !important;
  border-color: rgba(99, 102, 241, 0.45) !important;
  box-shadow: 0 2px 10px rgba(99, 102, 241, 0.15) !important;
  transform: scale(1.03) !important;
}

/* LOGGED / status badges */
[data-theme="light"] body.dashboard-bg-active .badge-diet,
[data-theme="light"] body.dashboard-bg-active .badge-veg {
  background: rgba(16, 185, 129, 0.10) !important;
  color: #065f46 !important;
  border: 1px solid rgba(16, 185, 129, 0.25) !important;
}
[data-theme="light"] body.dashboard-bg-active .badge-nonveg {
  background: rgba(239, 68, 68, 0.08) !important;
  color: #7f1d1d !important;
  border: 1px solid rgba(239, 68, 68, 0.20) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   RIGHT SIDEBAR â€” LOG EXTRA CALORIES CARD
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
/* ═══════════════════════════════════════════════════════════════════════
   RIGHT SIDEBAR — LOG EXTRA CALORIES CARD
   ═══════════════════════════════════════════════════════════════════════ */
[data-theme="light"] body.dashboard-bg-active .extra-calories-card,
[data-theme="light"] body.dashboard-bg-active .glass-card.extra-calories-card {
  background: rgba(255, 255, 255, 0.86) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  border: 1px solid rgba(249, 115, 22, 0.18) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.08),
    0 2px 6px rgba(249, 115, 22, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
}

[data-theme="light"] body.dashboard-bg-active .extra-cal-header .section-title {
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  color: #111827 !important;
  -webkit-text-fill-color: #111827 !important;
  background: none !important;
  filter: none !important;
}

[data-theme="light"] body.dashboard-bg-active .subtitle {
  color: #4b5563 !important;
  font-size: 0.82rem !important;
}

[data-theme="light"] body.dashboard-bg-active .extra-cal-input,
[data-theme="light"] body.dashboard-bg-active .modern-input {
  background: rgba(255, 255, 255, 0.95) !important;
  border: 1px solid rgba(0, 0, 0, 0.10) !important;
  border-radius: 0.85rem !important;
  color: #111827 !important;
  box-shadow: inset 0 1px 4px rgba(0,0,0,0.04) !important;
  backdrop-filter: none !important;
}
[data-theme="light"] body.dashboard-bg-active .extra-cal-input::placeholder,
[data-theme="light"] body.dashboard-bg-active .modern-input::placeholder {
  color: #9ca3af !important;
}
[data-theme="light"] body.dashboard-bg-active .extra-cal-input:focus,
[data-theme="light"] body.dashboard-bg-active .modern-input:focus {
  border-color: rgba(249, 115, 22, 0.45) !important;
  box-shadow: 0 0 0 3px rgba(249, 115, 22, 0.12), inset 0 1px 3px rgba(0,0,0,0.04) !important;
  outline: none !important;
}

/* LOG CALORIES button â€” orange-to-purple gradient (matches screenshot) */
[data-theme="light"] body.dashboard-bg-active #add-extra-cal-btn,
[data-theme="light"] body.dashboard-bg-active .extra-cal-btn {
  background: linear-gradient(135deg, #f97316 0%, #ec4899 50%, #7c3aed 100%) !important;
  color: white !important;
  border: none !important;
  border-radius: 0.85rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  box-shadow: 0 4px 18px rgba(249,115,22,0.30), 0 2px 6px rgba(124,58,237,0.20) !important;
}
[data-theme="light"] body.dashboard-bg-active #add-extra-cal-btn:hover,
[data-theme="light"] body.dashboard-bg-active .extra-cal-btn:hover {
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow: 0 8px 28px rgba(249,115,22,0.38), 0 4px 12px rgba(124,58,237,0.25) !important;
}

/* orange glow icon */
[data-theme="light"] body.dashboard-bg-active .icon-glow-wrap.orange-glow,
[data-theme="light"] body.dashboard-bg-active .orange-glow {
  color: #f97316 !important;
  filter: drop-shadow(0 0 6px rgba(249,115,22,0.35)) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   SIDEBAR â€” DIETARY RECOMMENDATIONS
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .presc-generation-card {
  background: rgba(255, 255, 255, 0.86) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  border: 1px solid rgba(99, 102, 241, 0.16) !important;
  border-radius: 1.75rem !important;
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.07),
    0 2px 6px rgba(99, 102, 241, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
}

[data-theme="light"] body.dashboard-bg-active .side-card-title {
  color: #111827 !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
}

[data-theme="light"] body.dashboard-bg-active .side-card-desc {
  color: #4b5563 !important;
  font-size: 0.85rem !important;
  line-height: 1.55 !important;
}

[data-theme="light"] body.dashboard-bg-active .doc-icon {
  color: #6366f1 !important;
  filter: drop-shadow(0 0 8px rgba(99,102,241,0.20)) !important;
}

/* Generate PDF button */
[data-theme="light"] body.dashboard-bg-active .btn-glow-dark {
  background: rgba(255, 255, 255, 0.95) !important;
  color: #4338ca !important;
  border: 1px solid rgba(99, 102, 241, 0.28) !important;
  border-radius: 0.85rem !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 10px rgba(99, 102, 241, 0.08) !important;
  backdrop-filter: none !important;
}
[data-theme="light"] body.dashboard-bg-active .btn-glow-dark:hover {
  background: rgba(237, 233, 248, 1) !important;
  border-color: rgba(99, 102, 241, 0.50) !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.16) !important;
  transform: translateY(-2px) scale(1.01) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   SIDEBAR â€” LOG SYMPTOMS CARD
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active #btn-dashboard-checkin {
  background: rgba(237, 233, 248, 0.90) !important;
  color: #4338ca !important;
  border: 1px solid rgba(99, 102, 241, 0.28) !important;
}
[data-theme="light"] body.dashboard-bg-active #btn-dashboard-checkin:hover {
  background: rgba(221, 214, 254, 1) !important;
  border-color: rgba(99, 102, 241, 0.50) !important;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.15) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   SIDEBAR â€” CRITICAL ALERTS CARD
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active #general-precautions-trigger-card {
  background: rgba(255, 255, 255, 0.86) !important;
  border: 1px solid rgba(244, 63, 94, 0.16) !important;
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.07),
    0 2px 6px rgba(244, 63, 94, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
}
[data-theme="light"] body.dashboard-bg-active #general-precautions-trigger-card .side-card-title {
  color: #be123c !important;
}
[data-theme="light"] body.dashboard-bg-active #general-precautions-trigger-card .side-card-desc {
  color: #4b5563 !important;
}
[data-theme="light"] body.dashboard-bg-active #btn-show-alerts {
  background: rgba(255, 241, 242, 0.90) !important;
  color: #be123c !important;
  border: 1px solid rgba(244, 63, 94, 0.25) !important;
}
[data-theme="light"] body.dashboard-bg-active #btn-show-alerts:hover {
  background: rgba(254, 205, 211, 0.95) !important;
  border-color: rgba(244, 63, 94, 0.45) !important;
  box-shadow: 0 4px 14px rgba(244, 63, 94, 0.14) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   LOG OUT BUTTON
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active #btn-sidebar-logout {
  background: rgba(255, 255, 255, 0.80) !important;
  border: 1px solid rgba(244, 63, 94, 0.22) !important;
  color: #be123c !important;
  border-radius: 0.85rem !important;
  font-weight: 700 !important;
}
[data-theme="light"] body.dashboard-bg-active #btn-sidebar-logout:hover {
  background: rgba(254, 226, 226, 0.95) !important;
  border-color: rgba(244, 63, 94, 0.42) !important;
  box-shadow: 0 4px 16px rgba(244, 63, 94, 0.12) !important;
  transform: translateY(-2px) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   FEEDBACK BOX (extra cal)
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .feedback-box:not(.hidden) {
  background: rgba(255, 247, 237, 0.90) !important;
  border: 1px solid rgba(249, 115, 22, 0.18) !important;
  border-radius: 0.85rem !important;
  color: #9a3412 !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   GLOW ORB inside sidebar cards
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active .presc-glow-orb {
  opacity: 0.04 !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   SCROLLBAR â€” light mode
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active ::-webkit-scrollbar-track {
  background: rgba(255,255,255,0.40) !important;
}
[data-theme="light"] body.dashboard-bg-active ::-webkit-scrollbar-thumb {
  background: rgba(99,102,241,0.28) !important;
}
[data-theme="light"] body.dashboard-bg-active ::-webkit-scrollbar-thumb:hover {
  background: rgba(99,102,241,0.50) !important;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   GENERAL TEXT overrides on dashboard
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
[data-theme="light"] body.dashboard-bg-active h1,
[data-theme="light"] body.dashboard-bg-active h2,
[data-theme="light"] body.dashboard-bg-active h3,
[data-theme="light"] body.dashboard-bg-active h4 {
  color: #111827 !important;
}

[data-theme="light"] body.dashboard.daily-pref-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5L7 7l5.5-5.5' stroke='%23a5b4fc' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 14px 9px;
  padding-right: 2.5rem;
  cursor: pointer;
}

.card-v2-pink   { border-color: rgba(236,72,153,0.32);  box-shadow: 0 0 0 1px rgba(236,72,153,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-indigo { border-color: rgba(168,85,247,0.32);  box-shadow: 0 0 0 1px rgba(168,85,247,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-cyan   { border-color: rgba(6,182,212,0.32);   box-shadow: 0 0 0 1px rgba(6,182,212,0.10),  0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-emerald{ border-color: rgba(16,185,129,0.32);  box-shadow: 0 0 0 1px rgba(16,185,129,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }

.card-v2-pink:hover   { box-shadow: 0 0 0 1px rgba(236,72,153,0.35), 0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(236,72,153,0.18), inset 0 1px 0 rgba(255,255,255,0.09); }
.card-v2-indigo:hover { box-shadow: 0 0 0 1px rgba(168,85,247,0.35), 0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(168,85,247,0.18), inset 0 1px 0 rgba(255,255,255,0.09); }
.card-v2-cyan:hover   { box-shadow: 0 0 0 1px rgba(6,182,212,0.35),  0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(6,182,212,0.18),  inset 0 1px 0 rgba(255,255,255,0.09); }
.card-v2-emerald:hover{ box-shadow: 0 0 0 1px rgba(16,185,129,0.35), 0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(16,185,129,0.18), inset 0 1px 0 rgba(255,255,255,0.09); }

/* Circular icon ring */
.sv2-icon-ring {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.sv2-ring-pink   { background: rgba(236,72,153,0.10);  border: 1.5px solid rgba(236,72,153,0.55);  color: #f472b6; box-shadow: 0 0 20px rgba(236,72,153,0.35),  inset 0 0 10px rgba(236,72,153,0.10); }
.sv2-ring-indigo { background: rgba(168,85,247,0.10);  border: 1.5px solid rgba(168,85,247,0.55);  color: #c084fc; box-shadow: 0 0 20px rgba(168,85,247,0.35),  inset 0 0 10px rgba(168,85,247,0.10); }
.sv2-ring-cyan   { background: rgba(6,182,212,0.10);   border: 1.5px solid rgba(6,182,212,0.55);   color: #22d3ee; box-shadow: 0 0 20px rgba(6,182,212,0.35),   inset 0 0 10px rgba(6,182,212,0.10); }
.sv2-ring-emerald{ background: rgba(16,185,129,0.10);  border: 1.5px solid rgba(16,185,129,0.55);  color: #34d399; box-shadow: 0 0 20px rgba(16,185,129,0.35),  inset 0 0 10px rgba(16,185,129,0.10); }

/* Content */
.sv2-content { position: relative; z-index: 2; flex: 1; min-width: 0; }

/* Numbers */
.sv2-number {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.sv2-number-pink   { color: #f472b6; text-shadow: 0 0 18px rgba(236,72,153,0.75), 0 0 6px rgba(236,72,153,0.5); }
.sv2-number-indigo { color: #c084fc; text-shadow: 0 0 18px rgba(168,85,247,0.75), 0 0 6px rgba(168,85,247,0.5); }
.sv2-number-cyan   { color: #22d3ee; text-shadow: 0 0 18px rgba(6,182,212,0.75),  0 0 6px rgba(6,182,212,0.5); }
.sv2-number-emerald{ color: #34d399; text-shadow: 0 0 18px rgba(16,185,129,0.75), 0 0 6px rgba(16,185,129,0.5); }

/* Macros stack */
.sv2-number-stack { font-size: 1.5rem; line-height: 1.25; }

/* Label */
.sv2-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(200, 195, 230, 0.75);
  margin-top: 0.3rem;
}

/* Animated SVG sine wave */
.sv2-wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 44px;
  pointer-events: none;
  z-index: 1;
}
.sv2-wave-path {
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
}
.sv2-wave-pink   { stroke: rgba(236,72,153,0.65);  filter: drop-shadow(0 0 5px rgba(236,72,153,0.7)); }
.sv2-wave-indigo { stroke: rgba(168,85,247,0.65);  filter: drop-shadow(0 0 5px rgba(168,85,247,0.7)); }
.sv2-wave-cyan   { stroke: rgba(6,182,212,0.65);   filter: drop-shadow(0 0 5px rgba(6,182,212,0.7)); }
.sv2-wave-emerald{ stroke: rgba(16,185,129,0.65);  filter: drop-shadow(0 0 5px rgba(16,185,129,0.7)); }

/* Light mode overrides */
[data-theme="light"] .stat-card-v2 {
  background: rgba(255,255,255,0.90) !important;
  border-color: rgba(0,0,0,0.08) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.10) !important;
}

[data-theme="light"] body.dashboard-bg-active p,
[data-theme="light"] body.dashboard-bg-active span {
  color: inherit;
}

/* ═══════════════════════════════════════════════════════════════════════
   PREMIUM GLASSMORPHISM - Daily Preference Popup
   Apple Vision Pro x Linear x Raycast x Vercel inspired floating glass
   ═══════════════════════════════════════════════════════════════════════ */

/* Inter is loaded via the top-of-file @import */

/* Overlay */
#modal-daily-preference {
  background: rgba(2, 4, 16, 0.82) !important;
  backdrop-filter: blur(8px) saturate(120%) !important;
  -webkit-backdrop-filter: blur(8px) saturate(120%) !important;
}

/* GLASS PANEL */
#modal-daily-preference .checkin-card {
  background:
    radial-gradient(ellipse at 15% 0%, rgba(110, 70, 255, 0.18) 0%, transparent 55%),
    radial-gradient(ellipse at 88% 100%, rgba(56, 120, 255, 0.12) 0%, transparent 55%),
    rgba(14, 18, 38, 0.74) !important;
  backdrop-filter: blur(40px) saturate(190%) brightness(112%) !important;
  -webkit-backdrop-filter: blur(40px) saturate(190%) brightness(112%) !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  box-shadow:
    0 40px 100px rgba(0, 0, 0, 0.65),
    0 0 80px rgba(110, 80, 255, 0.15) !important;
  position: relative !important;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', sans-serif !important;
  animation: glassModalIn 0.32s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
}

#modal-profile-settings.modal-overlay-fullscreen:not(.hidden) {
  background: rgba(3, 7, 18, 0.75) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

[data-theme="light"] #modal-profile-settings.modal-overlay-fullscreen:not(.hidden) {
  background: rgba(99, 102, 241, 0.12) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

@keyframes glassModalIn {
  from { opacity: 0; transform: scale(0.97) translateY(12px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* Diagonal glass shine */
#modal-daily-preference .checkin-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(128deg, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0.00) 40%, rgba(255,255,255,0.00) 60%, rgba(255,255,255,0.03) 100%);
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
}

#modal-daily-preference .checkin-card > * {
  position: relative;
  z-index: 1;
}

/* TYPOGRAPHY */
#modal-daily-preference .checkin-title {
  font-family: 'Inter', sans-serif !important;
  font-size: 1.22rem !important;
  font-weight: 700 !important;
  color: #f0f4ff !important;
  letter-spacing: -0.015em !important;
}

#modal-daily-preference .checkin-title svg {
  color: #a78bfa !important;
  filter: drop-shadow(0 0 10px rgba(167, 139, 250, 0.6)) !important;
}

#modal-daily-preference .checkin-step-desc,
#modal-daily-preference p.checkin-step-desc {
  color: rgba(148, 163, 184, 0.80) !important;
  font-size: 0.875rem !important;
  font-family: 'Inter', sans-serif !important;
  line-height: 1.55 !important;
}

#modal-daily-preference label,
#modal-daily-preference .section-label {
  font-family: 'Inter', sans-serif !important;
  font-size: 0.67rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.11em !important;
  color: rgba(148, 163, 184, 0.65) !important;
  display: block !important;
  margin-bottom: 0.45rem !important;
}

/* GLASS INPUTS AND SELECTS */
#modal-daily-preference input[type="number"],
#modal-daily-preference input[type="text"],
#modal-daily-preference select {
  background: rgba(255, 255, 255, 0.055) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 14px !important;
  color: rgba(240, 244, 255, 0.95) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 400 !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  transition: background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease !important;
  outline: none !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.10), inset 0 -1px 0 rgba(0,0,0,0.08) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

#modal-daily-preference input[type="number"]:hover,
#modal-daily-preference input[type="text"]:hover,
#modal-daily-preference select:hover {
  background: rgba(255, 255, 255, 0.085) !important;
  border-color: rgba(255, 255, 255, 0.20) !important;
}

#modal-daily-preference input[type="number"]:focus,
#modal-daily-preference input[type="text"]:focus,
#modal-daily-preference select:focus {
  background: rgba(139, 92, 246, 0.08) !important;
  border-color: rgba(139, 92, 246, 0.55) !important;
  box-shadow: 0 0 0 3px rgba(139,92,246,0.15), inset 0 1px 0 rgba(255,255,255,0.10) !important;
}

#modal-daily-preference input::placeholder {
  color: rgba(148, 163, 184, 0.45) !important;
  font-family: 'Inter', sans-serif !important;
}

#modal-daily-preference select {
  background-color: rgba(255, 255, 255, 0.055) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5L7 7l5.5-5.5' stroke='rgba(167,139,250,0.9)' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 14px 9px !important;
  padding-right: 2.75rem !important;
}

#modal-daily-preference select option {
  background: #181c30 !important;
  color: rgba(230, 236, 255, 0.92) !important;
}

/* SYMPTOM CHIPS */
#modal-daily-preference .symptom-btn {
  background: rgba(255, 255, 255, 0.045) !important;
  border: 1px solid rgba(255, 255, 255, 0.11) !important;
  color: rgba(203, 213, 225, 0.88) !important;
  border-radius: 10px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.79rem !important;
  font-weight: 500 !important;
  transition: all 0.18s ease !important;
  backdrop-filter: blur(10px) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.08) !important;
}

#modal-daily-preference .symptom-btn:hover {
  background: rgba(255, 255, 255, 0.10) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.14) !important;
}

#modal-daily-preference .symptom-btn.illness-btn {
  border-color: rgba(251, 191, 36, 0.18) !important;
  background: rgba(251, 191, 36, 0.04) !important;
}

#modal-daily-preference .symptom-btn.illness-btn:hover {
  background: rgba(251, 191, 36, 0.10) !important;
  border-color: rgba(251, 191, 36, 0.35) !important;
}

#modal-daily-preference .symptom-btn.active,
#modal-daily-preference .symptom-btn.worsened-btn.active,
#modal-daily-preference .daily-symptom-btn.active {
  background: rgba(109, 74, 255, 0.22) !important;
  border-color: rgba(139, 92, 246, 0.60) !important;
  color: rgba(216, 200, 255, 0.97) !important;
  box-shadow: 0 0 22px rgba(109,74,255,0.38), inset 0 1px 0 rgba(255,255,255,0.18) !important;
  transform: none !important;
}

#modal-daily-preference .symptom-btn.illness-btn.active {
  background: rgba(251, 146, 60, 0.16) !important;
  border-color: rgba(251, 146, 60, 0.50) !important;
  color: rgba(253, 186, 116, 0.97) !important;
  box-shadow: 0 0 18px rgba(251,146,60,0.28) !important;
  animation: none !important;
}

/* FOOD PREFERENCE CARDS */
#modal-daily-preference .pref-btn {
  background: rgba(255, 255, 255, 0.045) !important;
  border: 1px solid rgba(255, 255, 255, 0.11) !important;
  color: rgba(203, 213, 225, 0.85) !important;
  border-radius: 14px !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.09) !important;
}

#modal-daily-preference .pref-btn:hover {
  background: rgba(255, 255, 255, 0.10) !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
  color: #fff !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,0.30), inset 0 1px 0 rgba(255,255,255,0.16) !important;
}

#modal-daily-preference .pref-btn.active {
  background: rgba(109, 74, 255, 0.22) !important;
  border-color: rgba(167, 139, 250, 0.55) !important;
  color: rgba(221, 210, 255, 0.97) !important;
  box-shadow: 0 0 28px rgba(109,74,255,0.30), 0 8px 24px rgba(0,0,0,0.25), inset 0 1px 0 rgba(255,255,255,0.20) !important;
  transform: translateY(-3px) !important;
}

/* CTA BUTTON */
#modal-daily-preference #btn-daily-submit {
  background: linear-gradient(120deg, #6E72FC 0%, #A855F7 52%, #C026D3 100%) !important;
  background-size: 200% 200% !important;
  border: none !important;
  color: #ffffff !important;
  font-family: 'Inter', sans-serif !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  letter-spacing: 0.012em !important;
  border-radius: 1rem !important;
  box-shadow: 0 12px 40px rgba(139,92,246,0.42), 0 4px 18px rgba(110,114,252,0.28), inset 0 1px 0 rgba(255,255,255,0.22) !important;
  transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
  position: relative !important;
  isolation: isolate !important;
  will-change: transform, box-shadow !important;
  animation: btnGradientShift 4s ease infinite alternate !important;
}

@keyframes btnGradientShift {
  0%   { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

#modal-daily-preference #btn-daily-submit::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.18) 0%, rgba(255,255,255,0.00) 55%);
  border-radius: inherit;
  pointer-events: none;
  z-index: 1;
}

#modal-daily-preference #btn-daily-submit:hover {
  transform: translateY(-2px) scale(1.016) !important;
  box-shadow: 0 20px 55px rgba(139,92,246,0.55), 0 8px 28px rgba(110,114,252,0.38), inset 0 1px 0 rgba(255,255,255,0.28) !important;
}

body.start-bg-active::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 0;
  background-image: url('/static/background.webp');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: brightness(0.85) saturate(1.1);
  pointer-events: none;
}

/* Enable cosmic aurora & star particles on start screen in dark mode only */
body:not([data-theme="light"]) body.start-bg-active .aurora-bg,
body:not([data-theme="light"]) body.start-bg-active #particle-canvas {
  opacity: 0.85 !important;
  pointer-events: none !important;
}

[data-theme="light"] #particle-canvas,
[data-theme="light"] .aurora-bg,
[data-theme="light"] body.start-bg-active #particle-canvas,
[data-theme="light"] body.start-bg-active .aurora-bg {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

#modal-daily-preference #btn-daily-submit:active {
  transform: translateY(0) scale(0.985) !important;
}

/* MISC */
#modal-daily-preference .text-pink,
#modal-daily-preference small.text-pink {
  color: rgba(251, 113, 133, 0.80) !important;
  font-family: 'Inter', sans-serif !important;
  font-size: 0.78rem !important;
}

#modal-daily-preference .checkin-card::-webkit-scrollbar { width: 4px; }
#modal-daily-preference .checkin-card::-webkit-scrollbar-track { background: transparent; }
#modal-daily-preference .checkin-card::-webkit-scrollbar-thumb { background: rgba(139,92,246,0.30); border-radius: 2px; }
#modal-daily-preference .checkin-card::-webkit-scrollbar-thumb:hover { background: rgba(139,92,246,0.55); }
#modal-daily-preference #daily-symptoms-container::-webkit-scrollbar { width: 3px; }
#modal-daily-preference #daily-symptoms-container::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.12); border-radius: 2px; }

/* ═══════════════════════════════════════════════════════════════════════════
   DAILY PREFERENCE FORM FIELDS — Theme-aware (dark + light mode)
   ═══════════════════════════════════════════════════════════════════════════ */

.daily-pref-field {
  margin-bottom: 1rem;
}

.daily-pref-input,
.daily-pref-select {
  width: 100%;
  padding: 0.875rem 1.1rem;
  border-radius: 0.875rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-primary);
  font-size: 1rem;
  font-family: inherit;
  outline: none;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.18);
  -webkit-appearance: none;
  appearance: none;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.daily-pref-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9'%3E%3Cpath d='M1.5 1.5L7 7l5.5-5.5' stroke='%23a5b4fc' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  .card-v2-pink   { border-color: rgba(236,72,153,0.32);  box-shadow: 0 0 0 1px rgba(236,72,153,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-indigo { border-color: rgba(168,85,247,0.32);  box-shadow: 0 0 0 1px rgba(168,85,247,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-cyan   { border-color: rgba(6,182,212,0.32);   box-shadow: 0 0 0 1px rgba(6,182,212,0.10),  0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-emerald{ border-color: rgba(16,185,129,0.32);  box-shadow: 0 0 0 1px rgba(16,185,129,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }

.card-v2-pink:hover   { box-shadow: 0 0 0 1px rgba(236,72,153,0.35), 0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(236,72,153,0.18), inset 0 1px 0 rgba(255,255,255,0.09); }
.card-v2-indigo:hover { box-shadow: 0 0 0 1px rgba(168,85,247,0.35), 0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(168,85,247,0.18), inset 0 1px 0 rgba(255,255,255,0.09); }
.card-v2-cyan:hover   { box-shadow: 0 0 0 1px rgba(6,182,212,0.35),  0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(6,182,212,0.18),  inset 0 1px 0 rgba(255,255,255,0.09); }
.card-v2-emerald:hover{ box-shadow: 0 0 0 1px rgba(16,185,129,0.35), 0 18px 50px rgba(0,0,0,0.65), 0 0 40px rgba(16,185,129,0.18), inset 0 1px 0 rgba(255,255,255,0.09); }

/* Circular icon ring */
.sv2-icon-ring {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
.sv2-ring-pink   { background: rgba(236,72,153,0.10);  border: 1.5px solid rgba(236,72,153,0.55);  color: #f472b6; box-shadow: 0 0 20px rgba(236,72,153,0.35),  inset 0 0 10px rgba(236,72,153,0.10); }
.sv2-ring-indigo { background: rgba(168,85,247,0.10);  border: 1.5px solid rgba(168,85,247,0.55);  color: #c084fc; box-shadow: 0 0 20px rgba(168,85,247,0.35),  inset 0 0 10px rgba(168,85,247,0.10); }
.sv2-ring-cyan   { background: rgba(6,182,212,0.10);   border: 1.5px solid rgba(6,182,212,0.55);   color: #22d3ee; box-shadow: 0 0 20px rgba(6,182,212,0.35),   inset 0 0 10px rgba(6,182,212,0.10); }
.sv2-ring-emerald{ background: rgba(16,185,129,0.10);  border: 1.5px solid rgba(16,185,129,0.55);  color: #34d399; box-shadow: 0 0 20px rgba(16,185,129,0.35),  inset 0 0 10px rgba(16,185,129,0.10); }

/* Content */
.sv2-content { position: relative; z-index: 2; flex: 1; min-width: 0; }

/* Numbers */
.sv2-number {
  font-size: 2rem;
  font-weight: 900;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.sv2-number-pink   { color: #f472b6; text-shadow: 0 0 18px rgba(236,72,153,0.75), 0 0 6px rgba(236,72,153,0.5); }
.sv2-number-indigo { color: #c084fc; text-shadow: 0 0 18px rgba(168,85,247,0.75), 0 0 6px rgba(168,85,247,0.5); }
.sv2-number-cyan   { color: #22d3ee; text-shadow: 0 0 18px rgba(6,182,212,0.75),  0 0 6px rgba(6,182,212,0.5); }
.sv2-number-emerald{ color: #34d399; text-shadow: 0 0 18px rgba(16,185,129,0.75), 0 0 6px rgba(16,185,129,0.5); }

/* Macros stack */
.sv2-number-stack { font-size: 1.5rem; line-height: 1.25; }

/* Label */
.sv2-label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(200, 195, 230, 0.75);
  margin-top: 0.3rem;
}

/* Animated SVG sine wave */
.sv2-wave {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 44px;
  pointer-events: none;
  z-index: 1;
}
.sv2-wave-path {
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
}
.sv2-wave-pink   { stroke: rgba(236,72,153,0.65);  filter: drop-shadow(0 0 5px rgba(236,72,153,0.7)); }
.sv2-wave-indigo { stroke: rgba(168,85,247,0.65);  filter: drop-shadow(0 0 5px rgba(168,85,247,0.7)); }
.sv2-wave-cyan   { stroke: rgba(6,182,212,0.65);   filter: drop-shadow(0 0 5px rgba(6,182,212,0.7)); }
.sv2-wave-emerald{ stroke: rgba(16,185,129,0.65);  filter: drop-shadow(0 0 5px rgba(16,185,129,0.7)); }

/* Light mode overrides */
[data-theme="light"] .stat-card-v2 {
  background: rgba(255,255,255,0.90) !important;
  border-color: rgba(0,0,0,0.08) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.10) !important;
}
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 14px 9px;
  padding-right: 2.5rem;
  cursor: pointer;
}

.daily-pref-input:focus,
.daily-pref-select:focus {
  border-color: rgba(139, 92, 246, 0.55);
  background: rgba(255, 255, 255, 0.09);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.18), inset 0 2px 4px rgba(0,0,0,0.1);
  transform: translateY(-1px);
}

/* ── Light mode overrides for daily pref fields ── */
[data-theme="light"] .daily-pref-input,
[data-theme="light"] .daily-pref-select {
  background: rgba(255, 255, 255, 0.8) !important;
  border-color: rgba(99, 102, 241, 0.25) !important;
  color: #1a1040 !important;
  box-shadow: 0 2px 8px rgba(79, 70, 229, 0.08), inset 0 1px 3px rgba(0,0,0,0.04) !important;
}

[data-theme="light"] .daily-pref-select {
  background: rgba(255, 255, 255, 0.92) !important;
  background-image: none !important;
  border-color: rgba(99, 102, 241, 0.25) !important;
  color: #1a1040 !important;
  box-shadow: 0 2px 8px rgba(79, 70, 229, 0.08), inset 0 1px 3px rgba(0,0,0,0.04) !important;
}

[data-theme="light"] .daily-pref-input::placeholder {
  color: #a5b4fc !important;
}

[data-theme="light"] .daily-pref-input:focus,
[data-theme="light"] .daily-pref-select:focus {
  border-color: rgba(99, 102, 241, 0.65) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.18), 0 2px 10px rgba(99, 102, 241, 0.1) !important;
  transform: translateY(-1px) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   SETTINGS MODAL — Glassmorphism (dark + light mode)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Overlay: blurred backdrop */
#modal-profile-settings.modal-overlay-fullscreen {
  background: rgba(3, 7, 18, 0.75) !important;
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}

[data-theme="light"] #modal-profile-settings.modal-overlay-fullscreen {
  background: rgba(99, 102, 241, 0.12) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

/* Glass card */
.settings-glass-card {
  position: relative;
  max-width: 540px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  border-radius: 1.75rem;
  padding: 2rem 2.25rem 2.25rem;
  background: rgba(10, 12, 28, 0.72);
  border: 1px solid rgba(139, 92, 246, 0.22);
  backdrop-filter: blur(32px);
  -webkit-backdrop-filter: blur(32px);
  box-shadow:
    0 32px 80px rgba(0, 0, 0, 0.65),
    0 0 0 1px rgba(255, 255, 255, 0.05),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
  animation: modalSlideUp 0.38s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

[data-theme="light"] .settings-glass-card {
  background: rgba(248, 246, 255, 0.78) !important;
  border: 1px solid rgba(139, 92, 246, 0.28) !important;
  box-shadow:
    0 24px 64px rgba(79, 70, 229, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.6),
    inset 0 1px 0 rgba(255, 255, 255, 0.85) !important;
}

/* Decorative top glow blob */
.settings-glass-glow {
  position: absolute;
  top: -60px;
  left: 50%;
  transform: translateX(-50%);
  width: 280px;
  height: 140px;
  background: radial-gradient(ellipse at 50% 80%, rgba(139, 92, 246, 0.45), rgba(99, 102, 241, 0.18) 55%, transparent 80%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  filter: blur(20px);
}

[data-theme="light"] .settings-glass-glow {
  background: radial-gradient(ellipse at 50% 80%, rgba(99, 102, 241, 0.3), rgba(139, 92, 246, 0.12) 55%, transparent 80%) !important;
}

/* Header row */
.settings-glass-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0;
  position: relative;
  z-index: 1;
}

.settings-glass-title-group {
  display: flex;
  align-items: center;
  gap: 0.875rem;
}

.settings-glass-icon {
  width: 42px;
  height: 42px;
  border-radius: 0.875rem;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.25), rgba(139, 92, 246, 0.2));
  border: 1px solid rgba(139, 92, 246, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #a78bfa;
  flex-shrink: 0;
  box-shadow: 0 0 16px rgba(139, 92, 246, 0.25);
}

[data-theme="light"] .settings-glass-icon {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.18), rgba(139, 92, 246, 0.12)) !important;
  border-color: rgba(99, 102, 241, 0.35) !important;
  color: #6366f1 !important;
  box-shadow: 0 0 14px rgba(99, 102, 241, 0.18) !important;
}

.settings-glass-title {
  font-family: 'Outfit', sans-serif;
  font-size: 1.4rem;
  font-weight: 800;
  color: #f0f4ff;
  line-height: 1.15;
  letter-spacing: -0.01em;
}

[data-theme="light"] .settings-glass-title {
  background: linear-gradient(135deg, #3730a3, #7c3aed) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
}

.settings-glass-subtitle {
  font-size: 0.8rem;
  color: rgba(148, 163, 184, 0.8);
  font-weight: 500;
}

[data-theme="light"] .settings-glass-subtitle {
  color: #7c6fcd !important;
}

/* Cancel button */
.settings-cancel-btn {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(148, 163, 184, 0.85);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.625rem;
  padding: 0.45rem 1rem;
  font-size: 0.85rem;
  font-weight: 600;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s ease;
  backdrop-filter: blur(8px);
}

.settings-cancel-btn:hover {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.3);
  color: #fca5a5;
}

[data-theme="light"] .settings-cancel-btn {
  background: rgba(255, 255, 255, 0.7) !important;
  border-color: rgba(139, 92, 246, 0.2) !important;
  color: #7c6fcd !important;
}

[data-theme="light"] .settings-cancel-btn:hover {
  background: rgba(239, 68, 68, 0.08) !important;
  border-color: rgba(239, 68, 68, 0.25) !important;
  color: #dc2626 !important;
}

/* Divider */
.settings-glass-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.3) 40%, rgba(99, 102, 241, 0.3) 60%, transparent);
  margin: 1.25rem 0;
  position: relative;
  z-index: 1;
}

[data-theme="light"] .settings-glass-divider {
  background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.25) 40%, rgba(139, 92, 246, 0.2) 60%, transparent) !important;
}

/* Field labels */
.settings-field-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: #a5b4fc;
  margin-bottom: 0.45rem;
}

[data-theme="light"] .settings-field-label {
  color: #4f46e5 !important;
}

/* Field inputs & selects */
.settings-field-input,
.settings-field-select {
  width: 100%;
  padding: 0.85rem 1.1rem;
  border-radius: 0.875rem;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(139, 92, 246, 0.2);
  color: #f0f4ff;
  font-size: 1rem;
  font-family: inherit;
  outline: none;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.2);
  -webkit-appearance: none;
  appearance: none;
}

.settings-field-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%23a5b4fc' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
  cursor: pointer;
}

.settings-field-input:focus,
.settings-field-select:focus {
  border-color: rgba(139, 92, 246, 0.6);
  background: rgba(255, 255, 255, 0.09);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2), inset 0 1px 4px rgba(0, 0, 0, 0.1);
  transform: translateY(-1px);
}

[data-theme="light"] .settings-field-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%234338ca' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
}

[data-theme="light"] .settings-field-input::placeholder {
  color: #a5b4fc !important;
}

[data-theme="light"] .settings-field-input:focus,
[data-theme="light"] .settings-field-select:focus {
  border-color: rgba(99, 102, 241, 0.65) !important;
  background: #ffffff !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.18), 0 2px 12px rgba(99, 102, 241, 0.1) !important;
  transform: translateY(-1px) !important;
  color: #1a1040 !important;
}

[data-theme="light"] .settings-field-select option {
  background: #ede9f8 !important;
  color: #1a1040 !important;
}

/* Save button */
.settings-save-btn {
  width: 100%;
  padding: 1.05rem 1.5rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);
  background-size: 200% 200%;
  border: none;
  color: #ffffff;
  font-family: 'Outfit', sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  cursor: pointer;
  margin-top: 0.75rem;
  transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow:
    0 12px 36px rgba(99, 102, 241, 0.4),
    0 4px 14px rgba(139, 92, 246, 0.25),
    inset 0 1px 0 rgba(255, 255, 255, 0.2);
  position: relative;
  overflow: hidden;
  animation: btnGradientShift 4s ease infinite alternate;
}

.settings-save-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.16) 0%, rgba(255,255,255,0) 55%);
  border-radius: inherit;
  pointer-events: none;
}

.settings-save-btn:hover {
  transform: translateY(-2px) scale(1.015);
  box-shadow:
    0 20px 50px rgba(99, 102, 241, 0.55),
    0 8px 24px rgba(139, 92, 246, 0.35),
    inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.settings-save-btn:active {
  transform: translateY(0) scale(0.985);
}

[data-theme="light"] .settings-save-btn {
  background: linear-gradient(135deg, #5b56f0 0%, #8b5cf6 50%, #9333ea 100%) !important;
  box-shadow:
    0 10px 32px rgba(79, 70, 229, 0.45),
    0 4px 14px rgba(99, 102, 241, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.25) !important;
}

/* Scrollbar for settings glass card */
.settings-glass-card::-webkit-scrollbar { width: 4px; }
.settings-glass-card::-webkit-scrollbar-track { background: transparent; }
.settings-glass-card::-webkit-scrollbar-thumb { background: rgba(139,92,246,0.3); border-radius: 2px; }
.settings-glass-card::-webkit-scrollbar-thumb:hover { background: rgba(139,92,246,0.55); }

/* ═══════════════════════════════════════════════════════════════════════
   START / ONBOARDING BACKGROUND — background_start.webp
   Applied to: Welcome, Step1 (Personal Stats), Step2 (Health Profile),
               Step3 (Final Touches) — DARK MODE ONLY
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Dark mode: body base colour ── */
body.start-bg-active {
  background-color: transparent !important;
  background-image: none !important;
}

[data-theme="light"] body.start-bg-active,
[data-theme="light"] body {
  background-color: #f8fafc !important;
  background-image:
    radial-gradient(ellipse 130% 65% at 50% -5%, rgba(139,92,246,0.18) 0%, transparent 58%),
    radial-gradient(ellipse 80%  55% at 5%  85%, rgba(99,102,241,0.14) 0%, transparent 65%),
    radial-gradient(ellipse 70%  75% at 95% 25%, rgba(236,72,153,0.08) 0%, transparent 65%),
    linear-gradient(135deg, #ffffff 0%, #f1f5f9 50%, #e2e8f0 100%) !important;
  background-attachment: fixed !important;
  color: #0f172a !important;
}

/* ── Dark mode: full-viewport image — shown exactly as-is ── */
body.start-bg-active::before {
  display: none !important;
}

/* Mobile & Tablet Portrait Mode: dark start & onboarding section */
@media (max-width: 1024px) and (orientation: portrait), (max-width: 768px) {
  body.start-bg-active::before {
    display: none !important;
  }
}

/* ── Hide aurora orbs & particles — image is the hero ── */
body.start-bg-active .aurora-bg,
body.start-bg-active #particle-canvas {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ── Elevate all content above the image ── */
body.start-bg-active .app-container {
  position: relative;
  z-index: 10;
}

/* ── Light mode: do NOT apply this background ── */
[data-theme="light"] body.start-bg-active {
  background-color: transparent !important;
  background-image: none !important;
}

[data-theme="light"] body.start-bg-active::before {
  display: none !important;
}

[data-theme="light"] body.start-bg-active .aurora-bg,
[data-theme="light"] body.start-bg-active #particle-canvas {
  opacity: unset !important;
  pointer-events: unset !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   PREMIUM 4-STAT CARDS v2  —  Calories · Macros · Water · Progress
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Grid: 4 columns on desktop, 2 on tablet, 1 on mobile ── */
.stats-row-4 {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 2rem;
}
@media (max-width: 900px)  { .stats-row-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px)  { .stats-row-4 { grid-template-columns: 1fr; } }

/* ── Base card ── */
.stat-card-v2 {
  position: relative;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.35rem 2.75rem;
  border-radius: 1.4rem;
  background: rgba(6, 4, 22, 0.75);
  backdrop-filter: blur(40px) saturate(1.5);
  -webkit-backdrop-filter: blur(40px) saturate(1.5);
  border: 1px solid rgba(255,255,255,0.06);
  overflow: hidden;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275),
              box-shadow 0.3s ease;
}
.stat-card-v2:hover { transform: translateY(-5px) scale(1.015); }

/* ── Per-colour card borders & glow shadows ── */
.card-v2-pink   { border-color: rgba(236,72,153,0.32);  box-shadow: 0 0 0 1px rgba(236,72,153,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-indigo { border-color: rgba(168,85,247,0.32);  box-shadow: 0 0 0 1px rgba(168,85,247,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-cyan   { border-color: rgba(6,182,212,0.32);   box-shadow: 0 0 0 1px rgba(6,182,212,0.10),  0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }
.card-v2-emerald{ border-color: rgba(16,185,129,0.32);  box-shadow: 0 0 0 1px rgba(16,185,129,0.10), 0 10px 36px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.05); }

/* ── Content & Text ── */
.sv2-icon-box {
  width: 48px;
  height: 48px;
  border-radius: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,0.05);
  font-size: 1.25rem;
}
.sv2-content { flex: 1; }
.sv2-label { font-size: 0.75rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; color: #94a3b8; margin-bottom: 0.15rem; }
.sv2-number { font-size: 1.85rem; font-weight: 800; color: #f8fafc; font-family: 'Outfit', sans-serif; }

/* ── Light Mode Premium Stats ── */
[data-theme="light"] .stat-card-v2 {
  background: rgba(255, 255, 255, 0.7);
  border: 1px solid rgba(0,0,0,0.05);
  box-shadow: 0 4px 20px rgba(0,0,0,0.10) !important;
}
[data-theme="light"] .sv2-number-pink   { color: #db2777 !important; text-shadow: none !important; }
[data-theme="light"] .sv2-number-indigo { color: #7c3aed !important; text-shadow: none !important; }
[data-theme="light"] .sv2-number-cyan   { color: #0891b2 !important; text-shadow: none !important; }
[data-theme="light"] .sv2-number-emerald{ color: #059669 !important; text-shadow: none !important; }
[data-theme="light"] .sv2-label { color: #64748b !important; }

/* ── Disclaimer Modals Styling ── */
.disclaimer-content h2.disclaimer-title {
  color: #e2e8f0;
  margin-bottom: 1rem;
}
.disclaimer-content h2.alert-title {
  color: #f59e0b;
}
.disclaimer-content h2.info-title {
  color: #3b82f6;
}
.disclaimer-content p.disclaimer-text {
  color: #94a3b8;
  margin-bottom: 1.5rem;
  line-height: 1.6;
}

[data-theme="light"] .disclaimer-content h2.disclaimer-title {
  color: #1e293b;
}
[data-theme="light"] .disclaimer-content h2.alert-title {
  color: #d97706; /* darker orange */
}
[data-theme="light"] .disclaimer-content h2.info-title {
  color: #2563eb; /* darker blue */
}
[data-theme="light"] .disclaimer-content p.disclaimer-text {
  color: #475569;
}
[data-theme="light"] .disclaimer-close {
  background: #f1f5f9 !important;
  color: #0f172a !important;
  border: 1px solid #cbd5e1 !important;
}

/* ── Light Mode Overrides for Chat Window ── */
[data-theme="light"] .chat-window-panel {
  background: rgba(255, 255, 255, 0.96) !important;
  border-color: rgba(0, 0, 0, 0.1) !important;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15) !important;
}

[data-theme="light"] .chat-header {
  /* Keep the gradient header but ensure text is white */
  color: white !important;
}

[data-theme="light"] .chat-body {
  color: #1e293b !important;
}

[data-theme="light"] .bot-bubble {
  background: #f1f5f9 !important;
  border-color: rgba(0, 0, 0, 0.05) !important;
  color: #1e293b !important;
}

[data-theme="light"] .user-bubble {
  background: #6366f1 !important;
  color: white !important;
}

[data-theme="light"] .chat-footer {
  background: rgba(248, 250, 252, 0.9) !important;
  border-top-color: rgba(0, 0, 0, 0.1) !important;
}

[data-theme="light"] .chat-footer input {
  background: #ffffff !important;
  border-color: rgba(0, 0, 0, 0.15) !important;
  color: #0f172a !important;
}

[data-theme="light"] .chat-footer input::placeholder {
  color: #94a3b8 !important;
}

/* ── Light Mode Overrides for Extra Calories Logged Items ── */
[data-theme="light"] body.dashboard-bg-active .extra-cal-item.premium-glass-panel,
[data-theme="light"] .extra-cal-item.premium-glass-panel {
  background: rgba(255, 255, 255, 0.7) !important;
  border-color: rgba(0, 0, 0, 0.1) !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05) !important;
}
[data-theme="light"] body.dashboard-bg-active .extra-cal-item.premium-glass-panel:hover,
[data-theme="light"] .extra-cal-item.premium-glass-panel:hover {
  background: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(0, 0, 0, 0.15) !important;
}
[data-theme="light"] body.dashboard-bg-active .extra-cal-item-header strong,
[data-theme="light"] .extra-cal-item-header strong {
  color: #1e293b !important;
}
[data-theme="light"] body.dashboard-bg-active .extra-cal-feedback-text,
[data-theme="light"] .extra-cal-feedback-text {
  color: #475569 !important;
}
[data-theme="light"] body.dashboard-bg-active .extra-cal-val,
[data-theme="light"] .extra-cal-val {
  color: #ea580c !important; 
  background: rgba(234, 88, 12, 0.1) !important;
}

/* ==========================================================================
   COMPREHENSIVE RESPONSIVE DESIGN ENGINE (LAPTOP, TABLET & MOBILE)
   Breakpoints: 1920+, 1536, 1440, 1366, 1280, 1024, 992, 768, 600, 480, 430, 414, 390, 375, 360, 320
   ========================================================================== */

/* Prevent horizontal overflow across all viewports */
html, body {
  max-width: 100vw;
  overflow-x: hidden;
}

/* Ensure images & media scale proportionally */
img, svg, video, canvas {
  max-width: 100%;
  height: auto;
}

/* Strict enforcement for all hidden modals */
.hidden,
.modal-overlay.hidden,
.modal-overlay-fullscreen.hidden,
.mobile-menu-btn.hidden,
.app-header .mobile-menu-btn.hidden,
#mobile-menu-btn.hidden,
#modal-profile-settings.hidden,
#modal-daily-preference.hidden,
#modal-checkin.hidden,
#modal-prescription.hidden,
#modal-recipe.hidden,
#modal-general-precautions.hidden,
#modal-admin-inspect.hidden,
#modal-initial-disclaimer.hidden,
#modal-symptom-disclaimer.hidden,
#modal-generate-disclaimer.hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Touch target minimum size compliance across interactive elements */
button, input, select, textarea, a, .clickable-card {
  touch-action: manipulation;
}

/* --- Breakpoint 1: Ultra Large Desktop (1920px+) --- */
@media (min-width: 1920px) {
  .app-container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 2.5rem 2rem;
  }
}

/* --- Breakpoint 2: Large Desktop (1536px) --- */
@media (max-width: 1536px) {
  .app-container {
    max-width: 1280px;
  }
}

/* --- Breakpoint 3: Desktop (1440px) --- */
@media (max-width: 1440px) {
  .app-container {
    max-width: 1200px;
  }
}

/* --- Breakpoint 4 & 5: Laptops & Small Laptops (1366px & 1280px) --- */
@media (max-width: 1366px) {
  .app-container {
    max-width: 1140px;
    padding: 1.75rem 1.25rem;
  }
}

@media (max-width: 1280px) {
  .app-container {
    max-width: 1060px;
    padding: 1.5rem 1rem;
  }
  .app-header {
    margin-bottom: 2.5rem;
  }
}

/* --- Breakpoint 6 & 7: Tablet Landscape & Medium Tablets (1024px & 992px) --- */
@media (max-width: 1024px) {
  .app-container {
    max-width: 100%;
    padding: 1.25rem 1rem;
  }
  .dashboard-grid {
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  .stats-row-4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
  }
  .admin-stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 992px) {
  .auth-card {
    max-width: 720px;
  }
  .conditions-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  }
  .admin-controls-card {
    flex-wrap: wrap;
    gap: 1rem;
  }
}

/* --- Breakpoint 8: Tablet Portrait / Mobile Navigation Breakpoint (768px) --- */
@media (max-width: 768px) {
  .app-header {
    position: relative;
    padding: 0.75rem 1rem;
    margin-bottom: 1.75rem;
  }

  .mobile-menu-btn {
    display: flex !important;
  }

  .header-actions {
    display: none;
    position: absolute;
    top: calc(100% + 0.5rem);
    right: 0;
    left: 0;
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    padding: 1.25rem;
    background: rgba(10, 8, 28, 0.96);
    backdrop-filter: blur(28px);
    -webkit-backdrop-filter: blur(28px);
    border: 1px solid rgba(147, 51, 234, 0.3);
    border-radius: 1.25rem;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.7);
    z-index: 999;
    gap: 0.85rem;
  }

  .header-actions.mobile-open {
    display: flex !important;
    animation: slideDown 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
  }

  .header-actions .streak-badge,
  .header-actions .user-badge {
    width: 100%;
    justify-content: center;
    padding: 0.65rem;
  }

  .header-actions .btn-text {
    width: 100%;
    justify-content: center;
    min-height: 44px;
    padding: 0.65rem;
  }

  /* Auth Screen Stacking */
  .auth-card {
    grid-template-columns: 1fr;
    max-width: 480px;
    margin: 0 auto;
  }
  .auth-left-panel {
    border-right: none;
    border-bottom: 1px solid rgba(147, 51, 234, 0.2);
    padding: 1.75rem 1.25rem;
  }
  .auth-right-panel {
    padding: 1.75rem 1.25rem;
  }

  /* Grids & Cards */
  .grid-2col {
    grid-template-columns: 1fr !important;
  }
  .panel-card, .welcome-box {
    padding: 1.5rem 1.25rem;
  }
  .admin-table-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  /* Modals */
  .modal-box-card {
    width: 95vw;
    max-width: 95vw;
    max-height: 90vh;
    border-radius: 1.25rem;
  }
}

/* --- Breakpoint 9: Small Tablets & Phablets (600px) --- */
@media (max-width: 600px) {
  .stats-row-4 {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }
  .stat-card-v2 {
    padding: 1rem 1.15rem 2.25rem;
  }
  .sv2-number {
    font-size: 1.65rem;
  }
  .conditions-grid {
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
  }
  .admin-stats-grid {
    grid-template-columns: 1fr;
  }
  .recipe-modal-grid {
    grid-template-columns: 1fr !important;
  }
}

/* --- Breakpoint 10 & 11: Standard Mobile (480px & 430px) --- */
@media (max-width: 480px) {
  .app-container {
    padding: 1rem 0.75rem;
  }

  .logo {
    flex-basis: 148px;
    width: 148px;
    height: 48px;
  }

  .auth-welcome-heading {
    font-size: 1.45rem;
  }

  .auth-input-field {
    font-size: 0.95rem;
    padding-left: 2.5rem;
  }

  /* Ensure touch targets meet minimum 44px height */
  .btn-primary, .btn-secondary, .btn-accent, .btn-action, .auth-submit-btn, button[type='submit'] {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  /* Chatbot Widget Floating adjustment */
  .chatbot-container {
    right: 1rem;
    bottom: 1rem;
    z-index: 10000;
  }
  .chat-window-panel {
    position: fixed !important;
    left: 1rem !important;
    right: 1rem !important;
    width: auto !important;
    max-width: none !important;
    bottom: 4.75rem !important;
    height: min(500px, calc(100vh - 6rem)) !important;
    max-height: 80vh !important;
    border-radius: 1.25rem !important;
  }

  .conditions-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 480px) {
  .chatbot-container {
    right: 0.75rem;
    bottom: 0.75rem;
  }
  .chat-toggle-btn {
    width: 3.25rem;
    height: 3.25rem;
  }
  .chat-window-panel {
    position: fixed !important;
    left: 0.75rem !important;
    right: 0.75rem !important;
    width: auto !important;
    bottom: 4.5rem !important;
    height: min(480px, calc(100vh - 5.5rem)) !important;
    border-radius: 1rem !important;
  }
}

@media (max-width: 430px) {
  .auth-card {
    border-radius: 1.25rem;
  }
  .meal-item-row {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
  }
  .meal-actions-wrap {
    width: 100%;
    justify-content: flex-end;
  }
}

/* --- Breakpoint 12, 13 & 14: Mobile Standards (414px, 390px & 375px) --- */
@media (max-width: 414px) {
  .auth-left-panel, .auth-right-panel {
    padding: 1.25rem 1rem;
  }
  .stat-card-v2 {
    gap: 0.75rem;
  }
  .sv2-icon-ring {
    width: 2.75rem;
    height: 2.75rem;
  }
}

@media (max-width: 390px) {
  .app-header {
    padding: 0.6rem 0.85rem;
  }
  .logo {
    flex-basis: 132px;
    width: 132px;
    height: 44px;
  }
  .modal-box-card {
    padding: 1rem;
  }
}

@media (max-width: 375px) {
  .btn-text {
    font-size: 0.85rem;
  }
  .auth-field-label {
    font-size: 0.7rem;
  }
}

/* --- Breakpoint 15 & 16: Small Phones (360px & 320px) --- */
@media (max-width: 360px) {
  .app-container {
    padding: 0.75rem 0.5rem;
  }
  .panel-card, .welcome-box {
    padding: 1.15rem 0.85rem;
  }
  .sv2-number {
    font-size: 1.4rem;
  }
}

@media (max-width: 320px) {
  .app-header {
    padding: 0.5rem 0.65rem;
    border-radius: 1rem;
  }
  .logo {
    flex-basis: 116px;
    width: 116px;
    height: 40px;
  }
  .mobile-menu-btn {
    width: 38px;
    height: 38px;
    min-width: 38px;
    min-height: 38px;
  }
  .auth-card {
    border-radius: 1rem;
  }
  .auth-left-panel, .auth-right-panel {
    padding: 1rem 0.75rem;
  }
  .sv2-number {
    font-size: 1.25rem;
  }
}

/* Keyframe animations for menu slide-down */
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Light Theme Overrides for Mobile Menu */
[data-theme='light'] .header-actions.mobile-open {
  background: rgba(255, 255, 255, 0.98) !important;
  border-color: rgba(147, 51, 234, 0.2) !important;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15) !important;
}

#modal-profile-settings.hidden {
  display: none !important;
}

#modal-profile-settings.modal-overlay-fullscreen:not(.hidden) {
  z-index: 10000000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1.5rem 1rem !important;
  box-sizing: border-box !important;
}

/* Mobile Responsiveness for Profile Settings Modal Header */
@media (max-width: 768px) {
  #modal-profile-settings.modal-overlay-fullscreen:not(.hidden) {
    padding: 1rem 0.65rem !important;
    align-items: flex-start !important;
    overflow-y: auto !important;
  }

  .settings-glass-card {
    margin-top: 1rem !important;
    max-height: 92vh !important;
    padding: 1.35rem 1.15rem 1.5rem !important;
    border-radius: 1.35rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .settings-glass-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    margin-bottom: 1rem !important;
  }

  .settings-glass-title-group {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    flex: 1 !important;
    min-width: 0 !important;
  }

  .settings-glass-title {
    font-size: 1.35rem !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
  }

  .settings-glass-subtitle {
    font-size: 0.82rem !important;
    display: block !important;
    color: #94a3b8 !important;
    margin-top: 0.2rem !important;
    word-break: break-word !important;
  }

  .settings-cancel-btn {
    flex-shrink: 0 !important;
    min-height: 40px !important;
    padding: 0.45rem 0.85rem !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    border-radius: 0.75rem !important;
  }
}



/* Lock body scroll when modal is active */
body.modal-open {
  overflow: hidden !important;
  height: 100vh !important;
  touch-action: none !important;
  overscroll-behavior: contain !important;
}

/* Ensure ALL Modal Overlays sit ON TOP of app-header (z-index: 2000000) */
.modal-overlay,
.modal-overlay-fullscreen,
#modal-profile-settings,
#modal-recipe,
.modal-overlay:not(.hidden),
.modal-overlay-fullscreen:not(.hidden),
#modal-profile-settings:not(.hidden),
#modal-recipe:not(.hidden),
#modal-checkin:not(.hidden),
#modal-prescription:not(.hidden),
#modal-swap-meal:not(.hidden),
#modal-add-item:not(.hidden),
#modal-symptoms:not(.hidden),
#modal-daily-preference:not(.hidden),
#modal-general-precautions:not(.hidden),
#modal-admin-inspect:not(.hidden) {
  z-index: 2000000 !important;
}

/* Lower app-header z-index so modals always cover it */
.app-header {
  z-index: 1000 !important;
}

/* Ensure mobile header menu drawer remains high z-index ONLY when open and no modal is active */
.header-actions.mobile-open,
#header-user-actions.mobile-open {
  z-index: 99999 !important;
}

/* Settings Modal Responsive Fixes */
#modal-profile-settings.modal-overlay-fullscreen:not(.hidden) {
  align-items: flex-start !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 1.25rem 0.85rem 2rem !important;
}

@media (max-width: 768px) {
  #modal-profile-settings .settings-glass-card {
    margin-top: 0.5rem !important;
    margin-bottom: 2rem !important;
    padding: 1.35rem 1.15rem !important;
    border-radius: 1.25rem !important;
    max-height: none !important;
    width: 100% !important;
  }

  .settings-glass-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.5rem !important;
    margin-bottom: 1.25rem !important;
    position: relative !important;
    z-index: 2 !important;
  }

  .settings-glass-title {
    font-size: 1.2rem !important;
  }

  .settings-glass-subtitle {
    font-size: 0.75rem !important;
  }

  .settings-close-btn {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 0.5rem 1rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}

/* Strict enforcement for all hidden modals */
.hidden,
.modal-overlay.hidden,
.modal-overlay-fullscreen.hidden,
#modal-profile-settings.hidden,
#modal-daily-preference.hidden,
#modal-checkin.hidden,
#modal-prescription.hidden,
#modal-recipe.hidden,
#modal-general-precautions.hidden,
#modal-admin-inspect.hidden,
#modal-initial-disclaimer.hidden,
#modal-symptom-disclaimer.hidden,
#modal-generate-disclaimer.hidden {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

[data-theme='light'] .mobile-menu-btn {
  background: rgba(0, 0, 0, 0.04) !important;
  border-color: rgba(0, 0, 0, 0.1) !important;
  color: #1e293b !important;
}

#btn-pdf-disclaimer-proceed:disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  filter: grayscale(0.8) !important;
  pointer-events: none !important;
  box-shadow: none !important;
}

#btn-pdf-disclaimer-proceed:not(:disabled) {
  opacity: 1 !important;
  cursor: pointer !important;
  background: linear-gradient(135deg, #e11d48 0%, #be123c 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(225, 29, 72, 0.4) !important;
  pointer-events: auto !important;
}

#btn-pdf-disclaimer-proceed:not(:disabled):hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(225, 29, 72, 0.6) !important;
  background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%) !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

/* High-specificity Mobile Menu Button styling for Dark & Light modes */
.app-header .mobile-menu-btn,
.mobile-menu-btn {
  display: none;
  align-items: center;
  justify-content: center;
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  margin: 0 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  background: rgba(255, 255, 255, 0.08) !important;
  border: 1px solid rgba(168, 85, 247, 0.35) !important;
  border-radius: 0.85rem !important;
  color: #f8fafc !important;
  cursor: pointer !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255,255,255,0.1) !important;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
  z-index: 1001 !important;
}

.mobile-menu-btn:hover,
.mobile-menu-btn:focus-visible {
  background: rgba(168, 85, 247, 0.2) !important;
  border-color: rgba(168, 85, 247, 0.6) !important;
  box-shadow: 0 0 20px rgba(168, 85, 247, 0.4) !important;
  transform: translateY(-1px);
}

.mobile-menu-btn svg {
  width: 22px !important;
  height: 22px !important;
  stroke: #f8fafc !important;
  transition: stroke 0.25s ease, transform 0.25s ease !important;
}

/* Light Theme Overrides for Mobile Menu Button */
[data-theme="light"] .app-header .mobile-menu-btn,
[data-theme="light"] .mobile-menu-btn {
  background: rgba(255, 255, 255, 0.85) !important;
  border-color: rgba(99, 102, 241, 0.35) !important;
  color: #4338ca !important;
  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.15) !important;
}

[data-theme="light"] .mobile-menu-btn svg {
  stroke: #4338ca !important;
}

[data-theme="light"] .mobile-menu-btn:hover {
  background: rgba(255, 255, 255, 0.95) !important;
  border-color: rgba(99, 102, 241, 0.6) !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.25) !important;
}

/* Header Actions Mobile Overlay */
@media (max-width: 768px) {
  .app-header .mobile-menu-btn {
    display: flex !important;
  }

  .header-actions.mobile-open,
  #header-user-actions.mobile-open {
    display: flex !important;
    position: absolute !important;
    top: calc(100% + 0.5rem) !important;
    right: 0 !important;
    left: 0 !important;
    width: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 1.25rem !important;
    background: rgba(10, 8, 28, 0.96) !important;
    backdrop-filter: blur(32px) !important;
    -webkit-backdrop-filter: blur(32px) !important;
    border: 1px solid rgba(147, 51, 234, 0.35) !important;
    border-radius: 1.25rem !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8), 0 0 40px rgba(147, 51, 234, 0.15) !important;
    z-index: 1000 !important;
    gap: 0.85rem !important;
    animation: slideDown 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  }

  [data-theme="light"] .header-actions.mobile-open,
  [data-theme="light"] #header-user-actions.mobile-open {
    background: rgba(255, 255, 255, 0.98) !important;
    border-color: rgba(99, 102, 241, 0.25) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15) !important;
  }
}



/* PDF Generation A4 Desktop Layout Enforcer */
.prescription-document-sheet.force-pdf-render {
  width: 794px !important;
  max-width: 794px !important;
  min-width: 794px !important;
  padding: 32px !important;
  box-sizing: border-box !important;
  background: #ffffff !important;
  color: #0f172a !important;
}

.prescription-document-sheet.force-pdf-render .presc-meals-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
}

.prescription-document-sheet.force-pdf-render .patient-stats-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
}

.prescription-document-sheet.force-pdf-render .patient-medical-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}

.prescription-document-sheet.force-pdf-render .presc-bottom-layout {
  display: grid !important;
  grid-template-columns: 1.1fr 0.9fr !important;
  gap: 16px !important;
}



/* Responsive On-Screen Prescription Preview for Mobile Devices */
@media (max-width: 768px) {
  .prescription-paper-scroll {
    padding: 0.5rem 0.35rem !important;
    overflow-x: auto !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .prescription-document-sheet {
    width: 100% !important;
    max-width: 100% !important;
    padding: 1rem 0.75rem !important;
    box-sizing: border-box !important;
    border-radius: 0.75rem !important;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.25) !important;
    margin-bottom: 1rem !important;
    background: #ffffff !important;
    color: #0f172a !important;
    overflow: hidden !important;
    word-break: break-word !important;
  }

  .presc-logo-section {
    flex-direction: column !important;
    gap: 0.65rem !important;
    align-items: flex-start !important;
    width: 100% !important;
  }

  .presc-contact-block {
    text-align: left !important;
    width: 100% !important;
  }

  .hospital-title {
    font-size: 1.35rem !important;
    line-height: 1.1 !important;
  }

  .hospital-sub {
    font-size: 0.65rem !important;
  }

  .presc-disclaimer-box {
    font-size: 0.78rem !important;
    padding: 0.6rem 0.75rem !important;
    line-height: 1.4 !important;
    word-break: break-word !important;
  }

  .presc-rx-section {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.35rem !important;
    width: 100% !important;
  }

  .rx-symbol {
    font-size: 3rem !important;
    line-height: 1 !important;
  }

  .rx-document-title {
    text-align: left !important;
    width: 100% !important;
  }

  .patient-info-box {
    padding: 0.85rem 0.75rem !important;
    margin-bottom: 1.5rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .patient-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0.75rem 0.5rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .stat-group-lbl {
    font-size: 0.58rem !important;
  }

  .stat-group-val {
    font-size: 0.82rem !important;
    word-break: break-word !important;
  }

  .patient-medical-grid {
    grid-template-columns: 1fr !important;
    gap: 0.65rem !important;
    width: 100% !important;
  }

  .clinical-assessment-section {
    margin-bottom: 1.5rem !important;
  }

  .quote-txt {
    font-size: 0.88rem !important;
    line-height: 1.5 !important;
    word-break: break-word !important;
  }

  .presc-meals-grid {
    grid-template-columns: 1fr !important;
    gap: 0.85rem !important;
    width: 100% !important;
  }

  .presc-meal-col-card {
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .presc-food-row {
    gap: 0.65rem !important;
  }

  .presc-food-img {
    width: 54px !important;
    height: 54px !important;
  }

  .presc-food-name {
    font-size: 0.88rem !important;
  }

  .presc-regimen-header-row {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.5rem !important;
    width: 100% !important;
  }

  .presc-cals-badge {
    font-size: 0.8rem !important;
    padding: 0.35rem 0.65rem !important;
  }

  .presc-nine-items-card {
    padding: 0.85rem 0.65rem !important;
    margin-top: 1.25rem !important;
    overflow: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .presc-table-wrapper {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    display: block !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 0.6rem !important;
  }

  .presc-matrix-table {
    min-width: 520px !important;
    font-size: 0.75rem !important;
  }

  .presc-matrix-table th,
  .presc-matrix-table td {
    padding: 0.4rem 0.35rem !important;
    white-space: normal !important;
  }

  .presc-bottom-card {
    padding: 1rem 0.85rem !important;
  }
}

@media (max-width: 480px) {
  .patient-stats-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 0.5rem 0.35rem !important;
  }
  .stat-group-val {
    font-size: 0.78rem !important;
  }
}

/* Force PDF Render overrides (applied ONLY during html2canvas PDF download) */
.force-pdf-render,
.presc-page-sheet.force-pdf-render,
.prescription-document-sheet.force-pdf-render {
  width: 794px !important;
  max-width: 794px !important;
  min-width: 794px !important;
  padding: 24px 28px !important;
  box-sizing: border-box !important;
  background: #ffffff !important;
  color: #0f172a !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  margin-bottom: 0 !important;
}

.force-pdf-render .presc-logo-section,
.presc-page-sheet.force-pdf-render .presc-logo-section {
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  /* Match the supplied A4 header reference: 28px left / 33px top content origin. */
  transform: translate(9px, 9px) !important;
}

.force-pdf-render .presc-contact-block,
.presc-page-sheet.force-pdf-render .presc-contact-block {
  text-align: right !important;
}

.force-pdf-render .hospital-title,
.presc-page-sheet.force-pdf-render .hospital-title {
  font-size: 2rem !important;
}

.force-pdf-render .patient-stats-grid,
.presc-page-sheet.force-pdf-render .patient-stats-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;
}

.force-pdf-render .patient-medical-grid,
.presc-page-sheet.force-pdf-render .patient-medical-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 16px !important;
}

.force-pdf-render .presc-meals-grid,
.presc-page-sheet.force-pdf-render .presc-meals-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 12px !important;
}

.force-pdf-render .presc-regimen-header-row,
.presc-page-sheet.force-pdf-render .presc-regimen-header-row {
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: center !important;
}

.force-pdf-render .presc-bottom-layout,
.presc-page-sheet.force-pdf-render .presc-bottom-layout {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.force-pdf-render .presc-nine-items-card,
.presc-page-sheet.force-pdf-render .presc-nine-items-card {
  padding: 1rem 1.15rem !important;
  margin-bottom: 0.85rem !important;
  overflow: visible !important;
}

.force-pdf-render .presc-table-wrapper,
.presc-page-sheet.force-pdf-render .presc-table-wrapper {
  overflow-x: visible !important;
  overflow: visible !important;
  width: 100% !important;
  display: block !important;
  border: none !important;
  box-shadow: none !important;
  margin-top: 0.5rem !important;
  margin-bottom: 0.35rem !important;
}

.force-pdf-render .presc-matrix-table,
.presc-page-sheet.force-pdf-render .presc-matrix-table {
  min-width: 100% !important;
  width: 100% !important;
  font-size: 0.78rem !important;
}

.force-pdf-render .presc-matrix-table th,
.presc-page-sheet.force-pdf-render .presc-matrix-table th {
  white-space: normal !important;
  padding: 0.4rem 0.55rem !important;
  font-size: 0.78rem !important;
}

.force-pdf-render .presc-matrix-table td,
.presc-page-sheet.force-pdf-render .presc-matrix-table td {
  padding: 0.38rem 0.55rem !important;
  font-size: 0.78rem !important;
}

.force-pdf-render .presc-bottom-card,
.presc-page-sheet.force-pdf-render .presc-bottom-card {
  padding: 1rem 1.15rem !important;
  margin-bottom: 0.85rem !important;
}

.force-pdf-render .presc-bullets-list,
.presc-page-sheet.force-pdf-render .presc-bullets-list {
  gap: 0.55rem !important;
}

.force-pdf-render .warn-alert-box,
.presc-page-sheet.force-pdf-render .warn-alert-box {
  padding: 0.95rem 1.15rem !important;
}

.force-pdf-render .presc-page-footer-strip,
.presc-page-sheet.force-pdf-render .presc-page-footer-strip {
  margin-top: 1.25rem !important;
}



/* ==========================================================================
   ULTRA GOATED FLOATING MOBILE MENU DRAWER (FIXED Z-INDEX & PERFECT STACKING)
   ========================================================================== */

@media (max-width: 768px) {
  .app-header {
    position: relative !important;
    z-index: 9999 !important;
  }

  .app-header .mobile-menu-btn {
    display: flex !important;
  }

  /* Fixed Floating Mobile Menu Drawer */
  .header-actions.mobile-open,
  #header-user-actions.mobile-open {
    display: flex !important;
    position: fixed !important;
    top: 5.25rem !important;
    left: 1rem !important;
    right: 1rem !important;
    width: auto !important;
    max-width: 440px !important;
    margin: 0 auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
    padding: 1.35rem 1.25rem !important;
    background: rgba(10, 8, 28, 0.96) !important;
    backdrop-filter: blur(36px) saturate(1.8) !important;
    -webkit-backdrop-filter: blur(36px) saturate(1.8) !important;
    border: 1.5px solid rgba(168, 85, 247, 0.45) !important;
    border-radius: 1.5rem !important;
    box-shadow: 
      0 30px 90px rgba(0, 0, 0, 0.9),
      0 0 50px rgba(147, 51, 234, 0.25),
      inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
    z-index: 999999 !important;
    gap: 0.85rem !important;
    animation: goatedMenuSlide 0.3s cubic-bezier(0.16, 1, 0.3, 1) forwards !important;
  }

  /* User Info Card inside Mobile Drawer */
  .header-actions.mobile-open .user-badge {
    width: 100% !important;
    justify-content: flex-start !important;
    padding: 0.75rem 1rem !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 1rem !important;
    gap: 0.85rem !important;
    box-sizing: border-box !important;
  }

  .header-actions.mobile-open .user-badge .username-txt {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: #f8fafc !important;
  }
  
  #btn-pdf-disclaimer-proceed:not(:disabled):hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 20px rgba(225, 29, 72, 0.6) !important;
    background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%) !important;
    cursor: pointer !important;
    pointer-events: auto !important;
  }

  /* Streak Badge inside Mobile Drawer */
  .header-actions.mobile-open .streak-badge {
    width: 100% !important;
    justify-content: flex-start !important;
    padding: 0.75rem 1rem !important;
    background: rgba(249, 115, 22, 0.12) !important;
    border: 1px solid rgba(249, 115, 22, 0.35) !important;
    border-radius: 1rem !important;
    box-sizing: border-box !important;
  }

  .header-actions.mobile-open .streak-badge span {
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #fdba74 !important;
  }

  /* Profile Settings Button inside Mobile Drawer */
  .header-actions.mobile-open #btn-profile-settings {
    width: 100% !important;
    height: 48px !important;
    min-height: 48px !important;
    justify-content: center !important;
    gap: 0.65rem !important;
    padding: 0 1rem !important;
    background: rgba(139, 92, 246, 0.15) !important;
    border: 1px solid rgba(168, 85, 247, 0.4) !important;
    border-radius: 1rem !important;
    color: #f8fafc !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
    box-sizing: border-box !important;
    transition: all 0.2s ease !important;
  }

  .header-actions.mobile-open #btn-profile-settings::after {
    content: "Profile Settings" !important;
    font-size: 0.95rem !important;
    font-weight: 600 !important;
  }

  .header-actions.mobile-open #btn-profile-settings:hover {
    background: rgba(139, 92, 246, 0.3) !important;
    border-color: rgba(168, 85, 247, 0.7) !important;
  }

  /* Logout Button inside Mobile Drawer */
  .header-actions.mobile-open #btn-logout {
    width: 100% !important;
    height: 48px !important;
    min-height: 48px !important;
    justify-content: center !important;
    padding: 0 1rem !important;
    background: linear-gradient(135deg, #e11d48 0%, #be123c 100%) !important;
    border: 1px solid rgba(244, 63, 94, 0.4) !important;
    border-radius: 1rem !important;
    color: #ffffff !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    box-shadow: 0 8px 25px rgba(225, 29, 72, 0.35) !important;
    box-sizing: border-box !important;
    transition: all 0.2s ease !important;
  }

  .header-actions.mobile-open #btn-logout:hover {
    background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%) !important;
    box-shadow: 0 10px 30px rgba(225, 29, 72, 0.5) !important;
  }

  /* Light Theme Mobile Drawer Overrides */
  [data-theme="light"] .header-actions.mobile-open,
  [data-theme="light"] #header-user-actions.mobile-open {
    background: rgba(255, 255, 255, 0.98) !important;
    border-color: rgba(99, 102, 241, 0.35) !important;
    box-shadow: 
      0 25px 70px rgba(79, 70, 229, 0.22),
      0 0 30px rgba(99, 102, 241, 0.12) !important;
  }

  [data-theme="light"] .header-actions.mobile-open .user-badge {
    background: rgba(241, 245, 249, 0.8) !important;
    border-color: rgba(99, 102, 241, 0.18) !important;
  }

  [data-theme="light"] .header-actions.mobile-open .user-badge .username-txt {
    color: #1e293b !important;
  }

  [data-theme="light"] .header-actions.mobile-open #btn-profile-settings {
    background: rgba(99, 102, 241, 0.08) !important;
    border-color: rgba(99, 102, 241, 0.25) !important;
    color: #4338ca !important;
  }
}

@keyframes goatedMenuSlide {
  from {
    opacity: 0;
    transform: translateY(-12px) scale(0.96);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}



/* ==========================================================================
   MODAL Z-INDEX & OVERLAY FIX (MUST BE ABOVE APP-HEADER & MOBILE DRAWER)
   ========================================================================== */

.modal-overlay,
.modal-overlay-fullscreen,
#modal-profile-settings,
#modal-prescription,
#modal-recipe,
#modal-general-precautions {
  z-index: 10000000 !important;
  position: fixed !important;
  inset: 0 !important;
}

.modal-overlay:not(.hidden),
.modal-overlay-fullscreen:not(.hidden),
#modal-profile-settings:not(.hidden),
#modal-prescription:not(.hidden),
#modal-recipe:not(.hidden),
#modal-general-precautions:not(.hidden),
#modal-daily-preference:not(.hidden),
#modal-checkin:not(.hidden),
#modal-admin-inspect:not(.hidden) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 10000000 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Medical & Precaution Disclaimers sit ON TOP of all other modals */
#modal-initial-disclaimer:not(.hidden),
#modal-symptom-disclaimer:not(.hidden),
#modal-generate-disclaimer:not(.hidden) {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 30000000 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

#modal-profile-settings.modal-overlay-fullscreen {
  z-index: 10000000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 1.5rem 1rem !important;
  box-sizing: border-box !important;
}

/* Mobile Responsiveness for Profile Settings Modal Header */
@media (max-width: 768px) {
  #modal-profile-settings.modal-overlay-fullscreen {
    padding: 1rem 0.65rem !important;
    align-items: flex-start !important;
    overflow-y: auto !important;
  }

  .settings-glass-card {
    margin-top: 1rem !important;
    max-height: 92vh !important;
    padding: 1.35rem 1.15rem 1.5rem !important;
    border-radius: 1.35rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  .settings-glass-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 0.75rem !important;
    margin-bottom: 1rem !important;
  }

  .settings-glass-title-group {
    display: flex !important;
    align-items: center !important;
    gap: 0.75rem !important;
    flex: 1 !important;
    min-width: 0 !important;
  }

  .settings-glass-title {
    font-size: 1.35rem !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
  }

  .settings-glass-subtitle {
    font-size: 0.82rem !important;
    display: block !important;
    color: #94a3b8 !important;
    margin-top: 0.2rem !important;
    word-break: break-word !important;
  }

  .settings-cancel-btn {
    flex-shrink: 0 !important;
    min-height: 40px !important;
    padding: 0.45rem 0.85rem !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    border-radius: 0.75rem !important;
  }
}



/* Lock body scroll when modal is active */
body.modal-open {
  overflow: hidden !important;
  height: 100vh !important;
  touch-action: none !important;
  overscroll-behavior: contain !important;
}

/* Ensure ALL Modal Overlays sit ON TOP of app-header (z-index: 2000000) */
.modal-overlay,
.modal-overlay-fullscreen,
#modal-profile-settings,
#modal-recipe,
#modal-checkin,
#modal-prescription,
#modal-swap-meal,
#modal-add-item,
#modal-symptoms,
#modal-daily-preference,
#modal-general-precautions,
#modal-admin-inspect {
  z-index: 2000000 !important;
}

/* Lower app-header z-index so modals always cover it */
.app-header {
  z-index: 1000 !important;
}

/* Ensure mobile header menu drawer remains high z-index ONLY when open and no modal is active */
.header-actions.mobile-open,
#header-user-actions.mobile-open {
  z-index: 99999 !important;
}

/* Settings Modal Responsive Fixes */
#modal-profile-settings.modal-overlay-fullscreen {
  align-items: flex-start !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  padding: 1.25rem 0.85rem 2rem !important;
}

@media (max-width: 768px) {
  #modal-profile-settings .settings-glass-card {
    margin-top: 0.5rem !important;
    margin-bottom: 2rem !important;
    padding: 1.35rem 1.15rem !important;
    border-radius: 1.25rem !important;
    max-height: none !important;
    width: 100% !important;
  }

  .settings-glass-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.5rem !important;
    margin-bottom: 1.25rem !important;
    position: relative !important;
    z-index: 2 !important;
  }

  .settings-glass-title {
    font-size: 1.2rem !important;
  }

  .settings-glass-subtitle {
    font-size: 0.75rem !important;
  }

  .settings-close-btn {
    min-height: 44px !important;
    min-width: 44px !important;
    padding: 0.5rem 1rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
}



/* Global Light Theme Master Override */
html[data-theme="light"],
html[data-theme="light"] body,
html[data-theme="light"] body.start-bg-active {
  background-color: #f8fafc !important;
  background-image: linear-gradient(135deg, #ffffff 0%, #f1f5f9 50%, #e2e8f0 100%) !important;
  color: #0f172a !important;
}

html[data-theme="light"] body.auth-bg-active {
  background-color: transparent !important;
  background-image: none !important;
  color: #0f172a !important;
}

/* ═══════════════════════════════════════════════════════════════════════
   MEDICAL DISCLAIMER & CAUTION MODAL STYLES (DARK & LIGHT SYNCED)
   ═══════════════════════════════════════════════════════════════════════ */
#modal-pdf-disclaimer .pdf-disclaimer-card {
  max-width: 520px;
  margin: 3rem auto;
  padding: 2rem;
  border-radius: 1.25rem;
  background: rgba(15, 23, 42, 0.94) !important;
  backdrop-filter: blur(24px) !important;
  -webkit-backdrop-filter: blur(24px) !important;
  border: 1px solid rgba(244, 63, 94, 0.3) !important;
  color: #f1f5f9 !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.6) !important;
}

[data-theme="light"] #modal-pdf-disclaimer .pdf-disclaimer-card {
  background: rgba(255, 255, 255, 0.98) !important;
  color: #0f172a !important;
  border: 1px solid rgba(225, 29, 72, 0.25) !important;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15) !important;
}

#modal-pdf-disclaimer .pdf-disclaimer-header {
  border-bottom: 1px solid rgba(244, 63, 94, 0.2);
  padding-bottom: 1rem;
  margin-bottom: 1.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: none;
}

#modal-pdf-disclaimer .pdf-disclaimer-title {
  color: #f43f5e !important;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  margin: 0;
  font-size: 1.35rem;
  font-weight: 700;
}

[data-theme="light"] #modal-pdf-disclaimer .pdf-disclaimer-title {
  color: #e11d48 !important;
}

#modal-pdf-disclaimer .pdf-disclaimer-close-btn {
  background: none;
  border: none;
  color: #94a3b8;
  cursor: pointer;
  padding: 0.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}

#modal-pdf-disclaimer .pdf-disclaimer-close-btn:hover {
  color: #f43f5e;
}

#modal-pdf-disclaimer .pdf-disclaimer-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

#modal-pdf-disclaimer .pdf-disclaimer-warning-box {
  background: rgba(244, 63, 94, 0.12);
  border-left: 4px solid #f43f5e;
  padding: 1rem 1.15rem;
  border-radius: 0.75rem;
  color: #fecdd3 !important;
  font-size: 0.92rem;
  line-height: 1.55;
}

[data-theme="light"] #modal-pdf-disclaimer .pdf-disclaimer-warning-box {
  background: rgba(225, 29, 72, 0.06) !important;
  border-left: 4px solid #e11d48 !important;
  color: #9f1239 !important;
}

#modal-pdf-disclaimer .pdf-disclaimer-list {
  margin: 0;
  padding-left: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  font-size: 0.9rem;
  color: #cbd5e1 !important;
  line-height: 1.5;
}

[data-theme="light"] #modal-pdf-disclaimer .pdf-disclaimer-list {
  color: #475569 !important;
}

#modal-pdf-disclaimer .pdf-disclaimer-agree-wrapper {
  background: rgba(99, 102, 241, 0.14);
  border: 1px solid rgba(129, 140, 248, 0.3);
  padding: 0.85rem 1rem;
  border-radius: 0.75rem;
  margin-top: 0.25rem;
}

[data-theme="light"] #modal-pdf-disclaimer .pdf-disclaimer-agree-wrapper {
  background: rgba(99, 102, 241, 0.06) !important;
  border: 1px solid rgba(99, 102, 241, 0.2) !important;
}

#modal-pdf-disclaimer .pdf-disclaimer-agree-label {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  cursor: pointer;
  user-select: none;
  font-size: 0.88rem;
  line-height: 1.45;
  font-weight: 500;
  color: #f8fafc !important;
}

[data-theme="light"] #modal-pdf-disclaimer .pdf-disclaimer-agree-label {
  color: #0f172a !important;
}

#modal-pdf-disclaimer .pdf-disclaimer-checkbox {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: #f43f5e;
  cursor: pointer;
}

#modal-pdf-disclaimer .pdf-disclaimer-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  align-items: center;
}

#modal-pdf-disclaimer .pdf-disclaimer-cancel-btn {
  padding: 0.65rem 1.25rem;
  border-radius: 0.65rem;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.08) !important;
  color: #cbd5e1 !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

[data-theme="light"] #modal-pdf-disclaimer .pdf-disclaimer-cancel-btn {
  background: #f1f5f9 !important;
  color: #475569 !important;
  border: 1px solid #cbd5e1 !important;
}

#btn-pdf-disclaimer-proceed:disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  filter: grayscale(0.8) !important;
  pointer-events: none !important;
  box-shadow: none !important;
}

#btn-pdf-disclaimer-proceed:not(:disabled) {
  opacity: 1 !important;
  cursor: pointer !important;
  background: linear-gradient(135deg, #e11d48 0%, #be123c 100%) !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(225, 29, 72, 0.4) !important;
}

#btn-pdf-disclaimer-proceed:not(:disabled):hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(225, 29, 72, 0.6) !important;
  background: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%) !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}
.ps-card > * { position: relative; z-index: 1; }
.ps-card:hover {
  border-color: rgba(168,85,247,0.52);
  box-shadow: 0 8px 36px rgba(0,0,0,0.42), 0 0 0 1px rgba(168,85,247,0.12), inset 0 1px 0 rgba(255,255,255,0.09);
}
.ps-cards .ps-card:nth-child(1) { animation-delay: 0.05s; }
.ps-cards .ps-card:nth-child(2) { animation-delay: 0.11s; }
.ps-cards .ps-card:nth-child(3) { animation-delay: 0.17s; }
.ps-cards .ps-card:nth-child(4) { animation-delay: 0.22s; }
.ps-cards .ps-card:nth-child(5) { animation-delay: 0.28s; }

/* Card label (small caps) */
.ps-card-label {
  display: flex;
  align-items: center;
  gap: 0.38rem;
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.32);
  margin-bottom: 0.65rem;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   NAME CARD
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ps-card-name { padding: 1rem 1.1rem; }
.ps-name-field-wrap {
  background: rgba(139,92,246,0.07);
  border: 1px solid rgba(139,92,246,0.22);
  border-radius: 0.85rem;
  padding: 0.75rem 1rem;
  transition: border-color 0.22s, box-shadow 0.22s;
}
.ps-name-field-wrap:focus-within {
  border-color: rgba(168,85,247,0.65);
  box-shadow: 0 0 0 3px rgba(168,85,247,0.1), 0 0 18px rgba(168,85,247,0.14);
}
.ps-name-input {
  width: 100%;
  background: transparent;
  border: none;
  outline: none;
  color: rgba(255,255,255,0.92);
  font-size: 1.05rem;
  font-weight: 600;
  font-family: inherit;
  caret-color: #a855f7;
}
.ps-name-input::placeholder { color: rgba(255,255,255,0.2); font-weight: 400; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   AGE CARD
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ps-age-toprow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.15rem;
}
.ps-age-toprow .ps-card-label { margin-bottom: 0; }
.ps-age-hint {
  font-size: 0.66rem;
  color: rgba(255,255,255,0.24);
  font-style: italic;
  white-space: nowrap;
}
/* Arc container â€” SVG + overlaid center input */
.ps-age-arc-box {
  position: relative;
  display: flex;
  justify-content: center;
  margin: 0.2rem 0 0;
}
.ps-age-svg {
  display: block;
  filter: drop-shadow(0 0 10px rgba(139,92,246,0.22));
}
/* Absolutely centered number â€” click to edit */
.ps-age-center {
  position: absolute;
  left: 50%;
  top: 52px; /* arc visual center = (108 - 95/2)px â‰ˆ 60px, adjusted for display */
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  z-index: 5;
}
/* The big editable number â€” looks like display text but IS an input */
.ps-age-num-input {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  outline: none;
  color: #fff;
  font-size: 2.9rem;
  font-weight: 900;
  text-align: center;
  width: 92px;
  caret-color: #a855f7;
  letter-spacing: -0.05em;
  line-height: 1;
  transition: border-bottom-color 0.2s;
  -moz-appearance: textfield;
  cursor: pointer;
  text-shadow: 0 0 24px rgba(168,85,247,0.52);
  font-family: inherit;
}
.ps-age-num-input::-webkit-inner-spin-button,
.ps-age-num-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.ps-age-num-input:focus {
  border-bottom-color: rgba(168,85,247,0.55);
  cursor: text;
}
.ps-age-yrs {
  font-size: 0.64rem;
  font-weight: 700;
  color: #a855f7;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  pointer-events: none;
  margin-top: 1px;
}
/* Invisible range slider â€” draggable over arc bottom */
.ps-age-range-slider {
  position: absolute;
  bottom: 6px;
  left: 50%;
  transform: translateX(-50%);
  width: 210px;
  height: 46px;
  opacity: 0;
  cursor: ew-resize;
  z-index: 10;
  margin: 0;
  -webkit-appearance: none;
}
.ps-age-minmax {
  display: flex;
  justify-content: space-between;
  padding: 0.18rem 0.5rem 0;
}
.ps-age-minmax span {
  font-size: 0.67rem;
  color: rgba(255,255,255,0.2);
  font-weight: 500;
}

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   GENDER CARD
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ps-card-gender { padding: 1rem 1.1rem 0.9rem; }
.ps-gender-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.6rem;
}
.ps-gender-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  padding: 0.72rem 1rem;
  border-radius: 0.85rem;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
  font-family: inherit;
  border: 1px solid rgba(255,255,255,0.1);
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.42);
  transition: all 0.22s;
}
.ps-gender-btn .ps-check-icon { display: none; }
.ps-gender-active {
  background: linear-gradient(135deg, rgba(139,92,246,0.26), rgba(168,85,247,0.16));
  border-color: rgba(168,85,247,0.68);
  color: #fff;
  box-shadow: 0 0 14px rgba(168,85,247,0.22), inset 0 1px 0 rgba(255,255,255,0.08);
}
.ps-gender-active .ps-check-icon { display: inline; }
.ps-gender-btn:hover:not(.ps-gender-active) {
  background: rgba(255,255,255,0.07);
  border-color: rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.72);
}
.ps-hidden-select { display: none !important; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   WEIGHT CARD
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ps-card-weight { padding: 0.9rem 1.1rem; }
.ps-weight-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.65rem;
}
.ps-weight-top .ps-card-label { margin-bottom: 0; }
.ps-weight-stepper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.25rem;
}
.ps-step-btn {
  width: 40px; height: 40px;
  border-radius: 50%;
  border: 1.5px solid rgba(139,92,246,0.42);
  background: rgba(139,92,246,0.1);
  color: #c4b5fd;
  font-size: 1.4rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  transition: all 0.18s;
  font-family: inherit;
  flex-shrink: 0;
}
.ps-step-btn:hover {
  background: rgba(139,92,246,0.28);
  border-color: rgba(168,85,247,0.8);
  transform: scale(1.1);
  box-shadow: 0 0 14px rgba(168,85,247,0.32);
}
.ps-step-btn:active { transform: scale(0.9); }
.ps-weight-input {
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-size: 2.1rem;
  font-weight: 900;
  font-family: inherit;
  text-align: center;
  width: 85px;
  caret-color: #a855f7;
  letter-spacing: -0.03em;
  text-shadow: 0 0 20px rgba(168,85,247,0.3);
  -moz-appearance: textfield;
}
.ps-weight-input::-webkit-inner-spin-button,
.ps-weight-input::-webkit-outer-spin-button { -webkit-appearance: none; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   HEIGHT CARD â€” Scrolling Ruler
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ps-card-height { padding: 0.9rem 1.1rem 1rem; }
.ps-height-toprow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.85rem;
}
.ps-height-hint {
  font-size: 0.66rem;
  color: rgba(255,255,255,0.24);
  font-style: italic;
}
.ps-height-body {
  display: flex;
  gap: 1.1rem;
  align-items: center;
}

/* â”€â”€ Ruler outer: position:relative, NO overflow clip (for pill) */
.ps-ruler-outer {
  position: relative;
  flex-shrink: 0;
  cursor: ns-resize;
  user-select: none;
  -webkit-user-select: none;
}
/* â”€â”€ Ruler clip: clips the scrolling ticks */
.ps-ruler-clip {
  width: 60px;
  height: 210px;
  overflow: hidden;
  border-radius: 0.65rem;
  background: rgba(255,255,255,0.02);
  border: 1px solid rgba(139,92,246,0.2);
  position: relative;
}
/* â”€â”€ The scrolling track â€” contains all ticks, moved via translateY */
.ps-ruler-track {
  position: absolute;
  top: 0; left: 0; right: 0;
  will-change: transform;
  transition: transform 0.12s cubic-bezier(0.25,1,0.5,1);
}
/* â”€â”€ Individual tick rows â”€â”€ */
.ps-tick-row {
  position: absolute;
  left: 0; right: 0;
  height: 1px;
  display: flex;
  align-items: center;
}
.ps-tick-mark {
  flex-shrink: 0;
  height: 1px;
  background: rgba(255,255,255,0.18);
  border-radius: 1px;
  transition: background 0.15s, box-shadow 0.15s;
}
.ps-tick-row.major .ps-tick-mark {
  width: 34px;
  height: 1.5px;
  background: rgba(255,255,255,0.48);
}
.ps-tick-row.mid .ps-tick-mark {
  width: 22px;
  background: rgba(255,255,255,0.28);
}
.ps-tick-row.minor .ps-tick-mark { width: 10px; }
.ps-tick-label {
  font-size: 0.56rem;
  color: rgba(255,255,255,0.36);
  font-weight: 600;
  padding-left: 3px;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: -0.03em;
}
/* Active tick (at current value) */
.ps-tick-row.ps-tick-active .ps-tick-mark {
  background: rgba(168,85,247,0.85) !important;
  box-shadow: 0 0 6px rgba(168,85,247,0.7);
}
/* â”€â”€ Fixed center line (NOT inside clip, so it doesn't scroll) */
.ps-ruler-center-line {
  position: absolute;
  left: -1px; right: -1px;
  top: calc(50% - 1px);
  height: 2px;
  background: linear-gradient(90deg, #a855f7, rgba(99,102,241,0.55));
  box-shadow: 0 0 10px rgba(168,85,247,0.85), 0 0 20px rgba(168,85,247,0.3);
  border-radius: 1px;
  pointer-events: none;
  z-index: 10;
}
/* â”€â”€ Pill label: extends RIGHT of ruler-outer (overflow: visible works here) */
.ps-ruler-pill {
  position: absolute;
  left: calc(100% + 9px);
  top: 50%;
  transform: translateY(-50%);
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 800;
  padding: 0.22rem 0.58rem;
  border-radius: 5px;
  white-space: nowrap;
  box-shadow: 0 2px 12px rgba(168,85,247,0.55);
  pointer-events: none;
  letter-spacing: 0.02em;
  display: block;
}

/* â”€â”€ Height controls (right side) â”€â”€ */
.ps-height-controls {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  min-width: 0;
}
.ps-height-enter-label {
  font-size: 0.8rem;
  color: rgba(255,255,255,0.38);
  font-weight: 500;
  margin: 0;
}
.ps-height-input-row {
  display: flex;
  align-items: center;
  background: rgba(255,255,255,0.04);
  border: 1.5px solid rgba(139,92,246,0.32);
  border-radius: 0.85rem;
  padding: 0.48rem 0.85rem;
  gap: 0.35rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}
.ps-height-input-row:focus-within {
  border-color: rgba(168,85,247,0.65);
  box-shadow: 0 0 0 3px rgba(168,85,247,0.1), 0 0 16px rgba(168,85,247,0.15);
}
.ps-height-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-size: 2rem;
  font-weight: 900;
  font-family: inherit;
  min-width: 0;
  width: 70px;
  caret-color: #a855f7;
  letter-spacing: -0.04em;
  text-shadow: 0 0 18px rgba(168,85,247,0.28);
  -moz-appearance: textfield;
}
.ps-height-input::-webkit-inner-spin-button,
.ps-height-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.ps-height-unit {
  font-size: 0.82rem;
  font-weight: 700;
  color: #a78bfa;
  letter-spacing: 0.05em;
  flex-shrink: 0;
}
.ps-height-tip-box {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  background: rgba(255,255,255,0.025);
  border: 1px solid rgba(255,255,255,0.055);
  border-radius: 0.65rem;
  padding: 0.52rem 0.68rem;
}
.ps-height-tip-box svg { color: rgba(255,255,255,0.28); flex-shrink: 0; margin-top: 1px; }
.ps-height-tip-box p { margin: 0; font-size: 0.67rem; line-height: 1.5; color: rgba(255,255,255,0.38); }
.ps-height-tip-box strong { color: rgba(255,255,255,0.62); font-weight: 700; }

/* â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•
   NEXT BUTTON
   â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â•â• */
.ps-next-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin: 1rem 1rem 0;
  padding: 1.05rem 1.5rem;
  border-radius: 9999px;
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 50%, #6366f1 100%);
  color: #fff;
  font-size: 1rem;
  font-weight: 800;
  font-family: inherit;
  cursor: pointer;
  border: none;
  box-shadow: 0 4px 24px rgba(139,92,246,0.45), 0 0 40px rgba(168,85,247,0.18);
  transition: transform 0.22s, box-shadow 0.22s, opacity 0.22s;
  position: relative;
  overflow: hidden;
  animation: staggerFadeUp 0.52s cubic-bezier(0.16,1,0.3,1) 0.3s both;
}
.ps-next-btn::before {
  content: '';
  position: absolute; inset: 0;
  border-radius: inherit;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.14) 50%, transparent 60%);
  background-size: 250% 100%;
  animation: shimmer 2.5s linear infinite;
  pointer-events: none;
}
.ps-next-btn:not(:disabled):hover {
  transform: translateY(-2px) scale(1.02);
  box-shadow: 0 8px 32px rgba(139,92,246,0.6), 0 0 60px rgba(168,85,247,0.28);
}
.ps-next-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
  box-shadow: none;
}
.ps-next-btn:disabled::before { display: none; }
.ps-spin { animation: spin 0.9s linear infinite; }

/* â”€â”€ Light mode overrides â”€â”€ */
[data-theme="light"] .ps-card {
  background: rgba(255,255,255,0.72);
  border-color: rgba(139,92,246,0.18);
}
[data-theme="light"] .ps-name-input,
[data-theme="light"] .ps-weight-input,
[data-theme="light"] .ps-height-input,
[data-theme="light"] .ps-age-num-input {
  color: #1e1b4b;
  text-shadow: none;
}
[data-theme="light"] .ps-title {
  background: linear-gradient(135deg, #7c3aed, #4f46e5);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
[data-theme="light"] .ps-subtitle { color: rgba(0,0,0,0.45); }
[data-theme="light"] .ps-dot { background: rgba(0,0,0,0.1); }
[data-theme="light"] .ps-age-hint, [data-theme="light"] .ps-height-hint { color: rgba(0,0,0,0.28); }
[data-theme="light"] .ps-age-minmax span { color: rgba(0,0,0,0.28); }
[data-theme="light"] .ps-tick-label { color: rgba(79, 70, 229, 0.6); }
[data-theme="light"] .ps-tick-mark { background: rgba(99, 102, 241, 0.22) !important; }
[data-theme="light"] .ps-tick-row.major .ps-tick-mark { background: rgba(79, 70, 229, 0.55) !important; }
[data-theme="light"] .ps-tick-row.mid .ps-tick-mark { background: rgba(99, 102, 241, 0.38) !important; }
[data-theme="light"] .ps-tick-row.ps-tick-active .ps-tick-mark { background: rgba(124, 58, 237, 0.9) !important; box-shadow: 0 0 6px rgba(124, 58, 237, 0.55) !important; }
[data-theme="light"] .ps-arc-track { stroke: rgba(79, 70, 229, 0.14) !important; }
[data-theme="light"] #ps-arc-thumb { fill: #f0eeff !important; }
[data-theme="light"] .ps-height-tip-box p { color: rgba(0,0,0,0.45); }
[data-theme="light"] .ps-back-btn {
  background: rgba(139,92,246,0.08);
  border-color: rgba(139,92,246,0.22);
  color: #5b21b6;
}

/* â”€â”€ Mobile â”€â”€ */
@media (max-width: 440px) {
  .ps-screen { max-width: 100%; }
  .ps-title { font-size: 1.65rem; }
  .ps-age-num-input { font-size: 2.4rem; width: 82px; }
  .ps-height-input { font-size: 1.75rem; }
  .ps-weight-input { font-size: 1.75rem; }
  .ps-ruler-clip { height: 188px; }
  .ps-age-center { top: 46px; }
}

/* ==========================================================================
   Onboarding Layout & Responsive System — Premium SaaS Experience
   Restores Header, Substantial Card Sizing, Spacing, & Desktop Typography
   ========================================================================== */

body.start-bg-active {
  background: #0a071c;
}

[data-theme="light"] body.start-bg-active {
  background: #f8f6ff !important;
}

body.start-bg-active .chatbot-container {
  display: none !important;
}

/* Ensure background layer overrides do not suppress header */
body.start-bg-active .app-header {
  display: flex !important;
}

/* Onboarding Cards: Desktop Base Layout (680px - 760px wide, centered below header) */
.ps-screen,
.ob-screen,
.ob-final {
  box-sizing: border-box !important;
  font-family: 'Outfit', 'Inter', system-ui, sans-serif !important;
  color: #f6f0ff !important;
  background: rgba(15, 23, 42, 0.85) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
  border-radius: 1.75rem !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  width: 100% !important;
  max-width: 620px !important;
  margin: 2.25rem auto 3rem auto !important;
  padding: 2.25rem 2.5rem 2.5rem 2.5rem !important;
  height: auto !important;
  min-height: auto !important;
  overflow: visible !important;
}

/* Topbar & Navigation */
.ps-topbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  height: auto !important;
  padding: 0 !important;
  margin-bottom: 1.5rem !important;
}

.ps-topbar > svg {
  width: 72px !important;
  height: 22px !important;
  margin-right: 0 !important;
  opacity: 0.85 !important;
}

.ps-back-btn,
.ob-back-btn {
  min-width: auto !important;
  height: auto !important;
  padding: 0.55rem 1.15rem !important;
  gap: 0.5rem !important;
  border-radius: 9999px !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  color: rgba(255, 255, 255, 0.85) !important;
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  transition: all 0.2s var(--ease-smooth) !important;
}

.ps-back-btn:hover,
.ob-back-btn:hover {
  background: rgba(139, 92, 246, 0.2) !important;
  border-color: rgba(168, 85, 247, 0.5) !important;
  color: #ffffff !important;
  transform: translateX(-3px) !important;
}

.ps-back-btn svg,
.ob-back-btn svg {
  width: 14px !important;
  height: 14px !important;
}

/* Header & Typography */
.ps-header,
.ob-header {
  text-align: center !important;
  padding: 0 0 1.5rem 0 !important;
  margin-bottom: 1.5rem !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.ps-title,
.ob-title {
  margin: 0 0 0.5rem 0 !important;
  font-size: 2.5rem !important; /* ~40px */
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: -0.03em !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: #ffffff !important;
  color: #ffffff !important;
  filter: none !important;
  text-shadow: none !important;
}

.ps-subtitle,
.ob-subtitle {
  margin: 0 0 1.25rem 0 !important;
  font-size: 1.05rem !important; /* ~17px */
  line-height: 1.4 !important;
  color: rgba(226, 216, 255, 0.75) !important;
  font-weight: 500 !important;
  opacity: 1 !important;
}

.ps-subtitle-accent {
  color: #c084fc !important;
  font-style: italic !important;
  font-weight: 600 !important;
}

.ps-step-dots,
.ob-progress {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 0.6rem !important;
  margin: 0 auto !important;
  height: auto !important;
}

.ps-dot,
.ob-progress span {
  width: 24px !important;
  height: 4px !important;
  border-radius: 9999px !important;
  background: rgba(255, 255, 255, 0.16) !important;
}

.ps-dot-active,
.ob-progress span.active {
  width: 44px !important;
  height: 4px !important;
  background: linear-gradient(90deg, #6366f1, #a855f7, #ec4899) !important;
  box-shadow: 0 0 12px rgba(168, 85, 247, 0.75) !important;
}

/* Step 1 Cards Container */
.ps-cards {
  display: flex !important;
  flex-direction: column !important;
  padding: 0 !important;
  gap: 1.25rem !important;
  margin-bottom: 2rem !important;
}

.ps-card {
  width: 100% !important;
  box-sizing: border-box !important;
  border-radius: 1.25rem !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  background: rgba(19, 21, 48, 0.55) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  backdrop-filter: blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
  overflow: hidden !important;
  height: auto !important;
  padding: 1.35rem 1.6rem !important;
}

.ps-card-label {
  margin: 0 0 0.85rem 0 !important;
  gap: 0.5rem !important;
  font-size: 0.82rem !important; /* ~13px */
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
  text-transform: uppercase !important;
  color: #a78bfa !important;
}

.ps-card-label svg {
  width: 16px !important;
  height: 16px !important;
  color: #c084fc !important;
}

/* Name Card */
.ps-card-name {
  height: auto !important;
  padding: 1.25rem 1.5rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 1rem !important;
  position: relative !important;
}

.ps-name-icon {
  position: static !important;
  width: 42px !important;
  height: 42px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  color: #c084fc !important;
  border: 1px solid rgba(168, 85, 247, 0.35) !important;
  background: rgba(139, 92, 246, 0.15) !important;
  box-shadow: 0 0 16px rgba(139, 92, 246, 0.25) !important;
  flex-shrink: 0 !important;
}

.ps-name-field-wrap {
  flex: 1 !important;
  padding: 0.75rem 1.1rem !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: 0.85rem !important;
  background: rgba(19, 21, 48, 0.4) !important;
  box-shadow: none !important;
  transition: all 0.25s var(--ease-smooth) !important;
}

.ps-name-field-wrap:focus-within {
  border-color: rgba(168, 85, 247, 0.65) !important;
  background: rgba(19, 21, 48, 0.6) !important;
  box-shadow: 0 0 16px rgba(168, 85, 247, 0.2) !important;
}

.ps-name-input {
  height: auto !important;
  padding: 0 !important;
  font-size: 1.1rem !important; /* 18px */
  line-height: 1.2 !important;
  font-weight: 600 !important;
  color: #ffffff !important;
}

.ps-edit-btn {
  position: static !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  background: rgba(255, 255, 255, 0.05) !important;
  color: rgba(255, 255, 255, 0.7) !important;
  display: grid !important;
  place-items: center !important;
  flex-shrink: 0 !important;
  cursor: pointer !important;
}

.ps-edit-btn:hover {
  background: rgba(139, 92, 246, 0.2) !important;
  border-color: rgba(168, 85, 247, 0.5) !important;
  color: #ffffff !important;
}

/* Age Card */
.ps-card-age {
  height: auto !important;
  padding: 1.35rem 1.6rem !important;
}

.ps-age-toprow {
  margin-bottom: 0.5rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.ps-age-hint,
.ps-height-hint {
  min-height: auto !important;
  padding: 0 !important;
  background: transparent !important;
  color: rgba(226, 216, 255, 0.5) !important;
  font-size: 0.8rem !important; /* 13px */
  line-height: 1.2 !important;
  font-weight: 500 !important;
  font-style: italic !important;
}

.ps-age-arc-box {
  height: auto !important;
  position: relative !important;
  display: flex !important;
  justify-content: center !important;
  margin: 0.5rem 0 0 0 !important;
}

.ps-age-svg {
  width: 320px !important;
  height: 160px !important;
  margin-top: 0 !important;
  filter: drop-shadow(0 0 20px rgba(139, 92, 246, 0.4)) !important;
}

.ps-age-center {
  position: absolute !important;
  left: 50% !important;
  top: 104px !important;
  transform: translate(-50%, -50%) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 20 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
}

.ps-age-num-input {
  width: 100px !important;
  font-size: 3.2rem !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  color: #ffffff !important;
  letter-spacing: -0.04em !important;
  text-align: center !important;
  text-shadow: 0 0 24px rgba(168, 85, 247, 0.5) !important;
  margin: 0 !important;
  padding: 0 !important;
  z-index: 21 !important;
  pointer-events: auto !important;
  cursor: text !important;
  position: relative !important;
}

.ps-age-yrs {
  margin-top: 2px !important;
  font-size: 0.75rem !important;
  line-height: 1 !important;
  letter-spacing: 0.16em !important;
  text-transform: uppercase !important;
  color: #c084fc !important;
  font-weight: 800 !important;
}

.ps-age-range-slider {
  position: absolute !important;
  left: 50% !important;
  top: 0 !important;
  transform: translateX(-50%) !important;
  width: 320px !important;
  height: 160px !important;
  opacity: 0 !important;
  cursor: pointer !important;
  z-index: 10 !important;
  margin: 0 !important;
  -webkit-appearance: none !important;
  touch-action: none !important;
}

.ps-age-minmax {
  position: relative !important;
  width: 320px !important;
  margin: 0.1rem auto 0 auto !important;
  padding: 0 16px !important;
  display: flex !important;
  justify-content: space-between !important;
  box-sizing: border-box !important;
}

.ps-age-minmax span {
  font-size: 0.85rem !important;
  font-weight: 800 !important;
  color: rgba(192, 132, 252, 0.85) !important;
  letter-spacing: 0.02em !important;
}

/* Gender Card */
.ps-card-gender {
  height: auto !important;
  padding: 1.35rem 1.6rem !important;
}

.ps-gender-toggle {
  grid-template-columns: 1fr 1fr !important;
  gap: 1rem !important;
  margin-top: 0.85rem !important;
}

.ps-gender-btn {
  height: auto !important;
  min-height: 50px !important;
  padding: 0.9rem 1.25rem !important;
  border-radius: 0.95rem !important;
  font-size: 1rem !important; /* 16px */
  font-weight: 700 !important;
  color: rgba(255, 255, 255, 0.6) !important;
  background: rgba(19, 21, 48, 0.4) !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
}

.ps-gender-btn > svg:not(.ps-check-icon) {
  display: inline-block !important;
  width: 18px !important;
  height: 18px !important;
}

.ps-gender-active {
  color: #ffffff !important;
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(168, 85, 247, 0.25)) !important;
  border-color: rgba(168, 85, 247, 0.75) !important;
  box-shadow: 0 0 20px rgba(168, 85, 247, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}

.ps-check-icon {
  width: 16px !important;
  height: 16px !important;
}

/* Weight Card */
.ps-card-weight {
  height: auto !important;
  padding: 1.35rem 1.6rem !important;
  display: flex !important;
  flex-direction: column !important;
}

.ps-weight-top {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 1rem !important;
}

.ps-weight-top .ps-card-label {
  margin: 0 !important;
}

.ps-weight-top > svg {
  width: 65px !important;
  height: 26px !important;
  opacity: 0.85 !important;
}

.ps-weight-stepper {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 1.5rem !important;
}

.ps-step-btn {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  min-height: 46px !important;
  font-size: 1.5rem !important;
  border: 1.5px solid rgba(139, 92, 246, 0.45) !important;
  background: rgba(139, 92, 246, 0.12) !important;
  color: #c4b5fd !important;
  box-shadow: none !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
}

.ps-weight-input {
  width: 95px !important;
  font-size: 2.4rem !important; /* 38px */
  line-height: 1 !important;
  font-weight: 900 !important;
  letter-spacing: -0.03em !important;
  color: #ffffff !important;
  text-shadow: 0 0 20px rgba(168, 85, 247, 0.35) !important;
}

.ps-weight-stepper::after {
  content: "kg" !important;
  margin-left: -0.5rem !important;
  font-size: 0.95rem !important;
  color: #c084fc !important;
  font-weight: 800 !important;
}

/* Height Card */
.ps-card-height {
  height: auto !important;
  padding: 1.35rem 1.6rem !important;
}

.ps-height-toprow {
  margin-bottom: 1rem !important;
}

.ps-height-body {
  display: flex !important;
  gap: 5.2rem !important;
  align-items: center !important;
}

.ps-ruler-outer {
  width: 70px !important;
  margin-left: 0 !important;
}

.ps-ruler-clip {
  width: 70px !important;
  height: 220px !important;
  border: 1px solid rgba(139, 92, 246, 0.25) !important;
  border-radius: 0.75rem !important;
  background: rgba(19, 21, 48, 0.5) !important;
}

.ps-ruler-center-line {
  left: -1px !important;
  right: -1px !important;
  top: calc(50% - 1px) !important;
  height: 2px !important;
  width: auto !important;
  background: linear-gradient(90deg, #a855f7, rgba(99, 102, 241, 0.55)) !important;
}

.ps-ruler-pill {
  left: calc(100% + 12px) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  padding: 0.35rem 0.75rem !important;
  border-radius: 6px !important;
  font-size: 0.82rem !important; /* ~13px */
  font-weight: 800 !important;
  background: linear-gradient(135deg, #7c3aed, #a855f7) !important;
  box-shadow: 0 2px 14px rgba(168, 85, 247, 0.6) !important;
}

.ps-height-controls {
  gap: 0.85rem !important;
  padding-top: 0 !important;
}

.ps-height-enter-label {
  margin: 0 !important;
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  color: #a78bfa !important;
}

.ps-height-input-row {
  width: 100% !important;
  height: auto !important;
  padding: 0.6rem 1rem !important;
  gap: 0.5rem !important;
  border-radius: 0.95rem !important;
  background: rgba(19, 21, 48, 0.4) !important;
  border: 1.5px solid rgba(139, 92, 246, 0.35) !important;
}

.ps-height-input {
  width: 80px !important;
  font-size: 2.2rem !important; /* 35px */
  color: #ffffff !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  text-shadow: 0 0 18px rgba(168, 85, 247, 0.3) !important;
}

.ps-height-unit {
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: #c084fc !important;
}

.ps-height-tip-box {
  width: 100% !important;
  min-height: auto !important;
  border-radius: 0.75rem !important;
  padding: 0.65rem 0.85rem !important;
  gap: 0.5rem !important;
  background: rgba(19, 21, 48, 0.3) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
}

.ps-height-tip-box svg {
  width: 16px !important;
  height: 16px !important;
  color: #a855f7 !important;
  margin-top: 2px !important;
}

.ps-height-tip-box p {
  font-size: 0.78rem !important;
  line-height: 1.45 !important;
  color: rgba(226, 216, 255, 0.6) !important;
}

.ps-height-tip-box strong {
  display: inline !important;
  margin-bottom: 0 !important;
  font-size: 0.78rem !important;
  color: rgba(255, 255, 255, 0.85) !important;
}

/* Primary CTAs */
.ps-next-btn,
.ob-primary-btn {
  min-height: 54px !important;
  height: 54px !important;
  border-radius: 9999px !important;
  color: #ffffff !important;
  background: linear-gradient(135deg, #7c3aed 0%, #a855f7 50%, #6366f1 100%) !important;
  box-shadow: 0 6px 28px rgba(139, 92, 246, 0.45), 0 0 40px rgba(168, 85, 247, 0.2) !important;
  font-size: 1.05rem !important; /* ~17px */
  font-weight: 800 !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.6rem !important;
  padding: 0.95rem 2rem !important;
}

.ps-next-btn {
  margin: 1.5rem 0 0 0 !important;
  width: 100% !important;
}

.ps-next-btn:disabled {
  opacity: 0.4 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}

/* Step 2 & 3 Screen Wrappers */
.ob-screen {
  width: 100% !important;
  max-width: 620px !important;
  min-height: auto !important;
  border-radius: 1.75rem !important;
  margin: 2.25rem auto 3rem auto !important;
  padding: 2.25rem 2.5rem 2.5rem 2.5rem !important;
  position: relative !important;
}

.ob-final {
  width: 100% !important;
  max-width: 620px !important;
  min-height: auto !important;
  padding: 2.25rem 2.5rem 2.5rem 2.5rem !important;
}

.ob-icon-badge {
  width: 44px !important;
  height: 44px !important;
  margin: 0 auto 1rem auto !important;
  display: grid !important;
  place-items: center !important;
  color: #c084fc !important;
  background: rgba(168, 85, 247, 0.12) !important;
  border: 1px solid rgba(168, 85, 247, 0.25) !important;
  box-shadow: none !important;
}

.ob-title {
  font-size: 2.5rem !important;
}

.ob-subtitle {
  font-size: 1.05rem !important;
  margin-bottom: 1.25rem !important;
}

.ob-flow {
  margin-top: 2rem !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2rem !important;
}

.ob-section {
  display: grid !important;
  grid-template-columns: 32px 1fr !important;
  gap: 1.25rem !important;
  position: relative !important;
}

.ob-section:not(:last-child)::before {
  left: 15px !important;
  top: 36px !important;
  bottom: -28px !important;
  width: 2px !important;
  background: rgba(168, 85, 247, 0.25) !important;
}

.ob-section-num,
.ob-mini-label span {
  width: 32px !important;
  height: 32px !important;
  border-radius: 10px !important;
  display: grid !important;
  place-items: center !important;
  color: #c084fc !important;
  background: rgba(139, 92, 246, 0.16) !important;
  border: 1px solid rgba(168, 85, 247, 0.4) !important;
  font-size: 0.85rem !important;
  font-weight: 900 !important;
  box-shadow: 0 0 14px rgba(168, 85, 247, 0.3) !important;
  z-index: 2 !important;
}

.ob-section-head {
  height: auto !important;
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  margin-bottom: 1rem !important;
}

.ob-section-head.compact {
  height: auto !important;
}

.ob-section-head h3 {
  margin: 0 !important;
  color: #ffffff !important;
  font-size: 1.35rem !important; /* ~22px */
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

.ob-section-head p,
.ob-micro {
  margin: 0.25rem 0 0 0 !important;
  color: rgba(226, 216, 255, 0.65) !important;
  font-size: 0.9rem !important; /* 14px */
  line-height: 1.3 !important;
  font-weight: 500 !important;
}

.ob-micro {
  margin-top: 0 !important;
  font-size: 0.82rem !important;
  color: #a78bfa !important;
}

.ob-conditions-grid {
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0.85rem !important;
}

.ob-conditions-grid .cond-btn {
  height: auto !important;
  min-height: 52px !important;
  padding: 0.85rem 1rem !important;
  border-radius: 0.95rem !important;
  gap: 0.6rem !important;
  font-size: 0.92rem !important; /* 15px */
  line-height: 1.2 !important;
  background: rgba(255, 255, 255, 0.035) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 6px 22px rgba(0, 0, 0, 0.25) !important;
  display: flex !important;
  align-items: center !important;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.cond-lbl {
  font-size: inherit !important;
  font-weight: 700 !important;
  color: inherit !important;
}

.checkbox-outer,
.checkbox-inner {
  display: none !important;
}

.ob-conditions-grid .cond-btn.ob-wide,
.cond-btn.ob-wide,
.ob-wide {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  height: auto !important;
  min-height: 58px !important;
  padding: 0.85rem 1.25rem !important;
  gap: 1rem !important;
  box-sizing: border-box !important;
}

.ob-wide strong {
  display: block !important;
  font-size: 1rem !important; /* 16px */
  line-height: 1.2 !important;
  color: #ffffff !important;
  text-align: left !important;
}

.ob-wide small {
  display: block !important;
  margin-top: 2px !important;
  font-size: 0.82rem !important; /* 13px */
  line-height: 1.2 !important;
  color: rgba(226, 216, 255, 0.65) !important;
  text-align: left !important;
}

.ob-option-icon {
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  color: #c084fc !important;
  background: rgba(139, 92, 246, 0.16) !important;
  border: 1px solid rgba(168, 85, 247, 0.3) !important;
}

.ob-option-icon.teal {
  color: #2dd4bf !important;
  background: rgba(45, 212, 191, 0.15) !important;
}

.ob-check,
.ob-mini-check {
  display: none !important;
}

.ob-mini-check {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  width: 18px !important;
  height: 18px !important;
  font-size: 10px !important;
}

.ob-card-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 0.85rem !important;
}

.ob-choice {
  position: relative !important;
  height: auto !important;
  min-height: 110px !important;
  padding: 1.15rem 0.85rem !important;
  border-radius: 1rem !important;
  background: rgba(255, 255, 255, 0.035) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 6px 22px rgba(0, 0, 0, 0.25) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.5rem !important;
  text-align: center !important;
  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.ob-choice:hover,
.ob-conditions-grid .cond-btn:hover {
  background: rgba(255, 255, 255, 0.065) !important;
  border-color: rgba(192, 132, 252, 0.4) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 10px 30px rgba(139, 92, 246, 0.22) !important;
  transform: translateY(-2px) !important;
}

.ob-choice svg {
  width: 24px !important;
  height: 24px !important;
  color: #c084fc !important;
}

.ob-choice strong {
  font-size: 0.95rem !important; /* 15px */
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #ffffff !important;
}

.ob-choice small {
  font-size: 0.78rem !important; /* 12px */
  line-height: 1.2 !important;
  font-weight: 500 !important;
  color: rgba(226, 216, 255, 0.65) !important;
}

.ob-choice.active,
.ob-conditions-grid .cond-btn.active {
  border-color: rgba(192, 132, 252, 0.75) !important;
  background: rgba(168, 85, 247, 0.22) !important;
  color: #ffffff !important;
  box-shadow: 0 0 28px rgba(168, 85, 247, 0.45), inset 0 1.5px 0 rgba(255, 255, 255, 0.32) !important;
}

/* --- Dedicated Sleek Onboarding Step 3 Allergy Grid & Cards --- */
.ob-allergy-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 0.75rem !important;
}

.ob-allergy-grid .allergy-btn {
  position: relative !important;
  height: 52px !important;
  min-height: 52px !important;
  padding: 0.65rem 0.9rem !important;
  border-radius: 0.85rem !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  box-shadow: none !important;
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.65rem !important;
  text-align: left !important;
  cursor: pointer !important;
  user-select: none !important;
  -webkit-tap-highlight-color: transparent !important;
  transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.18s ease !important;
  outline: none !important;
}

.ob-allergy-grid .allergy-btn:focus,
.ob-allergy-grid .allergy-btn:active {
  outline: none !important;
  transform: none !important;
}

@media (hover: hover) {
  .ob-allergy-grid .allergy-btn:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    border-color: rgba(168, 85, 247, 0.4) !important;
  }
}

.ob-allergy-grid .allergy-btn .cond-lbl {
  font-size: 0.85rem !important;
  font-weight: 600 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}

.ob-allergy-grid .allergy-btn .ob-option-icon {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(168, 85, 247, 0.14) !important;
  border: 1px solid rgba(168, 85, 247, 0.28) !important;
  color: #c084fc !important;
  transition: all 0.18s ease !important;
}

.ob-allergy-grid .allergy-btn.active {
  background: rgba(168, 85, 247, 0.22) !important;
  border: 1.5px solid #a855f7 !important;
  color: #ffffff !important;
  box-shadow: 0 4px 14px rgba(168, 85, 247, 0.2) !important;
  transform: none !important;
}

.ob-allergy-grid .allergy-btn.active .ob-option-icon {
  background: #a855f7 !important;
  border-color: #a855f7 !important;
  color: #ffffff !important;
}

.ob-footer {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem !important;
  margin-top: 2rem !important;
  padding-top: 1.25rem !important;
  border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.ob-health .ob-footer {
  margin-top: 2rem !important;
}

.ob-privacy {
  margin: 0 !important;
  color: rgba(226, 216, 255, 0.5) !important;
  font-size: 0.78rem !important; /* 12px-13px */
  line-height: 1.35 !important;
  font-weight: 500 !important;
  max-width: 180px !important;
}

.ob-privacy::before {
  content: "🔒 " !important;
  margin-right: 2px !important;
}

.ob-primary-btn {
  width: auto !important;
  min-width: 180px !important;
  margin-left: auto !important;
  cursor: pointer !important;
}

.ob-final .ob-header {
  margin-bottom: 1.5rem !important;
}

.ob-final-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 1.25rem !important;
}

.ob-mini-label {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important;
  height: auto !important;
  color: #a78bfa !important;
  font-size: 0.82rem !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  letter-spacing: 0.08em !important;
}

.ob-mini-label.diet {
  margin-top: 0.5rem !important;
}

.ob-allergy-grid {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 0.85rem !important;
}

.ob-allergy-grid .allergy-btn {
  height: auto !important;
  min-height: 54px !important;
  padding: 0.85rem 1.1rem !important;
  border-radius: 0.95rem !important;
  gap: 0.75rem !important;
  font-size: 0.95rem !important;
  background: rgba(8, 12, 30, 0.7) !important;
  border: 1px solid rgba(139, 92, 246, 0.25) !important;
  color: rgba(255, 255, 255, 0.85) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
  display: flex !important;
  align-items: center !important;
}

.ob-allergy-grid .checkbox-outer {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
}

.ob-segmented {
  height: 52px !important;
  padding: 4px !important;
  border-radius: 9999px !important;
  background: rgba(255, 255, 255, 0.035) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.10) !important;
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 4px !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

.diet-choice {
  height: 100% !important;
  border: 0 !important;
  border-radius: 9999px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.65) !important;
  font-size: 0.9rem !important;
  font-weight: 700 !important;
  padding: 0 !important;
  transition: all 0.2s ease !important;
}

.diet-choice.active {
  color: #ffffff !important;
  background: linear-gradient(135deg, #7c3aed, #a855f7) !important;
  box-shadow: 0 0 20px rgba(168, 85, 247, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.35) !important;
}

.ob-info-bar {
  background: rgba(255, 255, 255, 0.035) !important;
  backdrop-filter: blur(16px) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
}

.ob-info-bar {
  height: auto !important;
  min-height: 44px !important;
  border-radius: 0.75rem !important;
  display: flex !important;
  align-items: center !important;
  padding: 0.6rem 1.1rem !important;
  color: rgba(226, 216, 255, 0.7) !important;
  background: rgba(255, 255, 255, 0.03) !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  font-size: 0.85rem !important;
  font-weight: 500 !important;
}

.ob-cuisine-panel {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.85rem !important;
  padding: 1.15rem !important;
  border-radius: 1.1rem !important;
  background: rgba(13, 19, 36, 0.85) !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
  border: 1px solid rgba(45, 212, 191, 0.22) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 12px 32px rgba(0, 0, 0, 0.35) !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

.ob-cuisine-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 0.85rem !important;
  flex-wrap: wrap !important;
}

.ob-cuisine-head-left {
  flex: 1 1 auto !important;
}

.ob-mini-label.cuisine {
  color: #5eead4 !important;
  letter-spacing: 0.06em !important;
  margin-bottom: 0.35rem !important;
}

.ob-mini-label.cuisine span {
  color: #5eead4 !important;
  background: rgba(20, 184, 166, 0.16) !important;
  border-color: rgba(45, 212, 191, 0.35) !important;
}

.ob-cuisine-head h3 {
  margin: 0 !important;
  color: #ffffff !important;
  font-size: 1.1rem !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
}

.ob-cuisine-head p {
  margin: 0.25rem 0 0 0 !important;
  color: rgba(226, 216, 255, 0.65) !important;
  font-size: 0.82rem !important;
  line-height: 1.35 !important;
}

.ob-cuisine-count-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
  padding: 0.45rem 0.85rem !important;
  border-radius: 999px !important;
  background: rgba(45, 212, 191, 0.12) !important;
  border: 1px solid rgba(45, 212, 191, 0.32) !important;
  color: #99f6e4 !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em !important;
  box-shadow: 0 0 12px rgba(45, 212, 191, 0.15) !important;
  white-space: nowrap !important;
}

.count-pulse {
  width: 7px !important;
  height: 7px !important;
  border-radius: 50% !important;
  background: #2dd4bf !important;
  box-shadow: 0 0 8px #2dd4bf !important;
  animation: pulse-glow 2s infinite ease-in-out !important;
}
.count-pulse.green {
  background: #34d399 !important;
  box-shadow: 0 0 8px #34d399 !important;
}
.count-pulse.warn {
  background: #fbbf24 !important;
  box-shadow: 0 0 8px #fbbf24 !important;
}

@keyframes pulse-glow {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.3); }
}

/* Toolbar & Search */
.ob-cuisine-toolbar {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0.75rem !important;
  flex-wrap: wrap !important;
}

.ob-cuisine-search-wrap {
  position: relative !important;
  flex: 1 1 200px !important;
  min-width: 170px !important;
  height: 40px !important;
  display: flex !important;
  align-items: center !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 0.8rem !important;
  padding: 0 0.75rem 0 2.4rem !important;
  transition: all 0.25s ease !important;
}

.ob-cuisine-search-wrap:focus-within {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(45, 212, 191, 0.6) !important;
  box-shadow: 0 0 14px rgba(45, 212, 191, 0.2) !important;
}

.ob-cuisine-search-wrap .search-icon {
  position: absolute !important;
  left: 0.75rem !important;
  color: #5eead4 !important;
  pointer-events: none !important;
}

.ob-cuisine-search-wrap input {
  width: 100% !important;
  border: none !important;
  outline: none !important;
  background: transparent !important;
  color: #ffffff !important;
  font-size: 0.84rem !important;
  font-weight: 600 !important;
}

.ob-cuisine-search-wrap input::placeholder {
  color: rgba(226, 216, 255, 0.5) !important;
  font-weight: 500 !important;
}

.search-clear-btn {
  background: rgba(255, 255, 255, 0.15) !important;
  border: none !important;
  color: #ffffff !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  font-size: 0.75rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  transition: background 0.2s ease !important;
}
.search-clear-btn:hover {
  background: rgba(239, 68, 68, 0.4) !important;
}

.ob-cuisine-action-btns {
  display: flex !important;
  align-items: center !important;
  gap: 0.45rem !important;
}

button.ob-cuisine-tool,
.ob-cuisine-tool {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  height: 38px !important;
  padding: 0 0.85rem !important;
  border-radius: 0.75rem !important;
  border: 1px solid rgba(45, 212, 191, 0.3) !important;
  background: rgba(45, 212, 191, 0.08) !important;
  color: #ccfbf1 !important;
  font-family: inherit !important;
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.4rem !important;
  transition: all 0.2s ease !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  outline: none !important;
}

button.ob-cuisine-tool:hover,
.ob-cuisine-tool:hover {
  background: rgba(45, 212, 191, 0.2) !important;
  border-color: rgba(45, 212, 191, 0.6) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(45, 212, 191, 0.18) !important;
}

button.ob-cuisine-tool-danger,
.ob-cuisine-tool-danger {
  border-color: rgba(244, 63, 94, 0.3) !important;
  background: rgba(244, 63, 94, 0.08) !important;
  color: #fecdd3 !important;
}

button.ob-cuisine-tool-danger:hover,
.ob-cuisine-tool-danger:hover {
  background: rgba(244, 63, 94, 0.22) !important;
  border-color: rgba(244, 63, 94, 0.6) !important;
  box-shadow: 0 4px 12px rgba(244, 63, 94, 0.2) !important;
}

/* Quick Filter Pills */
.ob-cuisine-filter-bar {
  display: flex !important;
  align-items: center !important;
  gap: 0.4rem !important;
  overflow-x: auto !important;
  padding-bottom: 0.2rem !important;
  scrollbar-width: none !important;
}
.ob-cuisine-filter-bar::-webkit-scrollbar {
  display: none !important;
}

button.ob-cuisine-filter-pill,
.ob-cuisine-filter-pill {
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  padding: 0.38rem 0.8rem !important;
  border-radius: 999px !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: rgba(226, 216, 255, 0.8) !important;
  font-family: inherit !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: all 0.2s ease !important;
  box-sizing: border-box !important;
  outline: none !important;
}

button.ob-cuisine-filter-pill:hover,
.ob-cuisine-filter-pill:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #ffffff !important;
}

button.ob-cuisine-filter-pill.active,
.ob-cuisine-filter-pill.active {
  background: linear-gradient(135deg, rgba(20, 184, 166, 0.4), rgba(168, 85, 247, 0.4)) !important;
  border-color: rgba(45, 212, 191, 0.7) !important;
  color: #ffffff !important;
  box-shadow: 0 0 12px rgba(45, 212, 191, 0.25) !important;
}

/* Cuisine Grid */
.ob-cuisine-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important;
  gap: 0.65rem !important;
  max-height: 280px !important;
  overflow-y: auto !important;
  padding-right: 0.25rem !important;
  padding-left: 0.05rem !important;
  padding-top: 0.05rem !important;
  padding-bottom: 0.2rem !important;
}

/* Cuisine Chip */
.ob-cuisine-chip {
  position: relative !important;
  appearance: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  min-height: 72px !important;
  padding: 0.65rem 0.75rem !important;
  border-radius: 0.85rem !important;
  background: rgba(255, 255, 255, 0.035) !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  color: rgba(255, 255, 255, 0.9) !important;
  cursor: pointer !important;
  text-align: left !important;
  transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.ob-cuisine-chip:hover {
  transform: translateY(-2px) !important;
  background: rgba(45, 212, 191, 0.08) !important;
  border-color: rgba(45, 212, 191, 0.4) !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25) !important;
}

.ob-cuisine-chip.active {
  background: linear-gradient(135deg, rgba(20, 184, 166, 0.22), rgba(168, 85, 247, 0.16)) !important;
  border-color: rgba(45, 212, 191, 0.75) !important;
  box-shadow: 0 0 16px rgba(20, 184, 166, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.15) !important;
}

.ob-cuisine-chip-top {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  margin-bottom: 0.25rem !important;
}

.ob-cuisine-icon {
  font-size: 1.15rem !important;
  line-height: 1 !important;
}

.ob-cuisine-check {
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  border: 1.5px solid rgba(255, 255, 255, 0.25) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: transparent !important;
  transition: all 0.2s ease !important;
}

.ob-cuisine-chip.active .ob-cuisine-check {
  background: #2dd4bf !important;
  border-color: #2dd4bf !important;
  color: #042f2e !important;
  box-shadow: 0 0 8px rgba(45, 212, 191, 0.5) !important;
}

.ob-cuisine-name {
  width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  font-size: 0.83rem !important;
  font-weight: 800 !important;
  color: #ffffff !important;
  line-height: 1.2 !important;
}

.ob-cuisine-chip.active .ob-cuisine-name {
  color: #ccfbf1 !important;
}

.ob-cuisine-recipes {
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  color: rgba(226, 216, 255, 0.55) !important;
}

.ob-cuisine-chip.active .ob-cuisine-recipes {
  color: rgba(94, 234, 212, 0.85) !important;
}

/* Skeleton & Loading */
.ob-cuisine-loading-state {
  grid-column: 1 / -1 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  padding: 1.2rem 0.5rem !important;
}

.ob-cuisine-skeleton-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important;
  gap: 0.65rem !important;
}

.ob-cuisine-skeleton {
  height: 72px !important;
  border-radius: 0.85rem !important;
  background: linear-gradient(90deg, rgba(255,255,255,0.04) 25%, rgba(255,255,255,0.09) 50%, rgba(255,255,255,0.04) 75%) !important;
  background-size: 200% 100% !important;
  animation: skeleton-shimmer 1.5s infinite !important;
}

@keyframes skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.ob-cuisine-loading-sub {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.8rem !important;
  font-size: 0.8rem !important;
  color: rgba(226, 216, 255, 0.7) !important;
}

.ob-cuisine-retry-btn {
  padding: 0.3rem 0.65rem !important;
  border-radius: 0.5rem !important;
  background: rgba(45, 212, 191, 0.15) !important;
  border: 1px solid rgba(45, 212, 191, 0.35) !important;
  color: #2dd4bf !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
}

.ob-cuisine-no-results {
  grid-column: 1 / -1 !important;
  text-align: center !important;
  padding: 2rem 1rem !important;
  color: rgba(226, 216, 255, 0.65) !important;
  font-size: 0.85rem !important;
}

.ob-cuisine-grid::-webkit-scrollbar {
  width: 5px !important;
}

.ob-cuisine-grid::-webkit-scrollbar-track {
  background: transparent !important;
}

.ob-cuisine-grid::-webkit-scrollbar-thumb {
  background: rgba(45, 212, 191, 0.32) !important;
  border-radius: 3px !important;
}

.ob-final .ob-footer {
  margin-top: 1.5rem !important;
}

.ob-final .ob-primary-btn {
  width: auto !important;
  flex: 1 !important;
}

.ob-spark {
  font-size: 1.1rem !important;
  opacity: 0.9 !important;
}

/* ===================================================================
   LIGHT THEME OVERRIDES — 3 Onboarding Steps (Step 1, 2, 3)
   All rules use !important to beat dark-mode base specificity
   =================================================================== */

/* --- Screen containers --- */
[data-theme="light"] .ps-screen,
[data-theme="light"] .ob-screen,
[data-theme="light"] .ob-final {
  color: #0f172a !important;
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05), inset 0 1px 0 #ffffff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* --- Page titles --- */
[data-theme="light"] .ps-title,
[data-theme="light"] .ob-title {
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  -webkit-text-fill-color: #0f172a !important;
  color: #0f172a !important;
  filter: none !important;
  text-shadow: none !important;
}

/* --- Subtitles & body copy --- */
[data-theme="light"] .ps-subtitle,
[data-theme="light"] .ob-subtitle {
  color: #475569 !important;
}

/* --- Section number badges & mini-labels --- */
[data-theme="light"] .ob-section-num,
[data-theme="light"] .ob-mini-label span {
  color: #6366f1 !important;
  background: rgba(99, 102, 241, 0.08) !important;
  border: 1px solid rgba(99, 102, 241, 0.2) !important;
  box-shadow: none !important;
}

[data-theme="light"] .ob-mini-label {
  color: #4338ca !important;
}

/* --- Section connectors --- */
[data-theme="light"] .ob-section:not(:last-child)::before {
  background: rgba(99, 102, 241, 0.2) !important;
}

/* --- Section head text --- */
[data-theme="light"] .ob-section-head h3 {
  color: #1e1b4b !important;
}

[data-theme="light"] .ob-section-head p,
[data-theme="light"] .ob-micro {
  color: #5b21b6 !important;
}

/* --- Icon badge (top of Step 2 & 3) --- */
[data-theme="light"] .ob-icon-badge {
  color: #6366f1 !important;
  background: rgba(99, 102, 241, 0.08) !important;
  border: 1px solid rgba(99, 102, 241, 0.2) !important;
  box-shadow: none !important;
}

/* --- Back buttons --- */
[data-theme="light"] .ps-back-btn,
[data-theme="light"] .ob-back-btn {
  color: #4338ca !important;
  background: rgba(99, 102, 241, 0.08) !important;
  border: 1px solid rgba(99, 102, 241, 0.22) !important;
}

/* --- Card labels (NAME / AGE / WEIGHT / HEIGHT / GENDER) --- */
[data-theme="light"] .ps-card-label {
  color: #5b21b6 !important;
}

/* === STEP 1 CARDS === */
[data-theme="light"] .ps-card {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
  color: #1e1b4b !important;
  box-shadow: 0 4px 18px rgba(79, 70, 229, 0.07), inset 0 1px 0 #ffffff !important;
  backdrop-filter: blur(14px) !important;
  -webkit-backdrop-filter: blur(14px) !important;
}

/* --- Name input --- */
[data-theme="light"] .ps-name-input {
  color: #1e1b4b !important;
  background: transparent !important;
}
[data-theme="light"] .ps-name-input::placeholder {
  color: rgba(30, 27, 75, 0.38) !important;
}

/* --- Age arc SVG track --- */
[data-theme="light"] #ps-arc-fill + path,
[data-theme="light"] .ps-age-svg path:first-child {
  stroke: rgba(30, 27, 75, 0.08) !important;
}
[data-theme="light"] .ps-age-num-input {
  color: #1e1b4b !important;
}
[data-theme="light"] .ps-age-yrs {
  color: #5b21b6 !important;
}
[data-theme="light"] .ps-age-hint {
  color: #4338ca !important;
}
[data-theme="light"] .ps-age-minmax {
  color: #5b21b6 !important;
}
[data-theme="light"] #ps-arc-thumb {
  fill: #f5f3ff !important;
}

/* --- Gender buttons --- */
[data-theme="light"] .ps-gender-btn {
  color: #3730a3 !important;
  background: #ffffff !important;
  border: 1px solid rgba(99, 102, 241, 0.25) !important;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.07) !important;
}
[data-theme="light"] .ps-gender-active {
  color: #ffffff !important;
  background: #6366f1 !important;
  border-color: transparent !important;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.3) !important;
}

/* --- Weight stepper --- */
[data-theme="light"] .ps-weight-input {
  color: #1e1b4b !important;
}
[data-theme="light"] .ps-step-btn {
  color: #4f46e5 !important;
  background: rgba(99, 102, 241, 0.08) !important;
  border: 1px solid rgba(99, 102, 241, 0.22) !important;
}

/* --- Height card --- */
[data-theme="light"] .ps-height-hint {
  color: #4338ca !important;
}
[data-theme="light"] .ps-height-enter-label {
  color: #5b21b6 !important;
}
[data-theme="light"] .ps-height-input {
  color: #1e1b4b !important;
  text-shadow: none !important;
}
[data-theme="light"] .ps-height-unit {
  color: #5b21b6 !important;
}
[data-theme="light"] .ps-ruler-clip {
  background: rgba(245, 242, 255, 0.85) !important;
  border: 1px solid rgba(139, 92, 246, 0.25) !important;
}
[data-theme="light"] .ps-ruler-center-line {
  background: #6366f1 !important;
}
[data-theme="light"] .ps-ruler-pill {
  background: #6366f1 !important;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.3) !important;
  color: #ffffff !important;
}
[data-theme="light"] .ps-height-input-row {
  background: rgba(245, 242, 255, 0.9) !important;
  border: 1.5px solid rgba(99, 102, 241, 0.3) !important;
}
[data-theme="light"] .ps-height-tip-box {
  background: rgba(238, 235, 255, 0.8) !important;
  border: 1px solid rgba(99, 102, 241, 0.18) !important;
}
[data-theme="light"] .ps-height-tip-box svg {
  color: #7c3aed !important;
}
[data-theme="light"] .ps-height-tip-box p {
  color: #4338ca !important;
}
[data-theme="light"] .ps-height-tip-box strong {
  color: #1e1b4b !important;
}

/* --- Next button --- */
[data-theme="light"] .ps-next-btn,
[data-theme="light"] .ob-primary-btn {
  background: #6366f1 !important;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.3) !important;
  color: #ffffff !important;
}

/* === STEP 2 — CONDITIONS CARDS === */
[data-theme="light"] .ob-conditions-grid .cond-btn {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
  color: #1e1b4b !important;
  box-shadow: 0 3px 14px rgba(79, 70, 229, 0.07), inset 0 1px 0 #ffffff !important;
  backdrop-filter: blur(14px) !important;
}

[data-theme="light"] .cond-lbl {
  color: #1e1b4b !important;
}

[data-theme="light"] .ob-conditions-grid .cond-btn:hover {
  background: #ffffff !important;
  border-color: rgba(99, 102, 241, 0.4) !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.13), inset 0 1px 0 #ffffff !important;
  transform: translateY(-2px) !important;
}

/* None / Healthy wide button */
[data-theme="light"] .ob-wide strong {
  color: #1e1b4b !important;
}
[data-theme="light"] .ob-wide small {
  color: #475569 !important;
}
[data-theme="light"] .ob-option-icon {
  color: #7c3aed !important;
  background: rgba(124, 58, 237, 0.1) !important;
  border: 1px solid rgba(124, 58, 237, 0.22) !important;
}
[data-theme="light"] .ob-option-icon.teal {
  color: #0d9488 !important;
  background: rgba(13, 148, 136, 0.1) !important;
  border: 1px solid rgba(13, 148, 136, 0.2) !important;
}

/* --- Step 2 ob-choice cards (Activity, Goal) --- */
[data-theme="light"] .ob-choice {
  background: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid rgba(139, 92, 246, 0.2) !important;
  color: #1e1b4b !important;
  box-shadow: 0 3px 14px rgba(79, 70, 229, 0.07), inset 0 1px 0 #ffffff !important;
  backdrop-filter: blur(14px) !important;
}
[data-theme="light"] .ob-choice svg {
  color: #7c3aed !important;
}
[data-theme="light"] .ob-choice strong {
  color: #1e1b4b !important;
}
[data-theme="light"] .ob-choice small {
  color: #475569 !important;
}
[data-theme="light"] .ob-choice:hover {
  background: #ffffff !important;
  border-color: rgba(99, 102, 241, 0.4) !important;
  box-shadow: 0 6px 20px rgba(99, 102, 241, 0.13), inset 0 1px 0 #ffffff !important;
  transform: translateY(-2px) !important;
}

/* --- Active / Selected cards (all three grids) --- */
[data-theme="light"] .ob-choice.active,
[data-theme="light"] .ob-conditions-grid .cond-btn.active,
[data-theme="light"] .ob-allergy-grid .allergy-btn.active {
  background: rgba(99, 102, 241, 0.1) !important;
  border: 1.5px solid #6366f1 !important;
  color: #0f172a !important;
  box-shadow: none !important;
}

/* === STEP 3 — ALLERGIES (LIGHT MODE) === */
[data-theme="light"] .ob-allergy-grid .allergy-btn {
  background: #ffffff !important;
  border: 1px solid #e2e8f0 !important;
  color: #0f172a !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03) !important;
}

[data-theme="light"] .ob-allergy-grid .allergy-btn .ob-option-icon {
  background: rgba(99, 102, 241, 0.08) !important;
  border: 1px solid rgba(99, 102, 241, 0.2) !important;
  color: #6366f1 !important;
}

@media (hover: hover) {
  [data-theme="light"] .ob-allergy-grid .allergy-btn:hover {
    background: #f8fafc !important;
    border-color: rgba(99, 102, 241, 0.35) !important;
  }
}

[data-theme="light"] .ob-allergy-grid .allergy-btn.active {
  background: rgba(99, 102, 241, 0.1) !important;
  border: 1.5px solid #6366f1 !important;
  color: #0f172a !important;
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.15) !important;
  transform: none !important;
}

[data-theme="light"] .ob-allergy-grid .allergy-btn.active .ob-option-icon {
  background: #6366f1 !important;
  border-color: #6366f1 !important;
  color: #ffffff !important;
}

/* --- Diet preference segmented control --- */
[data-theme="light"] .ob-segmented {
  background: rgba(238, 235, 255, 0.85) !important;
  border: 1px solid rgba(99, 102, 241, 0.22) !important;
  box-shadow: inset 0 1px 0 #ffffff !important;
  backdrop-filter: blur(14px) !important;
}
[data-theme="light"] .diet-choice {
  color: #6b7280 !important;
  background: transparent !important;
}
[data-theme="light"] .diet-choice.active {
  color: #ffffff !important;
  background: #6366f1 !important;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.25) !important;
}

/* --- Diet info bar --- */
[data-theme="light"] .ob-info-bar {
  background: rgba(238, 235, 255, 0.85) !important;
  border: 1px solid rgba(99, 102, 241, 0.2) !important;
  color: #3730a3 !important;
  box-shadow: inset 0 1px 0 #ffffff !important;
  backdrop-filter: blur(14px) !important;
}

[data-theme="light"] .ob-cuisine-panel {
  background: #ffffff !important;
  border: 1px solid rgba(13, 148, 136, 0.22) !important;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08) !important;
}

[data-theme="light"] .ob-cuisine-head h3 {
  color: #0f172a !important;
}

[data-theme="light"] .ob-cuisine-head p {
  color: #475569 !important;
}

[data-theme="light"] .ob-cuisine-count-badge {
  background: rgba(20, 184, 166, 0.1) !important;
  border-color: rgba(13, 148, 136, 0.3) !important;
  color: #0f766e !important;
}

[data-theme="light"] .ob-cuisine-search-wrap {
  background: #f8fafc !important;
  border-color: #cbd5e1 !important;
}

[data-theme="light"] .ob-cuisine-search-wrap input {
  color: #0f172a !important;
}

[data-theme="light"] .ob-cuisine-search-wrap input::placeholder {
  color: #94a3b8 !important;
}

[data-theme="light"] button.ob-cuisine-tool,
[data-theme="light"] .ob-cuisine-tool {
  background: #ffffff !important;
  border: 1.5px solid rgba(13, 148, 136, 0.28) !important;
  color: #0f766e !important;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.06) !important;
}

[data-theme="light"] button.ob-cuisine-tool:hover,
[data-theme="light"] .ob-cuisine-tool:hover {
  background: #ccfbf1 !important;
  border-color: #0d9488 !important;
  color: #0f766e !important;
}

[data-theme="light"] button.ob-cuisine-tool-danger,
[data-theme="light"] .ob-cuisine-tool-danger {
  background: #fff1f2 !important;
  border: 1.5px solid rgba(225, 29, 72, 0.28) !important;
  color: #be123c !important;
}

[data-theme="light"] button.ob-cuisine-tool-danger:hover,
[data-theme="light"] .ob-cuisine-tool-danger:hover {
  background: #ffe4e6 !important;
  border-color: #e11d48 !important;
}

[data-theme="light"] button.ob-cuisine-filter-pill,
[data-theme="light"] .ob-cuisine-filter-pill {
  background: #f1f5f9 !important;
  border: 1.5px solid #cbd5e1 !important;
  color: #334155 !important;
}

[data-theme="light"] button.ob-cuisine-filter-pill.active,
[data-theme="light"] .ob-cuisine-filter-pill.active {
  background: linear-gradient(135deg, #0d9488, #7c3aed) !important;
  color: #ffffff !important;
  border-color: #0d9488 !important;
  box-shadow: 0 3px 10px rgba(13, 148, 136, 0.25) !important;
}

[data-theme="light"] .ob-cuisine-chip {
  background: #f8fafc !important;
  border-color: #e2e8f0 !important;
  color: #1e293b !important;
}

[data-theme="light"] .ob-cuisine-chip:hover {
  background: #f0fdfa !important;
  border-color: #0d9488 !important;
}

[data-theme="light"] .ob-cuisine-chip.active {
  background: #ccfbf1 !important;
  border-color: #0d9488 !important;
  box-shadow: 0 4px 14px rgba(13, 148, 136, 0.18) !important;
}

[data-theme="light"] .ob-cuisine-name {
  color: #0f172a !important;
}

[data-theme="light"] .ob-cuisine-recipes {
  color: #64748b !important;
}

[data-theme="light"] .ob-cuisine-chip.active .ob-cuisine-recipes {
  color: #0f766e !important;
}

/* --- Footer divider & privacy text --- */
[data-theme="light"] .ob-footer {
  border-top: 1px solid rgba(99, 102, 241, 0.12) !important;
}
[data-theme="light"] .ob-privacy {
  color: #6b7280 !important;
}

/* Backing hidden select elements for state binding */
.ob-hidden-select,
.ps-hidden-select,
select#profile-activity,
select#profile-goal,
select#profile-dietpref,
select#profile-gender {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  height: 0 !important;
  width: 0 !important;
  position: absolute !important;
  pointer-events: none !important;
}

/* Responsive Media Queries (Tablet & Mobile) */
@media (max-width: 868px) {
  .ps-screen,
  .ob-screen,
  .ob-final {
    max-width: 640px !important;
    margin: 1.5rem auto 2rem auto !important;
    padding: 1.75rem 1.75rem 2rem 1.75rem !important;
  }
}

@media (max-width: 600px) {
  .ps-screen,
  .ob-screen,
  .ob-final {
    max-width: 100% !important;
    margin: 1rem auto 1.5rem auto !important;
    padding: 1.25rem 1.1rem 1.5rem 1.1rem !important;
    border-radius: 1.25rem !important;
  }

  .ps-title,
  .ob-title {
    font-size: 1.85rem !important;
  }

  .ps-subtitle,
  .ob-subtitle {
    font-size: 0.92rem !important;
  }

  .ob-conditions-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  .ob-card-grid {
    grid-template-columns: repeat(3, 1fr) !important;
  }

  .ob-allergy-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0.65rem !important;
  }

  .ob-cuisine-head,
  .ob-cuisine-actions {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  .ob-cuisine-count {
    width: fit-content !important;
  }

  .ob-cuisine-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-height: 240px !important;
  }

  .ob-section {
    grid-template-columns: 24px 1fr !important;
    gap: 0.85rem !important;
  }

  .ob-section-num,
  .ob-mini-label span {
    width: 24px !important;
    height: 24px !important;
    font-size: 0.75rem !important;
  }
}

/* ==========================================================================
   Password Checklist Card (Signup Real-Time Validation - Dark & Light Optimized)
   ========================================================================== */
.pwd-checklist-card {
  margin-top: 0.75rem;
  padding: 0.85rem 1.15rem;
  border-radius: 0.85rem;
  background: rgba(71, 85, 105, 0.75); /* Slate gray matching reference spec */
  border: 1px solid rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

[data-theme="light"] .pwd-checklist-card {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.pwd-check-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.3;
  transition: color 0.25s ease, opacity 0.25s ease;
}

/* Unfulfilled Rule State */
.pwd-check-item.invalid {
  color: rgba(226, 232, 240, 0.65);
}

[data-theme="light"] .pwd-check-item.invalid {
  color: #64748b;
}

.pwd-check-item.invalid .pwd-check-icon {
  color: #f87171;
  font-size: 0.78rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Fulfilled Rule State */
.pwd-check-item.valid {
  color: #34d399; /* Vibrant emerald green in Dark mode */
  font-weight: 600;
}

[data-theme="light"] .pwd-check-item.valid {
  color: #059669; /* Emerald green in Light mode */
  font-weight: 600;
}

.pwd-check-item.valid .pwd-check-icon {
  color: #34d399;
  font-size: 0.78rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Final onboarding cuisine picker override */
#screen-step3 .ob-cuisine-panel {
  margin-top: 0.25rem !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

#screen-step3 .ob-cuisine-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)) !important;
  gap: 0.65rem !important;
  width: 100% !important;
  max-height: 280px !important;
  overflow-y: auto !important;
  box-sizing: border-box !important;
}

/* ============================================================
   ONBOARDING STEP 4 — CUISINE SELECTION
   ============================================================ */

.ob-cuisine-screen {
  max-width: 680px !important;
}

/* ── Body wrapper ── */
.ob-cuisine-body {
  display: flex !important;
  flex-direction: column !important;
  gap: 1rem !important;
  margin-top: 1.5rem !important;
}

/* ── Search bar ── */
.ob-cuisine-search-wrap {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
}

.ob-cuisine-search-icon {
  position: absolute !important;
  left: 0.9rem !important;
  color: rgba(196, 181, 253, 0.6) !important;
  pointer-events: none !important;
  flex-shrink: 0 !important;
}

.ob-cuisine-search {
  width: 100% !important;
  background: rgba(255, 255, 255, 0.05) !important;
  border: 1px solid rgba(168, 85, 247, 0.25) !important;
  border-radius: 0.85rem !important;
  color: #f3f0ff !important;
  font-size: 0.9rem !important;
  padding: 0.7rem 1rem 0.7rem 2.6rem !important;
  outline: none !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
  box-sizing: border-box !important;
}

.ob-cuisine-search::placeholder {
  color: rgba(196, 181, 253, 0.4) !important;
}

.ob-cuisine-search:focus {
  border-color: rgba(168, 85, 247, 0.6) !important;
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.12) !important;
}

/* ── Meta row (hint + count) ── */
.ob-cuisine-meta {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: wrap !important;
  gap: 0.4rem !important;
}

.ob-cuisine-hint {
  font-size: 0.8rem !important;
  color: rgba(196, 181, 253, 0.55) !important;
  font-style: italic !important;
}

.ob-cuisine-count {
  font-size: 0.8rem !important;
  font-weight: 700 !important;
  color: rgba(196, 181, 253, 0.55) !important;
  padding: 0.25rem 0.7rem !important;
  border-radius: 999px !important;
  background: rgba(168, 85, 247, 0.08) !important;
  border: 1px solid rgba(168, 85, 247, 0.2) !important;
  transition: all 0.25s !important;
  white-space: nowrap !important;
}

.ob-cuisine-count.has-selection {
  color: #c084fc !important;
  background: rgba(168, 85, 247, 0.18) !important;
  border-color: rgba(168, 85, 247, 0.45) !important;
  box-shadow: 0 0 10px rgba(168, 85, 247, 0.2) !important;
}

/* ── Cuisine Grid ── */
.ob-cuisine-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important;
  gap: 0.65rem !important;
  max-height: 340px !important;
  overflow-y: auto !important;
  padding-right: 0.25rem !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(168, 85, 247, 0.3) transparent !important;
}

.ob-cuisine-grid::-webkit-scrollbar {
  width: 5px !important;
}

.ob-cuisine-grid::-webkit-scrollbar-track {
  background: transparent !important;
}

.ob-cuisine-grid::-webkit-scrollbar-thumb {
  background: rgba(168, 85, 247, 0.3) !important;
  border-radius: 99px !important;
}

/* ── Cuisine Card ── */
.ob-cuisine-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.3rem !important;
  position: relative !important;
  padding: 0.9rem 0.6rem 0.75rem 0.6rem !important;
  border-radius: 1rem !important;
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1.5px solid rgba(255, 255, 255, 0.07) !important;
  cursor: pointer !important;
  transition: all 0.22s cubic-bezier(0.4, 0, 0.2, 1) !important;
  text-align: center !important;
  overflow: hidden !important;
  user-select: none !important;
  min-height: 90px !important;
}

.ob-cuisine-card::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 !important;
  border-radius: inherit !important;
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.12), rgba(99, 102, 241, 0.06)) !important;
  opacity: 0 !important;
  transition: opacity 0.22s !important;
}

.ob-cuisine-card:hover {
  border-color: rgba(168, 85, 247, 0.4) !important;
  transform: translateY(-2px) scale(1.02) !important;
  box-shadow: 0 6px 24px rgba(168, 85, 247, 0.18) !important;
}

.ob-cuisine-card:hover::before {
  opacity: 1 !important;
}

.ob-cuisine-card.selected {
  background: rgba(168, 85, 247, 0.15) !important;
  border-color: rgba(168, 85, 247, 0.65) !important;
  box-shadow: 0 0 0 2px rgba(168, 85, 247, 0.3), 0 6px 20px rgba(168, 85, 247, 0.2) !important;
}

.ob-cuisine-card.selected::before {
  opacity: 1 !important;
}

/* Emoji */
.ob-cuisine-emoji {
  font-size: 1.6rem !important;
  line-height: 1 !important;
  display: block !important;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3)) !important;
  transition: transform 0.22s !important;
  position: relative !important;
  z-index: 1 !important;
}

.ob-cuisine-card:hover .ob-cuisine-emoji,
.ob-cuisine-card.selected .ob-cuisine-emoji {
  transform: scale(1.15) !important;
}

/* Cuisine name label */
.ob-cuisine-name {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  color: rgba(243, 240, 255, 0.9) !important;
  line-height: 1.2 !important;
  position: relative !important;
  z-index: 1 !important;
}

/* Recipe count sub-label */
.ob-cuisine-recipes {
  font-size: 0.68rem !important;
  color: rgba(196, 181, 253, 0.5) !important;
  position: relative !important;
  z-index: 1 !important;
}

.ob-cuisine-card.selected .ob-cuisine-recipes {
  color: rgba(196, 181, 253, 0.75) !important;
}

/* Check icon — shown on selected */
.ob-cuisine-check {
  position: absolute !important;
  top: 6px !important;
  right: 7px !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  background: rgba(168, 85, 247, 0.9) !important;
  display: grid !important;
  place-items: center !important;
  color: white !important;
  opacity: 0 !important;
  transform: scale(0.5) !important;
  transition: all 0.22s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  box-shadow: 0 2px 8px rgba(168, 85, 247, 0.5) !important;
}

.ob-cuisine-card.selected .ob-cuisine-check {
  opacity: 1 !important;
  transform: scale(1) !important;
}

/* ── Skeleton loader ── */
.ob-cuisine-skeleton {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important;
  gap: 0.65rem !important;
}

.ob-cuisine-skel-card {
  height: 90px !important;
  border-radius: 1rem !important;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0.04) 25%,
    rgba(168,85,247,0.08) 50%,
    rgba(255,255,255,0.04) 75%
  ) !important;
  background-size: 200% 100% !important;
  animation: ob-skel-shimmer 1.6s infinite !important;
}

@keyframes ob-skel-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── Empty / error state ── */
.ob-cuisine-empty {
  grid-column: 1 / -1 !important;
  text-align: center !important;
  padding: 2rem 1rem !important;
  color: rgba(196, 181, 253, 0.5) !important;
  font-size: 0.9rem !important;
}

/* ── Selected chips strip ── */
.ob-cuisine-chips {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 0.45rem !important;
  min-height: 0 !important;
}

.ob-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.3rem !important;
  padding: 0.3rem 0.55rem 0.3rem 0.65rem !important;
  border-radius: 999px !important;
  background: rgba(168, 85, 247, 0.18) !important;
  border: 1px solid rgba(168, 85, 247, 0.4) !important;
  color: #c084fc !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  animation: chip-pop 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

@keyframes chip-pop {
  from { transform: scale(0.7); opacity: 0; }
  to   { transform: scale(1); opacity: 1; }
}

.ob-chip-remove {
  display: grid !important;
  place-items: center !important;
  width: 16px !important;
  height: 16px !important;
  border-radius: 50% !important;
  background: rgba(168, 85, 247, 0.3) !important;
  border: none !important;
  cursor: pointer !important;
  color: #c084fc !important;
  padding: 0 !important;
  transition: background 0.15s, transform 0.15s !important;
  flex-shrink: 0 !important;
}

.ob-chip-remove:hover {
  background: rgba(239, 68, 68, 0.35) !important;
  color: #f87171 !important;
  transform: scale(1.15) !important;
}

/* ── Responsive ── */
@media (max-width: 480px) {
  .ob-cuisine-grid {
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)) !important;
    max-height: 300px !important;
  }

  .ob-cuisine-skeleton {
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)) !important;
  }

  .ob-cuisine-card {
    min-height: 82px !important;
    padding: 0.75rem 0.5rem !important;
  }

  .ob-cuisine-emoji {
    font-size: 1.35rem !important;
  }

  .ob-cuisine-name {
    font-size: 0.72rem !important;
  }

  .ob-cuisine-recipes {
    font-size: 0.62rem !important;
  }
}

[data-theme="light"] .ob-cuisine-card {
  background: rgba(255, 255, 255, 0.7) !important;
  border-color: rgba(139, 92, 246, 0.15) !important;
}

[data-theme="light"] .ob-cuisine-card:hover {
  border-color: rgba(139, 92, 246, 0.4) !important;
  box-shadow: 0 6px 20px rgba(139, 92, 246, 0.12) !important;
}

[data-theme="light"] .ob-cuisine-card.selected {
  background: rgba(168, 85, 247, 0.1) !important;
  border-color: rgba(139, 92, 246, 0.5) !important;
}

[data-theme="light"] .ob-cuisine-name {
  color: rgba(30, 15, 60, 0.9) !important;
}

[data-theme="light"] .ob-cuisine-search {
  background: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(139, 92, 246, 0.25) !important;
  color: #1e0f3c !important;
}

[data-theme="light"] .ob-cuisine-search:focus {
  border-color: rgba(139, 92, 246, 0.5) !important;
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.1) !important;
}

[data-theme="light"] .ob-cuisine-hint,
[data-theme="light"] .ob-cuisine-count {
  color: rgba(109, 40, 217, 0.6) !important;
}

[data-theme="light"] .ob-cuisine-count.has-selection {
  color: #7c3aed !important;
  background: rgba(139, 92, 246, 0.12) !important;
}

[data-theme="light"] .ob-cuisine-recipes {
  color: rgba(109, 40, 217, 0.55) !important;
}

/* ── Live Recipe Pool Target Progress Card ── */
.ob-pool-progress-card {
  background: rgba(15, 12, 35, 0.6) !important;
  border: 1px solid rgba(168, 85, 247, 0.25) !important;
  border-radius: 12px !important;
  padding: 0.85rem 1rem !important;
  margin-bottom: 0.85rem !important;
  backdrop-filter: blur(8px) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2) !important;
}

.ob-pool-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 0.45rem !important;
}

.ob-pool-title {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  color: #e9d5ff !important;
}

.ob-pool-badge {
  font-size: 0.78rem !important;
  font-weight: 700 !important;
  padding: 0.2rem 0.6rem !important;
  border-radius: 999px !important;
  transition: all 0.3s ease !important;
}

.ob-pool-badge.badge-invalid {
  background: rgba(239, 68, 68, 0.15) !important;
  color: #fca5a5 !important;
  border: 1px solid rgba(239, 68, 68, 0.4) !important;
}

.ob-pool-badge.badge-warning {
  background: rgba(245, 158, 11, 0.15) !important;
  color: #fcd34d !important;
  border: 1px solid rgba(245, 158, 11, 0.4) !important;
}

.ob-pool-badge.badge-valid {
  background: rgba(16, 185, 129, 0.18) !important;
  color: #6ee7b7 !important;
  border: 1px solid rgba(16, 185, 129, 0.4) !important;
  box-shadow: 0 0 10px rgba(16, 185, 129, 0.25) !important;
}

.ob-pool-bar-track {
  width: 100% !important;
  height: 8px !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border-radius: 999px !important;
  overflow: hidden !important;
  margin-bottom: 0.4rem !important;
}

.ob-pool-bar-fill {
  height: 100% !important;
  border-radius: 999px !important;
  transition: width 0.4s ease, background-color 0.4s ease !important;
}

.ob-pool-hint {
  font-size: 0.78rem !important;
  color: rgba(233, 213, 255, 0.8) !important;
  margin: 0 !important;
  line-height: 1.35 !important;
}

.count-invalid {
  color: #fca5a5 !important;
  background: rgba(239, 68, 68, 0.12) !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
}

.count-warning {
  color: #fcd34d !important;
  background: rgba(245, 158, 11, 0.12) !important;
  border-color: rgba(245, 158, 11, 0.3) !important;
}

.count-valid {
  color: #6ee7b7 !important;
  background: rgba(16, 185, 129, 0.15) !important;
  border-color: rgba(16, 185, 129, 0.4) !important;
}

/* Modal Cancel / Close Button */
.modal-cancel-btn {
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #94a3b8;
  width: 2.2rem;
  height: 2.2rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-left: auto;
  flex-shrink: 0;
}

.modal-cancel-btn:hover {
  background: rgba(239, 68, 68, 0.2);
  border-color: rgba(239, 68, 68, 0.4);
  color: #f87171;
  transform: scale(1.05);
}

.modal-cancel-btn.hidden {
  display: none !important;
}

/* NutryX Go brand lockup: keep the transparent banner clean in both themes. */
a.logo {
  background: transparent !important;
  -webkit-text-fill-color: currentColor !important;
  color: inherit !important;
}

a.logo .brand-lockup {
  background: transparent !important;
  -webkit-text-fill-color: initial !important;
}

/* Cuisine selection action: clear, keyboard-friendly bulk selection control. */
.ob-cuisine-bulk-actions {
  display: flex !important;
  align-items: stretch !important;
  gap: 0.6rem !important;
  width: 100% !important;
}

.ob-cuisine-screen .ob-cuisine-search-wrap {
  flex: 0 0 auto !important;
  height: 40px !important;
  min-height: 40px !important;
}

.ob-select-all-btn {
  appearance: none !important;
  flex: 1 1 auto !important;
  display: flex !important;
  align-items: center !important;
  gap: 0.75rem !important;
  padding: 0.7rem 0.85rem !important;
  border: 1px solid rgba(168, 85, 247, 0.3) !important;
  border-radius: 0.9rem !important;
  background: rgba(168, 85, 247, 0.08) !important;
  color: #f3f0ff !important;
  text-align: left !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease !important;
}

.ob-clear-cuisines-btn {
  appearance: none !important;
  flex: 0 0 auto !important;
  min-width: 124px !important;
  padding: 0.7rem 0.85rem !important;
  border: 1px solid rgba(239, 68, 68, 0.28) !important;
  border-radius: 0.9rem !important;
  background: rgba(239, 68, 68, 0.06) !important;
  color: #fca5a5 !important;
  font: inherit !important;
  font-size: 0.76rem !important;
  font-weight: 800 !important;
  cursor: pointer !important;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease !important;
}

.ob-clear-cuisines-btn:hover,
.ob-clear-cuisines-btn:focus-visible {
  border-color: rgba(239, 68, 68, 0.58) !important;
  background: rgba(239, 68, 68, 0.12) !important;
  color: #fecaca !important;
  outline: none !important;
}

.ob-select-all-btn:hover,
.ob-select-all-btn:focus-visible {
  border-color: rgba(168, 85, 247, 0.65) !important;
  background: rgba(168, 85, 247, 0.14) !important;
  box-shadow: 0 0 0 3px rgba(168, 85, 247, 0.1) !important;
  outline: none !important;
}

.ob-select-all-btn.selected {
  border-color: rgba(45, 212, 191, 0.65) !important;
  background: rgba(20, 184, 166, 0.12) !important;
}

.ob-select-all-icon {
  display: inline-grid !important;
  place-items: center !important;
  width: 2rem !important;
  height: 2rem !important;
  flex: 0 0 2rem !important;
  border-radius: 0.65rem !important;
  color: #c084fc !important;
  background: rgba(168, 85, 247, 0.16) !important;
}

.ob-select-all-btn.selected .ob-select-all-icon {
  color: #5eead4 !important;
  background: rgba(20, 184, 166, 0.18) !important;
}

.ob-select-all-copy {
  display: flex !important;
  flex-direction: column !important;
  gap: 0.12rem !important;
  min-width: 0 !important;
}

.ob-select-all-copy strong {
  font-size: 0.84rem !important;
  line-height: 1.1 !important;
}

.ob-select-all-copy small {
  color: rgba(196, 181, 253, 0.62) !important;
  font-size: 0.72rem !important;
  line-height: 1.2 !important;
}

.ob-select-all-state {
  margin-left: auto !important;
  flex-shrink: 0 !important;
  color: #c084fc !important;
  font-size: 0.74rem !important;
  font-weight: 800 !important;
}

.ob-select-all-btn.selected .ob-select-all-state {
  color: #5eead4 !important;
}

[data-theme="light"] .ob-select-all-btn {
  background: rgba(139, 92, 246, 0.07) !important;
  border-color: rgba(139, 92, 246, 0.22) !important;
  color: #261447 !important;
}

[data-theme="light"] .ob-select-all-copy small {
  color: rgba(109, 40, 217, 0.62) !important;
}

[data-theme="light"] .ob-clear-cuisines-btn {
  border-color: rgba(220, 38, 38, 0.24) !important;
  background: rgba(220, 38, 38, 0.05) !important;
  color: #b91c1c !important;
}

[data-theme="light"] .ob-clear-cuisines-btn:hover,
[data-theme="light"] .ob-clear-cuisines-btn:focus-visible {
  border-color: rgba(220, 38, 38, 0.5) !important;
  background: rgba(220, 38, 38, 0.1) !important;
  color: #991b1b !important;
}

@media (max-width: 520px) {
  .ob-cuisine-bulk-actions {
    flex-direction: column !important;
  }

  .ob-clear-cuisines-btn {
    width: 100% !important;
  }
}

[data-theme="light"] .ob-pool-progress-card {
  background: rgba(255, 255, 255, 0.88) !important;
  border-color: rgba(139, 92, 246, 0.24) !important;
  box-shadow: 0 4px 16px rgba(76, 29, 149, 0.1) !important;
}

[data-theme="light"] .ob-pool-title {
  color: #4c1d95 !important;
}

[data-theme="light"] .ob-pool-hint {
  color: rgba(76, 29, 149, 0.76) !important;
}

[data-theme="light"] .ob-pool-bar-track {
  background: rgba(109, 40, 217, 0.12) !important;
}

[data-theme="light"] .ob-pool-badge.badge-invalid {
  background: rgba(239, 68, 68, 0.1) !important;
  color: #b91c1c !important;
  border-color: rgba(239, 68, 68, 0.28) !important;
}

[data-theme="light"] .ob-pool-badge.badge-warning {
  background: rgba(245, 158, 11, 0.12) !important;
  color: #b45309 !important;
  border-color: rgba(245, 158, 11, 0.3) !important;
}

[data-theme="light"] .ob-pool-badge.badge-valid {
  background: rgba(16, 185, 129, 0.12) !important;
  color: #047857 !important;
  border-color: rgba(16, 185, 129, 0.3) !important;
}



