@import url("https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;0,9..40,800;1,9..40,300&display=swap");[data-app=posture]{--primary:199 89% 39%;--primary-foreground:0 0% 100%;--primary-hover:199 89% 33%;--accent:15 81% 48%;--accent-foreground:0 0% 100%;--background:0 0% 100%;--foreground:199 30% 8%;--card:0 0% 100%;--card-foreground:199 30% 8%;--popover:0 0% 100%;--popover-foreground:199 30% 8%;--secondary:199 30% 95%;--secondary-foreground:199 60% 18%;--muted:199 15% 94%;--muted-foreground:199 10% 44%;--border:199 15% 88%;--input:199 15% 88%;--ring:199 89% 39%;--destructive:0 84% 60%;--destructive-foreground:0 0% 100%;--radius:0.75rem;--font-sans:"DM Sans",system-ui,sans-serif}.dark [data-app=posture],[data-app=posture].dark{--background:199 20% 6%;--foreground:0 0% 95%;--card:199 20% 9%;--card-foreground:0 0% 95%;--popover:199 20% 9%;--popover-foreground:0 0% 95%;--secondary:199 20% 13%;--secondary-foreground:0 0% 92%;--muted:199 15% 14%;--muted-foreground:199 10% 60%;--border:199 15% 20%;--input:199 15% 20%}[data-app=posture]{font-family:var(--font-sans)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}[data-app=posture] .animate-fade-in-up{animation:fadeInUp .55s cubic-bezier(.22,1,.36,1) both}[data-app=posture] .animate-fade-in{animation:fadeIn .4s ease-out both}[data-app=posture] .animate-scale-in{animation:scaleIn .45s cubic-bezier(.22,1,.36,1) both}[data-app=posture] .delay-100{animation-delay:.1s}[data-app=posture] .delay-200{animation-delay:.2s}[data-app=posture] .delay-300{animation-delay:.3s}@media (prefers-reduced-motion:reduce){[data-app=posture] .animate-fade-in,[data-app=posture] .animate-fade-in-up,[data-app=posture] .animate-scale-in{animation:none!important;opacity:1!important;transform:none!important}}[data-app=posture] .section-eyebrow{font-size:.6875rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:hsl(var(--accent));display:block}[data-app=posture] .hero-texture{background-image:radial-gradient(circle at 20% 50%,hsl(199 89% 39%/.04) 0,transparent 50%),radial-gradient(circle at 80% 20%,hsl(15 81% 48%/.05) 0,transparent 40%)}[data-app=posture] .hero-section{position:relative;overflow:hidden}[data-app=posture] .area-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .75rem;border:1.5px solid hsl(var(--border));border-radius:2rem;font-size:.75rem;font-weight:500;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer;transition:all .15s ease;font-family:var(--font-sans);white-space:nowrap}[data-app=posture] .area-chip:hover{border-color:hsl(var(--primary));color:hsl(var(--foreground))}[data-app=posture] .area-chip.active{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}[data-app=posture] .stretch-card{background:hsl(var(--card));border:1.5px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem;transition:border-color .15s ease,box-shadow .15s ease}[data-app=posture] .stretch-card:hover{border-color:hsl(var(--primary)/.3);box-shadow:0 4px 12px hsl(199 30% 10%/.08)}[data-app=posture] .stretch-card.completed{background:hsl(var(--primary)/.04);border-color:hsl(var(--primary)/.3)}[data-app=posture] .area-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;border-radius:99px;font-size:.6875rem;font-weight:600;background:hsl(var(--area-color,199 89% 39%)/.1);color:hsl(var(--area-color,199 89% 39%))}[data-app=posture] .difficulty-tag{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.1rem .4rem;border-radius:99px}[data-app=posture] .difficulty-tag.easy{background:hsl(142 76% 36%/.1);color:hsl(142 76% 30%)}[data-app=posture] .difficulty-tag.medium{background:hsl(38 92% 50%/.1);color:hsl(38 80% 35%)}[data-app=posture] .done-badge{display:inline-flex;padding:.15rem .5rem;border-radius:99px;font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;background:hsl(var(--primary)/.12);color:hsl(var(--primary))}[data-app=posture] .expand-link{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;font-weight:600;color:hsl(var(--primary));background:none;border:none;cursor:pointer;padding:0;font-family:var(--font-sans)}[data-app=posture] .instructions-list{margin:.75rem 0 0;padding-left:1.25rem;list-style:decimal;font-size:.8125rem;color:hsl(var(--foreground));line-height:1.6}[data-app=posture] .instructions-list li{margin-bottom:.375rem;padding-left:.25rem}[data-app=posture] .start-stretch-btn{width:100%;padding:.5rem 1rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;border-radius:var(--radius);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background .15s ease,transform .1s ease;font-family:var(--font-sans)}[data-app=posture] .start-stretch-btn:hover{background:hsl(199 89% 33%);transform:translateY(-1px)}[data-app=posture] .active-overlay{position:fixed;inset:0;z-index:50;background:hsl(var(--background)/.92);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:2rem}[data-app=posture] .active-card{background:hsl(var(--card));border:1.5px solid hsl(var(--border));border-radius:calc(var(--radius) * 2);padding:2.5rem;max-width:440px;width:100%;box-shadow:0 24px 48px hsl(199 30% 10%/.15)}[data-app=posture] .stretch-progress-track{height:6px;background:hsl(var(--muted));border-radius:99px;overflow:hidden}[data-app=posture] .stretch-progress-fill{height:100%;border-radius:99px;background:hsl(var(--primary));transition:width 1s linear}[data-app=posture] .step-btn{padding:.375rem .75rem;border:1.5px solid hsl(var(--border));background:hsl(var(--background));color:hsl(var(--foreground));border-radius:var(--radius);font-size:.75rem;font-weight:600;cursor:pointer;font-family:var(--font-sans)}[data-app=posture] .step-btn-primary{background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-color:hsl(var(--primary))}[data-app=posture] .complete-btn{padding:.75rem 2rem;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border:none;border-radius:var(--radius);font-size:1rem;font-weight:700;cursor:pointer;font-family:var(--font-sans)}[data-app=posture] .cancel-btn{padding:.625rem 1.25rem;background:transparent;color:hsl(var(--muted-foreground));font-size:.875rem;font-weight:600;cursor:pointer;font-family:var(--font-sans)}[data-app=posture] .cancel-btn,[data-app=posture] .reminder-card{border:1.5px solid hsl(var(--border));border-radius:var(--radius)}[data-app=posture] .reminder-card{background:hsl(var(--card));padding:1.25rem}[data-app=posture] .toggle-btn{position:relative;width:44px;height:24px;border-radius:12px;border:none;cursor:pointer;transition:background .2s ease}[data-app=posture] .toggle-btn.off{background:hsl(var(--muted))}[data-app=posture] .toggle-btn.on{background:hsl(var(--primary))}[data-app=posture] .toggle-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:10px;background:white;transition:transform .2s ease;box-shadow:0 1px 3px rgba(0,0,0,.15)}[data-app=posture] .toggle-btn.on .toggle-knob{transform:translateX(20px)}[data-app=posture] .interval-chip{padding:.375rem .75rem;border:1.5px solid hsl(var(--border));border-radius:2rem;font-size:.75rem;font-weight:500;background:hsl(var(--background));color:hsl(var(--muted-foreground));cursor:pointer;transition:all .15s ease;font-family:var(--font-sans)}[data-app=posture] .interval-chip.active{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}[data-app=posture] .log-card{background:hsl(var(--card));border:1.5px solid hsl(var(--border));border-radius:var(--radius);padding:1.25rem}[data-app=posture] .log-entry{display:flex;align-items:center;justify-content:space-between;padding:.375rem 0;border-bottom:1px solid hsl(var(--border)/.5)}[data-app=posture] .log-entry:last-child{border-bottom:none}[data-app=posture] .top-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media (min-width:768px){[data-app=posture] .top-grid{grid-template-columns:1fr 1fr}}[data-app=posture] .stretch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}