/* =========================================================================
   Ramybė – The Reset Protocol :: design system
   Extracted 1:1 from the Lovable web app (index-DSCS01C1.css tokens).
   Colors are stored as HSL channels and used via hsl(var(--x)) exactly like
   the original shadcn/Tailwind setup so the look matches pixel-for-pixel.
   ========================================================================= */

@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap");

:root {
  --background: 270 50% 5%;
  --foreground: 270 10% 95%;
  --card: 270 40% 8%;
  --card-foreground: 270 10% 95%;
  --popover: 270 40% 8%;
  --popover-foreground: 270 10% 95%;
  --primary: 320 80% 55%;
  --primary-foreground: 0 0% 100%;
  --primary-glow: 320 90% 65%;
  --secondary: 270 40% 15%;
  --secondary-foreground: 270 10% 95%;
  --muted: 270 30% 15%;
  --muted-foreground: 270 10% 65%;
  --accent: 200 90% 55%;
  --accent-foreground: 0 0% 100%;
  --destructive: 0 84.2% 60.2%;
  --destructive-foreground: 210 40% 98%;
  --border: 270 30% 20%;
  --input: 270 30% 20%;
  --ring: 320 80% 55%;
  --radius: 1rem;

  /* practice accent colors */
  --heart: 0 85% 60%;
  --breath: 195 100% 55%;
  --muscle: 200 80% 60%;
  --eye: 270 10% 95%;
  --meditation: 270 60% 70%;

  /* gradients + shadows + motion */
  --gradient-primary: linear-gradient(135deg, hsl(280 60% 20%) 0%, hsl(320 70% 35%) 50%, hsl(340 60% 25%) 100%);
  --gradient-card: linear-gradient(145deg, hsl(280 50% 12%) 0%, hsl(320 50% 18%) 100%);
  --gradient-glow: radial-gradient(ellipse at center, hsl(320 80% 50% / 0.3) 0%, transparent 70%);
  --shadow-glow: 0 0 60px hsl(320 80% 50% / 0.3);
  --shadow-card: 0 8px 32px hsl(0 0% 0% / 0.4);
  --transition-smooth: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: "Outfit", system-ui, -apple-system, sans-serif;
  background: hsl(var(--background));
  color: hsl(var(--foreground));
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
}
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 700; letter-spacing: -0.01em; }
img, svg { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }

/* ---- App shell (mobile-first, phone-width canvas centered on desktop) ---- */
.rp-app {
  max-width: 480px;
  margin: 0 auto;
  min-height: 100vh;
  position: relative;
  padding-bottom: 92px; /* room for bottom nav */
  background:
    radial-gradient(ellipse 80% 50% at 50% -10%, hsl(320 60% 20% / 0.35), transparent 60%),
    radial-gradient(ellipse 60% 40% at 100% 20%, hsl(200 60% 25% / 0.18), transparent 60%),
    hsl(var(--background));
  overflow-x: hidden;
}
.rp-container { padding: 24px 16px 0; }

/* ---- Top header ---- */
.rp-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid hsl(var(--border) / 0.5);
  position: sticky; top: 0; z-index: 40;
  background: hsl(var(--background) / 0.7);
  backdrop-filter: blur(16px);
}
.rp-header .rp-brand { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.rp-header-actions { display: flex; align-items: center; gap: 8px; }

/* ---- Lang toggle pill ---- */
.rp-lang { display: inline-flex; background: hsl(var(--secondary) / 0.6); border-radius: 999px; padding: 3px; }
.rp-lang button {
  border: 0; background: transparent; color: hsl(var(--muted-foreground));
  padding: 5px 14px; border-radius: 999px; font-size: 13px; font-weight: 600; transition: var(--transition-smooth);
}
.rp-lang button.is-active { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); box-shadow: var(--shadow-glow); }

.rp-icon-btn {
  width: 38px; height: 38px; display: grid; place-items: center;
  border-radius: 999px; border: 1px solid hsl(var(--border) / 0.6);
  background: hsl(var(--card) / 0.4); color: hsl(var(--foreground));
}
.rp-icon-btn.is-crown { color: hsl(var(--primary)); }

/* ---- Buttons ---- */
.rp-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 0; border-radius: 999px; padding: 14px 28px;
  font-weight: 600; font-size: 15px; transition: var(--transition-smooth);
}
.rp-btn-primary { background: hsl(var(--primary)); color: hsl(var(--primary-foreground)); box-shadow: var(--shadow-glow); }
.rp-btn-primary:hover { background: hsl(var(--primary-glow)); }
.rp-btn-breath { background: hsl(var(--breath)); color: hsl(var(--primary-foreground)); box-shadow: var(--shadow-glow); }
.rp-btn-secondary { background: hsl(var(--secondary)); color: hsl(var(--foreground)); }
.rp-btn-ghost { background: transparent; color: hsl(var(--muted-foreground)); }
.rp-btn-block { width: 100%; }
.rp-btn[disabled] { opacity: 0.5; pointer-events: none; }

