@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Nunito:wght@400;500;600;700;800;900&display=swap";:root{--subpage-title-font:var(--appbar-title-font);--subpage-title-size:16px;--subpage-title-weight:800;--subpage-title-color:var(--appbar-title-color);--subpage-title-line-height:1.3;--subpage-title-padding-left:8px}.detail-header-title,.edit-header-title,.weekly-edit-header-title,.study-header-title,.testing-header-title,.badges-header-title,.treasure-title.text-wrap{font-family:var(--subpage-title-font)!important;font-size:var(--subpage-title-size)!important;font-weight:var(--subpage-title-weight)!important;color:var(--subpage-title-color)!important;line-height:var(--subpage-title-line-height)!important;padding-left:var(--subpage-title-padding-left)!important;text-align:left!important;flex:1!important}:root{--clr-primary:#a020a0;--clr-primary-light:#c040c0;--clr-primary-lighter:#f5e6f5;--clr-primary-dark:#7a0a7a;--clr-primary-gradient:linear-gradient(135deg, #a020a0 0%, #c040c0 100%);--clr-secondary:#e040fb;--clr-secondary-light:#ea80fc;--clr-secondary-lighter:#fce4ff;--clr-teal:#4ecdc4;--clr-teal-light:#e8faf9;--clr-yellow:#ffe66d;--clr-yellow-light:#fffae5;--clr-orange:#ff9f43;--clr-success:#2ed573;--clr-success-light:#e8fff4;--clr-warning:#ff9800;--clr-warning-light:#fff3e0;--clr-error:#ff4757;--clr-error-light:#ffe8ea;--clr-bg:#faf5fa;--clr-bg-secondary:#f5eef5;--clr-surface:#fff;--clr-surface-2:#fdfafd;--clr-border:#ebe0eb;--clr-border-light:#f5eef5;--clr-text-primary:#1a0a1a;--clr-text-secondary:#6b4a6b;--clr-text-muted:#b090b0;--clr-overlay:#1a0a1a80;--nav-height-mobile:70px;--nav-width-desktop:260px;--header-height:60px;--appbar-height:68px;--appbar-padding-top:12px;--appbar-padding-side:16px;--appbar-title-size:20px;--appbar-title-weight:800;--appbar-title-font:"Nunito", sans-serif;--appbar-title-color:#8c1e99;--appbar-icon-box:40px;--appbar-icon-img:20px;--appbar-icon-gap:8px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--r-2xl:24px;--r-3xl:32px;--r-full:9999px;--shadow-sm:0 1px 3px #a020a014, 0 1px 2px #0000000f;--shadow-md:0 4px 16px #a020a024, 0 2px 6px #00000014;--shadow-lg:0 8px 32px #a020a02e, 0 4px 12px #0000001a;--shadow-xl:0 20px 60px #a020a038, 0 8px 24px #0000001f;--shadow-nav:0 -4px 20px #a020a01a;--shadow-card:0 2px 12px #a020a014;--font-base:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Nunito", "Inter", sans-serif;--card-radius:var(--r-xl);--card-padding:var(--sp-4);--card-border:1.5px solid var(--clr-border-light);--card-shadow:var(--shadow-card);--card-gap:var(--sp-2);--card-title-font:var(--font-display);--card-title-size:15.5px;--card-title-weight:700;--card-title-color:#3c0066;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease;--transition-spring:.3s cubic-bezier(.34, 1.56, .64, 1)}[data-theme=dark]{--clr-bg:#120912;--clr-bg-secondary:#1a0f1a;--clr-surface:#221422;--clr-surface-2:#2a1a2a;--clr-border:#3a203a;--clr-border-light:#2a1a2a;--clr-text-primary:#fdf0fd;--clr-text-secondary:#c8a0c8;--clr-text-muted:#8a5a8a;--clr-overlay:#000000b3;--shadow-card:0 2px 12px #00000059;--shadow-nav:0 -4px 20px #00000073;--card-title-color:var(--clr-text-primary)}*,:before,:after{box-sizing:border-box;margin:0;padding:0;-webkit-text-size-adjust:100%!important;-moz-text-size-adjust:100%!important;text-size-adjust:100%!important}html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden;-webkit-text-size-adjust:100%!important;-moz-text-size-adjust:100%!important;text-size-adjust:100%!important}body{font-family:var(--font-base);background:var(--clr-bg);color:var(--clr-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;line-height:1.6;overflow-x:hidden;-webkit-text-size-adjust:100%!important;-moz-text-size-adjust:100%!important;text-size-adjust:100%!important}#root{flex-direction:column;min-height:100dvh;display:flex;overflow-x:hidden}img,video{max-width:100%;height:auto}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}input,textarea,select{border:none;outline:none;font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--clr-border);border-radius:var(--r-full)}::-webkit-scrollbar-thumb:hover{background:var(--clr-primary-light)}.font-display{font-family:var(--font-display)}.text-xs{font-size:11px}.text-sm{font-size:13px}.text-base{font-size:15px}.text-md{font-size:17px}.text-lg{font-size:19px}.text-xl{font-size:22px}.text-2xl{font-size:26px}.text-3xl{font-size:32px}.text-4xl{font-size:40px}.fw-300{font-weight:300}.fw-400{font-weight:400}.fw-500{font-weight:500}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-800{font-weight:800}.fw-900{font-weight:900}.text-primary{color:var(--clr-text-primary)}.text-secondary{color:var(--clr-text-secondary)}.text-muted{color:var(--clr-text-muted)}.text-accent{color:var(--clr-primary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--sp-1)}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.gap-5{gap:var(--sp-5)}.gap-6{gap:var(--sp-6)}.flex-1{flex:1}.w-full{width:100%}.app-layout{min-height:100dvh;display:flex;position:relative}.app-content{min-height:100dvh;padding-bottom:calc(var(--nav-height-mobile) + env(safe-area-inset-bottom,0px) + 24px);flex-direction:column;flex:1;display:flex;overflow-x:hidden}.app-content--no-scroll{touch-action:none;height:100dvh!important;min-height:100dvh!important;padding-bottom:0!important;overflow:hidden!important}.body--no-scroll{touch-action:none;height:100%!important;overflow:hidden!important}.app-content--page-scrollable{height:auto!important;min-height:100dvh!important;padding-bottom:calc(var(--nav-height-mobile) + 24px)!important;overflow-y:auto!important}.app-content--page-fixed{height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important;padding-bottom:var(--nav-height-mobile)!important;overflow:hidden!important}@media (width>=1024px){.app-layout{flex-direction:row}.app-content{margin-left:var(--nav-width-desktop);padding-bottom:0}}.page{padding:0 var(--sp-4) var(--sp-6);flex-direction:column;flex:1;width:100%;max-width:600px;margin:0 auto;display:flex}@media (width>=768px){.page{padding:0 var(--sp-6) var(--sp-8);max-width:768px}}@media (width>=1024px){.page{max-width:900px;padding:var(--sp-6) var(--sp-8)}}.page-header{z-index:50;background:var(--clr-bg);padding:var(--sp-4) 0;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);display:flex;position:sticky;top:0}.page-header__title{font-family:var(--font-display);color:var(--clr-text-primary);flex:1;font-size:22px;font-weight:800}.page-header__subtitle{color:var(--clr-text-secondary);margin-top:2px;font-size:13px}.card{background:var(--clr-surface);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:var(--sp-4);border:1px solid var(--clr-border-light);transition:transform var(--transition-base), box-shadow var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card--flat{box-shadow:none}.card--elevated{box-shadow:var(--shadow-lg)}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--r-full);transition:all var(--transition-base);white-space:nowrap;padding:14px 24px;font-size:15px;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.btn:after{content:"";opacity:0;transition:opacity var(--transition-fast);background:#ffffff26;position:absolute;inset:0}.btn:hover:after{opacity:1}.btn:active{transform:scale(.97)}.btn-primary{background:var(--clr-primary-gradient);color:#fff;box-shadow:0 4px 16px #a020a066}.btn-secondary{background:var(--clr-secondary);color:#fff;box-shadow:0 4px 16px #e040fb4d}.btn-outline{border:2px solid var(--clr-primary);color:var(--clr-primary);background:0 0}.btn-ghost{background:var(--clr-primary-lighter);color:var(--clr-primary)}.btn-danger{background:var(--clr-error);color:#fff}.btn--sm{padding:8px 16px;font-size:13px}.btn--lg{border-radius:var(--r-2xl);padding:16px 32px;font-size:17px}.btn--full{border-radius:var(--r-xl);width:100%}.btn--icon{border-radius:var(--r-full);aspect-ratio:1;padding:10px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.fab{bottom:calc(var(--nav-height-mobile) + 16px);border-radius:var(--r-full);background:var(--clr-primary-gradient);color:#fff;width:56px;height:56px;box-shadow:var(--shadow-xl);z-index:100;transition:all var(--transition-spring);justify-content:center;align-items:center;display:flex;position:fixed;right:20px}.fab:hover{transform:scale(1.1)}.fab:active{transform:scale(.95)}@media (width>=1024px){.fab{bottom:24px}}.input-group{gap:var(--sp-2);flex-direction:column;display:flex}.input-label{color:var(--clr-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.input-field{border-radius:var(--r-lg);border:1.5px solid var(--clr-border);background:var(--clr-surface);width:100%;color:var(--clr-text-primary);transition:all var(--transition-fast);padding:14px 16px;font-size:16px}.input-field:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px #a020a026}.input-field::placeholder{color:var(--clr-text-muted)}.badge{border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.badge-primary{background:var(--clr-primary-lighter);color:var(--clr-primary)}.badge-secondary{background:var(--clr-secondary-lighter);color:var(--clr-secondary)}.badge-success{background:var(--clr-success-light);color:var(--clr-success)}.badge-warning{background:var(--clr-warning-light);color:var(--clr-warning)}.badge-error{background:var(--clr-error-light);color:var(--clr-error)}.badge-teal{background:var(--clr-teal-light);color:var(--clr-teal)}.progress-bar{background:var(--clr-border);border-radius:var(--r-full);width:100%;height:6px;overflow:hidden}.progress-bar__fill{border-radius:var(--r-full);background:var(--clr-primary-gradient);height:100%;transition:width var(--transition-slow)}.sheet-overlay{background:var(--clr-overlay);z-index:200;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--clr-surface);border-radius:var(--r-3xl) var(--r-3xl) 0 0;width:100%;padding:var(--sp-6);max-height:92dvh;overflow-y:auto}.sheet__handle{background:var(--clr-border);border-radius:var(--r-full);width:40px;height:4px;margin:0 auto var(--sp-6)}@media (width>=768px){.sheet-overlay{justify-content:center;align-items:center}.sheet{border-radius:var(--r-2xl);width:520px;max-width:90vw;max-height:85dvh}.sheet__handle{display:none}}.avatar{border-radius:var(--r-full);object-fit:cover;background:var(--clr-primary-lighter);color:var(--clr-primary);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.avatar--sm{width:32px;height:32px;font-size:13px}.avatar--md{width:44px;height:44px;font-size:17px}.avatar--lg{width:60px;height:60px;font-size:22px}.avatar--xl{width:80px;height:80px;font-size:28px}.bg-gradient-primary{background:linear-gradient(135deg,#a020a0 0%,#c040c0 50%,#d870d8 100%)}.bg-gradient-secondary{background:linear-gradient(135deg,#e040fb 0%,#ea80fc 100%)}.bg-gradient-warm{background:linear-gradient(135deg,#ff9f43 0%,#ffcc8f 100%)}.bg-gradient-cool{background:linear-gradient(135deg,#4ecdc4 0%,#7eddd6 100%)}.cat-health{--cat-color:#2ed573;--cat-bg:#e8fff4}.cat-study{--cat-color:#a020a0;--cat-bg:#f5e6f5}.cat-family{--cat-color:#e040fb;--cat-bg:#fce4ff}.cat-finance{--cat-color:#ffe66d;--cat-bg:#fffae5}.cat-personal{--cat-color:#4ecdc4;--cat-bg:#e8faf9}.cat-physical{--cat-color:#ff9f43;--cat-bg:#fff3e8}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse-ring{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.4)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.animate-slide-up{animation:.3s both slideUp}.skeleton{background:linear-gradient(90deg, var(--clr-border) 25%, var(--clr-border-light) 50%, var(--clr-border) 75%);border-radius:var(--r-md);background-size:200% 100%;animation:1.5s infinite shimmer}.divider{background:var(--clr-border-light);width:100%;height:1px;margin:var(--sp-4) 0}.switch{width:48px;height:26px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.switch__slider{background:var(--clr-border);border-radius:var(--r-full);cursor:pointer;transition:background var(--transition-base);position:absolute;inset:0}.switch__slider:before{content:"";border-radius:var(--r-full);width:20px;height:20px;transition:transform var(--transition-spring);background:#fff;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0003}.switch input:checked+.switch__slider{background:var(--clr-primary)}.switch input:checked+.switch__slider:before{transform:translate(22px)}.empty-state{padding:var(--sp-12) var(--sp-6);text-align:center;justify-content:center;align-items:center;gap:var(--sp-4);flex-direction:column;display:flex}.empty-state__icon{font-size:64px;line-height:1}.empty-state__title{color:var(--clr-text-primary);font-size:18px;font-weight:700}.empty-state__text{color:var(--clr-text-secondary);max-width:260px;font-size:14px}.grid-2{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}@media (width>=768px){.grid-md-3{grid-template-columns:repeat(3,1fr)}.grid-md-4{grid-template-columns:repeat(4,1fr)}}@media (width>=1024px){.grid-lg-3{grid-template-columns:repeat(3,1fr)}.grid-lg-4{grid-template-columns:repeat(4,1fr)}}.truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body,#root,.app-layout,.app-content,.page{-ms-overflow-style:none;scrollbar-width:none}html::-webkit-scrollbar{display:none}body::-webkit-scrollbar{display:none}#root::-webkit-scrollbar{display:none}.app-layout::-webkit-scrollbar{display:none}.app-content::-webkit-scrollbar{display:none}.page::-webkit-scrollbar{display:none}.stats-divider{background:#ebe0eb;width:1px;margin:6px 0}@media (width<=600px){.stats-divider{display:none}}.stats-row{text-align:center;justify-content:space-between;align-items:stretch;max-width:600px;margin:0 auto;display:flex}@media (width<=600px){.stats-row{grid-template-columns:repeat(2,1fr);gap:16px 8px;display:grid}}body.body-modal-open .mobile-nav-bar{display:none!important}body.body-modal-open,body.body-modal-open .app-content{height:100dvh!important;overflow:hidden!important}body.body-modal-open .page{position:relative;z-index:1000!important}@media screen and (width<=768px){input,select,textarea{font-size:16px!important}}.shared-modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:99999;background:#1a0a1a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.alert-dialog-modal{background:var(--clr-surface,#fff);text-align:center;width:90%;max-width:360px;box-shadow:var(--shadow-lg);border:1px solid var(--clr-border);border-radius:20px;flex-direction:column;align-items:center;padding:2rem;display:flex}.alert-dialog-icon-box{width:56px;height:56px;color:var(--clr-primary,#a020a0);background:#a020a01a;border-radius:16px;justify-content:center;align-items:center;margin-bottom:1.25rem;display:flex}.alert-dialog-title{color:var(--clr-text-primary);margin:0 0 .5rem;font-size:1.2rem;font-weight:700}.alert-dialog-desc{color:var(--clr-text-secondary);margin:0 0 1.5rem;font-size:.9rem;line-height:1.5}.alert-dialog-cta-btn{background:var(--clr-primary-gradient);color:#fff;cursor:pointer;width:100%;transition:var(--transition-base);border:none;border-radius:10px;padding:.8rem;font-size:.95rem;font-weight:600;box-shadow:0 4px 10px #a020a033}.alert-dialog-cta-btn:hover{transform:translateY(-1px);box-shadow:0 6px 15px #a020a04d}.animate-fade-in{animation:fadeIn var(--transition-fast) ease-out forwards}.animate-scale-in{animation:slideUp var(--transition-base) cubic-bezier(.16, 1, .3, 1) forwards}
