@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Playfair+Display:wght@700&display=swap";.layout{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background:var(--gradient-bg)}.layout-content{flex:1;min-height:0;padding-top:var(--safe-top, 0px);padding-bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom));overflow-y:auto;background:var(--gradient-bg);overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);border:none;border-radius:var(--radius-md);font-family:var(--font-primary);font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:var(--space-sm) var(--space-md);font-size:13px;border-radius:var(--radius-sm)}.btn-md{padding:var(--space-md) var(--space-lg);font-size:15px}.btn-lg{padding:var(--space-base) var(--space-xl);font-size:17px;border-radius:var(--radius-lg)}.btn-primary{background:var(--gradient-cta);color:var(--white);box-shadow:0 4px 12px #8b5cf64d}.btn-primary:active:not(:disabled){transform:scale(.97);box-shadow:0 2px 6px #8b5cf633}.btn-secondary{background:var(--purple-ultra-light);color:var(--purple-primary)}.btn-secondary:active:not(:disabled){background:var(--purple-muted)}.btn-outline{background:transparent;color:var(--purple-primary);border:1.5px solid var(--purple-primary)}.btn-outline:active:not(:disabled){background:var(--purple-ultra-light)}.btn-ghost{background:transparent;color:var(--gray-600)}.btn-ghost:active:not(:disabled){background:var(--gray-100)}.btn-danger{background:var(--error);color:var(--white)}.btn-danger:active:not(:disabled){opacity:.85}.btn-full{width:100%}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}.onboarding{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:var(--space-base);padding-top:calc(var(--safe-top, 0px) + var(--space-base));transition:background .3s ease}.onboarding-tour{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--space-3xl) 0;animation:fadeIn .4s ease}.onboarding-illustration{position:relative;width:160px;height:160px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-2xl);animation:scaleIn .5s ease}.onboarding-big-emoji{font-size:72px;line-height:1}.onboarding-float-emoji{position:absolute;top:-10px;right:-10px;font-size:32px;animation:pulse 2s ease-in-out infinite}.onboarding-title{font:var(--text-h1);margin-bottom:var(--space-md)}.onboarding-desc{font:var(--text-body);color:var(--gray-600);max-width:300px}.onboarding-dots{display:flex;gap:var(--space-sm);margin-top:var(--space-2xl)}.onboarding-dot{width:8px;height:8px;border-radius:50%;background:var(--gray-300);transition:all .3s ease}.onboarding-dot.active{width:24px;border-radius:var(--radius-full);background:var(--purple-primary)}.onboarding-footer{padding:var(--space-base) 0;padding-bottom:calc(var(--space-base) + var(--safe-area-bottom))}.onboarding-footer-row{display:flex;gap:var(--space-md);align-items:center}.onboarding-footer-actions{flex:1;display:flex;align-items:center;gap:var(--space-md);justify-content:flex-end}.onboarding-skip{display:block;margin:var(--space-md) auto 0;font:var(--text-small);color:var(--gray-400);background:none;border:none;cursor:pointer;padding:var(--space-sm) var(--space-base)}.onboarding-skip:disabled{opacity:.5;pointer-events:none}.onboarding-skip-inline{font:var(--text-small);color:var(--gray-400);background:none;border:none;cursor:pointer;padding:var(--space-sm) var(--space-base);white-space:nowrap}.onboarding-questionnaire{flex:1;display:flex;flex-direction:column;padding-top:var(--space-lg);overflow-y:auto}.onboarding-progress-segments{display:flex;gap:4px;margin-bottom:var(--space-2xl)}.onboarding-segment{flex:1;height:4px;background:var(--gray-100);border-radius:var(--radius-full);transition:background .3s ease}.onboarding-segment.filled{background:var(--purple-primary)}.onboarding-segment.current{background:var(--gradient-cta)}.onboarding-question{animation:fadeInUp .3s ease}.onboarding-question h2{font:var(--text-h2);margin-bottom:var(--space-sm)}.onboarding-options{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-xl)}.onboarding-options-wrap{flex-direction:row;flex-wrap:wrap}.onboarding-option{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-base) var(--space-lg);border-radius:var(--radius-md);border:2px solid var(--gray-200);background:var(--white);font:var(--text-body-medium);color:var(--gray-800);transition:all .2s ease;cursor:pointer;-webkit-tap-highlight-color:transparent}.onboarding-option:active{transform:scale(.98)}.onboarding-option.selected{border-color:var(--purple-primary);background:var(--purple-ultra-light);color:var(--purple-deep)}.onboarding-chip{padding:var(--space-sm) var(--space-base);border-radius:var(--radius-full);font:var(--text-small-medium)}.onboarding-chip-accent{border-style:dashed;border-color:var(--purple-primary);color:var(--purple-primary);background:#8b5cf60a}.onboarding-chip-accent.selected{border-style:solid;background:var(--purple-ultra-light)}.onboarding-option-emoji{font-size:24px;line-height:1}.onboarding-option-card{flex-direction:row;align-items:center;gap:var(--space-md);padding:var(--space-base) var(--space-lg)}.onboarding-card-emoji{font-size:28px;line-height:1;flex-shrink:0;width:40px;text-align:center}.onboarding-card-content{display:flex;flex-direction:column;gap:2px;text-align:left}.onboarding-card-label{font:var(--text-body-medium)}.onboarding-card-desc{font:var(--text-small);color:var(--gray-500)}.onboarding-option-card.selected .onboarding-card-desc{color:var(--purple-primary)}.wheel-picker{position:relative;width:100%;max-width:280px;margin:var(--space-2xl) auto var(--space-lg);overflow:hidden;border-radius:var(--radius-xl);background:var(--gray-50)}.wheel-picker-scroll{height:100%;overflow-y:auto;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.wheel-picker-scroll::-webkit-scrollbar{display:none}.wheel-picker-item{display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:500;color:var(--gray-300);scroll-snap-align:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.wheel-picker-item.active{font-size:36px;font-weight:800;color:var(--purple-primary)}.wheel-picker-empty{cursor:default}.wheel-picker-highlight{position:absolute;left:8px;right:8px;background:#8b5cf614;border-top:2px solid var(--purple-primary);border-bottom:2px solid var(--purple-primary);border-radius:var(--radius-md);pointer-events:none;z-index:1}.wheel-picker-fade-top{position:absolute;top:0;left:0;right:0;background:linear-gradient(to bottom,var(--gray-50) 10%,transparent);pointer-events:none;z-index:2}.wheel-picker-fade-bottom{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,var(--gray-50) 10%,transparent);pointer-events:none;z-index:2}.onboarding-banner{display:flex;gap:var(--space-md);align-items:flex-start;padding:var(--space-base) var(--space-lg);border-radius:var(--radius-md);font:var(--text-small);margin-top:var(--space-lg);animation:fadeIn .3s ease}.onboarding-banner svg{flex-shrink:0;margin-top:2px}.onboarding-banner-warning{background:#fff7ed;color:#9a3412;border:1px solid #FDBA74}.onboarding-banner-warning svg{color:#ea580c}.onboarding-banner-info{background:#eff6ff;color:#1e40af;border:1px solid #93C5FD}.onboarding-banner-info svg{color:#2563eb}.onboarding-banner-success{background:#f0fdf4;color:#166534;border:1px solid #86EFAC}.onboarding-banner-success svg{color:#16a34a}.onboarding-add-other{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);padding:var(--space-sm) var(--space-base);border:1px dashed var(--gray-300);border-radius:var(--radius-full);background:transparent;font:var(--text-small-medium);color:var(--gray-500);cursor:pointer;transition:all .2s ease}.onboarding-add-other:hover{border-color:var(--purple-primary);color:var(--purple-primary)}.onboarding-custom-field{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);animation:fadeIn .2s ease}.onboarding-text-input{flex:1;padding:var(--space-sm) var(--space-base);border:2px solid var(--gray-200);border-radius:var(--radius-md);font:var(--text-body);outline:none;transition:border-color .2s ease}.onboarding-text-input:focus{border-color:var(--purple-primary)}.onboarding-remove-other{width:36px;height:36px;border-radius:50%;border:none;background:var(--gray-100);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-500)}.onboarding-hint{font:var(--text-small);color:var(--purple-primary);margin-top:var(--space-md);text-align:center}.onboarding-hint-muted{color:var(--gray-400)}.onboarding-final{background:var(--gradient-bg)}.onboarding-final-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;animation:scaleIn .5s ease}.onboarding-final-emoji{font-size:80px;margin-bottom:var(--space-xl);animation:pulse 2s ease-in-out infinite}.onboarding-final-content h2{font:var(--text-h1);margin-bottom:var(--space-md)}.onboarding-final-content p{font:var(--text-body);color:var(--gray-600);max-width:280px}.progress-wrap{display:flex;align-items:center;gap:var(--space-sm);width:100%}.progress-label{font:var(--text-small);color:var(--gray-500);white-space:nowrap;min-width:-moz-fit-content;min-width:fit-content}.progress-bar{flex:1;background:var(--gray-100);border-radius:var(--radius-full);overflow:hidden}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}.progress-value{font:var(--text-caption-medium);color:var(--gray-500);white-space:nowrap}.donut-wrap{position:relative;display:inline-flex;align-items:center;justify-content:center}.donut-svg{position:absolute;inset:0}.donut-center{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.badge{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:600;border-radius:var(--radius-full);white-space:nowrap}.badge-sm{padding:2px 8px;font-size:11px}.badge-md{padding:4px 12px;font-size:12px}.badge-default{background:var(--gray-100);color:var(--gray-600)}.badge-primary{background:var(--purple-ultra-light);color:var(--purple-primary)}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-error{background:var(--error-light);color:var(--error)}.badge-purple{background:var(--gradient-primary);color:var(--white)}.concern-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:500;padding:2px 7px;border-radius:6px;white-space:nowrap}.catalog-teaser{padding:var(--space-md)}.catalog-teaser-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.catalog-teaser-title{font-size:16px;font-weight:600}.catalog-teaser-subtitle{font-size:12px;color:var(--gray-500);margin-top:2px}.catalog-teaser-link{font-size:13px;color:var(--purple-primary);font-weight:500;background:none;border:none;cursor:pointer;padding:0}.catalog-teaser-track{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px}.catalog-teaser-track::-webkit-scrollbar{display:none}.catalog-teaser-card{min-width:156px;max-width:156px;flex-shrink:0;background:var(--white);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit;scroll-snap-align:start}.catalog-teaser-card-img{position:relative;height:120px;background:var(--gray-100);display:flex;align-items:center;justify-content:center}.catalog-teaser-card-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.catalog-teaser-match{position:absolute;top:8px;right:8px;background:#8b5cf680;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:9px;font-weight:600;padding:2px 6px;border-radius:8px}.catalog-teaser-card-body{padding:10px 12px 12px}.catalog-teaser-brand{font-size:10px;color:var(--gray-500)}.catalog-teaser-name{font-size:13px;font-weight:500;line-height:1.3;margin:2px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:34px}.catalog-teaser-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.catalog-teaser-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.catalog-teaser-price{font-size:14px;font-weight:600;color:var(--purple-primary)}.catalog-teaser-rating{font-size:11px;color:var(--gray-500);display:inline-flex;align-items:center;gap:2px}.dashboard{padding:var(--space-base);animation:fadeIn .3s ease}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.dashboard-greeting h1{font:var(--text-h2);margin-bottom:var(--space-xs)}.dashboard-greeting p{font:var(--text-small);color:var(--gray-500)}.dashboard-avatar{width:48px;height:48px;border-radius:var(--radius-full);background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer;transition:transform .2s}.dashboard-avatar:active{transform:scale(.95)}.dashboard-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.dashboard-avatar span{color:var(--white);font:var(--text-h3)}.dashboard-score-card{margin-bottom:var(--space-base);padding:var(--space-lg)}.dashboard-score-content{display:flex;align-items:center;gap:var(--space-xl)}.dashboard-score-value{font-size:28px;font-weight:700;color:var(--purple-primary);line-height:1}.dashboard-score-label{font:var(--text-caption);color:var(--gray-400)}.dashboard-score-info{display:flex;flex-direction:column;gap:var(--space-sm)}.dashboard-skin-type{font:var(--text-body-medium)}.dashboard-skin-age{font:var(--text-small);color:var(--gray-500)}.dashboard-details-link{display:inline-flex;align-items:center;gap:4px;font:var(--text-small-medium);color:var(--purple-primary)}.dashboard-credits-card{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;margin-bottom:var(--space-base);cursor:pointer;background:linear-gradient(135deg,var(--purple-50, #f5f3ff) 0%,var(--accent-bg, #eef2ff) 100%);border:1px solid var(--purple-100, #e0d4fd);border-radius:var(--radius-lg, 16px);transition:transform .15s ease}.dashboard-credits-card:active{transform:scale(.98)}.dashboard-credits-left{display:flex;align-items:center;gap:14px}.dashboard-credits-icon{width:44px;height:44px;border-radius:12px;background:var(--purple-primary, #6366f1);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dashboard-credits-info{display:flex;flex-direction:column;gap:2px}.dashboard-credits-label{font-size:13px;color:var(--gray-600, #666)}.dashboard-credits-count{font-size:28px;font-weight:800;line-height:1;color:var(--text-primary, #111)}.dashboard-credits-action{flex-shrink:0}.dashboard-credits-buy,.dashboard-credits-scan{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--purple-primary, #6366f1)}.dashboard-credits-buy{color:var(--error, #ef4444)}.dashboard-actions,.dashboard-section{margin-bottom:var(--space-xl)}.dashboard-section-title{display:flex;align-items:center;gap:var(--space-sm);font:var(--text-h4);margin-bottom:var(--space-md);color:var(--gray-800)}.dashboard-history-scroll{display:flex;gap:var(--space-sm);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.dashboard-history-scroll::-webkit-scrollbar{display:none}.dashboard-history-item{display:flex;flex-direction:column;gap:var(--space-sm);min-width:164px;padding:var(--space-md);text-decoration:none;color:inherit;border:1px solid var(--gray-100);transition:transform .2s,box-shadow .2s,border-color .2s}.dashboard-history-item:active{transform:scale(.96)}.dashboard-history-date{font:var(--text-caption-medium);color:var(--gray-500);font-variant-numeric:tabular-nums;letter-spacing:.2px}.dashboard-history-score-row{display:flex;align-items:baseline;gap:6px}.dashboard-history-score{font-size:28px;font-weight:700;color:var(--gray-800);line-height:1}.dashboard-history-score-unit{font:var(--text-caption);color:var(--gray-400)}.dashboard-history-delta{display:inline-flex;align-items:center;gap:6px;font:var(--text-caption-medium)}.dashboard-history-delta.up{color:var(--success)}.dashboard-history-delta.down{color:var(--error)}.dashboard-history-delta.flat{color:var(--gray-500)}.dashboard-score-delta{font-size:12px;font-weight:600;margin-left:6px}.dashboard-score-delta.up{color:#4ade80}.dashboard-score-delta.down{color:#f87171}.dashboard-score-delta.flat{color:#facc15}.dashboard-sparkline{margin-top:12px;padding-top:12px;border-top:1px solid var(--gray-200)}.dashboard-sparkline-label{font-size:11px;color:var(--gray-500);display:block;margin-bottom:6px}.dashboard-concerns{margin-top:10px;display:flex;flex-direction:column;gap:4px}.dashboard-concern-row{display:flex;align-items:center;justify-content:space-between;font-size:12px}.dashboard-concern-name{color:var(--gray-800)}.dashboard-concern-trend{font-weight:500}.dashboard-concern-trend.trend-improving{color:#4ade80}.dashboard-concern-trend.trend-worsening{color:#f87171}.dashboard-concern-trend.trend-stable{color:#facc15}@media(max-width:380px){.dashboard-score-content{flex-direction:column;align-items:flex-start;gap:var(--space-md)}.dashboard-history-item{min-width:152px}}.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-base);min-height:52px}.header-sticky{position:sticky;top:0;z-index:var(--z-sticky)}.header-left,.header-right{min-width:40px;display:flex;align-items:center}.header-right{justify-content:flex-end}.header-title{font:var(--text-h4);text-align:center;flex:1}.header-back{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-full);color:var(--gray-700);transition:background .2s}.header-back:active{background:var(--gray-100)}.analysis{min-height:100vh}.analysis-content{padding:var(--space-base);display:flex;flex-direction:column;gap:var(--space-lg)}.analysis-content--preview{gap:var(--space-xl)}.analysis-phase-enter{animation:phaseSlideIn .35s ease-out}@keyframes phaseSlideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.analysis-hero{display:flex;flex-direction:column;gap:var(--space-base)}.analysis-camera-area{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl) var(--space-base);border-radius:var(--radius-xl);background:var(--gradient-card);border:1.5px dashed var(--purple-light);cursor:pointer;transition:border-color .2s,background .2s,transform .15s;outline:none}.analysis-camera-area:active{border-color:var(--purple-primary);background:var(--purple-ultra-light);transform:scale(.98)}.analysis-camera-area:focus-visible{border-color:var(--purple-primary);box-shadow:0 0 0 3px #8b5cf640}.analysis-camera-ring{width:80px;height:80px;border-radius:50%;background:var(--gradient-cta);color:var(--white);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #8b5cf64d;animation:cameraBreath 2.5s ease-in-out infinite}@keyframes cameraBreath{0%,to{box-shadow:0 8px 24px #8b5cf64d;transform:scale(1)}50%{box-shadow:0 10px 36px #8b5cf673,0 0 0 8px #8b5cf614;transform:scale(1.04)}}.analysis-camera-label{font:var(--text-body-medium);color:var(--gray-800);margin-top:var(--space-xs)}.analysis-camera-hint{font:var(--text-caption);color:var(--gray-400)}.analysis-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.analysis-features{display:flex;flex-direction:column;gap:var(--space-md)}.analysis-section-title{font:var(--text-small-medium);color:var(--gray-500);text-transform:uppercase;letter-spacing:.04em}.analysis-features-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.analysis-feature-chip{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-md);background:var(--white);border:1px solid var(--gray-100)}.analysis-feature-icon{width:36px;height:36px;min-width:36px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.analysis-feature-icon--purple{background:var(--purple-ultra-light);color:var(--purple-primary)}.analysis-feature-icon--pink{background:var(--pink-light);color:#ec4899}.analysis-feature-icon--green{background:var(--success-light);color:var(--success)}.analysis-feature-icon--amber{background:var(--warning-light);color:var(--warning)}.analysis-feature-name{display:block;font:var(--text-small-medium);color:var(--gray-800)}.analysis-feature-desc{display:block;font:var(--text-caption);color:var(--gray-400);line-height:1.3}.analysis-remaining{text-align:center;font:var(--text-caption);color:var(--gray-400);padding-bottom:var(--space-sm)}.analysis-limit-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-radius:var(--radius-lg);background:var(--warning-light);font:var(--text-small)}.analysis-limit-banner p{flex:1;margin:0}.analysis-preview{position:relative;border-radius:var(--radius-xl);overflow:hidden}.analysis-preview-img{width:100%;max-height:380px;-o-object-fit:cover;object-fit:cover;display:block}.analysis-preview-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:none;background:#00000073;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:3}.analysis-preview-overlay{position:absolute;inset:0;pointer-events:none;z-index:2}.analysis-preview-grid{position:absolute;inset:0;background:linear-gradient(to right,rgba(139,92,246,.12) 1px,transparent 1px),linear-gradient(to bottom,rgba(139,92,246,.12) 1px,transparent 1px);background-size:33.33% 33.33%;animation:gridFadeIn .6s ease .2s both}@keyframes gridFadeIn{0%{opacity:0}to{opacity:1}}.analysis-preview-badge{position:absolute;bottom:12px;left:12px;font:var(--text-caption-medium);color:var(--white);background:#8b5cf6bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:4px 10px;border-radius:var(--radius-full);animation:gridFadeIn .6s ease .4s both}.analysis-preview-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.analysis-loader{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);text-align:center;background:var(--gradient-bg)}.analysis-progress-wrapper{position:relative;width:120px;height:120px;margin-bottom:var(--space-xl)}.analysis-progress-ring{transform:rotate(-90deg)}.analysis-progress-ring-fill{transition:stroke-dashoffset .6s ease}.analysis-progress-center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--purple-primary)}.analysis-sparkle-spin{animation:sparkleRotate 3s linear infinite}@keyframes sparkleRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.analysis-loader h2{font:var(--text-h2);margin-bottom:var(--space-xs)}.analysis-loader p{font:var(--text-body);color:var(--gray-400)}.analysis-steps{margin-top:var(--space-2xl);width:100%;max-width:260px}.analysis-step{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;font:var(--text-small);color:var(--gray-300);transition:color .3s,transform .3s}.analysis-step.done{color:var(--success)}.analysis-step.active{color:var(--purple-primary);font-weight:500;transform:translate(4px)}.analysis-step-indicator{width:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.analysis-step-dot{width:6px;height:6px;border-radius:50%;background:var(--gray-200)}.spin{animation:spin 1s linear infinite}.analysis-success-icon{font-size:56px;margin-bottom:var(--space-xl);animation:scaleIn .5s ease}.analysis-error{text-align:center;padding:var(--space-2xl) 0;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.analysis-error-icon{font-size:48px}.analysis-error h3{font:var(--text-h3)}.analysis-error p{font:var(--text-body);color:var(--gray-500)}@keyframes scaleIn{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.results{padding-bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom) + 96px)}.results-v5{animation:fadeIn .2s ease}.results-loading{padding:var(--space-base)}.results-content{padding:0 var(--space-base)}.results-share{color:var(--gray-600);padding:var(--space-sm);border-radius:var(--radius-full);transition:background .2s ease,transform .15s ease}.results-share:active{background:var(--purple-ultra-light);transform:scale(.96)}.results-hero{position:relative;overflow:hidden;margin:var(--space-base) 0 var(--space-lg);border-radius:var(--radius-xl);border:1px solid rgba(139,92,246,.2);background:linear-gradient(160deg,#ede9fef2,#ddd6fed1 42%,#fffffff5)}.results-hero:before{content:"";position:absolute;top:-30px;right:-36px;width:128px;height:128px;border-radius:50%;background:#8b5cf624}.results-hero-subtitle{position:relative;font:var(--text-caption-medium);color:var(--purple-deep);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-base)}.results-hero-stats{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.results-hero-tile{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:var(--space-base) var(--space-sm);border-radius:var(--radius-lg);border:1px solid rgba(139,92,246,.14);background:#ffffffbf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.results-hero-value{font-size:38px;line-height:1;font-weight:800;color:var(--gray-900)}.results-hero-caption{font:var(--text-caption);color:var(--gray-600)}.results-hero-tone{position:relative;display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-base);padding:6px 12px;border-radius:var(--radius-md);font:var(--text-small-medium);color:var(--purple-deep);background:#ffffffb8;border:1px solid rgba(139,92,246,.15)}.results-profile-tags{position:relative;display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.results-summary-block{margin-bottom:var(--space-lg);border:1px solid var(--purple-muted);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.results-summary-title{font:var(--text-h4);color:var(--gray-900);margin-bottom:var(--space-md)}.results-summary-columns{display:grid;gap:var(--space-md)}.results-summary-col{border-radius:var(--radius-md);padding:var(--space-md);border:1px solid transparent}.results-summary-col.good{background:var(--success-light);border-color:#22c55e40}.results-summary-col.attention{background:var(--warning-light);border-color:#f59e0b40}.results-summary-col-title{font:var(--text-caption-medium);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm)}.results-summary-col.good .results-summary-col-title{color:var(--success)}.results-summary-col.attention .results-summary-col-title{color:#c67200}.results-summary-line{display:flex;align-items:flex-start;gap:var(--space-sm)}.results-summary-line+.results-summary-line{margin-top:var(--space-xs)}.results-summary-line span{margin-top:2px;font-size:12px;font-weight:700}.results-summary-col.good .results-summary-line span{color:var(--success)}.results-summary-col.attention .results-summary-line span{color:var(--warning)}.results-summary-line p{font:var(--text-small);color:var(--gray-700);line-height:1.45}.results-section{margin-bottom:var(--space-xl)}.results-section-title{font:var(--text-h3);margin-bottom:var(--space-sm);color:var(--gray-900)}.results-section-subtitle{font:var(--text-small);color:var(--gray-600);margin-bottom:var(--space-md)}.results-analysis-list{display:flex;flex-direction:column;gap:var(--space-sm)}.results-analysis-card{padding:0;overflow:hidden;border:1px solid var(--gray-200);box-shadow:none}.results-analysis-card.expanded{border-color:#8b5cf657;box-shadow:var(--shadow-sm)}.results-analysis-header{width:100%;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-base);color:inherit;text-align:left}.results-analysis-icon{width:34px;height:34px;flex-shrink:0;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;font-size:20px;background:var(--purple-ultra-light)}.results-analysis-head-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.results-analysis-head-main strong{font:var(--text-body-medium);color:var(--gray-900)}.results-analysis-head-main span{font:var(--text-caption);color:var(--gray-600)}.results-analysis-head-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.results-severity-bars{display:flex;gap:3px}.results-severity-bar{width:18px;height:5px;border-radius:3px;background:var(--gray-200)}.results-severity-bar.active.level-1{background:var(--warning)}.results-severity-bar.active.level-2{background:#f97316}.results-severity-bar.active.level-3{background:var(--error)}.results-analysis-body{padding:0 var(--space-base) var(--space-base);border-top:1px solid var(--gray-100);animation:fadeIn .2s ease}.results-analysis-description{margin-top:var(--space-sm);padding:10px 12px;border-radius:var(--radius-md);font:var(--text-small);color:var(--gray-700);line-height:1.5;background:var(--gray-50)}.results-analysis-metrics{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.results-analysis-metric-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);border-radius:var(--radius-md);background:var(--gray-50);border:1px solid var(--gray-100);padding:10px 12px}.results-analysis-metric-main{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px}.results-analysis-metric-name{font:var(--text-small);color:var(--gray-700)}.results-analysis-metric-note{font:var(--text-caption);color:var(--gray-500)}.results-analysis-metric-value{font-size:14px;font-weight:600;color:var(--gray-900)}.results-analysis-ingredients{margin-top:var(--space-md)}.results-analysis-ingredients-title{display:block;margin-bottom:var(--space-sm);font:var(--text-caption-medium);text-transform:uppercase;color:var(--gray-500);letter-spacing:.06em}.results-analysis-ingredients-chips{display:flex;flex-wrap:wrap;gap:6px}.results-analysis-chip{border-radius:10px;padding:5px 10px;font:var(--text-caption-medium);color:var(--gray-700);background:var(--gray-100)}.results-analysis-tip{margin-top:var(--space-md);display:flex;gap:var(--space-sm);border-radius:var(--radius-md);padding:10px 12px;background:var(--purple-ultra-light);border:1px solid rgba(139,92,246,.2)}.results-analysis-tip span{flex-shrink:0}.results-analysis-tip p{font:var(--text-small);color:var(--purple-deep);line-height:1.45}.results-map-wrap{margin-top:var(--space-md);border-radius:var(--radius-md);border:1px solid rgba(196,154,122,.28);background:linear-gradient(135deg,#fff8eeeb,#fffffff2);padding:var(--space-sm) var(--space-md) var(--space-md)}.results-map-title{font:var(--text-caption-medium);color:#7a553f;text-transform:uppercase;letter-spacing:.05em;text-align:center;margin-bottom:var(--space-sm)}.results-map-svg{width:100%;max-width:220px;margin:0 auto;display:block}.results-map-caption{margin-top:var(--space-sm);font:var(--text-caption);color:var(--gray-600);text-align:center}.results-skin-donut-wrap{margin-top:var(--space-md);display:flex;align-items:center;gap:var(--space-base)}.results-skin-donut{width:108px;height:108px;flex-shrink:0}.results-skin-legend{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.results-skin-legend-row{display:flex;align-items:center;gap:8px}.results-skin-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.results-skin-legend-name{flex:1;min-width:0;font:var(--text-caption);color:var(--gray-600)}.results-skin-legend-row strong{font-size:12px;color:var(--gray-900)}.results-concern{margin-bottom:var(--space-sm);padding:0;border:1px solid var(--gray-200);overflow:hidden;box-shadow:none}.results-concern-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--space-base)}.results-concern-header>div{display:flex;align-items:center;gap:var(--space-sm)}.results-concern-name{font:var(--text-body-medium);color:var(--gray-900)}.results-concern-content{padding:0 var(--space-base) var(--space-base);animation:fadeIn .2s ease}.results-concern-content p{font:var(--text-small);color:var(--gray-700);line-height:1.5;margin-bottom:var(--space-sm)}.results-concern-content h4{font:var(--text-small-medium);margin-bottom:var(--space-xs);color:var(--gray-800)}.results-concern-content li{font:var(--text-small);color:var(--gray-600);padding:2px 0}.results-concern-products{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.results-concern-products .product-card{min-width:0;border:1px solid var(--gray-100);border-radius:var(--radius-md)}.results-routine-switch{display:flex;gap:6px;padding:4px;margin-bottom:var(--space-base);border-radius:14px;border:1px solid var(--purple-muted);background:#ffffffc7}.results-routine-switch-btn{flex:1;border-radius:10px;padding:10px 8px;text-align:center;font:var(--text-small-medium);color:var(--gray-600);transition:transform .15s ease,color .2s ease,background .2s ease,box-shadow .2s ease}.results-routine-switch-btn span{font:var(--text-caption);opacity:.8}.results-routine-switch-btn:active{transform:scale(.98)}.results-routine-switch-btn.active{color:var(--white);background:var(--gradient-primary);box-shadow:0 5px 14px #8b5cf647}.results-routine-card{border:1px solid rgba(139,92,246,.18);border-radius:var(--radius-xl);background:linear-gradient(160deg,#ede9fe66,#ffffffeb)}.results-routine-list{display:flex;flex-direction:column}.results-routine-empty{padding:var(--space-base);border-radius:var(--radius-md);border:1px dashed var(--gray-300);font:var(--text-small);color:var(--gray-600);background:#ffffffb3}.results-routine-item-wrap{position:relative;padding-bottom:18px}.results-routine-line{position:absolute;left:16px;top:36px;bottom:2px;width:2px;background:var(--gray-200)}.results-routine-item{display:flex;gap:var(--space-md)}.results-routine-step-index{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;font-weight:700;color:var(--white);background:var(--gradient-primary);box-shadow:0 4px 12px #8b5cf640}.results-routine-main{flex:1;min-width:0}.results-routine-title-row{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:4px}.results-routine-title-row strong{font:var(--text-body-medium);color:var(--gray-900)}.results-routine-why{margin-bottom:10px;font:var(--text-small);line-height:1.45;color:var(--gray-600)}.results-routine-product,.results-routine-product-empty{border-radius:var(--radius-md);border:1px solid var(--gray-200);background:var(--white)}.results-routine-product{display:flex;align-items:center;gap:var(--space-sm);padding:10px}.results-routine-product-image{width:62px;height:62px;border-radius:10px;-o-object-fit:cover;object-fit:cover;flex-shrink:0;background:var(--gray-100)}.results-routine-product-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.results-routine-product-brand{font:var(--text-caption);text-transform:uppercase;color:var(--gray-400);letter-spacing:.04em}.results-routine-product-name{font:var(--text-small-medium);color:var(--gray-800);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.results-routine-product-price{font:var(--text-small-medium);color:var(--gray-900)}.results-routine-product-link{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;border-radius:8px;padding:4px 8px;font:var(--text-caption-medium);color:var(--purple-primary);background:var(--purple-ultra-light)}.results-routine-product-empty{padding:10px 12px;font:var(--text-small);color:var(--gray-500)}.results-cta{position:fixed;bottom:var(--tab-bar-height);left:0;right:0;z-index:var(--z-sticky);padding:12px var(--space-base);padding-bottom:calc(var(--space-base) + var(--safe-area-bottom));border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}.results-cta .btn{pointer-events:auto;box-shadow:0 8px 22px #7c3aed4d}@media(min-width:620px){.results-summary-columns{grid-template-columns:1fr 1fr}}@media(max-width:380px){.results-content{padding:0 12px}.results-hero-value{font-size:32px}.results-routine-step-index{width:30px;height:30px;font-size:13px}.results-routine-line{left:14px}.results-skin-donut-wrap{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}}.routine{padding:0 var(--space-base) var(--space-xl);display:flex;flex-direction:column;gap:var(--space-base)}.routine-calendar-trigger{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--gray-200);background:var(--white);color:var(--gray-700)}.routine-calendar-trigger:active{background:var(--gray-100)}.routine-hero{position:relative;overflow:hidden;padding:var(--space-base) var(--space-base) calc(var(--space-base) + 4px);background:radial-gradient(ellipse 140% 100% at 100% 0%,rgba(183,138,255,.22),transparent 55%),radial-gradient(ellipse 120% 100% at 0% 100%,rgba(255,170,120,.15),transparent 50%),radial-gradient(ellipse 80% 80% at 50% 50%,rgba(183,138,255,.04),transparent 70%),var(--white);border:1px solid rgba(183,138,255,.15)}.routine-hero:before{content:"";position:absolute;top:-40%;right:-20%;width:200px;height:200px;border-radius:50%;background:radial-gradient(circle,rgba(183,138,255,.08) 0%,transparent 70%);pointer-events:none;animation:routine-hero-glow 6s ease-in-out infinite alternate}.routine-hero:after{content:"";position:absolute;bottom:-30%;left:-15%;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,rgba(255,170,120,.06) 0%,transparent 70%);pointer-events:none;animation:routine-hero-glow 8s ease-in-out 1s infinite alternate-reverse}@keyframes routine-hero-glow{0%{transform:translate(0) scale(1);opacity:.5}to{transform:translate(-10px,15px) scale(1.2);opacity:1}}.routine-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-base)}.routine-streak{display:inline-flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);padding:4px 10px 4px 6px;background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,170,60,.15);border-radius:var(--radius-full);color:var(--gray-700);font:var(--text-small-medium)}.routine-hero-title{margin:0;font:var(--text-h3);color:var(--gray-900);letter-spacing:-.3px}.routine-hero-subtitle{margin:6px 0 0;color:var(--gray-600);font:var(--text-small)}.routine-hero-ring-wrap{position:relative;width:78px;height:78px;flex-shrink:0}.routine-hero-ring-svg{width:100%;height:100%;transform:rotate(-90deg);filter:drop-shadow(0 2px 8px rgba(183,138,255,.15))}.routine-ring-track{fill:none;stroke:#b78aff1a;stroke-width:5}.routine-ring-fill{--ring-pct: 0;fill:none;stroke:var(--purple-primary);stroke-width:5.5;stroke-linecap:round;stroke-dasharray:213.6;stroke-dashoffset:calc(213.6 - (213.6 * var(--ring-pct) / 100));transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 0 6px rgba(183,138,255,.4))}.routine-hero-ring-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;color:var(--gray-800);letter-spacing:-.5px}.routine-hero-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm);margin:var(--space-base) 0}.routine-hero-slot{background:#fff9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(183,138,255,.1);border-radius:var(--radius-md);padding:10px 12px;display:flex;flex-direction:column;align-items:center;gap:3px;transition:transform .2s ease,border-color .25s ease,background .25s ease}.routine-hero-slot.complete{border-color:#5bc48c59;background:#ebfbf380}.routine-hero-slot.empty{opacity:.55}.routine-hero-slot-icon{font-size:16px;line-height:1}.routine-hero-slot-label{color:var(--gray-500);font:var(--text-caption)}.routine-hero-slot-count{color:var(--gray-900);font:var(--text-small-medium);font-size:16px;letter-spacing:-.3px}.routine-hero-slot.complete .routine-hero-slot-count{color:var(--success)}.routine-toolbar{padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.routine-tabs{display:flex;gap:4px;background:var(--gray-100);border-radius:var(--radius-lg);padding:3px;position:relative}.routine-tab-indicator{--tab-index: 0;position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px - 8px) / 3);transform:translate(calc(var(--tab-index) * (100% + 4px)));background:var(--white);border-radius:calc(var(--radius-lg) - 2px);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a;transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:0}.routine-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:10px;border-radius:calc(var(--radius-lg) - 2px);color:var(--gray-500);font:var(--text-small-medium);transition:color .25s ease;position:relative;z-index:1;background:transparent}.routine-tab.active{color:var(--purple-primary)}.routine-tab-badge{font-size:10px;font-weight:600;padding:1px 5px;border-radius:var(--radius-full);background:var(--gray-200);color:var(--gray-600);line-height:1.3}.routine-tab.active .routine-tab-badge{background:#b78aff26;color:var(--purple-primary)}.routine-tab-badge.done{background:#5bc48c26;color:var(--success)}.routine-content{display:flex;flex-direction:column;gap:var(--space-base)}.routine-history{padding:var(--space-base);border:1px solid var(--gray-100);background:radial-gradient(120% 120% at 0% 0%,rgba(255,196,122,.12),transparent 56%),var(--white)}.routine-history-sheet{margin:0}.routine-history-head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.routine-history-head h3{margin:0;display:inline-flex;align-items:center;gap:6px;color:var(--gray-900);font:var(--text-small-medium)}.routine-history-head p{margin:4px 0 0;color:var(--gray-500);font:var(--text-caption)}.routine-history-today{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:var(--radius-full);background:var(--gray-100);color:var(--gray-700);font:var(--text-caption-medium);white-space:nowrap}.routine-history-empty{margin-top:var(--space-sm);border:1px dashed var(--gray-200);border-radius:var(--radius-md);padding:12px;color:var(--gray-500);font:var(--text-caption)}.routine-day-strip-wrap{margin-top:var(--space-sm);border:1px solid var(--gray-100);border-radius:var(--radius-md);background:linear-gradient(180deg,#fff,#faf8ff);padding:8px}.routine-day-strip{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}.routine-day-pill{border:1px solid var(--gray-200);border-radius:11px;background:linear-gradient(180deg,#fff,#f8f7fb);padding:7px 6px;min-height:70px;min-width:60px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--gray-700);flex-shrink:0}.routine-day-pill-week{font:var(--text-caption);color:var(--gray-500)}.routine-day-pill-num{font:var(--text-small-medium);color:var(--gray-900);line-height:1.1}.routine-day-pill-count{font:var(--text-caption-medium);color:var(--gray-600)}.routine-day-pill.has-info{border-color:#5bc48c73;background:linear-gradient(180deg,#fff,#ebfbf3f0)}.routine-day-pill.no-info{border-style:dashed;opacity:.66}.routine-day-pill.active{border-color:#b78affb3;box-shadow:0 0 0 2px #b78aff1f;transform:translateY(-1px)}.routine-day-strip-loading{align-self:center;color:var(--gray-500);font:var(--text-caption);padding:0 6px;white-space:nowrap}.routine-history-selected{margin-top:10px;color:var(--gray-600);font:var(--text-caption)}.routine-panel{padding:var(--space-base);border:1px solid var(--gray-100);background:radial-gradient(120% 100% at 100% 0%,rgba(183,138,255,.06),transparent 62%),var(--white)}.routine-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-sm)}.routine-panel-head h3{margin:0;color:var(--gray-900);font:var(--text-small-medium)}.routine-panel-head p{margin:3px 0 0;color:var(--gray-500);font:var(--text-caption)}.routine-panel-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border-radius:var(--radius-full);background:linear-gradient(135deg,#b78aff1f,#b78aff0f);color:var(--purple-primary);font:var(--text-caption-medium);white-space:nowrap;border:1px solid rgba(183,138,255,.15)}.routine-panel-toggle{display:inline-flex;align-items:center;gap:4px;border-radius:var(--radius-full);border:1px solid var(--gray-200);background:var(--white);min-height:30px;padding:0 10px;color:var(--gray-700);font:var(--text-caption-medium);white-space:nowrap;transition:all .2s ease}.routine-panel-toggle.open{background:var(--gray-100)}.routine-later-body{overflow:hidden;transition:max-height .32s cubic-bezier(.4,0,.2,1),opacity .24s ease,transform .24s ease}.routine-later-body.collapsed{max-height:0;opacity:0;transform:translateY(-5px);pointer-events:none}.routine-later-body.expanded{max-height:1600px;opacity:1;transform:translateY(0)}.routine-steps{display:flex;flex-direction:column;gap:var(--space-sm)}.routine-step-card{border:1px solid var(--gray-100);background:linear-gradient(180deg,#fffffffa,#f9f6ffeb);transition:box-shadow .25s ease,transform .2s ease,border-color .25s ease,opacity .3s ease;animation:routine-card-enter .36s ease both;animation-delay:var(--stagger, 0ms);position:relative;overflow:hidden}.routine-step-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;border-radius:3px 0 0 3px;transition:background .3s ease,width .3s ease}.routine-step-card.due:before{background:linear-gradient(180deg,var(--success),rgba(91,196,140,.6));width:3px}.routine-step-card.skip:before{background:var(--gray-300);width:3px}.routine-step-card.due{border-color:#5bc48c40}.routine-step-card.skip{border-color:var(--gray-100)}.routine-step-card.completed{opacity:.65;background:linear-gradient(180deg,#ebfbf380,#f9f6ff66)}.routine-step-card.completed:before{background:var(--success);opacity:.5}.routine-step-card:active{transform:scale(.995)}.routine-step-shell{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start}.routine-step-thumb-wrap{width:54px;height:54px;flex-shrink:0}.routine-step-thumb{width:54px;height:54px;border-radius:12px;-o-object-fit:cover;object-fit:cover;border:1px solid var(--gray-100);background:var(--gray-50);transition:transform .2s ease}.routine-step-thumb.placeholder{display:inline-flex;align-items:center;justify-content:center;font-size:20px;color:var(--gray-400);background:linear-gradient(135deg,var(--gray-50),rgba(183,138,255,.06))}.routine-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--gray-300);display:inline-flex;align-items:center;justify-content:center;margin-top:4px;color:var(--white);flex-shrink:0;transition:all .25s cubic-bezier(.4,0,.2,1);position:relative}.routine-check:not(:disabled):active{transform:scale(.85)}.routine-check.checked{background:var(--success);border-color:var(--success);box-shadow:0 0 0 3px #5bc48c33;animation:routine-check-pop .35s cubic-bezier(.34,1.56,.64,1)}@keyframes routine-check-pop{0%{transform:scale(.7)}50%{transform:scale(1.15)}to{transform:scale(1)}}.routine-check:disabled{cursor:not-allowed;opacity:.4}.routine-step-main{min-width:0;display:flex;flex-direction:column;gap:8px}.routine-step-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.routine-step-title-block{min-width:0}.routine-step-title{display:block;margin:0;color:var(--gray-900);font:var(--text-small-medium);line-height:1.35}.routine-step-card.completed .routine-step-title{text-decoration:line-through;text-decoration-color:#5bc48c80;color:var(--gray-600)}.routine-step-pills{display:inline-flex;align-items:center;margin-top:6px;gap:6px;flex-wrap:wrap;justify-content:flex-start}.routine-step-status{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px 8px;font:var(--text-caption-medium)}.routine-step-status.due{color:var(--success);background:var(--success-light)}.routine-step-status.skip{color:var(--gray-600);background:var(--gray-100)}.routine-step-product{margin-top:0;color:var(--gray-600);font:var(--text-caption-medium);white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.routine-step-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.routine-step-schedule{display:inline-flex;align-items:center;gap:5px;color:var(--gray-500);font:var(--text-caption)}.routine-step-price{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--gray-50),var(--gray-100));color:var(--gray-800);font:var(--text-caption-medium);text-decoration:none;white-space:nowrap;transition:all .2s ease}a.routine-step-price:active{background:var(--purple-ultra-light);color:var(--purple-primary)}.routine-step-controls{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.routine-date-strip-container{position:relative}.routine-date-strip-main{display:flex;gap:4px;overflow-x:auto;padding:6px;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;background:#ffffffd9;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:16px;border:1px solid var(--gray-100);box-shadow:0 2px 8px #0000000a}.routine-date-strip-main::-webkit-scrollbar{display:none}.routine-date-item{flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-width:48px;padding:7px 5px;border:1.5px solid transparent;background:none;border-radius:12px;cursor:pointer;position:relative;transition:all .25s cubic-bezier(.4,0,.2,1);scroll-snap-align:center}.routine-date-item-weekday{font-size:11px;font-weight:500;color:var(--gray-400);text-transform:uppercase;letter-spacing:.3px}.routine-date-item-num{font-size:17px;font-weight:700;color:var(--gray-700);line-height:1.2}.routine-date-item-month{font-size:10px;color:var(--gray-400)}.routine-date-item-count{font-size:10px;font-weight:600;color:var(--success);line-height:1.2}.routine-date-item.active .routine-date-item-count{color:#fff}.routine-date-item.complete:not(.active){border-color:#5bc48c73;background:linear-gradient(180deg,#fff,#ebfbf3b3)}.routine-date-item.complete:not(.active):after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--success)}.routine-date-item.complete:not(.active) .routine-date-item-num{color:var(--success)}.routine-date-item.disabled{border-style:dashed;border-color:var(--gray-200);opacity:.4;cursor:default;pointer-events:none}.routine-date-item.future{opacity:.3}.routine-date-item.today:not(.active){border-color:var(--purple-primary);background:#b78aff0a}.routine-date-item.today:not(.active):after{content:"";position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--purple-primary)}.routine-date-item.today .routine-date-item-num{color:var(--purple-primary)}.routine-date-item.active{background:linear-gradient(135deg,var(--purple-primary),#9b6bff);border-color:var(--purple-primary);box-shadow:0 2px 10px #b78aff59;transform:translateY(-1px)}.routine-date-item.active .routine-date-item-weekday,.routine-date-item.active .routine-date-item-num,.routine-date-item.active .routine-date-item-month{color:#fff}.routine-date-today-btn{display:block;margin:8px auto 0;padding:5px 18px;font-size:12px;font-weight:600;color:var(--purple-primary);background:#b78aff14;border:1px solid rgba(183,138,255,.2);border-radius:20px;cursor:pointer;transition:all .2s}.routine-date-today-btn:active{background:#b78aff2e;transform:scale(.96)}.routine-date-loading{text-align:center;padding:8px;font-size:13px;color:var(--gray-400);animation:routine-pulse 1.5s ease-in-out infinite}@keyframes routine-pulse{0%,to{opacity:.5}50%{opacity:1}}.routine-readonly-notice{padding:8px 12px;font-size:12px;color:var(--gray-500);background:#b78aff0f;border:1px solid rgba(183,138,255,.1);border-radius:10px;text-align:center;margin-bottom:4px}.routine-week-selector{display:flex;justify-content:space-between;gap:4px;padding:4px;background:var(--white);border-radius:14px;box-shadow:var(--shadow-sm)}.routine-week-day{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 0;border:none;background:none;border-radius:10px;cursor:pointer;position:relative;transition:all .2s}.routine-week-day-label{font-size:13px;font-weight:500;color:var(--gray-500)}.routine-week-day.active{background:var(--purple-primary)}.routine-week-day.active .routine-week-day-label{color:#fff;font-weight:600}.routine-week-day.today:not(.active):after{content:"";position:absolute;bottom:3px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--purple-primary)}.routine-expand-btn{min-height:32px;border-radius:var(--radius-full);color:var(--gray-500);display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 10px;border:1px solid var(--gray-200);background:var(--white);white-space:nowrap;transition:all .2s ease}.routine-expand-btn:active{background:var(--gray-100);transform:scale(.96)}.routine-expand-btn.with-label{color:var(--gray-700);font:var(--text-caption-medium)}.routine-step-details{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px dashed var(--gray-200);display:flex;flex-direction:column;gap:8px;transition:max-height .32s cubic-bezier(.4,0,.2,1),opacity .24s ease,transform .24s ease;overflow:hidden;will-change:max-height,opacity,transform}.routine-step-details.collapsed{max-height:0;opacity:0;transform:translateY(-4px);padding-top:0;margin-top:0;border-top:0}.routine-step-details.expanded{max-height:360px;opacity:1;transform:translateY(0)}.routine-step-description,.routine-step-reason{margin:0;color:var(--gray-600);font:var(--text-caption);line-height:1.5}.routine-step-reason{display:inline-flex;align-items:flex-start;gap:6px;padding:8px 10px;background:#b78aff0a;border-radius:var(--radius-sm);border-left:2px solid rgba(183,138,255,.3)}.routine-replace-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:6px 10px;color:var(--gray-700);font:var(--text-caption-medium);transition:all .2s ease}.routine-replace-btn.always-visible{min-height:32px;padding:6px 12px;background:linear-gradient(135deg,#b78aff14,#b78aff0a);border-color:#b78aff26;color:var(--purple-primary);border-radius:var(--radius-full)}.routine-replace-btn:active{background:#efe8ff;transform:scale(.96)}.routine-congrats{text-align:center;padding:var(--space-xl) var(--space-base);margin-top:var(--space-base);font:var(--text-body-medium);color:var(--success);background:radial-gradient(ellipse 100% 100% at 30% 0%,rgba(91,196,140,.12),transparent 60%),radial-gradient(ellipse 100% 100% at 70% 100%,rgba(183,138,255,.08),transparent 60%),var(--success-light);border-radius:var(--radius-lg);border:1px solid rgba(91,196,140,.2);animation:routine-congrats-enter .5s cubic-bezier(.34,1.56,.64,1)}@keyframes routine-congrats-enter{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.routine-confetti{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:200}.routine-confetti-piece{position:absolute;top:-16px;opacity:0;border-radius:2px;animation-name:routine-confetti-fall;animation-duration:var(--duration, 1.3s);animation-delay:var(--delay, 0ms);animation-timing-function:cubic-bezier(.16,.84,.34,1);animation-fill-mode:forwards}.routine-usage-sheet{display:flex;flex-direction:column;gap:var(--space-sm)}.routine-usage-sheet.inline{margin-top:var(--space-sm)}.routine-usage-summary{border-radius:var(--radius-md);background:var(--success-light);color:var(--success);padding:10px 12px;font:var(--text-caption-medium)}.routine-usage-empty{border-radius:var(--radius-md);border:1px dashed var(--gray-200);color:var(--gray-500);padding:12px;font:var(--text-caption)}.routine-usage-slot h4{margin:0 0 8px;color:var(--gray-800);font:var(--text-small-medium)}.routine-usage-list{display:flex;flex-direction:column;gap:8px}.routine-usage-item{border:1px solid var(--gray-100);border-radius:var(--radius-md);padding:10px;background:var(--white);border-left:3px solid var(--gray-200)}.routine-usage-item.status-completed{border-left-color:var(--success);background:linear-gradient(180deg,#fff,#ebfbf3e6)}.routine-usage-item.status-missed{border-left-color:#ff9a87;background:linear-gradient(180deg,#fff,#ffefece6)}.routine-usage-item.status-skip{border-left-color:var(--gray-300)}.routine-usage-item-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.routine-usage-item-top strong{color:var(--gray-900);font:var(--text-caption-medium)}.routine-usage-item-top span{color:var(--gray-500);font:var(--text-caption)}.routine-usage-state{display:inline-flex;align-items:center;border-radius:var(--radius-full);padding:2px 8px;font:var(--text-caption-medium);white-space:nowrap}.routine-usage-state.state-completed{color:var(--success);background:var(--success-light)}.routine-usage-state.state-missed{color:#cf4f3a;background:#ffd0c673}.routine-usage-state.state-skip{color:var(--gray-600);background:var(--gray-100)}.routine-usage-item-body{margin-top:8px;display:flex;align-items:center;gap:10px}.routine-usage-thumb{width:44px;height:44px;border-radius:10px;-o-object-fit:cover;object-fit:cover;border:1px solid var(--gray-100);background:var(--gray-50);flex-shrink:0}.routine-usage-thumb.placeholder{display:inline-flex;align-items:center;justify-content:center;color:var(--gray-500)}.routine-usage-text{min-width:0;display:flex;flex-direction:column;gap:2px}.routine-usage-text span:first-child{color:var(--gray-700);font:var(--text-caption-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.routine-usage-text span:last-child{color:var(--gray-500);font:var(--text-caption)}.routine-alternatives{display:flex;flex-direction:column;gap:var(--space-md)}.routine-alt-card{display:flex;gap:var(--space-md);padding:var(--space-md);cursor:pointer;transition:transform .15s ease}.routine-alt-card:active{transform:scale(.98)}.routine-alt-img{width:60px;height:60px;border-radius:var(--radius-md);-o-object-fit:cover;object-fit:cover;border:1px solid var(--gray-100)}.routine-alt-info{display:flex;flex-direction:column;gap:2px}.routine-alt-brand{font:var(--text-caption);color:var(--gray-400)}.routine-alt-name{font:var(--text-small-medium)}.routine-alt-price{font:var(--text-small-medium);color:var(--purple-primary)}@keyframes routine-card-enter{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes routine-confetti-fall{0%{transform:translate3d(0,-8px,0) rotate(0);opacity:1}to{transform:translate3d(var(--dx, 0px),110vh,0) rotate(var(--rot, 360deg));opacity:0}}.routine-skeleton-block{background:var(--gray-100)}.routine-skeleton-shimmer{position:relative;overflow:hidden}.routine-skeleton-shimmer:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.5) 40%,rgba(255,255,255,.8) 50%,rgba(255,255,255,.5) 60%,transparent 100%);transform:translate(-100%);animation:routine-shimmer 1.5s ease-in-out infinite}@keyframes routine-shimmer{to{transform:translate(100%)}}.routine-empty{padding:var(--space-xl) var(--space-base);color:var(--gray-500);font:var(--text-small);border-style:dashed;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.routine-empty-icon{color:var(--gray-300);margin-bottom:4px}.routine-empty-hint{color:var(--gray-400);font:var(--text-caption)}.routine-step-card{content-visibility:auto;contain-intrinsic-size:auto 140px}@media(prefers-reduced-motion:reduce){.routine-step-card{animation:none}.routine-step-details{transition:none}.routine-hero:before,.routine-hero:after{animation:none}.routine-check.checked{animation:none}.routine-skeleton-shimmer:after{animation:none}.routine-tab-indicator{transition:none}}@media(max-width:360px){.routine-hero-top{gap:var(--space-sm)}.routine-hero-title{font-size:18px;line-height:1.25}.routine-hero-ring-wrap{width:66px;height:66px}.routine-hero-slot{padding:8px}.routine-hero-slot-count{font-size:14px}.routine-panel-head,.routine-history-head{flex-direction:column;align-items:flex-start}.routine-day-strip-wrap{width:100%}.routine-step-header{grid-template-columns:minmax(0,1fr) 46px;gap:8px}.routine-step-thumb-wrap,.routine-step-thumb{width:46px;height:46px;border-radius:10px}.routine-step-meta{flex-direction:column;align-items:flex-start;gap:6px}.routine-step-controls{grid-template-columns:1fr}.routine-replace-btn.always-visible,.routine-expand-btn.with-label{width:100%}}.chat-lobby{min-height:0;flex:1;display:flex;flex-direction:column}.chat-lobby-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-xl) var(--space-base) calc(var(--space-2xl) + var(--tab-bar-height) + var(--safe-area-bottom));display:flex;flex-direction:column;gap:var(--space-xl)}.lobby-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-2xl) 0 var(--space-base);gap:var(--space-base)}.lobby-orb{position:relative;width:80px;height:80px;border-radius:50%;background:var(--gradient-warm);display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:0 12px 40px #8b5cf63d,0 0 0 10px #8b5cf60d,0 0 0 20px #8b5cf605;animation:orbFloat 4s ease-in-out infinite}.lobby-orb-ring{position:absolute;inset:-4px;border-radius:50%;border:2px solid transparent;background:linear-gradient(135deg,#8b5cf666,#f9a8d466) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:ringPulse 3s ease-in-out infinite}.lobby-hero h1{font:var(--text-h2);color:var(--gray-800);letter-spacing:-.02em}.lobby-hero p{font:var(--text-small);color:var(--gray-400);max-width:240px}.lobby-continue{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-base);background:var(--white);border-radius:var(--radius-lg);border:1px solid rgba(139,92,246,.1);box-shadow:0 4px 16px #8b5cf60f;text-align:left;width:100%;transition:transform .2s,box-shadow .2s;-webkit-tap-highlight-color:transparent}.lobby-continue:active{transform:scale(.98);box-shadow:0 2px 8px #8b5cf61a}.lobby-continue-icon{width:44px;height:44px;min-width:44px;border-radius:var(--radius-md);background:var(--purple-ultra-light);display:flex;align-items:center;justify-content:center;color:var(--purple-primary)}.lobby-continue-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lobby-continue-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.lobby-continue-title{font:var(--text-small-medium);color:var(--gray-800)}.lobby-continue-meta{font:var(--text-caption);color:var(--gray-400);white-space:nowrap}.lobby-continue-preview{font:var(--text-caption);color:var(--gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.lobby-continue-date{font:var(--text-caption);color:var(--gray-300)}.lobby-continue-arrow{color:var(--gray-300);flex-shrink:0}.lobby-section{display:flex;flex-direction:column;gap:var(--space-md)}.lobby-section-title{font:var(--text-small-medium);color:var(--gray-500);padding-left:var(--space-xs)}.lobby-topics{display:flex;flex-direction:column;gap:var(--space-sm)}.lobby-topic-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-base);background:var(--white);border-radius:var(--radius-lg);border:1px solid var(--gray-100);text-align:left;width:100%;transition:transform .2s,border-color .2s;-webkit-tap-highlight-color:transparent}.lobby-topic-card:active{transform:scale(.98);border-color:var(--purple-light)}.lobby-topic-icon{width:40px;height:40px;min-width:40px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--purple-ultra-light) 0%,rgba(249,168,212,.15) 100%);display:flex;align-items:center;justify-content:center;color:var(--purple-primary)}.lobby-topic-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.lobby-topic-title{font:var(--text-small-medium);color:var(--gray-800)}.lobby-topic-desc{font:var(--text-caption);color:var(--gray-400)}.lobby-topic-arrow{color:var(--gray-300);flex-shrink:0;transition:transform .2s}.lobby-topic-card:active .lobby-topic-arrow{transform:translate(2px);color:var(--purple-primary)}.lobby-start-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-base);border-radius:var(--radius-full);background:var(--gradient-cta);color:var(--white);font:var(--text-body-medium);box-shadow:0 8px 24px #8b5cf633;transition:transform .2s;-webkit-tap-highlight-color:transparent}.lobby-start-btn:active{transform:scale(.97)}.chat{position:fixed;left:0;right:0;top:var(--_top, var(--safe-top, 0px));height:var(--_h, calc(100vh - var(--tab-bar-height) - var(--safe-area-bottom) - var(--safe-top, 0px)));z-index:var(--z-base);display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;background:var(--gradient-bg);overflow:hidden;min-width:0;overscroll-behavior:none;touch-action:manipulation;isolation:isolate}body.chat-page-active{overflow:hidden;overscroll-behavior:none}.chat-header{position:sticky;top:0;padding:var(--space-sm) var(--space-base) var(--space-md);z-index:var(--z-sticky);background:#fff9;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-bottom:1px solid rgba(139,92,246,.08)}.chat-header-inner{display:flex;align-items:center;gap:var(--space-md)}.chat-back-btn{width:36px;height:36px;min-width:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--gray-500);background:#0000000a;-webkit-tap-highlight-color:transparent;transition:background .2s}.chat-back-btn:active{background:#00000014;transform:scale(.94)}.chat-ai-avatar{position:relative;width:42px;height:42px;border-radius:50%;background:var(--gradient-cta);display:flex;align-items:center;justify-content:center;color:var(--white);flex-shrink:0;box-shadow:0 4px 16px #8b5cf64d}.chat-ai-avatar-ring{position:absolute;inset:-3px;border-radius:50%;border:2px solid transparent;background:linear-gradient(135deg,#8b5cf666,#f9a8d466) border-box;-webkit-mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) padding-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:ringPulse 3s ease-in-out infinite}@keyframes ringPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.chat-header-info{flex:1;min-width:0}.chat-header-info h3{font:var(--text-body-medium);color:var(--gray-800);letter-spacing:-.01em}.chat-header-status{font:var(--text-caption);color:var(--gray-400);display:flex;align-items:center;gap:6px}.chat-status-dot{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 6px #22c55e66;animation:statusPulse 2s ease-in-out infinite}@keyframes statusPulse{0%,to{opacity:1}50%{opacity:.5}}.chat-messages{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-behavior:auto;padding:var(--space-base);padding-bottom:var(--space-lg);scroll-padding-bottom:var(--space-xl);min-height:0;display:flex;flex-direction:column;gap:var(--space-base);overflow-anchor:auto;contain:layout style}.chat-bottom-anchor{width:100%;height:1px;margin-top:1px}.chat-welcome{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-3xl) var(--space-xl) var(--space-xl);gap:var(--space-base)}.chat-welcome-orb{width:72px;height:72px;border-radius:50%;background:var(--gradient-warm);display:flex;align-items:center;justify-content:center;color:var(--white);box-shadow:0 8px 32px #8b5cf633,0 0 0 8px #8b5cf60f,0 0 0 16px #8b5cf608;animation:orbFloat 4s ease-in-out infinite}@keyframes orbFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.chat-welcome h2{font:var(--text-h3);color:var(--gray-800)}.chat-welcome p{font:var(--text-small);color:var(--gray-500);max-width:280px;line-height:1.6}.chat-bubble{display:flex;gap:var(--space-sm);max-width:88%;content-visibility:auto;contain-intrinsic-size:auto 60px}.chat-bubble.user{align-self:flex-end;flex-direction:row-reverse}.chat-bubble.assistant{align-self:flex-start}.chat-bubble-avatar{width:28px;height:28px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;color:var(--white);flex-shrink:0;margin-top:2px}.chat-bubble-body{min-width:0;display:flex;flex-direction:column}.chat-bubble-content{padding:var(--space-md) var(--space-base);border-radius:var(--radius-lg);font:var(--text-small);line-height:1.65}.chat-bubble.user .chat-bubble-content{background:var(--gradient-cta);color:var(--white);border-bottom-right-radius:var(--space-xs);box-shadow:0 4px 12px #8b5cf633}.chat-bubble.assistant .chat-bubble-content{background:var(--white);color:var(--gray-700);border-bottom-left-radius:var(--space-xs);box-shadow:0 2px 8px #0000000a;border:1px solid rgba(139,92,246,.06)}.chat-bubble-content p{white-space:pre-wrap;margin:0}.chat-md p{margin:0}.chat-md p+p{margin-top:var(--space-sm)}.chat-md strong{font-weight:600;color:var(--gray-800)}.chat-md em{font-style:italic}.chat-md-code{font-family:SF Mono,Fira Code,monospace;font-size:12px;background:var(--purple-ultra-light);color:var(--purple-deep);padding:1px 5px;border-radius:4px}.chat-md-list{margin:var(--space-sm) 0 0;padding-left:var(--space-base);list-style:none}.chat-md-list li{position:relative;padding-left:var(--space-md);margin-bottom:var(--space-xs)}.chat-md-list li:before{content:"";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;background:var(--purple-light)}.chat-time{display:block;font:var(--text-caption);color:var(--gray-300);margin-top:var(--space-xs);padding:0 2px}.chat-bubble.user .chat-time{text-align:right}.chat-products{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-sm)}.chat-product-card{display:flex;gap:var(--space-md);padding:var(--space-md);text-decoration:none;color:inherit;background:var(--gray-50);border-radius:var(--radius-md);border:1px solid var(--gray-100);transition:transform .2s,box-shadow .2s}.chat-product-card:active{transform:scale(.98);box-shadow:0 2px 8px #8b5cf61f}.chat-product-img-wrap{position:relative;flex-shrink:0}.chat-product-card img{width:56px;height:56px;border-radius:var(--radius-sm);-o-object-fit:cover;object-fit:cover;background:var(--white)}.chat-product-match{position:absolute;top:-4px;right:-4px;display:flex;align-items:center;gap:2px;font:var(--text-caption-medium);font-size:10px;color:var(--white);background:var(--gradient-cta);padding:1px 5px;border-radius:var(--radius-full);box-shadow:0 2px 6px #8b5cf64d}.chat-product-info{display:flex;flex-direction:column;gap:2px;min-width:0}.chat-product-brand{font:var(--text-caption);color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em;font-size:10px}.chat-product-name{font:var(--text-caption-medium);color:var(--gray-700);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.chat-product-price{font:var(--text-caption-medium);color:var(--purple-primary);display:flex;align-items:center;gap:4px;margin-top:auto}.chat-typing-wrap{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-base);background:var(--white);border-radius:var(--radius-lg);border-bottom-left-radius:var(--space-xs);box-shadow:0 2px 8px #0000000a;border:1px solid rgba(139,92,246,.06)}.chat-typing{display:flex;gap:4px}.chat-typing span{width:7px;height:7px;border-radius:50%;background:var(--purple-light);animation:typingBounce 1.4s infinite}.chat-typing span:nth-child(2){animation-delay:.2s}.chat-typing span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.chat-typing-label{font:var(--text-caption);color:var(--gray-400);white-space:nowrap}.chat-quick{position:relative;z-index:calc(var(--z-sticky) - 1);display:flex;flex-wrap:nowrap;gap:var(--space-sm);padding:var(--space-xs) var(--space-base) var(--space-sm);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;max-height:56px}.chat-quick::-webkit-scrollbar{display:none}.chat-quick-btn{flex:0 0 auto;white-space:nowrap;min-height:40px;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);border:1px solid rgba(139,92,246,.15);background:#fffc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:var(--text-caption-medium);color:var(--purple-primary);display:flex;align-items:center;gap:var(--space-xs);transition:all .2s;-webkit-tap-highlight-color:transparent}.chat-quick-btn:active{background:var(--purple-ultra-light);transform:scale(.96);border-color:var(--purple-light)}.chat-quick-arrow{opacity:.4;transition:opacity .2s,transform .2s}.chat-quick-btn:active .chat-quick-arrow{opacity:.8;transform:translate(2px)}.chat.keyboard-open .chat-quick{display:none}.chat-input-area{position:relative;padding:var(--space-sm) var(--space-base) var(--space-md);border-top:none;background:transparent;z-index:var(--z-sticky)}.chat-input-wrap{display:flex;align-items:flex-end;gap:var(--space-sm);background:#ffffffb8;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl);padding:6px 6px 6px var(--space-base);border:1px solid rgba(139,92,246,.12);box-shadow:0 4px 16px #8b5cf60f,0 1px 3px #0000000a;transition:border-color .3s,box-shadow .3s}.chat-input-wrap:focus-within{border-color:#8b5cf64d;box-shadow:0 4px 16px #8b5cf61a,0 0 0 3px #8b5cf60f}.chat-input-wrap.ai-thinking{border-color:#8b5cf633;animation:thinkingGlow 2s ease-in-out infinite}@keyframes thinkingGlow{0%,to{box-shadow:0 4px 16px #8b5cf60f,0 0 0 3px #8b5cf60a}50%{box-shadow:0 4px 16px #8b5cf61f,0 0 0 3px #8b5cf614}}.chat-input-wrap textarea{flex:1;border:none;background:none;outline:none;font:var(--text-small);padding:var(--space-sm) 0;resize:none;max-height:100px;line-height:1.5;color:var(--gray-800)}.chat-input-wrap textarea::-moz-placeholder{color:var(--gray-400)}.chat-input-wrap textarea::placeholder{color:var(--gray-400)}.chat-send{width:40px;height:40px;min-width:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gray-300);transition:all .25s cubic-bezier(.25,.46,.45,.94);flex-shrink:0}.chat-send.active{background:var(--gradient-cta);color:var(--white);box-shadow:0 4px 12px #8b5cf64d;transform:scale(1)}.chat-send.active:active{transform:scale(.92)}.chat-jump-to-latest{position:absolute;right:var(--space-base);bottom:148px;width:40px;height:40px;border-radius:50%;background:var(--white);color:var(--purple-primary);border:1px solid rgba(139,92,246,.15);box-shadow:0 4px 16px #00000014;display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-sticky) + 1)}.chat.keyboard-open .chat-jump-to-latest{bottom:88px}body.chat-keyboard-open .luma-nav-shell{display:none!important}body:has(.chat textarea:focus) .luma-nav-shell,body:has(.chat input:focus) .luma-nav-shell{display:none!important}@media(prefers-reduced-motion:reduce){.chat-bubble,.chat-quick-btn,.chat-send,.chat-product-card,.chat-ai-avatar-ring,.chat-welcome-orb,.chat-status-dot{animation:none;transition:none}}@media(max-width:360px){.chat-bubble{max-width:92%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.profile{padding:var(--space-base);animation:fadeIn .3s ease;display:flex;flex-direction:column;gap:var(--space-base)}.profile-details-page{padding-top:0}.profile-details-page .header{margin:0 calc(-1 * var(--space-base));padding-left:var(--space-base);padding-right:var(--space-base)}.profile a,.profile button{color:inherit;text-decoration:none}.profile-header{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-xl) 0 var(--space-base)}.profile-avatar-large{position:relative;width:80px;height:80px;border-radius:50%;background:var(--gradient-primary);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow-md)}.profile-avatar-large img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.profile-avatar-large span{color:var(--white);font-size:32px;font-weight:700}.profile-premium-badge{position:absolute;bottom:0;right:0;width:24px;height:24px;border-radius:50%;background:var(--warning);color:var(--white);display:flex;align-items:center;justify-content:center;border:2px solid var(--white)}.profile-name{font:var(--text-h2)}.profile-username{font:var(--text-small);color:var(--gray-500)}.profile-usage{padding:var(--space-lg)}.profile-usage h3{font:var(--text-h4);margin-bottom:var(--space-md)}.profile-usage-items{display:flex;flex-direction:column;gap:var(--space-md)}.profile-usage-item{display:flex;flex-direction:column;gap:var(--space-xs)}.profile-usage-label{display:flex;align-items:center;gap:var(--space-sm);font:var(--text-small-medium);color:var(--gray-600)}.profile-skin{margin:0}.profile-skin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.profile-skin-header h3{font:var(--text-h4)}.profile-skin-link{display:inline-flex;align-items:center;gap:4px;font:var(--text-small-medium);color:var(--purple-primary);border:1px solid var(--purple-muted);border-radius:var(--radius-full);padding:6px 10px;background:var(--purple-ultra-light);transition:transform .2s ease,box-shadow .2s ease}.profile-skin-link:active{transform:translateY(1px)}.profile-skin-stats{display:flex;justify-content:space-around}.profile-skin-stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.profile-skin-stat-value{font-size:24px;font-weight:700;color:var(--purple-primary)}.profile-skin-stat-label{font:var(--text-caption);color:var(--gray-500)}.profile-settings{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-setting-item{width:100%;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-base);text-align:left;border:1px solid var(--gray-100);border-radius:var(--radius-lg);background:var(--white);transition:background .2s ease,transform .2s ease}.profile-setting-item:active{background:var(--gray-50);transform:translateY(1px)}.profile-setting-icon{color:var(--gray-500)}.profile-setting-label{flex:1;font:var(--text-body)}.profile-setting-right{display:flex;align-items:center;gap:var(--space-sm)}.profile-section{display:flex;flex-direction:column;gap:var(--space-md)}.profile-section-header{display:flex;flex-direction:column;gap:4px}.profile-section-header h3{font:var(--text-h4)}.profile-section-header p{font:var(--text-small);color:var(--gray-600)}.profile-field{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-field-label{font:var(--text-small-medium);color:var(--gray-600)}.profile-chip-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.profile-chip{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:var(--radius-full);border:1px solid var(--gray-200);background:var(--gray-50);font:var(--text-small-medium);color:var(--gray-600);transition:all .2s ease}.profile-chip.active{background:var(--purple-ultra-light);color:var(--purple-primary);border-color:var(--purple-primary)}.profile-chip:active{transform:translateY(1px)}.profile-option-row{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-segmented{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:var(--radius-full);background:var(--gray-100)}.profile-segmented-btn{padding:6px 12px;border-radius:var(--radius-full);font:var(--text-small-medium);color:var(--gray-600);transition:all .2s ease}.profile-segmented-btn.active{background:var(--white);color:var(--purple-primary);box-shadow:var(--shadow-sm)}.profile-notification-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--gray-100)}.profile-notification-row:last-child{border-bottom:none}.profile-notification-meta{display:flex;flex-direction:column;gap:2px}.profile-notification-title{font:var(--text-small-medium)}.profile-notification-subtitle{font:var(--text-caption);color:var(--gray-500)}.profile-notification-controls{display:flex;align-items:center;gap:var(--space-sm)}.profile-time-control{display:inline-flex;align-items:center;gap:6px;color:var(--gray-500)}.profile-time-input{border:1px solid var(--gray-200);border-radius:var(--radius-sm);padding:6px 8px;background:var(--white);color:var(--gray-700);font:var(--text-small-medium)}.profile-time-input:disabled{opacity:.55}.profile-switch{position:relative;width:46px;height:28px;border-radius:var(--radius-full);background:var(--gray-300);padding:2px;transition:background .2s ease}.profile-switch.on{background:var(--purple-primary)}.profile-switch:disabled{opacity:.55}.profile-switch-thumb{display:block;width:24px;height:24px;border-radius:50%;background:var(--white);box-shadow:var(--shadow-sm);transition:transform .2s ease}.profile-switch.on .profile-switch-thumb{transform:translate(18px)}.profile-danger{display:flex;flex-direction:column;gap:var(--space-sm)}.profile-danger-btn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-base);border-radius:var(--radius-md);border:1px solid var(--gray-100);background:var(--white);font:var(--text-body);color:var(--gray-600);transition:background .2s ease,transform .2s ease}.profile-danger-btn:active{background:var(--gray-50);transform:translateY(1px)}.profile-danger-btn.delete{color:var(--error);border-color:var(--error-light);background:snow}.profile-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-overlay);padding:var(--space-xl);animation:fadeIn .2s ease}.profile-modal{text-align:center;padding:var(--space-xl);max-width:340px;animation:scaleIn .3s ease;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.profile-modal h3{font:var(--text-h3)}.profile-modal p{font:var(--text-small);color:var(--gray-600)}.profile-modal-actions{display:flex;gap:var(--space-md);width:100%;margin-top:var(--space-md)}.profile-modal-actions>*{flex:1}.profile-age-picker{display:flex;align-items:center;gap:var(--space-md)}.profile-age-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--gray-200);background:var(--white);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-600)}.profile-age-btn:disabled{opacity:.3}.profile-age-input{width:56px;text-align:center;font-size:24px;font-weight:700;color:var(--gray-900);border:none;background:transparent;outline:none;-moz-appearance:textfield}.profile-age-input::-webkit-outer-spin-button,.profile-age-input::-webkit-inner-spin-button{-webkit-appearance:none}.profile-info-banner{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-base);border-radius:var(--radius-sm);background:#f0fdf4;color:#166534;font:var(--text-caption);margin-top:var(--space-sm)}.profile-info-banner svg{flex-shrink:0;color:#16a34a}.profile-add-other{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);padding:4px 10px;border:1px dashed var(--gray-300);border-radius:var(--radius-full);background:transparent;font:var(--text-caption);color:var(--gray-500);cursor:pointer}.profile-custom-field{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm)}.profile-text-input{flex:1;padding:var(--space-xs) var(--space-sm);border:1px solid var(--gray-200);border-radius:var(--radius-sm);font:var(--text-small);outline:none}.profile-text-input:focus{border-color:var(--purple-primary)}.profile-remove-other{width:28px;height:28px;border-radius:50%;border:none;background:var(--gray-100);display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--gray-500)}@media(max-width:420px){.profile-setting-item{padding:var(--space-md)}.profile-setting-right .text-secondary{max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.bottom-sheet-overlay{position:fixed;inset:0;background:#0006;z-index:var(--z-modal);display:flex;align-items:flex-end;animation:fadeIn .2s ease}.bottom-sheet{width:100%;max-height:70vh;background:var(--white);border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:slideUp .3s ease;display:flex;flex-direction:column}.bottom-sheet-handle{width:36px;height:4px;background:var(--gray-300);border-radius:var(--radius-full);margin:var(--space-sm) auto var(--space-xs)}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-base) var(--space-md);border-bottom:1px solid var(--gray-100)}.bottom-sheet-title{font:var(--text-h4)}.bottom-sheet-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);color:var(--gray-500);transition:background .2s}.bottom-sheet-close:active{background:var(--gray-100)}.bottom-sheet-content{flex:1;overflow-y:auto;padding:var(--space-base);padding-bottom:calc(var(--space-base) + var(--tab-bar-height, 128px) + var(--safe-area-bottom, 0px))}.catalog-product-card{display:flex;gap:12px;background:var(--white);border-radius:14px;padding:12px}.catalog-product-card.in-routine{border:1px solid rgba(139,92,246,.25);background:linear-gradient(135deg,var(--white) 0%,rgba(139,92,246,.04) 100%)}.catalog-product-img{position:relative;width:72px;height:72px;border-radius:10px;background:var(--gray-100);flex-shrink:0;overflow:hidden;cursor:pointer}.catalog-product-img img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.catalog-product-match{position:absolute;top:4px;left:4px;background:var(--purple-primary);color:#fff;font-size:9px;font-weight:700;padding:2px 5px;border-radius:6px}.catalog-product-body{flex:1;min-width:0}.catalog-product-top{cursor:pointer}.catalog-product-brand{font-size:10px;color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px}.catalog-product-name{font-size:13px;font-weight:500;margin:2px 0 0;line-height:1.3;color:var(--gray-800)}.catalog-product-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.catalog-product-price-row{display:flex;justify-content:space-between;align-items:center;margin-top:8px}.catalog-product-price{font-size:14px;font-weight:600;color:var(--purple-primary)}.catalog-product-buy-link{font-size:11px;color:var(--purple-primary);text-decoration:none;display:inline-flex;align-items:center;gap:3px;font-weight:500}.catalog-product-routine-badge{margin-top:8px;padding:6px 0;text-align:center;font-size:12px;font-weight:600;color:var(--purple-primary);background:#8b5cf614;border-radius:8px}.catalog-product-replace-btn{width:100%;margin-top:8px;padding:7px 0;text-align:center;font-size:12px;font-weight:500;color:var(--gray-700);background:var(--gray-100);border:none;border-radius:8px;cursor:pointer;transition:background .2s}.catalog-product-replace-btn:active{background:var(--gray-200)}.catalog-page{padding-bottom:var(--space-xl)}.catalog-meta{font-size:12px;color:var(--gray-500);padding:var(--space-sm) var(--space-md) 0;margin-bottom:12px}.catalog-group-toggle{display:flex;margin:0 var(--space-md) 12px;background:var(--white);border-radius:10px;overflow:hidden}.catalog-toggle-btn{flex:1;padding:8px;text-align:center;font-size:12px;font-weight:500;color:var(--gray-500);background:none;border:none;cursor:pointer;transition:all .2s}.catalog-toggle-btn.active{background:var(--purple-primary);color:#fff;font-weight:600;border-radius:10px}.catalog-loading{text-align:center;padding:40px;color:var(--gray-500)}.catalog-empty{text-align:center;padding:40px var(--space-md);color:var(--gray-500);font-size:14px}.catalog-groups{padding:0 var(--space-md);display:flex;flex-direction:column;gap:8px}.catalog-group-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:12px;background:var(--white);border-radius:12px;border:none;color:inherit;cursor:pointer;text-align:left}.catalog-group-left{display:flex;align-items:center;gap:8px}.catalog-group-icon{font-size:15px}.catalog-group-label{font-size:14px;font-weight:600}.catalog-group-count{font-size:11px;color:var(--gray-500)}.catalog-group-list{display:flex;flex-direction:column;gap:8px;margin-top:8px}.catalog-show-more{text-align:center;padding:8px;font-size:12px;color:var(--purple-primary);background:none;border:none;cursor:pointer}.catalog-replace-content p{font-size:14px;margin-bottom:16px}.catalog-replace-actions{display:flex;gap:8px}.catalog-replace-actions>*{flex:1}.paywall-page{min-height:100vh;padding:20px;padding-top:calc(var(--safe-top, 0px) + 20px);display:flex;flex-direction:column;align-items:center;background:var(--bg-primary, #fff);position:relative;padding-bottom:120px}.paywall-close{position:absolute;top:calc(var(--safe-top, 0px) + 16px);right:16px;background:none;border:none;color:var(--text-secondary, #666);cursor:pointer;padding:8px;z-index:2}.paywall-hero{text-align:center;margin:32px 0 16px;max-width:340px}.paywall-hero-icon{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,var(--purple-primary, #6366f1),#8b5cf6);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.paywall-hero h1{font-size:22px;font-weight:800;margin:0 0 8px;line-height:1.2}.paywall-hero p{color:var(--text-secondary, #666);font-size:14px;line-height:1.5;margin:0}.paywall-social-proof{display:flex;align-items:center;gap:8px;margin-bottom:24px;font-size:12px;color:var(--text-secondary, #666)}.paywall-social-stars{display:flex;gap:2px}.paywall-packages{display:flex;gap:10px;width:100%;max-width:400px;margin-bottom:24px}.paywall-package{flex:1;padding:16px 10px;border:2px solid var(--border, #e5e7eb);border-radius:16px;background:var(--bg-secondary, #f9fafb);cursor:pointer;text-align:center;position:relative;transition:all .2s}.paywall-package.selected{border-color:var(--purple-primary, #6366f1);background:var(--accent-bg, #eef2ff);box-shadow:0 0 0 1px var(--purple-primary, #6366f1)}.paywall-package.popular{transform:scale(1.04)}.paywall-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--purple-primary, #6366f1);color:#fff;font-size:11px;font-weight:700;padding:2px 10px;border-radius:10px;white-space:nowrap}.paywall-badge-save{background:var(--success, #22c55e)}.paywall-package-credits{font-size:32px;font-weight:800;color:var(--text-primary, #111)}.paywall-package-label{font-size:12px;color:var(--text-secondary, #666);margin-bottom:8px}.paywall-package-price{font-size:18px;font-weight:700}.paywall-package-per-scan{font-size:11px;color:var(--text-tertiary, #999);margin-top:4px}.paywall-check{position:absolute;top:8px;right:8px;color:var(--purple-primary, #6366f1)}.paywall-section{width:100%;max-width:400px;margin-bottom:20px}.paywall-section-title{font-size:16px;font-weight:700;margin:0 0 12px}.paywall-benefits{display:flex;flex-direction:column;gap:14px}.paywall-benefit{display:flex;align-items:flex-start;gap:12px}.paywall-benefit-icon{width:36px;height:36px;border-radius:10px;background:var(--accent-bg, #eef2ff);color:var(--purple-primary, #6366f1);display:flex;align-items:center;justify-content:center;flex-shrink:0}.paywall-benefit div:last-child{display:flex;flex-direction:column;gap:2px}.paywall-benefit strong{font-size:14px;font-weight:600}.paywall-benefit span{font-size:12px;color:var(--text-secondary, #666);line-height:1.4}.paywall-guarantees{display:flex;gap:20px;margin-bottom:20px}.paywall-guarantee{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary, #666)}.paywall-guarantee svg{color:var(--success, #22c55e);flex-shrink:0}.paywall-error{color:var(--error, #ef4444);font-size:13px;text-align:center;margin-bottom:12px}.paywall-cta{position:fixed;bottom:0;left:0;right:0;padding:16px 20px calc(16px + var(--safe-bottom, 0px));background:var(--bg-primary, #fff);border-top:1px solid var(--border, #e5e7eb);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:10}.paywall-buy-btn{width:100%;max-width:400px}.paywall-cta-note{font-size:11px;color:var(--text-tertiary, #999);margin:0;text-align:center}.paywall-polling{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;min-height:60vh;text-align:center}.paywall-polling-note{color:var(--text-secondary, #666);font-size:13px}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important}.container{width:100%}@media(min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media(min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media(min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media(min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media(min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-1{inset:.25rem}.bottom-\[calc\(16px\+var\(--safe-area-bottom\)\)\]{bottom:calc(16px + var(--safe-area-bottom))}.left-1\/2{left:50%}.isolate{isolation:isolate}.-z-10{z-index:-10}.-z-20{z-index:-20}.z-10{z-index:10}.z-\[120\]{z-index:120}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-16{height:4rem}.w-16{width:4rem}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.resize{resize:both}.place-items-center{place-items:center}.items-center{align-items:center}.gap-2{gap:.5rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.p-2\.5{padding:.625rem}.uppercase{text-transform:uppercase}.text-\[var\(--gray-500\)\]{color:var(--gray-500)}.text-\[var\(--purple-deep\)\]{color:var(--purple-deep)}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-lg{--tw-blur: blur(16px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur: blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--purple-primary: #8B5CF6;--purple-deep: #7C3AED;--purple-light: #C4B5FD;--purple-muted: #DDD6FE;--purple-ultra-light: #EDE9FE;--lavender: #E8DEF8;--pink-soft: #F9A8D4;--pink-light: #FDF2F8;--peach: #FECDD3;--peach-light: #FFF1F2;--white: #FFFFFF;--gray-50: #FAFAFA;--gray-100: #F5F5F5;--gray-200: #E5E5E5;--gray-300: #D4D4D4;--gray-400: #A3A3A3;--gray-500: #737373;--gray-600: #525252;--gray-700: #404040;--gray-800: #262626;--gray-900: #171717;--success: #22C55E;--success-light: #DCFCE7;--warning: #F59E0B;--warning-light: #FEF3C7;--error: #EF4444;--error-light: #FEE2E2;--info: #3B82F6;--info-light: #DBEAFE;--gradient-primary: linear-gradient(135deg, #8B5CF6 0%, #A78BFA 50%, #C4B5FD 100%);--gradient-bg: linear-gradient(180deg, #FAFAFA 0%, #F3E8FF 50%, #EDE9FE 100%);--gradient-card: linear-gradient(135deg, rgba(255,255,255,.9) 0%, rgba(237,233,254,.6) 100%);--gradient-cta: linear-gradient(135deg, #8B5CF6 0%, #7C3AED 100%);--gradient-warm: linear-gradient(135deg, #F9A8D4 0%, #C4B5FD 100%);--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-accent: "Playfair Display", serif;--text-display: 700 32px/1.2 var(--font-primary);--text-h1: 700 28px/1.3 var(--font-primary);--text-h2: 600 24px/1.3 var(--font-primary);--text-h3: 600 20px/1.35 var(--font-primary);--text-h4: 600 18px/1.4 var(--font-primary);--text-body: 400 16px/1.5 var(--font-primary);--text-body-medium: 500 16px/1.5 var(--font-primary);--text-small: 400 14px/1.5 var(--font-primary);--text-small-medium: 500 14px/1.5 var(--font-primary);--text-caption: 400 12px/1.4 var(--font-primary);--text-caption-medium: 500 12px/1.4 var(--font-primary);--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-base: 16px;--space-lg: 20px;--space-xl: 24px;--space-2xl: 32px;--space-3xl: 40px;--space-4xl: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--shadow-md: 0 4px 12px rgba(139, 92, 246, .08);--shadow-lg: 0 8px 24px rgba(139, 92, 246, .12);--shadow-xl: 0 16px 48px rgba(139, 92, 246, .16);--glass-bg: rgba(255, 255, 255, .72);--glass-border: rgba(255, 255, 255, .4);--glass-blur: blur(20px);--z-base: 1;--z-sticky: 100;--z-modal: 200;--z-toast: 300;--z-overlay: 400;--tab-bar-height: 128px;--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--gradient-bg);overscroll-behavior-y:none}body{font:var(--text-body);color:var(--gray-900);background:var(--gradient-bg);min-height:100%;min-height:100lvh;overflow-x:hidden;overscroll-behavior-y:none}#root{min-height:100%;min-height:100lvh;background:var(--gradient-bg)}a{color:var(--purple-primary);text-decoration:none}img{max-width:100%;display:block}button{font-family:var(--font-primary);cursor:pointer;border:none;background:none}input,textarea,select{font-family:var(--font-primary);font-size:16px}ul,ol{list-style:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes donutFill{0%{stroke-dashoffset:var(--circumference)}to{stroke-dashoffset:var(--target-offset)}}@keyframes confetti{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(-200px) rotate(720deg);opacity:0}}.glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border)}.card{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-base);box-shadow:var(--shadow-sm)}.card-elevated{background:var(--white);border-radius:var(--radius-lg);padding:var(--space-base);box-shadow:var(--shadow-md)}.card-glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-base);box-shadow:var(--shadow-sm)}.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-200) 50%,var(--gray-100) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.text-primary{color:var(--gray-900)}.text-secondary{color:var(--gray-500)}.text-tertiary{color:var(--gray-400)}.text-accent{color:var(--purple-primary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-error{color:var(--error)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-track{background:transparent}.safe-bottom{padding-bottom:calc(var(--tab-bar-height) + var(--safe-area-bottom) + var(--space-base))}.safe-top{padding-top:var(--safe-top, 0px)}@media(prefers-color-scheme:dark){:root{--white: #1C1C1E;--gray-50: #1C1C1E;--gray-100: #2C2C2E;--gray-200: #3A3A3C;--gray-300: #48484A;--gray-400: #8E8E93;--gray-500: #AEAEB2;--gray-600: #C7C7CC;--gray-700: #D1D1D6;--gray-800: #E5E5EA;--gray-900: #F2F2F7;--gradient-bg: linear-gradient(180deg, #1C1C1E 0%, #1A1528 50%, #1E1633 100%);--gradient-card: linear-gradient(135deg, rgba(44,44,46,.9) 0%, rgba(30,22,51,.6) 100%);--glass-bg: rgba(44, 44, 46, .7);--glass-border: rgba(255, 255, 255, .08);--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 24px rgba(0,0,0,.5)}body{color:var(--gray-900)}}.hover\:text-\[var\(--purple-primary\)\]:hover{color:var(--purple-primary)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}
