@import"https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;500;600;700;800&display=swap";.avatar{border-radius:var(--radius-full);overflow:hidden;background:var(--color-surface);box-shadow:0 4px 24px #e8729a2e;border:3px solid var(--color-surface)}.avatar-image{width:100%;height:100%;object-fit:cover;display:block}.avatar-small{width:60px;height:60px}.avatar-medium{width:100px;height:100px}.avatar-large{width:160px;height:160px}.progress-bar-container{width:100%}.progress-bar-track{height:12px;background:var(--color-surface-tertiary);border-radius:6px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:6px;transition:width var(--transition-normal)}.progress-bar-labels{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-xs);font-size:var(--font-size-caption)}.progress-current{font-weight:var(--font-weight-bold);color:var(--color-primary)}.progress-label{color:var(--color-text-secondary)}.progress-target{font-weight:var(--font-weight-bold);color:var(--color-gold)}.pin-modal-overlay{position:fixed;inset:0;background:#2c24204d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);z-index:1000;animation:fadeIn .2s ease-out}.pin-modal{width:100%;max-width:320px;text-align:center;animation:slideUp .3s var(--ease-out);border-radius:var(--radius-xl)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pin-modal h2{font-size:var(--font-size-heading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.pin-modal p{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.pin-modal .pin-inputs{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.pin-modal .pin-digit{width:56px;height:64px;font-size:28px;font-weight:var(--font-weight-bold);text-align:center;border:1.5px solid rgba(44,36,32,.1);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:inherit}.pin-modal .pin-digit:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #e8729a1a}.pin-error{color:var(--color-error);font-size:var(--font-size-caption);margin-bottom:var(--spacing-md)}.pin-actions{display:flex;justify-content:center}.pin-actions button{min-width:120px}.welcome-intro{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#f2ede8;z-index:100;overflow:hidden}.welcome-intro.transition{animation:fadeOutIntro .6s ease-out forwards}@keyframes fadeOutIntro{0%{opacity:1}to{opacity:0;pointer-events:none}}.intro-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xl);z-index:2}.intro-avatar{position:relative;z-index:2;opacity:0;transform:scale(.9);animation:avatarEnter .8s var(--ease-out) .2s forwards}@keyframes avatarEnter{to{opacity:1;transform:scale(1)}}.intro-text{font-size:var(--font-size-title);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.3px;opacity:0;transform:translateY(12px);animation:textEnter .6s var(--ease-out) .5s forwards}@keyframes textEnter{to{opacity:1;transform:translateY(0)}}.intro-continue-btn{margin-top:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-2xl);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-full);cursor:pointer;box-shadow:var(--shadow-primary);opacity:0;transform:translateY(16px);animation:buttonEnter .6s var(--ease-out) .7s forwards;transition:transform var(--transition-spring);font-family:inherit}.intro-continue-btn:active{transform:scale(.96)}@keyframes buttonEnter{to{opacity:1;transform:translateY(0)}}.intro-glow{position:absolute;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(232,114,154,.12) 0%,rgba(240,168,104,.08) 40%,transparent 70%);animation:introGlowPulse 4s ease-in-out infinite;pointer-events:none;z-index:1}@keyframes introGlowPulse{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.15);opacity:.7}}@media(prefers-reduced-motion:reduce){.welcome-intro,.welcome-intro.transition,.intro-avatar,.intro-glow{animation:none}.intro-avatar,.intro-text,.intro-continue-btn{opacity:1;transform:none}.welcome-intro.transition{opacity:0}}.ambient-orbs{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.ambient-orb{position:absolute;border-radius:50%;filter:blur(80px);will-change:transform}.ambient-warm .orb-1{width:300px;height:300px;background:var(--color-primary-light);opacity:.18;top:-8%;left:-5%;animation:orbDrift1 70s ease-in-out infinite}.ambient-warm .orb-2{width:250px;height:250px;background:var(--color-secondary);opacity:.14;bottom:5%;right:-10%;animation:orbDrift2 80s ease-in-out infinite}.ambient-warm .orb-3{width:200px;height:200px;background:var(--color-gold-light);opacity:.1;top:40%;left:25%;animation:orbDrift3 90s ease-in-out infinite}.ambient-cool .orb-1{width:300px;height:300px;background:var(--color-secondary);opacity:.18;top:-8%;right:-5%;animation:orbDrift1 70s ease-in-out infinite}.ambient-cool .orb-2{width:250px;height:250px;background:var(--color-surface-tertiary);opacity:.2;bottom:10%;left:-10%;animation:orbDrift2 80s ease-in-out infinite}.ambient-cool .orb-3{width:180px;height:180px;background:var(--color-primary-light);opacity:.08;top:50%;left:40%;animation:orbDrift3 90s ease-in-out infinite}.ambient-celebration .orb-1{width:320px;height:320px;background:var(--color-gold-light);opacity:.2;top:-10%;left:-5%;animation:orbDrift1 60s ease-in-out infinite}.ambient-celebration .orb-2{width:260px;height:260px;background:var(--color-primary-light);opacity:.15;bottom:5%;right:-8%;animation:orbDrift2 70s ease-in-out infinite}.ambient-celebration .orb-3{width:200px;height:200px;background:var(--color-accent-warm);opacity:.12;top:35%;left:30%;animation:orbDrift3 80s ease-in-out infinite}@keyframes orbDrift1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(60px,80px) scale(1.1)}66%{transform:translate(-30px,40px) scale(.9)}}@keyframes orbDrift2{0%,to{transform:translate(0) scale(1)}25%{transform:translate(-50px,-40px) scale(1.05)}50%{transform:translate(30px,-60px) scale(.95)}75%{transform:translate(-20px,30px) scale(1.08)}}@keyframes orbDrift3{0%,to{transform:translate(0) scale(1)}40%{transform:translate(40px,-50px) scale(1.15)}70%{transform:translate(-30px,20px) scale(.85)}}@media(prefers-reduced-motion:reduce){.ambient-orb{animation:none;opacity:.08}}.welcome-page{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-xl) + var(--safe-area-bottom));overflow-y:auto;position:relative}.settings-btn{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:44px;height:44px;padding:0;background:var(--color-surface);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.welcome-content{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:var(--spacing-md)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-surface-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.error-container{text-align:center;padding:var(--spacing-xl)}.error-container p{margin-bottom:var(--spacing-lg);color:var(--color-error)}.avatar-section{margin-top:var(--spacing-xl)}.greeting-section{text-align:center}.date-text{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-bottom:var(--spacing-2xs)}.greeting-text{font-size:var(--font-size-title);color:var(--color-text-primary);font-weight:var(--font-weight-bold);letter-spacing:-.3px}.points-card{width:100%;text-align:center;padding:var(--spacing-xl) var(--spacing-lg)}.points-display{display:flex;flex-direction:column;align-items:center}.points-label{font-size:var(--font-size-body);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);margin-top:var(--spacing-2xs)}.quest-card{width:100%;text-align:center}.quest-title{font-size:var(--font-size-heading);color:var(--color-text-primary);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm)}.quest-subtitle{font-size:var(--font-size-body);color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.birthday-countdown{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--spacing-lg)}.days-number{font-size:48px;font-weight:var(--font-weight-extrabold);color:var(--color-accent-warm);line-height:1}.days-label{font-size:var(--font-size-body);color:var(--color-text-secondary);margin-top:var(--spacing-2xs)}.quest-complete{padding:var(--spacing-lg)}.quest-complete h2{color:var(--color-gold);font-size:var(--font-size-heading);margin-bottom:var(--spacing-xs)}.quest-complete p{font-size:var(--font-size-body);color:var(--color-accent-green);font-weight:var(--font-weight-semibold)}.nav-links{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-sm);width:100%}.nav-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-sm);background:var(--color-surface);border-radius:var(--radius-lg);border:1.5px solid var(--color-surface-tertiary);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);box-shadow:var(--shadow-xs);transition:transform var(--transition-spring),box-shadow var(--transition-fast)}.nav-btn svg{color:var(--color-primary)}.nav-btn:active{transform:scale(.96);box-shadow:none}.target-toggle{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-spring);border:1.5px solid rgba(44,36,32,.06)}.target-toggle:active{transform:scale(.98)}.target-toggle.checked{background:#7dc79414;border-color:#7dc7944d}.target-info,.target-text{display:flex;flex-direction:column;gap:2px}.target-title{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.target-subtitle{font-size:var(--font-size-micro);color:var(--color-accent-warm);font-weight:var(--font-weight-medium)}.target-points{font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);margin-top:var(--spacing-xs)}.target-points.positive{color:var(--color-accent-green)}.target-points.negative{color:var(--color-error)}.toggle-switch{position:relative;width:56px;height:34px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--color-surface-tertiary);border:none;transition:background-color var(--transition-spring);border-radius:34px}.toggle-slider:before{position:absolute;content:"";height:28px;width:28px;left:3px;bottom:3px;background-color:#fff;transition:transform var(--transition-spring);border-radius:50%;box-shadow:0 2px 8px #2c242026}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-accent-green)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.page-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);width:100%}.page-header h1{font-size:var(--font-size-heading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);letter-spacing:-.2px;flex:1;text-align:center;margin:0}.back-btn,.home-btn{background:var(--color-surface);color:var(--color-text-secondary);font-size:20px;padding:0;min-height:auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);border:none;box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.back-btn:hover,.home-btn:hover{color:var(--color-primary);background:var(--color-surface)}.back-btn:active,.home-btn:active{transform:scale(.92)}.back-btn svg,.home-btn svg{display:block}.checkin-page{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-xl) + var(--safe-area-bottom));overflow-y:auto}.checkin-page>*{width:100%;max-width:400px}.date-display{display:flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-lg)}.date-text{font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.completed-banner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spacing-lg);margin-bottom:var(--spacing-md);position:relative;overflow:hidden}.completed-accent{position:absolute;top:0;left:0;right:0;height:3px;background:var(--color-accent-green)}.completed-content h3{font-size:var(--font-size-heading);font-weight:var(--font-weight-bold);color:var(--color-accent-green);margin-bottom:var(--spacing-xs)}.completed-content p{font-size:var(--font-size-body);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.completed-content strong{color:var(--color-accent-green);font-weight:var(--font-weight-bold)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;gap:var(--spacing-md)}.loading-container p{color:var(--color-text-secondary);font-size:var(--font-size-body)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-surface-tertiary);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-banner{background:var(--color-error);color:#fff;padding:var(--spacing-md);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.error-banner p{font-size:var(--font-size-caption)}.error-banner button{background:#fff3;color:#fff;padding:var(--spacing-xs) var(--spacing-sm);min-height:auto;font-size:var(--font-size-caption);border-radius:var(--radius-md)}.checkin-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.target-section{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-lg);border:1px solid rgba(44,36,32,.04)}.section-title{font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-xs);padding-left:var(--spacing-sm);border-left:3px solid var(--color-primary-light)}.section-hint{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-bottom:var(--spacing-md);padding-left:calc(var(--spacing-sm) + 3px)}.weekly-completed-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:#7dc79414;border-radius:var(--radius-lg);border:1.5px solid rgba(125,199,148,.25)}.completed-check{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-accent-green);color:#fff;border-radius:var(--radius-full);flex-shrink:0}.completed-info{display:flex;flex-direction:column;gap:2px}.completed-title{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.completed-detail{font-size:var(--font-size-caption);color:var(--color-accent-green);font-weight:var(--font-weight-medium)}.school-options{display:flex;gap:var(--spacing-sm)}.school-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--color-surface-secondary);border-radius:var(--radius-lg);border:1.5px solid transparent;transition:all var(--transition-spring)}.school-option:active{transform:scale(.96)}.school-option.selected{background:var(--color-surface);box-shadow:var(--shadow-sm)}.school-option.selected.positive{border-color:#7dc79466;background:#7dc79414}.school-option.selected.neutral{border-color:#f0a86866;background:#f0a86814}.school-option.selected.negative{border-color:#d7646466;background:#d7646414}.option-label{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.option-points{font-size:var(--font-size-body);font-weight:var(--font-weight-bold);color:var(--color-text-secondary)}.school-option.selected.positive .option-points{color:var(--color-accent-green)}.school-option.selected.neutral .option-points{color:var(--color-accent-warm)}.school-option.selected.negative .option-points{color:var(--color-error)}.targets-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.points-preview{padding:var(--spacing-lg);border:1.5px solid rgba(212,162,76,.15)}.preview-row{display:flex;justify-content:space-between;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-size:var(--font-size-caption)}.bonus-points{color:var(--color-accent-green);font-weight:var(--font-weight-semibold)}.preview-total{display:flex;justify-content:space-between;align-items:center;padding-top:var(--spacing-sm);border-top:1px solid rgba(44,36,32,.06);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.total-points{font-size:var(--font-size-title)}.total-points.positive{color:var(--color-accent-green)}.total-points.negative{color:var(--color-error)}.submit-btn{width:100%;font-size:var(--font-size-subheading);padding:var(--spacing-md) var(--spacing-lg);margin-top:var(--spacing-sm)}.result-page{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-xl) + var(--safe-area-bottom));position:relative;overflow-y:auto;overflow-x:hidden}.result-content{width:100%;max-width:400px;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);z-index:1}.glow-ring{position:fixed;top:50%;left:50%;width:300px;height:300px;transform:translate(-50%,-60%);border-radius:50%;background:radial-gradient(circle,rgba(232,114,154,.15) 0%,transparent 70%);pointer-events:none;z-index:0;animation:glowPulse 3s ease-in-out infinite}@keyframes glowPulse{0%,to{opacity:.6;transform:translate(-50%,-60%) scale(1)}50%{opacity:1;transform:translate(-50%,-60%) scale(1.1)}}.sparkles-container{position:fixed;inset:0;pointer-events:none;z-index:0}.sparkle-dot{position:absolute;width:5px;height:5px;bottom:-10px;border-radius:50%;background:var(--color-primary-light);opacity:0;animation:sparkleRise 4s ease-out forwards}@keyframes sparkleRise{0%{transform:translateY(0) scale(.5);opacity:0}20%{opacity:.6}to{transform:translateY(-100vh) scale(1);opacity:0}}.avatar-container{opacity:0;transform:scale(.8);transition:all .5s var(--ease-out)}.show-celebration .avatar-container{opacity:1;transform:scale(1)}.avatar-container.bounce{animation:celebrationBounce 1s ease-in-out}@keyframes celebrationBounce{0%,to{transform:scale(1)}25%{transform:scale(1.08)}50%{transform:scale(1)}75%{transform:scale(1.04)}}.result-message{text-align:center;opacity:0;transform:translateY(20px);transition:all .5s var(--ease-out) .2s}.show-celebration .result-message{opacity:1;transform:translateY(0)}.result-message h1{font-size:var(--font-size-title);font-weight:var(--font-weight-bold);letter-spacing:-.3px;margin-bottom:var(--spacing-xs)}.result-message p{font-size:var(--font-size-body);color:var(--color-text-secondary)}.celebration-message h1{color:var(--color-gold)}.great-message h1{color:var(--color-primary)}.good-message h1{color:var(--color-accent-green)}.nice-message h1{color:var(--color-accent-warm)}.gentle-message h1{color:var(--color-secondary)}.points-earned-card{width:100%;text-align:center;padding:var(--spacing-lg);opacity:0;transform:translateY(20px);transition:all .5s var(--ease-out) .4s}.show-celebration .points-earned-card{opacity:1;transform:translateY(0)}.earned-label{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium)}.earned-number{font-size:48px;font-weight:var(--font-weight-extrabold);line-height:1}.earned-number.positive{color:var(--color-accent-green)}.earned-number.negative{color:var(--color-error)}.total-card{width:100%;text-align:center;padding:var(--spacing-lg);opacity:0;transform:translateY(20px);transition:all .5s var(--ease-out) .6s}.show-celebration .total-card{opacity:1;transform:translateY(0)}.total-label{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-weight:var(--font-weight-medium)}.total-number{font-size:var(--font-size-display);font-weight:var(--font-weight-extrabold);color:var(--color-primary)}.quest-complete-banner{display:flex;align-items:center;justify-content:center;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-gold);border:1.5px solid rgba(212,162,76,.25);animation:subtlePulse 3s ease-in-out infinite}@keyframes subtlePulse{0%,to{box-shadow:var(--shadow-sm)}50%{box-shadow:0 4px 20px #d4a24c26}}.result-home-btn{width:100%;margin-top:var(--spacing-sm);opacity:0;transform:translateY(20px);transition:all .5s var(--ease-out) .8s}.show-celebration .result-home-btn{opacity:1;transform:translateY(0)}.reward-card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-md);text-align:center;border:1px solid rgba(44,36,32,.04);transition:transform var(--transition-spring),box-shadow var(--transition-fast)}.reward-card:active{transform:scale(.98)}.reward-card.affordable{border-color:#7dc79440}.reward-card.locked{opacity:1}.reward-card.locked .reward-icon{filter:grayscale(.4);opacity:.7}.reward-icon{font-size:32px;margin-bottom:var(--spacing-sm);transition:filter var(--transition-fast)}.reward-title{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);min-height:36px;display:flex;align-items:center;justify-content:center}.reward-cost{display:flex;align-items:baseline;justify-content:center;gap:2px;margin-bottom:var(--spacing-sm)}.cost-number{font-size:var(--font-size-heading);font-weight:var(--font-weight-extrabold);color:var(--color-primary)}.cost-label{font-size:var(--font-size-caption);color:var(--color-text-secondary)}.reward-locked-label{font-size:var(--font-size-micro);color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface-secondary);border-radius:var(--radius-md);font-weight:var(--font-weight-medium)}.redeem-btn{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);color:#fff;background:var(--color-primary);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:transform var(--transition-spring),box-shadow var(--transition-fast);min-height:36px}.redeem-btn:hover{box-shadow:var(--shadow-primary)}.redeem-btn:active{transform:scale(.96)}.confirm-dialog{padding:var(--spacing-xs)}.confirm-dialog p{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.confirm-buttons{display:flex;gap:var(--spacing-xs)}.confirm-yes,.confirm-no{flex:1;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);border:none;border-radius:var(--radius-md);cursor:pointer;min-height:32px;transition:transform var(--transition-fast)}.confirm-yes:active,.confirm-no:active{transform:scale(.96)}.confirm-yes{background:var(--color-primary);color:#fff}.confirm-no{background:var(--color-surface-secondary);color:var(--color-text-primary)}.rewards-page{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-xl) + var(--safe-area-bottom));overflow-y:auto}.rewards-page>*{width:100%;max-width:400px}.balance-card{text-align:center;padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.balance-label{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-medium)}.balance-number{font-size:var(--font-size-display);font-weight:var(--font-weight-extrabold);color:var(--color-primary);line-height:1}.rewards-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.rewards-section{margin-bottom:var(--spacing-sm)}.rewards-section .section-title{font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-md);padding-left:var(--spacing-sm);border-left:3px solid var(--color-primary-light)}.rewards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md)}.birthday-quest-card{position:relative;overflow:hidden;text-align:center;margin-bottom:var(--spacing-md);padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg)}.quest-accent{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light))}.quest-title{font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-md)}.quest-stats{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.quest-points{display:flex;align-items:baseline;gap:var(--spacing-xs)}.current-points{font-size:var(--font-size-display);font-weight:var(--font-weight-extrabold);color:var(--color-primary)}.divider{font-size:var(--font-size-title);color:var(--color-text-secondary)}.quest-target-points{font-size:var(--font-size-title);font-weight:var(--font-weight-semibold);color:var(--color-gold)}.points-needed{font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.birthday-quest-complete{position:relative;overflow:hidden;text-align:center;margin-bottom:var(--spacing-md);padding:var(--spacing-xl) var(--spacing-lg) var(--spacing-lg)}.complete-accent{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--color-gold),var(--color-accent-warm))}.birthday-quest-complete h2{font-size:var(--font-size-heading);font-weight:var(--font-weight-bold);color:var(--color-gold);margin-bottom:var(--spacing-xs)}.birthday-quest-complete p{color:var(--color-text-secondary)}.quest-progress-bar{height:12px;background:var(--color-surface-tertiary);border-radius:6px;overflow:hidden}.quest-progress-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-light));border-radius:6px;transition:width var(--transition-normal)}.history-page{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-xl) + var(--safe-area-bottom));overflow-y:auto}.history-page>*{width:100%;max-width:400px}.points-summary{display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.points-info{display:flex;flex-direction:column;align-items:center}.points-number{font-size:var(--font-size-display);font-weight:var(--font-weight-extrabold);color:var(--color-primary);line-height:1}.points-label{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.graph-section{padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.graph-title{font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);text-align:center;margin-bottom:var(--spacing-md)}.graph-container{display:flex;justify-content:space-between;align-items:flex-end;height:140px;padding:0 var(--spacing-xs);gap:var(--spacing-xs)}.graph-day{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.graph-day.today .graph-label{background:var(--color-primary);color:#fff;border-radius:var(--radius-md)}.graph-bar-container{flex:1;display:flex;align-items:flex-end;justify-content:center;width:100%;min-height:80px}.graph-bar{width:100%;max-width:32px;border-radius:var(--radius-md) var(--radius-md) 0 0;display:flex;align-items:flex-start;justify-content:center;padding-top:4px;position:relative;transition:height .4s var(--ease-out)}.graph-bar.positive{background:var(--color-accent-green)}.graph-bar.negative{background:var(--color-error)}.graph-bar.zero{height:4px!important;background:var(--color-surface-tertiary);display:flex;align-items:center;justify-content:center;border-radius:2px;max-width:32px;width:100%}.bar-line{display:block}.bar-points{font-size:10px;font-weight:var(--font-weight-bold);color:#fff}.graph-label{text-align:center;padding:var(--spacing-xs);margin-top:var(--spacing-xs)}.day-name{display:block;font-size:var(--font-size-micro);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.day-num{display:block;font-size:var(--font-size-micro);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.graph-legend{display:flex;justify-content:center;gap:var(--spacing-lg);margin-top:var(--spacing-md);padding-top:var(--spacing-sm);border-top:1px solid rgba(44,36,32,.06)}.legend-item{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-micro);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot.positive{background:var(--color-accent-green)}.legend-dot.negative{background:var(--color-error)}.history-content{display:flex;flex-direction:column;gap:var(--spacing-md)}.list-title{font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);padding-left:var(--spacing-sm);border-left:3px solid var(--color-primary-light)}.history-day{margin-bottom:var(--spacing-sm)}.day-header{font-size:var(--font-size-micro);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);text-transform:uppercase;letter-spacing:.5px}.day-entries{display:flex;flex-direction:column;gap:var(--spacing-xs)}.history-entry{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-lg)}.history-entry.positive{border-left:3px solid var(--color-accent-green)}.history-entry.negative{border-left:3px solid var(--color-error)}.entry-info{flex:1;display:flex;flex-direction:column;gap:2px}.entry-reason{font-size:var(--font-size-caption);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.entry-points{font-size:var(--font-size-body);font-weight:var(--font-weight-bold)}.history-entry.positive .entry-points{color:var(--color-accent-green)}.history-entry.negative .entry-points{color:var(--color-error)}.empty-state{text-align:center;padding:var(--spacing-2xl)}.empty-title{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-body);margin-bottom:var(--spacing-xs)}.empty-hint{font-size:var(--font-size-caption);color:var(--color-text-secondary)}.admin-page{min-height:100%;display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);padding-bottom:calc(var(--spacing-xl) + var(--safe-area-bottom));overflow-y:auto}.admin-page>*{width:100%;max-width:400px}.admin-page .error-banner{background:var(--color-error);color:#fff;padding:var(--spacing-md);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);display:flex;justify-content:space-between;align-items:center}.admin-page .error-banner button{background:#fff3;color:#fff;padding:var(--spacing-xs) var(--spacing-sm);min-height:auto;font-size:var(--font-size-caption);border-radius:var(--radius-md)}.success-banner{background:var(--color-accent-green);color:#fff;padding:var(--spacing-md);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);text-align:center;font-weight:var(--font-weight-semibold)}.admin-content{display:flex;flex-direction:column;gap:var(--spacing-lg)}.admin-section{margin-bottom:var(--spacing-sm)}.admin-section .section-title{font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm);padding-left:var(--spacing-sm);border-left:3px solid var(--color-primary-light)}.section-description{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-bottom:var(--spacing-md);padding-left:calc(var(--spacing-sm) + 3px)}.section-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.points-display{text-align:center;padding:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.admin-page .current-points{font-size:var(--font-size-display);font-weight:var(--font-weight-extrabold);color:var(--color-primary);display:block;line-height:1}.admin-page .points-label{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.adjust-form{padding:var(--spacing-md);margin-bottom:var(--spacing-sm)}.form-row{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.input-points{width:100px;padding:var(--spacing-sm);border:1.5px solid rgba(44,36,32,.1);border-radius:var(--radius-md);font-size:var(--font-size-body);font-family:inherit;background:var(--color-surface)}.input-reason{flex:1;padding:var(--spacing-sm);border:1.5px solid rgba(44,36,32,.1);border-radius:var(--radius-md);font-size:var(--font-size-body);font-family:inherit;background:var(--color-surface)}.input-points:focus,.input-reason:focus{outline:none;border-color:var(--color-primary-light);box-shadow:0 0 0 3px #e8729a1a}.btn-adjust{width:100%;background:var(--color-primary);color:#fff;padding:var(--spacing-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-lg);border:none;font-size:var(--font-size-caption);transition:all var(--transition-fast)}.btn-adjust:active{transform:scale(.98)}.btn-history{width:100%;margin-top:var(--spacing-sm)}.modal-overlay{position:fixed;inset:0;background:#2c24204d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md)}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:400px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-bottom:1px solid rgba(44,36,32,.06)}.modal-header h3{font-size:var(--font-size-subheading);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.modal-close{background:transparent;font-size:24px;color:var(--color-text-secondary);padding:0;min-height:auto;width:32px;height:32px;border:none;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.modal-close:active{background:var(--color-surface-secondary)}.history-list{overflow-y:auto;padding:var(--spacing-sm)}.history-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm);border-bottom:1px solid rgba(44,36,32,.04)}.history-info{display:flex;flex-direction:column;gap:2px}.history-reason{font-size:var(--font-size-caption);color:var(--color-text-primary)}.history-date{font-size:var(--font-size-micro);color:var(--color-text-secondary)}.history-points{font-weight:var(--font-weight-bold);font-size:var(--font-size-body)}.history-item.positive .history-points{color:var(--color-accent-green)}.history-item.negative .history-points{color:var(--color-error)}.pending-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.pending-card{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);border-left:3px solid var(--color-accent-green)}.pending-info{display:flex;flex-direction:column;gap:2px}.pending-title{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.pending-date{font-size:var(--font-size-caption);color:var(--color-text-secondary)}.btn-mark-used{background:var(--color-accent-green);color:#fff;padding:var(--spacing-xs) var(--spacing-md);min-height:auto;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);border:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn-mark-used:active{transform:scale(.96)}.items-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.item-card{padding:var(--spacing-md)}.item-card.disabled{opacity:.4}.item-info{display:flex;justify-content:space-between;align-items:center}.item-title{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-size:var(--font-size-caption)}.item-value{font-weight:var(--font-weight-bold);color:var(--color-primary);font-size:var(--font-size-caption)}.item-value.penalty-value{color:var(--color-error)}.penalty-item .item-actions{flex-wrap:wrap}.item-actions{display:flex;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.btn-add{background:var(--color-primary);color:#fff;padding:var(--spacing-xs) var(--spacing-sm);min-height:auto;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);border:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn-add:active{transform:scale(.96)}.btn-edit{background:var(--color-surface-secondary);color:var(--color-text-primary);padding:var(--spacing-xs) var(--spacing-sm);min-height:auto;font-size:var(--font-size-micro);font-weight:var(--font-weight-medium);border:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn-edit:active{transform:scale(.96)}.btn-delete{background:var(--color-error);color:#fff;padding:var(--spacing-xs) var(--spacing-sm);min-height:auto;font-size:var(--font-size-caption);font-weight:var(--font-weight-bold);width:28px;border:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn-delete:active{transform:scale(.96)}.btn-penalty{background:var(--color-error);color:#fff;padding:var(--spacing-xs) var(--spacing-md);min-height:auto;font-size:var(--font-size-caption);font-weight:var(--font-weight-semibold);border:none;border-radius:var(--radius-md);transition:all var(--transition-fast)}.btn-penalty:active{transform:scale(.96)}.add-form,.edit-form{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.add-form input,.add-form select,.edit-form input,.edit-form select{padding:var(--spacing-sm);border:1.5px solid rgba(44,36,32,.1);border-radius:var(--radius-md);font-size:var(--font-size-caption);font-family:inherit;background:var(--color-surface)}.add-form input:focus,.add-form select:focus,.edit-form input:focus,.edit-form select:focus{outline:none;border-color:var(--color-primary-light);box-shadow:0 0 0 3px #e8729a1a}.form-buttons{display:flex;gap:var(--spacing-sm)}.btn-save{flex:1;background:var(--color-primary);color:#fff;padding:var(--spacing-sm);font-weight:var(--font-weight-semibold);border:none;border-radius:var(--radius-md);font-size:var(--font-size-caption);transition:all var(--transition-fast)}.btn-save:active{transform:scale(.98)}.btn-cancel{flex:1;background:var(--color-surface-secondary);color:var(--color-text-primary);padding:var(--spacing-sm);border:none;border-radius:var(--radius-md);font-size:var(--font-size-caption);transition:all var(--transition-fast)}.btn-cancel:active{transform:scale(.98)}.pin-setup-overlay{position:fixed;inset:0;background:#f2ede8;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);z-index:1000}.pin-setup{width:100%;max-width:340px;text-align:center;animation:fadeIn .3s var(--ease-out);border-radius:var(--radius-xl)}.pin-setup h2{font-size:var(--font-size-heading);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.pin-setup>p{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.pin-setup .pin-inputs{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.pin-setup .pin-digit{width:56px;height:64px;font-size:28px;font-weight:var(--font-weight-bold);text-align:center;border:1.5px solid rgba(44,36,32,.1);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);outline:none;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);font-family:inherit}.pin-setup .pin-digit:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #e8729a1a}.setup-error{color:var(--color-error);font-size:var(--font-size-caption);margin-bottom:var(--spacing-md)}.saving-text{color:var(--color-primary);font-size:var(--font-size-caption);margin-bottom:var(--spacing-md)}.setup-hint{font-size:var(--font-size-caption);color:var(--color-text-secondary);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid rgba(44,36,32,.06)}:root{--color-primary: #E8729A;--color-primary-light: #F2A5BD;--color-primary-dark: #C75B80;--color-secondary: #7EB8D4;--color-accent-warm: #F0A868;--color-accent-green: #7DC794;--color-gold: #D4A24C;--color-gold-light: #F0D98C;--color-surface: #FEFCFA;--color-surface-elevated: #FFFFFF;--color-surface-secondary: #F7F4F0;--color-surface-tertiary: #EFEBE6;--color-success: #5CB85C;--color-warning: #E8A838;--color-error: #D4665A;--color-info: #7EB8D4;--color-text-primary: #2C2420;--color-text-secondary: #7A7067;--color-text-tertiary: #A89E94;--color-magic-pink: var(--color-primary);--color-sky-blue: var(--color-secondary);--color-sunset-orange: var(--color-accent-warm);--color-forest-green: var(--color-accent-green);--color-lavender: var(--color-surface-secondary);--color-golden-yellow: var(--color-gold);--color-coral: var(--color-primary-light);--color-mint-green: var(--color-accent-green);--color-white: #FFFFFF;--color-soft-gray: var(--color-surface-secondary);--color-text-dark: var(--color-text-primary);--color-text-light: var(--color-text-secondary);--color-gentle-red: var(--color-error);--gradient-primary: linear-gradient(135deg, #E8729A, #EDA0BC);--gradient-celebration: linear-gradient(135deg, #F0D98C, #F0A868);--gradient-sky: linear-gradient(180deg, #E8F0F6, #F7F4F0);--gradient-surface: linear-gradient(180deg, #FEFCFA, #F7F4F0);--font-family: "Nunito", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-display: 40px;--font-size-title: 28px;--font-size-heading: 22px;--font-size-subheading: 18px;--font-size-body: 16px;--font-size-caption: 14px;--font-size-micro: 12px;--font-size-header: var(--font-size-heading);--font-size-button: var(--font-size-subheading);--font-size-points: var(--font-size-display);--font-weight-light: 300;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--spacing-2xs: 4px;--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 40px;--spacing-3xl: 48px;--spacing-4xl: 64px;--radius-xs: 8px;--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--radius-2xl: 28px;--radius-full: 50%;--shadow-xs: 0 1px 2px rgba(44, 36, 32, .04);--shadow-sm: 0 2px 8px rgba(44, 36, 32, .06);--shadow-md: 0 4px 16px rgba(44, 36, 32, .08);--shadow-lg: 0 8px 32px rgba(44, 36, 32, .1);--shadow-xl: 0 16px 48px rgba(44, 36, 32, .12);--shadow-primary: 0 4px 16px rgba(232, 114, 154, .25);--transition-fast: .15s cubic-bezier(.25, .46, .45, .94);--transition-normal: .3s cubic-bezier(.25, .46, .45, .94);--transition-slow: .5s cubic-bezier(.25, .46, .45, .94);--transition-spring: .5s cubic-bezier(.34, 1.56, .64, 1);--transition-spring-gentle: .6s cubic-bezier(.22, 1, .36, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.45, 0, .55, 1);--touch-target-min: 44px;--touch-target-recommended: 48px;--safe-area-top: env(safe-area-inset-top);--safe-area-bottom: env(safe-area-inset-bottom)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-body);color:var(--color-text-primary);background:#f2ede8;min-height:100vh;min-height:100dvh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#root{min-height:100vh;min-height:100dvh;max-width:430px;margin:0 auto;padding-top:var(--safe-area-top);padding-bottom:var(--safe-area-bottom);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;background:var(--gradient-sky)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:1.2;color:var(--color-text-primary)}h1{font-size:var(--font-size-title);letter-spacing:-.3px}h2{font-size:var(--font-size-heading);font-weight:var(--font-weight-semibold);letter-spacing:-.2px}h3{font-size:var(--font-size-subheading);font-weight:var(--font-weight-semibold)}button{font-family:var(--font-family);font-size:var(--font-size-body);font-weight:var(--font-weight-semibold);cursor:pointer;border:none;outline:none;min-height:var(--touch-target-min);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-lg);transition:transform var(--transition-spring),box-shadow var(--transition-fast)}button:active{transform:scale(.96)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-primary);font-weight:var(--font-weight-bold);font-size:var(--font-size-subheading)}.btn-primary:active{transform:scale(.96);box-shadow:var(--shadow-xs)}.btn-secondary{background:var(--color-surface);color:var(--color-primary);border:1.5px solid var(--color-primary-light)}.btn-secondary:active{background:var(--color-surface-secondary)}.card{background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid rgba(44,36,32,.04)}.scroll-container{-webkit-overflow-scrolling:touch;overflow-y:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.fade-in{animation:fadeIn var(--transition-normal) ease-out}.pulse{animation:pulse 2s ease-in-out infinite}.bounce{animation:bounce 1s ease-in-out infinite}.loading-screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);background:var(--gradient-sky)}.loading-screen p{color:var(--color-text-secondary);font-size:var(--font-size-body)}input:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #e8729a1a}