/* ---- Badge / chips ---- */
.rp-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 999px; font-size: 12px; font-weight: 600;
  border: 1px solid hsl(var(--primary) / 0.4); color: hsl(var(--primary));
  background: hsl(var(--primary) / 0.1);
}
.rp-badge-premium { color: hsl(var(--primary)); border-color: hsl(var(--primary) / 0.5); background: hsl(var(--primary) / 0.12); }

/* ---- Hero ---- */
.rp-hero { text-align: center; padding: 8px 0 24px; }
.rp-hero h1 {
  font-size: 34px; line-height: 1.1; margin: 14px 0 10px;
  background: linear-gradient(135deg, hsl(var(--primary-glow)), hsl(var(--accent)));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rp-hero p { color: hsl(var(--muted-foreground)); margin: 0 auto; max-width: 30ch; }

/* ---- Cards ---- */
.rp-card {
  background: hsl(var(--card) / 0.6); backdrop-filter: blur(8px);
  border: 1px solid hsl(var(--border) / 0.4); border-radius: var(--radius);
  box-shadow: var(--shadow-card); padding: 20px;
}
.rp-card-grad { background: var(--gradient-card); }

/* practice list card */
.rp-practice-card {
  width: 100%; text-align: left; display: block; margin-bottom: 16px;
  border-radius: var(--radius); border: 1px solid hsl(var(--border) / 0.4);
  background: hsl(var(--card) / 0.5); padding: 18px; transition: var(--transition-smooth);
  position: relative;
}
.rp-practice-card:hover { border-color: hsl(var(--primary) / 0.4); box-shadow: var(--shadow-glow); }
.rp-practice-card .rp-pc-head { display: flex; align-items: center; gap: 14px; }
.rp-practice-card .rp-pc-icon {
  width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; flex: 0 0 auto;
  background: hsl(var(--secondary) / 0.6);
}
.rp-practice-card h3 { font-size: 17px; }
.rp-practice-card .rp-pc-sub { color: hsl(var(--muted-foreground)); font-size: 13px; margin-top: 2px; }
.rp-practice-card .rp-pc-body { margin-top: 14px; color: hsl(var(--muted-foreground)); font-size: 14px; }
.rp-practice-card .rp-pc-benefits { margin-top: 12px; }
.rp-practice-card .rp-pc-benefits h4 { font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: hsl(var(--muted-foreground)); margin-bottom: 6px; }
.rp-practice-card .rp-pc-benefits li { list-style: none; padding-left: 16px; position: relative; margin: 4px 0; font-size: 14px; }
.rp-practice-card .rp-pc-benefits li::before { content: ""; position: absolute; left: 0; top: 8px; width: 6px; height: 6px; border-radius: 999px; background: hsl(var(--accent)); }

/* practice accent icon tints */
.rp-accent-breath { background: hsl(var(--breath) / 0.2); color: hsl(var(--breath)); }
.rp-accent-heart  { background: hsl(var(--heart) / 0.2);  color: hsl(var(--heart)); }
.rp-accent-muscle { background: hsl(var(--muscle) / 0.2); color: hsl(var(--muscle)); }
.rp-accent-eye    { background: hsl(var(--meditation) / 0.2); color: hsl(var(--meditation)); }

.rp-premium-pill {
  position: absolute; top: 12px; right: 12px;
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 999px;
  color: hsl(var(--primary)); background: hsl(var(--primary) / 0.15); border: 1px solid hsl(var(--primary) / 0.4);
}

/* ---- Bottom navigation (app tab bar) ---- */
.rp-bottomnav {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
}
.rp-bottomnav-inner {
  max-width: 480px; margin: 0 auto; padding: 8px 8px calc(8px + env(safe-area-inset-bottom));
  display: flex; align-items: center; justify-content: space-around;
  background: hsl(var(--background) / 0.8); backdrop-filter: blur(20px);
  border-top: 1px solid hsl(var(--border) / 0.5);
}
.rp-bottomnav a {
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  padding: 6px 12px; border-radius: 14px; font-size: 11px; color: hsl(var(--muted-foreground));
  transition: var(--transition-smooth); position: relative; min-width: 56px;
}
.rp-bottomnav a.is-active { color: hsl(var(--primary)); }
.rp-bottomnav a.is-active::before {
  content: ""; position: absolute; inset: 0; background: hsl(var(--primary) / 0.1); border-radius: 14px; z-index: -1;
}

/* ---- Player ---- */
.rp-player { position: fixed; inset: 0; z-index: 60; background:
  radial-gradient(ellipse at center, hsl(320 60% 15% / 0.6), hsl(var(--background)) 70%); overflow: hidden; }
.rp-player-inner { max-width: 480px; margin: 0 auto; min-height: 100vh; display: flex; flex-direction: column; align-items: center; padding: 24px 16px; }
.rp-player-close { position: absolute; top: 20px; right: 20px; }
.rp-player h1 { font-size: 24px; text-align: center; margin: 10px 0; }
.rp-player .rp-player-note { color: hsl(var(--muted-foreground)); font-size: 14px; }

/* breathing pacer circle */
.rp-breath-circle {
  width: 240px; height: 240px; border-radius: 999px; margin: 32px auto; display: grid; place-items: center;
  background: radial-gradient(circle at 50% 40%, hsl(var(--breath) / 0.55), hsl(var(--breath) / 0.15));
  box-shadow: 0 0 80px hsl(var(--breath) / 0.35);
  transition: transform 4s ease-in-out;
}
.rp-breath-circle.inhale { transform: scale(1.15); }
.rp-breath-circle.exhale { transform: scale(0.85); }
.rp-breath-phase { text-transform: uppercase; letter-spacing: 0.1em; color: hsl(var(--breath)); font-weight: 700; }
.rp-breath-count { font-size: 44px; font-weight: 800; }

/* progress bar + transport */
.rp-progress-track { width: 100%; height: 4px; border-radius: 999px; background: hsl(var(--border)); overflow: hidden; margin: 8px 0; }
.rp-progress-fill { height: 100%; background: hsl(var(--primary)); width: 0%; }
.rp-transport { display: flex; align-items: center; justify-content: center; gap: 24px; margin-top: 24px; }
.rp-play {
  width: 74px; height: 74px; border-radius: 999px; border: 0; display: grid; place-items: center;
  background: hsl(var(--breath)); color: #fff; box-shadow: 0 0 40px hsl(var(--breath) / 0.5);
}
.rp-video-wrap { width: 100%; border-radius: var(--radius); overflow: hidden; background: #000; box-shadow: var(--shadow-card); }
/* discourage saving the video */
.rp-video-wrap video { width: 100%; display: block; pointer-events: auto; -webkit-user-select: none; user-select: none; }

/* ---- Progress page ---- */
.rp-mood-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.rp-mood {
  border: 1px solid hsl(var(--border) / 0.4); background: hsl(var(--card) / 0.4); border-radius: 16px;
  padding: 14px 6px; text-align: center; color: hsl(var(--muted-foreground)); transition: var(--transition-smooth);
}
.rp-mood:hover, .rp-mood.is-active { border-color: hsl(var(--primary) / 0.5); background: hsl(var(--primary) / 0.1); color: hsl(var(--foreground)); }
.rp-mood .rp-emoji { font-size: 24px; display: block; margin-bottom: 4px; }

.rp-stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin: 16px 0; }
.rp-stat { border-radius: 20px; padding: 20px; color: #fff; }
.rp-stat.blue { background: linear-gradient(135deg, hsl(220 70% 45%), hsl(250 70% 40%)); }
.rp-stat.pink { background: var(--gradient-primary); }
.rp-stat .rp-stat-num { font-size: 34px; font-weight: 800; }

.rp-level { background: linear-gradient(135deg, hsl(var(--primary) / 0.2), hsl(var(--accent) / 0.1)); border: 1px solid hsl(var(--primary) / 0.3); border-radius: 24px; padding: 20px; }
.rp-xpbar { height: 10px; border-radius: 999px; background: hsl(var(--background) / 0.5); overflow: hidden; margin-top: 8px; }
.rp-xpbar > span { display: block; height: 100%; background: linear-gradient(90deg, hsl(var(--primary)), hsl(var(--accent))); }

.rp-tabs { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 8px; margin: 16px 0; scrollbar-width: none; }
.rp-tabs::-webkit-scrollbar { display: none; }
.rp-tab { white-space: nowrap; border: 1px solid hsl(var(--border) / 0.4); background: hsl(var(--card) / 0.5); border-radius: 999px; padding: 8px 16px; font-size: 13px; color: hsl(var(--muted-foreground)); }
.rp-tab.is-active { background: hsl(var(--primary)); color: #fff; border-color: transparent; }

/* ---- Knowledge accordion ---- */
.rp-accordion { border: 1px solid hsl(var(--border) / 0.4); background: hsl(var(--card) / 0.5); border-radius: var(--radius); margin-bottom: 14px; overflow: hidden; }
.rp-accordion summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 16px; cursor: pointer; }
.rp-accordion summary::-webkit-details-marker { display: none; }
.rp-accordion .rp-acc-body { padding: 0 16px 16px; color: hsl(var(--muted-foreground)); font-size: 14px; }
.rp-acc-body h2 { font-size: 18px; color: hsl(var(--foreground)); margin: 16px 0 8px; }
.rp-acc-body h3 { font-size: 15px; color: hsl(var(--foreground)); margin: 12px 0 6px; }
.rp-acc-body strong { color: hsl(var(--foreground)); }
.rp-acc-body ul { padding-left: 18px; }

/* ---- Settings ---- */
.rp-section-label { text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; color: hsl(var(--muted-foreground)); margin: 22px 0 10px; display: flex; align-items: center; gap: 6px; }
.rp-row { display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: var(--radius); background: hsl(var(--card) / 0.5); border: 1px solid hsl(var(--border) / 0.4); margin-bottom: 10px; }
.rp-row .rp-row-icon { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: hsl(var(--secondary) / 0.6); flex: 0 0 auto; }
.rp-row .rp-row-main { flex: 1; min-width: 0; }
.rp-row .rp-row-sub { color: hsl(var(--muted-foreground)); font-size: 13px; }
.rp-switch { width: 46px; height: 26px; border-radius: 999px; background: hsl(var(--secondary)); position: relative; border: 0; flex: 0 0 auto; }
.rp-switch.on { background: hsl(var(--primary)); }
.rp-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 999px; background: #fff; transition: var(--transition-smooth); }
.rp-switch.on::after { left: 23px; }

/* ---- Pricing ---- */
.rp-plan { position: relative; border-radius: 24px; padding: 24px; margin-bottom: 20px; border: 1px solid hsl(var(--border) / 0.4); background: hsl(var(--card) / 0.6); }
.rp-plan.popular { border-color: hsl(var(--primary) / 0.6); background: var(--gradient-card); box-shadow: var(--shadow-glow); }
.rp-plan .rp-plan-price { font-size: 40px; font-weight: 800; }
.rp-plan .rp-plan-price small { font-size: 15px; font-weight: 400; color: hsl(var(--muted-foreground)); }
.rp-plan ul { list-style: none; padding: 0; margin: 16px 0; }
.rp-plan li { display: flex; align-items: center; gap: 10px; margin: 8px 0; font-size: 14px; }
.rp-plan li svg { color: hsl(140 60% 55%); flex: 0 0 auto; }
.rp-plan-ribbon { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; }
.rp-plan-ribbon .pop { background: hsl(var(--primary)); color: #fff; font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 999px; }
.rp-plan-ribbon .off { background: hsl(140 50% 30%); color: #d9ffe6; font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: 999px; }

/* ---- Auth ---- */
.rp-auth { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 24px; max-width: 480px; margin: 0 auto; }
.rp-auth .rp-brand-lg { font-size: 30px; font-weight: 800; background: linear-gradient(135deg, hsl(var(--primary-glow)), hsl(var(--accent))); -webkit-background-clip: text; background-clip: text; color: transparent; margin: 12px 0 24px; }
.rp-field { margin-bottom: 16px; }
.rp-field label { display: block; font-size: 14px; margin-bottom: 6px; }
.rp-field input { width: 100%; padding: 12px 14px; border-radius: 12px; border: 1px solid hsl(var(--input)); background: hsl(var(--card) / 0.6); color: hsl(var(--foreground)); font-size: 15px; }
.rp-field input:focus { outline: none; border-color: hsl(var(--ring)); box-shadow: 0 0 0 3px hsl(var(--ring) / 0.3); }

/* ---- Locked / paywall overlay for protected media ---- */
.rp-locked {
  border-radius: var(--radius); border: 1px solid hsl(var(--primary) / 0.3);
  background: var(--gradient-card); padding: 32px 20px; text-align: center;
}
.rp-locked svg { margin: 0 auto 12px; color: hsl(var(--primary)); }

/* ---- Onboarding intro long text ---- */
.rp-intro { padding: 8px 4px 24px; }
.rp-intro p { color: hsl(var(--foreground) / 0.85); margin: 14px 0; }
.rp-intro .rp-hl { color: hsl(var(--primary)); font-weight: 600; }
.rp-intro .rp-tagline { text-align: center; font-style: italic; color: hsl(var(--muted-foreground)); margin-top: 24px; }

/* utility */
.rp-center { text-align: center; }
.rp-muted { color: hsl(var(--muted-foreground)); }
.rp-mt { margin-top: 16px; }
.rp-mb { margin-bottom: 16px; }
.rp-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }

/* fade/slide entrance used across the app */
@keyframes rp-fade-up { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.rp-animate { animation: rp-fade-up 0.5s cubic-bezier(0.4, 0, 0.2, 1) both; }
