body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}input,select,textarea{font-size:16px!important}*{-webkit-tap-highlight-color:transparent}button,a,[role=button]{touch-action:manipulation}.loading-slow-hint{color:#6b7280;margin:8px 0 0;font-size:.8rem;font-style:italic}.tutorial-overlay{background:var(--color-bg-overlay);z-index:2000;justify-content:center;align-items:center;padding:24px;animation:.18s ease-out tutorialFadeIn;display:flex;position:fixed;inset:0}.tutorial-panel{background:var(--color-bg-main);width:100%;max-width:var(--max-width-card);border-radius:var(--radius-xl);flex-direction:column;gap:16px;max-height:calc(100dvh - 48px);padding:12px 24px 24px;animation:.18s ease-out tutorialScaleIn;display:flex;overflow-y:auto;box-shadow:0 8px 32px #0003}.tutorial-header-row{justify-content:flex-end;align-items:center;margin:0 -8px 0 0;display:flex}.tutorial-close{cursor:pointer;color:var(--color-text-light);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.tutorial-close:hover{color:var(--color-text-dark);background:#0000000a}.tutorial-close .material-icons{font-size:22px}.tutorial-content{flex-direction:column;gap:16px;display:flex}.tutorial-title{font-size:var(--font-size-xl);color:var(--color-text-dark);margin:0;font-weight:700;line-height:1.2}.tutorial-body{font-size:var(--font-size-base);color:var(--color-text-medium);margin:0;line-height:1.55}.tutorial-actions{flex-direction:column;gap:8px;display:flex}.tutorial-cta{background:var(--color-primary);color:#fff;border-radius:var(--radius-lg);font-size:var(--font-size-lg);cursor:pointer;transition:background var(--transition);border:none;padding:14px 24px;font-weight:600}.tutorial-cta:hover{background:var(--color-primary-hover)}.tutorial-cta:active{transform:translateY(1px)}.tutorial-cta-secondary{color:var(--color-text-light);font-size:var(--font-size-base);cursor:pointer;background:0 0;border:none;padding:8px 24px;font-weight:500}.tutorial-cta-secondary:active{transform:translateY(1px)}@keyframes tutorialFadeIn{0%{background:0 0}to{background:var(--color-bg-overlay)}}@keyframes tutorialScaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.tutorial-spotlight-loading{pointer-events:none;z-index:2000;position:fixed;inset:0}.tutorial-spotlight-backdrop{z-index:2000;pointer-events:none;background:#0009;animation:.2s ease-out tutorialFadeIn;position:fixed;inset:0}.tutorial-spotlight-panel{width:calc(100% - 48px);max-width:var(--max-width-card);box-sizing:border-box;background:var(--color-bg-main);border-radius:var(--radius-xl);z-index:2001;flex-direction:column;gap:16px;padding:12px 24px 24px;animation:.18s ease-out tutorialSpotlightIn;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 32px #00000040}@keyframes tutorialSpotlightIn{0%{opacity:0;transform:translate(-50%)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}.feedback-overlay{background:var(--color-bg-overlay);z-index:1000;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=480px){.feedback-overlay{align-items:center}}.feedback-modal{background:var(--color-bg-main);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100vw;max-width:480px;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;flex-direction:column;animation:.25s ease-out feedbackSlideUp;display:flex;overflow:hidden}@media (width>=480px){.feedback-modal{border-radius:var(--radius-xl);max-height:90dvh}}@keyframes feedbackSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (width>=480px){@keyframes feedbackSlideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}}.feedback-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.feedback-header-text{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.feedback-title{font-size:var(--font-size-xl);color:var(--color-text-dark);margin:0;font-weight:700}.feedback-subtitle{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.feedback-close{cursor:pointer;color:var(--color-text-light);border-radius:var(--radius-sm);transition:color var(--transition);background:0 0;border:none;align-items:center;padding:4px;display:flex}.feedback-close:hover:not(:disabled){color:var(--color-text-dark)}.feedback-close:disabled{cursor:default;opacity:.5}.feedback-body{padding:var(--space-xl);gap:var(--space-lg);box-sizing:border-box;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden auto}.feedback-context{font-size:var(--font-size-sm);color:var(--color-text-light);margin:0}.feedback-context strong{color:var(--color-text-medium);font-weight:600}.feedback-chip-row{gap:var(--space-sm);flex-wrap:wrap;display:flex}.feedback-chip{background:var(--color-bg-white);border:1px solid var(--color-border);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text-medium);cursor:pointer;transition:background var(--transition), border-color var(--transition), color var(--transition);border-radius:99px;padding:6px 14px;font-weight:600}.feedback-chip:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.feedback-chip.is-selected,.feedback-chip.is-selected:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.feedback-chip:disabled{opacity:.6;cursor:not-allowed}.feedback-textarea{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-text-dark);box-sizing:border-box;resize:vertical;width:100%;min-height:140px;transition:border-color var(--transition)}.feedback-textarea:focus{border-color:var(--color-primary);outline:none}.feedback-textarea::placeholder{color:var(--color-text-placeholder)}.feedback-textarea:disabled{opacity:.7}.feedback-footer{padding:var(--space-lg) var(--space-xl);border-top:1px solid var(--color-border);gap:var(--space-md);flex-direction:column;flex-shrink:0;display:flex}.feedback-error{margin:0}.feedback-actions{gap:var(--space-md);display:flex}.feedback-cancel{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--font-size-base);color:var(--color-text-medium);cursor:pointer;transition:background var(--transition);background:0 0;flex:1;font-weight:600}.feedback-cancel:hover:not(:disabled){background:var(--color-bg-white)}.feedback-cancel:disabled{opacity:.5;cursor:not-allowed}.feedback-send{background:var(--color-primary);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--font-size-base);color:#fff;cursor:pointer;transition:background var(--transition);border:none;flex:2;font-weight:600}.feedback-send:hover:not(:disabled){background:var(--color-primary-hover)}.feedback-send:disabled{opacity:.5;cursor:not-allowed}.feedback-sent-view{text-align:center;justify-content:center;align-items:center;gap:var(--space-sm);padding:calc(var(--space-xl) * 2) var(--space-xl);flex-direction:column;min-height:280px;animation:.35s ease-out feedbackSentFadeIn;display:flex}@keyframes feedbackSentFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.feedback-sent-title{font-size:var(--font-size-2xl);color:var(--color-text-dark);margin:0;font-weight:700}.feedback-sent-subtitle{font-size:var(--font-size-base);color:var(--color-text-medium);max-width:280px;margin:0;line-height:1.4}.feedback-btn{background:var(--color-primary);cursor:grab;z-index:20;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;will-change:transform;width:48px;height:48px;transition:box-shadow var(--transition), background var(--transition);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;top:0;left:0;box-shadow:0 4px 12px #00000038;color:#fff!important}.feedback-btn:hover{background:var(--color-primary-hover);box-shadow:0 6px 16px #00000047}.feedback-btn:active{cursor:grabbing}.feedback-btn.is-dragging{z-index:1001;cursor:grabbing;transition:none;box-shadow:0 10px 24px #00000052}.feedback-btn,.feedback-btn .material-icons{color:#fff!important}.feedback-btn .material-icons{pointer-events:none;font-size:22px}@media (width>=480px){.feedback-btn{width:52px;height:52px}.feedback-btn .material-icons{font-size:24px}}:root{--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-bg-main:#fefce8;--color-bg-secondary:#eae5f1;--color-bg-white:#fff;--color-bg-overlay:#00000080;--color-text-dark:#111827;--color-text-medium:#4b5563;--color-text-light:#6b7280;--color-text-placeholder:#9ca3af;--color-border:#e5e7eb;--color-border-yellow:#fde68a;--color-success:#009708;--color-warning:#d97706;--color-error:#dc2626;--color-easy:#dbfede;--color-medium:#fff7c8;--color-hard:#ffebe7;--color-skill:#e9d5ff;--color-daily:#fed7aa;--color-quest-bg:#1e3a8a;--color-quest-bg-completed:#253552;--color-quest-border:#3b82f6;--color-quest-border-soft:#3b82f666;--color-tutorial-bg:#f3e8ff;--color-tutorial-border:#c084fc;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:20px;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:24px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--shadow-card:0 1px 3px #0000001a;--shadow-hover:0 4px 12px #00000026;--max-width-card:400px;--transition:.2s ease}*{font-family:var(--font-family)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}.App{text-align:center}.App-logo{pointer-events:none;height:40vmin}@media (prefers-reduced-motion:no-preference){.App-logo{animation:20s linear infinite App-logo-spin}}.App-header{color:#fff;background-color:#282c34;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;font-size:calc(10px + 2vmin);display:flex}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.landing-container{background:var(--color-bg-main);min-height:100dvh;font-family:var(--font-family);padding:var(--space-lg);box-sizing:border-box;flex-direction:column;justify-content:center;display:flex}.landing-header{text-align:center;margin-bottom:var(--space-lg)}.landing-title{font-size:var(--font-size-2xl);color:var(--color-text-dark);margin:0;font-weight:700;line-height:1.2}.slider-container{max-width:var(--max-width-card);flex-direction:column;flex:1;justify-content:center;width:100%;min-height:200px;margin:0 auto;display:flex}.slider-wrapper{border-radius:var(--radius-lg);margin-bottom:var(--space-lg);touch-action:pan-y;width:100%;position:relative;overflow:hidden}.slides-container{transition:var(--transition);width:100%;display:flex}.slide{background:var(--color-bg-white);border:2px solid var(--color-border-yellow);border-radius:var(--radius-lg);width:100%;min-width:100%;padding:var(--space-xl);box-shadow:var(--shadow-card);text-align:center;box-sizing:border-box}.slide-image{width:100%;max-width:320px;height:auto;margin:0 auto var(--space-lg) auto;object-fit:contain;display:block}.slide-title{font-size:var(--font-size-xl);color:var(--color-text-dark);margin:0 0 var(--space-lg) 0;font-weight:600}.slide-content{font-size:var(--font-size-base);color:var(--color-text-medium);margin:0;line-height:1.5}.slider-nav{justify-content:center;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);display:flex}.nav-button{color:var(--color-text-light);padding:var(--space-xs) var(--space-sm);cursor:pointer;transition:var(--transition);background:0 0;border:none;font-size:24px;line-height:1}.nav-button:hover{color:var(--color-text-dark)}.dots-container{justify-content:center;gap:var(--space-md);display:flex}.dot{cursor:pointer;width:16px;height:16px;transition:var(--transition);border:none;border-radius:50%}.dot.active{background:var(--color-primary)}.dot.inactive{background:var(--color-border)}.dot:hover{transform:scale(1.1)}.actions-container{max-width:var(--max-width-card);width:100%;margin:0 auto}.primary-button{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);width:100%;padding:var(--space-lg);font-size:var(--font-size-lg);cursor:pointer;transition:var(--transition);margin-bottom:var(--space-lg);border:none;font-weight:600}.primary-button:hover{background:var(--color-primary-hover)}.secondary-action{text-align:center}.secondary-text{font-size:var(--font-size-sm);color:var(--color-text-light)}.secondary-button{color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}.auth-container{background:var(--color-bg-main);min-height:100dvh;font-family:var(--font-family);padding:var(--space-lg);flex-direction:column;justify-content:center;align-items:center;display:flex}.auth-page-wrapper{width:100%;max-width:var(--max-width-card);padding:var(--space-md);flex-direction:column;align-items:center;display:flex}.auth-card{width:85%;max-width:var(--max-width-card);background:var(--color-bg-white);border:2px solid var(--color-border-yellow);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-card)}.auth-header{text-align:center;margin-bottom:var(--space-xl);width:100%}.auth-title{font-size:var(--font-size-2xl);color:var(--color-text-dark);margin:0 0 var(--space-sm);font-weight:700;line-height:1.2}.auth-subtitle{font-size:var(--font-size-base);color:var(--color-text-medium);margin:0;line-height:1.4}.auth-error{margin-top:var(--space-sm);margin-bottom:var(--space-lg);text-align:left}.success-message{color:#166534;padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);font-size:var(--font-size-sm);text-align:center;background:#f0fdf4;border:1px solid #bbf7d0}.forgot-password-link{margin-top:var(--space-xs);margin-left:auto;display:block}.tos-checkbox-row{align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-lg);cursor:pointer;display:flex}.tos-checkbox{cursor:pointer;flex-shrink:0;width:16px;height:16px;margin-top:3px}.tos-checkbox-label{font-size:var(--font-size-sm);color:var(--color-text-dark);line-height:1.4}.tos-checkbox-label a{color:var(--color-primary);text-decoration:underline}.auth-form{margin-bottom:var(--space-xl)}.form-group{margin-bottom:var(--space-lg)}.form-label{font-size:var(--font-size-sm);color:var(--color-text-dark);margin-bottom:var(--space-xs);font-weight:500;display:block}.form-input{width:100%;padding:var(--space-md);font-size:var(--font-size-base);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-white);color:var(--color-text-dark);transition:var(--transition);box-sizing:border-box}.form-input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #3b82f61a}.form-input::placeholder{color:var(--color-text-placeholder)}.password-input-wrapper{position:relative}.password-input-wrapper .form-input{padding-right:44px}.password-toggle-btn{right:var(--space-sm);padding:var(--space-xs);cursor:pointer;color:var(--color-text-light);border-radius:var(--radius-sm);transition:var(--transition);background:0 0;border:none;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.password-toggle-btn:hover{color:var(--color-text-medium)}.password-toggle-btn .material-icons-outlined{font-size:20px}.auth-button{font-family:var(--font-family);font-size:var(--font-size-base);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);border:none;font-weight:500}.auth-button.primary{background:var(--color-primary);color:#fff;width:100%;padding:var(--space-lg);font-size:var(--font-size-lg);font-weight:600}.auth-button.primary:hover:not(:disabled){background:var(--color-primary-hover)}.auth-button.primary:disabled{opacity:.6;cursor:not-allowed}.auth-button.secondary{color:var(--color-primary);font-size:var(--font-size-sm);background:0 0;padding:0;text-decoration:underline}.auth-button.secondary:hover{color:var(--color-primary-hover)}.auth-footer{text-align:center}.footer-text{font-size:var(--font-size-sm);color:var(--color-text-light)}.edit-daily-missions-modal-overlay{background:var(--color-bg-overlay);z-index:1000;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.edit-daily-missions-modal-container{background:var(--color-bg-main);border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-width:600px;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;animation:.25s ease-out sheetSlideUp;display:flex;box-shadow:0 -4px 24px #0000001f}@keyframes sheetSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@media (width>=480px){.edit-daily-missions-modal-overlay{align-items:center;padding:20px}.edit-daily-missions-modal-container{border-radius:var(--radius-xl);animation:.2s ease-out sheetScaleIn}@keyframes sheetScaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}}.edit-daily-missions-modal-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--color-border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-title{font-family:var(--font-family);font-size:var(--font-size-xl);color:var(--color-text-dark);margin:0;font-weight:700}.modal-close-button{cursor:pointer;padding:var(--space-sm);border-radius:var(--radius-md);color:var(--color-text-light);transition:all var(--transition);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-close-button:hover{color:var(--color-text-dark);background-color:#0000000d}.edit-daily-missions-modal-content{flex:1;padding:0;overflow-y:auto}.daily-missions-container.modal-mode{padding:var(--space-lg) var(--space-xl);max-height:none;overflow:visible}.daily-missions-container.modal-mode .daily-missions-header{margin-bottom:var(--space-lg)}.daily-missions-container.modal-mode .page-title{display:none}.daily-missions-container.modal-mode .page-subtitle{font-size:var(--font-size-base);margin-bottom:var(--space-lg);text-align:center}.daily-missions-container.modal-mode .mission-slots,.daily-missions-container.modal-mode .action-buttons{margin-bottom:var(--space-lg)}.set-missions-footer--modal{background:linear-gradient(to top, var(--color-bg-main) 80%, transparent);padding:var(--space-md) var(--space-lg) var(--space-lg);margin-top:var(--space-lg);z-index:1;position:sticky;bottom:0}.set-missions-footer--modal .set-missions-btn{width:100%}.daily-missions-container.modal-mode .current-status{background-color:var(--color-bg-light);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-lg);text-align:center}.daily-missions-container.modal-mode .current-status .status-text{font-size:var(--font-size-sm);color:var(--color-text-medium);margin:0}.daily-missions-container.modal-mode .error-message{color:var(--color-error);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-lg);text-align:center;font-size:var(--font-size-sm);background-color:#fee2e2}.daily-missions-container.modal-mode .loading-message{text-align:center;padding:var(--space-xl);color:var(--color-text-medium);font-size:var(--font-size-base)}@media (width<=640px){.edit-daily-missions-modal-overlay{padding:var(--space-md)}.edit-daily-missions-modal-container{max-height:95vh;margin:0}.edit-daily-missions-modal-header{padding:var(--space-md) var(--space-lg)}.modal-title{font-size:var(--font-size-lg)}.daily-missions-container.modal-mode{padding:var(--space-md) var(--space-lg)}.daily-missions-container.modal-mode .mission-slots{gap:var(--space-md)}.daily-missions-container.modal-mode .action-buttons{gap:var(--space-sm);flex-direction:column}.daily-missions-container.modal-mode .action-btn{width:100%}}.routine-up-next{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-md);margin:var(--space-md) 0;gap:var(--space-sm);box-shadow:var(--shadow-card);border:none;flex-direction:column;display:flex}.routine-up-next-header{justify-content:space-between;align-items:center;gap:var(--space-sm);cursor:pointer;text-align:left;width:100%;font-family:var(--font-family);color:var(--color-text-dark);background:0 0;border:none;outline:none;padding:0;display:flex}.routine-up-next-header:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.routine-up-next-label{font-size:var(--font-size-sm);letter-spacing:0;padding-left:var(--space-sm);font-weight:700}.routine-up-next-arrow,.routine-up-next-arrow.material-icons{font-size:20px;color:var(--color-text-dark)!important}.routine-up-next .mission-card-condensed{background-color:var(--color-bg-white);margin:0}.routine-up-next-header-end{align-items:center;gap:var(--space-xs);flex-shrink:0;display:inline-flex}.routine-up-next-more{font-size:var(--font-size-xs);color:var(--color-text-dark);text-transform:none;letter-spacing:0;font-weight:600}.routine-up-next-link{justify-content:center;align-items:center;gap:var(--space-xs);border-radius:var(--radius-lg);width:100%;padding:var(--space-sm) var(--space-md);margin:var(--space-md) 0;cursor:pointer;text-align:center;font-family:var(--font-family);color:var(--color-text-dark);transition:background var(--transition);box-shadow:var(--shadow-card);background:#e5ddf0;border:1px solid #c4b5fd;display:flex}.routine-up-next-link-label{font-size:var(--font-size-sm);font-weight:600}.routine-up-next-link-arrow,.routine-up-next-link-arrow.material-icons{font-size:18px;color:var(--color-text-dark)!important}.routine-up-next-link-leading-icon,.routine-up-next-link-leading-icon.material-icons{margin-right:var(--space-xs);font-size:20px;color:var(--color-text-medium)!important}.routine-up-next--loading{border:2px dashed var(--color-border);cursor:default;pointer-events:none;opacity:.3;background:0 0;min-height:80px}.email-verification-banner{justify-content:space-between;align-items:center;gap:var(--space-md);width:100%;max-width:var(--max-width-card);margin:var(--space-md) auto;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);box-sizing:border-box;font-size:var(--font-size-sm);color:#78350f;background:#fffbeb;border:1px solid #fde68a;display:flex}.email-verification-banner-text{flex:1;line-height:1.4}.email-verification-banner-button{color:#92400e;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-sm);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition);background:0 0;border:1px solid #d97706;flex-shrink:0;font-weight:500}.email-verification-banner-button:hover:not(:disabled){background:#fef3c7}.email-verification-banner-button:disabled{opacity:.6;cursor:not-allowed}.loading-transition{grid-template-areas:"stack";display:grid}.loading-transition-layer{grid-area:stack;min-width:0}.loading-transition-skeleton{pointer-events:none}.loading-transition-skeleton-in{animation:.3s ease-out forwards lt-skeleton-fade-in}.loading-transition-skeleton-out{animation:.3s ease-out forwards lt-skeleton-fade-out}.loading-transition-content{animation:.3s ease-out lt-content-fade-in}@keyframes lt-skeleton-fade-in{0%{opacity:0}to{opacity:1}}@keyframes lt-skeleton-fade-out{0%{opacity:1}to{opacity:0}}@keyframes lt-content-fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.loading-transition-skeleton-in,.loading-transition-skeleton-out,.loading-transition-content{animation:none}}.homepage-skeleton-profile{background:var(--color-bg-white);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md);align-items:center;gap:var(--space-md);display:flex}.homepage-skeleton-profile-info{gap:var(--space-sm);flex-direction:column;flex:1;min-width:0;display:flex}.homepage-skeleton-daily{background:var(--color-bg-white);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md) var(--space-md);gap:var(--space-sm);flex-direction:column;display:flex}.homepage-skeleton-section-header{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.homepage-skeleton-up-next{gap:var(--space-xs);margin-top:var(--space-sm);flex-direction:column;display:flex}.homepage-skeleton-action-buttons{gap:var(--space-sm);margin-top:var(--space-sm);display:flex}.homepage-skeleton-action-buttons .skeleton{flex:1}.homepage-skeleton-shortcuts{gap:var(--space-sm);grid-template-columns:1fr 1fr;align-items:stretch;display:grid}.homepage-skeleton-shortcut-col{gap:var(--space-sm);flex-direction:column;display:flex}.homepage-skeleton-shortcut-col .skeleton{flex:1}.homepage-container{background:var(--color-bg-main);min-height:100dvh;font-family:var(--font-family);padding:var(--space-md);max-width:var(--max-width-card);gap:var(--space-lg);flex-direction:column;margin:0 auto;display:flex}.loading{text-align:center;color:var(--color-text-medium);font-size:var(--font-size-lg);margin:var(--space-xl) 0}.homepage-header{gap:var(--space-sm);grid-template-columns:1fr 1fr 44px 44px;align-items:center;display:grid}.header-button{background:var(--color-bg-white);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-xs);cursor:pointer;transition:var(--transition);font-size:var(--font-size-sm);color:var(--color-text-dark);align-items:center;gap:var(--space-xs);justify-content:center;min-height:44px;font-weight:500;display:flex}.header-button:hover{box-shadow:var(--shadow-hover);background:#f9fafb;transform:translateY(-1px)}.header-button svg{color:var(--color-text-medium);width:18px;height:18px}.settings-button,.adventure-log-button{width:44px;height:44px;padding:var(--space-xs);justify-content:center}.settings-button svg{width:20px;height:20px}.material-icons{color:#4c4b50;font-size:16px}.material-icons-outlined{color:#4c4b50;font-family:Material Icons Outlined;font-size:24px}.material-icons-light{color:#fff;font-family:Material Icons Outlined;font-size:16px;font-weight:100}.profile-section{background:var(--color-bg-white);border:2px solid var(--color-border-yellow);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md);box-shadow:var(--shadow-card)}.profile-content{align-items:center;gap:var(--space-md);display:flex}.avatar-container{flex-shrink:0}.character-avatar{border-radius:var(--radius-md);background:var(--color-primary);color:#fff;text-align:center;justify-content:center;align-items:center;width:120px;height:130px;font-size:11px;font-weight:600;line-height:1.1;display:flex}.character-avatar-image{border-radius:var(--radius-md);object-fit:contain;width:120px;height:130px;display:block}.avatar-class{text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:var(--space-xs);overflow:hidden}.profile-info{flex:1;min-width:0}.character-name{font-size:var(--font-size-lg);color:var(--color-text-dark);margin:0 0 var(--space-xs) 0;font-weight:600;line-height:1.2}.character-title{color:var(--color-text-medium);margin:0 0 var(--space-sm) 0;font-style:italic;line-height:1.3;font-size:var(--font-size-sm)!important;font-style:italic!important}.level-info{margin-bottom:var(--space-xs)}.current-level{font-size:var(--font-size-sm);color:var(--color-text-dark);font-weight:600}.xp-section{gap:var(--space-xs);flex-direction:column;display:flex}.xp-bar{background:var(--color-border);border-radius:4px;width:100%;height:8px;overflow:hidden}.xp-progress{background:linear-gradient(90deg,#10b981,#34d399);border-radius:4px;height:100%;transition:width .3s}.xp-counter{color:var(--color-text-medium);font-size:11px;font-weight:500}.daily-missions-section{background:var(--color-bg-white);border:2px solid var(--color-border-yellow);border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md) var(--space-xs);box-shadow:var(--shadow-card)}.section-header{margin-bottom:var(--space-xs);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--font-size-lg);color:var(--color-text-dark);margin:0;font-weight:600}.edit-button{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-xs);cursor:pointer;transition:var(--transition);color:var(--color-text-medium);background:0 0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.edit-button:hover{color:var(--color-text-dark);background:#f9fafb}.missions-overview{margin-bottom:var(--space-sm);box-sizing:border-box;flex-direction:column;gap:0;width:100%;display:flex}.missions-overview .mission-card,.missions-overview .mission-card-condensed{box-sizing:border-box;max-width:100%;margin:var(--space-sm) 0}.mission-item{align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-radius:var(--radius-sm);transition:var(--transition);background:#f9fafb;display:flex}.mission-item.completed{opacity:.7;background:#e5e7eb}.mission-checkbox{border:2px solid var(--color-border);border-radius:var(--radius-sm);width:16px;height:16px;transition:var(--transition);flex-shrink:0;justify-content:center;align-items:center;display:flex}.mission-item.completed .mission-checkbox{background:var(--color-success);border-color:var(--color-success);color:#fff}.mission-checkbox svg{width:10px;height:10px}.checkbox-empty{border-radius:1px;width:8px;height:8px}.mission-title{font-size:var(--font-size-sm);color:var(--color-text-dark);flex:1;font-weight:500;line-height:1.3}.mission-item.completed .mission-title{color:var(--color-text-light);text-decoration:line-through}.no-missions{text-align:center;padding:var(--space-lg);border-radius:var(--radius-md);color:var(--color-text-medium);background:#f9fafb}.no-missions p{font-size:var(--font-size-sm);margin:0;line-height:1.4}.no-missions p:first-child{margin-bottom:var(--space-xs);font-weight:600}.action-buttons{gap:var(--space-sm);display:flex!important}.action-button{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-xs);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;gap:var(--space-xs);border:none;min-height:40px;font-weight:600;display:flex;position:relative;flex:1!important}.notification-dot{background:#ef4444;border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.action-button:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.action-button svg{width:16px;height:16px}.action-button.primary{background:var(--color-primary)}.action-button.primary:hover{background:var(--color-primary-hover)}.action-button.secondary{background:var(--color-text-light)}.action-button.secondary:hover{background:var(--color-text-medium)}@media (width<=480px){.homepage-container{padding:var(--space-sm);gap:var(--space-md)}}.home-shortcuts{gap:var(--space-sm);grid-template-columns:1fr 1fr;align-items:stretch;display:grid}.home-shortcut-col{gap:var(--space-sm);flex-direction:column;display:flex}.home-shortcut-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-xs);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition);justify-content:center;align-items:center;gap:var(--space-xs);border:none;flex:1;min-height:40px;font-weight:600;display:flex}.home-shortcut-btn:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.home-base-widget{background:var(--color-bg-white);border:2px solid var(--color-border-yellow);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-sm) var(--space-sm);cursor:pointer;transition:var(--transition);text-align:center;flex-direction:column;justify-content:space-between;width:100%;display:flex}.home-base-widget:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.home-base-widget--has-image{text-align:left;flex-direction:row;padding:0;display:flex;overflow:hidden}.home-base-widget-icon-img{object-fit:cover;border-radius:var(--radius-sm);width:56px;height:56px;margin-left:var(--space-sm);flex-shrink:0;align-self:center}.home-base-widget-content{flex-direction:column;flex:1;justify-content:space-between;display:flex}.home-base-widget--has-image .home-base-widget-content{min-width:0;padding:var(--space-sm);align-self:center;gap:var(--space-xs);flex:1}.home-base-widget-header{justify-content:center;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);display:flex}.home-base-widget--has-image .home-base-widget-header{justify-content:flex-start;margin-bottom:0}.home-base-widget-header .material-icons{color:var(--color-text-medium);font-size:18px}.home-base-widget-title{font-size:var(--font-size-sm);color:var(--color-text-dark);font-weight:600}.home-base-stats{justify-content:space-around;gap:var(--space-xs);display:flex}.home-base-widget--has-image .home-base-stats{gap:0}.home-base-stat{flex-direction:column;align-items:center;gap:2px;display:flex}.home-base-stat-number{font-size:var(--font-size-lg);color:var(--color-text-dark);font-weight:700;line-height:1}.home-base-stat-number--late{color:#ef4444}.home-base-stat-label{color:var(--color-text-medium);white-space:nowrap;font-size:10px;font-weight:500}.header-button--weekly-ready{border-color:var(--color-primary);position:relative}.header-weekly-dot{background:var(--color-warning,#f59e0b);border:1.5px solid var(--color-bg-white);pointer-events:none;border-radius:50%;width:8px;height:8px;position:absolute;top:6px;right:6px}.review-sheet-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.review-sheet{background:var(--color-bg-white);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-xl) var(--space-lg) calc(var(--space-xl) + env(safe-area-inset-bottom,0px));width:100%;max-width:var(--max-width-card);gap:var(--space-md);flex-direction:column;display:flex}.review-sheet-title{font-size:var(--font-size-xl);color:var(--color-text-dark);text-align:center;margin:0;font-weight:700}.review-sheet-sub{font-size:var(--font-size-base);color:var(--color-text-medium);text-align:center;margin:0}.review-sheet-primary-btn{background:var(--color-primary);color:#fff;border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--font-size-base);cursor:pointer;min-height:48px;transition:background var(--transition);border:none;font-weight:600}.review-sheet-primary-btn:hover{background:var(--color-primary-hover)}.review-sheet-secondary-btn{cursor:pointer;color:var(--color-text-medium);font-size:var(--font-size-sm);padding:var(--space-xs) 0;text-align:center;transition:color var(--transition);background:0 0;border:none;font-weight:500}.review-sheet-secondary-btn:hover{color:var(--color-text-dark)}
