.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:linear-gradient(135deg,var(--color-bg) 0%,#1a1a2e 50%,#16213e 100%)}.auth-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-2xl);width:100%;max-width:400px;box-shadow:var(--shadow-xl)}.auth-brand{text-align:center;margin-bottom:var(--space-xl)}.auth-logo{width:64px;height:64px;background:linear-gradient(135deg,var(--color-quest-cyan),var(--color-quest-purple));border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-md);color:#fff}.auth-brand h1{font-size:var(--text-2xl);font-weight:700;background:linear-gradient(135deg,var(--color-quest-cyan),var(--color-quest-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.auth-tagline{color:var(--color-text-secondary);font-size:var(--text-sm);margin-top:var(--space-xs)}.google-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:#fff;color:#333;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.google-btn:hover:not(:disabled){background:#f5f5f5;box-shadow:var(--shadow-md)}.google-btn:disabled{opacity:.5;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-lg) 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.auth-divider span{color:var(--color-text-tertiary);font-size:var(--text-xs);text-transform:uppercase}.auth-field{position:relative;margin-bottom:var(--space-md)}.auth-field .field-icon{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-tertiary)}.auth-field input{width:100%;padding:var(--space-md) var(--space-md) var(--space-md) 40px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);transition:border-color var(--transition-fast)}.auth-field input:focus{outline:none;border-color:var(--color-quest-cyan)}.auth-field input::placeholder{color:var(--color-text-tertiary)}.auth-error{padding:var(--space-sm) var(--space-md);background:#ef44441a;border:1px solid var(--color-danger);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--text-sm);margin-bottom:var(--space-md)}.auth-message{padding:var(--space-sm) var(--space-md);background:#10b9811a;border:1px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-success);font-size:var(--text-sm);margin-bottom:var(--space-md)}.auth-submit{width:100%;justify-content:center;padding:var(--space-md);font-size:var(--text-base);background:linear-gradient(135deg,var(--color-quest-cyan),var(--color-primary))}.auth-submit:hover:not(:disabled){background:linear-gradient(135deg,#06b6d4,var(--color-primary-dark))}.auth-switch{text-align:center;margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-text-secondary)}.auth-switch button{background:none;border:none;color:var(--color-quest-cyan);font-size:var(--text-sm);font-weight:500;cursor:pointer;margin-left:var(--space-xs)}.auth-switch button:hover{text-decoration:underline}@media (max-width: 480px){.auth-card{padding:var(--space-xl)}}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background:var(--color-bg-secondary);border-right:1px solid var(--color-border);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-lg);cursor:pointer;border-bottom:1px solid var(--color-border)}.sidebar-logo{width:36px;height:36px;background:linear-gradient(135deg,var(--color-quest-cyan),var(--color-quest-purple));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.sidebar-title{font-size:var(--text-lg);font-weight:700;background:linear-gradient(135deg,var(--color-quest-cyan),var(--color-quest-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.sidebar-nav{flex:1;padding:var(--space-sm);display:flex;flex-direction:column;gap:2px}.sidebar-item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);width:100%;text-align:left;min-height:40px}.sidebar-item:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.sidebar-item.active{background:#22d3ee1a;color:var(--color-quest-cyan)}.sidebar-item.parent-zone{margin-top:auto}.sidebar-divider{flex-grow:1}.pending-badge{margin-left:auto;background:var(--color-warning);color:#000;font-size:var(--text-xs);font-weight:700;padding:1px 7px;border-radius:var(--radius-full);min-width:20px;text-align:center}.sidebar-toggle{display:none;position:fixed;top:6px;left:var(--space-sm);z-index:200;background:transparent;border:none;color:var(--color-text);padding:var(--space-sm);cursor:pointer;min-width:44px;min-height:44px;align-items:center;justify-content:center}.sidebar-overlay{display:none}@media (max-width: 768px){.sidebar{transform:translate(-100%);transition:transform var(--transition-base)}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:flex}.sidebar-overlay{display:block;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99}}.header{display:flex;align-items:center;justify-content:flex-end;padding:var(--space-sm) var(--space-xl);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);min-height:var(--header-height)}.header-right{display:flex;align-items:center;gap:var(--space-md)}.header-user{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-text-secondary);font-size:var(--text-xs)}.header-signout{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);min-width:32px;min-height:32px}.header-signout:hover{background:var(--color-bg-tertiary);color:var(--color-danger)}@media (max-width: 768px){.header{padding-left:60px}}.kid-avatar{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.kid-avatar-circle{display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:color-mix(in srgb,var(--kid-color) 20%,transparent);border:2px solid var(--kid-color)}.kid-avatar-sm .kid-avatar-circle{width:32px;height:32px}.kid-avatar-initial{font-weight:800;color:var(--kid-color);line-height:1;-webkit-user-select:none;user-select:none}.kid-avatar-sm .kid-avatar-initial{font-size:14px}.kid-avatar-md .kid-avatar-circle{width:44px;height:44px}.kid-avatar-md .kid-avatar-initial{font-size:20px}.kid-avatar-lg .kid-avatar-circle{width:64px;height:64px}.kid-avatar-lg .kid-avatar-initial{font-size:32px}.kid-avatar-name{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary)}.progress-bar-wrapper{display:flex;align-items:center;gap:var(--space-sm);width:100%}.progress-bar-track{flex:1;height:12px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.progress-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .5s cubic-bezier(.34,1.56,.64,1);min-width:4px}.progress-bar-fill.complete{box-shadow:0 0 12px #10b98180}.progress-bar-label{font-size:var(--text-sm);font-weight:700;color:var(--color-text);white-space:nowrap;min-width:45px;text-align:right}.log-button-wrapper{position:relative;display:inline-flex}.log-button{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background:linear-gradient(135deg,var(--color-quest-cyan),var(--color-primary));color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:all var(--transition-fast);min-height:44px;min-width:44px;white-space:nowrap}.log-button:hover:not(.disabled){transform:scale(1.05);box-shadow:var(--shadow-glow)}.log-button:active:not(.disabled){transform:scale(.95)}.log-button.pop{animation:logPop .5s cubic-bezier(.34,1.56,.64,1)}@keyframes logPop{0%{transform:scale(1)}20%{transform:scale(1.35)}40%{transform:scale(.9)}60%{transform:scale(1.1)}to{transform:scale(1)}}.log-button.disabled{opacity:.4;cursor:not-allowed;background:var(--color-bg-tertiary)}.log-float-up{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:var(--text-2xl);font-weight:900;color:var(--color-quest-gold);text-shadow:0 0 12px rgba(251,191,36,.6);pointer-events:none;animation:floatUp .8s ease-out forwards;z-index:10}@keyframes floatUp{0%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}50%{opacity:1;transform:translate(-50%) translateY(-30px) scale(1.4)}to{opacity:0;transform:translate(-50%) translateY(-60px) scale(.8)}}.log-burst{position:absolute;top:50%;left:50%;font-size:16px;pointer-events:none;animation:burstOut .7s ease-out forwards;z-index:10}@keyframes burstOut{0%{opacity:1;transform:translate(-50%,-50%) translate(0) scale(.5)}50%{opacity:1;transform:translate(-50%,-50%) translate(var(--burst-x),var(--burst-y)) scale(1.2)}to{opacity:0;transform:translate(-50%,-50%) translate(calc(var(--burst-x) * 1.5),calc(var(--burst-y) * 1.5)) scale(.3)}}.quest-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);transition:all var(--transition-fast);border-left:4px solid var(--quest-color, var(--color-quest-cyan));animation:questGlow 3s ease-in-out infinite}@keyframes questGlow{0%,to{box-shadow:0 0 4px 1px color-mix(in srgb,var(--quest-color, var(--color-quest-cyan)) 15%,transparent)}50%{box-shadow:0 0 20px 5px color-mix(in srgb,var(--quest-color, var(--color-quest-cyan)) 30%,transparent)}}.quest-card:hover{border-color:var(--quest-color);box-shadow:0 0 24px 6px color-mix(in srgb,var(--quest-color, var(--color-quest-cyan)) 35%,transparent);animation:none}.quest-card.completed{opacity:.7;border-left-color:var(--color-success);animation:none}.quest-card-header{display:flex;align-items:center;gap:var(--space-sm)}.quest-card-info{flex:1;min-width:0}.quest-card-kid{font-size:var(--text-sm);font-weight:700;color:var(--color-text-secondary)}.quest-card-title{font-size:var(--text-lg);font-weight:700;color:var(--color-text);display:flex;align-items:center;gap:var(--space-xs)}.quest-emoji{font-size:var(--text-xl)}.progress-toggle-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:4px 6px;color:var(--color-text-tertiary);cursor:pointer;opacity:.5;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast);flex-shrink:0}.progress-toggle-btn:hover{opacity:1;color:var(--color-primary);background:var(--color-bg-tertiary)}.family-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:linear-gradient(135deg,#a78bfa26,#f472b626);color:var(--color-quest-purple);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;flex-shrink:0}.stepping-stones{display:flex;align-items:center;gap:6px;padding:var(--space-xs) 0;flex-wrap:wrap}.stone{flex:1;min-width:8px;height:14px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);border:2px solid color-mix(in srgb,var(--stone-color) 30%,transparent);transition:all .4s cubic-bezier(.34,1.56,.64,1)}.stone.filled{background:var(--stone-color);border-color:var(--stone-color);box-shadow:0 0 6px color-mix(in srgb,var(--stone-color) 40%,transparent)}.stone.latest{animation:stonePulse 1.5s ease-in-out infinite}@keyframes stonePulse{0%,to{transform:scale(1)}50%{transform:scale(1.15);box-shadow:0 0 10px color-mix(in srgb,var(--stone-color) 60%,transparent)}}.binary-check-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-lg);background:linear-gradient(135deg,var(--color-quest-green),var(--color-success));color:#fff;border:none;border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:all var(--transition-fast);min-height:44px;min-width:44px}.binary-check-btn:hover:not(.disabled){transform:scale(1.05);box-shadow:0 0 16px #10b98166}.binary-check-btn:active:not(.disabled){transform:scale(.95)}.binary-check-btn.disabled{opacity:.4;cursor:not-allowed;background:var(--color-bg-tertiary)}.savings-log{display:flex;align-items:center;gap:4px}.savings-dollar{font-size:var(--text-sm);font-weight:700;color:var(--color-quest-green)}.savings-input{width:60px;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text);font-size:var(--text-sm);text-align:center}.savings-input:focus{outline:none;border-color:var(--color-quest-green);box-shadow:0 0 0 2px #10b98126}.quest-card-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.quest-reward{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-quest-gold);background:#fbbf241a;padding:3px 10px;border-radius:var(--radius-full)}.quest-card-actions{margin-left:auto}.quest-complete-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:#10b98126;color:var(--color-success);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700}.quest-card-dates{display:flex;align-items:center;gap:var(--space-md);font-size:11px;color:var(--color-text-tertiary);opacity:.6;border-top:1px solid var(--color-border);padding-top:var(--space-sm);margin-top:calc(var(--space-xs) * -1)}.quest-card-undo{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:2px;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast);margin-left:auto;flex-shrink:0}.quest-card:hover .quest-card-undo{opacity:.5}.quest-card-undo:hover{opacity:1!important;color:var(--color-danger)}@media (max-width: 480px){.quest-card-footer{flex-direction:column;align-items:stretch}.quest-card-actions{margin-left:0}.log-button,.binary-check-btn{width:100%;justify-content:center}.savings-log{width:100%}.savings-input{flex:1}.stepping-stones{gap:4px}.stone{height:12px;min-width:6px}.quest-card-dates{flex-direction:column;gap:2px;align-items:flex-start}.progress-toggle-btn{opacity:.5}}.quest-filters{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.quest-filter-pills{display:flex;gap:var(--space-sm);flex-wrap:wrap}.filter-pill{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);min-height:36px}.filter-pill:hover{border-color:var(--color-text-tertiary);color:var(--color-text)}.filter-pill.active{background:#22d3ee26;border-color:var(--color-quest-cyan);color:var(--color-quest-cyan)}.filter-select{padding:var(--space-xs) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);cursor:pointer;min-height:36px}.filter-select:focus{outline:none;border-color:var(--color-quest-cyan)}@media (max-width: 480px){.quest-filters{flex-direction:column;align-items:stretch}}.celebration-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;animation:celebOverlayIn .4s ease-out}@keyframes celebOverlayIn{0%{opacity:0}to{opacity:1}}.celebration-confetti{position:fixed;top:0;left:0;right:0;bottom:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-20px;border-radius:2px;animation:confettiFall linear forwards}.confetti-piece.circle{border-radius:50%}.confetti-piece.strip{border-radius:1px}.confetti-piece.star-shape{clip-path:polygon(50% 0%,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}@keyframes confettiFall{0%{transform:translateY(0) translate(0) rotate(0);opacity:1}50%{transform:translateY(50vh) translate(var(--wobble, 0px)) rotate(540deg);opacity:1}to{transform:translateY(105vh) translate(calc(var(--wobble, 0px) * -1)) rotate(1080deg);opacity:0}}.firework-burst{position:fixed;width:8px;height:8px;border-radius:50%;pointer-events:none;animation:fireworkPop .8s ease-out forwards;animation-delay:var(--fw-delay, 0s);opacity:0}@keyframes fireworkPop{0%{opacity:0;box-shadow:none}10%{opacity:1;box-shadow:0 -30px 0 var(--fw-color),30px 0 0 var(--fw-color),0 30px 0 var(--fw-color),-30px 0 0 var(--fw-color),21px -21px 0 var(--fw-color),21px 21px 0 var(--fw-color),-21px 21px 0 var(--fw-color),-21px -21px 0 var(--fw-color)}50%{opacity:1;box-shadow:0 -60px 0 var(--fw-color),60px 0 0 var(--fw-color),0 60px 0 var(--fw-color),-60px 0 0 var(--fw-color),42px -42px 0 var(--fw-color),42px 42px 0 var(--fw-color),-42px 42px 0 var(--fw-color),-42px -42px 0 var(--fw-color)}to{opacity:0;box-shadow:0 -80px 0 transparent,80px 0 0 transparent,0 80px 0 transparent,-80px 0 0 transparent,56px -56px 0 transparent,56px 56px 0 transparent,-56px 56px 0 transparent,-56px -56px 0 transparent}}.celebration-modal{background:var(--color-bg);border-radius:var(--radius-xl);border:2px solid var(--color-quest-gold);padding:var(--space-2xl) var(--space-xl);text-align:center;max-width:420px;width:90%;position:relative;overflow:hidden;animation:celebModalPop .6s cubic-bezier(.34,1.56,.64,1);box-shadow:0 0 40px #fbbf244d,0 0 80px #fbbf2426,inset 0 0 30px #fbbf240d}@keyframes celebModalPop{0%{transform:scale(.3) rotate(-5deg);opacity:0}60%{transform:scale(1.05) rotate(1deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.celebration-glow{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:var(--radius-xl);border:3px solid var(--color-quest-gold);animation:glowPulse 1.5s ease-in-out infinite;pointer-events:none}@keyframes glowPulse{0%,to{opacity:.3;box-shadow:0 0 15px #fbbf2433}50%{opacity:1;box-shadow:0 0 30px #fbbf2480}}.celebration-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-xs);z-index:2}.celebration-stars{display:flex;justify-content:center;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.star{color:var(--color-quest-gold);fill:var(--color-quest-gold)}.star-1{animation:starPulse 1.5s ease-in-out infinite 0s}.star-2{animation:starPulse 1.5s ease-in-out infinite .2s}.star-4{animation:starPulse 1.5s ease-in-out infinite .4s}.star-5{animation:starPulse 1.5s ease-in-out infinite .6s}.trophy-icon{color:var(--color-quest-gold);fill:var(--color-quest-gold);animation:trophyBounce 1.2s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(251,191,36,.5))}@keyframes starPulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:1}}@keyframes trophyBounce{0%,to{transform:translateY(0) scale(1)}30%{transform:translateY(-6px) scale(1.15)}60%{transform:translateY(2px) scale(.95)}}.celebration-emoji{font-size:80px;margin-bottom:var(--space-md);animation:emojiEntrance .8s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}@keyframes emojiEntrance{0%{transform:rotate(-15deg) scale(0);opacity:0}50%{transform:rotate(8deg) scale(1.2);opacity:1}70%{transform:rotate(-3deg) scale(.95)}to{transform:rotate(0) scale(1)}}.celebration-title{font-size:var(--text-3xl);font-weight:900;letter-spacing:2px;background:linear-gradient(135deg,var(--color-quest-gold),var(--color-quest-orange),var(--color-quest-pink));background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-sm);animation:gradientShift 2s ease-in-out infinite}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.celebration-subtitle{font-size:var(--text-lg);color:var(--color-text-secondary);margin-bottom:var(--space-lg);line-height:1.4}.celebration-reward-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-lg);margin-bottom:var(--space-lg);background:linear-gradient(135deg,#fbbf2426,#fb923c26);border:2px solid var(--color-quest-gold);border-radius:var(--radius-lg);animation:rewardBannerIn .5s ease-out .4s both}@keyframes rewardBannerIn{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}.reward-banner-sparkle{font-size:28px;animation:sparkleWiggle 1s ease-in-out infinite}.reward-banner-sparkle:last-child{animation-delay:.5s}@keyframes sparkleWiggle{0%,to{transform:rotate(0) scale(1)}25%{transform:rotate(-10deg) scale(1.1)}75%{transform:rotate(10deg) scale(1.1)}}.reward-banner-text{display:flex;flex-direction:column;align-items:center;gap:2px}.reward-banner-label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:1px}.reward-banner-prize{font-size:var(--text-xl);font-weight:900;color:var(--color-quest-gold);text-shadow:0 0 12px rgba(251,191,36,.4)}.celebration-btn{width:100%;justify-content:center;padding:var(--space-md) var(--space-lg);font-size:var(--text-xl);font-weight:900;letter-spacing:2px;background:linear-gradient(135deg,var(--color-quest-gold),var(--color-quest-orange));border-radius:var(--radius-lg);animation:btnPulse 2s ease-in-out infinite}@keyframes btnPulse{0%,to{box-shadow:0 0 #fbbf2466}50%{box-shadow:0 0 0 8px #fbbf2400}}.celebration-btn:hover{background:linear-gradient(135deg,var(--color-quest-orange),var(--color-warning));transform:scale(1.02)}@media (max-width: 480px){.celebration-modal{padding:var(--space-xl) var(--space-md)}.celebration-emoji{font-size:64px}.celebration-title{font-size:var(--text-2xl)}.reward-banner-prize{font-size:var(--text-lg)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md);animation:fadeIn var(--transition-fast)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:480px;padding:var(--space-xl);position:relative;max-height:90vh;overflow-y:auto;animation:slideUp var(--transition-fast)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:var(--space-md);right:var(--space-md);background:transparent;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.modal-close:hover{background:var(--color-bg-tertiary);color:var(--color-text)}.modal-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg);color:var(--color-quest-cyan)}.modal-header h3{font-size:var(--text-lg);font-weight:700;color:var(--color-text)}.modal-field{margin-bottom:var(--space-md)}.modal-field label{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.modal-field input,.modal-field select,.modal-field textarea{width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-sm);font-family:inherit;transition:border-color var(--transition-fast)}.modal-field input:focus,.modal-field select:focus,.modal-field textarea:focus{outline:none;border-color:var(--color-quest-cyan)}.modal-field input::placeholder{color:var(--color-text-tertiary)}.field-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-xs)}.emoji-grid{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.emoji-option{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:18px;cursor:pointer;transition:all var(--transition-fast)}.emoji-option:hover{border-color:var(--color-text-tertiary)}.emoji-option.selected{border-color:var(--color-quest-cyan);background:#22d3ee1a}.color-grid{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.color-option{width:32px;height:32px;border-radius:var(--radius-full);border:3px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.color-option:hover{transform:scale(1.1)}.color-option.selected{border-color:#fff;box-shadow:0 0 0 2px var(--color-bg),0 0 0 4px currentColor}.toggle-label{display:flex!important;align-items:center;justify-content:space-between}.toggle-btn{background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);transition:color var(--transition-fast);padding:0}.toggle-btn.on{color:var(--color-quest-cyan)}.modal-actions{display:flex;gap:var(--space-md);justify-content:flex-end;margin-top:var(--space-lg)}.type-pills{display:flex;gap:var(--space-xs)}.type-pill{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.type-pill:hover{border-color:var(--color-text-tertiary)}.type-pill.active{border-color:var(--color-quest-cyan);background:#22d3ee1a;color:var(--color-text)}.scope-toggle{display:flex;gap:var(--space-xs)}.scope-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.scope-btn:hover{border-color:var(--color-text-tertiary)}.scope-btn.active{border-color:var(--color-quest-purple);background:#a78bfa1a;color:var(--color-text)}@media (max-width: 480px){.modal{padding:var(--space-lg)}.modal-actions{flex-direction:column}.modal-actions .btn{width:100%;justify-content:center}.type-pills,.scope-toggle{flex-direction:column}}.home-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-xl)}.home-title{font-size:var(--text-2xl);font-weight:800;display:flex;align-items:center;gap:var(--space-sm)}.home-icon{color:var(--color-quest-cyan)}.home-subtitle{color:var(--color-text-secondary);font-size:var(--text-sm);margin-top:var(--space-xs)}.home-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.quest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-lg)}.empty-state{text-align:center;padding:var(--space-2xl);background:var(--color-bg-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-xl);margin-top:var(--space-xl)}.empty-state.small{padding:var(--space-xl);border-style:solid;border-width:1px}.empty-emoji{font-size:48px;margin-bottom:var(--space-md)}.empty-state h2{font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-sm)}.empty-state p{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-lg)}.empty-state .btn{margin:0 auto}@media (max-width: 768px){.home-header{flex-direction:column}.home-actions{width:100%}.home-actions .btn{flex:1;justify-content:center}.quest-grid{grid-template-columns:1fr}}@media (max-width: 480px){.home-actions{flex-direction:column}}.history-page{max-width:800px}.history-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.history-icon{color:var(--color-quest-cyan)}.history-header h1{font-size:var(--text-2xl);font-weight:800}.history-filters{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-lg)}.history-loading{color:var(--color-text-tertiary);text-align:center;padding:var(--space-xl)}.history-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-tertiary)}.history-timeline{display:flex;flex-direction:column;gap:var(--space-xl)}.history-date{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.history-entries{display:flex;flex-direction:column;gap:var(--space-xs)}.history-entry{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.history-entry-info{flex:1;min-width:0}.history-entry-title{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.history-entry-time{font-size:var(--text-xs);color:var(--color-text-tertiary)}.history-undo{background:none;border:none;color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);transition:all var(--transition-fast);opacity:0;min-width:28px;min-height:28px;display:flex;align-items:center;justify-content:center}.history-entry:hover .history-undo{opacity:1}.history-undo:hover{background:#ef44441a;color:var(--color-danger)}@media (max-width: 768px){.history-undo{opacity:1}}.chat-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-height) - 100px);max-width:800px}.chat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.chat-header-left{display:flex;align-items:center;gap:var(--space-sm)}.chat-icon{color:var(--color-quest-cyan)}.chat-header h1{font-size:var(--text-2xl);font-weight:800}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md) 0}.chat-loading{color:var(--color-text-tertiary);text-align:center;padding:var(--space-xl)}.chat-welcome{text-align:center;padding:var(--space-2xl);color:var(--color-text-secondary)}.chat-welcome-emoji{font-size:48px;margin-bottom:var(--space-md)}.chat-welcome h3{font-size:var(--text-xl);color:var(--color-text);margin-bottom:var(--space-sm)}.chat-suggestions{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center;margin-top:var(--space-lg)}.chat-suggestions button{padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-quest-cyan);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.chat-suggestions button:hover{background:#22d3ee1a;border-color:var(--color-quest-cyan)}.chat-message{display:flex}.chat-message.user{justify-content:flex-end}.chat-bubble{max-width:75%;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-lg);font-size:var(--text-sm);line-height:1.5}.chat-message.user .chat-bubble{background:var(--color-primary);color:#fff;border-bottom-right-radius:var(--radius-sm)}.chat-message.assistant .chat-bubble{background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text);border-bottom-left-radius:var(--radius-sm)}.chat-bubble p{margin:0 0 var(--space-sm) 0}.chat-bubble p:last-child{margin-bottom:0}.chat-bubble code{background:var(--color-bg-tertiary);padding:1px 4px;border-radius:var(--radius-sm);font-size:var(--text-xs)}.chat-bubble.typing{display:flex;gap:4px;padding:var(--space-md)}.typing-dot{width:8px;height:8px;background:var(--color-text-tertiary);border-radius:var(--radius-full);animation:typingBounce 1.4s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.chat-input-bar{display:flex;gap:var(--space-sm);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.chat-input{flex:1;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:var(--color-text);font-size:var(--text-sm);font-family:inherit;resize:none;min-height:44px;max-height:120px}.chat-input:focus{outline:none;border-color:var(--color-quest-cyan)}.chat-input::placeholder{color:var(--color-text-tertiary)}.chat-send{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:linear-gradient(135deg,var(--color-quest-cyan),var(--color-primary));border:none;border-radius:var(--radius-lg);color:#fff;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.chat-send:hover:not(:disabled){transform:scale(1.05)}.chat-send:disabled{opacity:.4;cursor:not-allowed}@media (max-width: 768px){.chat-bubble{max-width:85%}}.parent-zone{max-width:900px}.pz-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xl)}.pz-icon{color:var(--color-quest-purple)}.pz-header h1{font-size:var(--text-2xl);font-weight:800}.pz-tabs{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--space-sm)}.pz-tab{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.pz-tab:hover{background:var(--color-bg-secondary);color:var(--color-text)}.pz-tab.active{background:#a78bfa26;color:var(--color-quest-purple)}.pz-section{display:flex;flex-direction:column;gap:var(--space-md)}.pz-loading{color:var(--color-text-tertiary);padding:var(--space-xl);text-align:center}.pz-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-2xl);color:var(--color-text-tertiary)}.pz-empty-icon{color:var(--color-success)}.pz-empty-text{color:var(--color-text-tertiary);font-size:var(--text-sm);padding:var(--space-lg);text-align:center}.approval-list{display:flex;flex-direction:column;gap:var(--space-sm)}.approval-card{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);border-left:3px solid var(--color-warning)}.approval-info{flex:1;font-size:var(--text-sm);color:var(--color-text-secondary)}.approval-info strong{color:var(--color-text)}.approval-note{font-style:italic;color:var(--color-text-tertiary);font-size:var(--text-xs);margin-top:var(--space-xs)}.approval-time{display:block;font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:var(--space-xs)}.approval-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.kid-list{display:flex;flex-direction:column;gap:var(--space-sm)}.kid-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.kid-row-info{flex:1;display:flex;flex-direction:column;gap:2px}.pz-group-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary);margin-top:var(--space-sm)}.kid-role-badge{font-size:var(--text-xs);font-weight:600;color:var(--color-quest-purple);text-transform:capitalize}.badge-info{display:inline-flex;padding:1px 6px;margin-left:6px;background:#22d3ee1a;color:var(--color-quest-cyan);border-radius:var(--radius-full);font-size:10px;font-weight:600;vertical-align:middle}.kid-age{font-size:var(--text-xs);color:var(--color-text-tertiary)}.kid-quests-count{font-size:var(--text-xs);color:var(--color-text-secondary)}.kid-row-actions{display:flex;gap:var(--space-xs)}.quest-manage-list{display:flex;flex-direction:column;gap:var(--space-sm)}.quest-manage-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.quest-manage-row.archived{opacity:.6}.quest-manage-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.quest-manage-title{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.quest-manage-meta{font-size:var(--text-xs);color:var(--color-text-tertiary)}.quest-manage-actions{display:flex;gap:var(--space-xs);flex-shrink:0}@media (max-width: 768px){.approval-card{flex-direction:column;align-items:flex-start}.approval-actions{width:100%}.approval-actions .btn{flex:1;justify-content:center}.quest-manage-row{flex-wrap:wrap}.quest-manage-actions{width:100%;justify-content:flex-end}}.bank-page{max-width:900px}.bank-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.bank-icon{color:var(--color-quest-gold)}.bank-header h1{font-size:var(--text-2xl);font-weight:800}.bank-filters{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-lg)}.bank-accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg);margin-bottom:var(--space-xl)}.bank-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);transition:border-color var(--transition-fast)}.bank-card:hover{border-color:var(--color-quest-gold)}.bank-card.piggy{--bank-accent: #f472b6}.bank-card.vault{--bank-accent: #22d3ee}.bank-card.dragon{--bank-accent: #fb923c}.bank-card-top{display:flex;align-items:center;justify-content:space-between}.bank-card-child{display:flex;align-items:center;gap:var(--space-sm);font-weight:600;font-size:var(--text-base)}.bank-style-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);cursor:pointer;font-size:var(--text-sm);color:var(--color-text-secondary);transition:all var(--transition-fast)}.bank-style-btn:hover{border-color:var(--bank-accent, var(--color-quest-gold));color:var(--color-text)}.bank-visual{text-align:center;padding:var(--space-md) 0}.bank-emoji{display:block;transition:transform var(--transition-bounce)}.bank-card:hover .bank-emoji{transform:scale(1.05)}.bank-balance-section{text-align:center}.bank-balance-amount{font-size:var(--text-3xl);font-weight:800;color:var(--bank-accent, var(--color-quest-gold))}.bank-interest{font-size:var(--text-xs);color:var(--color-success);margin-top:var(--space-xs)}.bank-card-actions{display:flex;gap:var(--space-sm)}.bank-card-actions .btn{flex:1}.bank-txn-section{margin-top:var(--space-xl)}.bank-txn-section h2{font-size:var(--text-lg);font-weight:700;margin-bottom:var(--space-md)}.bank-txn-list{display:flex;flex-direction:column;gap:var(--space-xs)}.bank-txn{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.bank-txn-icon{width:28px;height:28px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.bank-txn-icon.deposit{background:#10b98126;color:var(--color-success)}.bank-txn-icon.withdrawal{background:#ef444426;color:var(--color-danger)}.bank-txn-info{flex:1;min-width:0}.bank-txn-desc{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-txn-date{font-size:var(--text-xs);color:var(--color-text-tertiary)}.bank-txn-amount{font-weight:700;font-size:var(--text-sm);flex-shrink:0}.bank-txn-amount.deposit{color:var(--color-success)}.bank-txn-amount.withdrawal{color:var(--color-danger)}.bank-create-cta{background:var(--color-bg-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;cursor:pointer;transition:all var(--transition-fast);min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm)}.bank-create-cta:hover{border-color:var(--color-quest-gold);background:var(--color-bg-tertiary)}.bank-create-cta p{color:var(--color-text-secondary);font-size:var(--text-sm)}.style-picker{display:flex;gap:var(--space-md);justify-content:center;margin:var(--space-lg) 0}.style-option{background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);cursor:pointer;text-align:center;transition:all var(--transition-fast);min-width:100px}.style-option:hover{border-color:var(--color-quest-gold)}.style-option.selected{border-color:var(--color-quest-gold);background:#fbbf241a}.style-option-emoji{display:block;font-size:2rem;margin-bottom:var(--space-xs)}.style-option-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text)}.bank-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-tertiary)}.bank-empty .empty-emoji{font-size:3rem;margin-bottom:var(--space-sm)}.bank-loading{color:var(--color-text-tertiary);text-align:center;padding:var(--space-xl)}@media (max-width: 768px){.bank-accounts-grid{grid-template-columns:1fr}.bank-card-actions{flex-direction:column}.style-picker{flex-direction:column;align-items:center}}@media (max-width: 480px){.bank-balance-amount{font-size:var(--text-2xl)}}.quest-log-page{max-width:800px}.quest-log-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.quest-log-icon{color:var(--color-quest-purple)}.quest-log-header h1{font-size:var(--text-2xl);font-weight:800}.quest-log-filters{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:var(--space-md)}.quest-log-sort{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.quest-log-sort label{font-size:var(--text-sm);color:var(--color-text-secondary)}.quest-log-sort select{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);padding:var(--space-xs) var(--space-sm);font-size:var(--text-sm)}.quest-log-list{display:flex;flex-direction:column;gap:var(--space-sm)}.quest-log-entry{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--transition-fast)}.quest-log-entry:hover{border-color:var(--color-quest-purple)}.quest-log-entry-main{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);cursor:pointer}.quest-log-quest-info{flex:1;min-width:0}.quest-log-quest-title{display:block;font-weight:600;font-size:var(--text-base);color:var(--color-text)}.quest-log-quest-meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--color-text-tertiary)}.quest-log-reward{display:inline-flex;align-items:center;gap:2px;background:#fbbf2426;color:var(--color-quest-gold);padding:2px var(--space-xs);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;flex-shrink:0}.quest-log-count{font-size:var(--text-xs);color:var(--color-text-tertiary);flex-shrink:0}.quest-log-expand-icon{color:var(--color-text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.quest-log-expand-icon.open{transform:rotate(180deg)}.quest-log-completions{border-top:1px solid var(--color-border);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary)}.quest-log-completion{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) 0;font-size:var(--text-sm);color:var(--color-text-secondary)}.quest-log-completion+.quest-log-completion{border-top:1px solid rgba(71,85,105,.3)}.quest-log-completion-check{color:var(--color-success);flex-shrink:0}.quest-log-completion-note{color:var(--color-text-tertiary);font-style:italic}.quest-log-type-pill{font-size:var(--text-xs);padding:1px var(--space-xs);border-radius:var(--radius-sm);font-weight:500}.quest-log-type-pill.count{background:#3b82f626;color:var(--color-primary-light)}.quest-log-type-pill.binary{background:#a855f726;color:#c084fc}.quest-log-type-pill.savings{background:#fbbf2426;color:var(--color-quest-gold)}.quest-log-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-tertiary)}.quest-log-empty .empty-emoji{font-size:3rem;margin-bottom:var(--space-sm)}.quest-log-loading{color:var(--color-text-tertiary);text-align:center;padding:var(--space-xl)}@media (max-width: 768px){.quest-log-entry-main{flex-wrap:wrap}.quest-log-reward{order:3}}.stream-page{max-width:700px}.stream-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-lg)}.stream-icon{color:var(--color-quest-cyan)}.stream-header h1{font-size:var(--text-2xl);font-weight:800}.stream-header-right{margin-left:auto;display:flex;align-items:center;gap:var(--space-sm)}.stream-live-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-success);animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.stream-live-label{font-size:var(--text-xs);color:var(--color-success);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stream-list{display:flex;flex-direction:column;gap:var(--space-sm)}.stream-entry{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);animation:stream-slide-in .4s ease-out}@keyframes stream-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.stream-entry-emoji{font-size:1.5rem;flex-shrink:0}.stream-entry-content{flex:1;min-width:0}.stream-entry-text{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text);line-height:1.4}.stream-entry-text .stream-initial{font-weight:700;color:var(--color-quest-cyan)}.stream-entry-text .stream-highlight{color:var(--color-quest-gold);font-weight:600}.stream-entry-time{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:2px}.stream-entry-reward{display:inline-flex;align-items:center;gap:2px;background:#fbbf2426;color:var(--color-quest-gold);padding:2px var(--space-xs);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;flex-shrink:0}.stream-empty{text-align:center;padding:var(--space-2xl);color:var(--color-text-tertiary)}.stream-empty .empty-emoji{font-size:3rem;margin-bottom:var(--space-sm)}.stream-loading{color:var(--color-text-tertiary);text-align:center;padding:var(--space-xl)}@media (max-width: 768px){.stream-entry{gap:var(--space-sm)}.stream-entry-reward{display:none}}.skins-page{max-width:900px}.skins-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.skins-icon{color:var(--color-quest-purple)}.skins-header h1{font-size:var(--text-2xl);font-weight:800}.skins-subtitle{color:var(--color-text-tertiary);font-size:var(--text-sm);margin-bottom:var(--space-xl)}.skins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-lg)}.skin-card{border-radius:var(--radius-lg);overflow:hidden;border:2px solid var(--color-border);transition:transform var(--transition-bounce),border-color var(--transition-fast),box-shadow var(--transition-fast);cursor:pointer;position:relative}.skin-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000004d}.skin-card.active{border-color:var(--color-quest-gold);box-shadow:0 0 20px #fbbf244d}.skin-card.active:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--radius-lg);pointer-events:none;box-shadow:inset 0 0 0 2px var(--color-quest-gold)}.skin-preview{padding:var(--space-md);min-height:140px;display:flex;flex-direction:column;gap:var(--space-sm);transition:all var(--transition-fast)}.skin-preview-header{display:flex;align-items:center;gap:var(--space-xs)}.skin-preview-dot{width:8px;height:8px;border-radius:var(--radius-full)}.skin-preview-bar{height:6px;border-radius:var(--radius-full);flex:1}.skin-preview-card{border-radius:var(--radius-sm);padding:var(--space-sm);display:flex;align-items:center;gap:var(--space-sm)}.skin-preview-progress{flex:1;height:6px;border-radius:var(--radius-full);position:relative;overflow:hidden}.skin-preview-progress-fill{height:100%;border-radius:var(--radius-full);width:65%}.skin-preview-badges{display:flex;gap:var(--space-xs)}.skin-preview-badge{height:12px;width:32px;border-radius:var(--radius-full)}.skin-info{padding:var(--space-md);background:var(--color-bg-secondary);border-top:1px solid var(--color-border)}.skin-info-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xs)}.skin-name{font-weight:700;font-size:var(--text-base);display:flex;align-items:center;gap:var(--space-xs)}.skin-active-badge{font-size:var(--text-xs);font-weight:600;color:var(--color-quest-gold);background:#fbbf2426;padding:2px var(--space-xs);border-radius:var(--radius-sm)}.skin-description{font-size:var(--text-sm);color:var(--color-text-tertiary);margin-bottom:var(--space-sm)}.skin-colors-strip{display:flex;gap:2px;border-radius:var(--radius-sm);overflow:hidden;height:8px}.skin-color-swatch{flex:1;min-width:0}.skin-card .skin-apply-btn{width:100%;padding:var(--space-sm);border:none;font-weight:600;font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast);background:var(--color-bg-tertiary);color:var(--color-text)}.skin-card .skin-apply-btn:hover{background:var(--color-primary);color:#fff}.skin-card.active .skin-apply-btn{background:var(--color-quest-gold);color:#1c1917}.skins-saving{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-text-tertiary);margin-left:auto}.skins-saved{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-xs);color:var(--color-success);margin-left:auto}.skin-card-create{border:2px dashed var(--color-border);background:transparent;display:flex;align-items:center;justify-content:center;min-height:260px;transition:border-color var(--transition-fast),background var(--transition-fast)}.skin-card-create:hover{border-color:var(--color-primary);background:#3b82f60d}.skin-create-inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);color:var(--color-text-secondary)}.skin-create-inner svg{color:var(--color-primary)}.skin-create-label{font-weight:700;font-size:var(--text-base)}.skin-create-sub{font-size:var(--text-xs);color:var(--color-text-tertiary)}.skin-card-custom-actions{display:flex;align-items:stretch;border-top:1px solid var(--color-border)}.skin-action-btn{display:flex;align-items:center;justify-content:center;padding:var(--space-sm);border:none;background:var(--color-bg-tertiary);color:var(--color-text-secondary);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);border-left:1px solid var(--color-border);min-width:40px}.skin-action-btn:hover{background:var(--color-primary);color:#fff}.skin-action-danger:hover{background:var(--color-danger);color:#fff}.builder-modal{max-width:640px;max-height:90vh;overflow-y:auto;padding:var(--space-lg)}.builder-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.builder-header h2{font-size:var(--text-xl);font-weight:800}.builder-live-toggle{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.builder-live-toggle input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px}.builder-name-row{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.builder-name-row .form-field label{display:block;font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.05em}.builder-name-row .form-field input[type=text]{width:100%;padding:var(--space-sm);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:var(--text-base)}.builder-emoji-picker{display:flex;flex-wrap:wrap;gap:4px}.builder-emoji-opt{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;border-radius:var(--radius-sm);border:2px solid transparent;background:var(--color-bg);cursor:pointer;transition:border-color var(--transition-fast),transform var(--transition-fast)}.builder-emoji-opt:hover{transform:scale(1.15)}.builder-emoji-opt.selected{border-color:var(--color-primary);background:#3b82f626}.builder-start-from{margin-bottom:var(--space-md)}.builder-start-from label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs);display:block}.builder-preset-pills{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.builder-preview-strip{margin-bottom:var(--space-lg);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border)}.builder-preview-strip .skin-preview{min-height:100px}.builder-colors{display:flex;flex-direction:column;gap:var(--space-lg);margin-bottom:var(--space-lg)}.builder-color-group h4{font-size:var(--text-sm);font-weight:700;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.builder-color-row{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.builder-color-item{display:flex;flex-direction:column;gap:4px;min-width:100px;flex:1}.builder-color-item label{font-size:var(--text-xs);color:var(--color-text-tertiary)}.builder-color-input-wrap{display:flex;align-items:center;gap:var(--space-xs)}.builder-color-picker{width:32px;height:32px;border:none;padding:0;cursor:pointer;border-radius:var(--radius-sm);background:none}.builder-color-picker::-webkit-color-swatch-wrapper{padding:0}.builder-color-picker::-webkit-color-swatch{border:2px solid var(--color-border);border-radius:var(--radius-sm)}.builder-color-hex{width:80px;padding:4px var(--space-xs);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);font-size:var(--text-xs);font-family:monospace}@media (max-width: 768px){.skins-grid{grid-template-columns:1fr 1fr}.builder-modal{max-width:100%;margin:var(--space-sm)}.builder-name-row{flex-direction:column}.builder-color-item{min-width:80px}}@media (max-width: 480px){.skins-grid{grid-template-columns:1fr}.builder-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}}:root{--color-bg: #0f172a;--color-bg-secondary: #1e293b;--color-bg-tertiary: #334155;--color-border: #475569;--color-text: #f1f5f9;--color-text-secondary: #cbd5e1;--color-text-tertiary: #94a3b8;--color-primary: #3b82f6;--color-primary-dark: #2563eb;--color-primary-light: #60a5fa;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-quest-cyan: #22d3ee;--color-quest-purple: #a78bfa;--color-quest-pink: #f472b6;--color-quest-orange: #fb923c;--color-quest-green: #34d399;--color-quest-gold: #fbbf24;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--shadow-glow: 0 0 20px rgba(34, 211, 238, .3);--transition-fast: .15s ease-in-out;--transition-base: .25s ease-in-out;--transition-bounce: .3s cubic-bezier(.34, 1.56, .64, 1);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", "Monaco", "Inconsolata", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--sidebar-width: 240px;--header-height: 56px}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden}img,video,iframe,embed,object{max-width:100%;height:auto}pre,code{max-width:100%;overflow-x:auto;word-wrap:break-word}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;width:100%;max-width:100vw}#root{min-height:100vh;overflow-x:hidden;width:100%;max-width:100vw}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-border)}.container{max-width:1400px;margin:0 auto;padding:0 var(--space-lg)}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);min-height:36px}.btn:hover:not(:disabled){background:var(--color-primary-dark)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:var(--color-bg-tertiary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);min-height:28px}.btn-danger{background:var(--color-danger)}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-success{background:var(--color-success)}.btn-success:hover:not(:disabled){background:#059669}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.badge-primary{background:#3b82f626;color:var(--color-primary-light)}.badge-success{background:#10b98126;color:var(--color-success)}.badge-warning{background:#f59e0b26;color:var(--color-warning)}.badge-danger{background:#ef444426;color:var(--color-danger)}.badge-pending{background:#fbbf2426;color:var(--color-quest-gold)}.app-layout{display:flex;min-height:100vh}.app-main{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1;padding:var(--space-xl);max-width:1200px;width:100%;margin:0 auto}.app-footer{padding:var(--space-md) var(--space-xl);text-align:center;font-size:var(--text-xs);color:var(--color-text-tertiary);border-top:1px solid var(--color-border)}.app-footer a{color:var(--color-text-tertiary);text-decoration:none}.app-footer a:hover{color:var(--color-text-secondary)}@media (max-width: 768px){.app-main{margin-left:0}.app-content{padding:var(--space-md)}}
