:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar{width:280px;height:100vh;height:100dvh;background:#a865b5;border-right:none;display:flex;flex-direction:column;transition:width .2s ease;position:relative;flex-shrink:0;z-index:10;margin-right:40px}.sidebar:after{content:"";position:absolute;top:0;right:-40px;width:40px;height:100%;background-color:#f8f4ff;background-image:radial-gradient(circle at 100% 150%,#f8f4ff 24%,#d4b8e3 24%,#d4b8e3 28%,transparent 28%),radial-gradient(circle at 0% 150%,#f8f4ff 24%,#d4b8e3 24%,#d4b8e3 28%,transparent 28%),radial-gradient(circle at 100% 50%,#f8f4ff 24%,#d4b8e3 24%,#d4b8e3 28%,transparent 28%),radial-gradient(circle at 0% 50%,#f8f4ff 24%,#d4b8e3 24%,#d4b8e3 28%,transparent 28%);background-size:40px 20px;background-position:0 0;z-index:5}.sidebar.collapsed{width:60px}.sidebar-header{padding:12px;display:flex;align-items:center;gap:8px;border-bottom:1px solid rgba(255,255,255,.15)}.toggle-btn{width:40px;height:40px;background:transparent;border:none;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:background .15s ease}.toggle-btn:hover{background:#ffffff26}.fab-btn{position:fixed;bottom:32px;right:32px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#9333ea,#7c3aed);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 20px #9333ea66;transition:all .2s ease;z-index:100}.fab-btn:hover{transform:scale(1.1);box-shadow:0 6px 28px #9333ea80}.fab-btn:active{transform:scale(.95)}.sidebar-content{flex:1;overflow-y:auto;padding:8px}.sidebar-content::-webkit-scrollbar{width:6px}.sidebar-content::-webkit-scrollbar-track{background:transparent}.sidebar-content::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.empty-state{padding:40px 20px;text-align:center;color:#ffffffb3}.empty-state p{margin:0}.empty-state .hint{font-size:13px;margin-top:8px;color:#ffffff80}.sidebar-group{margin-bottom:16px}.group-title{font-size:12px;font-weight:600;color:#fff9;padding:8px 12px;text-transform:uppercase;letter-spacing:.5px}.sidebar-item{display:flex;align-items:center;padding:10px 12px;border-radius:16px;cursor:pointer;transition:background .15s ease;margin-bottom:2px}.sidebar-item:hover{background:#ffffff1a}.sidebar-item.active{background:#ffffff26}.sidebar-item .item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sidebar-item .item-date{font-size:14px;font-weight:500;color:#fff}.sidebar-item .item-preview{font-size:12px;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item .delete-btn{opacity:0;background:transparent;border:none;color:#fff9;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.sidebar-item:hover .delete-btn{opacity:1}.sidebar-item .delete-btn:hover{color:#ff8a8a;background:#ef444433}.view-switcher{padding:12px;display:flex;flex-direction:column;gap:4px;border-bottom:1px solid rgba(255,255,255,.15)}.view-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;background:transparent;border:none;border-radius:16px;color:#ffffffb3;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;text-align:left}.view-btn:hover{background:#ffffff1a;color:#fff}.view-btn.active{background:#ffffff26;color:#fff}.view-btn.active svg{stroke:#fff}.sidebar-footer{padding:12px;border-top:1px solid rgba(255,255,255,.15);display:flex;align-items:center;justify-content:space-between;margin-top:auto}.user-info{display:flex;align-items:center;gap:10px;flex:1;padding:8px 10px;border-radius:12px;cursor:pointer;transition:background .15s ease}.user-info:hover{background:#ffffff1a}.settings-icon{margin-left:auto;opacity:.6;transition:opacity .15s}.user-info:hover .settings-icon{opacity:1}.sidebar-avatar{width:36px;height:36px;border-radius:50%;border:2px solid rgba(255,255,255,.3)}.user-name{color:#fff;font-size:14px;font-weight:500}.sidebar.mobile{position:fixed;top:0;left:0;z-index:20;transform:translate(0);transition:transform .3s ease}.sidebar.mobile.collapsed{transform:translate(-100%)}.sidebar.mobile:after{display:none}@media(max-width:768px){.sidebar{width:280px;margin-right:0}.sidebar.collapsed:not(.mobile){width:0;margin-right:0;padding:0;overflow:hidden}.sidebar.collapsed:not(.mobile):after{display:none}.fab-btn{bottom:24px;right:24px}}@media(max-width:480px){.fab-btn{bottom:20px;right:20px;width:52px;height:52px}}.main-content{flex:1;height:100vh;background:#fff;display:flex;flex-direction:column;overflow:hidden;position:relative}.main-content:before{content:"";position:absolute;inset:0;opacity:.2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cg%3E%3C!-- Grape bunch 1 --%3E%3Ccircle cx='50' cy='60' r='8' fill='%239333ea'/%3E%3Ccircle cx='65' cy='55' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='45' cy='75' r='8' fill='%237c3aed'/%3E%3Ccircle cx='60' cy='72' r='8' fill='%239333ea'/%3E%3Ccircle cx='75' cy='68' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='52' cy='88' r='8' fill='%237c3aed'/%3E%3Ccircle cx='67' cy='85' r='8' fill='%239333ea'/%3E%3Ccircle cx='58' cy='100' r='8' fill='%238b5cf6'/%3E%3C!-- Stem 1 --%3E%3Cpath d='M58 45 Q60 35, 70 30' fill='none' stroke='%2316a34a' stroke-width='2'/%3E%3C!-- Leaf 1 --%3E%3Cpath d='M70 30 Q85 25, 90 35 Q85 45, 70 40 Q75 35, 70 30' fill='%2322c55e'/%3E%3C!-- Grape bunch 2 --%3E%3Ccircle cx='150' cy='140' r='8' fill='%239333ea'/%3E%3Ccircle cx='165' cy='135' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='145' cy='155' r='8' fill='%237c3aed'/%3E%3Ccircle cx='160' cy='152' r='8' fill='%239333ea'/%3E%3Ccircle cx='175' cy='148' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='152' cy='168' r='8' fill='%237c3aed'/%3E%3Ccircle cx='167' cy='165' r='8' fill='%239333ea'/%3E%3Ccircle cx='158' cy='180' r='8' fill='%238b5cf6'/%3E%3C!-- Stem 2 --%3E%3Cpath d='M158 125 Q160 115, 170 110' fill='none' stroke='%2316a34a' stroke-width='2'/%3E%3C!-- Leaf 2 --%3E%3Cpath d='M170 110 Q185 105, 190 115 Q185 125, 170 120 Q175 115, 170 110' fill='%2322c55e'/%3E%3C!-- Decorative vine --%3E%3Cpath d='M100 10 Q110 30, 100 50 Q90 70, 100 90' fill='none' stroke='%2316a34a' stroke-width='1.5' opacity='0.5'/%3E%3Cpath d='M10 100 Q30 110, 50 100 Q70 90, 90 100' fill='none' stroke='%2316a34a' stroke-width='1.5' opacity='0.5'/%3E%3C/g%3E%3C/svg%3E");background-size:250px 250px;background-repeat:repeat}.main-content.empty{justify-content:center;align-items:center}.welcome{text-align:center;color:#4a2d5c;max-width:400px;padding:40px}.welcome-icon{font-size:64px;margin-bottom:24px}.welcome h1{font-size:28px;font-weight:600;margin:0 0 12px}.welcome p{color:#7a5889;font-size:16px;margin:0 0 32px}.start-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 28px;background:linear-gradient(135deg,#9333ea,#7c3aed);border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.start-btn:hover{transform:translateY(-2px);box-shadow:0 8px 24px #9333ea4d}.content-header{padding:24px 32px;border-bottom:1px solid #e8d5f2;display:flex;align-items:center;justify-content:space-between}.content-header h1{font-size:24px;font-weight:600;color:#4a2d5c;margin:0}.stats{display:flex;gap:16px}.stat{font-size:14px;color:#7a5889;background:#f3e8ff;padding:6px 12px;border-radius:20px}.tabs{display:flex;gap:4px;padding:16px 32px;border-bottom:1px solid #e8d5f2}.tab{display:flex;align-items:center;gap:8px;padding:10px 20px;background:transparent;border:none;border-radius:8px;color:#7a5889;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.tab:hover{background:#f3e8ff;color:#4a2d5c}.tab.active{background:#f3e8ff;color:#9333ea}.tab.active svg{stroke:#9333ea}.content-body{flex:1;overflow-y:auto;padding:24px 32px}.content-body::-webkit-scrollbar{width:8px}.content-body::-webkit-scrollbar-track{background:transparent}.content-body::-webkit-scrollbar-thumb{background:#d4b8e3;border-radius:4px}.add-form{display:flex;gap:12px;margin-bottom:24px}.add-input{flex:1;padding:14px 18px;background:#faf5ff;border:1px solid #e8d5f2;border-radius:10px;color:#4a2d5c;font-size:15px;outline:none;transition:border-color .15s ease}.add-input:focus{border-color:#9333ea}.add-input::placeholder{color:#9b7aa8}.add-btn{padding:14px 28px;background:#9333ea;border:none;border-radius:10px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .15s ease}.add-btn:hover{background:#7c3aed}.items-list{display:flex;flex-direction:column;gap:8px}.empty-section{text-align:center;padding:60px 20px;color:#9b7aa8}.item{display:flex;align-items:center;gap:16px;padding:18px 20px;background:#faf5ff;border-radius:12px;transition:all .15s ease;border-left:4px solid #9333ea}.item:hover{background:#f3e8ff}.item.completed .item-text{text-decoration:line-through;color:#9b7aa8}.checkbox-container{position:relative;width:26px;height:26px;cursor:pointer}.checkbox-container input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.checkmark{position:absolute;top:0;left:0;width:26px;height:26px;background:transparent;border:2px solid #d4b8e3;border-radius:8px;transition:all .15s ease}.checkbox-container:hover .checkmark{border-color:#9333ea}.checkbox-container input:checked~.checkmark{background:#9333ea;border-color:#9333ea}.checkbox-container input:checked~.checkmark:after{content:"";position:absolute;left:8px;top:4px;width:6px;height:12px;border:solid white;border-width:0 3px 3px 0;transform:rotate(45deg)}.goal-mark{border-radius:50%}.checkbox-container input:checked~.goal-mark{background:#f59e0b;border-color:#f59e0b}.item-text{flex:1;font-size:18px;font-weight:500;color:#4a2d5c}.item-delete{opacity:0;background:transparent;border:none;color:#9b7aa8;cursor:pointer;padding:6px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.item:hover .item-delete{opacity:1}.item-delete:hover{color:#ef4444;background:#ef444426}.notes-section{height:100%}.notes-textarea{width:100%;height:calc(100vh - 250px);min-height:400px;padding:20px;background:#faf5ff;border:1px solid #e8d5f2;border-radius:12px;color:#4a2d5c;font-size:15px;line-height:1.7;resize:none;outline:none;font-family:inherit;transition:border-color .15s ease}.notes-textarea:focus{border-color:#9333ea}.notes-textarea::placeholder{color:#9b7aa8}@media(max-width:768px){.main-content{padding-top:56px}.content-header{position:sticky;top:0;z-index:5}.notes-textarea{height:calc(100vh - 300px);min-height:250px}}.date-picker-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.date-picker{background:#fff;border-radius:16px;padding:20px;box-shadow:0 20px 60px #0003;border:1px solid #e8d5f2;min-width:320px}.picker-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.picker-title{font-size:16px;font-weight:600;color:#4a2d5c}.picker-title-container{display:flex;align-items:center;gap:.25rem}.picker-title-btn{background:none;border:none;font-size:16px;font-weight:600;color:#4a2d5c;cursor:pointer;padding:6px 10px;border-radius:8px;transition:all .15s ease;display:flex;align-items:center;gap:4px}.picker-title-btn:hover{background:#f3e8ff;color:#9333ea}.picker-title-btn.back{font-size:14px;color:#7a5889}.picker-title-btn.back:hover{color:#4a2d5c}.picker-nav{width:36px;height:36px;background:transparent;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#7a5889;transition:all .15s ease}.picker-nav:hover{background:#f3e8ff;color:#4a2d5c}.picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px}.picker-weekday{text-align:center;font-size:11px;font-weight:600;color:#9b7aa8;padding:8px 0;text-transform:uppercase}.picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.picker-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:14px;font-weight:500;color:#4a2d5c;cursor:pointer;transition:all .15s ease;position:relative}.picker-day:not(.empty):hover{background:#f3e8ff}.picker-day.empty{cursor:default}.picker-day.today{background:#9333ea;color:#fff}.picker-day.today:hover{background:#7c3aed}.picker-day.has-entry:after{content:"";position:absolute;bottom:4px;width:5px;height:5px;background:#9333ea;border-radius:50%}.picker-day.today.has-entry:after{background:#fff}.picker-footer{margin-top:16px;padding-top:16px;border-top:1px solid #e8d5f2}.picker-today-btn{width:100%;padding:12px;background:transparent;border:1px solid #e8d5f2;border-radius:8px;color:#4a2d5c;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.picker-today-btn:hover{background:#f3e8ff}.month-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.month-picker-item{padding:14px 8px;background:none;border:1px solid #e8d5f2;border-radius:10px;font-size:14px;font-weight:500;color:#4a2d5c;cursor:pointer;transition:all .15s ease}.month-picker-item:hover{background:#f3e8ff;border-color:#d8c5f2}.month-picker-item.active{background:#9333ea;color:#fff;border-color:#9333ea}.year-picker-container{display:flex;align-items:center;gap:8px}.year-nav-btn{width:32px;height:32px;background:none;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#7a5889;transition:all .15s ease;flex-shrink:0}.year-nav-btn:hover{background:#f3e8ff;color:#4a2d5c}.year-picker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1}.year-picker-item{padding:12px 8px;background:none;border:1px solid #e8d5f2;border-radius:10px;font-size:14px;font-weight:500;color:#4a2d5c;cursor:pointer;transition:all .15s ease}.year-picker-item:hover{background:#f3e8ff;border-color:#d8c5f2}.year-picker-item.active{background:#9333ea;color:#fff;border-color:#9333ea}.year-picker-item.current{border-color:#9333ea}.monthly-challenges{flex:1;height:100vh;background:#fff;padding:32px;overflow-y:auto;position:relative}.monthly-challenges:before{content:"";position:fixed;inset:0 0 0 280px;opacity:.2;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cg%3E%3C!-- Grape bunch 1 --%3E%3Ccircle cx='50' cy='60' r='8' fill='%239333ea'/%3E%3Ccircle cx='65' cy='55' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='45' cy='75' r='8' fill='%237c3aed'/%3E%3Ccircle cx='60' cy='72' r='8' fill='%239333ea'/%3E%3Ccircle cx='75' cy='68' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='52' cy='88' r='8' fill='%237c3aed'/%3E%3Ccircle cx='67' cy='85' r='8' fill='%239333ea'/%3E%3Ccircle cx='58' cy='100' r='8' fill='%238b5cf6'/%3E%3C!-- Stem 1 --%3E%3Cpath d='M58 45 Q60 35, 70 30' fill='none' stroke='%2316a34a' stroke-width='2'/%3E%3C!-- Leaf 1 --%3E%3Cpath d='M70 30 Q85 25, 90 35 Q85 45, 70 40 Q75 35, 70 30' fill='%2322c55e'/%3E%3C!-- Grape bunch 2 --%3E%3Ccircle cx='150' cy='140' r='8' fill='%239333ea'/%3E%3Ccircle cx='165' cy='135' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='145' cy='155' r='8' fill='%237c3aed'/%3E%3Ccircle cx='160' cy='152' r='8' fill='%239333ea'/%3E%3Ccircle cx='175' cy='148' r='8' fill='%238b5cf6'/%3E%3Ccircle cx='152' cy='168' r='8' fill='%237c3aed'/%3E%3Ccircle cx='167' cy='165' r='8' fill='%239333ea'/%3E%3Ccircle cx='158' cy='180' r='8' fill='%238b5cf6'/%3E%3C!-- Stem 2 --%3E%3Cpath d='M158 125 Q160 115, 170 110' fill='none' stroke='%2316a34a' stroke-width='2'/%3E%3C!-- Leaf 2 --%3E%3Cpath d='M170 110 Q185 105, 190 115 Q185 125, 170 120 Q175 115, 170 110' fill='%2322c55e'/%3E%3C!-- Decorative vine --%3E%3Cpath d='M100 10 Q110 30, 100 50 Q90 70, 100 90' fill='none' stroke='%2316a34a' stroke-width='1.5' opacity='0.5'/%3E%3Cpath d='M10 100 Q30 110, 50 100 Q70 90, 90 100' fill='none' stroke='%2316a34a' stroke-width='1.5' opacity='0.5'/%3E%3C/g%3E%3C/svg%3E");background-size:250px 250px;background-repeat:repeat;z-index:0}.challenges-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;position:relative;z-index:1}.header-info h1{font-size:28px;color:#4a2d5c;margin:0 0 8px}.header-info p{color:#7a5889;margin:0;font-size:15px}.progress-ring{position:relative;width:80px;height:80px}.progress-ring svg{transform:rotate(-90deg);width:100%;height:100%}.progress-bg{fill:none;stroke:#e8d5f2;stroke-width:8}.progress-bar{fill:none;stroke:#9333ea;stroke-width:8;stroke-linecap:round;stroke-dasharray:283;transition:stroke-dashoffset .5s ease}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:16px;font-weight:600;color:#4a2d5c}.months-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;position:relative;z-index:1}.page-nav{display:flex;justify-content:center;gap:12px;margin-bottom:32px;position:relative;z-index:1}.page-btn{padding:14px 32px;background:#faf5ff;border:2px solid #e8d5f2;border-radius:30px;color:#7a5889;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.page-btn:hover{background:#f3e8ff;border-color:#d4b8e3}.page-btn.active{background:linear-gradient(135deg,#9333ea,#7c3aed);border-color:#9333ea;color:#fff;box-shadow:0 4px 15px #9333ea4d}.months-grid-large{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative;z-index:1;transition:opacity .3s ease,transform .3s ease}.months-grid-large.fade-out{opacity:0;transform:translate(-20px)}.months-grid-large.fade-in{opacity:1;transform:translate(0)}.month-card-large{background:#faf5ff;border-radius:20px;padding:24px;border:2px solid #e8d5f2;cursor:pointer;transition:all .25s ease;display:flex;flex-direction:column;min-height:280px}.month-card-large:hover{border-color:#d4b8e3;transform:translateY(-4px);box-shadow:0 8px 25px #9333ea26}.month-card-large.completed{border-color:#9333ea;background:linear-gradient(135deg,#faf5ff,#f3e8ff)}.month-card-large.has-challenge{border-color:#d4b8e3}.month-card-header{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #e8d5f2}.month-icon-large{font-size:48px}.month-info{flex:1}.month-name-large{font-size:22px;font-weight:700;color:#4a2d5c;margin-bottom:4px}.month-progress{font-size:13px;color:#7a5889;background:#e8d5f2;padding:4px 12px;border-radius:12px;font-weight:500;display:inline-block}.month-progress.complete{background:#9333ea;color:#fff}.month-challenges-list{flex:1;display:flex;flex-direction:column;gap:8px}.month-challenge-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;border-radius:10px;font-size:15px;color:#4a2d5c;border:1px solid #e8d5f2}.month-challenge-item.done{background:#f3e8ff;color:#9b7aa8}.month-challenge-item.done .challenge-label{text-decoration:line-through}.challenge-check{font-size:14px;color:#9333ea;font-weight:600}.month-challenge-item.done .challenge-check{color:#22c55e}.challenge-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-empty{font-size:15px;color:#9b7aa8;text-align:center;padding:40px 20px}@media(max-width:900px){.months-grid-large{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.months-grid-large{grid-template-columns:1fr}}.month-card{background:#faf5ff;border-radius:12px;padding:20px;border:1px solid #e8d5f2;transition:all .2s ease}.month-card:hover{border-color:#d4b8e3}.month-card.completed{border-color:#9333ea;background:#9333ea1a}.month-card.has-challenge{border-color:#d4b8e3}.month-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.month-icon{font-size:24px}.month-name{font-size:18px;font-weight:600;color:#4a2d5c;flex:1}.complete-btn{width:32px;height:32px;border-radius:50%;border:2px solid #d4b8e3;background:transparent;color:#7a5889;font-size:16px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.complete-btn:hover{border-color:#9333ea;color:#9333ea}.complete-btn.is-completed{background:#9333ea;border-color:#9333ea;color:#fff}.month-challenges-preview{font-size:14px;color:#4a2d5c;padding:8px 0;min-height:60px}.month-challenges-preview .placeholder{color:#9b7aa8;font-size:14px}.challenges-list-preview{display:flex;flex-direction:column;gap:4px}.challenge-preview{font-size:13px;color:#4a2d5c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.challenge-preview.done{color:#9b7aa8;text-decoration:line-through}.more-challenges{font-size:12px;color:#9b7aa8;margin-top:4px}.month-badge{font-size:12px;padding:2px 8px;border-radius:12px;background:#e8d5f2;color:#7a5889;font-weight:600}.month-badge.complete{background:#9333ea;color:#fff}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:#fff;border-radius:16px;width:100%;max-width:480px;border:1px solid #e8d5f2;box-shadow:0 20px 60px #0003}.modal-header{display:flex;align-items:center;gap:12px;padding:24px 24px 0}.modal-icon{font-size:32px}.modal-header h2{margin:0;font-size:20px;color:#4a2d5c}.modal-body{padding:24px}.modal-body label{display:block;font-size:13px;font-weight:600;color:#7a5889;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.modal-input{width:100%;padding:14px 16px;background:#faf5ff;border:1px solid #e8d5f2;border-radius:10px;color:#4a2d5c;font-size:15px;outline:none;margin-bottom:20px;transition:border-color .15s ease}.modal-input:focus{border-color:#9333ea}.modal-textarea{width:100%;height:100px;padding:14px 16px;background:#faf5ff;border:1px solid #e8d5f2;border-radius:10px;color:#4a2d5c;font-size:15px;outline:none;resize:none;font-family:inherit;transition:border-color .15s ease}.modal-textarea:focus{border-color:#9333ea}.modal-footer{display:flex;gap:12px;padding:0 24px 24px;justify-content:flex-end}.cancel-btn{padding:12px 24px;background:transparent;border:1px solid #e8d5f2;border-radius:8px;color:#4a2d5c;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.cancel-btn:hover{background:#f3e8ff}.save-btn{padding:12px 24px;background:#9333ea;border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.save-btn:hover{background:#7c3aed}.challenge-modal{max-width:520px;max-height:80vh;display:flex;flex-direction:column}.challenge-modal .modal-body{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.add-challenge-form{display:flex;gap:10px}.challenge-input{flex:1;margin-bottom:0!important}.add-challenge-btn{width:48px;height:48px;border-radius:10px;background:#9333ea;border:none;color:#fff;font-size:24px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.add-challenge-btn:hover{background:#7c3aed}.challenges-list{display:flex;flex-direction:column;gap:8px;flex:1;overflow-y:auto}.empty-challenges{text-align:center;padding:40px 20px;color:#9b7aa8}.empty-challenges .hint{font-size:13px;margin-top:8px}.challenge-item{display:flex;align-items:center;gap:12px;padding:14px 16px;background:#faf5ff;border-radius:10px;transition:all .15s ease}.challenge-item:hover{background:#f3e8ff}.challenge-item.completed .challenge-text{text-decoration:line-through;color:#9b7aa8}.check-btn{width:24px;height:24px;border-radius:50%;border:2px solid #d4b8e3;background:transparent;color:transparent;font-size:14px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.check-btn:hover{border-color:#9333ea}.check-btn.checked{background:#9333ea;border-color:#9333ea;color:#fff}.challenge-text{flex:1;font-size:15px;color:#4a2d5c}.delete-challenge-btn{opacity:0;background:transparent;border:none;color:#9b7aa8;cursor:pointer;font-size:14px;padding:4px 8px;border-radius:4px;transition:all .15s ease}.challenge-item:hover .delete-challenge-btn{opacity:1}.delete-challenge-btn:hover{color:#ef4444;background:#ef44441a}.done-btn{padding:12px 32px;background:#9333ea;border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease}.done-btn:hover{background:#7c3aed}@media(max-width:768px){.monthly-challenges{padding:72px 16px 24px}.monthly-challenges:before{left:0}.challenges-header h1{font-size:1.5rem}.challenges-grid{grid-template-columns:1fr}}.daily-verse{margin:12px;padding:16px;background:#ffffff1a;border-radius:16px;border:1px solid rgba(255,255,255,.15)}.verse-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.verse-icon{font-size:18px}.verse-title{font-size:13px;font-weight:600;color:#fffc;text-transform:uppercase;letter-spacing:.5px}.verse-loading{font-size:13px;color:#ffffff80;font-style:italic}.verse-text{font-size:13px;line-height:1.6;color:#fff;font-style:italic;margin-bottom:8px}.verse-ref{font-size:12px;color:#fff9;text-align:right;font-weight:500}.dashboard{flex:1;padding:2rem;overflow-y:auto;overflow-x:hidden;background:linear-gradient(135deg,#fefefe,#f8f5ff);-webkit-overflow-scrolling:touch;min-height:0}.dashboard-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.welcome-section{display:flex;align-items:center;gap:1.5rem}.user-avatar{width:80px;height:80px;border-radius:50%;border:4px solid #9b7ed9;box-shadow:0 4px 15px #9b7ed94d}.dashboard-header h1{font-size:2rem;color:#4a3f6b;margin:0 0 .5rem;font-weight:700}.date-display{color:#8b7aa8;font-size:1.1rem;margin:0}.customize-btn{padding:.5rem 1rem;background:#fff;border:2px solid #e6d9ff;border-radius:10px;color:#4a3f6b;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.customize-btn:hover{border-color:#9b7ed9;background:#f8f5ff}.customize-panel{background:#fff;border-radius:12px;padding:1rem 1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 15px #8a7aa81a;display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.panel-label{font-weight:500;color:#4a3f6b;font-size:.9rem}.widget-toggles{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;flex:1}.widget-toggle{display:flex;align-items:center;gap:.35rem;font-size:.85rem;color:#6b5b8a;cursor:pointer}.widget-toggle input{accent-color:#9b7ed9}.customize-actions{display:flex;gap:.5rem}.reset-btn{padding:.5rem 1rem;background:#f0e6ff;border:none;border-radius:8px;color:#6b5b8a;font-size:.85rem;cursor:pointer}.reset-btn:hover{background:#e6d9ff}.save-layout-btn{padding:.5rem 1rem;background:linear-gradient(135deg,#9b7ed9,#7c5cbf);border:none;border-radius:8px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer}.save-layout-btn:hover{box-shadow:0 4px 10px #7c5cbf4d}.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.dashboard-card{background:#fff;border-radius:16px;padding:1.25rem;box-shadow:0 4px 20px #8a7aa81a;border:1px solid rgba(138,122,168,.1)}.dashboard-card h3{margin:0 0 1rem;font-size:1.1rem;color:#4a3f6b;font-weight:600}.today-summary{grid-column:span 2}.summary-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1rem}.stat-item{text-align:center;padding:.75rem .5rem;background:linear-gradient(135deg,#f8f5ff,#efe8ff);border-radius:12px}.stat-item.completed{background:linear-gradient(135deg,#e8ffe8,#d4ffd4)}.stat-number{display:block;font-size:1.75rem;font-weight:700;color:#4a3f6b}.stat-label{font-size:.75rem;color:#8b7aa8}.go-to-planner-btn{width:100%;padding:.75rem 1.5rem;background:linear-gradient(135deg,#9b7ed9,#7c5cbf);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.go-to-planner-btn:hover{transform:scale(1.02);box-shadow:0 4px 15px #7c5cbf4d}.streak-card{text-align:center;background:linear-gradient(135deg,#fff5e6,#ffe8cc)}.streak-display{display:flex;align-items:baseline;justify-content:center;gap:.5rem;margin:.5rem 0}.streak-number{font-size:3rem;font-weight:800;color:#e67300}.streak-label{font-size:1.25rem;color:#cc5529;font-weight:500}.streak-message{color:#cc5529;font-size:.9rem;margin:0;font-weight:500}.quote-card{background:linear-gradient(135deg,#f0e6ff,#e6d9ff)}.quote-text{font-size:1rem;font-style:italic;color:#4a3f6b;line-height:1.5;margin:0 0 .75rem}.quote-author{color:#8b7aa8;font-size:.9rem;margin:0;text-align:right}.verse-card{padding:0;overflow:hidden;background:linear-gradient(135deg,#f0e6ff,#e6d9ff)}.verse-card .daily-verse{margin:0;padding:1.25rem;background:transparent;border-radius:0;border:none}.verse-card .verse-title,.verse-card .verse-text{color:#4a3f6b}.verse-card .verse-ref,.verse-card .verse-loading{color:#8b7aa8}.stats-grid{display:flex;flex-direction:column;gap:1rem}.stats-section h4{margin:0 0 .5rem;font-size:.85rem;color:#6b5b8a;font-weight:500}.progress-bar{height:10px;background:#e8e0f5;border-radius:5px;overflow:hidden;margin-bottom:.35rem}.progress-fill{height:100%;background:linear-gradient(90deg,#9b7ed9,#7c5cbf);border-radius:5px;transition:width .5s ease}.stats-section p{margin:0;font-size:.8rem;color:#8b7aa8}.upcoming-card{grid-column:span 2}.no-tasks{text-align:center;color:#8b7aa8;font-style:italic;padding:1rem 0}.upcoming-list{list-style:none;padding:0;margin:0}.upcoming-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;background:#f8f5ff;border-radius:8px;margin-bottom:.5rem;cursor:pointer;transition:all .2s}.upcoming-item:hover{background:#efe8ff;transform:translate(4px)}.upcoming-item:last-child{margin-bottom:0}.task-text{color:#4a3f6b;font-size:.9rem;flex:1;margin-right:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-date{font-size:.75rem;color:#9b7ed9;font-weight:500;white-space:nowrap}.mini-calendar{width:100%}.calendar-header{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:.5rem}.calendar-header span{text-align:center;font-size:.7rem;color:#8b7aa8;font-weight:600;padding:.25rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.calendar-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#4a3f6b;border-radius:6px;cursor:pointer;transition:all .2s;position:relative}.calendar-day:not(.empty):hover{background:#f0e6ff}.calendar-day.empty{cursor:default}.calendar-day.has-entry{background:#e8e0f5;font-weight:600}.calendar-day.has-entry:after{content:"";position:absolute;bottom:3px;width:4px;height:4px;background:#9b7ed9;border-radius:50%}.calendar-day.today{background:linear-gradient(135deg,#9b7ed9,#7c5cbf);color:#fff;font-weight:700}.calendar-day.today.has-entry:after{background:#fff}@media(max-width:900px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.today-summary,.upcoming-card{grid-column:span 2}.summary-stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.dashboard{padding-top:72px}}@media(max-width:600px){.dashboard{padding:1rem;padding-top:72px;padding-bottom:2rem;-webkit-overflow-scrolling:touch}.dashboard-header{flex-direction:column;align-items:flex-start;gap:.75rem}.dashboard-header h1{font-size:1.4rem;line-height:1.3}.date-display{font-size:.95rem}.welcome-section{gap:.75rem}.user-avatar{width:50px;height:50px}.customize-btn{padding:.4rem .8rem;font-size:.85rem}.customize-panel{padding:.75rem 1rem;flex-direction:column;align-items:flex-start}.widget-toggles{gap:.5rem}.widget-toggle{font-size:.8rem}.customize-actions{width:100%;justify-content:flex-end}.dashboard-grid{grid-template-columns:1fr;gap:.75rem}.today-summary,.upcoming-card{grid-column:span 1}.dashboard-card{padding:1rem}.dashboard-card h3{font-size:1rem;margin-bottom:.75rem}.summary-stats{grid-template-columns:repeat(2,1fr);gap:.5rem}.stat-item{padding:.6rem .4rem}.stat-number{font-size:1.5rem}.stat-label{font-size:.7rem}.go-to-planner-btn{padding:.65rem 1rem;font-size:.9rem}.streak-number{font-size:2.5rem}.streak-label{font-size:1rem}.streak-message{font-size:.85rem}.quote-text{font-size:.95rem}.quote-author{font-size:.85rem}.upcoming-item{padding:.5rem .6rem}.task-text{font-size:.85rem}.task-date,.calendar-day{font-size:.7rem}.calendar-header span{font-size:.65rem}}.shopping-card{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.shopping-summary{display:flex;gap:1.5rem;margin-bottom:1rem}.shopping-stat{display:flex;flex-direction:column;align-items:center}.shopping-stat .stat-number{font-size:1.75rem;font-weight:700;color:#2e7d32}.shopping-stat .stat-label{font-size:.75rem;color:#4a5568;text-transform:uppercase}.shopping-categories{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.shopping-cat-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:#ffffffb3;border-radius:8px}.shopping-cat-item .cat-icon{font-size:1.1rem}.shopping-cat-item .cat-name{flex:1;font-size:.9rem;color:#4a3f6b}.shopping-cat-item .cat-progress{font-size:.8rem;color:#2e7d32;font-weight:600}.more-categories{font-size:.8rem;color:#6b5b8a;text-align:center;margin:0}.go-to-shopping-btn{width:100%;padding:.6rem;background:#2e7d32;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.go-to-shopping-btn:hover{background:#1b5e20}@supports (padding-bottom: env(safe-area-inset-bottom)){.dashboard{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}.notification-wrapper{position:fixed;top:20px;right:24px;z-index:200}.notification-btn{position:relative;width:48px;height:48px;border-radius:50%;background:#fff;border:2px solid #e8d5f2;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#9333ea;box-shadow:0 4px 15px #0000001a;transition:all .2s ease}.notification-btn:hover{transform:scale(1.05);border-color:#9333ea}.notification-badge{position:absolute;top:-4px;right:-4px;min-width:22px;height:22px;background:#ef4444;color:#fff;font-size:12px;font-weight:700;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 6px;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.notification-dropdown{position:absolute;top:60px;right:0;width:300px;background:#fff;border-radius:16px;box-shadow:0 10px 40px #00000026;border:1px solid #e8d5f2;overflow:hidden;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.notification-header{padding:16px 20px;background:linear-gradient(135deg,#9333ea,#7c3aed);color:#fff;font-weight:600;font-size:15px}.notification-body{padding:20px}.notification-message{font-size:15px;color:#4a2d5c;margin:0 0 12px;line-height:1.5}.notification-message strong{color:#9333ea;font-size:18px}.notification-hint{font-size:13px;color:#7a5889;margin:0;line-height:1.5}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f5ff,#efe8ff,#e6d9ff);padding:2rem;position:relative;overflow:hidden}.login-card{background:#fff;border-radius:24px;padding:3rem;max-width:420px;width:100%;box-shadow:0 20px 60px #8a7aa833;text-align:center;position:relative;z-index:1}.login-header{margin-bottom:2rem}.login-icon{font-size:4rem;margin-bottom:1rem}.login-header h1{font-size:2rem;color:#4a3f6b;margin:0 0 .5rem;font-weight:700}.login-header p{color:#8b7aa8;font-size:1rem;margin:0}.login-features{background:#f8f5ff;border-radius:16px;padding:1.5rem;margin-bottom:2rem;text-align:left}.feature{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;color:#4a3f6b}.feature-icon{color:#9b7ed9;font-weight:700}.login-error{background:#ffe6e6;color:#c33;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;text-align:left}.login-success{background:#e6ffe6;color:#2e7d32;padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem;text-align:left}.reset-instructions{color:#8b7aa8;font-size:.9rem;margin:0 0 .5rem;text-align:center}.forgot-password-link{background:none;border:none;color:#9b7ed9;font-size:.85rem;cursor:pointer;padding:0;text-align:right;margin-top:-.5rem}.forgot-password-link:hover{color:#7c5cbf;text-decoration:underline}.ios-pwa-notice{background:#e8f4fd;color:#1565c0;padding:1rem;border-radius:12px;margin-bottom:1rem;font-size:.9rem;text-align:center;border:1px solid #90caf9;display:flex;flex-direction:column;gap:.75rem}.open-safari-btn{background:#1976d2;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.open-safari-btn:hover{background:#1565c0}.email-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;text-align:left}.email-form .form-group{display:flex;flex-direction:column;gap:.35rem}.email-form label{font-size:.85rem;font-weight:500;color:#4a3f6b}.email-form input{padding:.75rem 1rem;border:2px solid #e6d9ff;border-radius:10px;font-size:1rem;transition:border-color .2s}.email-form input:focus{outline:none;border-color:#9b7ed9}.email-btn{padding:.875rem 1.5rem;background:linear-gradient(135deg,#9b7ed9,#7c5cbf);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;margin-top:.5rem}.email-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #7c5cbf4d}.email-btn:disabled{opacity:.6;cursor:not-allowed}.auth-divider{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;color:#8b7aa8;font-size:.85rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#e6d9ff}.google-btn{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:1rem 1.5rem;background:#fff;border:2px solid #e0d6f0;border-radius:12px;font-size:1rem;font-weight:500;color:#4a3f6b;cursor:pointer;transition:all .2s}.google-btn:hover:not(:disabled){border-color:#9b7ed9;background:#f8f5ff;transform:translateY(-2px);box-shadow:0 4px 15px #8a7aa833}.google-btn:disabled{opacity:.6;cursor:not-allowed}.google-icon{flex-shrink:0}.auth-toggle{margin-top:1.5rem;font-size:.9rem;color:#8b7aa8}.auth-toggle button{background:none;border:none;color:#9b7ed9;font-weight:600;cursor:pointer;font-size:.9rem;padding:0}.auth-toggle button:hover{color:#7c5cbf;text-decoration:underline}.login-decoration{position:absolute;inset:0;pointer-events:none;overflow:hidden}.deco-circle{position:absolute;border-radius:50%;opacity:.3}.deco-1{width:300px;height:300px;background:linear-gradient(135deg,#9b7ed9,#7c5cbf);top:-100px;right:-100px}.deco-2{width:200px;height:200px;background:linear-gradient(135deg,#c4b0e8,#9b7ed9);bottom:-50px;left:-50px}.deco-3{width:150px;height:150px;background:linear-gradient(135deg,#e6d9ff,#c4b0e8);top:50%;left:10%}@media(max-width:480px){.login-card{padding:2rem}.login-icon{font-size:3rem}.login-header h1{font-size:1.5rem}}.profile-setup-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8f5ff,#efe8ff,#e6d9ff);padding:2rem}.profile-setup-card{background:#fff;border-radius:24px;padding:3rem;max-width:500px;width:100%;box-shadow:0 20px 60px #8a7aa833}.setup-header{text-align:center;margin-bottom:2rem}.setup-header h1{font-size:1.8rem;color:#4a3f6b;margin:0 0 .5rem}.setup-header p{color:#8b7aa8;margin:0}.profile-photo-section{text-align:center;margin-bottom:2rem}.avatar-upload-wrapper{position:relative;width:100px;height:100px;margin:0 auto;cursor:pointer}.setup-avatar{width:100px;height:100px;border-radius:50%;border:4px solid #9b7ed9;box-shadow:0 4px 15px #9b7ed94d;object-fit:cover}.upload-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.photo-hint{font-size:.85rem;color:#8b7aa8;margin-top:.5rem}.setup-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.95rem;font-weight:500;color:#4a3f6b}.form-group input,.form-group textarea{padding:.875rem 1rem;border:2px solid #e6d9ff;border-radius:12px;font-size:1rem;transition:border-color .2s;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#9b7ed9}.form-group textarea{resize:vertical;min-height:80px}.theme-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border:2px solid #e6d9ff;border-radius:12px;cursor:pointer;transition:all .2s}.theme-preview{width:40px;height:40px;border-radius:8px;border:2px solid #ddd}.setup-error{background:#ffe6e6;color:#c33;padding:.75rem 1rem;border-radius:8px;font-size:.9rem}.setup-submit-btn{padding:1rem 2rem;background:linear-gradient(135deg,#9b7ed9,#7c5cbf);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .2s}.setup-submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #7c5cbf66}.setup-submit-btn:disabled{opacity:.6;cursor:not-allowed}@media(max-width:480px){.profile-setup-card{padding:2rem}.setup-header h1{font-size:1.5rem}}.settings{flex:1;padding:2rem;overflow-y:auto;background:linear-gradient(135deg,#fefefe,#f8f5ff)}.settings-header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem}.back-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#fff;border:2px solid #e6d9ff;border-radius:10px;color:#4a3f6b;font-size:.9rem;cursor:pointer;transition:all .2s}.back-btn:hover{border-color:#9b7ed9;background:#f8f5ff}.settings-header h1{font-size:2rem;color:#4a3f6b;margin:0}.settings-content{max-width:600px}.settings-section{background:#fff;border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;box-shadow:0 4px 20px #8a7aa81a}.settings-section h2{font-size:1.2rem;color:#4a3f6b;margin:0 0 1.5rem;padding-bottom:.75rem;border-bottom:1px solid #e6d9ff}.profile-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:2rem}.avatar-upload-wrapper{position:relative;width:80px;height:80px;cursor:pointer;flex-shrink:0}.settings-avatar{width:80px;height:80px;border-radius:50%;border:3px solid #9b7ed9;object-fit:cover}.avatar-overlay{position:absolute;inset:0;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s;color:#fff}.avatar-upload-wrapper:hover .avatar-overlay{opacity:1}.upload-spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.profile-info{flex:1}.profile-email{font-size:1rem;color:#4a3f6b;margin:0 0 .25rem;font-weight:500}.profile-hint{font-size:.85rem;color:#8b7aa8;margin:0}.settings-form{display:flex;flex-direction:column;gap:1.25rem}.settings-form .form-group{display:flex;flex-direction:column;gap:.5rem}.settings-form label{font-size:.9rem;font-weight:500;color:#4a3f6b}.settings-form input,.settings-form textarea{padding:.75rem 1rem;border:2px solid #e6d9ff;border-radius:10px;font-size:1rem;transition:border-color .2s;font-family:inherit}.settings-form input:focus,.settings-form textarea:focus{outline:none;border-color:#9b7ed9}.settings-form textarea{resize:vertical;min-height:80px}.theme-options{display:flex;gap:1rem}.theme-option{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border:2px solid #e6d9ff;border-radius:10px;cursor:pointer;transition:all .2s}.theme-option:hover{border-color:#c4b0e8}.theme-option.selected{border-color:#9b7ed9;background:#f8f5ff}.theme-option input{display:none}.theme-preview{width:36px;height:36px;border-radius:6px;border:2px solid #ddd}.theme-preview.light{background:linear-gradient(135deg,#fff,#f8f5ff)}.theme-preview.dark{background:linear-gradient(135deg,#2d2d3a,#1a1a24)}.settings-error{background:#ffe6e6;color:#c33;padding:.75rem 1rem;border-radius:8px;font-size:.9rem}.settings-success{background:#e6ffe6;color:#2d8a2d;padding:.75rem 1rem;border-radius:8px;font-size:.9rem}.save-btn{padding:.875rem 1.5rem;background:linear-gradient(135deg,#9b7ed9,#7c5cbf);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #7c5cbf4d}.save-btn:disabled{opacity:.6;cursor:not-allowed}.password-form{display:flex;flex-direction:column;gap:1.25rem}.password-form .form-group{display:flex;flex-direction:column;gap:.5rem}.password-form label{font-size:.9rem;font-weight:500;color:#4a3f6b}.password-form input{padding:.75rem 1rem;border:2px solid #e6d9ff;border-radius:10px;font-size:1rem;transition:border-color .2s}.password-form input:focus{outline:none;border-color:#9b7ed9}.change-password-btn{padding:.875rem 1.5rem;background:linear-gradient(135deg,#9b7ed9,#7c5cbf);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.change-password-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 15px #7c5cbf4d}.change-password-btn:disabled{opacity:.6;cursor:not-allowed}.danger-zone{border:1px solid #ffcccc}.danger-zone h2{border-bottom-color:#fcc}.danger-zone p{color:#6b5b8a;margin:0 0 1rem}.logout-btn-settings{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#fff0f0;border:2px solid #ffcccc;border-radius:10px;color:#c33;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.logout-btn-settings:hover{background:#ffe6e6;border-color:#f99}@media(max-width:768px){.settings{padding-top:72px}}@media(max-width:480px){.settings{padding:1rem;padding-top:72px}.profile-header{flex-direction:column;text-align:center}.theme-options{flex-direction:column}}.shopping-list{flex:1;padding:2rem;overflow-y:auto;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%)}.shopping-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:50vh;gap:1rem;color:var(--text-secondary)}.shopping-list.has-theme{background:none}.shopping-list.has-theme .category-card,.shopping-list.has-theme .add-category-card{background:#ffffffd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.shopping-list.has-theme .shopping-item,.shopping-list.has-theme .add-item-form{background:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.shopping-list.light-text .shopping-header h1,.shopping-list.light-text .category-title h1{color:#fff}.shopping-list.light-text .item-count,.shopping-list.light-text .card-count,.shopping-list.light-text .checked-divider{color:#fffc}.shopping-list.light-text .back-btn,.shopping-list.light-text .theme-picker-btn{background:#fff3;border-color:#ffffff4d;color:#fff}.shopping-list.light-text .clear-checked-btn{background:#ffffffe6}.shopping-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:flex-start}.shopping-header h1{font-size:1.75rem;color:var(--text-primary);margin:0}.item-count{color:var(--text-secondary);font-size:.9rem;margin-top:.25rem}.saving-indicator{color:var(--accent-primary)}.theme-picker-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:.6rem;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .2s}.theme-picker-btn:hover{background:var(--bg-tertiary);color:var(--accent-primary);border-color:var(--accent-primary)}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem}.category-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:1.25rem;cursor:pointer;transition:all .2s;position:relative}.category-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a;border-color:var(--accent-primary)}.category-card.completed{background:var(--success-bg);border-color:var(--success-text)}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.card-emoji{font-size:2rem}.card-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .2s}.category-card:hover .card-actions{opacity:1}.edit-card-btn,.delete-card-btn{background:var(--bg-tertiary);border:none;padding:.35rem;border-radius:6px;cursor:pointer;color:var(--text-secondary);display:flex;align-items:center;justify-content:center;transition:all .2s}.edit-card-btn:hover{background:var(--accent-primary);color:#fff}.delete-card-btn:hover{background:var(--error-text);color:#fff}.card-name{font-weight:600;color:var(--text-primary);font-size:1rem;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-count{font-size:.8rem;color:var(--text-secondary);margin-bottom:.5rem}.card-progress{height:4px;background:var(--border-color);border-radius:2px;overflow:hidden}.card-progress-fill{height:100%;background:var(--accent-primary);border-radius:2px;transition:width .3s}.category-card.completed .card-progress-fill{background:var(--success-text)}.empty-state-centered{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;text-align:center;flex:1;min-height:300px}.empty-illustration{font-size:4rem;margin-bottom:1rem;opacity:.8}.empty-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0 0 .5rem}.empty-subtitle{font-size:.9rem;color:var(--text-secondary);margin:0 0 1.5rem}.add-category-wrapper{display:flex;justify-content:center;padding:2rem 0}.add-category-btn-centered{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--accent-primary);color:#fff;border:none;border-radius:50px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 4px 12px #9b7ed94d}.add-category-btn-centered:hover{background:var(--accent-secondary);transform:translateY(-2px);box-shadow:0 6px 16px #9b7ed966}.add-category-btn-centered:active{transform:translateY(0)}.shopping-list.light-text .empty-title{color:#fff}.shopping-list.light-text .empty-subtitle{color:#fffc}.shopping-list.has-theme .add-category-btn-centered{box-shadow:0 4px 12px #0003}.category-detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.back-btn{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:.6rem;cursor:pointer;color:var(--text-primary);display:flex;align-items:center;justify-content:center;transition:all .2s}.back-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-primary)}.category-title{display:flex;align-items:center;gap:.75rem;flex:1}.category-title .cat-emoji{font-size:1.75rem}.category-title h1{font-size:1.5rem;color:var(--text-primary);margin:0}.clear-checked-btn{background:var(--error-bg);color:var(--error-text);border:none;padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s}.clear-checked-btn:hover{opacity:.8}.add-item-form{display:flex;gap:.5rem;background:var(--bg-card);border-radius:12px;padding:.75rem;border:1px solid var(--border-color);margin-bottom:1rem}.item-input{flex:1;min-width:0;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:8px;font-size:1rem;background:var(--bg-tertiary);color:var(--text-primary)}.item-input:focus{outline:none;border-color:var(--accent-primary)}.quantity-input{width:65px;padding:.75rem;border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;text-align:center;background:var(--bg-tertiary);color:var(--text-primary)}.quantity-input:focus{outline:none;border-color:var(--accent-primary)}.add-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--accent-primary);color:#fff;border:none;border-radius:10px;cursor:pointer;transition:all .2s;flex-shrink:0}.add-btn:hover:not(:disabled){background:var(--accent-secondary)}.add-btn:disabled{opacity:.5;cursor:not-allowed}.items-list{display:flex;flex-direction:column;gap:.5rem}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.empty-icon{font-size:3rem;margin-bottom:1rem}.empty-state p{margin:.25rem 0}.empty-state .hint{font-size:.85rem;opacity:.7}.shopping-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;transition:all .2s}.shopping-item:hover{border-color:var(--accent-primary)}.check-circle{width:26px;height:26px;border:2px solid var(--border-color);border-radius:50%;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s}.check-circle:hover{border-color:var(--accent-primary)}.check-circle.checked{background:var(--success-text);border-color:var(--success-text);color:#fff}.item-details{flex:1;min-width:0;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.item-name{color:var(--text-primary);font-size:1rem}.shopping-item.checked .item-name{text-decoration:line-through;color:var(--text-secondary);opacity:.7}.item-qty{font-size:.8rem;color:var(--text-secondary);background:var(--bg-tertiary);padding:.2rem .5rem;border-radius:4px}.delete-item-btn{opacity:0;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.35rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.shopping-item:hover .delete-item-btn{opacity:1}.delete-item-btn:hover{color:var(--error-text)}.checked-section{margin-top:1rem}.checked-divider{font-size:.8rem;color:var(--text-secondary);padding:.5rem 0;text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--border-color);margin-bottom:.5rem}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}.modal{background:var(--bg-card);border-radius:16px;max-width:420px;width:100%;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-color)}.modal-header h2{margin:0;font-size:1.2rem;color:var(--text-primary)}.close-modal-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:.25rem;display:flex;border-radius:6px;transition:all .2s}.close-modal-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-body{padding:1.5rem}.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;gap:.75rem}.add-category-form{display:flex;gap:.75rem;align-items:center}.emoji-picker-btn{display:flex;align-items:center;gap:.25rem;padding:.75rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:all .2s}.emoji-picker-btn:hover{border-color:var(--accent-primary)}.selected-emoji{font-size:1.5rem}.chevron{color:var(--text-secondary)}.category-name-input{flex:1;padding:.75rem 1rem;border:1px solid var(--border-color);border-radius:10px;font-size:1rem;background:var(--bg-tertiary);color:var(--text-primary)}.category-name-input:focus{outline:none;border-color:var(--accent-primary)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:.35rem;margin-top:1rem;padding:.75rem;background:var(--bg-tertiary);border-radius:10px;max-height:200px;overflow-y:auto}.emoji-option{width:42px;height:42px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:none;border:1px solid transparent;border-radius:8px;cursor:pointer;transition:all .15s}.emoji-option:hover{background:var(--bg-secondary);border-color:var(--border-color)}.emoji-option.selected{background:var(--accent-primary);border-color:var(--accent-primary)}.theme-modal{max-width:420px}.theme-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem}.theme-option{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:12px;padding:1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:space-between;min-height:60px}.theme-option:hover{border-color:var(--accent-primary);transform:scale(1.02)}.theme-option.selected{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary)}.theme-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.theme-name.light{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.3)}.theme-check{width:24px;height:24px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--accent-primary);font-weight:700}.cancel-btn{padding:.6rem 1.25rem;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:8px;font-size:.9rem;cursor:pointer;transition:all .2s}.cancel-btn:hover{background:var(--bg-secondary)}.save-btn{padding:.6rem 1.25rem;background:var(--accent-primary);color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.save-btn:hover:not(:disabled){background:var(--accent-secondary)}.save-btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:768px){.shopping-list{padding:1rem;padding-top:calc(56px + 1rem)}.shopping-header h1{font-size:1.5rem}.categories-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.category-card{padding:1rem}.card-emoji{font-size:1.5rem}.card-actions{opacity:1}.add-category-card{min-height:120px}.category-detail-header{gap:.75rem}.category-title h1{font-size:1.25rem}.add-item-form{flex-wrap:wrap}.item-input{flex:1 1 100%;order:1}.quantity-input{order:2;flex:1}.add-btn{order:3}.delete-item-btn{opacity:.6}.modal-overlay{padding:0;align-items:flex-end}.modal{max-width:100%;border-radius:16px 16px 0 0}.emoji-grid{grid-template-columns:repeat(8,1fr)}.theme-grid{grid-template-columns:1fr 1fr}.theme-modal{max-width:100%}.theme-option{padding:.75rem;min-height:50px}.theme-name{font-size:.8rem}}@media(max-width:400px){.categories-grid{grid-template-columns:1fr 1fr}.category-card{padding:.85rem}.emoji-grid{grid-template-columns:repeat(6,1fr)}}@media(hover:none){.card-actions{opacity:1}.delete-item-btn{opacity:.6}}@supports (padding-bottom: env(safe-area-inset-bottom)){.shopping-list{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}:root{--bg-primary: #ffffff;--bg-secondary: #f8f5ff;--bg-tertiary: #efe8ff;--bg-card: #ffffff;--text-primary: #4a3f6b;--text-secondary: #8b7aa8;--text-muted: #6b5b8a;--border-color: #e6d9ff;--accent-primary: #9b7ed9;--accent-secondary: #7c5cbf;--sidebar-bg: #A865B5;--sidebar-text: #ffffff;--success-bg: #e6ffe6;--success-text: #2d8a2d;--error-bg: #ffe6e6;--error-text: #cc3333}.app.dark{--bg-primary: #1a1a24;--bg-secondary: #242432;--bg-tertiary: #2d2d3a;--bg-card: #2a2a38;--text-primary: #e8e6f0;--text-secondary: #a8a0b8;--text-muted: #8b8399;--border-color: #3d3d4d;--accent-primary: #a68be0;--accent-secondary: #8b6bc9;--sidebar-bg: #2d2d3a;--sidebar-text: #e8e6f0;--success-bg: #1a3d1a;--success-text: #6dbf6d;--error-bg: #3d1a1a;--error-text: #ff8a8a}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;height:100vh;height:100dvh;overflow:hidden;background:var(--bg-primary)}::selection{background:#9333ea4d}.mobile-header{position:fixed;top:0;left:0;right:0;height:56px;background:#a865b5;display:flex;align-items:center;padding:0 1rem;gap:1rem;z-index:50;box-shadow:0 2px 8px #0000001a}.hamburger-btn{background:none;border:none;color:#fff;padding:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px}.hamburger-btn:hover{background:#ffffff1a}.mobile-title{color:#fff;font-size:1.1rem;font-weight:600}.mobile-overlay{position:fixed;inset:0;background:#00000080;z-index:15}.loading-screen{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-secondary) 0%,var(--bg-tertiary) 100%);gap:1rem}.loading-screen p{color:var(--text-secondary);font-size:1rem}.loading-spinner{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app.dark .sidebar{background:var(--sidebar-bg)}.app.dark .sidebar:after{background-color:var(--bg-secondary);background-image:radial-gradient(circle at 100% 150%,var(--bg-secondary) 24%,var(--border-color) 24%,var(--border-color) 28%,transparent 28%),radial-gradient(circle at 0% 150%,var(--bg-secondary) 24%,var(--border-color) 24%,var(--border-color) 28%,transparent 28%),radial-gradient(circle at 100% 50%,var(--bg-secondary) 24%,var(--border-color) 24%,var(--border-color) 28%,transparent 28%),radial-gradient(circle at 0% 50%,var(--bg-secondary) 24%,var(--border-color) 24%,var(--border-color) 28%,transparent 28%)}.app.dark .dashboard,.app.dark .main-content,.app.dark .settings,.app.dark .monthly-challenges{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.app.dark .dashboard-card,.app.dark .settings-section{background:var(--bg-card);border-color:var(--border-color)}.app.dark .dashboard-card h3,.app.dark .settings-section h2{color:var(--text-primary)}.app.dark .stat-item{background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%)}.app.dark .stat-item.completed{background:linear-gradient(135deg,#1a3d1a,#2a4d2a)}.app.dark .quote-card{background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%)}.app.dark .streak-card{background:linear-gradient(135deg,#3d2a1a,#4d3a2a)}.app.dark .progress-bar{background:var(--border-color)}.app.dark .upcoming-item{background:var(--bg-tertiary)}.app.dark .upcoming-item:hover{background:var(--bg-secondary)}.app.dark .calendar-day:not(.empty):hover{background:var(--bg-tertiary)}.app.dark .calendar-day.has-entry{background:var(--bg-tertiary)}.app.dark input,.app.dark textarea{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-primary)}.app.dark input:focus,.app.dark textarea:focus{border-color:var(--accent-primary)}.app.dark .task-item,.app.dark .goal-item{background:var(--bg-card);border-color:var(--border-color)}.app.dark .daily-verse{background:linear-gradient(135deg,var(--bg-tertiary) 0%,var(--bg-secondary) 100%)}.app.dark .shopping-list{background:linear-gradient(135deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.app.dark .add-item-form,.app.dark .category-group{background:var(--bg-card);border-color:var(--border-color)}.app.dark .category-header,.app.dark .category-btn,.app.dark .category-option{background:var(--bg-tertiary);border-color:var(--border-color)}.app.dark .filter-btn{background:var(--bg-card);border-color:var(--border-color)}
