.notification-bell-container,.notification-bell{position:relative}.notification-bell .notification-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;font-weight:var(--font-weight-bold);line-height:16px;text-align:center;color:var(--white, #fff);background:var(--error, #dc2626);border-radius:var(--radius-full);border:1.5px solid var(--bg-white, #fff)}.notification-dropdown{position:absolute;top:calc(100% + 6px);right:0;width:min(280px,calc(100vw - 32px));min-width:0;max-height:min(320px,60vh);display:flex;flex-direction:column;background:var(--bg-white);border-radius:var(--radius-md);box-shadow:0 4px 20px #0000001f;border:1px solid var(--border-color);z-index:calc(var(--z-index-sticky) + 10);overflow:hidden}.notification-dropdown--empty{max-height:none}.notification-dropdown--empty .notification-dropdown-list{flex:0 0 auto}.notification-dropdown-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid var(--border-color);flex-shrink:0}.notification-dropdown-title{margin:0;font-size:.85rem;font-weight:var(--font-weight-semibold);color:var(--text-primary)}.notification-dropdown-mark-all{padding:2px 6px;font-size:.72rem;font-weight:var(--font-weight-medium);color:var(--primary);background:transparent;border:none;border-radius:var(--border-radius-sm);cursor:pointer;white-space:nowrap}.notification-dropdown-mark-all:hover{background:#7c3aed14}.notification-dropdown-list{overflow-y:auto;overscroll-behavior:contain;flex:1 1 auto;min-height:0;max-height:220px}.notification-dropdown--empty .notification-dropdown-list{max-height:none}.notification-dropdown-empty{padding:12px;text-align:center;color:var(--text-muted);font-size:.8rem}.notification-dropdown-empty p{margin:0}.notification-dropdown-view-all{padding:8px 12px;font-size:.8rem;font-weight:var(--font-weight-semibold);color:var(--primary);background:#7c3aed0f;border:none;border-top:1px solid var(--border-color);cursor:pointer;flex-shrink:0;white-space:nowrap;text-align:center}.notification-dropdown-view-all:hover{background:#7c3aed1a}.notification-dropdown-view-all:active{background:#7c3aed24}.notification-item-btn{display:flex;align-items:flex-start;gap:8px;width:100%;padding:8px 12px;text-align:left;background:transparent;border:none;border-bottom:1px solid var(--border-color);cursor:pointer;font-family:inherit;transition:background .15s ease}.notification-item-btn:last-child{border-bottom:none}.notification-item-btn:hover{background:var(--bg-secondary)}.notification-item-btn.unread{background:#7c3aed0a}.notification-item-btn.unread:hover{background:#7c3aed14}.notification-item-dot{flex-shrink:0;width:8px;height:8px;margin-top:5px;display:flex;align-items:center;justify-content:center}.notification-item-dot-inner{width:6px;height:6px;border-radius:50%;background:var(--primary)}.notification-item-icon{flex-shrink:0;font-size:.95rem;line-height:var(--line-height-tight)}.notification-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.notification-item-title{font-size:.8rem;font-weight:var(--font-weight-semibold);color:var(--text-primary);display:block}.notification-item-message{font-size:.75rem;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-item-time{font-size:.7rem;color:var(--text-muted);margin-top:1px}.notification-item-btn.compact .notification-item-message{-webkit-line-clamp:1}.notification-item-chevron{flex-shrink:0;font-size:1rem;color:var(--text-muted);margin-top:2px}@media (max-width: 768px){.notification-dropdown{left:50%;right:auto;transform:translate(-50%);width:min(260px,calc(100vw - 32px))}}.back-to-top{position:fixed;bottom:96px;right:16px;left:auto;z-index:var(--z-dropdown);width:48px;height:48px;border-radius:50%;border:none;background:var(--gradient-primary);color:var(--white);box-shadow:var(--shadow-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1)}.back-to-top:hover{transform:translateY(var(--card-hover-lift, -4px));box-shadow:0 6px 20px #1f5fbf80}.back-to-top:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (max-width: 768px){.back-to-top{bottom:calc(96px + env(safe-area-inset-bottom,0px));right:max(16px,env(safe-area-inset-right))}}.loading-screen{display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);z-index:var(--z-index-modal)}.loading-screen.fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.loading-screen.inline{position:relative;min-height:400px;width:100%;border-radius:var(--radius-xl, 16px)}.loading-content{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);animation:fadeInUp .4s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.loading-spinner-container{position:relative;width:56px;height:56px}.loading-spinner-ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:3px solid var(--gray-200, #e3ecff);border-top-color:var(--primary, #1f6feb);animation:spin .8s linear infinite}.loading-spinner-ring:nth-child(2),.loading-spinner-ring:nth-child(3){display:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes logoPulse{0%,to{transform:scale(1);box-shadow:0 4px 20px #1f6feb4d}50%{transform:scale(1.05);box-shadow:0 6px 28px #1f6feb66}}.loading-message{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin:0;letter-spacing:.01em}.loading-message:after{content:"";animation:loadingDots 1.5s infinite}@keyframes loadingDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}@media (max-width: 768px){.loading-screen.inline{min-height:300px}.loading-spinner-container{width:48px;height:48px}.loading-spinner-ring{border-width:2.5px}.loading-message{font-size:.9rem}}.route-loading-bar{position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary) 0%,var(--accent, #7c3aed) 100%);z-index:var(--z-banner);pointer-events:none;animation:routeLoadingBar .4s ease-out forwards}@keyframes routeLoadingBar{0%{transform:scaleX(0);transform-origin:left}70%{transform:scaleX(.8);transform-origin:left}to{transform:scaleX(1);transform-origin:right;opacity:0}}.offline-banner{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;background:var(--warning-100);color:var(--warning-800);font-size:.9375rem;font-weight:var(--font-weight-medium);border-bottom:1px solid var(--warning-400);position:sticky;top:0;left:0;right:0;z-index:var(--z-banner);box-shadow:0 2px 8px #00000014}.offline-banner-icon{flex-shrink:0;color:var(--warning-600)}.add-to-home-prompt{position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,0px));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));z-index:var(--z-overlay);background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:var(--white);padding:12px 16px;border-radius:var(--radius-lg);box-shadow:var(--shadow-primary);display:flex;align-items:center;gap:12px;animation:add-to-home-slide-up .3s ease-out}@keyframes add-to-home-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.add-to-home-prompt-close{position:absolute;top:8px;right:8px;background:#fff3;border:none;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--white);cursor:pointer;flex-shrink:0}.add-to-home-prompt-close:hover{background:#ffffff4d}.add-to-home-prompt-content{flex:1;display:flex;align-items:flex-start;gap:12px;min-width:0}.add-to-home-prompt-icon{flex-shrink:0;opacity:.95}.add-to-home-prompt-content strong{display:block;font-size:.95rem;margin-bottom:2px}.add-to-home-prompt-content p{margin:0;font-size:.8rem;opacity:.95;line-height:var(--line-height-snug)}.add-to-home-prompt-btn{flex-shrink:0;background:var(--white);color:var(--primary);border:none;padding:8px 16px;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:.9rem;cursor:pointer}.add-to-home-prompt-btn:hover{background:var(--primary-50)}@media (min-width: 769px){.add-to-home-prompt{display:none}}.bottom-nav--hidden{transform:translateY(100%);pointer-events:none}.bottom-nav{transition:transform var(--transition-base);display:none;position:fixed;bottom:0;left:0;right:0;z-index:var(--z-index-sticky, 100);width:100%;max-width:100vw;margin:0;background:#ffffffd9;border-top:1px solid rgba(0,0,0,.06);padding-top:10px;padding-bottom:max(12px,env(safe-area-inset-bottom));padding-left:max(8px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right));box-shadow:0 -2px 8px #0000000a,0 -4px 16px #0000000f,0 0 0 .5px #00000005;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);animation:bottomNavSlideUp .4s cubic-bezier(.4,0,.2,1) forwards}@keyframes bottomNavSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@media (max-width: 768px){.bottom-nav{display:flex;align-items:flex-end;justify-content:space-around;gap:2px}}.bottom-nav-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:1;min-height:52px;min-width:44px;padding:6px 4px;color:var(--text-muted);text-decoration:none;font-size:.7rem;font-weight:var(--font-weight-medium);transition:transform var(--transition-slow),box-shadow var(--transition-slow),background-color var(--transition-slow);border-radius:var(--radius-lg);-webkit-tap-highlight-color:transparent}.bottom-nav-item:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#2563eb1f;transform:translate(-50%,-50%);transition:width .6s,height .6s;pointer-events:none}.bottom-nav-item:active:before{width:100%;height:100%}.bottom-nav-item:hover{color:var(--primary);transform:translateY(var(--card-hover-lift, -4px))}.bottom-nav-item.active{color:var(--primary);font-weight:var(--font-weight-semibold)}.bottom-nav-item.active:after{content:"";position:absolute;top:4px;left:50%;transform:translate(-50%);width:48px;height:28px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#1f5fbf24,#4f8ad91a);z-index:-1;animation:pillFadeIn .3s cubic-bezier(.4,0,.2,1) forwards}@keyframes pillFadeIn{0%{opacity:0;transform:translate(-50%) scaleX(.6)}to{opacity:1;transform:translate(-50%) scaleX(1)}}.bottom-nav-item svg{transition:transform var(--transition-slow),box-shadow var(--transition-slow),background-color var(--transition-slow)}.bottom-nav-item.active svg{color:var(--primary);opacity:1;transform:scale(1.1)}.bottom-nav-item:not(.active) svg{opacity:.65}.bottom-nav-item:active svg{transform:scale(.95)}.bottom-nav-item svg{flex-shrink:0}.bottom-nav-item-center{flex:0 0 auto;margin-top:-18px;padding:8px;min-height:44px;min-width:44px;display:flex;flex-direction:column;align-items:center;justify-content:center}.bottom-nav-center-pill{position:relative;display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:var(--gradient-primary);color:var(--white);box-shadow:0 4px 16px #2563eb59,0 8px 24px #7c3aed33;transition:transform var(--transition-slow),box-shadow var(--transition-slow),background-color var(--transition-slow);overflow:hidden}.bottom-nav-center-pill:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);transform:rotate(45deg);animation:shimmer 3s infinite}@keyframes shimmer{0%,to{transform:translate(-100%) translateY(-100%) rotate(45deg)}50%{transform:translate(100%) translateY(100%) rotate(45deg)}}.bottom-nav-item-center:hover .bottom-nav-center-pill,.bottom-nav-item-center:focus-visible .bottom-nav-center-pill{transform:scale(1.08) translateY(-2px);box-shadow:0 8px 24px #2563eb66,0 12px 32px #7c3aed40}.bottom-nav-item-center:active .bottom-nav-center-pill{transform:scale(.95);box-shadow:0 2px 8px #2563eb4d,0 4px 12px #7c3aed26}.bottom-nav-item-center.active .bottom-nav-center-pill{box-shadow:0 6px 20px #2563eb73,0 10px 28px #7c3aed40}.bottom-nav-center-label{margin-top:4px;font-size:.65rem;font-weight:var(--font-weight-semibold);color:var(--text-muted)}.bottom-nav-item-center.active .bottom-nav-center-label{color:var(--primary)}@media (prefers-reduced-motion: reduce){.bottom-nav-item,.bottom-nav-item-center:hover .bottom-nav-center-pill,.bottom-nav-item-center:focus-visible .bottom-nav-center-pill{transition:none}}.app-layout{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--bg-secondary)}.app-shell-mode.app-layout{background:var(--bg-secondary)}.skip-link{position:absolute;top:0;left:0;transform:translateY(-120%);padding:var(--spacing-md) var(--spacing-md);min-height:44px;background:var(--bg-white);color:var(--text-primary);border:1px solid var(--border-color);border-radius:0 0 var(--border-radius-md) 0;z-index:calc(var(--z-index-sticky) + 1);text-decoration:none;transition:transform var(--transition-base);display:inline-flex;align-items:center}.skip-link:focus,.skip-link:focus-visible{transform:translateY(0);outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);box-shadow:var(--focus-shadow);z-index:var(--z-nav)}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:var(--z-index-sticky);background:#ffffffd1;border-bottom:1px solid rgba(31,95,191,.06);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);transition:background .35s cubic-bezier(.4,0,.2,1),box-shadow .35s cubic-bezier(.4,0,.2,1),border-color .35s cubic-bezier(.4,0,.2,1);overflow:visible}.app-header.scrolled{background:#ffffffeb;box-shadow:0 1px 3px #1f5fbf0f,0 4px 16px #1f5fbf14,0 8px 24px #0000000a;border-bottom-color:#1f5fbf1a}@media (max-width: 768px){.app-shell-mode .app-header-container{min-height:52px;padding-top:max(10px,env(safe-area-inset-top));padding-bottom:10px;padding-left:max(14px,env(safe-area-inset-left));padding-right:14px}.app-shell-mode .app-logo-mark{width:34px;height:34px;border-radius:var(--radius-md)}.app-shell-mode .app-logo-text{font-size:1.1rem}.app-shell-mode .app-header{border-bottom-color:#0000000d}}@media (min-width: 769px) and (max-width: 1024px){.app-header-container{padding-left:max(var(--spacing-lg),env(safe-area-inset-left));padding-right:max(var(--spacing-lg),env(safe-area-inset-right));min-height:60px}.app-nav-link{padding:var(--spacing-sm) var(--spacing-sm);font-size:var(--font-size-sm)}}.app-header-container{max-width:var(--max-width-xl);margin:0 auto;padding:max(var(--spacing-md),env(safe-area-inset-top)) var(--spacing-lg) var(--spacing-md);padding-left:max(var(--spacing-lg),env(safe-area-inset-left));padding-right:max(var(--spacing-lg),env(safe-area-inset-right));min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-xl)}.app-logo{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text-primary);font-weight:var(--font-weight-bold);flex-shrink:0}.app-logo-mark{width:38px;height:38px;border-radius:var(--radius-xl, 16px);background:var(--gradient-primary);box-shadow:var(--shadow-primary);display:flex;align-items:center;justify-content:center;color:var(--white, #fff);position:relative;overflow:hidden}.app-logo-mark:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,transparent 40%,rgba(255,255,255,.2) 50%,transparent 60%)}.app-logo-text{font-size:1.25rem;font-weight:var(--font-weight-bold);letter-spacing:var(--letter-spacing-tight)}.app-logo-ai{background:linear-gradient(135deg,var(--primary) 0%,#5a8bff 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-nav-desktop{display:flex;align-items:center;gap:8px;flex:1;justify-content:space-between}.app-nav-links{display:flex;align-items:center;gap:4px}.app-nav-actions{display:flex;align-items:center;gap:12px}.app-nav-link{color:var(--text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);transition:color var(--transition-base),background var(--transition-base);position:relative;padding:var(--spacing-sm) var(--spacing-md);min-height:44px;display:inline-flex;align-items:center;border-radius:var(--border-radius-md);transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);white-space:nowrap}.app-nav-link:hover{color:var(--primary);background:#1f6feb0f}.app-nav-link:focus-visible,.app-nav-user-trigger:focus-visible,.app-nav-cta:focus-visible,.app-nav-cta-secondary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.app-nav-link.active{color:var(--primary);font-weight:var(--font-weight-semibold);background:#1f6feb14;position:relative}.app-nav-link.active:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:20px;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:var(--border-radius-sm)}.app-nav-dropdown{position:relative}.app-nav-dropdown-trigger{cursor:pointer;background:none;border:none}.app-nav-chevron{font-size:.65em;margin-left:2px}.app-nav-dropdown-menu{display:none;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:200px;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e4e9ef);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:6px;z-index:var(--z-modal)}.app-nav-dropdown:hover .app-nav-dropdown-menu,.app-nav-dropdown:focus-within .app-nav-dropdown-menu{display:block}.app-nav-dropdown-item{display:block;padding:8px 14px;font-size:.825rem;font-weight:var(--font-weight-medium);color:var(--text-primary);text-decoration:none;border-radius:var(--radius-md);transition:background .15s}.app-nav-dropdown-item:hover{background:#1f6feb0f;color:var(--primary)}.app-nav-icon-btn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);color:var(--text-secondary);background:transparent;border:1px solid transparent;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.app-nav-icon-btn:hover{color:var(--primary);background:#1f6feb0f;border-color:#1f6feb1a}.app-nav-user-dropdown{position:relative}.app-nav-user-trigger{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:var(--radius-full);background:#1f6feb0f;border:1px solid rgba(31,111,235,.1);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);font-family:inherit}.app-nav-user-trigger:hover{background:#1f6feb1a;border-color:#1f6feb33}.app-nav-user-trigger svg{transition:transform var(--transition-base);color:var(--text-muted)}.app-nav-user-trigger svg.rotated{transform:rotate(180deg)}.app-nav-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,#5a8bff 100%);color:var(--white, #fff);display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:.85rem}.app-nav-avatar-lg{width:40px;height:40px;font-size:1rem}.app-nav-user-name{font-weight:var(--font-weight-medium);font-size:.9rem;color:var(--text-primary);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-nav-dropdown-menu{position:absolute;top:calc(100% + var(--spacing-sm));right:0;min-width:240px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);padding:var(--spacing-sm);animation:dropdownFadeIn .2s ease;z-index:var(--z-index-dropdown)}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.app-nav-dropdown-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)}.app-nav-dropdown-name{font-weight:var(--font-weight-semibold);font-size:.95rem;color:var(--text-primary)}.app-nav-dropdown-email{font-size:.8rem;color:var(--text-muted);max-width:160px;overflow:hidden;text-overflow:ellipsis}.app-nav-dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.app-nav-dropdown-item{display:flex;align-items:center;gap:12px;padding:12px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:.9rem;font-weight:var(--font-weight-medium);text-decoration:none;transition:transform var(--transition-fast),background-color var(--transition-fast);width:100%;border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left}.app-nav-dropdown-item:hover{background:var(--primary-light);color:var(--primary)}.app-nav-dropdown-item:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.app-nav-dropdown-logout{color:var(--danger)}.app-nav-dropdown-logout:hover{background:var(--danger-light);color:var(--danger)}.app-nav-cta-secondary{display:inline-flex;align-items:center;padding:10px 18px;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);font-size:.9rem;color:var(--primary);background:linear-gradient(135deg,#6366f114,#a855f714);border:1px solid rgba(99,102,241,.15);text-decoration:none;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.app-nav-cta-secondary:hover{background:linear-gradient(135deg,#6366f126,#a855f726);border-color:#6366f14d;transform:translateY(-1px)}.app-nav-cta{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:var(--radius-xl, 16px);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--white);background:var(--gradient-primary);text-decoration:none;position:relative;overflow:hidden;box-shadow:var(--shadow-primary);transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);white-space:nowrap}.app-nav-cta:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.app-nav-cta:hover{transform:translateY(var(--card-hover-lift, -4px));box-shadow:var(--shadow-primary);color:var(--white)}.app-nav-cta:hover:before{left:100%}.app-nav-cta svg{flex-shrink:0;position:relative;z-index:1}.app-nav-mobile-bell{display:none}.app-nav-mobile-toggle{display:none;position:relative;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:transparent;border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.app-nav-mobile-toggle:hover{background:var(--primary-light);border-color:var(--primary)}.app-nav-mobile-toggle:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}.app-nav-mobile-toggle-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;padding:0 4px;font-size:.7rem;font-weight:var(--font-weight-bold);line-height:18px;text-align:center;background:var(--danger, #ef4444);color:var(--white, #fff);border-radius:var(--radius-full)}.app-nav-mobile-legal{display:flex;flex-wrap:wrap;gap:8px;padding:8px 16px 12px;margin-top:4px;border-top:1px solid var(--border-color)}.app-nav-mobile-legal .app-nav-mobile-link{min-height:44px;padding:8px 12px;font-size:var(--font-size-sm)}.app-nav-mobile-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:var(--z-overlay)}.app-nav-mobile{display:none;position:fixed;top:56px;left:0;right:0;bottom:0;width:100%;max-width:100vw;min-width:280px;z-index:var(--z-modal);background:var(--bg-primary);-webkit-tap-highlight-color:transparent;border:none;box-shadow:var(--shadow-lg);padding:0;transform:translateY(-8px);opacity:0;visibility:hidden;pointer-events:none;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s ease,visibility .25s ease}.app-nav-mobile.open{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}.app-nav-mobile-scroll{padding:var(--spacing-md) var(--spacing-lg) max(100px,calc(80px + env(safe-area-inset-bottom)));max-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.app-nav-mobile-links{display:flex;flex-direction:column;gap:var(--spacing-xs)}.app-nav-mobile-section{margin-top:var(--spacing-xs)}.app-nav-mobile-expand{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;min-height:44px;padding:12px 16px;border:none;background:transparent;font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-secondary);cursor:pointer;text-align:left;border-radius:var(--border-radius-md);transition:background var(--transition-base),color var(--transition-base)}.app-nav-mobile-expand:hover{background:var(--primary-light);color:var(--primary)}.app-nav-mobile-expand .chevron{margin-left:auto;transition:transform var(--transition-base)}.app-nav-mobile-expand.expanded .chevron{transform:rotate(90deg)}.app-nav-mobile-sublinks{max-height:0;overflow:hidden;transition:max-height .25s ease}.app-nav-mobile-sublinks.open{max-height:400px}.app-nav-mobile-sublinks .app-nav-mobile-link{padding-left:40px;font-size:var(--font-size-sm);gap:8px}.app-nav-mobile-sublinks .app-nav-mobile-link svg{flex-shrink:0}.app-nav-mobile-link{display:flex;align-items:center;min-height:44px;padding:12px 16px;border-radius:var(--border-radius-md);color:var(--text-secondary);font-weight:var(--font-weight-medium);font-size:var(--font-size-base);text-decoration:none;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);border:none;background:transparent;cursor:pointer;font-family:inherit;text-align:left;width:100%}.app-nav-mobile-link:hover,.app-nav-mobile-link.active{background:var(--primary-light);color:var(--primary)}.app-nav-mobile-link:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.app-nav-mobile-divider{height:1px;background:var(--border);margin:var(--spacing-sm) 0}.app-nav-mobile-user{display:flex;flex-direction:column;gap:8px}.app-nav-mobile-user-info{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#1f6feb0a;border-radius:var(--radius-lg);margin-bottom:8px}.app-nav-mobile-user-name{font-weight:var(--font-weight-semibold);color:var(--text-primary)}.app-nav-mobile-user-email{font-size:.85rem;color:var(--text-muted)}.app-nav-mobile-logout{color:var(--danger)}.app-nav-mobile-auth{display:flex;flex-direction:column;gap:12px}.app-nav-mobile-btn-secondary{display:block;padding:12px 20px;border-radius:var(--radius-md);text-align:center;font-weight:var(--font-weight-semibold);color:var(--primary);background:#1f6feb14;text-decoration:none;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.app-nav-mobile-btn-primary{display:flex;align-items:center;justify-content:center;min-height:48px;min-width:48px;padding:12px 20px;border-radius:var(--border-radius-md);text-align:center;font-weight:var(--font-weight-semibold);color:var(--white);background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);text-decoration:none;box-shadow:var(--shadow-sm);border:none;cursor:pointer}.app-nav-mobile-btn-primary:focus-visible,.app-nav-mobile-cta:focus-visible{outline:var(--focus-ring);outline-offset:2px}.app-nav-mobile-cta{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);min-height:48px;min-width:48px;margin-top:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--border-radius-md);font-weight:var(--font-weight-semibold);font-size:var(--font-size-base);color:var(--white);background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);text-decoration:none;box-shadow:var(--shadow-sm)}@media (max-width: 1024px){.app-nav-desktop{display:none}.app-nav-mobile-bell{display:flex;align-items:center}.app-nav-mobile-toggle{display:flex}.app-nav-mobile{display:block}}.app-shell-mode .app-nav-mobile-toggle{display:none!important}.app-shell-mode .app-nav-mobile,.app-shell-mode .app-nav-mobile.open{display:none!important;pointer-events:none;visibility:hidden}@media (max-width: 480px){.app-header-container{padding:12px 16px}.app-logo-text{font-size:var(--font-size-lg)}.app-logo-mark{width:32px;height:32px}.app-nav-mobile{padding:12px 16px 20px}}.app-main{flex:1;background:var(--bg-secondary);padding:0;padding-bottom:env(safe-area-inset-bottom,0px)}.page-transition-wrap{animation:appPageFadeIn .2s ease-out}@keyframes appPageFadeIn{0%{opacity:.97}to{opacity:1}}@media (max-width: 768px){.app-main{padding:var(--spacing-md) 0;min-height:calc(100dvh - 56px);display:flex;flex-direction:column}.app-main.app-main-with-bottom-nav{padding-bottom:calc(96px + env(safe-area-inset-bottom));min-height:calc(100dvh - 132px)}.app-shell-mode .app-main{padding-top:0}}@media (min-width: 769px) and (max-width: 1024px){.app-main{padding:var(--spacing-xl) var(--spacing-lg)}}.app-main .page-container>section{padding:48px 0}.app-breadcrumbs{background:var(--bg-white);border-bottom:1px solid var(--border)}.app-breadcrumbs-container{max-width:var(--max-width-xl);margin:0 auto;padding:var(--spacing-sm) var(--spacing-lg);display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--text-secondary);font-size:.9rem;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 768px){.app-breadcrumbs-container{padding:var(--spacing-sm) var(--spacing-md);font-size:.85rem}.app-breadcrumb-item{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.app-breadcrumb-item a{color:var(--text-secondary);text-decoration:none}.app-breadcrumb-item a:hover{color:var(--primary)}.app-breadcrumb-current{color:var(--text-primary);font-weight:var(--font-weight-semibold)}.app-breadcrumb-separator{margin:0 6px;color:var(--text-tertiary)}.app-footer{background:linear-gradient(180deg,var(--bg-secondary) 0%,#ffffff 100%)}@media (max-width: 768px){.app-shell-mode .app-footer-newsletter,.app-shell-mode .app-footer-main{display:none}.app-shell-mode .app-footer-bottom{padding:12px 16px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.app-shell-mode .app-footer-bottom-container{flex-wrap:wrap;justify-content:center;gap:8px;text-align:center}.app-shell-mode .app-footer-disclaimer{order:1;width:100%;justify-content:center}}.app-footer-newsletter{background:linear-gradient(135deg,var(--primary) 0%,#5a8bff 100%);padding:24px}.app-footer-newsletter-content{max-width:var(--max-width-xl);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.app-footer-newsletter-text h3{color:var(--white, #fff);font-size:1.5rem;font-weight:var(--font-weight-bold);margin-bottom:8px}.app-footer-newsletter-text p{color:#ffffffd9;font-size:1rem;margin:0}.app-footer-newsletter-form{display:flex;gap:12px;flex:1;max-width:460px}.app-footer-newsletter-form input{flex:1;padding:12px 20px;border:none;border-radius:var(--radius-md);font-size:.95rem;background:#fffffff2;color:var(--text-primary);min-width:200px}.app-footer-newsletter-form input::placeholder{color:var(--text-muted)}.app-footer-newsletter-form input:focus{outline:none;box-shadow:0 0 0 3px #ffffff4d}.app-footer-newsletter-form button{padding:14px 28px;border:none;border-radius:var(--radius-md);font-size:.95rem;font-weight:var(--font-weight-semibold);background:var(--gray-900);color:var(--white, #fff);cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base);white-space:nowrap}.app-footer-newsletter-form button:hover{background:var(--gray-800);transform:translateY(-1px)}.app-footer-main{padding:32px var(--spacing-lg) 24px;background:var(--bg-white)}.app-footer-container{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:1.3fr 2fr;gap:24px}@media (max-width: 768px){.app-footer-container{grid-template-columns:1fr;gap:var(--spacing-xl)}.app-footer-links{grid-template-columns:repeat(2,1fr)}}@media (max-width: 480px){.app-footer-links{grid-template-columns:1fr}}.app-footer-brand{max-width:320px}.app-footer-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;margin-bottom:20px}.app-footer-logo-mark{width:36px;height:36px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--primary) 0%,#5a8bff 100%);display:flex;align-items:center;justify-content:center;color:var(--white, #fff);box-shadow:0 4px 12px #1f6feb40}.app-footer-logo-text{font-size:1.25rem;font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight)}.app-footer-tagline{color:var(--text-secondary);font-size:.95rem;line-height:var(--line-height-relaxed);margin:0 0 24px}.app-footer-socials{display:flex;gap:12px}.app-footer-socials a{width:40px;height:40px;border-radius:var(--radius-md);border:1px solid var(--border-color);display:inline-flex;align-items:center;justify-content:center;color:var(--text-secondary);background:var(--bg-primary);transition:transform var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.app-footer-socials a:hover{color:var(--primary);background:#1f6feb0f;border-color:#1f6feb4d;transform:translateY(var(--card-hover-lift, -4px))}.app-footer-links{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;align-items:start}.app-footer-column h4{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--spacing-md)}.app-footer-column a{display:block;color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--spacing-sm) 0;text-decoration:none;transition:color .15s ease}@media (max-width: 768px){.app-footer-column a{min-height:44px;display:flex;align-items:center}}.app-footer-column a:hover{color:var(--primary)}.app-footer-bottom{background:var(--gray-50);border-top:1px solid var(--border-color);padding:20px 24px}.app-footer-bottom-container{max-width:var(--max-width-xl);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}.api-status{margin-left:.5rem;font-size:.75rem;color:var(--text-muted);display:inline-flex;align-items:center;gap:.35rem}.api-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.app-footer-copyright{color:var(--text-muted);font-size:.85rem;margin:0}.app-footer-version{opacity:.8;font-size:.8rem;margin-left:.25em}.app-footer-whats-new{color:var(--primary);text-decoration:none;font-size:.85rem}.app-footer-whats-new:hover{text-decoration:underline}.app-footer-disclaimer{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:.85rem;margin:0;background:#1f6feb0f;padding:6px 12px;border-radius:var(--radius-sm)}.app-footer-disclaimer-icon{font-size:.9rem}@media (max-width: 1024px){.app-footer-container{grid-template-columns:1fr;gap:48px}.app-footer-brand{max-width:100%;text-align:center}.app-footer-logo,.app-footer-socials{justify-content:center}.app-footer-links{grid-template-columns:repeat(4,1fr)}}@media (max-width: 768px){.app-footer-newsletter{padding:40px 20px}.app-footer-newsletter-content{flex-direction:column;text-align:center}.app-footer-newsletter-text h3{font-size:1.25rem}.app-footer-newsletter-form{width:100%;max-width:100%;flex-direction:column;gap:16px}.app-footer-newsletter-form input{min-width:100%;min-height:44px;padding:14px 18px}.app-footer-newsletter-form button{min-height:44px;padding:12px 24px}.app-footer-main{padding:48px 20px 40px}.app-footer-links{grid-template-columns:repeat(2,1fr);gap:32px 24px}.app-footer-bottom-container{flex-direction:column;text-align:center;gap:12px}}@media (max-width: 480px){.app-footer-newsletter{padding:32px 16px}.app-footer-main{padding:40px 16px 32px}.app-footer-links{grid-template-columns:1fr 1fr;gap:28px 20px}.app-footer-column h4{font-size:.75rem;margin-bottom:12px}.app-footer-column a{font-size:.85rem;padding:5px 0}.app-footer-bottom{padding:16px}.app-footer-disclaimer{font-size:.8rem;padding:5px 10px}}.app-layout .page-container,.app-layout .dashboard-page,.app-layout .profile-settings-page,.app-layout .routine-builder-page,.app-layout .myshelf-page,.app-layout .product-details-page,.app-layout .history-page,.app-layout .consent-page,.app-layout .onboarding-page,.app-layout .auth-page,.app-layout .contact-page,.app-layout .about-page,.app-layout .privacy-page,.app-layout .terms-page,.app-layout .sample-report-page,.app-layout .onskin-page{background:transparent;color:var(--text-primary)}.app-layout .page-container{max-width:var(--max-width-xl);margin:0 auto;padding:24px}.app-layout .page-header{margin-bottom:24px}.app-layout .page-header h1,.app-layout .page-header h2{color:var(--text-primary);letter-spacing:-.01em}.app-layout .page-header p,.app-layout .subtitle{color:var(--text-secondary)}.app-layout .page-header .page-subtitle{margin-top:6px;color:var(--text-secondary)}.app-layout .card,.app-layout .card-content{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.app-layout .card{padding:20px}.app-layout .card-header{border-bottom:1px solid var(--border);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-md)}.app-layout .card-header h2,.app-layout .card-header h3{color:var(--text-primary)}.app-layout .btn,.app-layout .btn-primary,.app-layout .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border-radius:var(--radius-full);font-weight:var(--font-weight-semibold);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.app-layout .btn-primary{background:linear-gradient(135deg,var(--primary) 0%,#5a8bff 100%);color:var(--white, #fff);box-shadow:var(--shadow-lg)}.app-layout .btn-secondary{background:var(--bg-primary);color:var(--primary);border:1px solid rgba(31,111,235,.2);box-shadow:var(--shadow-sm)}.app-layout .btn-primary:hover,.app-layout .btn-secondary:hover{transform:translateY(var(--card-hover-lift, -4px))}.app-layout .btn-icon{display:inline-flex;align-items:center;justify-content:center}.app-layout .empty-state{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-xl, 16px);padding:var(--spacing-xl);text-align:center;box-shadow:var(--shadow-sm)}.app-layout .empty-state h2{margin-bottom:8px}.app-layout .empty-state p{max-width:480px;margin:0 auto}.app-layout .empty-state-actions{margin-top:20px;display:flex;gap:12px;justify-content:center;flex-wrap:wrap}body[data-page=chat] .app-breadcrumbs,body[data-page=chat] .app-footer{display:none}body[data-page=chat] .app-layout{height:100vh;height:100dvh;overflow:hidden}body[data-page=chat] .app-main{flex:1;overflow:hidden;padding:0;height:100%;min-height:0}body[data-page=chat] .page-transition-wrap{height:100%}.dev-banner{position:fixed;bottom:20px;right:20px;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);color:var(--white);padding:12px 20px;border-radius:var(--radius-full);box-shadow:0 4px 12px #667eea66;display:flex;align-items:center;gap:12px;font-size:.875rem;font-weight:var(--font-weight-medium);z-index:var(--z-banner);animation:slideInUp .4s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dev-badge{background:#ffffff40;padding:4px 10px;border-radius:var(--radius-xl);font-size:.75rem;font-weight:var(--font-weight-bold);letter-spacing:.5px}.dev-text{display:flex;align-items:center;gap:4px}.dev-text strong{font-weight:var(--font-weight-bold)}.dev-pulse{width:8px;height:8px;background:var(--success, #4ade80);border-radius:50%;animation:pulse 2s ease-in-out infinite;box-shadow:0 0 #4ade80b3}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #4ade80b3}50%{transform:scale(1.1);box-shadow:0 0 0 6px #4ade8000}}@media (max-width: 768px){.dev-banner{bottom:96px;right:16px;left:16px;font-size:.8rem;padding:12px 16px}.dev-text strong{display:block}}.toast-container{position:fixed;bottom:24px;right:24px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:360px;pointer-events:none}.toast-container>*{pointer-events:auto}.toast{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-xl, 16px);box-shadow:var(--shadow-lg);border:1px solid var(--gray-200);background:var(--white);font-size:var(--font-size-sm);animation:toastIn .25s cubic-bezier(.4,0,.2,1)}@keyframes toastIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast--success .toast-icon{color:var(--success)}.toast--error .toast-icon{color:var(--danger)}.toast--info .toast-icon{color:var(--primary)}.toast-message{flex:1;color:var(--text-primary)}.toast-dismiss{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:transparent;color:var(--gray-500);cursor:pointer;border-radius:var(--border-radius-sm);transition:color .15s,background .15s}.toast-dismiss:hover{color:var(--text-primary);background:var(--bg-secondary)}.toast-dismiss:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (max-width: 768px){.toast-container{bottom:calc(96px + env(safe-area-inset-bottom,0px));right:var(--spacing-md);left:var(--spacing-md);max-width:none}}.error-boundary-fallback{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:var(--bg-secondary)}.error-content{max-width:500px;width:100%;text-align:center;background:var(--bg-white);padding:32px 24px;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);border:1px solid var(--border-color)}.error-icon{font-size:48px;margin-bottom:16px;line-height:1}.error-content h2{font-size:1.35rem;font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0 0 12px}.error-content>p:first-of-type{font-size:1rem;color:var(--text-secondary);line-height:var(--line-height-normal);margin:0 0 24px}.error-suggestions{text-align:left;background:var(--bg-tertiary);padding:16px;border-radius:var(--radius-md);margin-bottom:24px}.error-suggestions h4{margin:0 0 12px;font-size:.9375rem;font-weight:var(--font-weight-semibold);color:var(--text-primary)}.error-suggestions ol{margin:0;padding-left:20px;color:var(--text-secondary);font-size:.9375rem}.error-suggestions li{margin-bottom:8px}.error-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-bottom:24px}.error-actions .btn-primary{min-height:44px;padding:12px 24px;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);background:var(--primary);color:var(--white);border:none;cursor:pointer}.error-actions .btn-secondary{min-height:44px;padding:12px 24px;border-radius:var(--radius-md);font-weight:var(--font-weight-semibold);background:var(--bg-white);color:var(--text-primary);border:2px solid var(--border-color);cursor:pointer}.error-details{text-align:left;margin-top:24px;padding:16px;background:var(--danger-light);border-radius:var(--radius-md);font-size:12px}.error-details summary{cursor:pointer;color:var(--danger);font-weight:var(--font-weight-semibold)}.error-details pre{margin-top:12px;white-space:pre-wrap;word-break:break-word;color:var(--text-primary);font-size:11px}.error-support{font-size:.875rem;color:var(--text-muted);margin:0}.error-support a{color:var(--primary)}._fab_1m4c8_1:active{transform:scale(.95)}:root{--ds-primary: var(--primary, #1f5fbf);--ds-primary-hover: var(--primary-hover, #174a95);--ds-primary-light: var(--primary-light, #e8f0fd);--ds-primary-dark: var(--primary-dark, #153f80);--ds-secondary: var(--primary, #1f5fbf);--ds-secondary-hover: var(--primary-hover, #174a95);--ds-secondary-light: var(--primary-light, #e8f0fd);--ds-accent: var(--accent, #4f8ad9);--ds-accent-hover: var(--accent, #4f8ad9);--ds-accent-light: var(--accent-light, #f2f6fd);--ds-success: #10b981;--ds-success-light: #d1fae5;--ds-success-dark: #059669;--ds-warning: #f59e0b;--ds-warning-light: #fef3c7;--ds-warning-dark: #d97706;--ds-error: #ef4444;--ds-error-light: #fee2e2;--ds-error-dark: #dc2626;--ds-info: #3b82f6;--ds-info-light: #dbeafe;--ds-white: #ffffff;--ds-gray-50: #f8fafc;--ds-gray-100: #f1f5f9;--ds-gray-200: #e2e8f0;--ds-gray-300: #cbd5e1;--ds-gray-400: #94a3b8;--ds-gray-500: #64748b;--ds-gray-600: #475569;--ds-gray-700: #334155;--ds-gray-800: #1e293b;--ds-gray-900: #0f172a;--ds-gradient-primary: linear-gradient(135deg, #1f6feb 0%, #5a8bff 100%);--ds-gradient-secondary: linear-gradient(135deg, #1f6feb 0%, #4a7eff 100%);--ds-gradient-success: linear-gradient(135deg, #34c759 0%, #28a745 100%);--ds-gradient-surface: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);--ds-gradient-page: linear-gradient(180deg, #ffffff 0%, #f3f7ff 100%);--ds-shadow-xs: 0 1px 2px rgba(31, 111, 235, .04);--ds-shadow-sm: 0 2px 4px rgba(31, 111, 235, .06);--ds-shadow-md: 0 4px 12px rgba(31, 111, 235, .08);--ds-shadow-lg: 0 12px 24px rgba(31, 111, 235, .12);--ds-shadow-xl: 0 20px 40px rgba(31, 111, 235, .15);--ds-shadow-2xl: 0 32px 64px rgba(31, 111, 235, .18);--ds-shadow-primary: 0 8px 24px rgba(31, 111, 235, .25);--ds-shadow-glow: 0 0 40px rgba(31, 111, 235, .15);--ds-radius-xs: 4px;--ds-radius-sm: 6px;--ds-radius-md: 8px;--ds-radius-lg: 12px;--ds-radius-xl: 16px;--ds-radius-2xl: 24px;--ds-radius-3xl: 32px;--ds-radius-full: 9999px;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-5: 20px;--ds-space-6: 24px;--ds-space-8: 32px;--ds-space-10: 40px;--ds-space-12: 48px;--ds-space-16: 64px;--ds-space-20: 80px;--ds-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--ds-text-xs: .75rem;--ds-text-sm: .875rem;--ds-text-base: 1rem;--ds-text-lg: 1.125rem;--ds-text-xl: 1.25rem;--ds-text-2xl: 1.5rem;--ds-text-3xl: 2rem;--ds-text-4xl: 2.5rem;--ds-text-5xl: 3rem;--ds-transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--ds-transition-base: .2s cubic-bezier(.4, 0, .2, 1);--ds-transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--ds-transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--ds-z-dropdown: 100;--ds-z-sticky: 200;--ds-z-modal: 300;--ds-z-toast: 400;--ds-z-tooltip: 500}:root{--r-mobile-max: 768px;--r-tablet-min: 769px;--r-tablet-max: 1024px;--r-desktop-min: 1025px;--r-sm: 480px;--r-md: 768px;--r-lg: 1024px;--r-xl: 1280px}:where(img,video,canvas,svg){max-width:100%;height:auto}:where(pre,code){max-width:100%;overflow-wrap:anywhere}@media (min-width: 769px) and (max-width: 1024px){.app-page{max-width:var(--max-width-lg, 1024px);margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}.app-page-content{padding-left:var(--spacing-md, 16px);padding-right:var(--spacing-md, 16px)}}@media (min-width: 1025px){.app-page{max-width:var(--max-width-xl, 1280px);margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}.app-page-content{padding-left:var(--spacing-lg, 24px);padding-right:var(--spacing-lg, 24px)}}@media (min-width: 769px) and (max-width: 1024px){.today-page{padding-bottom:var(--spacing-xl, 32px)}.today-content{max-width:600px;padding-left:var(--spacing-lg, 24px);padding-right:var(--spacing-lg, 24px);padding-bottom:var(--spacing-xl, 32px)}.today-header{padding-left:max(var(--spacing-lg, 24px),env(safe-area-inset-left));padding-right:max(var(--spacing-lg, 24px),env(safe-area-inset-right))}.product-details-page{padding:var(--spacing-2xl, 48px) var(--spacing-xl, 32px)}.product-details-tabs{margin-left:auto;margin-right:auto}.homepage .hero-content,.homepage .app-page-content{padding-left:var(--spacing-lg, 24px);padding-right:var(--spacing-lg, 24px)}}@media (min-width: 1025px){.today-page{padding-bottom:var(--spacing-2xl, 48px)}.today-content{max-width:640px;padding-left:var(--spacing-xl, 32px);padding-right:var(--spacing-xl, 32px);padding-bottom:var(--spacing-2xl, 48px)}.today-header{padding-left:max(var(--spacing-xl, 32px),env(safe-area-inset-left));padding-right:max(var(--spacing-xl, 32px),env(safe-area-inset-right))}.product-details-page{padding:var(--spacing-3xl, 64px) var(--spacing-xl, 32px)}.product-header,.product-details-tabs{margin-left:auto;margin-right:auto}.homepage .hero-content,.homepage .app-page-content{padding-left:var(--spacing-xl, 32px);padding-right:var(--spacing-xl, 32px)}}.app-page{min-height:auto;background:var(--bg-secondary, #f8fafc);padding-bottom:env(safe-area-inset-bottom,0px);font-family:var(--font-family);animation:pageEnter .25s ease-out}@keyframes pageEnter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.app-page-content{max-width:var(--max-width-xl, 1200px);margin:0 auto;padding:0 var(--spacing-lg);padding-left:max(var(--spacing-lg),env(safe-area-inset-left));padding-right:max(var(--spacing-lg),env(safe-area-inset-right));width:100%;box-sizing:border-box}.app-header-card{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);border-radius:0 0 24px 24px;padding:24px 16px 32px;text-align:center;color:var(--white)}.app-header-card h1{font-size:1.5rem;font-weight:var(--font-weight-bold);margin:0 0 4px;color:var(--white)}.app-header-card .app-header-subtitle{font-size:.875rem;opacity:.95;margin:0;color:#fffffff2}.app-section{margin-top:24px}.app-section-title{font-size:.8125rem;font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:0 4px 8px;margin:0 0 8px}.app-list-group{background:var(--bg-white);border-radius:var(--radius-lg, 12px);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-color)}.app-list-item{display:flex;align-items:center;width:100%;padding:12px 16px;border:none;border-bottom:1px solid var(--gray-100);background:transparent;font-family:inherit;font-size:1rem;color:var(--text-primary);cursor:pointer;text-align:left;text-decoration:none;transition:background .15s;box-sizing:border-box}.app-list-item:last-child{border-bottom:none}@media (hover: hover){.app-list-item:hover{background:var(--gray-50)}}.app-list-item:active{background:var(--gray-100)}.app-list-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-right:12px;flex-shrink:0}.app-list-icon.purple{background:var(--purple-100, #ede9fe);color:var(--accent)}.app-list-icon.blue{background:var(--primary-100, #dbeafe);color:var(--primary)}.app-list-icon.green{background:var(--success-100, #d1fae5);color:var(--success-600, #059669)}.app-list-icon.orange{background:var(--warning-100, #ffedd5);color:var(--warning-600, #ea580c)}.app-list-label{flex:1;font-weight:var(--font-weight-medium)}.app-list-value{font-size:.875rem;color:var(--text-muted);margin-right:8px}.app-list-arrow{color:var(--gray-400);flex-shrink:0}.app-empty-state{text-align:center;padding:48px 24px}.app-empty-state-icon{width:64px;height:64px;margin:0 auto 16px;border-radius:50%;background:var(--gray-100);color:var(--text-muted);display:flex;align-items:center;justify-content:center}.app-empty-state h3{font-size:1.125rem;font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:0 0 8px}.app-empty-state p{font-size:.9375rem;color:var(--text-secondary);max-width:320px;margin:0 auto 20px}.app-card{background:var(--bg-white);border-radius:var(--radius-lg, 12px);box-shadow:var(--shadow-sm);border:1px solid var(--border-color);overflow:hidden}@media (max-width: 768px){.app-header-card{border-radius:0 0 20px 20px;padding:20px 16px 24px}.app-header-card h1{font-size:1.25rem}.app-page-content{padding:0 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.app-section{margin-top:24px}}@media (max-width: 768px){.app-page{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}.app-page button:not(.btn-icon-small):not(.btn-action),.app-page .btn,.app-page a.btn{min-height:44px;min-width:44px}.app-page select,.app-page input[type=text],.app-page input[type=email],.app-page input[type=search],.app-page input[type=password]{min-height:44px;font-size:16px}}@media (max-width: 768px){.app-layout{width:100%;max-width:100vw;min-width:0;overflow-x:hidden;background:var(--bg-secondary)}.app-layout .app-main,.app-layout main{width:100%;min-width:0;overflow-x:hidden}.app-layout.app-shell-mode .app-main,.app-layout.app-shell-mode main{padding-bottom:calc(60px + env(safe-area-inset-bottom,0px))}body,.app-layout,.app-layout main{overflow-x:hidden}.app-page,.today-page,.me-page,.scan-page,.auth-page,.dashboard-page,.history-page,.myshelf-page,.routine-builder-page,.recommendations-page,.dt-page,.notification-center-page,.profile-settings-page,.onboarding-page,.progress-tracking-page,.comparison-page,.product-details-page,.analysis-results,.consent-page{min-height:100%;background:var(--bg-secondary);padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom));width:100%;max-width:100vw;min-width:0;overflow-x:hidden;box-sizing:border-box}.app-page,.app-page-content,.app-card,.app-header-card{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word}.app-page .checkbox-label,.app-page .remember-me-label{word-break:normal;overflow-wrap:normal;white-space:nowrap}.app-page img,.app-page video,.app-page-content img,.app-page-content video,.app-card img,.app-card video{max-width:100%;height:auto;object-fit:contain}.app-page-content,.today-content,.me-content,.scan-content,.page-container{max-width:520px;margin:0 auto;padding-left:0;padding-right:0}html{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}body{min-height:100vh;min-height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}#root{min-height:100%}.app-layout main,.app-layout .app-main{padding-bottom:max(96px,calc(96px + env(safe-area-inset-bottom)));padding-left:0;padding-right:0}.today-page,.me-page,.scan-page{padding-bottom:max(100px,calc(88px + env(safe-area-inset-bottom)))}.app-card,.app-list-group,.app-header-card{border-radius:var(--card-radius, var(--radius-lg, 12px))}.app-page h1,.today-page h1,.me-page h1,.scan-page h1{font-size:clamp(1.35rem,4vw + 1rem,1.6rem);font-weight:var(--font-weight-bold);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight);margin:0 0 .5em}.app-page h2,.today-page h2,.me-page h2{font-size:1.1rem;font-weight:var(--font-weight-semibold);color:var(--text-primary);margin:1.25em 0 .5em}.app-page .page-subtitle,.today-page .page-subtitle{font-size:.9375rem;color:var(--text-secondary);margin:0 0 1em}.app-page .subtitle,.app-layout .page-header .page-subtitle,.app-layout .page-header p,.app-layout .subtitle,.page-header .subtitle,.dashboard-header .subtitle,.consent-header .subtitle,.email-verification-card .subtitle{color:var(--gray-600, #475569)}.app-page .app-card,.today-card,.me-profile-card,.me-card,.scan-card,.stat-card,.product-card,.info-card,.app-page .card{background:var(--bg-white);border-radius:var(--radius-xl);padding:18px 20px;margin-bottom:12px;border:1px solid var(--border-color);box-shadow:var(--shadow-sm);box-sizing:border-box;-webkit-tap-highlight-color:transparent}.app-header-card,.app-card{transition:box-shadow .2s ease,transform .2s ease}.app-page .app-card:active,.today-card:active,.me-card:active{opacity:.97}.app-page .app-list-item,.me-list-item,.me-list a,.settings-item{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:12px 0;color:var(--text-primary);text-decoration:none;border-bottom:1px solid var(--gray-100);gap:12px;-webkit-tap-highlight-color:transparent}.app-page .app-list-item:last-child,.me-list-item:last-child,.me-list a:last-child{border-bottom:none}.app-page .btn-primary,.today-page .btn-primary,.me-page .btn-primary,.scan-page .btn-primary,.auth-page .btn-primary{min-height:48px;padding:12px 24px;font-size:1rem;font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg);background:var(--gradient-primary);border:none;color:var(--white);box-shadow:var(--shadow-primary);transition:transform .2s,box-shadow .2s}.app-page .btn-secondary,.today-page .btn-secondary,.me-page .btn-secondary{min-height:48px;padding:12px 20px;font-size:.9375rem;font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg);background:var(--bg-white);border:2px solid var(--primary);color:var(--primary);-webkit-tap-highlight-color:transparent}button:not(.btn-icon-small):not(.btn-action),.app-page .btn,.app-page a.btn,a.app-list-item,.app-nav-mobile-link,.myshelf-pills button,.app-nav-user-trigger,.app-nav-mobile-expand,.myshelf-sort-select,.myshelf-onboarding-toggle,.btn-ghost,.btn-outline,.hero-cta-secondary,.scan-btn-secondary,.dashboard-empty-link{min-height:44px}.myshelf-search-clear,.history-search-clear{min-height:44px;min-width:44px}.filter-select,.filters-reset,.empty-reset-filters,.profile-settings-page .settings-item{min-height:44px}.app-page .btn-link,.change-email-btn,.me-profile-edit{min-height:44px;display:inline-flex;align-items:center;padding:12px;margin:-2px -12px;box-sizing:border-box}.star-button,.repurchase-btn{min-height:44px;min-width:44px;padding:10px;display:inline-flex;align-items:center;justify-content:center}.product-card-rating .star-button{min-width:44px;min-height:44px}.app-page button:not(.btn-icon-small):not(.btn-action),.today-page .btn,.me-page .btn,.scan-page .scan-btn-primary,.scan-page .scan-btn-secondary,.bottom-nav-item{min-height:44px;min-width:44px}input[type=checkbox],input[type=radio]{width:24px;height:24px;min-width:24px;min-height:24px;accent-color:var(--primary, #2563eb)}input[type=text],input[type=email],input[type=search],input[type=password],input[type=number],input[type=time],input[type=tel],input[type=url],input:not([type]),select,textarea{font-size:16px}.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-outline:active:not(:disabled),.btn-ghost:active:not(:disabled),.app-nav-cta:active,.app-nav-mobile-cta:active,.app-nav-mobile-link:active,.app-nav-mobile-expand:active,.bottom-nav-item:active,.bottom-nav-item-center:active,.app-card[role=button]:active,a.app-list-item:active,.myshelf-pills button:active,.filter-tabs button:active,.product-card-menu-btn:active,.favorites-search-clear:active,.history-search-clear:active,.myshelf-search-clear:active,.scan-page .mode-btn:active,.scan-type-tab:active,.product-details-page .product-image-zoom-trigger:active,.product-details-page .product-details-actions-row .compare-link:active,.product-details-page .action-buttons button:active,.product-details-page .tabs-header button:active,.product-details-page .product-image-zoom-close:active,.product-details-page .link-button:active,.today-page .today-skin-btn:active,.today-page .today-routine-step:active,.today-page .today-product-card-buy:active,.today-page .today-foryou-tile:active,.today-page .today-ingredients-cta:active,.today-page .today-toppick-buy:active,.today-page .today-routine-tab:active,.today-page .today-card-link:active,.today-page .today-prediction-link:active,.today-page .today-see-all:active,.today-page .today-settings-btn:active{transform:scale(var(--button-press-scale, .97));opacity:.92}.btn-primary:active:not(:disabled),.app-nav-cta:active,.app-nav-mobile-cta:active{transform:scale(.97)}.app-page .btn-primary:active,.today-page .btn-primary:active,.me-page .btn-primary:active{transform:scale(var(--button-press-scale, .97))}.bottom-nav-item-center:active .bottom-nav-center-pill{transform:scale(.96);box-shadow:var(--shadow-primary)}.myshelf-page a[class*=product-card]:active,.recommendations-page a[class*=card]:active,.favorites-page a[class*=card]:active,.app-card a:active{opacity:.9}.me-list a[href],.app-page a.app-list-item{transition:background .15s}.me-list a[href]:active,.app-page a.app-list-item:active{background:var(--gray-50)}@media (prefers-reduced-motion: reduce){.btn-primary:active:not(:disabled),.btn-secondary:active:not(:disabled),.btn-outline:active:not(:disabled),.btn-ghost:active:not(:disabled),.app-nav-cta:active,.app-nav-mobile-cta:active,.app-nav-mobile-link:active,.app-nav-mobile-expand:active,.bottom-nav-item:active,.bottom-nav-item-center:active,.bottom-nav-item-center:active .bottom-nav-center-pill,.myshelf-pills button:active,.filter-tabs button:active,.product-card-menu-btn:active,.favorites-search-clear:active,.history-search-clear:active,.myshelf-search-clear:active,.scan-page .mode-btn:active,.scan-type-tab:active,.product-details-page .product-image-zoom-trigger:active,.product-details-page .product-details-actions-row .compare-link:active,.product-details-page .action-buttons button:active,.product-details-page .tabs-header button:active,.product-details-page .product-image-zoom-close:active,.product-details-page .link-button:active,.today-page .today-skin-btn:active,.today-page .today-routine-step:active,.today-page .today-product-card-buy:active,.today-page .today-foryou-tile:active,.today-page .today-ingredients-cta:active,.today-page .today-toppick-buy:active,.today-page .today-routine-tab:active,.today-page .today-card-link:active,.today-page .today-prediction-link:active,.today-page .today-see-all:active,.today-page .today-settings-btn:active,.myshelf-page a[class*=product-card]:active,.recommendations-page a[class*=card]:active,.favorites-page a[class*=card]:active,.app-card a:active{transform:none}}@media (prefers-reduced-motion: no-preference){.app-page button:active:not(:disabled),.app-page .btn:active:not(:disabled),.app-nav-mobile-link:active,.bottom-nav-item:active{opacity:.9;transform:scale(var(--button-press-scale, .97))}}*{-webkit-tap-highlight-color:rgba(79,70,229,.12)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--primary, #2563eb);outline-offset:2px}.bottom-nav{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.bottom-nav-item{min-width:56px;padding:8px 6px}.bottom-nav-center-pill{width:56px;height:56px}.today-section-title,.me-section-title{font-size:.8125rem;font-weight:var(--font-weight-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:20px 0 10px}.empty-state{text-align:center;padding:32px 20px;background:var(--bg-white);border-radius:var(--radius-xl);border:1px solid var(--border-color)}.empty-state h3{font-size:1.1rem;color:var(--text-primary);margin:0 0 8px}.empty-state p{font-size:.9375rem;color:var(--text-secondary);margin:0 0 20px}.app-shell-mode .app-header{background:#ffffffeb;border-bottom:1px solid var(--border-color);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.app-shell-mode .app-logo-text{font-weight:var(--font-weight-bold);color:var(--text-primary)}.app-shell-mode .app-logo-ai{color:var(--primary)}.app-nav-mobile-bell{margin-right:4px}.hero .hero-cta{display:flex;flex-direction:column;gap:12px;align-items:center}.hero .btn-primary--hero,.hero .hero-cta-secondary{width:100%;max-width:320px;justify-content:center}.hero .hero-reassurance{margin-top:12px}.scan-page .mode-btn{min-height:48px;border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);transition:transform .15s ease,box-shadow .15s ease}.scan-page .mode-btn.active{box-shadow:var(--shadow-primary);border:1px solid rgba(37,99,235,.3)}.scan-page .scan-progress-section .progress-title{font-size:1.5rem;font-weight:var(--font-weight-bold);color:var(--text-primary, #0f172a);margin-bottom:8px}.scan-page .scan-progress-section .progress-message{font-size:1rem;color:var(--gray-600, #475569)}.scan-page .scan-btn-primary:active:not(:disabled){transform:scale(var(--button-press-scale, .97));opacity:.95}.scan-container{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(100px,calc(88px + env(safe-area-inset-bottom)))}.camera-container{border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--border-color)}.myshelf-page .product-card{border-radius:var(--card-radius, 12px);overflow:hidden;box-shadow:var(--shadow-sm)}.myshelf-page .product-card:hover{box-shadow:var(--shadow-md)}.myshelf-page .myshelf-empty{border-radius:var(--card-radius, 12px);padding:32px 24px;text-align:center;box-shadow:var(--shadow-md)}.myshelf-page .myshelf-empty-title{font-size:1.25rem;font-weight:var(--font-weight-bold);color:var(--text-primary)}.myshelf-page .myshelf-empty-cta{min-height:48px;padding:14px 28px;font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg)}.dashboard-page .stat-card{border-radius:var(--card-radius, 12px);padding:20px 16px;border:1px solid var(--border-color, #e2e8f0);box-shadow:var(--shadow-sm)}.dashboard-page .stat-card .stat-content h3{font-size:1.75rem;font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:var(--line-height-tight);margin:0 0 4px}.dashboard-page .stat-card .stat-content p{font-size:.875rem;color:var(--gray-600, #475569);margin:0}.dashboard-page .stat-card.primary .stat-content h3{color:var(--white)}.dashboard-page .stat-card.primary .stat-content p{color:#ffffffe6}.product-details-page .product-image-section,.product-details-page .product-details-tabs{border-radius:var(--card-radius, 12px);box-shadow:var(--shadow-sm);transition:box-shadow .2s ease}.product-details-page .product-image-section:focus-within,.product-details-page .product-details-tabs:focus-within{box-shadow:var(--shadow-md)}.product-details-page .tabs-header button.active{border-radius:var(--radius-md);box-shadow:0 1px 2px #2563eb26}.today-page .today-card{border-radius:var(--card-radius, 12px);transition:box-shadow .2s ease,transform .2s ease}.today-page .today-toppick-card,.today-page .today-product-card{border-radius:var(--card-radius, 12px)}.today-page a.today-product-card:active,.today-page a.today-toppick-card:active{opacity:.92}.today-products-grid{gap:12px}.today-product-card,.product-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-white);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.me-profile-card{display:flex;align-items:center;gap:16px;padding:20px}.me-profile-avatar{width:56px;height:56px;border-radius:50%;background:var(--gradient-primary);color:var(--white);font-size:1.35rem;font-weight:var(--font-weight-bold);display:flex;align-items:center;justify-content:center;flex-shrink:0}.me-profile-info{flex:1;min-width:0}.auth-page .auth-right,.login-form,.register-form{max-width:400px;margin:0 auto}.auth-page input[type=email],.auth-page input[type=password],.auth-page input[type=text]{min-height:52px;padding:12px 16px;font-size:1rem;border-radius:var(--radius-lg);border:1px solid var(--border-color);background:var(--bg-white)}.auth-page input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px var(--primary-light)}}@media (max-width: 768px){@media (prefers-reduced-motion: reduce){.page-transition-wrap,.onboarding-page .progress-step,.scan-page *,.btn-primary,.btn-secondary,[class*=animation],[class*=transition]{animation-duration:.01ms;transition-duration:.01ms}}}.skeleton{background:linear-gradient(90deg,var(--gray-100) 0%,var(--gray-50) 50%,var(--gray-100) 100%);background-size:200% 100%;animation:skeletonPulse 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeletonPulse{0%,to{opacity:1;background-position:200% 0}50%{opacity:.85;background-position:-200% 0}}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-loading{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-loading 1.5s infinite;border-radius:var(--radius-md)}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:16px;margin-bottom:8px;border-radius:var(--border-radius-sm)}.skeleton-text-sm{height:12px;width:60%}.skeleton-text-lg{height:24px}.skeleton-title{height:32px;width:70%;margin-bottom:16px}.skeleton-avatar-lg{width:80px;height:80px}.skeleton-card{height:200px;border-radius:var(--radius-lg)}.skeleton-button{height:48px;width:120px;border-radius:var(--radius-lg)}.skeleton-image{width:100%;height:180px;border-radius:var(--radius-lg)}.skeleton-container{padding:24px}.skeleton-row{display:flex;gap:16px;margin-bottom:16px}.skeleton-col{flex:1}.skeleton-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:24px}.skeleton-stat-card{height:140px;border-radius:var(--radius-lg)}:root{--clinical-surface: var(--bg-primary);--clinical-surface-muted: #f8fafd;--clinical-border: #d8e0ea;--clinical-heading: #162133;--clinical-body: #334a63;--clinical-label: #5e738c;--clinical-radius: 10px;--clinical-radius-sm: 8px;--clinical-radius-lg: 12px;--clinical-space-sm: 12px;--clinical-space-md: 16px;--clinical-space-lg: 24px}body{background:var(--bg-secondary);color:var(--clinical-body)}.app-page h1,.app-page h2,.app-page h3,.app-page h4{color:var(--clinical-heading);letter-spacing:-.01em}.app-page p,.app-page li{color:var(--clinical-body)}.app-page h1{font-size:clamp(1.75rem,2.6vw,2.25rem);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold)}.app-page h2{font-size:clamp(1.35rem,2.1vw,1.75rem);line-height:1.28;font-weight:650}.app-page h3{font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:var(--line-height-snug);font-weight:var(--font-weight-semibold)}.app-page p{line-height:1.58}.card,.app-section,.app-list-group,.app-header-card,.myshelf-hero,.auth-card,.dashboard-section,.results-section{background:var(--clinical-surface);border:1px solid var(--clinical-border);border-radius:var(--clinical-radius-lg);box-shadow:var(--shadow-sm)}.hero-content,.sample-report-preview{background:transparent;border:none;box-shadow:none}.card,.app-section,.dashboard-section,.result-card,.step-card,.testimonial-card,.faq-item,.auth-card{padding:var(--clinical-space-md)}.section-tag,.hero-badge,.concern-badge,.goal-tag,.stat-cta{background:var(--clinical-surface-muted);border:1px solid var(--clinical-border);color:var(--primary);border-radius:var(--radius-full)}.btn-primary,.app-nav-cta,.app-nav-mobile-btn-primary,.app-nav-mobile-cta{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);box-shadow:var(--shadow-primary);border-radius:var(--clinical-radius-sm);min-height:44px;padding:12px 20px}.btn-primary:hover,.app-nav-cta:hover,.app-nav-mobile-btn-primary:hover,.app-nav-mobile-cta:hover{box-shadow:var(--shadow-primary)}.btn-secondary,.btn-ghost,.app-nav-cta-secondary,.app-nav-mobile-btn-secondary{background:var(--white);border:1px solid var(--clinical-border);color:var(--primary);border-radius:var(--clinical-radius-sm);min-height:44px;padding:12px 20px}.app-header{background:#fffffffa;border-bottom:1px solid var(--clinical-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.app-header.scrolled{box-shadow:0 4px 12px #10182814}.app-logo-mark,.app-footer-logo-mark{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);box-shadow:var(--shadow-primary)}.app-logo-ai{background:none;-webkit-text-fill-color:initial;color:var(--primary)}.app-nav-link:hover,.app-nav-link.active,.app-nav-mobile-link:hover,.app-nav-mobile-link.active{background:var(--clinical-surface-muted);color:var(--primary)}.app-nav-link.active:after{background:var(--primary);height:2px}.app-nav-dropdown-menu,.app-nav-mobile,.app-nav-mobile-user-info{border:1px solid var(--clinical-border);box-shadow:var(--shadow-md)}.app-footer{background:var(--bg-primary);border-top:1px solid var(--clinical-border)}.app-footer-newsletter{background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%)}.app-footer-bottom{background:var(--clinical-surface-muted)}.app-footer-disclaimer{background:var(--primary-50, #eef4fc);border:1px solid var(--clinical-border)}.hero,.results-preview,.how-it-works,.stats-section,.testimonials-section,.faq-section,.cta-section,.dashboard-page .dashboard-stats,.scan-page-container,.myshelf-page,.profile-settings-page{background:transparent}.hero-blob,.hero-decoration{display:none}.gradient-text{background:none;-webkit-text-fill-color:initial;color:var(--primary)}.score-circle.good,.score-circle.medium{background:var(--primary-50, #eef4fc);color:var(--primary-dark);border:1px solid var(--clinical-border)}.dashboard-refresh-btn,.app-list-item,.stat-card,.result-card,.step-card,.testimonial-card,.faq-item{border:1px solid var(--clinical-border);background:var(--bg-primary);border-radius:var(--clinical-radius-sm)}.app-list-item:hover,.stat-card:hover,.result-card:hover,.step-card:hover,.testimonial-card:hover{border-color:var(--clinical-border);box-shadow:var(--shadow-md)}.dashboard-page .dashboard-hero,.dashboard-page .app-header-card{border-radius:var(--radius-lg);padding:18px 20px}.dashboard-page .dashboard-hero h1{font-size:clamp(1.35rem,2vw,1.8rem);margin-bottom:2px}.dashboard-page .app-header-subtitle{font-size:.95rem;color:var(--clinical-label)}.dashboard-page .dashboard-stats{gap:12px}.dashboard-page .stat-card{padding:12px 16px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.dashboard-page .stat-card .stat-content h3{font-size:1.35rem;line-height:var(--line-height-tight)}.dashboard-page .stat-card .stat-content p{font-size:.9rem;line-height:var(--line-height-normal);color:var(--clinical-label)}.dashboard-page .dashboard-section{border-radius:var(--radius-md);padding:12px}.dashboard-page .dashboard-section .app-section-title{font-size:1rem;font-weight:650;margin-bottom:12px}.dashboard-page .app-list-item{min-height:52px;border-radius:var(--radius-md)}.dashboard-page .app-list-label{font-weight:var(--font-weight-semibold);color:var(--clinical-heading)}.dashboard-page .app-list-value{color:var(--clinical-label)}.dashboard-page .dashboard-refresh-btn{border:1px solid var(--clinical-border);background:var(--clinical-surface-muted)}.dashboard-page .dashboard-refresh-btn:hover:not(:disabled){background:var(--primary-50, #edf4fe)}.auth-page{background:linear-gradient(180deg,#f7fafd,#f2f6fb)}.auth-left{background:linear-gradient(180deg,var(--primary-dark) 0%,var(--primary-dark) 100%)}.auth-feature{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--clinical-radius)}.auth-card .auth-header h2{color:var(--clinical-heading)}.auth-card .auth-header p{color:var(--clinical-label)}.auth-container{max-width:460px}.auth-card{padding:22px;border-radius:var(--radius-lg)}.auth-header{margin-bottom:18px}.auth-header h2{font-size:clamp(1.3rem,1.8vw,1.6rem);margin-bottom:6px}.auth-header p{font-size:.95rem;line-height:var(--line-height-normal)}.auth-left .auth-brand h1{font-size:clamp(1.45rem,2.2vw,1.95rem);line-height:1.25}.auth-left .auth-brand p{font-size:1rem;line-height:1.55}.auth-left .auth-feature{padding:12px;border-radius:var(--radius-lg)}.auth-left .feature-text h3{margin-bottom:4px}.auth-left .feature-text p{font-size:.88rem;line-height:var(--line-height-normal)}input,select,textarea,.input{border:1px solid var(--clinical-border);border-radius:var(--clinical-radius-sm);background:var(--white);min-height:44px;padding:12px}input:focus,select:focus,textarea:focus,.input:focus{border-color:var(--primary);box-shadow:var(--focus-shadow);background:var(--bg-primary)}.profile-tab.active,.tab-button.active{border-color:#9fc0e8;background:#ecf4ff;color:var(--primary-dark)}.profile-settings-page{background:linear-gradient(180deg,#f7fafd,#f3f7fc)}.profile-settings-page .profile-header-card{background:linear-gradient(135deg,#265cae,#3d74c7);border-radius:0 0 12px 12px}.profile-settings-page .settings-section,.profile-settings-page .app-section{border-radius:var(--clinical-radius-lg);border:1px solid var(--clinical-border);box-shadow:var(--shadow-sm)}.homepage .hero,.homepage .hero-content,.homepage .sample-report-preview,.dashboard-page .dashboard-empty-wrapper,.dashboard-page .overlay-cta,.scan-page .scan-content,.scan-page .scan-upload-card,.myshelf-page .myshelf-hero,.myshelf-page .product-card,.analysis-results .result-card,.auth-page .auth-feature,.profile-settings-page .profile-modal{border-radius:var(--clinical-radius-lg);box-shadow:var(--shadow-sm)}@media (max-width: 768px){.card,.app-section,.dashboard-section,.result-card,.step-card,.testimonial-card,.faq-item,.auth-card{padding:var(--clinical-space-sm)}}.profile-settings-page .section-title{font-size:1rem;font-weight:650;margin-bottom:8px}.profile-settings-page .form-group{margin-bottom:12px;gap:6px}.profile-settings-page label{font-size:.88rem;font-weight:var(--font-weight-semibold);color:var(--clinical-heading)}.profile-settings-page .form-hint{font-size:.82rem;line-height:1.42;color:var(--clinical-label)}.results-grid,.products-grid{border-color:var(--clinical-border)}.card:hover,.btn:hover,.app-nav-link:hover,.app-nav-cta:hover{transform:none}@media (max-width: 768px){.dashboard-page .dashboard-hero,.dashboard-page .app-header-card,.dashboard-page .stat-card,.dashboard-page .dashboard-section{padding:12px}}:root{--primary: #1f5fbf;--primary-hover: #174a95;--primary-light: #e8f0fd;--primary-dark: #153f80;--accent: #4f8ad9;--accent-light: #f2f6fd;--gradient-start: #1f5fbf;--gradient-end: #4f8ad9;--gradient-primary: linear-gradient(135deg, #1f5fbf 0%, #4f8ad9 100%);--gradient-blue: linear-gradient(135deg, #1f5fbf 0%, #6ea1e3 100%);--gradient-glow: linear-gradient(135deg, #6ea1e3 0%, #9bbdef 100%);--success: #1b7f53;--success-light: #e8f7ef;--success-50: #f0fdf4;--success-100: #dcfce7;--success-200: #bbf7d0;--success-600: #059669;--success-700: #15803d;--success-800: #065f46;--warning: #b97710;--warning-light: #fff5e6;--warning-100: #fef3c7;--warning-400: #fbbf24;--warning-600: #d97706;--warning-700: #b45309;--warning-800: #92400e;--warning-900: #78350f;--danger: #b42318;--danger-light: #fdeceb;--danger-50: #fef2f2;--danger-100: #fee2e2;--danger-200: #fecaca;--danger-700: #b91c1c;--danger-800: #991b1b;--info: #1f5fbf;--info-light: #e8f0fd;--primary-50: #eff6ff;--primary-100: #dbeafe;--primary-200: #bfdbfe;--primary-700: #1d4ed8;--pink-100: #fce7f3;--pink-700: #be185d;--purple-100: #f3e8ff;--gray-950: #0a0a0a;--white: #ffffff;--gray-50: #f9fbfd;--gray-100: #f2f5f8;--gray-200: #e4e9ef;--gray-300: #d1d9e4;--gray-400: #97a6ba;--gray-500: #6c7d93;--gray-600: #4e6078;--gray-700: #36485f;--gray-800: #27364c;--gray-900: #162133;--primary-rgb: 31, 95, 191;--accent-rgb: 79, 138, 217;--section-padding-y: 56px;--section-padding-x: var(--spacing-lg, 24px);--section-header-gap: 32px;--bg-primary: var(--white);--bg-secondary: #f6f8fb;--bg-tertiary: #eef2f6;--text-primary: var(--gray-900);--text-secondary: var(--gray-600);--text-muted: var(--gray-500);--placeholder-color: var(--gray-500);--primary-dark: var(--primary-hover);--secondary: var(--warning);--error: var(--danger);--background: var(--bg-primary);--bg-light: var(--bg-secondary);--bg-white: var(--white);--text-dark: var(--text-primary);--text-gray: var(--text-secondary);--text-light: var(--text-muted);--border: var(--border-color);--shadow: var(--shadow-sm);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--border-color: var(--gray-200);--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 12px;--border-radius-xl: 16px;--border-radius-full: 9999px;--card-radius: var(--radius-lg, 12px);--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--z-nav: 600;--z-banner: 700;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 2px 8px rgba(16, 24, 40, .06);--shadow-lg: 0 8px 20px rgba(16, 24, 40, .08);--shadow-xl: 0 14px 36px rgba(16, 24, 40, .12);--shadow-glow: 0 0 0 transparent;--shadow-primary: 0 8px 18px -8px rgba(31, 95, 191, .35);--shadow-card: 0 1px 2px rgba(16, 24, 40, .04), 0 3px 8px rgba(16, 24, 40, .05);--shadow-card-hover: 0 4px 14px rgba(16, 24, 40, .08);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.5rem;--line-height-tight: 1.2;--line-height-snug: 1.35;--line-height-normal: 1.5;--line-height-relaxed: 1.65;--line-height-loose: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--max-width-sm: 640px;--max-width-md: 768px;--max-width-lg: 1024px;--max-width-xl: 1280px;--breakpoint-mobile: 768px;--breakpoint-tablet: 1024px;--breakpoint-laptop: 1440px;--breakpoint-desktop: 1441px;--bp-xs: 480px;--bp-sm: 640px;--bp-md: 768px;--bp-lg: 1024px;--bp-xl: 1440px;--bp-2xl: 1920px;--focus-ring: 2px solid var(--primary);--focus-ring-offset: 2px;--focus-shadow: 0 0 0 4px rgba(37, 99, 235, .2);--z-index-dropdown: var(--z-modal);--z-index-sticky: var(--z-sticky);--z-index-modal: var(--z-modal);--z-index-toast: var(--z-toast);--z-index-select: var(--z-toast);--font-xs: clamp(10px, 2.5vw, 12px);--font-sm: clamp(12px, 3vw, 14px);--font-md: clamp(14px, 3.5vw, 16px);--font-lg: clamp(16px, 4vw, 20px);--font-xl: clamp(20px, 5vw, 28px);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-easing: cubic-bezier(.4, 0, .2, 1);--button-height-sm: 36px;--button-height-md: 44px;--button-height-lg: 52px;--button-padding-sm: 8px 16px;--button-padding-md: 12px 24px;--button-padding-lg: 16px 32px;--button-press-scale: .97;--card-padding: 24px;--card-radius: 16px;--card-shadow: var(--shadow-card);--card-hover-shadow: var(--shadow-card-hover);--card-hover-lift: -4px;--card-margin-bottom: 16px;--section-gap: 24px;--section-header-margin: 12px}@media (min-width: 375px){:root{--font-sm: clamp(13px, 3vw, 14px);--font-md: clamp(15px, 3.5vw, 16px)}}@media (min-width: 414px){:root{--font-sm: 14px;--font-md: 16px}}@media (max-width: 320px){:root{--font-scale: .9}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}button,a,input,select,textarea,[role=button]{-webkit-tap-highlight-color:transparent}.product-card,.info-card,.label,.stat-label,.product-name{word-break:normal;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;white-space:normal}.stat-label,.dt-hero-score-label,.dt-hero-mood-label{white-space:nowrap}button.btn-primary,button.btn-secondary,a.btn-primary,a.btn-secondary{min-height:44px;min-width:44px;padding:12px 16px}button.btn-sm,a.btn-sm{padding:8px 14px;min-height:44px}.bottom-nav-item,.bottom-nav-item-center{min-height:44px;min-width:44px}.product-card{display:flex;flex-direction:column;min-width:100px;padding:12px}.product-card .product-name{font-size:clamp(12px,3vw,16px);line-height:1.3;word-break:normal;overflow-wrap:break-word}.bottom-nav{padding-bottom:max(12px,env(safe-area-inset-bottom))}.app-header-card,.app-main .app-page>header,.page-header{padding-top:max(16px,env(safe-area-inset-top))}.section{margin-bottom:var(--section-gap, 24px)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--section-header-margin, 12px)}.section-title{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary)}@media (max-width: 768px){html,body{-webkit-overflow-scrolling:touch}html{min-height:100dvh;height:100%;width:100%;overflow-x:hidden;min-height:-webkit-fill-available}body{min-height:100dvh;min-height:-webkit-fill-available;width:100%;max-width:100vw;min-width:0;overflow-x:hidden}#root{width:100%;max-width:100vw;min-width:0;overflow-x:hidden}}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-secondary);overflow-x:hidden;overflow-y:auto;word-wrap:break-word;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:var(--font-weight-normal)}#root{min-height:100%;min-height:100dvh}@supports (padding: max(0px)){body{padding-left:max(0px,env(safe-area-inset-left));padding-right:max(0px,env(safe-area-inset-right));padding-bottom:max(0px,env(safe-area-inset-bottom))}}h1,h2,h3,h4,h5{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--text-primary);letter-spacing:var(--letter-spacing-tight)}h1{font-size:var(--font-size-5xl);font-weight:var(--font-weight-extrabold);line-height:1.1}h2{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);line-height:1.15}h3{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);line-height:1.25}h4{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}h5{font-size:var(--font-size-lg)}@media (min-width: 769px) and (max-width: 1024px){h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}}@media (min-width: 1025px) and (max-width: 1440px){h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-4xl)}h3{font-size:var(--font-size-2xl)}}@media (max-width: 768px){h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}}@media (max-width: 480px){h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-lg)}h4{font-size:var(--font-size-base)}h5{font-size:var(--font-size-sm)}}@media (max-width: 360px){html{font-size:15px}}p{color:var(--text-secondary);line-height:var(--line-height-relaxed)}li,span{line-height:var(--line-height-relaxed)}a{color:var(--primary);text-decoration:none;transition:color .2s ease;min-height:24px;display:inline-block}a:hover{color:var(--primary-hover)}@media (max-width: 768px){a{min-height:32px;padding:4px 0}}img{max-width:100%;height:auto;display:block}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button{font-family:inherit;cursor:pointer;border:none;min-height:44px}button:focus{outline:none}button:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);box-shadow:var(--focus-shadow)}a:focus{outline:none}a:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}[tabindex]:not([tabindex="-1"]):focus{outline:none}[tabindex]:not([tabindex="-1"]):focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}input:not([type=checkbox]):not([type=radio]),select{font-family:inherit;font-size:var(--font-size-base);min-height:44px}textarea{font-family:inherit;font-size:var(--font-size-base);min-height:88px}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-shadow)}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);border-color:var(--primary);box-shadow:var(--focus-shadow)}@media (max-width: 768px){input,textarea,select{font-size:16px}}.container{max-width:var(--max-width-xl);margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 1024px){.container{padding:0 var(--spacing-lg)}}@media (max-width: 768px){.container{padding:0 var(--spacing-md)}}@media (max-width: 480px){.container{padding:0 var(--spacing-md)}}@media (max-width: 768px){.product-grid,.products-grid{grid-template-columns:1fr!important;gap:var(--spacing-lg)}}.card-header,.section-card-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border)}.card-header h2,.card-header h3,.section-card-header h2,.section-card-header h3{font-size:var(--font-size-xl);font-weight:600;color:var(--text-primary);margin:0}.history-search-input{min-height:44px;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);border:1px solid var(--border);font-size:var(--font-size-base)}.history-search-input:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-shadow)}.search-bar input:focus-visible,.search-input:focus-visible,.favorites-search-input:focus-visible,.history-search-input:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset)}input[type=checkbox],input[type=radio]{width:20px;height:20px;min-width:20px;min-height:20px;accent-color:var(--primary);vertical-align:middle;margin-right:var(--spacing-sm)}.checkbox-group label,.checkbox-label{display:inline-flex;align-items:center;gap:var(--spacing-sm);white-space:nowrap}.checkbox-group input[type=checkbox],.checkbox-label input[type=checkbox]{margin-right:0;flex-shrink:0}[role=listbox]{z-index:var(--z-index-dropdown)}@media (max-width: 768px){form .form-group input,form .form-group select,form .form-group textarea,form input,form select,form textarea{width:100%!important;max-width:100%;box-sizing:border-box}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-family);font-weight:600;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;white-space:nowrap;text-decoration:none;min-height:48px;padding:12px 24px;font-size:1rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-sm{min-height:32px;padding:6px 12px;font-size:.875rem;border-radius:var(--radius-md)}.btn-primary{background:var(--gradient-primary);color:var(--white);box-shadow:var(--shadow-primary);border:none;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}.btn-primary:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-blue);opacity:0;transition:opacity .3s ease}.btn-primary:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.btn-primary:hover:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:0 12px 28px -8px #1f5fbf80}.btn-primary:hover:not(:disabled):before{opacity:1}.btn-primary:hover:not(:disabled):after{left:100%}.btn-primary span,.btn-primary svg{position:relative;z-index:1}.btn-primary:active:not(:disabled){transform:translateY(-1px) scale(.99);box-shadow:0 6px 16px -8px #2563eb80}.btn-primary--hero{min-height:56px;padding:18px 40px;font-size:1.1rem;border-radius:var(--radius-xl);box-shadow:0 20px 40px -15px #2563eb80}.btn-primary--hero:hover:not(:disabled){box-shadow:0 25px 50px -15px #2563eb99}.btn-secondary{background:#fff;color:var(--text-primary);border:1px solid var(--border-color);box-shadow:0 2px 4px #0000000a;transition:all .25s cubic-bezier(.4,0,.2,1)}.btn-secondary:hover:not(:disabled){border-color:var(--primary);color:var(--primary);background:var(--primary-light);transform:translateY(-2px);box-shadow:0 8px 20px #3b82f61f}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--text-primary)}.btn-outline{background:transparent;color:var(--primary);border:2px solid var(--primary)}.btn-outline:hover:not(:disabled){background:var(--primary);color:#fff}.btn-icon{display:flex;align-items:center;justify-content:center}.input{width:100%;min-height:52px;padding:14px 18px;font-size:1rem;font-family:var(--font-family);color:var(--text-primary);background:#fff;border:1.5px solid var(--border-color);border-radius:var(--radius-lg);transition:all .25s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #0000000a}.input::placeholder{color:var(--gray-400)}.input:hover{border-color:var(--gray-400);box-shadow:0 2px 4px #0000000f}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px #1f5fbf1a,0 2px 8px #1f5fbf1a;background:#fafbff}*:focus-visible{outline:2px solid var(--primary);outline-offset:2px}*:focus:not(:focus-visible){outline:none}.card,.stat-card,.product-card,.testimonial-card,.result-card,.step-card,.today-card,.me-twin-card,.today-product-card{transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1)}.card:hover,.product-card:hover,.testimonial-card:hover,.result-card:hover,.step-card:hover,.today-product-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.app-list-item,.me-list-item,[role=listitem]{transition:background .15s ease,color .15s ease}.app-list-item:hover,.me-list-item:hover{background:var(--bg-secondary)}a:not(.btn):not(.bottom-nav-item):not(.app-nav-link):hover{text-decoration-color:currentColor}section{animation:sectionFadeIn .4s ease-out}@keyframes sectionFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}button,[role=button],input[type=checkbox],input[type=radio],select{min-height:44px;min-width:44px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%236c7d93' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:40px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:3px}.textarea{min-height:120px;resize:vertical}.form-group{margin-bottom:20px}.form-hint{font-size:.8125rem;color:var(--text-muted);margin-top:6px}.form-error{font-size:.8125rem;color:var(--danger);margin-top:6px}.card{background:var(--bg-white);border-radius:var(--radius-xl, 16px);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1),border-color .3s ease}@media (max-width: 768px){html{font-size:15px}h1{font-size:2rem}h2{font-size:1.75rem}h3{font-size:1.4rem}}@media (max-width: 480px){html{font-size:14px}h1{font-size:1.75rem}h2{font-size:1.5rem}h3{font-size:1.25rem}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 4px #1f6feb33}.input:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #1f6feb26}a:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.card:focus-visible,[role=button]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.skip-link:focus{transform:translateY(0);opacity:1}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto!important}.card:hover,.stat-card:hover,.product-card:hover{transform:none!important}}@media (prefers-contrast: high){:root{--border-color: #000000;--text-primary: #000000;--text-secondary: #0a0a0a;--text-muted: #1a1a1a}body{color:#000}a{color:#00c;text-decoration:underline}.btn-primary,.btn-secondary,.btn-outline,.btn{border:2px solid #000000!important}input,textarea,select,.form-group input,.form-group select,.form-group textarea{border-width:2px!important;border-color:#000!important}.card,.product-card,.stat-card,.notification-item,.consent-modal{border:2px solid #000000!important}*:focus-visible{outline:3px solid #000000!important;outline-offset:2px}}::selection{background-color:var(--primary-light);color:var(--primary)}.loading-spinner{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm)}.loading-spinner__spinner{display:inline-block;border-radius:50%;border-style:solid;border-color:#1f6feb33;border-top-color:var(--primary);animation:spinner-rotate 1s linear infinite}.loading-spinner--small .loading-spinner__spinner{width:16px;height:16px;border-width:2px}.loading-spinner--medium .loading-spinner__spinner{width:24px;height:24px;border-width:3px}.loading-spinner--large .loading-spinner__spinner{width:40px;height:40px;border-width:4px}.loading-spinner__message{color:var(--text-secondary);font-size:var(--font-size-sm)}@keyframes spinner-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.btn-primary .loading-spinner__spinner{border-color:#ffffff59;border-top-color:#fff}.skeleton{background:linear-gradient(90deg,#f1f5f9,#e2e8f0,#f8fafc,#e2e8f0 60%,#f1f5f9);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-text:last-child{width:70%}.skeleton-heading{height:1.5em;width:60%;margin-bottom:1em}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-avatar--lg{width:80px;height:80px}.skeleton-card{background:#fff;border-radius:var(--radius-xl);padding:24px;border:1px solid var(--border-color)}.skeleton-card__image{height:180px;margin-bottom:16px;border-radius:var(--radius-lg)}.skeleton-card__content{display:flex;flex-direction:column;gap:8px}.skeleton-stat{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px}.skeleton-stat__icon{width:56px;height:56px;border-radius:var(--radius-lg)}.skeleton-stat__value{width:60%;height:2rem}.skeleton-stat__label{width:80%;height:1rem}.skeleton-button{height:48px;width:140px;border-radius:var(--radius-lg)}.skeleton-input{height:52px;border-radius:var(--radius-lg)}.skeleton-row{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--border-color)}.skeleton-row>.skeleton{flex:1;height:1.25rem}.skeleton-chart{height:300px;border-radius:var(--radius-lg)}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px}body:before,body:after,#root:before,#root:after{content:none!important;display:none!important}.card{background:var(--bg-white);border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid var(--border-color)}html{scroll-behavior:smooth}*:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}@media (max-width: 768px){.btn-primary,.btn-secondary,.app-nav-mobile-link{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.app-nav-mobile-link{display:flex}}button,a,input,select,textarea{transition:all .2s cubic-bezier(.4,0,.2,1)}.loading,.loading *{cursor:wait!important}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}img{opacity:0;transition:opacity .3s ease-in-out}img.loaded,img[src]{opacity:1}#root{animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}::selection{background:var(--primary-light);color:var(--primary)}::-moz-selection{background:var(--primary-light);color:var(--primary)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{-webkit-tap-highlight-color:transparent}@media (hover: none) and (pointer: coarse){button,a,.btn-primary,.btn-secondary{min-height:48px;min-width:48px}input[type=checkbox],input[type=radio]{min-width:24px;min-height:24px}.card:hover,.btn-primary:hover,.btn-secondary:hover{transform:none}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.page-content{animation:fadeInUp .4s ease-out}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.app-header,.app-nav,.app-breadcrumbs,.app-footer,.skip-link,.back-to-top,.toast-container,[aria-label=Notifications],button:not(.print-show),.app-nav-cta,.app-nav-mobile,.app-nav-user-dropdown{display:none!important}body{background:#fff;color:#111}.app-main{padding:0}a[href]:after{content:" (" attr(href) ")";font-size:.85em;color:#666}img{max-width:100%!important;page-break-inside:avoid}.card{box-shadow:none;border:1px solid #ddd;page-break-inside:avoid}}html{overflow-x:hidden}body{max-width:100%;overflow-x:hidden}p,li,span,.page-container{word-wrap:break-word;overflow-wrap:break-word}@media (max-width: 768px){.btn-primary,.btn-secondary,.btn-outline,.back-button,.back-to-top,button:not([type=checkbox]):not([type=radio]),.app-nav a,.skip-link{min-height:44px;min-width:44px;padding-top:10px;padding-bottom:10px}button.inline-icon,.back-button{min-width:44px}}
