.progress-tracker{animation:fadeIn .5s ease;margin-bottom:var(--spacing-lg)}.progress-stats{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(3,1fr);margin-bottom:var(--spacing-md)}.progress-stat-card{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-md);text-align:center;transition:transform .2s ease,box-shadow .2s ease}.progress-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.progress-stat-icon{font-size:28px;line-height:1;margin-bottom:var(--spacing-xs)}.progress-stat-value{color:var(--color-primary);font-size:var(--font-size-xl);font-weight:700;line-height:1.2}.progress-stat-label{color:var(--color-textSecondary);font-size:11px;letter-spacing:.5px;margin-top:2px;text-transform:uppercase}.progress-stat-card.points{background:linear-gradient(135deg,var(--color-secondary) 0,var(--color-secondaryLight) 100%)}.progress-stat-card.points .progress-stat-value{color:#333}.progress-stat-card.points .progress-stat-label{color:#555}.progress-stat-card.streak{overflow:hidden;position:relative}.progress-stat-card.streak.active{background:linear-gradient(135deg,#ff6b6b,#ee5a5a)}.progress-stat-card.streak.active .progress-stat-label,.progress-stat-card.streak.active .progress-stat-value{color:#fff}.level-progress-container{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-md)}.level-header{justify-content:space-between;margin-bottom:var(--spacing-sm)}.level-header,.level-info{align-items:center;display:flex}.level-info{gap:var(--spacing-sm)}.level-badge{background:var(--color-surface);border-radius:50%;display:flex;font-size:24px;height:40px;width:40px}.level-name{color:var(--color-text);font-size:var(--font-size-base);font-weight:600}.level-label{color:var(--color-textSecondary);font-size:var(--font-size-small)}.next-level{text-align:right}.next-level-label{color:var(--color-textSecondary);font-size:11px;text-transform:uppercase}.next-level-points{color:var(--color-primary);font-size:var(--font-size-small);font-weight:600}.level-progress-bar{background:var(--color-surface);height:12px}.level-progress-bar,.level-progress-fill{border-radius:var(--radius-full);position:relative}.level-progress-fill{background:linear-gradient(90deg,var(--color-primary),var(--color-primaryLight));transition:width .8s cubic-bezier(.4,0,.2,1)}.level-progress-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.progress-compact{display:flex;gap:var(--spacing-md);justify-content:center;padding:var(--spacing-sm) 0}.progress-compact-item{align-items:center;display:flex;gap:var(--spacing-xs)}.progress-compact-icon{font-size:18px}.progress-compact-value{color:var(--color-text);font-weight:600}.progress-circle{height:100px;margin:0 auto var(--spacing-md);position:relative;width:100px}.progress-circle-bg{fill:none;stroke:var(--color-surface);stroke-width:8}.progress-circle-fill{fill:none;stroke:var(--color-primary);stroke-width:8;stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1)}.progress-circle-text{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.progress-circle-value{color:var(--color-primary);display:block;font-size:var(--font-size-xl);font-weight:700;line-height:1}.progress-circle-label{color:var(--color-textSecondary);font-size:11px;text-transform:uppercase}.progress-mini{align-items:center;display:flex;gap:var(--spacing-xs)}.progress-mini-bar{background:var(--color-surface);border-radius:var(--radius-full);flex:1 1;height:6px;overflow:hidden}.progress-mini-fill{background:var(--color-success);border-radius:var(--radius-full);height:100%;transition:width .3s ease}.progress-mini-text{color:var(--color-textSecondary);font-size:var(--font-size-small);font-weight:500;min-width:40px;text-align:right}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.progress-stat-card:first-child{animation:countUp .4s ease forwards}.progress-stat-card:nth-child(2){animation:countUp .4s ease .1s forwards}.progress-stat-card:nth-child(3){animation:countUp .4s ease .2s forwards}body.dark .level-progress-container,body.dark .progress-stat-card{background:var(--color-surfaceDark)}body.dark .progress-stat-value{color:var(--color-secondary)}body.dark .level-progress-bar,body.dark .progress-mini-bar{background:#ffffff1a}body.dark .progress-stat-card.points{background:linear-gradient(135deg,#e6be2a,#ffd43b)}body.dark .progress-stat-card.points .progress-stat-value{color:#333}@media (max-width:400px){.progress-stats{grid-template-columns:repeat(3,1fr)}.progress-stat-card{padding:var(--spacing-sm)}.progress-stat-value{font-size:var(--font-size-large)}.progress-stat-icon{font-size:22px}}.mascot-message{align-items:flex-start;animation:fadeInUp .5s ease;display:flex;gap:var(--spacing-md);padding:var(--spacing-md)}.mascot-message.large{padding:var(--spacing-lg)}.mascot-message.small{gap:var(--spacing-sm);padding:var(--spacing-sm)}.mascot-avatar{animation:bounce 2s ease-in-out infinite;flex-shrink:0;height:80px;width:80px}.mascot-message.large .mascot-avatar{height:100px;width:100px}.mascot-message.small .mascot-avatar{height:50px;width:50px}.mascot-avatar img,.mascot-avatar svg{filter:drop-shadow(0 4px 8px rgba(0,0,0,.15));height:100%;object-fit:contain;width:100%}.mascot-speech-bubble{background:linear-gradient(135deg,var(--color-primaryLight) 0,var(--color-primary) 100%);border-radius:var(--radius-lg);border-top-left-radius:var(--radius-sm);box-shadow:var(--shadow-md);color:#fff;flex:1 1;padding:var(--spacing-md);position:relative}.mascot-speech-bubble:before{border:12px solid #0000;border-left:0;border-right:12px solid var(--color-primaryLight);content:"";height:0;left:-12px;position:absolute;top:16px;width:0}.mascot-message-text{font-size:var(--font-size-base);font-weight:500;line-height:1.5;margin:0}.mascot-message.large .mascot-message-text{font-size:var(--font-size-large)}.mascot-message.small .mascot-message-text,.mascot-name{font-size:var(--font-size-small)}.mascot-name{align-items:center;color:#ffffffd9;display:flex;font-weight:600;gap:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.mascot-name:before{content:"🐍"}.mascot-message.centered{align-items:center;flex-direction:column;text-align:center}.mascot-message.centered .mascot-speech-bubble{border-radius:var(--radius-lg);max-width:90%}.mascot-message.centered .mascot-speech-bubble:before{display:none}.mascot-message[data-state=happy] .mascot-avatar{animation:wiggle .5s ease,bounce 2s ease-in-out .5s infinite}.mascot-message[data-state=wave] .mascot-avatar{animation:wave 1s ease-in-out}.mascot-message[data-state=celebrate] .mascot-avatar{animation:celebrate .8s ease}.mascot-message[data-state=thinking] .mascot-avatar{animation:think 2s ease-in-out infinite}.mascot-message[data-state=sad] .mascot-avatar{animation:sad 2s ease-in-out infinite}@keyframes wave{0%,to{transform:rotate(0deg)}25%{transform:rotate(15deg)}50%{transform:rotate(-15deg)}75%{transform:rotate(15deg)}}@keyframes celebrate{0%{transform:scale(1)}25%{transform:scale(1.1) rotate(-5deg)}50%{transform:scale(1.15) rotate(5deg)}75%{transform:scale(1.1) rotate(-5deg)}to{transform:scale(1)}}@keyframes think{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-3px) rotate(-2deg)}75%{transform:translateY(-3px) rotate(2deg)}}@keyframes sad{0%,to{transform:translateY(0)}50%{transform:translateY(3px)}}.mascot-typing{display:flex;gap:4px;padding:var(--spacing-sm)}.mascot-typing span{animation:typingBounce 1.2s ease-in-out infinite;background:#ffffffb3;border-radius:50%;height:8px;width:8px}.mascot-typing span:nth-child(2){animation-delay:.2s}.mascot-typing span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-8px)}}body.dark .mascot-speech-bubble{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primaryDark) 100%)}body.dark .mascot-speech-bubble:before{border-right-color:var(--color-primary)}.mascot-message-loading{align-items:center;display:flex;gap:var(--spacing-md);padding:var(--spacing-md)}.mascot-message-loading .skeleton-avatar{animation:skeletonPulse 1.5s ease-in-out infinite;background:var(--color-surface);border-radius:50%;height:80px;width:80px}.mascot-message-loading .skeleton-bubble{animation:skeletonPulse 1.5s ease-in-out infinite;background:var(--color-surface);border-radius:var(--radius-lg);flex:1 1;height:60px}@keyframes skeletonPulse{0%,to{opacity:1}50%{opacity:.5}}.lesson-card{align-items:center;background:#fff;background:var(--color-surface,#fff);border-radius:12px;border-radius:var(--border-radius,12px);box-shadow:0 2px 8px #0000000f;cursor:pointer;display:flex;margin-bottom:12px;padding:16px;transition:transform .2s,box-shadow .2s,background-color .3s}.lesson-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.lesson-card.locked{cursor:not-allowed;opacity:.6}.lesson-card.locked:hover{box-shadow:0 2px 8px #0000000f;transform:none}.lesson-card.completed{border-left:4px solid #4caf50;border-left:4px solid var(--color-success,#4caf50)}.lesson-thumbnail{align-items:center;background:linear-gradient(135deg,#f0f0f0,#e0e0e0);border-radius:12px;display:flex;font-size:28px;height:60px;justify-content:center;margin-right:16px;object-fit:cover;width:60px}.lesson-info{flex:1 1;min-width:0}.lesson-title{color:#333;color:var(--color-text,#333);font-size:1rem;font-weight:600;line-height:1.3;margin:0 0 4px}.lesson-subtitle{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;font-size:.875rem;margin:0 0 8px;overflow:hidden}.lesson-meta,.lesson-subtitle{color:#666;color:var(--color-textSecondary,#666)}.lesson-meta{align-items:center;display:flex;font-size:.75rem;gap:12px}.difficulty-badge{border-radius:12px;font-size:.7rem;letter-spacing:.3px;padding:3px 10px}.difficulty-badge.beginner{background:#e8f5e9;color:#2e7d32}.difficulty-badge.intermediate{background:#fff3e0;color:#ef6c00}.difficulty-badge.advanced{background:#ffebee;color:#c62828}.lesson-status{align-items:center;display:flex;height:36px;justify-content:center;margin-left:8px;width:36px}.status-icon{font-size:1.5rem}.status-icon.completed{color:#4caf50;color:var(--color-success,#4caf50)}.status-icon.locked{color:#999;color:var(--color-textSecondary,#999)}.meta-item{align-items:center;display:flex;gap:4px}.meta-item ion-icon{font-size:14px}body.dark .lesson-card{background:#2a2a2a;background:var(--color-surfaceDark,#2a2a2a);box-shadow:0 2px 8px #0003}body.dark .lesson-card:hover{box-shadow:0 4px 16px #0000004d}body.dark .lesson-card.locked:hover{box-shadow:0 2px 8px #0003}body.dark .lesson-title{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .lesson-meta,body.dark .lesson-subtitle{color:#aaa;color:var(--color-textSecondaryDark,#aaa)}body.dark .lesson-thumbnail{background:linear-gradient(135deg,#3a3a3a,#2a2a2a)}body.dark .difficulty-badge.beginner{background:#2e7d3233;color:#81c784}body.dark .difficulty-badge.intermediate{background:#ef6c0033;color:#ffb74d}body.dark .difficulty-badge.advanced{background:#c6282833;color:#ef9a9a}body.dark .status-icon.locked{color:#777;color:var(--color-textSecondaryDark,#777)}.lesson-card.new:after{border-radius:4px;color:#fff;content:"NEW";font-size:.6rem;font-weight:700;padding:2px 6px;position:absolute;right:8px;top:8px}.lesson-card.new:after,body.dark .lesson-card.new:after{background:linear-gradient(135deg,#ff6b6b,#ff8e53)}.ad-banner-container{align-items:center;background:#f4f5f8;background:var(--ion-color-light,#f4f5f8);display:flex;justify-content:center;min-height:50px;width:100%}.ad-banner-container.top{left:0;position:fixed;right:0;top:0;z-index:100}.ad-banner-container.bottom{bottom:0;left:0;position:fixed;right:0;z-index:100}body.dark .ad-banner-container{background:#222428;background:var(--ion-color-dark,#222428)}.home-content{--background:var(--color-background)}.home-container{margin:0 auto;max-width:600px;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-xl) + 60px);padding-top:var(--spacing-lg);position:relative}.home-container:before{background:linear-gradient(180deg,var(--color-primary) 0,var(--color-primaryDark) 100%);border-radius:0 0 32px 32px;content:"";height:280px;left:50%;position:absolute;top:calc(var(--spacing-md)*-1);transform:translateX(-50%);width:100vw;z-index:-1}.home-content ion-toolbar{--background:#0000;--color:#fff;--border-width:0}.home-container .mascot-message{animation:slideUp .5s ease;background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);margin-bottom:var(--spacing-lg);padding:var(--spacing-lg)}.continue-section{margin-bottom:var(--spacing-lg)}.continue-section h2{align-items:center;color:var(--color-text);display:flex;font-size:var(--font-size-large);font-weight:600;gap:var(--spacing-sm);margin:0 0 var(--spacing-md) 0}.continue-section h2:before{content:"📚"}.quick-actions{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:1fr;margin-bottom:var(--spacing-lg)}.quick-actions ion-button{--border-radius:var(--radius-md);--padding-top:14px;--padding-bottom:14px;font-size:var(--font-size-base);font-weight:500}.quick-actions ion-button[fill=outline]{--border-width:2px}.daily-goal{background:linear-gradient(135deg,var(--color-secondary) 0,var(--color-secondaryLight) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-lg)}.daily-goal h3{align-items:center;color:#333;display:flex;font-size:var(--font-size-large);font-weight:600;gap:var(--spacing-sm);margin:0 0 var(--spacing-xs) 0}.daily-goal h3:before{content:"🎯"}.daily-goal p{color:#555;font-size:var(--font-size-base);margin:0 0 var(--spacing-md) 0}.goal-progress{background:#ffffff80;height:12px;overflow:hidden}.goal-fill,.goal-progress{border-radius:var(--radius-full)}.goal-fill{background:linear-gradient(90deg,var(--color-success),var(--color-successLight));height:100%;position:relative;transition:width .5s ease}.goal-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.home-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:60vh;padding:var(--spacing-xl)}.home-loading .loading-spinner{animation:spin 1s linear infinite;border:4px solid var(--color-surface);border-radius:50%;border-top-color:var(--color-primary);height:60px;width:60px}.home-loading p{color:var(--color-textSecondary);font-size:var(--font-size-base);margin-top:var(--spacing-md)}.home-empty{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-xl);text-align:center}.home-empty-icon{font-size:64px;margin-bottom:var(--spacing-md)}.home-empty h3{color:var(--color-text);font-size:var(--font-size-large);margin:0 0 var(--spacing-sm) 0}.home-empty p{color:var(--color-textSecondary);margin:0}.stats-row{grid-gap:var(--spacing-sm);display:grid;gap:var(--spacing-sm);grid-template-columns:repeat(3,1fr);margin-bottom:var(--spacing-lg)}.stat-card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-md);transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card-icon{font-size:24px;margin-bottom:var(--spacing-xs)}.stat-card-value{color:var(--color-primary);font-size:var(--font-size-xl);font-weight:700;line-height:1}.stat-card-label{color:var(--color-textSecondary);font-size:11px;letter-spacing:.5px;margin-top:4px;text-transform:uppercase}.feature-cards{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);margin-bottom:var(--spacing-lg)}.feature-card{background:#fff;border:2px solid #0000;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:inherit;cursor:pointer;padding:var(--spacing-lg);text-align:center;text-decoration:none;transition:all .3s ease}.feature-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.feature-card-icon{font-size:40px;margin-bottom:var(--spacing-sm)}.feature-card-title{color:var(--color-text);font-size:var(--font-size-base);font-weight:600;margin:0 0 4px}.feature-card-subtitle{color:var(--color-textSecondary);font-size:var(--font-size-small);margin:0}body.dark .home-content{--background:var(--color-backgroundDark)}body.dark .home-container:before{background:linear-gradient(180deg,var(--color-primary) 0,var(--color-primaryDark) 100%)}body.dark .feature-card,body.dark .home-container .mascot-message,body.dark .stat-card{background:var(--color-surfaceDark)}body.dark .daily-goal{background:linear-gradient(135deg,#e6be2a,#ffd43b)}body.dark .stat-card-value{color:var(--color-secondary)}@media (max-width:400px){.stats-row{grid-template-columns:repeat(3,1fr)}.stat-card-value{font-size:var(--font-size-large)}.feature-cards{grid-template-columns:1fr}}:root{--slide-primary:#667eea;--slide-secondary:#764ba2;--slide-glow:#667eea66}.onboarding-slide[data-slide="0"],.slide-0{--slide-primary:#667eea;--slide-secondary:#764ba2;--slide-glow:#667eea80;--slide-accent:#8b9fef}.onboarding-slide[data-slide="1"],.slide-1{--slide-primary:#f093fb;--slide-secondary:#f5576c;--slide-glow:#f093fb80;--slide-accent:#f7a8fc}.onboarding-slide[data-slide="2"],.slide-2{--slide-primary:#43e97b;--slide-secondary:#38f9d7;--slide-glow:#43e97b80;--slide-accent:#6aed99}.onboarding-slide[data-slide="3"],.slide-3{--slide-primary:#ffd93d;--slide-secondary:#ff6b6b;--slide-glow:#ffd93d80;--slide-accent:#ffe066}.onboarding-content{--ion-background-color:#0000}.onboarding-container{display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;overflow:hidden;padding:0;position:relative}.onboarding-background{animation:gradientShift 8s ease infinite;background:linear-gradient(135deg,#667eea,#764ba2 50%,#ffd43b);background:linear-gradient(135deg,var(--slide-primary,#667eea) 0,var(--slide-secondary,#764ba2) 50%,var(--color-secondary,#ffd43b) 100%);background-size:400% 400%;bottom:0;left:0;position:absolute;right:0;top:0;transition:background .6s ease;z-index:0}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.onboarding-background:after,.onboarding-background:before{animation:float 6s ease-in-out infinite;background:#ffffff1a;border-radius:50%;content:"";position:absolute}.onboarding-background:before{animation-delay:0s;height:300px;right:-100px;top:-100px;width:300px}.onboarding-background:after{animation-delay:3s;bottom:20%;height:200px;left:-80px;width:200px}.skip-btn{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffff26;border:1px solid #ffffff40;border-radius:30px;box-shadow:0 4px 15px #0000001a;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:8px 20px;position:absolute;right:16px;top:16px;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:100}.skip-btn:active,.skip-btn:hover{background:#ffffff40;box-shadow:0 6px 20px #00000026;transform:scale(1.05) translateY(-1px)}.skip-btn:focus{outline:2px solid #ffffff80;outline-offset:2px}.slides-wrapper{flex:1 1;overflow:hidden;position:relative;z-index:1}.slide,.slides-wrapper{align-items:center;display:flex;justify-content:center}.slide{flex-direction:column;opacity:0;padding:24px;pointer-events:none;position:absolute;transform:translateX(100%);transition:all .5s cubic-bezier(.4,0,.2,1);width:100%}.slide.active{opacity:1;pointer-events:auto;transform:translateX(0)}.slide.prev{transform:translateX(-100%)}.slide.next{transform:translateX(100%)}.slide-enter .slide-image-container{animation:slideImageEnter .6s cubic-bezier(.34,1.56,.64,1) forwards}.slide-enter .slide-card{animation:slideCardEnter .6s cubic-bezier(.34,1.56,.64,1) .15s forwards;opacity:0}@keyframes slideImageEnter{0%{opacity:0;transform:translateY(-30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideCardEnter{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.slide-image-container{animation:imageFloat 4s ease-in-out infinite;height:260px;margin-bottom:24px;max-width:320px;position:relative;width:100%}.slide-image-container:before{animation:glowPulse 3s ease-in-out infinite;background:radial-gradient(ellipse at center,#667eea66 0,#0000 70%);background:radial-gradient(ellipse at center,var(--slide-glow,#667eea66) 0,#0000 70%);border-radius:50%;content:"";filter:blur(30px);height:80%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80%;z-index:-1}@keyframes glowPulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:.9;transform:translate(-50%,-50%) scale(1.1)}}@keyframes imageFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.slide.active .slide-image-container{animation:imageFloatDynamic 5s ease-in-out infinite}@keyframes imageFloatDynamic{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-10px) rotate(1deg)}50%{transform:translateY(-18px) rotate(0deg)}75%{transform:translateY(-8px) rotate(-1deg)}}.slide-image{filter:drop-shadow(0 20px 40px rgba(0,0,0,.2));height:100%;object-fit:contain;transition:filter .3s ease,transform .3s ease;width:100%}.onboarding-image img,.slide-image{animation:svgEntrance .8s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes svgEntrance{0%{filter:drop-shadow(0 10px 20px rgba(0,0,0,.1));opacity:0;transform:scale(.8) translateY(20px)}to{filter:drop-shadow(0 20px 40px rgba(0,0,0,.2));opacity:1;transform:scale(1) translateY(0)}}.slide-image-container:hover .slide-image{filter:drop-shadow(0 25px 50px rgba(0,0,0,.25));transform:scale(1.02)}.slide-image-placeholder{align-items:center;animation:placeholderPulse 1.5s ease-in-out infinite;background:#ffffff1a;border-radius:24px;display:flex;font-size:4rem;height:100%;justify-content:center;width:100%}@keyframes placeholderPulse{0%,to{opacity:.5}50%{opacity:.8}}.slide-image-loading{animation:imageLoadIn .5s ease forwards;opacity:0}@keyframes imageLoadIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.slide-card{animation:cardEntry .6s ease-out;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#ffffff2e;border:1px solid #ffffff40;border-radius:32px;box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014,inset 0 1px 0 #ffffff4d,0 0 0 1px #ffffff0d;max-width:360px;overflow:hidden;padding:32px 24px;position:relative;text-align:center;width:100%}.slide-card:before{background:linear-gradient(135deg,#fff6,#0000 50%,#ffffff1a);border-radius:33px;bottom:-1px;content:"";left:-1px;opacity:0;position:absolute;right:-1px;top:-1px;transition:opacity .3s ease;z-index:-1}.slide.active .slide-card:before{opacity:1}.slide-card:after{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;pointer-events:none;position:absolute;top:0;transition:left .5s ease;width:100%}.slide.active .slide-card:after{animation:cardShine 2s ease .5s}@keyframes cardShine{0%{left:-100%}to{left:100%}}@keyframes cardEntry{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.slide-mascot{margin-bottom:16px}.slide-mascot .mascot-container{transform:scale(.8)}.slide-title{color:#fff;font-size:1.8rem;font-weight:800;letter-spacing:-.02em;line-height:1.3;margin:0 0 12px;text-shadow:0 2px 10px #00000040,0 4px 20px #00000026;transition:transform .3s ease,opacity .3s ease}.slide.active .slide-title{animation:titleEnter .5s cubic-bezier(.34,1.56,.64,1) .2s backwards}@keyframes titleEnter{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.slide-description{color:#ffffffeb;font-size:1.1rem;font-weight:400;line-height:1.6;margin:0;text-shadow:0 1px 4px #00000026;transition:transform .3s ease,opacity .3s ease}.slide.active .slide-description{animation:descEnter .5s cubic-bezier(.34,1.56,.64,1) .3s backwards}@keyframes descEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.onboarding-footer{padding:24px 24px max(24px,env(safe-area-inset-bottom));position:relative;z-index:10}.progress-dots{display:flex;gap:12px;justify-content:center;margin-bottom:24px}.dot{background:#ffffff4d;border:2px solid #0000;cursor:pointer;height:12px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);width:12px}.dot:before{background:#fff3;border-radius:50%;content:"";height:20px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);transition:transform .3s ease;width:20px}.dot:hover:before{transform:translate(-50%,-50%) scale(1)}.dot.active{background:#fff;border-color:#ffffff4d;border-radius:8px;box-shadow:0 2px 10px #ffffff80,0 0 20px #667eea66;box-shadow:0 2px 10px #ffffff80,0 0 20px var(--slide-glow,#667eea66);width:36px}.dot.active:after{animation:dotShimmer 2s linear infinite;background:linear-gradient(90deg,#0000,#fff6,#0000);border-radius:8px;bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes dotShimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.dot.completed{background:#ffffffb3;border-color:#fff6}.dot:hover:not(.active){background:#ffffff80;box-shadow:0 2px 8px #ffffff4d;transform:scale(1.15)}.dot:active:not(.active){transform:scale(.95)}.dot.transitioning{animation:dotBounce .4s ease}@keyframes dotBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.onboarding-actions{display:flex;gap:12px}.next-btn{--background:#fff;--background-activated:#f0f0f0;--color:var(--slide-primary,#667eea);--border-radius:16px;--box-shadow:0 8px 24px #0003,0 2px 8px #0000001a;font-size:1.1rem;font-weight:700;height:56px;letter-spacing:.3px;margin:0;overflow:hidden;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.next-btn::part(native){padding:16px 32px}.next-btn:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.next-btn:hover:before{left:100%}.next-btn:hover{--box-shadow:0 12px 32px #00000040,0 4px 12px #00000026,0 0 20px var(--slide-glow,#667eea4d);transform:translateY(-3px) scale(1.02)}.next-btn:active{--box-shadow:0 6px 16px #0003,0 2px 6px #0000001a;transform:translateY(-1px) scale(.98)}.next-btn:focus{outline:3px solid #fff6;outline-offset:3px}.next-btn.final-step{--background:linear-gradient(135deg,#4caf50,#45a049);--color:#fff;animation:finalPulse 2s infinite}.next-btn.final-step:hover{--box-shadow:0 12px 40px #4caf5080,0 4px 12px #4caf504d}@keyframes finalPulse{0%,to{box-shadow:0 8px 24px #4caf5066,0 0 0 0 #4caf5066}50%{box-shadow:0 8px 40px #4caf5099,0 0 0 10px #4caf5000}}.back-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #ffffff40;border-radius:16px;color:#fff;cursor:pointer;font-weight:600;padding:16px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.back-btn:hover{background:#ffffff40;box-shadow:0 6px 20px #00000026;transform:translateY(-2px)}.back-btn:active{transform:translateY(0) scale(.98)}.swipe-hint{align-items:center;animation:swipeHint 2s ease-in-out infinite;bottom:140px;color:#fff9;display:flex;font-size:.85rem;gap:8px;left:50%;position:absolute;transform:translateX(-50%);z-index:5}.swipe-hint-icon{animation:swipeArrow 1.5s ease-in-out infinite;font-size:1.2rem}@keyframes swipeHint{0%,to{opacity:.6}50%{opacity:1}}@keyframes swipeArrow{0%,to{transform:translateX(0)}50%{transform:translateX(5px)}}.celebration-container{bottom:0;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:1000}.sparkle{animation:sparkle 1.5s ease-out forwards;background:#fff;border-radius:50%;height:10px;width:10px}@keyframes sparkle{0%{opacity:1;transform:scale(0) rotate(0deg)}to{opacity:0;transform:scale(1.5) rotate(180deg)}}.onboarding-slide[data-slide="0"] .onboarding-background,.slide-0~.onboarding-background{background:linear-gradient(135deg,#667eea,#764ba2 50%,#8b5cf6)}.onboarding-slide[data-slide="1"] .onboarding-background,.slide-1~.onboarding-background{background:linear-gradient(135deg,#f093fb,#f5576c 50%,#ff6b8a)}.onboarding-slide[data-slide="2"] .onboarding-background,.slide-2~.onboarding-background{background:linear-gradient(135deg,#43e97b,#38f9d7 50%,#00d9ff)}.onboarding-slide[data-slide="3"] .onboarding-background,.slide-3~.onboarding-background{background:linear-gradient(135deg,#ffd93d,#ff6b6b 50%,#ff8e53)}body.dark .onboarding-background{background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460)}body.dark .slide-card{background:#1e1e32a6;border:1px solid #ffffff1f;box-shadow:0 8px 32px #0000004d,0 2px 8px #0003,inset 0 1px 0 #ffffff1a}body.dark .slide-card:before{background:linear-gradient(135deg,#ffffff26,#0000 50%,#ffffff0d)}body.dark .skip-btn{background:#ffffff14;border:1px solid #ffffff26}body.dark .skip-btn:hover{background:#ffffff26}body.dark .next-btn{--background:var(--slide-primary,#667eea);--color:#fff}body.dark .dot{background:#fff3}body.dark .dot.active{background:#667eea;background:var(--slide-primary,#667eea);box-shadow:0 2px 10px #ffffff4d,0 0 20px #667eea66;box-shadow:0 2px 10px #ffffff4d,0 0 20px var(--slide-glow,#667eea4d)}body.dark .dot.completed{background:#ffffff80}body.dark .onboarding-slide[data-slide="0"] .onboarding-background,body.dark .slide-0~.onboarding-background{background:linear-gradient(135deg,#1a1a3e,#2d1b4e 50%,#1e1e4a)}body.dark .onboarding-slide[data-slide="1"] .onboarding-background,body.dark .slide-1~.onboarding-background{background:linear-gradient(135deg,#2e1a2e,#3e1b2e 50%,#2a1a2a)}body.dark .onboarding-slide[data-slide="2"] .onboarding-background,body.dark .slide-2~.onboarding-background{background:linear-gradient(135deg,#1a2e2a,#1b3e3a 50%,#1a2a2e)}body.dark .onboarding-slide[data-slide="3"] .onboarding-background,body.dark .slide-3~.onboarding-background{background:linear-gradient(135deg,#2e2a1a,#3e2b1b 50%,#2a2a1a)}@media (min-width:768px){.slide-card{max-width:420px;padding:40px 32px}.slide-image-container{height:320px;max-width:400px}.slide-title{font-size:2.2rem}.slide-description{font-size:1.2rem}.progress-dots{gap:16px}.dot{height:14px;width:14px}.dot.active{width:42px}}@media (max-height:600px) and (orientation:landscape){.slide,.slides-wrapper{flex-direction:row}.slide{padding:16px}.slide-image-container{height:180px;margin-bottom:0;margin-right:24px;max-width:200px}.slide-card{padding:20px}.slide-title{font-size:1.4rem}.slide-description{font-size:.95rem}.onboarding-footer{padding:16px}.progress-dots{margin-bottom:16px}}@media (max-width:360px){.slide-card{border-radius:24px;padding:24px 16px}.slide-title{font-size:1.5rem}.slide-description{font-size:1rem}.slide-image-container{height:200px;max-width:260px}.next-btn{font-size:1rem;height:50px}}@media (prefers-reduced-motion:reduce){.onboarding-background,.onboarding-background:after,.onboarding-background:before,.slide-image-container,.slide-image-container:before,.slide.active .slide-image-container{animation:none}.slide{transform:none!important;transition:opacity .3s ease}.slide.active{opacity:1}.slide:not(.active){opacity:0}.dot.active:after,.next-btn.final-step,.slide-card:after{animation:none}.onboarding-image img,.slide-enter .slide-card,.slide-enter .slide-image-container,.slide-image,.slide.active .slide-description,.slide.active .slide-title{animation:none;opacity:1;transform:none}.swipe-hint,.swipe-hint-icon{animation:none;opacity:.7}.next-btn:before,.slide-card:after{display:none}}@media (prefers-contrast:high){.slide-card{background:#000c;border:2px solid #fff}.slide-title{font-weight:900;text-shadow:none}.slide-description{color:#fff;text-shadow:none}.dot{border:2px solid #fff}.dot.active{background:#fff}.next-btn,.skip-btn{border:2px solid #fff}}@supports (padding:max(0px)){.skip-btn{right:max(16px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top))}.onboarding-footer,.slide{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}}.lessons-list-content{--ion-background-color:var(--color-background,#f5f7fa)}.category-filter-container{background:#fff;background:var(--color-surface,#fff);border-bottom:1px solid #0000000d;padding:12px 16px}.category-filter-scroll{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.category-filter-scroll::-webkit-scrollbar{display:none}.filter-btn{background:#0000000d;border:none;border-radius:20px;color:#666;color:var(--color-textSecondary,#666);cursor:pointer;flex-shrink:0;font-size:.9rem;font-weight:500;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.filter-btn:hover{background:#0000001a}.filter-btn.active{background:#3776ab;background:var(--color-primary,#3776ab);color:#fff}.lessons-container{min-height:calc(100vh - 150px);padding:16px}.category-header{background:#fff;background:var(--color-surface,#fff);border-radius:12px;box-shadow:0 1px 3px #00000014;color:#666;color:var(--color-textSecondary,#666);font-size:.9rem;margin-bottom:12px;padding:12px 16px}.lessons-list{display:flex;flex-direction:column;gap:12px}.empty-state{background:#fff;background:var(--color-surface,#fff);border-radius:16px;margin-top:20px}.empty-state .empty-icon{font-size:4rem;opacity:.5}.empty-state p{color:var(--color-textSecondary,#666);font-size:1rem}body.dark .lessons-list-content{--ion-background-color:var(--color-backgroundDark,#1a1a1a);--background:var(--color-backgroundDark,#1a1a1a)}body.dark .category-filter-container{background:#2a2a2a;background:var(--color-surfaceDark,#2a2a2a);border-bottom-color:#ffffff1a}body.dark .filter-btn{background:#ffffff1a;color:#aaa;color:var(--color-textSecondaryDark,#aaa)}body.dark .filter-btn:hover{background:#ffffff26}body.dark .filter-btn.active{background:#3776ab;background:var(--color-primary,#3776ab);color:#fff}body.dark .lessons-container{background:#1a1a1a;background:var(--color-backgroundDark,#1a1a1a)}body.dark .category-header{color:#aaa;color:var(--color-textSecondaryDark,#aaa)}body.dark .category-header,body.dark .empty-state{background:#2a2a2a;background:var(--color-surfaceDark,#2a2a2a)}body.dark .empty-state p{color:var(--color-textSecondaryDark,#aaa)}body.dark .loading-skeleton{background:linear-gradient(90deg,#2a2a2a 25%,#3a3a3a 50%,#2a2a2a 75%);background-size:200% 100%}.loading-skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:8px}.code-editor-container{background:#1e1e1e;border:1px solid #333;border-radius:16px;box-shadow:0 8px 30px #00000040;overflow:hidden}.code-editor-header{align-items:center;background:linear-gradient(180deg,#2d2d2d,#252525);border-bottom:1px solid #3d3d3d;display:flex;justify-content:space-between;padding:12px 16px}.language-badge{align-items:center;background:linear-gradient(135deg,#3d3d3d,#2a2a2a);border-radius:8px;color:#e0e0e0;display:flex;font-size:.8rem;font-weight:600;gap:8px;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase}.language-badge:before{animation:glow 2s ease-in-out infinite;background:#10b981;border-radius:50%;box-shadow:0 0 8px #10b98199;content:"";height:8px;width:8px}@keyframes glow{0%,to{box-shadow:0 0 8px #10b98199}50%{box-shadow:0 0 15px #10b981e6}}.code-editor-container[data-language=python] .language-badge:before{background:#3776ab;box-shadow:0 0 8px #3776ab99}.code-editor-container[data-language=javascript] .language-badge:before{background:#f7df1e;box-shadow:0 0 8px #f7df1e99}.code-editor-container[data-language=java] .language-badge:before{background:#f89820;box-shadow:0 0 8px #f8982099}.editor-actions{display:flex;gap:10px}.reset-btn{--color:#94a3b8;--background-hover:#94a3b81a}.reset-btn:hover{--color:#f1f5f9}.run-btn{--background:linear-gradient(135deg,#10b981,#059669);--background-activated:#059669;--background-hover:linear-gradient(135deg,#059669,#047857);--border-radius:10px;--padding-start:16px;--padding-end:16px;--box-shadow:0 4px 15px #10b9814d;font-weight:600;text-transform:none;transition:all .3s ease}.run-btn:hover{--box-shadow:0 6px 20px #10b98166;transform:translateY(-2px)}.run-btn:active{transform:translateY(0)}.code-editor-body{background:#1e1e1e;position:relative}.code-editor-wrapper{display:flex;position:relative;width:100%}.line-numbers-gutter{background:#252525;border-right:1px solid #3d3d3d;color:#6b7280;flex-shrink:0;font-family:Fira Code,SF Mono,Consolas,Monaco,monospace;line-height:1.7;overflow:hidden;padding:20px 8px 20px 12px;text-align:right;-webkit-user-select:none;user-select:none;width:48px}.line-number{color:#6b7280;height:1.7em;transition:color .2s ease}.code-textarea{background:#1e1e1e;border:none;box-sizing:border-box;color:#d4d4d4;font-family:Fira Code,SF Mono,Consolas,Monaco,monospace;font-size:14px;font-size:var(--code-font-size,14px);line-height:1.7;min-height:200px;outline:none;overflow-x:auto;padding:20px;resize:vertical;tab-size:4;-moz-tab-size:4;white-space:pre;width:100%}.code-textarea::placeholder{color:#6b7280;font-style:italic}.code-textarea:focus{background:#252525}.code-textarea.with-line-numbers{flex:1 1;width:auto}.code-textarea::selection{background:#264f78}.code-editor-body .linenumber{color:#6b7280;min-width:40px;padding-right:16px;text-align:right;-webkit-user-select:none;user-select:none}.code-editor-body pre{background:#1e1e1e!important;font-family:Fira Code,SF Mono,Consolas,Monaco,monospace!important;font-size:14px!important;font-size:var(--code-font-size,14px)!important;line-height:1.7!important;margin:0!important;padding:20px!important}.code-editor-body code{font-family:inherit!important}.code-editor-hint{align-items:center;background:linear-gradient(180deg,#252525,#1e1e1e);border-top:1px solid #3d3d3d;color:#6b7280;display:flex;font-size:.75rem;gap:8px;padding:10px 16px}.code-editor-hint:before{content:"⌨️"}.code-editor-hint kbd{background:#3d3d3d;border:1px solid #4d4d4d;border-radius:4px;box-shadow:0 2px 0 #2a2a2a;color:#a0a0a0;font-family:inherit;font-size:.75rem;padding:3px 8px}.char-count{color:#6b7280;font-size:.75rem;padding:8px 12px}.run-button{align-items:center;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;box-shadow:0 4px 15px #10b9814d;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:8px;padding:10px 20px;transition:all .3s ease}.run-button:hover:not(:disabled){box-shadow:0 6px 20px #10b98166;transform:translateY(-2px)}.run-button:active:not(:disabled){transform:translateY(0)}.run-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.run-button.running{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 4px 15px #f59e0b4d}.run-btn ion-spinner,.run-button ion-spinner{--color:#fff}.code-editor-container.readonly .code-editor-body{opacity:.9}.code-editor-container.readonly .code-textarea{cursor:default}.code-editor-container.error{border-color:#ef4444;box-shadow:0 8px 30px #ef444433}.code-editor-container.success{border-color:#10b981;box-shadow:0 8px 30px #10b98133}.code-editor-container.mini{border-radius:12px}.code-editor-container.mini .code-editor-header{padding:8px 12px}.code-editor-container.mini .code-textarea{font-size:13px;min-height:100px;padding:12px}.code-editor-container.mini .code-editor-hint{padding:6px 12px}.code-editor-body pre::-webkit-scrollbar,.code-textarea::-webkit-scrollbar{height:10px;width:10px}.code-editor-body pre::-webkit-scrollbar-track,.code-textarea::-webkit-scrollbar-track{background:#1e1e1e}.code-editor-body pre::-webkit-scrollbar-thumb,.code-textarea::-webkit-scrollbar-thumb{background:#4d4d4d;border:2px solid #1e1e1e;border-radius:5px}.code-editor-body pre::-webkit-scrollbar-thumb:hover,.code-textarea::-webkit-scrollbar-thumb:hover{background:#5d5d5d}.code-editor-body pre::-webkit-scrollbar-corner,.code-textarea::-webkit-scrollbar-corner{background:#1e1e1e}@supports (-webkit-touch-callout:none){.code-textarea{font-size:16px}}.code-editor-container.loading .code-editor-body:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#0000,#ffffff0d,#0000);background-size:200% 100%;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}@media (max-width:640px){.code-editor-container{border-radius:12px}.code-editor-header{flex-wrap:wrap;gap:10px;padding:10px 12px}.language-badge{font-size:.75rem;padding:5px 10px}.code-textarea{font-size:13px;min-height:150px;padding:16px}.code-editor-hint{font-size:.7rem;padding:8px 12px}.code-editor-hint kbd{font-size:.7rem;padding:2px 6px}}@media (max-width:360px){.code-textarea{font-size:12px;padding:12px}.editor-actions{gap:6px}.run-btn{--padding-start:12px;--padding-end:12px;font-size:.85rem}}.output-panel{animation:slideUp .3s ease;background:#1e1e1e;border:1px solid #333;border-radius:16px;box-shadow:0 8px 30px #00000040;margin-top:16px;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.output-panel.success{border-color:#10b9814d}.output-panel.error{border-color:#ef44444d}.output-header{align-items:center;background:linear-gradient(180deg,#2d2d2d,#252525);border-bottom:1px solid #3d3d3d;display:flex;justify-content:space-between;padding:12px 16px}.output-title{color:#e0e0e0;font-size:.9rem;gap:10px}.output-status,.output-title{align-items:center;display:flex;font-weight:600}.output-status{border-radius:20px;font-size:.85rem;gap:8px;padding:6px 14px;transition:all .3s ease}.output-panel.success .output-status,.output-status.success{background:linear-gradient(135deg,#10b98133,#05966933);border:1px solid #10b9814d;color:#6ee7b7}.output-panel.error .output-status,.output-status.error{background:linear-gradient(135deg,#ef444433,#dc262633);border:1px solid #ef44444d;color:#fca5a5}.output-status.running{animation:pulse 1.5s ease infinite;background:linear-gradient(135deg,#f59e0b33,#d9770633);border:1px solid #f59e0b4d;color:#fcd34d}.status-icon{font-size:1.1rem}.status-icon.success{animation:checkIn .3s ease;color:#10b981}@keyframes checkIn{0%{transform:scale(0)}to{transform:scale(1)}}.status-icon.error{animation:shake .3s ease;color:#ef4444}.execution-time{align-items:center;background:#0003;border-radius:12px;color:#6b7280;display:flex;font-size:.8rem;gap:6px;padding:6px 12px}.execution-time ion-icon{color:#9ca3af;font-size:.9rem}.output-body{background:#1a1a1a;padding:0}.output-content{color:#d4d4d4;font-family:Fira Code,SF Mono,Consolas,Monaco,monospace;font-size:14px;line-height:1.7;margin:0;max-height:300px;min-height:80px;overflow-y:auto;padding:20px;white-space:pre-wrap;word-break:break-word}.output-panel.success .output-content{color:#6ee7b7}.output-panel.error .output-content{color:#fca5a5}.output-empty{color:#6b7280;font-size:.95rem;font-style:italic;padding:30px 20px;text-align:center}.output-empty:before{content:"📭";display:block;font-size:2rem;margin-bottom:8px;opacity:.5}.output-text{color:#d4d4d4;margin:0;white-space:pre-wrap;word-break:break-word}.output-text.error{color:#fca5a5}.clear-button{align-items:center;background:#0000;border:1px solid #4d4d4d;border-radius:8px;color:#9ca3af;cursor:pointer;display:flex;font-size:.75rem;font-weight:500;gap:6px;padding:6px 12px;transition:all .2s ease}.clear-button:hover{background:#333;border-color:#5d5d5d;color:#e0e0e0}.clear-button:before{content:"🗑️";font-size:.85rem}.output-content::-webkit-scrollbar{width:10px}.output-content::-webkit-scrollbar-track{background:#1a1a1a}.output-content::-webkit-scrollbar-thumb{background:#4d4d4d;border:2px solid #1a1a1a;border-radius:5px}.output-content::-webkit-scrollbar-thumb:hover{background:#5d5d5d}.output-panel.loading .output-body:before{animation:loading 1.5s infinite;background:linear-gradient(90deg,#0000,#3b82f6,#0000);background-size:200% 100%;content:"";display:block;height:3px}@keyframes loading{0%{background-position:200% 0}to{background-position:-200% 0}}.output-panel.success:after{animation:successGlow 2s ease infinite;background:linear-gradient(90deg,#10b981,#34d399,#10b981);content:"";height:2px;left:0;position:absolute;right:0;top:0}@keyframes successGlow{0%,to{opacity:1}50%{opacity:.5}}.output-footer{align-items:center;background:#252525;border-top:1px solid #3d3d3d;display:flex;justify-content:space-between;padding:8px 16px}.error-details{background:#ef44441a;border-left:3px solid #ef4444;border-radius:8px;margin-top:12px;padding:12px}.error-details .error-type{color:#fca5a5;font-size:.9rem;font-weight:700;margin-bottom:4px}.error-details .error-message{color:#d4d4d4;font-size:.85rem;line-height:1.5}.copy-output-btn{align-items:center;background:#0000;border:none;border-radius:4px;color:#6b7280;cursor:pointer;display:flex;justify-content:center;padding:4px;transition:all .2s ease}.copy-output-btn:hover{background:#ffffff1a;color:#e0e0e0}.copy-output-btn.copied{color:#10b981}.test-results{padding:16px}.test-result-item{align-items:center;background:#0003;border-radius:10px;display:flex;gap:12px;margin-bottom:8px;padding:12px 16px;transition:all .2s ease}.test-result-item:hover{background:#0000004d}.test-result-item.passed{border-left:3px solid #10b981}.test-result-item.failed{border-left:3px solid #ef4444}.test-result-icon{font-size:1.2rem}.test-result-item.passed .test-result-icon{color:#10b981}.test-result-item.failed .test-result-icon{color:#ef4444}.test-result-name{color:#e0e0e0;flex:1 1;font-size:.9rem;font-weight:500}.test-result-time{color:#6b7280;font-size:.75rem}.output-panel.mini{border-radius:12px;margin-top:12px}.output-panel.mini .output-header{padding:8px 12px}.output-panel.mini .output-content{font-size:13px;max-height:150px;min-height:50px;padding:12px}.output-panel.collapsed .output-body{max-height:0;overflow:hidden;transition:max-height .3s ease}.output-panel.expanded .output-body{max-height:500px;transition:max-height .3s ease}body.dark .output-panel{background:#0f172a;border-color:#1e293b}body.dark .output-header{background:linear-gradient(180deg,#1e293b,#0f172a);border-color:#1e293b}body.dark .output-body{background:#0a0f1a}body.dark .output-content{color:#e2e8f0}@media (max-width:640px){.output-panel{border-radius:12px;margin-top:12px}.output-header{flex-wrap:wrap;gap:8px;padding:10px 12px}.output-status{font-size:.8rem;padding:5px 10px}.execution-time{font-size:.75rem;padding:4px 8px}.output-content{font-size:13px;max-height:200px;min-height:60px;padding:12px}.output-empty{font-size:.9rem;padding:20px 12px}.output-empty:before{font-size:1.5rem}}@media (max-width:360px){.output-content{font-size:12px;padding:10px}.output-status{font-size:.75rem;padding:4px 8px}.status-icon{font-size:.95rem}}.quiz-container{padding:20px}.quiz-question{color:#333;color:var(--color-text,#333);font-size:1.125rem;font-weight:600;line-height:1.5;margin-bottom:20px}.quiz-options{display:flex;flex-direction:column;gap:12px}.quiz-option{align-items:center;background:#f5f5f5;background:var(--color-surface,#f5f5f5);border:2px solid #0000;border-radius:12px;border-radius:var(--border-radius,12px);cursor:pointer;display:flex;padding:16px;transition:all .2s}.quiz-option:hover{background:#4a8bc210;background:var(--color-primaryLight,#4a8bc2)10}.quiz-option.selected,.quiz-option:hover{border-color:#3776ab;border-color:var(--color-primary,#3776ab)}.quiz-option.selected{background:#4a8bc220;background:var(--color-primaryLight,#4a8bc2)20}.quiz-option.correct{background:#4caf501a;border-color:#4caf50;border-color:var(--color-success,#4caf50)}.quiz-option.incorrect{background:#f443361a;border-color:#f44336;border-color:var(--color-error,#f44336)}.quiz-option.disabled{cursor:not-allowed;opacity:.7}.option-marker{align-items:center;border:2px solid #ccc;border-radius:50%;display:flex;font-size:.875rem;height:24px;justify-content:center;margin-right:12px;width:24px}.quiz-option.selected .option-marker{background:#3776ab;background:var(--color-primary,#3776ab);border-color:#3776ab;border-color:var(--color-primary,#3776ab);color:#fff}.quiz-option.correct .option-marker{background:#4caf50;background:var(--color-success,#4caf50);border-color:#4caf50;border-color:var(--color-success,#4caf50);color:#fff}.quiz-option.incorrect .option-marker{background:#f44336;background:var(--color-error,#f44336);border-color:#f44336;border-color:var(--color-error,#f44336);color:#fff}.option-text{color:#333;color:var(--color-text,#333);flex:1 1;font-size:1rem}.quiz-feedback{border-radius:12px;border-radius:var(--border-radius,12px);margin-top:20px;padding:16px}.quiz-feedback.correct{background:#4caf501a;border-left:4px solid #4caf50;border-left:4px solid var(--color-success,#4caf50)}.quiz-feedback.incorrect{background:#f443361a;border-left:4px solid #f44336;border-left:4px solid var(--color-error,#f44336)}.feedback-title{font-weight:600;margin-bottom:8px}.feedback-explanation{color:#666;color:var(--color-textSecondary,#666);font-size:.95rem;line-height:1.5}body.dark .quiz-question{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .quiz-option{background:#2a2a2a;background:var(--color-surfaceDark,#2a2a2a)}body.dark .option-text{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}.step-renderer{animation:slideIn .4s ease;padding:20px}.step-header{gap:14px;margin-bottom:24px}.step-header,.step-number{align-items:center;display:flex}.step-number{background:linear-gradient(135deg,#3776ab,#2b5d8a);background:linear-gradient(135deg,var(--color-primary,#3776ab) 0,var(--color-primaryDark,#2b5d8a) 100%);border-radius:50%;box-shadow:0 4px 15px #3776ab4d;color:#fff;font-size:1rem;font-weight:700;height:40px;justify-content:center;width:40px}.step-title{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.4rem;font-weight:700;line-height:1.3;margin:0}.step-content{margin-bottom:24px}.step-text{color:#374151;color:var(--color-text,#374151);font-size:1.05rem;line-height:1.8}.step-story{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-story:before{background:linear-gradient(90deg,#3776ab,#ffd43b,#4caf50);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-story h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 16px}.step-story h2:before{content:"📖";font-size:1.4em}.story-content{margin-top:20px}.story-content p,.story-text{color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:1.1rem;line-height:1.9;white-space:pre-wrap}.story-visual{animation:scaleIn .5s ease .2s both;margin-top:24px;text-align:center}.story-visual img{border-radius:16px;box-shadow:0 8px 30px #0000001f;height:auto;max-width:100%;transition:transform .3s ease}.story-visual img:hover{transform:scale(1.02)}.step-concept{background:linear-gradient(135deg,#fff,#e0f2fe);border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-concept:before{background:linear-gradient(90deg,#0ea5e9,#22d3ee,#67e8f9);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-concept h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 20px}.step-concept h2:before{content:"💡";font-size:1.2em}.concept-intro{color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:1.1rem;line-height:1.8;margin-bottom:24px;white-space:pre-wrap}.key-points-list{background:#fff;border-radius:16px;box-shadow:0 4px 15px #00000014;padding:24px}.key-points-list h4{align-items:center;color:#0369a1;display:flex;font-size:1.1rem;font-weight:700;gap:8px;margin:0 0 16px}.key-points-list h4:before{content:"🎯"}.key-points-list ul{list-style:none;margin:0;padding:0}.key-point-item{align-items:flex-start;animation:fadeIn .3s ease both;border-bottom:1px solid #e0f2fe;display:flex;gap:12px;padding:12px 0}.key-point-item:last-child{border-bottom:none}.key-point-item:first-child{animation-delay:.1s}.key-point-item:nth-child(2){animation-delay:.2s}.key-point-item:nth-child(3){animation-delay:.3s}.key-point-item:nth-child(4){animation-delay:.4s}.key-point-bullet{color:#10b981;font-size:1.2rem}.concept-visual{margin-top:24px;text-align:center}.concept-visual img{border-radius:16px;box-shadow:0 4px 20px #0000001a;height:auto;max-width:100%}.step-explanation{background:linear-gradient(135deg,#fff,#fef3c7);border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-explanation:before{background:linear-gradient(90deg,#f59e0b,#fbbf24,#fcd34d);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-explanation h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 20px}.step-explanation h2:before{content:"🔍";font-size:1.2em}.explanation-intro{color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:1.1rem;line-height:1.8;margin-bottom:24px}.explanation-parts{display:flex;flex-direction:column;gap:12px}.explanation-part{align-items:center;animation:slideIn .4s ease both;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000000f;display:flex;gap:16px;padding:16px 20px;transition:all .3s ease}.explanation-part:first-child{animation-delay:.1s}.explanation-part:nth-child(2){animation-delay:.15s}.explanation-part:nth-child(3){animation-delay:.2s}.explanation-part:nth-child(4){animation-delay:.25s}.explanation-part:hover{box-shadow:0 4px 15px #0000001a;transform:translateX(8px)}.part-code{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:8px;box-shadow:0 2px 8px #0003;color:#10b981;display:inline-block;flex-shrink:0;font-family:Fira Code,Consolas,monospace;font-size:.95rem;font-weight:600;padding:8px 14px}.part-arrow{color:#f59e0b;flex-shrink:0;font-size:1.4rem;font-weight:700}.part-desc{color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:.95rem;line-height:1.5}.explanation-code-example{margin-top:24px}.step-visual-explanation{background:linear-gradient(135deg,#fff,#f0f9ff);border-radius:24px;box-shadow:0 4px 20px #0000000f;padding:28px 24px}.step-visual-explanation h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 24px}.step-visual-explanation h2:before{content:"👁️";font-size:1.2em}.comparison-grid{grid-gap:16px;align-items:center;display:grid;gap:16px;grid-template-columns:1fr auto 1fr;margin:24px 0}.comparison-item{background:#fff;border-radius:16px;box-shadow:0 4px 15px #00000014;padding:20px;transition:transform .3s ease}.comparison-item:hover{transform:translateY(-4px)}.comparison-item img{height:80px;margin-bottom:12px;object-fit:contain;width:80px}.comparison-item p{color:#6b7280;color:var(--color-textSecondary,#6b7280);font-size:.95rem;margin:0}.comparison-vs{background:linear-gradient(135deg,#e0f2fe,#bae6fd);border-radius:50%;box-shadow:0 4px 15px #3776ab33;color:#3776ab;color:var(--color-primary,#3776ab);font-size:1.5rem;font-weight:800;padding:16px}.diagram-container{background:#fff;border-radius:16px;box-shadow:0 4px 15px #00000014;margin:24px 0;padding:20px}.diagram-container img{border-radius:12px;height:auto;max-width:100%}.fun-fact{align-items:flex-start;background:linear-gradient(135deg,#fef3c7,#fde68a);border-left:4px solid #f59e0b;border-radius:16px;display:flex;gap:16px;margin-top:24px;padding:20px}.fun-fact-icon{flex-shrink:0;font-size:2rem}.fun-fact p{color:#92400e;font-size:1rem;font-weight:500;line-height:1.6;margin:0}.step-interactive-demo{background:linear-gradient(135deg,#fff,#f0fdf4);border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-interactive-demo:before{background:linear-gradient(90deg,#10b981,#34d399,#6ee7b7);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-interactive-demo h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 20px}.step-interactive-demo h2:before{content:"🎮";font-size:1.2em}.demo-intro{color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:1.1rem;line-height:1.7;margin-bottom:20px}.demo-code-section{margin:20px 0}.demo-explanation{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-left:4px solid #10b981;border-radius:16px;margin-top:20px;padding:20px}.demo-explanation p{color:#065f46;font-size:1rem;line-height:1.7;margin:0}.step-concept-breakdown{background:linear-gradient(135deg,#fff,#fef3c7);border-radius:24px;box-shadow:0 4px 20px #0000000f;padding:28px 24px}.step-concept-breakdown h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 24px}.step-concept-breakdown h2:before{content:"🧩";font-size:1.2em}.concept-part{animation:slideIn .4s ease both;background:#fff;border-radius:16px;box-shadow:0 4px 15px #0000000f;display:flex;gap:16px;margin-bottom:16px;padding:20px;transition:all .3s ease}.concept-part:first-child{animation-delay:.1s}.concept-part:nth-child(2){animation-delay:.15s}.concept-part:nth-child(3){animation-delay:.2s}.concept-part:nth-child(4){animation-delay:.25s}.concept-part:hover{box-shadow:0 6px 20px #0000001a;transform:translateX(8px)}.part-number{align-items:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:12px;box-shadow:0 4px 12px #f59e0b4d;color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;font-weight:700;height:40px;justify-content:center;width:40px}.part-content{flex:1 1}.part-content h4{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.1rem;font-weight:600;margin:0 0 8px}.part-content p{color:#6b7280;color:var(--color-textSecondary,#6b7280);font-size:.95rem;line-height:1.6;margin:0 0 12px}.part-example{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:8px;box-shadow:0 4px 12px #0003;color:#10b981;display:inline-block;font-family:Fira Code,Consolas,monospace;font-size:.9rem;padding:8px 16px}.concept-diagram{margin-top:24px}.concept-diagram img{border-radius:16px;box-shadow:0 4px 20px #0000001a;max-width:100%}.step-practice{background:linear-gradient(135deg,#fff,#ede9fe);border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-practice:before{background:linear-gradient(90deg,#8b5cf6,#a78bfa,#c4b5fd);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-practice h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 16px}.step-practice h2:before{content:"✏️";font-size:1.2em}.practice-instructions{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border-left:4px solid #8b5cf6;border-radius:16px;color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:1.1rem;line-height:1.7;margin-bottom:24px;padding:20px}.practice-hints{margin-top:24px}.hint-toggle-btn{align-items:center;background:linear-gradient(135deg,#fef9c3,#fef08a);border:2px solid #fcd34d;border-radius:12px;color:#92400e;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:10px;padding:14px 24px;transition:all .3s ease}.hint-toggle-btn:hover{box-shadow:0 4px 15px #fcd34d66;transform:translateY(-2px)}.hints-revealed{animation:slideIn .3s ease;margin-top:16px}.hint-item{align-items:flex-start;background:linear-gradient(135deg,#fffbeb,#fef3c7);border-left:3px solid #f59e0b;border-radius:12px;display:flex;gap:12px;margin-bottom:10px;padding:14px 18px}.hint-number{color:#b45309;flex-shrink:0;font-weight:700}.step-quiz{background:linear-gradient(135deg,#fff,#fce7f3);border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-quiz:before{background:linear-gradient(90deg,#ec4899,#f472b6,#f9a8d4);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-quiz h2{align-items:center;color:#1f2937;color:var(--color-text,#1f2937);display:flex;font-size:1.5rem;font-weight:700;gap:12px;margin:0 0 24px}.step-quiz h2:before{content:"❓";font-size:1.2em}.step-challenge{background:linear-gradient(135deg,#fff,#fff7ed);border:2px solid #fed7aa;border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-challenge:before{background:linear-gradient(90deg,#f97316,#fb923c,#fdba74);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-challenge .challenge-header{align-items:center;display:flex;gap:14px;margin-bottom:20px}.step-challenge .challenge-icon{animation:pulse 2s infinite;font-size:2.5rem}.step-challenge .challenge-header h2{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.5rem;font-weight:700;margin:0}.challenge-task{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-left:4px solid #f97316;border-radius:16px;margin-bottom:24px;padding:20px}.challenge-task p{color:#9a3412;font-size:1.1rem;line-height:1.7;margin:0}.challenge-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.hint-btn,.solution-btn{border:none;border-radius:12px;cursor:pointer;font-size:.95rem;font-weight:600;padding:12px 20px;transition:all .3s ease}.hint-btn{background:linear-gradient(135deg,#fef9c3,#fef08a);border:2px solid #fcd34d;color:#92400e}.hint-btn:hover{box-shadow:0 4px 15px #fcd34d66;transform:translateY(-2px)}.solution-btn{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:2px solid #93c5fd;color:#1e40af}.solution-btn:hover{box-shadow:0 4px 15px #93c5fd66;transform:translateY(-2px)}.challenge-hints{animation:slideIn .3s ease;margin-top:20px}.challenge-hints .hint-item{align-items:flex-start;background:linear-gradient(135deg,#fffbeb,#fef3c7);border-radius:12px;display:flex;gap:12px;margin-bottom:10px;padding:14px 18px}.hint-badge{background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:6px;color:#fff;flex-shrink:0;font-size:.8rem;font-weight:700;padding:4px 10px}.challenge-solution{animation:scaleIn .3s ease;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-left:4px solid #10b981;border-radius:16px;margin-top:20px;padding:20px}.challenge-solution h4{color:#065f46;font-size:1rem;font-weight:700;margin:0 0 16px}.challenge-reward{align-items:center;background:linear-gradient(135deg,#fef3c7,#fde68a);border-radius:16px;color:#92400e;display:flex;font-weight:600;gap:12px;margin-top:20px;padding:16px 20px}.reward-icon{font-size:1.5rem}.badge-unlock{background:linear-gradient(135deg,#8b5cf6,#a78bfa);border-radius:8px;color:#fff;font-size:.85rem;margin-left:auto;padding:6px 12px}.challenge-complete-prompt{animation:slideIn .3s ease;background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:2px solid #10b981;border-radius:16px;margin-top:20px;padding:24px;text-align:center}.challenge-complete-prompt p{color:#065f46;font-size:1.1rem;font-weight:600;margin:0 0 16px}.complete-btn{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;box-shadow:0 4px 15px #10b9814d;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:700;padding:14px 28px;transition:all .3s ease}.complete-btn:hover{box-shadow:0 6px 20px #10b98166;transform:translateY(-2px)}.complete-btn:active{transform:translateY(0)}.challenge-success{animation:scaleIn .4s ease;padding:40px 24px;text-align:center}.challenge-success .success-animation{animation:bounce 1s ease infinite;font-size:5rem;margin-bottom:16px}.challenge-success h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;color:#065f46;font-size:2rem;font-weight:800;margin:0 0 12px}.challenge-success p{color:#047857;font-size:1.2rem;margin:0 0 20px}.challenge-success strong{color:#059669;font-size:1.3rem}.badge-earned{align-items:center;animation:pulse 2s infinite;background:linear-gradient(135deg,#8b5cf6,#a78bfa);border-radius:12px;box-shadow:0 4px 15px #8b5cf666;color:#fff;display:inline-flex;font-size:1.1rem;font-weight:700;gap:8px;padding:12px 24px}.badge-earned span{font-size:1.5rem}.step-mini-challenge{background:linear-gradient(135deg,#fff,#fef2f2);border:2px solid #fca5a5;border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:28px 24px;position:relative}.step-mini-challenge:before{background:linear-gradient(90deg,#ef4444,#f87171,#fca5a5);content:"";height:4px;left:0;position:absolute;right:0;top:0}.step-mini-challenge .challenge-header{align-items:center;display:flex;gap:14px;margin-bottom:16px}.step-mini-challenge .challenge-icon{animation:pulse 2s infinite;font-size:2.5rem}.step-mini-challenge .challenge-header h2{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.5rem;font-weight:700;margin:0}.challenge-description{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-left:4px solid #ef4444;border-radius:16px;color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:1.1rem;padding:20px}.expected-output{background:linear-gradient(135deg,#1e293b,#0f172a);border-radius:16px;box-shadow:0 4px 15px #0003;margin-top:24px;padding:20px}.expected-output h4{color:#94a3b8;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.expected-output pre{background:#0f172a;border-radius:12px;color:#10b981;font-family:Fira Code,Consolas,monospace;font-size:.95rem;line-height:1.5;margin:0;overflow-x:auto;padding:16px}.step-summary{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-radius:24px;box-shadow:0 4px 20px #0000000f;overflow:hidden;padding:32px 24px;position:relative;text-align:center}.step-summary:before{background:linear-gradient(90deg,#10b981,#34d399,#6ee7b7);content:"";height:4px;left:0;position:absolute;right:0;top:0}.summary-header{margin-bottom:24px}.summary-icon{animation:bounce 1s ease infinite;display:block;font-size:4rem;margin-bottom:12px}.summary-header h2{color:#065f46;font-size:1.75rem;font-weight:800;margin:0}.key-points{background:#fff;border-radius:20px;box-shadow:0 4px 15px #00000014;margin-top:20px;padding:24px;text-align:left}.key-points h3{align-items:center;color:#065f46;display:flex;font-size:1.1rem;font-weight:700;gap:10px;margin:0 0 16px}.key-points h3:before{content:"📝"}.key-points ul{list-style:none;margin:0;padding:0}.key-points li{align-items:flex-start;animation:fadeIn .3s ease both;border-bottom:1px solid #d1fae5;color:#374151;color:var(--color-textSecondary,#374151);display:flex;font-size:1rem;gap:12px;line-height:1.6;padding:12px 0}.key-points li:last-child{border-bottom:none}.key-points li:first-child{animation-delay:.1s}.key-points li:nth-child(2){animation-delay:.2s}.key-points li:nth-child(3){animation-delay:.3s}.key-points li:nth-child(4){animation-delay:.4s}.check-mark{flex-shrink:0}.next-lesson-preview{background:linear-gradient(135deg,#fff,#f0fdf4);border:2px dashed #10b981;border-radius:16px;margin-top:24px;padding:20px}.next-lesson-preview h4{color:#065f46;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin:0 0 8px;text-transform:uppercase}.next-lesson-preview p{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.1rem;font-weight:600;margin:0}.step-generic{background:linear-gradient(135deg,#fff,#f8fafc);border-radius:24px;box-shadow:0 4px 20px #0000000f;padding:28px 24px}.step-generic h2{color:#1f2937;color:var(--color-text,#1f2937);font-size:1.5rem;font-weight:700;margin:0 0 16px}.step-generic p{color:#4b5563;color:var(--color-textSecondary,#4b5563);font-size:1.05rem;line-height:1.8;white-space:pre-wrap}.generic-visual{margin-top:24px;text-align:center}.generic-visual img{border-radius:16px;box-shadow:0 8px 30px #0000001f;height:auto;max-width:100%}.step-visual{margin:24px 0;text-align:center}.step-visual img{border-radius:16px;box-shadow:0 8px 30px #0000001f;height:auto;max-width:100%}.step-actions{display:flex;gap:16px;margin-top:24px}.step-button{align-items:center;border-radius:16px;cursor:pointer;display:flex;flex:1 1;font-size:1rem;font-weight:700;gap:10px;justify-content:center;padding:16px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.step-button.primary{background:linear-gradient(135deg,#3776ab,#2b5d8a);background:linear-gradient(135deg,var(--color-primary,#3776ab) 0,var(--color-primaryDark,#2b5d8a) 100%);border:none;box-shadow:0 4px 15px #3776ab4d;color:#fff}.step-button.primary:hover{box-shadow:0 6px 20px #3776ab66;transform:translateY(-2px)}.step-button.secondary{background:#0000;border:2px solid #3776ab;border:2px solid var(--color-primary,#3776ab);color:#3776ab;color:var(--color-primary,#3776ab)}.step-button.secondary:hover{background:#3776ab1a}.step-hint{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-left:4px solid #3b82f6;border-left:4px solid var(--color-info,#3b82f6);border-radius:0 16px 16px 0;margin-top:20px;padding:20px}.hint-title{align-items:center;color:#1e40af;display:flex;font-weight:700;gap:8px;margin-bottom:10px}.hint-title:before{content:"💡"}.hint-text{color:#1e3a8a;font-size:.95rem;line-height:1.6}body.dark .step-challenge,body.dark .step-concept,body.dark .step-concept-breakdown,body.dark .step-explanation,body.dark .step-generic,body.dark .step-interactive-demo,body.dark .step-mini-challenge,body.dark .step-practice,body.dark .step-quiz,body.dark .step-story,body.dark .step-summary,body.dark .step-visual-explanation{background:linear-gradient(135deg,#1e293b,#0f172a);border-color:#ffffff1a}body.dark .challenge-header h2,body.dark .step-concept h2,body.dark .step-concept-breakdown h2,body.dark .step-explanation h2,body.dark .step-generic h2,body.dark .step-interactive-demo h2,body.dark .step-practice h2,body.dark .step-quiz h2,body.dark .step-story h2,body.dark .step-title,body.dark .step-visual-explanation h2{color:#f1f5f9}body.dark .concept-intro,body.dark .demo-intro,body.dark .explanation-intro,body.dark .step-generic p,body.dark .step-text,body.dark .story-content p,body.dark .story-text{color:#cbd5e1}body.dark .comparison-item,body.dark .concept-part,body.dark .explanation-part,body.dark .key-points,body.dark .key-points-list{background:#1e293b}body.dark .key-points-list h4,body.dark .part-content h4{color:#f1f5f9}body.dark .comparison-item p,body.dark .key-point-item span:last-child,body.dark .part-content p,body.dark .part-desc{color:#94a3b8}body.dark .challenge-description,body.dark .challenge-task,body.dark .practice-instructions{background:#0000004d;color:#e2e8f0}body.dark .challenge-task p{color:#fbbf24}body.dark .demo-explanation{background:#10b9811a;border-color:#10b981}body.dark .demo-explanation p{color:#6ee7b7}body.dark .summary-header h2{color:#10b981}body.dark .key-points h3{color:#6ee7b7}body.dark .key-points li{border-color:#ffffff1a;color:#cbd5e1}body.dark .next-lesson-preview{background:#10b9811a;border-color:#10b981}body.dark .next-lesson-preview h4{color:#6ee7b7}body.dark .next-lesson-preview p{color:#f1f5f9}body.dark .hint-btn,body.dark .hint-toggle-btn{background:#fef08a33;border-color:#fcd34d;color:#fcd34d}body.dark .solution-btn{background:#93c5fd33;border-color:#93c5fd;color:#93c5fd}body.dark .hint-item{background:#fef08a1a}body.dark .challenge-solution{background:#10b9811a}body.dark .challenge-reward{background:#fef08a1a;color:#fcd34d}body.dark .challenge-complete-prompt{background:#10b9811a;border-color:#10b981}body.dark .challenge-complete-prompt p{color:#6ee7b7}body.dark .challenge-success h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#6ee7b7,#34d399);-webkit-background-clip:text;background-clip:text}body.dark .challenge-success p{color:#6ee7b7}body.dark .challenge-success strong{color:#34d399}body.dark .fun-fact{background:#fef3c71a}body.dark .fun-fact p{color:#fcd34d}@media (max-width:640px){.step-renderer{padding:16px}.step-challenge,.step-concept,.step-concept-breakdown,.step-explanation,.step-generic,.step-interactive-demo,.step-mini-challenge,.step-practice,.step-quiz,.step-story,.step-summary,.step-visual-explanation{border-radius:20px;padding:20px 16px}.comparison-grid{gap:12px;grid-template-columns:1fr}.comparison-vs{border-radius:12px;order:2;padding:10px 20px}.comparison-item.left{order:1}.comparison-item.right{order:3}.challenge-actions,.step-actions{flex-direction:column}.summary-icon{font-size:3rem}.summary-header h2{font-size:1.5rem}.explanation-part{align-items:flex-start;flex-direction:column;gap:10px}.part-arrow{align-self:center;transform:rotate(90deg)}}@media (max-width:360px){.part-number,.step-number{font-size:.9rem;height:36px;width:36px}.step-title{font-size:1.2rem}.concept-part{flex-direction:column;text-align:center}.part-number{align-self:center}.step-challenge .challenge-icon,.step-mini-challenge .challenge-icon{font-size:2rem}}.celebration-overlay{pointer-events:none}.celebration-message{animation:celebrationPop .5s ease-out;background:#fffffff2;border-radius:20px;box-shadow:0 8px 32px #0003;left:50%;padding:32px 48px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:10000}.celebration-text{color:#333;display:block;font-size:1.75rem;font-weight:700;line-height:1.4;text-shadow:none}.celebration-icon{animation:celebrationPop .5s ease-out;display:block;font-size:4rem;margin-bottom:16px}.celebration-content{background:#fffffff2;border-radius:20px;box-shadow:0 8px 32px #0003;left:50%;padding:32px 48px;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%);z-index:10000}.celebration-title{animation:fadeInUp .5s ease-out .2s both;color:#3776ab;color:var(--color-primary,#3776ab);font-size:2rem;font-weight:700;margin:16px 0 8px}.stars-container{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.floating-star{animation:floatDown 2s ease-out forwards;font-size:2rem;position:absolute;top:-50px}.fireworks-container{bottom:0;left:0;overflow:hidden;position:absolute;right:0;top:0}.firework{animation:fireworkBurst 1.5s ease-out forwards;background:gold;border-radius:50%;bottom:20%;height:10px;position:absolute;width:10px}@keyframes celebrationPop{0%{opacity:0;transform:translate(-50%,-50%) scale(0)}50%{transform:translate(-50%,-50%) scale(1.1)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes floatDown{0%{opacity:1;transform:translateY(0) rotate(0deg)}to{opacity:0;transform:translateY(100vh) rotate(2turn)}}@keyframes fireworkBurst{0%{opacity:1;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-200px) scale(2)}to{opacity:0;transform:translateY(-300px) scale(3)}}@media (prefers-color-scheme:dark){.celebration-message{background:#282828f2}.celebration-text{color:#fff}.celebration-content{background:#282828f2}}.lesson-detail-content{--ion-background-color:var(--color-background,#f8fafc)}.lesson-header{background:linear-gradient(135deg,#3776ab,#2b5d8a);background:linear-gradient(135deg,var(--color-primary,#3776ab) 0,var(--color-primaryDark,#2b5d8a) 100%);border-radius:0 0 24px 24px;box-shadow:0 4px 20px #3776ab4d;color:#fff;padding:24px 20px}.lesson-header h1{font-size:1.5rem;font-weight:700;margin:0 0 8px;text-shadow:0 2px 4px #0000001a}.lesson-header p{font-size:1rem;line-height:1.5;margin:0;opacity:.9}.lesson-progress-bar{background:#ffffff40;border-radius:4px;box-shadow:inset 0 1px 3px #0000001a;height:8px;margin-top:20px;overflow:hidden}.lesson-progress-fill{background:linear-gradient(90deg,#ffd43b,#ffec99);background:linear-gradient(90deg,var(--color-secondary,#ffd43b) 0,#ffec99 100%);box-shadow:0 0 10px #ffd43b80;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1)}.lesson-content{padding:20px 16px}.step-counter{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:16px;box-shadow:0 2px 12px #0000000f;color:#333;color:var(--color-text,#333);display:flex;font-size:.9rem;font-weight:600;gap:8px;justify-content:center;margin-bottom:20px;padding:12px 20px}.step-counter:before{content:"📖";font-size:1.2em}.step-navigation{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);box-shadow:0 4px 20px #0000000f;justify-content:space-between;margin-top:24px;padding:20px}.step-dots,.step-navigation{border-radius:20px;display:flex}.step-dots{background:#f0f0f0;background:var(--color-surface,#f0f0f0);gap:10px;padding:8px 12px}.step-dot{background:#d1d5db;border:2px solid #0000;border-radius:50%;cursor:pointer;height:12px;transition:all .3s cubic-bezier(.4,0,.2,1);width:12px}.step-dot:hover{background:#9ca3af;transform:scale(1.2)}.step-dot.active{background:#3776ab;background:var(--color-primary,#3776ab);box-shadow:0 0 0 4px #3776ab33;transform:scale(1.3)}.step-dot.completed{background:#10b981;background:var(--color-success,#10b981);border-color:#10b9814d}.step-dot.completed:before{color:#fff;content:"✓";font-size:8px;justify-content:center}.nav-button,.step-dot.completed:before{align-items:center;display:flex;font-weight:700}.nav-button{border-radius:14px;cursor:pointer;font-size:.95rem;gap:8px;padding:14px 28px;transition:all .3s cubic-bezier(.4,0,.2,1)}.nav-button.prev{background:#0000;border:2px solid #3776ab;border:2px solid var(--color-primary,#3776ab);color:#3776ab;color:var(--color-primary,#3776ab)}.nav-button.prev:hover:not(:disabled){background:#3776ab;background:var(--color-primary,#3776ab);color:#fff;transform:translateX(-4px)}.nav-button.prev:before{content:"←"}.nav-button.next{background:linear-gradient(135deg,#3776ab,#2b5d8a);background:linear-gradient(135deg,var(--color-primary,#3776ab) 0,var(--color-primaryDark,#2b5d8a) 100%);border:none;box-shadow:0 4px 15px #3776ab4d;color:#fff}.nav-button.next:hover:not(:disabled){box-shadow:0 6px 20px #3776ab66;transform:translateX(4px)}.nav-button.next:after{content:"→"}.nav-button:disabled{cursor:not-allowed;opacity:.4;transform:none!important}.complete-button{align-items:center;background:linear-gradient(135deg,#10b981,#059669);background:linear-gradient(135deg,var(--color-success,#10b981) 0,#059669 100%);border:none;border-radius:16px;box-shadow:0 4px 20px #10b9814d;color:#fff;cursor:pointer;display:flex;font-size:1.125rem;font-weight:700;gap:10px;justify-content:center;margin-top:24px;padding:18px 24px;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%}.complete-button:before{content:"🎉";font-size:1.3em}.complete-button:hover{box-shadow:0 6px 25px #10b98166;transform:translateY(-2px)}.complete-button:active{transform:translateY(0)}.lesson-navigation{align-items:center;background:linear-gradient(135deg,#fff,#f8fafc);border-radius:20px;box-shadow:0 4px 20px #0000000f;display:flex;justify-content:space-between;margin-top:24px;padding:20px}.lesson-navigation ion-button{--border-radius:14px;--padding-start:20px;--padding-end:20px;--padding-top:12px;--padding-bottom:12px;font-weight:600;text-transform:none}.celebration-overlay{align-items:center;animation:fadeIn .3s ease;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}body.dark .lesson-detail-content{--ion-background-color:var(--color-backgroundDark,#0f172a)}body.dark .lesson-navigation,body.dark .step-counter,body.dark .step-navigation{background:linear-gradient(135deg,#1e293b,#0f172a)}body.dark .step-counter{color:#e2e8f0}body.dark .step-dots{background:#1e293b}body.dark .step-dot{background:#475569}body.dark .step-dot:hover{background:#64748b}body.dark .nav-button.prev{border-color:#60a5fa;color:#60a5fa}body.dark .nav-button.prev:hover:not(:disabled){background:#60a5fa;color:#0f172a}@media (max-width:480px){.lesson-header{border-radius:0 0 20px 20px;padding:20px 16px}.lesson-header h1{font-size:1.25rem}.lesson-navigation,.step-navigation{flex-wrap:wrap;gap:12px;padding:16px}.step-dots{justify-content:center;order:-1;width:100%}.nav-button{font-size:.9rem;padding:12px 20px}.complete-button{font-size:1rem;padding:16px 20px}}@media (max-width:360px){.step-dot{height:10px;width:10px}.step-dots{gap:8px}.nav-button{font-size:.85rem;padding:10px 16px}}.challenges-page{--primary-gradient:linear-gradient(135deg,var(--ion-color-primary) 0%,var(--ion-color-primary-shade) 100%)}.challenges-content{--background:linear-gradient(180deg,#f8f9ff,#fff)}.challenges-hero{background:var(--primary-gradient);margin-bottom:20px;overflow:hidden;padding:24px 20px 32px;position:relative}.challenges-hero:before{background:#ffffff1a;border-radius:50%;content:"";height:300px;position:absolute;right:-30%;top:-50%;width:300px}.challenges-hero:after{background:#ffffff14;border-radius:50%;bottom:-40%;content:"";height:200px;left:-20%;position:absolute;width:200px}.hero-content{gap:16px;margin-bottom:20px;z-index:1}.hero-icon{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:16px;display:flex;height:60px;justify-content:center;width:60px}.hero-icon ion-icon{color:gold;font-size:32px}.hero-text h1{color:#fff;font-size:22px;font-weight:700;margin:0 0 4px}.hero-text p{color:#ffffffd9;font-size:14px;margin:0}.stats-row{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border-radius:16px;display:flex;justify-content:space-around;margin-bottom:16px;padding:16px 12px;position:relative;z-index:1}.stat-value{color:#fff;margin-bottom:4px}.stat-label{color:#fffc;font-size:12px}.stat-divider{background:#ffffff4d;height:40px;width:1px}.progress-section{position:relative;z-index:1}.progress-header{color:#fff;display:flex;font-size:13px;justify-content:space-between;margin-bottom:8px}.progress-section ion-progress-bar{--background:#fff3;border-radius:5px;height:10px}.filter-section{margin-bottom:20px;padding:0 16px}.filter-section h3{color:#666;font-size:14px;font-weight:500;margin:0 0 12px}.difficulty-filter{display:flex;flex-wrap:wrap;gap:8px}.filter-chip{align-items:center;background:#fff;border:2px solid #e0e0e0;border-radius:30px;color:#666;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:6px;padding:10px 16px;transition:all .3s ease}.filter-chip:hover{border-color:var(--ion-color-primary);color:var(--ion-color-primary)}.filter-chip.active{background:var(--ion-color-primary);border-color:var(--ion-color-primary);color:#fff}.filter-chip.easy.active{background:#4caf50;border-color:#4caf50}.filter-chip.medium.active{background:#ff9800;border-color:#ff9800}.filter-chip.hard.active{background:#f44336;border-color:#f44336}.chip-icon{font-size:16px}.challenges-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr;padding:0 16px 24px}@media (min-width:600px){.challenges-grid{grid-template-columns:repeat(2,1fr)}}.challenge-card{background:#fff;border-radius:20px;box-shadow:0 4px 20px #00000014;cursor:pointer;overflow:hidden;position:relative;transition:all .3s ease}.challenge-card:hover{box-shadow:0 8px 30px #0000001f;transform:translateY(-4px)}.challenge-card:active{transform:scale(.98)}.card-header{height:60px;justify-content:space-between;padding:0 16px;position:relative}.card-number{color:#fffc;font-size:14px;font-weight:700}.card-status{align-items:center;background:#fff3;border-radius:50%;display:flex;height:36px;justify-content:center;width:36px}.completed-icon{color:#fff;font-size:24px}.difficulty-emoji{font-size:20px}.card-body{padding:16px}.card-category{align-items:center;display:flex;gap:6px;margin-bottom:8px}.category-icon{font-size:14px}.category-label{color:#888;font-size:12px;letter-spacing:.5px;text-transform:uppercase}.card-title{color:#333;font-size:17px;line-height:1.3;margin:0 0 8px}.card-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:#666;display:-webkit-box;font-size:13px;line-height:1.5;margin:0 0 16px;overflow:hidden}.card-footer{align-items:center;border-top:1px solid #f0f0f0;display:flex;justify-content:space-between;padding-top:12px}.card-meta{display:flex;gap:8px}.difficulty-badge{border-radius:20px;font-size:11px;font-weight:600;padding:4px 10px;text-transform:uppercase}.difficulty-badge.easy{background:#e8f5e9;color:#4caf50}.difficulty-badge.medium{background:#fff3e0;color:#ff9800}.difficulty-badge.hard{background:#ffebee;color:#f44336}.points-badge{align-items:center;color:gold;display:flex;font-size:12px;font-weight:600;gap:4px}.points-badge ion-icon{font-size:14px}.card-action .action-text{color:var(--ion-color-primary);font-size:13px;font-weight:600}.card-action .action-text.completed{color:#4caf50}.completed-ribbon{background:#4caf50;color:#fff;font-size:10px;font-weight:600;padding:4px 40px;position:absolute;right:-32px;text-transform:uppercase;top:12px;transform:rotate(45deg)}.challenge-card.completed{border:2px solid #4caf50}.challenge-card.completed:after{background:#4caf5008;content:"";inset:0;pointer-events:none;position:absolute}.empty-state{padding:60px 20px}.empty-icon{font-size:64px}.empty-state h3{color:#333;font-size:20px}.empty-state p{color:#666;font-size:14px;margin:0 0 20px}.reset-filter-btn{background:var(--ion-color-primary);border:none;border-radius:25px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:transform .2s}.reset-filter-btn:active{transform:scale(.95)}.motivational-footer{align-items:center;color:gold;display:flex;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:24px}.motivational-footer ion-icon{font-size:18px}.all-complete-footer{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:20px;margin:0 16px 24px;padding:40px 20px;text-align:center}.celebration-icon{font-size:48px;margin-bottom:12px}.all-complete-footer h3{color:#2e7d32;font-size:22px;margin:0 0 8px}.all-complete-footer p{color:#4caf50;font-size:14px;margin:0}body.dark .challenges-content{--background:linear-gradient(180deg,#1a1a2e,#16213e)}body.dark .challenges-hero{background:linear-gradient(135deg,#1a1a2e,#232342)}body.dark .stats-row{background:#ffffff14}body.dark .challenge-card{background:#232342;box-shadow:0 4px 20px #0000004d}body.dark .challenge-card:hover{box-shadow:0 8px 30px #0006}body.dark .card-title{color:#fff}body.dark .card-description{color:#aaa}body.dark .card-footer{border-top-color:#ffffff1a}body.dark .category-label{color:#999}body.dark .filter-chip{background:#232342;border-color:#444;color:#ccc}body.dark .filter-chip:hover{border-color:var(--ion-color-primary);color:var(--ion-color-primary)}body.dark .filter-chip.active{background:var(--ion-color-primary);border-color:var(--ion-color-primary);color:#fff}body.dark .filter-section h3{color:#aaa}body.dark .difficulty-badge.easy{background:#4caf5033;color:#81c784}body.dark .difficulty-badge.medium{background:#ff980033;color:#ffb74d}body.dark .difficulty-badge.hard{background:#f4433633;color:#ef9a9a}body.dark .empty-state{background:#232342}body.dark .empty-state h3{color:#fff}body.dark .empty-state p{color:#aaa}body.dark .reset-filter-btn{background:var(--ion-color-primary)}body.dark .all-complete-footer{background:linear-gradient(135deg,#1b5e20,#2e7d32)}body.dark .all-complete-footer h3{color:#fff}body.dark .all-complete-footer p{color:#c8e6c9}body.dark .motivational-footer{color:gold}body.dark .card-action .action-text{color:#64b5f6}body.dark .card-action .action-text.completed{color:#81c784}.challenge-detail-container{padding:16px 16px 100px}.challenge-header{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:20px}.challenge-meta{display:flex;flex-wrap:wrap;gap:8px}.challenge-meta ion-chip{--background:#0000;--color:var(--ion-color-medium);border:1px solid var(--ion-color-medium);font-size:12px;font-weight:500}.challenge-meta ion-chip ion-icon{font-size:14px;margin-right:4px}.completed-badge{align-items:center;animation:pulseGlow 2s infinite;border-radius:20px;display:flex;font-weight:600;gap:4px;padding:8px 16px}.completed-badge ion-icon{font-size:16px}@keyframes pulseGlow{0%,to{box-shadow:0 0 10px #4caf5066}50%{box-shadow:0 0 20px #4caf5099}}ion-segment{background:#f5f5f5;border-radius:12px;margin-bottom:20px;padding:4px}ion-segment-button{--indicator-color:#fff;--border-radius:8px;--padding-start:10px;--padding-end:10px;font-size:13px;font-weight:500;min-height:40px;text-transform:none}ion-segment-button::part(indicator-background){box-shadow:0 2px 8px #0000001a}.tab-content{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f;margin-bottom:20px;padding:20px}.description-tab h2{color:var(--ion-color-dark);font-size:22px;font-weight:700;margin:0 0 12px}.challenge-description{color:#555;font-size:15px;line-height:1.7;margin-bottom:24px}.examples-section{margin-bottom:24px}.examples-section h3{align-items:center;color:var(--ion-color-dark);display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 12px}.examples-section h3:before{content:"📝";font-size:18px}.example-box{background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border-left:4px solid var(--ion-color-primary);border-radius:12px;padding:16px}.example-box,.example-input,.example-output{margin-bottom:12px}.example-input strong,.example-output strong{color:#888;display:block;font-size:12px;letter-spacing:.5px;margin-bottom:6px;text-transform:uppercase}.example-box pre{background:#fff;border:1px solid #e0e0e0;border-radius:8px;color:#333;font-family:Fira Code,Courier New,monospace;font-size:14px;margin:0;overflow-x:auto;padding:12px}.example-explanation{border-top:1px dashed #ddd;color:#666;font-size:13px;font-style:italic;margin-top:8px;padding-top:8px}.constraints-section h3{align-items:center;color:var(--ion-color-dark);display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 12px}.constraints-section h3:before{content:"⚠️";font-size:18px}.constraints-section ul{margin:0;padding-left:20px}.constraints-section li{color:#555;font-size:14px;line-height:1.5;margin-bottom:8px}.hints-tab{text-align:center}.hint-card{background:linear-gradient(135deg,#fff8e1,#ffecb3);border:none;border-radius:12px;box-shadow:0 2px 8px #ff980026;margin:16px 0}.hint-header{align-items:center;color:#e65100;display:flex;font-weight:600;gap:8px;margin-bottom:8px}.hint-header ion-icon{font-size:20px}.hint-card p{color:#5d4037;font-size:14px;line-height:1.6;margin:0;text-align:left}.all-hints-used{color:#888;font-size:14px;margin-top:16px}.tests-tab{min-height:200px}.no-tests{padding:40px 20px;text-align:center}.test-result{--padding-start:12px;--padding-end:12px;--inner-padding-end:0;border-radius:12px;margin-bottom:8px;overflow:hidden}.test-result.passed{--background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border:1px solid #a5d6a7}.test-result.failed{--background:linear-gradient(135deg,#ffebee,#ffcdd2);border:1px solid #ef9a9a}.test-result ion-label h3{font-size:14px;font-weight:600;margin-bottom:4px}.test-result ion-label p{font-family:Fira Code,monospace;font-size:12px;margin:2px 0}.test-result ion-label p strong{color:#666}.test-error{color:#d32f2f!important;font-weight:500}.test-summary{border-top:1px solid #eee;margin-top:20px;padding-top:16px;text-align:center}.test-summary ion-chip{font-size:14px;font-weight:600}.editor-section{margin-bottom:20px}.editor-section h3{align-items:center;color:var(--ion-color-dark);display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 12px}.editor-section h3:before{content:"💻";font-size:18px}.action-buttons{margin-bottom:20px}.action-buttons ion-button{--border-radius:14px;--padding-top:14px;--padding-bottom:14px;font-size:15px;font-weight:600;margin-bottom:12px;text-transform:none}.action-buttons ion-button ion-icon{font-size:20px;margin-right:8px}.action-buttons ion-button[color=primary]{--background:linear-gradient(135deg,var(--ion-color-primary) 0%,var(--ion-color-primary-shade) 100%);--box-shadow:0 4px 15px rgba(var(--ion-color-primary-rgb),0.4)}.action-buttons ion-button[color=success]{--background:linear-gradient(135deg,#4caf50,#388e3c);--box-shadow:0 4px 15px #4caf5066}.challenge-stats{background:#f8f9ff;border-radius:12px;display:flex;gap:24px;justify-content:center;margin-bottom:20px;padding:16px}.challenge-stats span{color:#666;font-size:13px;font-weight:500}.loading-container{color:#888;font-size:16px;min-height:300px}@media (prefers-color-scheme:dark){.tab-content{background:#1e1e2f;box-shadow:0 2px 12px #0003}ion-segment{background:#2a2a3e}ion-segment-button{--indicator-color:#3a3a4e;color:#ccc}.description-tab h2,ion-segment-button.segment-button-checked{color:#fff}.challenge-description{color:#aaa}.example-box{background:linear-gradient(135deg,#2a2a3e,#252538);border-left-color:var(--ion-color-primary)}.example-box pre{background:#1e1e2f;border-color:#333;color:#ddd}.example-input strong,.example-output strong{color:#888}.example-explanation{border-top-color:#444;color:#888}.constraints-section li{color:#aaa}.hint-card{background:linear-gradient(135deg,#3a3520,#302a10)}.hint-card p{color:#ddd}.hint-header{color:#ffa726}.test-result.passed{--background:linear-gradient(135deg,#1b3d1f,#2e4f32);border-color:#4caf50}.test-result.failed{--background:linear-gradient(135deg,#3d1b1b,#4f2e2e);border-color:#ef5350}.test-result ion-label h3{color:#fff}.test-result ion-label p{color:#ccc}.test-result ion-label p strong{color:#aaa}.challenge-stats{background:#2a2a3e}.challenge-stats span{color:#aaa}.constraints-section h3,.editor-section h3,.examples-section h3{color:#fff}}.hint-card,.tab-content,.test-result{animation:fadeInUp .3s ease-out}.playground-page{--ion-background-color:var(--color-background,#f8f9fa)}.playground-title{align-items:center;display:flex;font-weight:600;gap:8px}.playground-title ion-icon{font-size:1.25rem}.playground-content{--padding-top:0;--padding-bottom:24px}.playground-container{margin:0 auto;max-width:800px;padding:16px 16px 24px}.controls-card{border-radius:12px;box-shadow:0 2px 8px #00000014;margin:0 0 16px}.controls-card .controls-content{padding:12px 16px}.controls-row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.template-selector{align-items:center;background:#f5f5f5;background:var(--color-surface,#f5f5f5);border:1px solid #e0e0e0;border-radius:8px;display:flex;flex:1 1;min-width:180px;padding:4px 12px;transition:border-color .2s,box-shadow .2s}.template-selector:focus-within{border-color:#3776ab;border-color:var(--color-primary,#3776ab);box-shadow:0 0 0 3px #3776ab26}.control-icon{color:#666;color:var(--color-textSecondary,#666);flex-shrink:0;font-size:1.25rem;margin-right:8px}.template-select{--padding-start:0;--padding-end:0;flex:1 1;font-size:.9375rem}.template-select::part(text){font-weight:500}.template-select::part(icon){color:#3776ab;color:var(--color-primary,#3776ab)}.clear-btn{--border-radius:8px;--padding-start:16px;--padding-end:16px;font-weight:600;letter-spacing:0;min-height:42px;text-transform:none}.clear-btn ion-icon{font-size:1.1rem}.editor-section{border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:16px;overflow:hidden}.input-card{border-radius:12px;box-shadow:0 2px 8px #00000014;margin:0 0 16px}.input-header{margin-bottom:10px}.input-label{font-size:.9375rem;font-weight:600}.input-label,.input-textarea{color:#333;color:var(--color-text,#333)}.input-textarea{background:#f8f9fa;background:var(--color-surface,#f8f9fa);border:1px solid #e0e0e0;border-radius:8px;font-family:Fira Code,Courier New,monospace;font-size:.875rem;line-height:1.5;min-height:80px;padding:12px;resize:vertical;transition:border-color .2s,box-shadow .2s;width:100%}.input-textarea:focus{border-color:#3776ab;border-color:var(--color-primary,#3776ab);box-shadow:0 0 0 3px #3776ab26;outline:none}.input-textarea::placeholder{color:#999;color:var(--color-textSecondary,#999)}.tips-card{background:linear-gradient(135deg,#fff9e6,#fff5d6);border:1px solid #ffe082;border-radius:12px;box-shadow:none;margin:16px 0 0}.tips-header{align-items:center;display:flex;gap:8px;margin-bottom:12px}.tips-icon{color:#f9a825;font-size:1.5rem}.tips-title{color:#f57f17;font-size:1rem;font-weight:700}.tips-list{list-style:none;margin:0;padding:0 0 0 8px}.tips-list li{color:#5d4037;font-size:.875rem;line-height:1.5;padding:6px 0 6px 16px;position:relative}.tips-list li:before{color:#f9a825;content:"•";font-weight:700;left:0;position:absolute}.tips-list kbd{background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 1px 2px #0000001a;color:#333;display:inline-block;font-family:inherit;font-size:.75rem;font-weight:600;padding:2px 6px}body.dark .playground-page{--ion-background-color:var(--color-backgroundDark,#1a1a1a)}body.dark .controls-card,body.dark .input-card{--background:var(--color-surfaceDark,#2a2a2a);--ion-background-color:var(--color-surfaceDark,#2a2a2a)}body.dark .template-selector{background:#1a1a1a;background:var(--color-backgroundDark,#1a1a1a);border-color:#444}body.dark .control-icon{color:#aaa;color:var(--color-textSecondaryDark,#aaa)}body.dark .input-label,body.dark .input-textarea{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .input-textarea{background:#1a1a1a;background:var(--color-backgroundDark,#1a1a1a);border-color:#444}body.dark .input-textarea::placeholder{color:#666}body.dark .tips-card{background:linear-gradient(135deg,#3d3a2e,#2e2b20);border-color:#5d5a3d}body.dark .tips-icon,body.dark .tips-title{color:#ffc107}body.dark .tips-list li{color:#e0e0e0}body.dark .tips-list li:before{color:#ffc107}body.dark .tips-list kbd{background:#333;border-color:#555;color:#e0e0e0}@media (max-width:480px){.controls-row{align-items:stretch;flex-direction:column}.template-selector{min-width:100%}.clear-btn{margin:0;width:100%}.language-badge-large{font-size:1.5rem}.playground-container{padding:0 12px 20px}.language-banner{margin:0 -12px 12px;padding:16px}}@media (min-width:768px){.playground-container{padding:0 24px 32px}.language-banner{margin:0 -24px 20px;padding:24px}.language-badge-large{font-size:2rem}}.controls-card{animation:slideIn .3s ease-out}.editor-section{animation:slideIn .3s ease-out .1s both}.input-card{animation:slideIn .3s ease-out .2s both}.tips-card{animation:slideIn .3s ease-out .3s both}@keyframes slideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.achievements-page{--ion-background-color:var(--color-background,#f8f9fa)}.achievements-content{--background:#0000}.achievements-hero{background:linear-gradient(135deg,#667eea,#764ba2 50%,#f093fb);border-radius:0 0 32px 32px;overflow:hidden;padding:32px 20px 80px;position:relative;text-align:center}.hero-background{bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.sparkle{animation:sparkle-float 3s ease-in-out infinite;font-size:24px;opacity:.7;position:absolute}.sparkle-1{animation-delay:0s;left:10%;top:15%}.sparkle-2{animation-delay:.5s;right:15%;top:25%}.sparkle-3{animation-delay:1s;left:20%;top:60%}.sparkle-4{animation-delay:1.5s;right:10%;top:40%}@keyframes sparkle-float{0%,to{opacity:.7;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-10px) scale(1.2)}}.hero-content{align-items:center;display:flex;flex-direction:column;position:relative;text-align:center;z-index:2}.trophy-container{height:100px;margin:0 auto 16px;position:relative;width:100px}.trophy-icon{animation:trophy-bounce 2s ease-in-out infinite;font-size:56px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:3}@keyframes trophy-bounce{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-55%) scale(1.05)}}.trophy-glow{animation:trophy-glow-pulse 2s ease-in-out infinite;background:radial-gradient(circle,#ffd70099 0,#0000 70%);border-radius:50%;height:80px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:80px}@keyframes trophy-glow-pulse{0%,to{opacity:.6;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.3)}}.trophy-ring{animation:ring-rotate 8s linear infinite;border:3px solid #ffffff4d;border-radius:50%;height:90px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:90px}@keyframes ring-rotate{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.hero-title{color:#fff;font-size:1.75rem;font-weight:700;margin:0 0 8px;text-shadow:0 2px 10px #0003}.hero-subtitle{color:#ffffffe6;font-size:1rem;margin:0}.progress-circle-container{height:120px;margin:24px auto 0;position:relative;width:120px}.progress-circle{height:100%;transform:rotate(-90deg);width:100%}.progress-bg{stroke:#fff3}.progress-fill{stroke:#fff;filter:drop-shadow(0 0 8px rgba(255,255,255,.5));transition:stroke-dasharray 1s ease-out}.progress-text{color:#fff;left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.progress-percent{display:block;font-size:1.75rem;font-weight:700;line-height:1}.progress-label{display:block;font-size:.75rem;margin-top:4px;opacity:.9}.stats-container{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin-top:-50px;padding:0 16px;position:relative;z-index:10}.stat-card{align-items:center;animation:stat-fade-in .5s ease-out backwards;border-radius:16px;box-shadow:0 4px 20px #00000014;display:flex;gap:12px;padding:16px}.stat-card:first-child{animation-delay:.1s}.stat-card:nth-child(2){animation-delay:.2s}.stat-card:nth-child(3){animation-delay:.3s}.stat-card:nth-child(4){animation-delay:.4s}@keyframes stat-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stat-icon{align-items:center;border-radius:12px;display:flex;font-size:1.5rem;height:44px;justify-content:center;width:44px}.stat-icon.unlocked{background:linear-gradient(135deg,#4caf50,#8bc34a);color:#fff}.stat-icon.total{background:linear-gradient(135deg,#2196f3,#03a9f4);color:#fff}.stat-icon.points{background:linear-gradient(135deg,#ff9800,#ffc107);color:#fff}.level-card{background:linear-gradient(135deg,#667eea,#764ba2)}.level-card .stat-info{display:flex;flex-direction:column;justify-content:center}.level-card .stat-info .stat-label,.level-card .stat-info .stat-value{overflow:visible;white-space:nowrap}.level-icon{align-items:center;display:flex;flex-shrink:0;font-size:2rem;justify-content:center}.stat-info{flex:1 1}.stat-value{color:#333;color:var(--color-text,#333);display:block;font-size:1.25rem;line-height:1.2}.stat-label{color:var(--color-textSecondary,#666);display:block;font-size:.75rem;letter-spacing:.5px}.badges-container{padding:24px 16px}.rarity-section{animation:section-fade-in .6s ease-out backwards;background:#fff;border-radius:20px;box-shadow:0 4px 20px #0000000f;margin-bottom:20px;overflow:hidden}.rarity-section.legendary{animation-delay:.1s}.rarity-section.epic{animation-delay:.2s}.rarity-section.rare{animation-delay:.3s}.rarity-section.common{animation-delay:.4s}@keyframes section-fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.rarity-header{align-items:center;background:#0000;border:none;cursor:pointer;display:flex;justify-content:space-between;padding:16px 20px;transition:background .2s;width:100%}.rarity-header:hover{background:#00000005}.rarity-title{align-items:center;display:flex;gap:10px}.rarity-icon{font-size:1.25rem}.rarity-name{color:#333;color:var(--rarity-color,#333);font-size:1.1rem;font-weight:600}.rarity-count{background:#f5f5f5;background:var(--color-surface,#f5f5f5);border-radius:20px;font-size:.875rem;padding:4px 10px}.expand-icon,.rarity-count{color:#666;color:var(--color-textSecondary,#666)}.expand-icon{font-size:1.25rem;transform:rotate(0deg)}.expand-icon.expanded{transform:rotate(180deg)}.badges-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr);padding:0 16px 20px}.badge-card{animation:badge-pop-in .4s ease-out backwards;animation-delay:0s;animation-delay:var(--animation-delay,0s);cursor:pointer;position:relative}@keyframes badge-pop-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.badge-card-inner{background:#f8f9fa;background:var(--color-surface,#f8f9fa);border:2px solid #0000;border-radius:16px;padding:16px 12px;text-align:center;transition:all .3s ease}.badge-card.unlocked .badge-card-inner{background:#fff;border-color:var(--rarity-gradient);box-shadow:0 4px 16px var(--rarity-glow)}.badge-card.unlocked.legendary .badge-card-inner{background:linear-gradient(180deg,#ffd7001a,#fff);border-color:gold}.badge-card.unlocked.epic .badge-card-inner{background:linear-gradient(180deg,#9c27b01a,#fff);border-color:#9c27b0}.badge-card.unlocked.rare .badge-card-inner{background:linear-gradient(180deg,#2196f31a,#fff);border-color:#2196f3}.badge-card:active .badge-card-inner{transform:scale(.95)}.badge-card.locked .badge-card-inner{opacity:.6}.badge-image-wrapper{height:64px;margin:0 auto 10px;position:relative;width:64px}.badge-image{height:100%;object-fit:contain;transition:transform .3s;width:100%}.badge-card.unlocked:hover .badge-image{transform:scale(1.1)}.badge-card.locked .badge-image{filter:grayscale(100%);opacity:.4}.badge-glow{animation:badge-glow-pulse 2s ease-in-out infinite;background:radial-gradient(circle,var(--rarity-glow) 0,#0000 70%);border-radius:50%;height:70px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:70px;z-index:-1}@keyframes badge-glow-pulse{0%,to{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}}.badge-shine{animation:badge-shine 3s ease-in-out infinite;background:linear-gradient(90deg,#0000,#fff6,#0000);height:100%;left:-100%;position:absolute;top:0;width:50%}@keyframes badge-shine{0%,to{left:-100%}50%{left:150%}}.badge-lock-overlay{align-items:center;background:#0009;border-radius:50%;color:#fff;display:flex;font-size:1rem;height:32px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:32px;z-index:5}.badge-emoji-fallback,.modal-emoji-fallback{align-items:center;background:linear-gradient(145deg,#f5f5f5,#e0e0e0);border-radius:12px;display:flex;font-size:2.5rem;height:100%;justify-content:center;width:100%}.modal-emoji-fallback{font-size:4rem;position:relative;z-index:2}.badge-info{text-align:center}.badge-name{color:var(--color-text,#333);font-size:.75rem;line-height:1.3;margin-bottom:4px}.badge-card.locked .badge-name{color:#999;color:var(--color-textSecondary,#999)}.badge-points{background:#ff98001a;border-radius:10px;color:#ff9800;display:inline-block;font-size:.625rem;font-weight:600;padding:2px 8px}.empty-achievements{padding:60px 20px;text-align:center}.empty-icon{animation:bounce 2s ease-in-out infinite;font-size:4rem;margin-bottom:16px}.empty-achievements h3{color:#333;color:var(--color-text,#333);font-size:1.25rem;margin:0 0 8px}.empty-achievements p{color:#666;color:var(--color-textSecondary,#666);margin:0}.badge-modal{--border-radius:24px;--box-shadow:0 20px 60px #0000004d}.badge-modal::part(content){border-radius:24px;max-height:85vh}.badge-modal-content{align-items:center;background:linear-gradient(180deg,#f8f9fa,#fff);display:flex;flex-direction:column;min-height:400px;padding:24px;text-align:center}.modal-close{background:none;border:none;color:#999;color:var(--color-textSecondary,#999);cursor:pointer;font-size:2rem;position:absolute;right:16px;top:16px;transition:color .2s;z-index:10}.modal-close:hover{color:#333;color:var(--color-text,#333)}.modal-badge-display{height:140px;margin:20px auto 24px;position:relative;width:140px}.modal-badge-glow{animation:modal-glow-pulse 2s ease-in-out infinite;background:radial-gradient(circle,var(--rarity-glow) 0,#0000 70%);border-radius:50%;height:160px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:160px}@keyframes modal-glow-pulse{0%,to{opacity:.3;transform:translate(-50%,-50%) scale(1)}50%{opacity:.8;transform:translate(-50%,-50%) scale(1.1)}}.modal-badge-display.locked .modal-badge-glow{display:none}.modal-badge-image{animation:badge-float 3s ease-in-out infinite;height:100%;object-fit:contain;position:relative;width:100%;z-index:2}@keyframes badge-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.modal-badge-display.locked .modal-badge-image{animation:none;filter:grayscale(100%);opacity:.4}.modal-lock-overlay{align-items:center;background:#000000b3;border-radius:50%;color:#fff;display:flex;font-size:1.5rem;height:56px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:56px;z-index:3}.modal-badge-info{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:12px}.rarity-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:.875rem;font-weight:600;gap:6px;padding:6px 14px}.rarity-badge.legendary{background:linear-gradient(135deg,#ffd70033,#ff8c0033);color:#ff8c00}.rarity-badge.epic{background:linear-gradient(135deg,#9c27b033,#673ab733);color:#7b1fa2}.rarity-badge.rare{background:linear-gradient(135deg,#2196f333,#03a9f433);color:#1565c0}.rarity-badge.common{background:#78909c33;color:#546e7a}.modal-badge-name{color:#333;color:var(--color-text,#333);font-size:1.5rem;font-weight:700;margin:0}.modal-badge-description{color:#666;color:var(--color-textSecondary,#666);font-size:1rem;line-height:1.5;margin:0;max-width:280px}.modal-badge-points{align-items:center;color:#ff9800;display:flex;font-size:1.1rem;font-weight:600;gap:6px}.modal-badge-points ion-icon{font-size:1.25rem}.modal-status{align-items:center;border-radius:30px;display:flex;font-size:1rem;font-weight:600;gap:8px;margin-top:8px;padding:12px 24px}.modal-status.unlocked{background:linear-gradient(135deg,#4caf50,#8bc34a);color:#fff}.modal-status.locked{background:#f0f0f0;background:var(--color-surface,#f0f0f0);color:#666;color:var(--color-textSecondary,#666)}.modal-status ion-icon{font-size:1.25rem}.share-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:30px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:8px;margin-top:16px;padding:14px 28px;transition:transform .2s,box-shadow .2s}.share-button:hover{box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.share-button:active{transform:translateY(0)}.share-button ion-icon{font-size:1.25rem}body.dark .achievements-page{--ion-background-color:var(--color-backgroundDark,#121212)}body.dark .stat-card{background:#1e1e1e;background:var(--color-surfaceDark,#1e1e1e)}body.dark .stat-value{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .stat-label{color:#888;color:var(--color-textSecondaryDark,#888)}body.dark .rarity-section{background:#1e1e1e;background:var(--color-surfaceDark,#1e1e1e)}body.dark .rarity-name{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .rarity-count{background:#ffffff1a;color:#888;color:var(--color-textSecondaryDark,#888)}body.dark .badge-card-inner{background:#ffffff0d}body.dark .badge-card.unlocked .badge-card-inner{background:#ffffff14}body.dark .badge-name{color:var(--color-textDark,#e0e0e0)}body.dark .badge-card.locked .badge-name{color:#666;color:var(--color-textSecondaryDark,#666)}body.dark .empty-achievements h3{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .empty-achievements p{color:#888;color:var(--color-textSecondaryDark,#888)}body.dark .badge-modal-content{background:linear-gradient(180deg,#1e1e1e,#121212)}body.dark .modal-close{color:#666;color:var(--color-textSecondaryDark,#666)}body.dark .modal-badge-name,body.dark .modal-close:hover{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .modal-badge-description,body.dark .modal-status.locked{color:#888;color:var(--color-textSecondaryDark,#888)}body.dark .modal-status.locked{background:#ffffff1a}@media (min-width:480px){.badges-grid,.stats-container{grid-template-columns:repeat(4,1fr)}}@media (min-width:768px){.achievements-hero{padding:48px 24px 100px}.hero-title{font-size:2.25rem}.badges-grid{gap:16px;grid-template-columns:repeat(5,1fr)}.badge-image-wrapper{height:80px;width:80px}}.interview-content{--background:var(--ion-background-color)}.interview-container{margin:0 auto;max-width:800px;padding:16px}.interview-loading{align-items:center;color:var(--ion-color-medium);display:flex;flex-direction:column;justify-content:center;min-height:300px;text-align:center}.loading-spinner{border:3px solid var(--ion-color-light);border-top-color:var(--ion-color-primary);margin-bottom:16px}.interview-container .stats-section{grid-gap:8px;display:grid!important;gap:8px;grid-template-columns:repeat(4,1fr)!important;margin-bottom:16px}.interview-container .stat-card,.interview-container .stats-section>ion-card{--background:var(--ion-color-light);border-radius:12px;box-sizing:border-box;display:block;margin:0!important;min-width:0;width:100%!important}.interview-container .stat-card ion-card-content{padding:12px 8px;text-align:center}.interview-container .stat-card .stat-icon{font-size:1.5rem;margin-bottom:4px}.interview-container .stat-card .stat-value{color:var(--ion-text-color);font-size:1.25rem;font-weight:700;line-height:1.2}.interview-container .stat-card .stat-label{color:var(--ion-color-medium);font-size:.65rem;letter-spacing:.5px;text-transform:uppercase}.interview-container .stat-card.learned .stat-value{color:var(--ion-color-success)}.interview-container .stat-card.saved .stat-value{color:var(--ion-color-warning)}.interview-container .stat-card.saved .stat-icon ion-icon{color:var(--ion-color-warning);font-size:1.5rem}.interview-container .stat-card.progress .stat-value{color:var(--ion-color-primary)}.segment-section{margin-bottom:12px}.custom-segment{background:var(--ion-color-light);border-radius:12px;display:flex;gap:0;overflow:hidden;padding:4px}.segment-btn{-webkit-tap-highlight-color:transparent;align-items:center;background:#0000;border:none;border-radius:10px;color:var(--ion-color-medium);cursor:pointer;display:flex;flex:1 1;font-family:inherit;font-size:.85rem;font-weight:600;gap:6px;justify-content:center;outline:none;padding:12px 16px;transition:all .25s ease}.segment-btn:hover:not(.active){background:rgba(var(--ion-color-primary-rgb),.1);color:var(--ion-color-primary)}.segment-btn.active{background:var(--ion-color-primary);box-shadow:0 2px 8px rgba(var(--ion-color-primary-rgb),.3);color:#fff;font-weight:700}.segment-btn .segment-icon{font-size:18px}body.dark .custom-segment{background:var(--ion-color-dark-shade)}body.dark .segment-btn{color:var(--ion-color-medium)}body.dark .segment-btn:hover:not(.active){background:rgba(var(--ion-color-primary-rgb),.2);color:var(--ion-color-primary-tint)}body.dark .segment-btn.active{background:var(--ion-color-primary);color:#fff}.search-section{margin-bottom:12px}.search-section ion-searchbar{--background:var(--ion-color-light);--border-radius:12px;--box-shadow:none;--placeholder-opacity:0.6;padding:0}body.dark .search-section ion-searchbar{--background:var(--ion-color-dark-shade);--color:var(--ion-color-light);--placeholder-color:var(--ion-color-medium)}.filter-section{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.filter-section ion-chip{--background:var(--ion-color-light);border:2px solid #0000;cursor:pointer;font-weight:500;margin:0;transition:all .2s ease}body.dark .filter-section ion-chip{--background:var(--ion-color-dark-shade);--color:var(--ion-color-light)}body.dark .filter-section ion-chip.chip-selected{--color:#fff}.filter-section ion-chip:not(.chip-selected){opacity:.7}.filter-section ion-chip.chip-selected{border:2px solid;box-shadow:0 3px 12px #0003;font-weight:700;transform:scale(1.08)}.filter-section ion-chip.chip-selected.chip-all{--background:var(--ion-color-primary);--color:#fff;border-color:var(--ion-color-primary-shade)}.filter-section ion-chip.chip-selected.chip-easy{--background:var(--ion-color-success);--color:#fff;border-color:var(--ion-color-success-shade)}.filter-section ion-chip.chip-selected.chip-medium{--background:var(--ion-color-warning);--color:#fff;border-color:var(--ion-color-warning-shade)}.filter-section ion-chip.chip-selected.chip-hard{--background:var(--ion-color-danger);--color:#fff;border-color:var(--ion-color-danger-shade)}.results-info{font-size:.85rem;margin-bottom:8px;padding:8px 0}.empty-state,.results-info{color:var(--ion-color-medium)}.empty-state{padding:60px 24px}.empty-state .empty-icon{font-size:64px;margin-bottom:16px}.empty-state .empty-icon ion-icon{color:var(--ion-color-medium);font-size:64px}.empty-state h3{color:var(--ion-text-color);font-size:1.2rem;margin:0 0 8px}.empty-state p{font-size:.95rem;margin:0}.questions-list{display:flex;flex-direction:column;gap:12px}.question-card{border:2px solid #0000;border-radius:16px;margin:0;overflow:hidden;transition:all .3s ease}.question-card.expanded{border-color:var(--ion-color-primary-tint)}.question-card.learned{border-left:4px solid var(--ion-color-success)}.question-header{align-items:flex-start;cursor:pointer;display:flex;gap:12px;padding:16px}.question-number-badge{align-items:center;background:var(--ion-color-primary);border-radius:10px;color:#fff;display:flex;font-size:.9rem;font-weight:700;height:36px;justify-content:center;min-width:36px;width:36px}.question-card.learned .question-number-badge{background:var(--ion-color-success)}.question-number-badge ion-icon{font-size:20px}.question-main{flex:1 1;min-width:0}.question-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.question-meta ion-badge{border-radius:8px;font-size:.7rem;padding:4px 8px;text-transform:capitalize}.saved-icon-badge{align-items:center;display:flex;justify-content:center;padding:4px 6px}.saved-icon-badge ion-icon{font-size:12px}.learned-icon-badge{align-items:center;display:flex;justify-content:center;padding:4px 6px}.learned-icon-badge ion-icon{font-size:12px}.question-text{color:var(--ion-text-color);font-size:.95rem;font-weight:500;line-height:1.4;margin:0}.question-actions{align-items:center;display:flex;gap:4px}.question-actions ion-button{--padding-start:8px;--padding-end:8px;margin:0}.expand-icon{color:var(--ion-color-medium);font-size:20px;transition:transform .3s ease}.question-card.expanded .expand-icon{transform:rotate(180deg)}.answer-section{animation:fadeIn .3s ease;background:var(--ion-color-light);border-top:1px solid var(--ion-color-light-shade);padding:16px}.answer-block{margin-bottom:16px}.answer-block h4{color:var(--ion-color-primary);font-size:.9rem;font-weight:600;margin:0 0 12px}.answer-text{background:#fff;background:var(--ion-card-background,#fff);border-left:4px solid var(--ion-color-primary);border-radius:12px;color:var(--ion-text-color);font-size:.95rem;line-height:1.7;margin:0;padding:16px}.markdown-content p{line-height:1.7;margin:0 0 12px}.markdown-content p:last-child{margin-bottom:0}.markdown-content strong{color:var(--ion-color-primary);font-weight:600}.markdown-content code{background:rgba(var(--ion-color-primary-rgb),.1);border-radius:4px;color:var(--ion-color-primary-shade);font-family:Fira Code,Courier New,monospace;font-size:.85em;font-weight:500;padding:2px 6px}.markdown-content pre{background:var(--ion-color-dark);border-radius:8px;color:#f8f8f2;margin:12px 0;overflow-x:auto;padding:12px}.markdown-content pre code{background:#0000;color:inherit;font-size:.9em;padding:0}.markdown-content ol,.markdown-content ul{margin:12px 0;padding-left:24px}.markdown-content li{line-height:1.5;margin-bottom:6px}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{color:var(--ion-text-color);font-weight:600;margin:16px 0 8px}.markdown-content blockquote{background:rgba(var(--ion-color-primary-rgb),.05);border-left:3px solid var(--ion-color-primary);border-radius:0 8px 8px 0;margin:12px 0;padding:8px 16px}.markdown-content a{color:var(--ion-color-primary);text-decoration:none}.markdown-content a:hover{text-decoration:underline}.markdown-content hr{border:none;border-top:1px solid var(--ion-color-light-shade);margin:16px 0}body.dark .markdown-content code,body.dark .markdown-content strong{color:var(--ion-color-primary-tint)}body.dark .markdown-content code{background:rgba(var(--ion-color-primary-rgb),.2)}body.dark .markdown-content pre{background:#1e1e1e}body.dark .markdown-content blockquote{background:rgba(var(--ion-color-primary-rgb),.1)}.code-block{margin-bottom:16px}.code-block h5{color:var(--ion-color-primary);font-size:.85rem;font-weight:600;margin:0 0 12px}.code-block pre{margin:0!important}.key-points-block{margin-bottom:16px}.key-points-block h5{color:var(--ion-color-primary);font-size:.85rem;font-weight:600;margin:0 0 12px}.key-points-block ul{list-style:none;margin:0;padding:0}.key-points-block li{background:#fff;background:var(--ion-card-background,#fff);border-radius:10px;color:var(--ion-text-color);font-size:.9rem;line-height:1.5;margin-bottom:8px;padding:10px 12px 10px 28px;position:relative}.key-points-block li:before{color:var(--ion-color-success);content:"✓";font-weight:600;left:10px;position:absolute;top:10px}.answer-actions{border-top:1px solid var(--ion-color-light-shade);display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding-top:12px}.answer-actions ion-button{--border-radius:10px;margin:0}.learned-badge{align-items:center;background:rgba(var(--ion-color-success-rgb),.1);border-radius:10px;color:var(--ion-color-success);display:flex;font-size:.85rem;font-weight:600;gap:6px;padding:8px 16px}.learned-badge ion-icon{font-size:18px}body.dark .stat-card{--background:var(--ion-color-dark)}body.dark .answer-section{background:var(--ion-color-dark)}body.dark .answer-text,body.dark .key-points-block li{background:var(--ion-color-dark-shade)}@media (max-width:480px){.interview-container{padding:12px}.interview-container .stats-section{gap:8px;grid-template-columns:repeat(2,1fr)!important}.interview-container .stat-card ion-card-content{padding:10px 6px}.interview-container .stat-card .stat-value{font-size:1.1rem}.question-header{padding:12px}.question-number-badge{font-size:.8rem;height:32px;min-width:32px;width:32px}.question-text{font-size:.9rem}.answer-section{padding:12px}.answer-actions{flex-direction:column;gap:8px}.answer-actions ion-button{width:100%}.completed-badge{justify-content:center;width:100%}}.profile-page{--ion-background-color:#f5f7fa}.profile-toolbar{--background:var(--color-primary,#3776ab);--color:#fff;--border-width:0}.profile-content{--background:#f5f7fa}.profile-hero{background:linear-gradient(135deg,#3776ab,#2b5d8a);background:linear-gradient(135deg,var(--color-primary,#3776ab) 0,var(--color-primaryDark,#2b5d8a) 100%);padding:24px 20px 60px;position:relative;text-align:center}.profile-avatar{align-items:center;background:#fff3;border:4px solid #fffc;border-radius:50%;box-shadow:0 4px 20px #0003;display:flex;height:90px;justify-content:center;margin:0 auto 12px;overflow:hidden;width:90px}.avatar-icon{font-size:44px}.level-badge{align-items:center;border-radius:25px;box-shadow:0 3px 12px #00000040;color:#fff;display:inline-flex;flex-direction:row;font-weight:600;gap:8px;justify-content:center;margin-bottom:14px;max-width:90%;min-width:-webkit-fit-content;min-width:fit-content;padding:10px 24px}.level-icon{font-size:20px}.level-info{font-size:14px;font-weight:700;letter-spacing:.3px}.xp-display{align-items:baseline;display:flex;gap:6px;justify-content:center;margin-bottom:16px}.xp-value{color:#fff;font-size:36px;font-weight:800;line-height:1}.xp-label{color:#ffffffd9;font-size:16px;font-weight:600;letter-spacing:1px;text-transform:uppercase}.level-progress-container{background:#ffffff26;border-radius:12px;margin:0 auto;max-width:320px;padding:10px 14px}.level-progress-bar{background:#ffffff40;border-radius:8px;height:8px;margin-bottom:6px;overflow:hidden}.level-progress-fill{background:linear-gradient(90deg,#4caf50,#81c784);border-radius:8px;height:100%;transition:width .5s ease}.level-progress-text{color:#ffffffd9;display:flex;font-size:11px;font-weight:500;justify-content:space-between}.max-level-badge{background:linear-gradient(135deg,gold,#ffa726);border-radius:16px;color:#333;display:inline-block;font-size:13px;font-weight:700;padding:8px 20px}.profile-container{margin:-40px auto 0;max-width:500px;padding:0 16px 100px;position:relative;z-index:1}.actions-section,.badges-section,.stats-section,.streak-section{display:block;margin-bottom:20px;width:100%}.section-title{color:#6b7c93;display:block;font-size:13px;letter-spacing:.5px;margin:0 0 16px;padding:0;text-align:left;text-transform:uppercase;width:100%}.section-title:after{display:none}.section-header{margin-bottom:10px}.section-header .section-title{margin:0}.section-header ion-button{--padding-start:6px;--padding-end:6px;font-size:12px;font-weight:600}.stats-grid{grid-gap:10px;gap:10px}.stat-card{background:#fff;border:1px solid #0000000a;border-radius:14px;box-shadow:0 2px 10px #0000000f;padding:16px 12px;text-align:center}.stat-icon{font-size:28px;margin-bottom:6px}.stat-value{color:#3776ab;color:var(--color-primary,#3776ab);font-size:28px;font-weight:800;line-height:1;margin-bottom:2px}.stat-label{color:#666;font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.streak-card{background:linear-gradient(135deg,#ff9800,#ffb74d);border-radius:16px;box-shadow:0 4px 16px #ff980040;color:#fff;padding:20px}.streak-main{align-items:center;display:flex;gap:14px}.streak-fire{font-size:48px}.streak-info{display:flex;flex-direction:column}.streak-count{font-size:40px;font-weight:800;line-height:1}.streak-text{font-size:14px;font-weight:600;opacity:.9}.streak-divider{background:#ffffff40;height:1px;margin:14px 0}.streak-best{align-items:center;display:flex;justify-content:space-between}.best-label{font-size:13px;opacity:.9}.best-value{font-size:16px;font-weight:700}.streak-message{background:#fff3;border-radius:10px;font-size:13px;font-weight:600;margin-top:14px;padding:10px 14px;text-align:center}.streak-message.warning{background:#0000001a}.badges-preview{display:flex;gap:10px;margin-bottom:12px;overflow-x:auto;padding-bottom:4px}.badge-preview-item{background:#fff;border:1px solid #0000000a;border-radius:12px;box-shadow:0 2px 8px #0000000f;flex:0 0 auto;padding:12px 10px;text-align:center;width:80px}.badge-icon-wrapper{align-items:center;display:flex;height:48px;justify-content:center;margin:0 auto 6px;width:48px}.badge-img{height:100%;object-fit:contain;width:100%}.badge-emoji{font-size:36px}.badge-name{color:#333;display:block;font-size:10px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badges-progress{background:#fff;border:1px solid #0000000a;border-radius:10px;box-shadow:0 2px 8px #0000000a;padding:12px}.badges-progress-bar{background:#e8e8e8;border-radius:6px;height:6px;margin-bottom:6px;overflow:hidden}.badges-progress-fill{background:linear-gradient(90deg,#9c27b0,#e040fb);border-radius:6px;height:100%;transition:width .5s ease}.badges-progress-text{color:#666;display:block;font-size:12px;font-weight:600;text-align:center}.actions-section{display:flex;flex-direction:column;gap:10px}.action-btn{--border-radius:12px;--padding-top:14px;--padding-bottom:14px;font-size:14px;font-weight:600}.action-btn.primary{--background:var(--color-primary,#3776ab)}.action-btn.secondary{--border-width:2px;--border-color:var(--color-primary,#3776ab);--color:var(--color-primary,#3776ab)}.action-btn.tertiary{--border-width:2px;--border-color:#999;--color:#666}.language-info{align-items:center;background:#fff;border:1px solid #0000000a;border-radius:10px;box-shadow:0 2px 6px #0000000a;display:flex;gap:8px;justify-content:center;margin-top:12px;padding:14px}.language-label{color:#666;font-size:12px}.language-name{color:#3776ab;color:var(--color-primary,#3776ab);font-size:15px;font-weight:700}body.dark .profile-page{--ion-background-color:#121212}body.dark .profile-content{--background:#121212}body.dark .badge-preview-item,body.dark .badges-progress,body.dark .language-info,body.dark .stat-card{background:#1e1e1e;border-color:#333}body.dark .stat-value{color:#ffd43b}body.dark .badges-progress-text,body.dark .language-label,body.dark .stat-label{color:#aaa}body.dark .section-title{color:#8a9bae}body.dark .badge-name{color:#e0e0e0}body.dark .badges-progress-bar{background:#333}body.dark .action-btn.secondary{--border-color:#ffd43b;--color:#ffd43b}body.dark .action-btn.tertiary{--border-color:#666;--color:#999}@media (max-width:400px){.level-badge{gap:6px;max-width:90%;padding:8px 16px}.level-icon{font-size:18px}.level-info{font-size:13px}}@media (max-width:360px){.profile-avatar{height:75px;width:75px}.avatar-icon{font-size:36px}.xp-value{font-size:30px}.stat-value{font-size:24px}.streak-count{font-size:32px}.streak-fire{font-size:40px}.level-badge{padding:6px 14px}.section-title{font-size:12px}}.upgrade-prompt{padding:32px 24px;text-align:center}.upgrade-icon{animation:crownBounce 2s ease-in-out infinite;font-size:4rem;margin-bottom:16px}@keyframes crownBounce{0%,to{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-5px) rotate(-5deg)}75%{transform:translateY(-5px) rotate(5deg)}}.upgrade-prompt h2{color:#333;color:var(--color-text,#333);font-size:1.75rem;font-weight:700;margin:0 0 8px}.upgrade-prompt>p{color:#666;color:var(--color-textSecondary,#666);font-size:1rem;margin:0 0 24px}.upgrade-features{margin-bottom:24px;text-align:left}.feature-item{border-bottom:1px solid #eee;gap:12px;padding:12px 0}.feature-item:last-child{border-bottom:none}.feature-item .check{color:#4caf50;color:var(--color-success,#4caf50);font-size:1.25rem;font-weight:700}.feature-item span:last-child{color:#333;color:var(--color-text,#333);font-size:1rem}.upgrade-price{color:#3776ab;color:var(--color-primary,#3776ab);font-size:2rem;font-weight:700;margin-bottom:24px}.upgrade-price:before{color:#666;color:var(--color-textSecondary,#666);content:"Only ";font-size:1rem;font-weight:400}body.dark .upgrade-prompt h2{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}body.dark .upgrade-prompt>p{color:#aaa;color:var(--color-textSecondaryDark,#aaa)}body.dark .feature-item{border-bottom-color:#333}body.dark .feature-item span:last-child{color:#e0e0e0;color:var(--color-textDark,#e0e0e0)}.settings-page{--ion-background-color:#f8f9fa}.settings-toolbar{--background:linear-gradient(135deg,var(--color-primary,#3776ab) 0%,var(--color-primaryDark,#2b5d8a) 100%);--color:#fff}.settings-toolbar ion-title{color:#fff;font-weight:600}.settings-header{background:linear-gradient(135deg,#3776ab,#2b5d8a);background:linear-gradient(135deg,var(--color-primary,#3776ab) 0,var(--color-primaryDark,#2b5d8a) 100%);color:#fff;margin-top:-1px;padding:30px 20px 50px;position:relative;text-align:center}.settings-header:after{background:#f8f9fa;border-radius:30px 30px 0 0;bottom:0;content:"";height:30px;left:0;position:absolute;right:0}.settings-header-icon{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border-radius:50%;display:flex;height:70px;justify-content:center;margin:0 auto 16px;width:70px}.settings-header-icon ion-icon{color:#fff;font-size:36px}.settings-header h1{font-size:1.8rem;font-weight:700;margin:0 0 8px}.settings-header p{font-size:.95rem;margin:0;opacity:.9}.settings-body{margin-top:-20px;padding:0 16px 100px;position:relative;z-index:1}.settings-section{margin-bottom:24px}.settings-section-title{align-items:center;color:#666;color:var(--color-textSecondary,#666);display:flex;font-size:.85rem;font-weight:600;gap:8px;letter-spacing:.5px;margin-bottom:12px;padding-left:4px;text-transform:uppercase}.settings-section-title span{font-size:1rem}.settings-card{background:#fff;border-radius:16px;box-shadow:0 2px 12px #0000000f;overflow:hidden}.settings-item{align-items:center;border-bottom:1px solid #0000000d;cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:background .2s ease}.settings-item:last-child{border-bottom:none}.settings-item:hover{background:#00000005}.settings-item:active{background:#0000000a}.settings-item.danger:hover{background:#f443360d}.settings-item-left{align-items:center;display:flex;flex:1 1;gap:14px}.settings-icon-wrapper{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:42px;justify-content:center;width:42px}.settings-icon-wrapper ion-icon{font-size:22px}.settings-icon-wrapper.light{background:linear-gradient(135deg,#ffa726,#ff9800);color:#fff}.settings-icon-wrapper.dark{background:linear-gradient(135deg,#5c6bc0,#3f51b5);color:#fff}.settings-icon-wrapper.code{background:linear-gradient(135deg,#42a5f5,#1e88e5);color:#fff}.settings-icon-wrapper.success{background:linear-gradient(135deg,#66bb6a,#43a047);color:#fff}.settings-icon-wrapper.muted{background:#e0e0e0;color:#9e9e9e}.settings-icon-wrapper.export{background:linear-gradient(135deg,#26a69a,#00897b);color:#fff}.settings-icon-wrapper.import{background:linear-gradient(135deg,#7e57c2,#5e35b1);color:#fff}.settings-icon-wrapper.danger{background:linear-gradient(135deg,#ef5350,#e53935);color:#fff}.settings-icon-wrapper.star{background:linear-gradient(135deg,#ffd54f,#ffc107);color:#fff}.settings-icon-wrapper.share{background:linear-gradient(135deg,#29b6f6,#03a9f4);color:#fff}.settings-icon-wrapper.mail{background:linear-gradient(135deg,#ec407a,#e91e63);color:#fff}.settings-icon-wrapper.info{background:linear-gradient(135deg,#78909c,#607d8b);color:#fff}.settings-icon-wrapper.privacy{background:linear-gradient(135deg,#4db6ac,#26a69a);color:#fff}.settings-icon-wrapper.terms{background:linear-gradient(135deg,#9575cd,#7e57c2);color:#fff}.settings-item-text{display:flex;flex-direction:column;gap:2px}.settings-item-title{color:#333;color:var(--color-text,#333);font-size:1rem;font-weight:500}.settings-item-title.danger{color:#e53935}.settings-item-subtitle{color:#888;color:var(--color-textSecondary,#888);font-size:.82rem}.chevron-icon{color:#ccc;font-size:20px}.custom-toggle{flex-shrink:0}.toggle-track{background:#e0e0e0;border-radius:15px;height:30px;position:relative;transition:background .3s ease;width:52px}.custom-toggle.active .toggle-track{background:linear-gradient(135deg,#3776ab,#2b5d8a);background:linear-gradient(135deg,var(--color-primary,#3776ab) 0,var(--color-primaryDark,#2b5d8a) 100%)}.toggle-thumb{align-items:center;background:#fff;border-radius:50%;box-shadow:0 2px 6px #0003;display:flex;height:26px;justify-content:center;left:2px;position:absolute;top:2px;transition:transform .3s ease;width:26px}.toggle-thumb ion-icon{color:#999;font-size:14px}.custom-toggle.active .toggle-thumb{transform:translateX(22px)}.custom-toggle.active .toggle-thumb ion-icon{color:#3776ab;color:var(--color-primary,#3776ab)}.font-size-item{border-bottom:none!important;padding-bottom:8px!important}.font-size-options{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr);padding:0 16px 16px}.font-size-btn{align-items:center;background:#f5f5f5;border:2px solid #0000;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:12px 8px;position:relative;transition:all .2s ease}.font-size-btn:hover{background:#eee}.font-size-btn.active{background:#3776ab1a;border-color:#3776ab;border-color:var(--color-primary,#3776ab)}.font-size-btn .size-label{color:#333;color:var(--color-text,#333);font-size:.75rem;font-weight:600}.font-size-btn .size-value{color:#888;color:var(--color-textSecondary,#888);font-size:.7rem}.font-size-btn .check-icon{background:#fff;border-radius:50%;color:#3776ab;color:var(--color-primary,#3776ab);font-size:18px;position:absolute;right:-6px;top:-6px}.version-badge{background:linear-gradient(135deg,#f5f5f5,#e0e0e0);border-radius:20px;color:#333;color:var(--color-text,#333);font-size:.75rem;font-weight:600;padding:6px 12px}.upgrade-card{background:#fff;border-radius:20px;box-shadow:0 4px 20px #0000001a;cursor:pointer;overflow:hidden;padding:20px;position:relative;transition:transform .2s ease,box-shadow .2s ease}.upgrade-card:hover{box-shadow:0 6px 24px #00000026;transform:translateY(-2px)}.upgrade-gradient{background:linear-gradient(90deg,gold,orange,#ff6b6b,#c44569,#8b5cf6);height:4px;left:0;position:absolute;right:0;top:0}.upgrade-content{gap:16px;margin-bottom:16px}.upgrade-content,.upgrade-icon{align-items:center;display:flex}.upgrade-icon{background:linear-gradient(135deg,gold,orange);border-radius:16px;flex-shrink:0;height:56px;justify-content:center;width:56px}.upgrade-icon ion-icon{color:#fff;font-size:28px}.upgrade-text{flex:1 1}.upgrade-text h3{color:#333;color:var(--color-text,#333);font-size:1.2rem;font-weight:700;margin:0 0 4px}.upgrade-text p{color:#666;color:var(--color-textSecondary,#666);font-size:.85rem;margin:0}.upgrade-price{text-align:center}.upgrade-price .price{color:#3776ab;color:var(--color-primary,#3776ab);display:block;font-size:1.3rem;font-weight:700}.upgrade-price .label{color:#888;color:var(--color-textSecondary,#888);font-size:.7rem;text-transform:uppercase}.upgrade-features{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px}.upgrade-features .feature{background:#f8f9fa;border-radius:20px;color:#333;color:var(--color-text,#333);font-size:.8rem;padding:8px 12px}.upgrade-btn{--background:linear-gradient(135deg,gold,orange);--color:#333;--border-radius:12px;font-weight:600;height:48px;margin:0}.settings-footer{padding:40px 20px;text-align:center}.settings-footer p{color:#888;color:var(--color-textSecondary,#888);font-size:.9rem;margin:0 0 8px}.settings-footer .copyright{color:#bbb;font-size:.8rem}.reset-alert{--backdrop-opacity:0.5}.reset-alert .alert-wrapper{border-radius:16px}.alert-danger-btn{color:#e53935!important;font-weight:600!important}.settings-page.dark,body.dark .settings-page{--ion-background-color:#121212}body.dark .settings-body,body.dark .settings-header:after{background:#121212}body.dark .settings-section-title{color:#aaa}body.dark .settings-card{background:#1e1e1e;box-shadow:0 2px 12px #0000004d}body.dark .settings-item{border-bottom-color:#ffffff0d}body.dark .settings-item:hover{background:#ffffff08}body.dark .settings-item-title{color:#e0e0e0}body.dark .settings-item-subtitle{color:#888}body.dark .chevron-icon{color:#555}body.dark .toggle-track{background:#333}body.dark .font-size-btn{background:#2a2a2a}body.dark .font-size-btn:hover{background:#333}body.dark .font-size-btn.active{background:#3776ab33}body.dark .font-size-btn .size-label{color:#e0e0e0}body.dark .font-size-btn .size-value{color:#888}body.dark .version-badge{background:linear-gradient(135deg,#2a2a2a,#333);color:#e0e0e0}body.dark .upgrade-card{background:#1e1e1e;box-shadow:0 4px 20px #0006}body.dark .upgrade-text h3{color:#e0e0e0}body.dark .upgrade-text p{color:#aaa}body.dark .upgrade-features .feature{background:#2a2a2a;color:#e0e0e0}body.dark .settings-footer p{color:#888}body.dark .settings-footer .copyright{color:#555}body.dark .settings-icon-wrapper.muted{background:#333;color:#666}.upgrade-card:hover .upgrade-icon{animation:pulse 1s ease infinite}@media (max-width:360px){.font-size-options{grid-template-columns:repeat(2,1fr)}.upgrade-content{flex-direction:column;text-align:center}.upgrade-price{margin-top:8px}.upgrade-features{justify-content:center}}@media (min-width:768px){.settings-body{margin-left:auto;margin-right:auto;max-width:600px}}.about-container{margin:0 auto;max-width:600px;padding:16px}.app-header{padding:24px 0;text-align:center}.app-logo{animation:float 3s ease-in-out infinite;height:100px;margin-bottom:16px;width:100px}.app-header h1{color:var(--ion-text-color);font-size:1.8rem;margin:0 0 8px}.app-header .tagline{color:var(--ion-color-medium);font-size:1rem;margin:0 0 8px}.app-header .version{background:var(--ion-color-light);border-radius:12px;color:var(--ion-color-medium);display:inline-block;font-size:.85rem;margin:0;padding:4px 12px}.description-card{border-radius:12px;margin:16px 0}.description-card p{font-size:1rem;line-height:1.6;margin:0;text-align:center}.features-section{margin:24px 0}.features-section h2{font-size:1.2rem;margin:0 0 16px;text-align:center}.features-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}.feature-item{align-items:center;background:var(--ion-color-light);border-radius:12px;display:flex;flex-direction:column;gap:8px;padding:16px 8px;text-align:center}.feature-icon{font-size:28px}.feature-item span:last-child{color:var(--ion-text-color);font-size:.8rem}.links-section{margin:24px 0}.links-section h2{font-size:1.2rem;margin:0 0 12px}.links-section ion-item{--background:var(--ion-color-light);--border-radius:8px;margin-bottom:8px}.rate-section{background:linear-gradient(135deg,rgba(var(--ion-color-warning-rgb),.15) 0,rgba(var(--ion-color-tertiary-rgb),.15) 100%);border-radius:16px;margin:32px 0;padding:24px;text-align:center}.rate-section h2{font-size:1.2rem;margin:0 0 8px}.rate-section p{color:var(--ion-color-medium);margin:0 0 16px}.credits-section{border-top:1px solid var(--ion-color-light-shade);margin-top:24px;padding:24px 0;text-align:center}.credits-section p{align-items:center;color:var(--ion-color-medium);display:flex;font-size:.9rem;gap:4px;justify-content:center;margin:0 0 4px}.credits-section .copyright{font-size:.8rem;margin-top:8px}body.dark .feature-item{background:var(--ion-color-dark)}body.dark .links-section ion-item{--background:var(--ion-color-dark)}body.dark .app-header .version{background:var(--ion-color-dark)}@media (max-width:400px){.features-grid{grid-template-columns:repeat(2,1fr)}}.help-container{margin:0 auto;max-width:700px;padding-bottom:24px}.help-search{margin:16px 0}.quick-help{margin:24px 0}.quick-help h2{font-size:1.1rem;margin:0 0 12px}.quick-help-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr)}.quick-help-item{align-items:center;background:var(--ion-color-light);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;padding:16px 8px;text-align:center;transition:transform .2s,box-shadow .2s}.quick-help-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.quick-help-item ion-icon{color:var(--ion-color-primary);font-size:28px}.quick-help-item span{color:var(--ion-text-color);font-size:.75rem}.faq-section{margin:24px 0}.faq-section h2{font-size:1.1rem;margin:0 0 16px}.faq-category{margin-bottom:16px}.category-header{align-items:center;color:var(--ion-color-primary);display:flex;font-weight:600;gap:8px;padding:8px 0}.category-header ion-icon{font-size:20px}.faq-item{background:var(--ion-color-light);border-radius:8px;margin-bottom:8px;overflow:hidden}.faq-question-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:16px;transition:background .2s}.faq-question-header:hover{background:rgba(var(--ion-color-primary-rgb),.1)}.faq-question-header.expanded{background:rgba(var(--ion-color-primary-rgb),.05)}.faq-question{flex:1 1;font-size:.95rem;font-weight:500;padding-right:12px}.faq-chevron{color:var(--ion-color-medium);font-size:20px;transition:transform .3s ease}.faq-chevron.rotated{transform:rotate(180deg)}.faq-answer{background:var(--ion-color-light);color:var(--ion-color-medium-shade);font-size:.9rem;line-height:1.6;padding:0 16px 16px}.no-results{color:var(--ion-color-medium);padding:40px 20px;text-align:center}.no-results ion-icon{font-size:48px;margin-bottom:16px;opacity:.5}.no-results p{margin:0 0 16px}.support-card{background:linear-gradient(135deg,rgba(var(--ion-color-primary-rgb),.1) 0,rgba(var(--ion-color-secondary-rgb),.1) 100%);border-radius:12px;margin-top:24px}.support-card h3{font-size:1.1rem;margin:0 0 8px}.support-card p{color:var(--ion-color-medium);font-size:.9rem;margin:0 0 16px}body.dark .faq-answer,body.dark .faq-item,body.dark .quick-help-item{background:var(--ion-color-dark)}body.dark .faq-question-header:hover{background:#ffffff1a}@media (max-width:480px){.quick-help-grid{gap:12px;grid-template-columns:repeat(2,1fr)}.quick-help-item{padding:12px 8px}.quick-help-item ion-icon{font-size:24px}}.legal-container{margin:0 auto;max-width:700px;padding:16px}.loading-container{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:200px}.loading-container p{color:var(--ion-color-medium)}.legal-header{padding:24px 0 32px;text-align:center}.legal-icon{align-items:center;background:linear-gradient(135deg,var(--ion-color-success) 0,var(--ion-color-success-shade) 100%);border-radius:50%;box-shadow:0 4px 20px rgba(var(--ion-color-success-rgb),.3);display:flex;height:80px;justify-content:center;margin:0 auto 16px;width:80px}.legal-icon ion-icon{color:#fff;font-size:40px}.legal-header h1{color:var(--ion-text-color);font-size:1.8rem;font-weight:700;margin:0 0 8px}.legal-header .app-name{color:var(--ion-color-primary);font-size:1rem;font-weight:500;margin:0 0 12px}.last-updated{align-items:center;background:var(--ion-color-light);border-radius:20px;color:var(--ion-color-medium);display:inline-flex;font-size:.85rem;gap:6px;padding:6px 14px}.last-updated ion-icon{font-size:16px}.legal-content{margin-bottom:24px}.legal-section-card{border-radius:12px;box-shadow:0 2px 8px #0000000f;margin:0 0 12px}.legal-section-card ion-card-content{padding:20px}.section-title{color:var(--ion-text-color);font-size:1.1rem;margin:0 0 12px}.section-content{color:var(--ion-color-dark);font-size:.95rem;line-height:1.7}.section-content p{margin:0 0 8px}.section-content p:last-child{margin-bottom:0}.section-content p:empty{height:8px}.contact-section{background:linear-gradient(135deg,rgba(var(--ion-color-primary-rgb),.1) 0,rgba(var(--ion-color-secondary-rgb),.1) 100%);border-radius:16px;margin-bottom:24px;padding:24px;text-align:center}.contact-section h3{font-size:1.2rem;font-weight:600;margin:0 0 8px}.contact-section p{color:var(--ion-color-medium);margin:0 0 16px}.legal-footer{border-top:1px solid var(--ion-color-light-shade);padding:24px 0;text-align:center}.legal-footer p{color:var(--ion-color-medium);font-size:.85rem;margin:0}body.dark .legal-icon{box-shadow:0 4px 20px rgba(var(--ion-color-success-rgb),.2)}body.dark .last-updated{background:var(--ion-color-dark)}body.dark .legal-section-card{--background:var(--ion-color-dark);box-shadow:0 2px 8px #0003}body.dark .section-content{color:var(--ion-color-light)}body.dark .contact-section{background:linear-gradient(135deg,rgba(var(--ion-color-primary-rgb),.15) 0,rgba(var(--ion-color-secondary-rgb),.15) 100%)}@media (max-width:480px){.legal-header h1{font-size:1.5rem}.legal-icon{height:64px;width:64px}.legal-icon ion-icon{font-size:32px}.section-title{font-size:1rem}.section-content{font-size:.9rem}}.legal-icon.terms-icon{background:linear-gradient(135deg,var(--ion-color-secondary) 0,var(--ion-color-secondary-shade) 100%);box-shadow:0 4px 20px rgba(var(--ion-color-secondary-rgb),.3)}.section-number{color:var(--ion-color-primary);display:inline-block;font-weight:700;min-width:28px}body.dark .legal-icon.terms-icon{box-shadow:0 4px 20px rgba(var(--ion-color-secondary-rgb),.2)}.svg-icon{align-items:center;display:inline-flex;flex-shrink:0;justify-content:center}.svg-icon img{height:100%;object-fit:contain;width:100%}.svg-icon.clickable{cursor:pointer;transition:transform .2s,opacity .2s}.svg-icon.clickable:hover{transform:scale(1.1)}.svg-icon.clickable:active{transform:scale(.95)}.svg-icon.spin{animation:iconSpin 1s linear infinite}@keyframes iconSpin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.svg-icon.pulse{animation:iconPulse 2s ease-in-out infinite}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.svg-icon.bounce{animation:iconBounce 2s ease-in-out infinite}@keyframes iconBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.animated-svg-container{align-items:center;display:inline-flex;justify-content:center;opacity:0;transition:opacity .3s ease}.animated-svg-container.loaded{opacity:1}.animated-svg{display:block;height:auto;max-width:100%}.animated-svg-small .animated-svg{height:48px;width:48px}.animated-svg-medium .animated-svg{height:96px;width:96px}.animated-svg-large .animated-svg{height:150px;width:150px}.animated-svg-float{animation:svg-float 3s ease-in-out infinite}@keyframes svg-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animated-svg-pulse{animation:svg-pulse 2s ease-in-out infinite}@keyframes svg-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}.animated-svg-bounce{animation:svg-bounce 1s ease infinite}@keyframes svg-bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-15px)}60%{transform:translateY(-8px)}}.animated-svg-spin{animation:svg-spin 2s linear infinite}@keyframes svg-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.animated-svg-shake{animation:svg-shake .5s ease-in-out infinite}@keyframes svg-shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.animated-svg-fade-in{animation:svg-fade-in .5s ease forwards}@keyframes svg-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.animated-svg-slide-up{animation:svg-slide-up .5s ease-out forwards}@keyframes svg-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animated-svg-slide-in{animation:svg-slide-in .5s ease-out forwards}@keyframes svg-slide-in{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.animated-svg-glow{animation:svg-glow 2s ease-in-out infinite}@keyframes svg-glow{0%,to{filter:drop-shadow(0 0 2px rgba(255,200,0,.3))}50%{filter:drop-shadow(0 0 12px rgba(255,200,0,.8))}}.animated-svg-swing{animation:svg-swing 1.5s ease-in-out infinite;transform-origin:top center}@keyframes svg-swing{0%,to{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}.animated-svg-container[onClick]{cursor:pointer}.animated-svg-container[onClick]:hover .animated-svg{transform:scale(1.05);transition:transform .2s ease}@media (prefers-reduced-motion:reduce){.animated-svg-bounce,.animated-svg-float,.animated-svg-glow,.animated-svg-pulse,.animated-svg-shake,.animated-svg-spin,.animated-svg-swing{animation:none}.animated-svg-fade-in,.animated-svg-slide-in,.animated-svg-slide-up{animation-duration:.01ms}}.concept-renderer{margin:16px 0}.concept-card{border-radius:12px;margin:0;overflow:hidden}.concept-card ion-card-header{padding-bottom:8px}.concept-card ion-card-title{align-items:center;display:flex;font-size:1.1rem;gap:8px}.concept-card ion-card-title ion-icon{font-size:24px}.concept-description{color:var(--ion-text-color);font-size:1rem;line-height:1.6;margin:0 0 16px}.concept-visual{margin:16px 0}.visual-container{background:var(--ion-color-light);border-radius:8px;overflow:hidden;position:relative}.concept-image{display:block;height:auto;width:100%}.visual-caption{color:var(--ion-color-medium);font-size:.85rem;font-style:italic;margin:8px 0 0;text-align:center}.hotspots-overlay{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.hotspot{align-items:center;background:var(--ion-color-primary);border:3px solid #fff;border-radius:50%;box-shadow:0 2px 8px #0000004d;cursor:pointer;display:flex;height:28px;justify-content:center;pointer-events:auto;position:absolute;transform:translate(-50%,-50%);transition:transform .2s,box-shadow .2s;width:28px;z-index:1}.hotspot.active,.hotspot:hover{box-shadow:0 4px 12px #0006;transform:translate(-50%,-50%) scale(1.2)}.hotspot-number{color:#fff;font-size:12px;font-weight:700}.hotspot-tooltip{background:var(--ion-background-color);border-radius:8px;bottom:100%;box-shadow:0 4px 16px #0003;margin-bottom:8px;max-width:250px;min-width:180px;padding:12px;z-index:10}.hotspot-tooltip,.hotspot-tooltip:after{left:50%;position:absolute;transform:translateX(-50%)}.hotspot-tooltip:after{border:8px solid #0000;border-top:8px solid var(--ion-background-color);content:"";top:100%}.hotspot-tooltip strong{color:var(--ion-text-color);display:block;margin-bottom:4px}.hotspot-tooltip p{color:var(--ion-color-medium);font-size:.85rem;margin:0}.comparison-box{background:linear-gradient(135deg,rgba(var(--ion-color-tertiary-rgb),.1) 0,rgba(var(--ion-color-primary-rgb),.1) 100%);border-radius:12px;margin:16px 0;padding:16px}.comparison-box h4{align-items:center;color:var(--ion-text-color);display:flex;font-size:1rem;gap:8px;margin:0 0 12px}.comparison-box h4 ion-icon{color:var(--ion-color-tertiary)}.comparison-content{align-items:stretch;display:flex;gap:12px}.comparison-item{background:var(--ion-background-color);border-radius:8px;flex:1 1;padding:12px;text-align:center}.comparison-label{background:var(--ion-color-primary);border-radius:4px;color:#fff;display:inline-block;font-size:.75rem;margin-bottom:8px;padding:4px 8px}.comparison-item.code-world .comparison-label{background:var(--ion-color-tertiary)}.comparison-item p{font-size:.9rem;line-height:1.4;margin:8px 0}.comparison-item img{border-radius:4px;height:auto;margin-top:8px;max-width:100%}.comparison-arrow{align-items:center;display:flex;flex-shrink:0;font-size:24px;justify-content:center}.key-points-section{margin:16px 0}.key-points-section h4{color:var(--ion-text-color);font-size:1rem;margin:0 0 12px}.key-points-list{list-style:none;margin:0;padding:0}.key-points-list li{align-items:flex-start;display:flex;font-size:.95rem;gap:8px;line-height:1.4;margin-bottom:8px}.key-point-bullet{color:var(--ion-color-success);flex-shrink:0;font-weight:700}.examples-section{margin:16px 0}.examples-section h4{color:var(--ion-text-color);font-size:1rem;margin:0 0 12px}.example-item{background:var(--ion-color-light);border-radius:8px;margin-bottom:12px;padding:12px}.example-label{background:var(--ion-color-medium);border-radius:4px;color:#fff;display:inline-block;font-size:.75rem;margin-bottom:8px;padding:2px 8px}.example-code{background:var(--ion-background-color);border-radius:6px;font-family:Fira Code,Courier New,monospace;font-size:.85rem;margin:8px 0;overflow-x:auto;padding:12px}.example-explanation{color:var(--ion-color-medium);font-size:.9rem;margin:8px 0 0}.fun-fact-box{background:linear-gradient(135deg,rgba(var(--ion-color-warning-rgb),.15) 0,rgba(var(--ion-color-tertiary-rgb),.15) 100%);border-radius:12px;margin:16px 0;padding:16px}.fun-fact-box ion-chip{margin-bottom:8px}.fun-fact-box p{font-size:.95rem;line-height:1.5;margin:0}.show-details-btn{margin-top:16px}.expanded-details{animation:slideDown .3s ease;border-top:1px solid var(--ion-color-light-shade);margin-top:16px;padding-top:16px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.hotspots-list h4{font-size:1rem;margin:0 0 12px}.hotspot-item{align-items:flex-start;background:var(--ion-color-light);border-radius:8px;cursor:pointer;display:flex;gap:12px;margin-bottom:8px;padding:12px;transition:background .2s}.hotspot-item.active,.hotspot-item:hover{background:rgba(var(--ion-color-primary-rgb),.15)}.hotspot-num{align-items:center;background:var(--ion-color-primary);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:24px;justify-content:center;width:24px}.hotspot-content strong{display:block;margin-bottom:4px}.hotspot-content p{color:var(--ion-color-medium);font-size:.9rem;margin:0}body.dark .example-item,body.dark .visual-container{background:var(--ion-color-dark)}body.dark .example-code{background:var(--ion-color-dark-shade)}body.dark .hotspot-item{background:var(--ion-color-dark)}body.dark .hotspot-item.active,body.dark .hotspot-item:hover{background:rgba(var(--ion-color-primary-rgb),.2)}@media (max-width:480px){.comparison-content{flex-direction:column}.comparison-arrow{padding:8px 0;transform:rotate(90deg)}.hotspot-tooltip{font-size:.8rem;max-width:200px;min-width:150px}}.illustration-showcase-content{--background:#f4f5f8}.showcase-container{margin:0 auto;max-width:800px;padding:20px}.asset-card{display:flex;flex-direction:column;height:100%}.asset-display{align-items:center;background:#fff;display:flex;flex-grow:1;justify-content:center;min-height:250px;padding:30px}.asset-display .animated-svg{max-width:300px;width:100%}.concept-list{display:flex;flex-direction:column;gap:20px;margin-top:30px}html.ios{--ion-default-font:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Roboto",sans-serif}html.md{--ion-default-font:"Roboto","Helvetica Neue",sans-serif}html{--ion-default-dynamic-font:-apple-system-body;--ion-font-family:var(--ion-default-font)}body{background:var(--ion-background-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar{padding-left:calc(var(--ion-safe-area-left) + 8px);padding-right:calc(var(--ion-safe-area-right) + 8px)}@media screen and (min-width:768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity:0.18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity:0;--box-shadow:none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base:var(--ion-color-primary,#3880ff)!important;--ion-color-base-rgb:var(--ion-color-primary-rgb,56,128,255)!important;--ion-color-contrast:var(--ion-color-primary-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-primary-contrast-rgb,255,255,255)!important;--ion-color-shade:var(--ion-color-primary-shade,#3171e0)!important;--ion-color-tint:var(--ion-color-primary-tint,#4c8dff)!important}.ion-color-secondary{--ion-color-base:var(--ion-color-secondary,#3dc2ff)!important;--ion-color-base-rgb:var(--ion-color-secondary-rgb,61,194,255)!important;--ion-color-contrast:var(--ion-color-secondary-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-secondary-contrast-rgb,255,255,255)!important;--ion-color-shade:var(--ion-color-secondary-shade,#36abe0)!important;--ion-color-tint:var(--ion-color-secondary-tint,#50c8ff)!important}.ion-color-tertiary{--ion-color-base:var(--ion-color-tertiary,#5260ff)!important;--ion-color-base-rgb:var(--ion-color-tertiary-rgb,82,96,255)!important;--ion-color-contrast:var(--ion-color-tertiary-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-tertiary-contrast-rgb,255,255,255)!important;--ion-color-shade:var(--ion-color-tertiary-shade,#4854e0)!important;--ion-color-tint:var(--ion-color-tertiary-tint,#6370ff)!important}.ion-color-success{--ion-color-base:var(--ion-color-success,#2dd36f)!important;--ion-color-base-rgb:var(--ion-color-success-rgb,45,211,111)!important;--ion-color-contrast:var(--ion-color-success-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-success-contrast-rgb,255,255,255)!important;--ion-color-shade:var(--ion-color-success-shade,#28ba62)!important;--ion-color-tint:var(--ion-color-success-tint,#42d77d)!important}.ion-color-warning{--ion-color-base:var(--ion-color-warning,#ffc409)!important;--ion-color-base-rgb:var(--ion-color-warning-rgb,255,196,9)!important;--ion-color-contrast:var(--ion-color-warning-contrast,#000)!important;--ion-color-contrast-rgb:var(--ion-color-warning-contrast-rgb,0,0,0)!important;--ion-color-shade:var(--ion-color-warning-shade,#e0ac08)!important;--ion-color-tint:var(--ion-color-warning-tint,#ffca22)!important}.ion-color-danger{--ion-color-base:var(--ion-color-danger,#eb445a)!important;--ion-color-base-rgb:var(--ion-color-danger-rgb,235,68,90)!important;--ion-color-contrast:var(--ion-color-danger-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-danger-contrast-rgb,255,255,255)!important;--ion-color-shade:var(--ion-color-danger-shade,#cf3c4f)!important;--ion-color-tint:var(--ion-color-danger-tint,#ed576b)!important}.ion-color-light{--ion-color-base:var(--ion-color-light,#f4f5f8)!important;--ion-color-base-rgb:var(--ion-color-light-rgb,244,245,248)!important;--ion-color-contrast:var(--ion-color-light-contrast,#000)!important;--ion-color-contrast-rgb:var(--ion-color-light-contrast-rgb,0,0,0)!important;--ion-color-shade:var(--ion-color-light-shade,#d7d8da)!important;--ion-color-tint:var(--ion-color-light-tint,#f5f6f9)!important}.ion-color-medium{--ion-color-base:var(--ion-color-medium,#92949c)!important;--ion-color-base-rgb:var(--ion-color-medium-rgb,146,148,156)!important;--ion-color-contrast:var(--ion-color-medium-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-medium-contrast-rgb,255,255,255)!important;--ion-color-shade:var(--ion-color-medium-shade,#808289)!important;--ion-color-tint:var(--ion-color-medium-tint,#9d9fa6)!important}.ion-color-dark{--ion-color-base:var(--ion-color-dark,#222428)!important;--ion-color-base-rgb:var(--ion-color-dark-rgb,34,36,40)!important;--ion-color-contrast:var(--ion-color-dark-contrast,#fff)!important;--ion-color-contrast-rgb:var(--ion-color-dark-contrast-rgb,255,255,255)!important;--ion-color-shade:var(--ion-color-dark-shade,#1e2023)!important;--ion-color-tint:var(--ion-color-dark-tint,#383a3e)!important}.ion-page{bottom:0;contain:layout size style;display:flex;flex-direction:column;justify-content:space-between;left:0;position:absolute;right:0;top:0;z-index:0}ion-modal>.ion-page{contain:layout style;height:100%;position:relative}.split-pane-visible>.ion-page.split-pane-main{position:relative}.ion-page-hidden,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-menu-controller,ion-modal-controller,ion-nav-controller,ion-picker-controller,ion-popover-controller,ion-route,ion-route-redirect,ion-router,ion-select-option,ion-toast-controller{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding:20px}@supports(padding-top:20px){html{--ion-safe-area-top:var(--ion-statusbar-padding)}}@supports(padding-top:env(safe-area-inset-top)){html{--ion-safe-area-top:env(safe-area-inset-top);--ion-safe-area-bottom:env(safe-area-inset-bottom);--ion-safe-area-left:env(safe-area-inset-left);--ion-safe-area-right:env(safe-area-inset-right)}}ion-card-header.ion-color .ion-inherit-color,ion-card.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;overflow-y:hidden;pointer-events:none;touch-action:manipulation}.menu-content-open ion-content{--overflow:hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-push,.md .menu-content-reveal{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width:0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:transform .3s cubic-bezier(.25,.8,.5,1)}@media(prefers-reduced-motion:reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width:0px;--inner-border-width:0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width:fit-content;--height:fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{min-height:320px;width:320px}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:initial}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{border-width:0;box-sizing:initial;height:1px}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}input,label,select,textarea{font-family:inherit;line-height:normal}textarea{color:inherit;font:inherit;height:auto;overflow:auto}textarea::placeholder{padding-left:2px}form,input,optgroup,select{color:inherit;font:inherit;margin:0}html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}.ion-tappable,[tappable],[tappable] div,[tappable] ion-icon,[tappable] ion-label,[tappable] span,a,a div,a ion-icon,a ion-label,a span,button,button div,button ion-icon,button ion-label,button span,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{font-feature-settings:inherit;-webkit-appearance:button;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;padding:0;text-transform:none}[tappable],button{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;height:100%;width:100%}html:not(.hydrated) body{display:none}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;height:100%;margin:0;max-height:100%;max-width:100%;overflow:hidden;overscroll-behavior-y:none;padding:0;position:fixed;text-rendering:optimizeLegibility;touch-action:manipulation;transform:translateZ(0);width:100%}html{font-family:var(--ion-font-family)}@supports(-webkit-touch-callout:none){html{font:16px var(--ion-font-family);font:var(--ion-dynamic-font,16px var(--ion-font-family))}}a{background-color:initial;color:#3880ff;color:var(--ion-color-primary,#3880ff)}h1,h2,h3,h4,h5,h6{font-weight:500;line-height:1.2;margin-bottom:10px;margin-top:16px}h1{font-size:1.625rem;margin-top:20px}h2{font-size:1.5rem;margin-top:18px}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small,sub,sup{font-size:75%}sub,sup{line-height:0;position:relative;vertical-align:initial}sup{top:-.5em}sub{bottom:-.25em}.ion-no-padding{--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;padding:0}.ion-padding{--padding-start:var(--ion-padding,16px);--padding-end:var(--ion-padding,16px);--padding-top:var(--ion-padding,16px);--padding-bottom:var(--ion-padding,16px);-webkit-padding-start:16px;-webkit-padding-start:var(--ion-padding,16px);-webkit-padding-end:16px;-webkit-padding-end:var(--ion-padding,16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding,16px);padding-bottom:16px;padding-bottom:var(--ion-padding,16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding,16px)}.ion-padding,.ion-padding-top{padding-top:16px;padding-top:var(--ion-padding,16px)}.ion-padding-top{--padding-top:var(--ion-padding,16px)}.ion-padding-start{--padding-start:var(--ion-padding,16px);-webkit-padding-start:16px;-webkit-padding-start:var(--ion-padding,16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding,16px)}.ion-padding-end{--padding-end:var(--ion-padding,16px);-webkit-padding-end:16px;-webkit-padding-end:var(--ion-padding,16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding,16px)}.ion-padding-bottom{--padding-bottom:var(--ion-padding,16px)}.ion-padding-bottom,.ion-padding-vertical{padding-bottom:16px;padding-bottom:var(--ion-padding,16px)}.ion-padding-vertical{--padding-top:var(--ion-padding,16px);--padding-bottom:var(--ion-padding,16px);padding-top:16px;padding-top:var(--ion-padding,16px)}.ion-padding-horizontal{--padding-start:var(--ion-padding,16px);--padding-end:var(--ion-padding,16px);-webkit-padding-start:16px;-webkit-padding-start:var(--ion-padding,16px);-webkit-padding-end:16px;-webkit-padding-end:var(--ion-padding,16px);padding-inline-end:16px;padding-inline-end:var(--ion-padding,16px);padding-inline-start:16px;padding-inline-start:var(--ion-padding,16px)}.ion-no-margin{--margin-start:0;--margin-end:0;--margin-top:0;--margin-bottom:0;margin:0}.ion-margin{--margin-start:var(--ion-margin,16px);--margin-end:var(--ion-margin,16px);--margin-top:var(--ion-margin,16px);--margin-bottom:var(--ion-margin,16px);-webkit-margin-start:16px;-webkit-margin-start:var(--ion-margin,16px);-webkit-margin-end:16px;-webkit-margin-end:var(--ion-margin,16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin,16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin,16px);margin-bottom:16px;margin-bottom:var(--ion-margin,16px)}.ion-margin,.ion-margin-top{margin-top:16px;margin-top:var(--ion-margin,16px)}.ion-margin-top{--margin-top:var(--ion-margin,16px)}.ion-margin-start{--margin-start:var(--ion-margin,16px);-webkit-margin-start:16px;-webkit-margin-start:var(--ion-margin,16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin,16px)}.ion-margin-end{--margin-end:var(--ion-margin,16px);-webkit-margin-end:16px;-webkit-margin-end:var(--ion-margin,16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin,16px)}.ion-margin-bottom{--margin-bottom:var(--ion-margin,16px)}.ion-margin-bottom,.ion-margin-vertical{margin-bottom:16px;margin-bottom:var(--ion-margin,16px)}.ion-margin-vertical{--margin-top:var(--ion-margin,16px);--margin-bottom:var(--ion-margin,16px);margin-top:16px;margin-top:var(--ion-margin,16px)}.ion-margin-horizontal{--margin-start:var(--ion-margin,16px);--margin-end:var(--ion-margin,16px);-webkit-margin-start:16px;-webkit-margin-start:var(--ion-margin,16px);-webkit-margin-end:16px;-webkit-margin-end:var(--ion-margin,16px);margin-inline-end:16px;margin-inline-end:var(--ion-margin,16px);margin-inline-start:16px;margin-inline-start:var(--ion-margin,16px)}.ion-float-left{float:left!important}.ion-float-right{float:right!important}.ion-float-start{float:left!important}:host-context([dir=rtl]) .ion-float-start{float:right!important}[dir=rtl] .ion-float-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-start:dir(rtl){float:right!important}}.ion-float-end{float:right!important}:host-context([dir=rtl]) .ion-float-end{float:left!important}[dir=rtl] .ion-float-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-end:dir(rtl){float:left!important}}@media(min-width:576px){.ion-float-sm-left{float:left!important}.ion-float-sm-right{float:right!important}.ion-float-sm-start{float:left!important}:host-context([dir=rtl]) .ion-float-sm-start{float:right!important}[dir=rtl] .ion-float-sm-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-sm-start:dir(rtl){float:right!important}}.ion-float-sm-end{float:right!important}:host-context([dir=rtl]) .ion-float-sm-end{float:left!important}[dir=rtl] .ion-float-sm-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-sm-end:dir(rtl){float:left!important}}}@media(min-width:768px){.ion-float-md-left{float:left!important}.ion-float-md-right{float:right!important}.ion-float-md-start{float:left!important}:host-context([dir=rtl]) .ion-float-md-start{float:right!important}[dir=rtl] .ion-float-md-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-md-start:dir(rtl){float:right!important}}.ion-float-md-end{float:right!important}:host-context([dir=rtl]) .ion-float-md-end{float:left!important}[dir=rtl] .ion-float-md-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-md-end:dir(rtl){float:left!important}}}@media(min-width:992px){.ion-float-lg-left{float:left!important}.ion-float-lg-right{float:right!important}.ion-float-lg-start{float:left!important}:host-context([dir=rtl]) .ion-float-lg-start{float:right!important}[dir=rtl] .ion-float-lg-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-lg-start:dir(rtl){float:right!important}}.ion-float-lg-end{float:right!important}:host-context([dir=rtl]) .ion-float-lg-end{float:left!important}[dir=rtl] .ion-float-lg-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-lg-end:dir(rtl){float:left!important}}}@media(min-width:1200px){.ion-float-xl-left{float:left!important}.ion-float-xl-right{float:right!important}.ion-float-xl-start{float:left!important}:host-context([dir=rtl]) .ion-float-xl-start{float:right!important}[dir=rtl] .ion-float-xl-start{float:right!important}@supports selector(:dir(rtl)){.ion-float-xl-start:dir(rtl){float:right!important}}.ion-float-xl-end{float:right!important}:host-context([dir=rtl]) .ion-float-xl-end{float:left!important}[dir=rtl] .ion-float-xl-end{float:left!important}@supports selector(:dir(rtl)){.ion-float-xl-end:dir(rtl){float:left!important}}}.ion-text-center{text-align:center!important}.ion-text-justify{text-align:justify!important}.ion-text-start{text-align:start!important}.ion-text-end{text-align:end!important}.ion-text-left{text-align:left!important}.ion-text-right{text-align:right!important}.ion-text-nowrap{white-space:nowrap!important}.ion-text-wrap{white-space:normal!important}@media(min-width:576px){.ion-text-sm-center{text-align:center!important}.ion-text-sm-justify{text-align:justify!important}.ion-text-sm-start{text-align:start!important}.ion-text-sm-end{text-align:end!important}.ion-text-sm-left{text-align:left!important}.ion-text-sm-right{text-align:right!important}.ion-text-sm-nowrap{white-space:nowrap!important}.ion-text-sm-wrap{white-space:normal!important}}@media(min-width:768px){.ion-text-md-center{text-align:center!important}.ion-text-md-justify{text-align:justify!important}.ion-text-md-start{text-align:start!important}.ion-text-md-end{text-align:end!important}.ion-text-md-left{text-align:left!important}.ion-text-md-right{text-align:right!important}.ion-text-md-nowrap{white-space:nowrap!important}.ion-text-md-wrap{white-space:normal!important}}@media(min-width:992px){.ion-text-lg-center{text-align:center!important}.ion-text-lg-justify{text-align:justify!important}.ion-text-lg-start{text-align:start!important}.ion-text-lg-end{text-align:end!important}.ion-text-lg-left{text-align:left!important}.ion-text-lg-right{text-align:right!important}.ion-text-lg-nowrap{white-space:nowrap!important}.ion-text-lg-wrap{white-space:normal!important}}@media(min-width:1200px){.ion-text-xl-center{text-align:center!important}.ion-text-xl-justify{text-align:justify!important}.ion-text-xl-start{text-align:start!important}.ion-text-xl-end{text-align:end!important}.ion-text-xl-left{text-align:left!important}.ion-text-xl-right{text-align:right!important}.ion-text-xl-nowrap{white-space:nowrap!important}.ion-text-xl-wrap{white-space:normal!important}}.ion-text-uppercase{text-transform:uppercase!important}.ion-text-lowercase{text-transform:lowercase!important}.ion-text-capitalize{text-transform:capitalize!important}@media(min-width:576px){.ion-text-sm-uppercase{text-transform:uppercase!important}.ion-text-sm-lowercase{text-transform:lowercase!important}.ion-text-sm-capitalize{text-transform:capitalize!important}}@media(min-width:768px){.ion-text-md-uppercase{text-transform:uppercase!important}.ion-text-md-lowercase{text-transform:lowercase!important}.ion-text-md-capitalize{text-transform:capitalize!important}}@media(min-width:992px){.ion-text-lg-uppercase{text-transform:uppercase!important}.ion-text-lg-lowercase{text-transform:lowercase!important}.ion-text-lg-capitalize{text-transform:capitalize!important}}@media(min-width:1200px){.ion-text-xl-uppercase{text-transform:uppercase!important}.ion-text-xl-lowercase{text-transform:lowercase!important}.ion-text-xl-capitalize{text-transform:capitalize!important}}.ion-align-self-start{align-self:flex-start!important}.ion-align-self-end{align-self:flex-end!important}.ion-align-self-center{align-self:center!important}.ion-align-self-stretch{align-self:stretch!important}.ion-align-self-baseline{align-self:baseline!important}.ion-align-self-auto{align-self:auto!important}.ion-wrap{flex-wrap:wrap!important}.ion-nowrap{flex-wrap:nowrap!important}.ion-wrap-reverse{flex-wrap:wrap-reverse!important}.ion-justify-content-start{justify-content:flex-start!important}.ion-justify-content-center{justify-content:center!important}.ion-justify-content-end{justify-content:flex-end!important}.ion-justify-content-around{justify-content:space-around!important}.ion-justify-content-between{justify-content:space-between!important}.ion-justify-content-evenly{justify-content:space-evenly!important}.ion-align-items-start{align-items:flex-start!important}.ion-align-items-center{align-items:center!important}.ion-align-items-end{align-items:flex-end!important}.ion-align-items-stretch{align-items:stretch!important}.ion-align-items-baseline{align-items:baseline!important}.ion-hide,.ion-hide-down,.ion-hide-up{display:none!important}@media(min-width:576px){.ion-hide-sm-up{display:none!important}}@media(max-width:575.98px){.ion-hide-sm-down{display:none!important}}@media(min-width:768px){.ion-hide-md-up{display:none!important}}@media(max-width:767.98px){.ion-hide-md-down{display:none!important}}@media(min-width:992px){.ion-hide-lg-up{display:none!important}}@media(max-width:991.98px){.ion-hide-lg-down{display:none!important}}@media(min-width:1200px){.ion-hide-xl-up{display:none!important}}@media(max-width:1199.98px){.ion-hide-xl-down{display:none!important}}:root{--ion-color-primary:#3776ab;--ion-color-primary-rgb:55,118,171;--ion-color-primary-contrast:#fff;--ion-color-primary-shade:#2b5d8a;--ion-color-primary-tint:#4a8bc2;--ion-color-secondary:#ffd43b;--ion-color-secondary-rgb:255,212,59;--ion-color-secondary-contrast:#000;--ion-color-secondary-shade:#e6be2a;--ion-color-secondary-tint:#ffe066;--ion-color-tertiary:#6a4c93;--ion-color-tertiary-rgb:106,76,147;--ion-color-tertiary-contrast:#fff;--ion-color-success:#4caf50;--ion-color-success-rgb:76,175,80;--ion-color-success-contrast:#fff;--ion-color-success-shade:#3d8b40;--ion-color-success-tint:#81c784;--ion-color-warning:#ff9800;--ion-color-warning-rgb:255,152,0;--ion-color-warning-contrast:#000;--ion-color-warning-shade:#e08600;--ion-color-warning-tint:#ffb74d;--ion-color-danger:#f44336;--ion-color-danger-rgb:244,67,54;--ion-color-danger-contrast:#fff;--ion-color-danger-shade:#d33a2f;--ion-color-danger-tint:#e57373;--ion-color-info:#2196f3;--ion-color-info-rgb:33,150,243;--ion-color-info-contrast:#fff;--ion-color-info-shade:#1a78c2;--ion-color-info-tint:#64b5f6;--ion-color-dark:#333;--ion-color-dark-rgb:51,51,51;--ion-color-dark-contrast:#fff;--ion-color-medium:#666;--ion-color-medium-rgb:102,102,102;--ion-color-medium-contrast:#fff;--ion-color-light:#f5f5f5;--ion-color-light-rgb:245,245,245;--ion-color-light-contrast:#333;--color-primary:#3776ab;--color-primaryDark:#2b5d8a;--color-primaryLight:#4a8bc2;--color-secondary:#ffd43b;--color-secondaryDark:#e6be2a;--color-secondaryLight:#ffe066;--color-accent:#4caf50;--color-success:#4caf50;--color-successLight:#81c784;--color-error:#f44336;--color-errorLight:#e57373;--color-warning:#ff9800;--color-warningLight:#ffb74d;--color-info:#2196f3;--color-infoLight:#64b5f6;--color-background:#fff;--color-backgroundDark:#1a1a1a;--color-surface:#f5f5f5;--color-surfaceDark:#2a2a2a;--color-text:#333;--color-textDark:#e0e0e0;--color-textSecondary:#666;--color-textSecondaryDark:#aaa;--font-family:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-family-code:"Fira Code","Courier New",monospace;--font-size-base:16px;--font-size-small:14px;--font-size-large:18px;--font-size-xl:24px;--font-size-xxl:32px;--font-size-code:14px;--line-height:1.6;--line-height-code:1.5;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 6px #0000001a;--shadow-lg:0 10px 15px #0000001a;--shadow-xl:0 20px 25px #00000026;--transition-fast:150ms ease;--transition-normal:300ms ease;--transition-slow:500ms ease}body.dark{--ion-background-color:#1a1a1a;--ion-background-color-rgb:26,26,26;--ion-text-color:#e0e0e0;--ion-text-color-rgb:224,224,224;--ion-color-step-50:#1e1e1e;--ion-color-step-100:#2a2a2a;--ion-color-step-150:#363636;--ion-color-step-200:#414141;--ion-color-step-250:#4d4d4d;--ion-color-step-300:#595959;--ion-color-step-350:#656565;--ion-color-step-400:#717171;--ion-color-step-450:#7d7d7d;--ion-color-step-500:#898989;--ion-color-step-550:#949494;--ion-color-step-600:#a0a0a0;--ion-color-step-650:#acacac;--ion-color-step-700:#b8b8b8;--ion-color-step-750:#c4c4c4;--ion-color-step-800:#d0d0d0;--ion-color-step-850:#dbdbdb;--ion-color-step-900:#e7e7e7;--ion-color-step-950:#f3f3f3}.ios{--ion-safe-area-top:env(safe-area-inset-top);--ion-safe-area-bottom:env(safe-area-inset-bottom);--ion-safe-area-left:env(safe-area-inset-left);--ion-safe-area-right:env(safe-area-inset-right)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes wiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(30px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}@keyframes pop{0%{opacity:0;transform:scale(.5)}80%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}@keyframes confettiFall{0%{opacity:1;transform:translateY(-100%) rotate(0deg)}to{opacity:0;transform:translateY(100vh) rotate(2turn)}}@keyframes levelUpGlow{0%,to{box-shadow:0 0 10px var(--color-primary)}50%{box-shadow:0 0 30px var(--color-primary),0 0 60px var(--color-secondary)}}.animate-fadeIn{animation:fadeIn var(--transition-normal) ease-out}.animate-fadeInUp{animation:fadeInUp var(--transition-normal) ease-out}.animate-fadeInDown{animation:fadeInDown var(--transition-normal) ease-out}.animate-scaleIn{animation:scaleIn var(--transition-normal) ease-out}.animate-bounce{animation:bounce 1s ease infinite}.animate-pulse{animation:pulse 2s ease infinite}.animate-shake{animation:shake .5s ease}.animate-spin{animation:spin 1s linear infinite}.animate-float{animation:float 3s ease-in-out infinite}.animate-wiggle{animation:wiggle 1s ease infinite}.animate-slideInRight{animation:slideInRight var(--transition-normal) ease-out}.animate-slideInLeft{animation:slideInLeft var(--transition-normal) ease-out}.animate-pop{animation:pop .4s ease-out}.hover-bounce:hover{animation:bounce .5s ease}.hover-pulse:hover{animation:pulse .5s ease}.hover-scale:hover{transform:scale(1.05);transition:transform var(--transition-fast)}.hover-lift:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);transition:all var(--transition-fast)}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.transition-all{transition:all var(--transition-normal)}.transition-fast{transition:all var(--transition-fast)}.transition-slow{transition:all var(--transition-slow)}.celebration-active{animation:levelUpGlow 1s ease infinite}.loading-spinner{animation:spin 1s linear infinite;border:4px solid var(--color-surface);border-radius:50%;border-top-color:var(--color-primary);height:40px;width:40px}@keyframes shimmer{0%{background-position:-200px 0}to{background-position:calc(200px + 100%) 0}}.skeleton{animation:shimmer 1.5s ease-in-out infinite;background:linear-gradient(90deg,var(--color-surface) 0,#e0e0e0 50%,var(--color-surface) 100%);background-size:200px 100%;border-radius:var(--radius-sm)}body.dark .skeleton{background:linear-gradient(90deg,var(--color-surface) 0,#3a3a3a 50%,var(--color-surface) 100%);background-size:200px 100%}@keyframes progressFill{0%{width:0}}.progress-animated{animation:progressFill 1s ease-out}@keyframes badgeUnlock{0%{opacity:0;transform:scale(0) rotate(-180deg)}60%{transform:scale(1.2) rotate(10deg)}to{opacity:1;transform:scale(1) rotate(0deg)}}.badge-unlock{animation:badgeUnlock .8s cubic-bezier(.175,.885,.32,1.275)}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.check-animated path{stroke-dasharray:100;animation:checkmark .5s ease-out forwards}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-background);color:var(--color-text);font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height)}.loading-screen{align-items:center;background:linear-gradient(135deg,#1a1a2e,#16213e 50%,#0f3460);bottom:0;color:#fff;display:flex;flex-direction:column;justify-content:center;left:0;min-height:100vh;overflow:hidden;position:fixed;right:0;top:0;z-index:9999}.loading-screen:before{animation:gradientPulse 8s ease-in-out infinite;background:radial-gradient(circle at 20% 80%,#3776ab4d 0,#0000 50%),radial-gradient(circle at 80% 20%,#ffd43b33 0,#0000 50%),radial-gradient(circle at 40% 40%,#4caf5026 0,#0000 40%);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes gradientPulse{0%,to{opacity:.8}50%{opacity:1}}.loading-particles{bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.particle{animation:particleFloat 15s linear infinite;color:#ffffff26;font-family:var(--font-family-code);font-size:14px;position:absolute;white-space:nowrap}.particle-1{animation-delay:0s;color:#3776ab66;font-size:18px;left:10%;top:-20px}.particle-2{animation-delay:2s;color:#ffd43b4d;font-size:16px;left:25%;top:-20px}.particle-3{animation-delay:4s;color:#4caf504d;font-size:20px;left:40%;top:-20px}.particle-4{animation-delay:6s;color:#fff3;font-size:14px;left:55%;top:-20px}.particle-5{animation-delay:8s;color:#3776ab59;font-size:22px;left:70%;top:-20px}.particle-6{animation-delay:10s;color:#ffd43b40;font-size:16px;left:85%;top:-20px}.particle-7{animation-delay:12s;color:#4caf5040;font-size:18px;left:15%;top:-20px}.particle-8{animation-delay:14s;color:#ffffff26;font-size:20px;left:60%;top:-20px}@keyframes particleFloat{0%{opacity:0;transform:translateY(0) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(100vh) rotate(1turn)}}.loading-icons{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.floating-icon{animation:iconFloat 6s ease-in-out infinite;filter:drop-shadow(0 0 10px rgba(255,255,255,.3));font-size:24px;position:absolute}.icon-1{animation-delay:0s;left:8%;top:15%}.icon-2{animation-delay:1.5s;right:12%;top:25%}.icon-3{animation-delay:3s;bottom:20%;left:15%}.icon-4{animation-delay:4.5s;bottom:15%;right:8%}@keyframes iconFloat{0%,to{opacity:.6;transform:translateY(0) scale(1)}50%{opacity:1;transform:translateY(-15px) scale(1.1)}}.loading-content{align-items:center;animation:contentFadeIn .8s ease-out;display:flex;flex-direction:column;gap:var(--spacing-lg);z-index:10}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading-mascot-container{align-items:center;display:flex;justify-content:center;position:relative}.mascot-glow{animation:mascotGlow 3s ease-in-out infinite;background:radial-gradient(circle,#3776ab80 0,#0000 70%);border-radius:50%;height:180px;position:absolute;width:180px}@keyframes mascotGlow{0%,to{opacity:.5;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.loading-mascot{animation:mascotBounce 2s ease-in-out infinite;filter:drop-shadow(0 10px 30px rgba(0,0,0,.3));height:140px;position:relative;width:140px;z-index:2}@keyframes mascotBounce{0%,to{transform:translateY(0) rotate(-2deg)}25%{transform:translateY(-8px) rotate(2deg)}50%{transform:translateY(0) rotate(-2deg)}75%{transform:translateY(-4px) rotate(1deg)}}.loading-title{align-items:center;display:flex;font-size:28px;font-weight:700;gap:8px;letter-spacing:-.5px;margin:0}.title-bracket{animation:bracketPulse 2s ease-in-out infinite;color:var(--color-secondary);font-family:var(--font-family-code);font-weight:400}@keyframes bracketPulse{0%,to{opacity:.7}50%{opacity:1}}.title-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#e0e0e0);-webkit-background-clip:text;background-clip:text}.loading-subtitle{color:#ffffffb3;font-size:14px;font-weight:400;letter-spacing:.5px;margin:-8px 0 0}.loading-message{align-items:center;animation:messageFadeIn .5s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #ffffff26;border-radius:50px;display:flex;gap:10px;padding:12px 24px}@keyframes messageFadeIn{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.message-emoji{animation:emojiWiggle 1s ease-in-out infinite;font-size:20px}@keyframes emojiWiggle{0%,to{transform:rotate(0deg)}25%{transform:rotate(-10deg)}75%{transform:rotate(10deg)}}.message-text{color:#ffffffe6;font-size:15px;font-weight:500}.loading-progress{align-items:center;display:flex;gap:8px;margin-top:8px}.progress-bracket{color:var(--color-secondary);font-family:var(--font-family-code);font-size:18px;font-weight:600}.progress-track{background:#ffffff26;border-radius:4px;height:8px;overflow:hidden;position:relative;width:180px}.progress-fill-animated{animation:progressFillAnim 2s ease-in-out infinite;background:linear-gradient(90deg,var(--color-primary),var(--color-secondary),var(--color-success));background-size:200% 100%;border-radius:4px;height:100%;left:0;position:absolute;top:0;width:0}@keyframes progressFillAnim{0%{background-position:0 50%;width:0}50%{background-position:100% 50%;width:70%}to{background-position:0 50%;width:100%}}.progress-cursor{animation:cursorBlink .8s ease-in-out infinite;background:#fff;border-radius:1px;height:12px;position:absolute;right:4px;top:50%;transform:translateY(-50%);width:2px}@keyframes cursorBlink{0%,50%{opacity:1}51%,to{opacity:0}}.loading-dots{display:flex;gap:8px;margin-top:8px}.dot{animation:dotPulse 1.4s ease-in-out infinite;background:#fff9;border-radius:50%;height:8px;width:8px}.dot:first-child{animation-delay:0s}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,80%,to{opacity:.5;transform:scale(.8)}40%{background:var(--color-secondary);opacity:1;transform:scale(1.2)}}@media (prefers-reduced-motion:reduce){.dot,.floating-icon,.loading-mascot,.loading-screen:before,.mascot-glow,.message-emoji,.particle,.progress-cursor,.progress-fill-animated{animation:none}.progress-fill-animated{width:60%}}body.dark .loading-screen{background:linear-gradient(135deg,#0d0d1a,#0f1624 50%,#0a1628)}ion-tab-bar{--background:var(--color-background);--border:1px solid var(--color-surface);padding-bottom:env(safe-area-inset-bottom)}ion-tab-button{--color:var(--color-textSecondary);--color-selected:var(--color-primary)}ion-tab-button ion-icon{font-size:24px}ion-tab-button ion-label{font-size:11px;font-weight:500}.page-container{margin:0 auto;max-width:600px}.card,.page-container{padding:var(--spacing-md)}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.card,.card-header{margin-bottom:var(--spacing-md)}.card-header{align-items:center;display:flex;gap:var(--spacing-sm)}.card-title{color:var(--color-text);font-size:var(--font-size-large);font-weight:600;margin:0}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-size:var(--font-size-base);font-weight:500;gap:var(--spacing-sm);justify-content:center;padding:var(--spacing-sm) var(--spacing-md);transition:all var(--transition-fast)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primaryDark)}.btn-secondary{background:var(--color-secondary);color:#333}.btn-success{background:var(--color-success);color:#fff}.btn-outline{background:#0000;border:2px solid var(--color-primary);color:var(--color-primary)}.btn-outline:hover{background:var(--color-primary);color:#fff}.btn-large{font-size:var(--font-size-large);padding:var(--spacing-md) var(--spacing-lg)}.btn-full{width:100%}.btn:disabled{cursor:not-allowed;opacity:.5}.code-block{background:#2d2d2d;border-radius:var(--radius-md);color:#f8f8f2;font-size:var(--font-size-code);line-height:var(--line-height-code);overflow-x:auto;padding:var(--spacing-md)}.code-block,.code-inline{font-family:var(--font-family-code)}.code-inline{background:#00000014;border-radius:4px;font-size:.9em;padding:2px 6px}.progress-bar{background:var(--color-surface);height:8px;overflow:hidden}.progress-bar,.progress-fill{border-radius:var(--radius-full)}.progress-fill{background:var(--color-primary);height:100%;transition:width var(--transition-normal)}.progress-fill.success{background:var(--color-success)}.badge{align-items:center;border-radius:var(--radius-full);display:inline-flex;font-size:12px;font-weight:500;padding:4px 8px}.badge-primary{background:var(--color-primary);color:#fff}.badge-success{background:var(--color-success);color:#fff}.badge-warning{background:var(--color-warning);color:#333}.badge-new{background:var(--color-secondary);color:#333}.stats-grid{grid-gap:var(--spacing-md);display:grid;gap:var(--spacing-md);grid-template-columns:repeat(2,1fr)}.stat-item{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--spacing-md);text-align:center}.stat-value{color:var(--color-primary);font-size:var(--font-size-xxl);font-weight:700}.stat-label{color:var(--color-textSecondary);font-size:var(--font-size-small)}.empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:var(--spacing-xl);text-align:center}.empty-state-icon{font-size:64px;margin-bottom:var(--spacing-md);opacity:.5}.empty-state-text{color:var(--color-textSecondary);margin-bottom:var(--spacing-md)}.section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--spacing-md)}.section-title{color:var(--color-text);font-size:var(--font-size-large);font-weight:600;margin:0}.section-link{color:var(--color-primary);font-size:var(--font-size-small);font-weight:500;text-decoration:none}.list-item{align-items:center;background:var(--color-surface);border-radius:var(--radius-md);cursor:pointer;display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-sm);padding:var(--spacing-md);transition:all var(--transition-fast)}.list-item:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.list-item-icon{align-items:center;border-radius:var(--radius-md);display:flex;font-size:24px;height:48px;justify-content:center;width:48px}.list-item-content{flex:1 1}.list-item-title{color:var(--color-text);font-weight:500;margin-bottom:2px}.list-item-subtitle{color:var(--color-textSecondary);font-size:var(--font-size-small)}ion-modal{--border-radius:var(--radius-lg)}ion-modal .modal-content{padding:var(--spacing-lg)}.toast-success{--background:var(--color-success);--color:#fff}.toast-error{--background:var(--color-error);--color:#fff}.scroll-horizontal{-webkit-overflow-scrolling:touch;display:flex;gap:var(--spacing-md);overflow-x:auto;padding-bottom:var(--spacing-sm);scrollbar-width:none}.scroll-horizontal::-webkit-scrollbar{display:none}.avatar{border-radius:50%;height:48px;object-fit:cover;width:48px}.avatar-large{height:80px;width:80px}.separator{background:var(--color-surface);height:1px;margin:var(--spacing-md) 0}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-textSecondary)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.text-center{text-align:center}.text-small{font-size:var(--font-size-small)}.text-large{font-size:var(--font-size-large)}.text-bold{font-weight:600}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.flex{display:flex}.flex-center{justify-content:center}.flex-between,.flex-center{align-items:center;display:flex}.flex-between{justify-content:space-between}.flex-col{flex-direction:column}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}body.dark{--color-background:#1a1a1a;--color-surface:#2a2a2a;--color-text:#e0e0e0;--color-textSecondary:#aaa}body.dark .code-inline{background:#ffffff1a}body.dark ion-tab-bar{--background:#1a1a1a;--border:1px solid #2a2a2a}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-area-top{padding-top:env(safe-area-inset-top)}
/*# sourceMappingURL=main.e826c132.css.map*/