@import"https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Outfit:wght@300;400;500;600;700&display=swap";*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--bg: #0a0a0f;--card: #14141f;--text: #fff;--text2: #9ca3af;--orange: #F59E0B;--red: #EF4444;--purple: #8B5CF6;--green: #10B981;--pink: #EC4899;--blue: #3B82F6;--grad: linear-gradient(135deg, #F59E0B, #EF4444, #8B5CF6);--safe-b: env(safe-area-inset-bottom, 0);--safe-t: env(safe-area-inset-top, 0)}html{font-size:16px}body{font-family:Outfit,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh}.load-logo{font-family:Outfit,sans-serif;font-size:3rem;font-weight:600;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:pulse 1.5s infinite}.load-cap{font-size:3.5rem;font-weight:700}.load-by-line{display:block;color:var(--text2);font-size:.75rem;font-style:italic;margin-top:.25rem;text-align:right;opacity:.7}.loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:#f59e0b;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1.5rem}.loading-spinner.small{width:24px;height:24px;border-width:2px;margin-top:0}.loading-spinner.large{width:50px;height:50px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text2);font-size:.85rem;margin-top:1rem;opacity:.7}.load-text{font-family:Bebas Neue;font-size:2rem;letter-spacing:.5rem;color:var(--text2)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:200;padding:1rem}.sun{font-size:2.5rem;display:block;margin-bottom:.5rem}.sub{color:var(--text2);font-size:.9rem;margin-bottom:1.5rem}.quote-box{background:#ffffff08;border-radius:16px;padding:1.5rem 1rem;margin-bottom:1.5rem}.qt{font-size:.95rem;line-height:1.5;font-style:italic;margin-bottom:.5rem}.qa{color:var(--orange);font-size:.85rem}.mission{margin-bottom:1.5rem}.mission span{color:var(--text2);font-size:.8rem;display:block;margin-bottom:.5rem}.icons{display:flex;justify-content:center;gap:.5rem}.icons span{font-size:1.3rem;padding:.4rem;background:#ffffff0d;border-radius:8px}.primary-btn{width:100%;padding:.9rem;background:var(--grad);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer}.primary-btn:active{transform:scale(.98)}.primary-btn:disabled{opacity:.5}.secondary-btn{width:100%;padding:.9rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text);font-size:1rem;font-weight:500;cursor:pointer}.secondary-btn:active{transform:scale(.98)}.upload-modal{background:var(--card);border-radius:20px;padding:1.5rem;max-width:400px;width:100%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.modal-header h3{font-size:1rem}.close-btn{background:none;border:none;color:var(--text2);font-size:1.5rem;cursor:pointer}.upload-area{margin-bottom:1rem}.upload-zone{width:100%;padding:3rem 1rem;background:#ffffff08;border:2px dashed rgba(255,255,255,.15);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;color:var(--text2)}.upload-icon{font-size:3rem}.upload-hint{font-size:.75rem;opacity:.7}.preview-container{position:relative}.preview-container img{width:100%;max-height:250px;object-fit:cover;border-radius:12px}.change-btn{position:absolute;bottom:.5rem;right:.5rem;padding:.4rem .8rem;background:#000000b3;border:none;border-radius:8px;color:#fff;font-size:.75rem;cursor:pointer}.caption-section textarea{width:100%;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);font-family:Outfit;font-size:.9rem;resize:none}.caption-section textarea:focus{outline:none;border-color:var(--purple)}.privacy-section{margin:1rem 0}.privacy-label{font-size:.85rem;color:var(--text2);margin-bottom:.5rem}.privacy-options{display:flex;gap:.5rem}.privacy-btn{flex:1;display:flex;align-items:center;gap:.6rem;padding:.75rem;background:#ffffff08;border:2px solid rgba(255,255,255,.1);border-radius:12px;cursor:pointer;text-align:left}.privacy-btn.active{border-color:var(--orange);background:#f59e0b1a}.privacy-btn span:first-child{font-size:1.5rem}.opt-title{display:block;font-size:.85rem;font-weight:600;color:var(--text)}.opt-desc{display:block;font-size:.7rem;color:var(--text2)}.save-upload-btn{width:100%;padding:.9rem;background:var(--grad);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;margin-top:.5rem}.save-upload-btn:disabled{opacity:.5}.feed-screen{padding-bottom:0}.feed-tabs{display:flex;gap:.5rem;padding:1rem;background:var(--card)}.feed-tabs button{flex:1;padding:.6rem;background:#ffffff0d;border:none;border-radius:10px;color:var(--text2);font-size:.85rem;cursor:pointer}.feed-content{padding:1rem;padding-bottom:calc(80px + var(--safe-b))}.feed-post{background:var(--card);border-radius:16px;margin-bottom:1rem;overflow:hidden;border:1px solid rgba(255,255,255,.05)}.post-header{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:1rem}.post-header-left{display:flex;align-items:center;gap:.6rem;flex:1}.post-header-actions{display:flex;align-items:center}.report-btn{background:none;border:none;font-size:1rem;cursor:pointer;opacity:.5;transition:opacity .2s;padding:.25rem}.report-btn:hover{opacity:1}.post-avatar{font-size:2rem;background:#ffffff0d;padding:.3rem;border-radius:50%}.post-user-info{flex:1}.post-username{font-weight:600;font-size:.9rem;display:block}.post-meta{font-size:.75rem;color:var(--text2)}.post-task-badge,.post-mood-badge,.post-milestone-badge{font-size:.7rem;padding:.25rem .5rem;border-radius:8px;font-weight:500}.post-milestone-badge{background:#f59e0b33;color:var(--orange)}.post-image img{width:100%;max-height:500px;object-fit:contain;background:#000;border-radius:8px}.milestone-card{padding:2rem;text-align:center;background:linear-gradient(135deg,#f59e0b1a,#8b5cf61a)}.milestone-emoji{font-size:3rem;display:block;margin-bottom:.5rem}.milestone-title{font-size:1.2rem;font-weight:700;display:block}.milestone-days{font-size:.9rem;color:var(--orange)}.post-caption{padding:0 1rem 1rem;font-size:.9rem;line-height:1.4}.post-actions{display:flex;justify-content:space-between;align-items:center;padding:0 1rem 1rem}.post-actions-left{display:flex;gap:1rem}.post-actions .delete-btn{background:none;border:none;font-size:1rem;cursor:pointer;opacity:.5;transition:opacity .2s;padding:.25rem}.post-actions .delete-btn:hover{opacity:1}.action-btn{display:flex;align-items:center;gap:.3rem;background:none;border:none;color:var(--text2);cursor:pointer;font-size:.9rem;padding:.4rem}.action-btn.liked{color:var(--red)}.comments-section{border-top:1px solid rgba(255,255,255,.05);padding:1rem}.comment{display:flex;gap:.5rem;margin-bottom:.75rem}.comment-avatar{font-size:1.2rem}.comment-content{flex:1;background:#ffffff08;padding:.5rem .75rem;border-radius:12px}.comment-user{font-weight:600;font-size:.8rem;margin-right:.5rem}.comment-text{font-size:.85rem}.comment-time{font-size:.7rem;color:var(--text2);display:block;margin-top:.2rem}.delete-comment{background:none;border:none;color:var(--red);cursor:pointer;font-size:1rem;padding:.25rem}.add-comment{display:flex;gap:.5rem;margin-top:.75rem}.add-comment input{flex:1;padding:.6rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);font-size:.85rem}.add-comment input:focus{outline:none;border-color:var(--purple)}.add-comment button{padding:.6rem 1rem;background:var(--purple);border:none;border-radius:10px;color:#fff;font-weight:600;cursor:pointer;font-size:.85rem}.add-comment button:disabled{opacity:.5}.comment-thread{margin-bottom:1rem}.comment-actions{display:flex;align-items:center;justify-content:space-between;margin-top:.25rem}.comment-like-btn{background:none;border:none;color:var(--text2);font-size:.75rem;cursor:pointer;padding:0;display:flex;align-items:center;gap:.25rem}.comment-like-btn:hover,.comment-like-btn.liked{color:var(--orange)}.reply-btn{background:none;border:none;color:var(--orange);font-size:.75rem;font-weight:600;cursor:pointer;padding:0}.reply-btn:hover{color:var(--red)}.comment.reply{margin-left:2.5rem;padding-left:1rem;border-left:2px solid rgba(255,255,255,.1)}.reply-input-container{margin-left:2.5rem;margin-top:.5rem;display:flex;gap:.5rem;align-items:center}.reply-input-container input{flex:1;padding:.5rem .75rem;border-radius:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:var(--text);font-size:.85rem}.reply-input-container input:focus{outline:none;border-color:var(--purple)}.reply-buttons{display:flex;gap:.5rem;flex-shrink:0}.reply-buttons button{padding:.5rem .75rem;border-radius:8px;border:none;font-size:.8rem;cursor:pointer;font-weight:500;white-space:nowrap}.reply-buttons .send-btn{background:var(--orange);color:#000}.reply-buttons .send-btn:disabled{opacity:.5}.reply-buttons .cancel-btn{background:#ffffff1a;color:var(--text2)}.reply-buttons .cancel-btn:hover{background:#ffffff26}.private-btn{background:none;border:none;font-size:1.2rem;cursor:pointer}.empty-state{text-align:center;padding:3rem 1rem}.empty-icon{font-size:3rem;display:block;margin-bottom:.5rem}.empty-state p{font-size:1rem;margin-bottom:.25rem}.empty-hint{font-size:.8rem;color:var(--text2)}.gallery-section{margin-bottom:1.5rem}.gallery-date{font-size:.85rem;color:var(--text2);margin-bottom:.5rem}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.gallery-item{aspect-ratio:1;border-radius:10px;overflow:hidden;position:relative;cursor:pointer}.gallery-placeholder{width:100%;height:100%;background:#ffffff0d;display:flex;align-items:center;justify-content:center;font-size:2rem}.gallery-task{position:absolute;bottom:.25rem;right:.25rem;font-size:.8rem;background:#00000080;padding:.15rem .3rem;border-radius:4px}.delete-photo-btn{position:absolute;top:5px;right:5px;background:#000000b3;border:1px solid rgba(255,255,255,.2);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:all .2s}.delete-photo-btn:hover{background:#ef4444e6;transform:scale(1.1)}.gallery-modal{background:var(--card);border-radius:20px;max-width:90vw;max-height:90vh;overflow:hidden;position:relative}.gallery-modal img{width:100%;max-height:60vh;object-fit:contain}.gallery-modal-info{padding:1rem}.gallery-modal-task{font-size:.85rem;color:var(--orange);display:block;margin-bottom:.5rem}.gallery-modal-date{font-size:.75rem;color:var(--text2)}.mood-tracker{background:var(--card);border-radius:16px;margin:0 1rem 1rem;overflow:hidden;border:1px solid rgba(255,255,255,.05)}.mood-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer;border-left:3px solid transparent}.mood-title{font-weight:600;font-size:.95rem;display:block;margin-bottom:.35rem}.mood-prompt{color:var(--text2);font-size:.8rem}.current-mood{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .6rem;border-radius:12px;font-size:.8rem;font-weight:500}.chevron{color:var(--text2);font-size:.7rem;transition:transform .3s}.chevron.up{transform:rotate(180deg)}.mood-body{padding:0 1rem 1rem;border-top:1px solid rgba(255,255,255,.05)}.mood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem;padding-top:1rem;margin-bottom:1rem}.mood-btn{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.5rem .25rem;border:2px solid;border-radius:10px;cursor:pointer;background:transparent}.emoji{font-size:1.3rem}.name{font-size:.6rem;font-weight:500}.journal label{display:block;font-size:.85rem;color:var(--text2);margin-bottom:.4rem}.journal textarea{width:100%;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);font-family:Outfit;font-size:.9rem;resize:none}.journal textarea:focus{outline:none;border-color:var(--purple)}.mood-publish-option{margin:.75rem 0}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text2);cursor:pointer}.checkbox-label input{width:18px;height:18px;accent-color:var(--orange)}.save-btn{padding:.6rem 1.2rem;background:#8b5cf633;border:1px solid var(--purple);border-radius:8px;color:var(--purple);font-weight:500;cursor:pointer;font-size:.85rem;width:100%}.photo-item{display:flex;flex-direction:column;gap:.25rem}.photo-label{font-size:.7rem;color:var(--text2);text-transform:capitalize}.upload-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;width:100%;height:70px;background:#ffffff08;border:1px dashed rgba(255,255,255,.15);border-radius:10px;color:var(--text2);cursor:pointer;font-size:.75rem}.photo-preview{position:relative;width:100%;background:#000;border-radius:12px;overflow:hidden;display:flex;align-items:center;justify-content:center}.photo-preview img{width:100%;max-height:300px;object-fit:contain;border-radius:12px}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;position:relative;overflow:hidden}.login-bg{position:absolute;top:0;right:0;bottom:0;left:0}.orb{position:absolute;border-radius:50%;filter:blur(60px);opacity:.35}.o1{width:250px;height:250px;background:var(--orange);top:-80px;right:-80px;animation:float 8s infinite}.o2{width:200px;height:200px;background:var(--purple);bottom:-50px;left:-50px;animation:float 10s infinite reverse}@keyframes float{0%,to{transform:translate(0)}50%{transform:translate(20px,-20px)}}.login-content{position:relative;z-index:1;width:100%;max-width:360px}.logo-section{text-align:center;margin-bottom:1.5rem}.logo{font-family:Outfit,sans-serif;font-size:3rem;font-weight:600;line-height:1;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.logo-cap{font-size:3.5rem;font-weight:700}.logo-text{font-family:Bebas Neue;font-size:2rem;letter-spacing:.3rem;display:block;margin-top:-.25rem}.logo-section p{color:var(--text2);font-size:.85rem;margin-top:.5rem}.logo-wrapper{display:inline-block;text-align:left}.by-line{display:block;color:var(--text2);font-size:.75rem;font-style:italic;margin-top:.25rem;margin-bottom:.5rem;text-align:right;opacity:.7}.login-form{background:#14141fd9;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:1.5rem}.field{margin-bottom:1.25rem}.field label{display:block;font-weight:500;margin-bottom:.4rem;color:var(--text2);font-size:.85rem}.field input{width:100%;padding:.8rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);font-size:1rem}.field input:focus{outline:none;border-color:var(--orange)}.toggle-group{display:flex;gap:.5rem}.toggle-group button{flex:1;padding:.7rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text2);cursor:pointer;font-size:.9rem}.toggle-group button.active{border-color:var(--orange);background:#f59e0b26;color:var(--text)}.avatar-picker{display:grid;grid-template-columns:repeat(6,1fr);gap:.35rem}.avatar-picker button{aspect-ratio:1;font-size:1.2rem;border:2px solid rgba(255,255,255,.1);border-radius:10px;background:transparent;cursor:pointer}.avatar-picker button.sel{border-color:var(--orange);background:#f59e0b26}.error-msg{background:#ef444433;border:1px solid var(--red);border-radius:8px;padding:.6rem;margin-bottom:1rem;color:var(--red);text-align:center;font-size:.85rem}.success-msg{background:#10b98133;border:1px solid var(--green);border-radius:8px;padding:.6rem;margin-bottom:1rem;color:var(--green);text-align:center;font-size:.85rem}.switch{text-align:center;margin-top:1.25rem;color:var(--text2);font-size:.9rem}.switch button{background:none;border:none;color:var(--orange);font-weight:600;cursor:pointer}.dashboard{min-height:100vh;padding-bottom:calc(80px + var(--safe-b));background:var(--bg)}.dash-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;padding-top:calc(1rem + var(--safe-t));background:#14141fe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.05)}.user-section{display:flex;align-items:center;gap:.75rem;cursor:pointer}.header-avatar{font-size:2rem;background:#ffffff0d;padding:.4rem;border-radius:50%;border:2px solid var(--orange)}.user-section h2{font-size:1.1rem;line-height:1.2}.user-section p{color:var(--text2);font-size:.8rem}.header-stats{display:flex;gap:1rem;font-weight:600;font-size:.9rem}.header-left{display:flex;align-items:center;gap:.5rem}.back-btn{background:none;border:none;color:var(--orange);font-size:1.5rem;cursor:pointer;padding:.25rem .5rem;line-height:1}.back-btn:active{transform:scale(.95)}.logout-btn{background:none;border:none;color:var(--red);font-size:.9rem;font-weight:500;cursor:pointer;padding:.5rem}.logout-btn:active{transform:scale(.95)}.logout-btn-small{background:none;border:none;color:var(--red);font-size:.75rem;font-weight:500;cursor:pointer;padding:.25rem .5rem}.logout-btn-small:active{transform:scale(.95)}.header-actions{display:flex;gap:.5rem}.header-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem}.progress-section{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1.25rem 1rem;flex-wrap:wrap}.progress-circle{position:relative;display:flex;align-items:center;justify-content:center}.progress-inner{position:absolute;display:flex;flex-direction:column;align-items:center}.progress-num{font-family:Bebas Neue;font-size:2.5rem;line-height:1;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.progress-label{color:var(--text2);font-size:.75rem}.countdown{background:var(--card);border-radius:12px;padding:.75rem 1rem;text-align:center;border:1px solid rgba(255,255,255,.08)}.countdown .label{font-size:.7rem;color:var(--text2);display:block;margin-bottom:.25rem}.countdown .time{font-family:Bebas Neue;font-size:1.4rem;color:var(--orange)}.overall-progress{padding:0 1rem;margin-bottom:1rem}.overall-bar{height:16px;background:#ffffff0d;border-radius:8px;overflow:hidden}.overall-fill{height:100%;background:var(--grad);border-radius:8px;min-width:16px;position:relative}.overall-fill:after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:12px;height:12px;background:#fff;border-radius:50%;box-shadow:0 0 10px var(--orange)}.overall-labels{display:flex;justify-content:space-between;margin-top:.4rem;font-size:.75rem;color:var(--text2)}.progress-calendar-v2{background:#0d0505;border:1px solid #8B0000;border-radius:8px;padding:.75rem;margin:0 1rem 1.5rem}.calendar-header-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.25rem}.calendar-status-header{display:flex;justify-content:center}.calendar-legend{display:flex;flex-direction:column;gap:.2rem;font-size:.6rem;color:#aaa}.calendar-legend span{display:flex;align-items:center;gap:.25rem}.legend-dot{width:10px;height:10px;border-radius:2px}.legend-dot.legend-complete{background:#22c55e}.legend-dot.legend-partial{background:#5c3d00}.legend-dot.legend-none{background:#8b0000}.legend-dot.legend-today{background:transparent;border:2px solid #fff;box-shadow:0 0 3px #ffffff80}.completed-banner{display:flex;align-items:center;gap:.35rem;border-radius:3px;padding:.25rem .75rem;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:1px}.completed-banner.complete{background:#0a2d0a;border:1px solid #22c55e;color:#22c55e}.completed-banner.complete .checkmark{color:#22c55e;font-weight:700}.completed-banner.in-progress{background:#2d0a0a;border:1px solid #8B0000;color:#f33}.day-counter{display:flex;flex-direction:column;align-items:center;margin-bottom:.75rem}.day-label{font-size:.6rem;color:#666;letter-spacing:2px;text-transform:uppercase}.day-number{font-size:2.25rem;font-weight:900;color:#fff;line-height:1}.calendar-grid-v2{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:1rem;padding:0 .25rem}.calendar-cell{width:100%;height:28px;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:600;border-radius:2px}.calendar-cell.complete{background:#22c55e;color:#fff}.calendar-cell.partial{background:#5c3d00;color:#fa0}.calendar-cell.none{background:#8b0000;color:#fff}.calendar-cell.today{background:transparent;color:#fff;border:2px solid #fff;box-shadow:0 0 8px #ffffff80}.calendar-cell.today-complete{background:#22c55e;color:#fff;box-shadow:0 0 8px #22c55ecc}.calendar-cell.today-partial{background:#5c3d00;color:#fa0;box-shadow:0 0 8px #5c3d00cc}.calendar-cell.today-none{background:#8b0000;color:#fff;box-shadow:0 0 8px #8b0000cc}.calendar-cell.upcoming{background:#1a0a0a;color:#333}.calendar-cell.clickable{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.calendar-cell.clickable:hover{transform:scale(1.1);z-index:1}.calendar-cell.clickable:active{transform:scale(.95)}.calendar-cell.previous-day{position:relative}.calendar-cell.previous-day:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:4px;height:4px;background:#f59e0b;border-radius:50%}.legend-dot.legend-previous{background:transparent;border:2px solid #f59e0b;position:relative}.legend-dot.legend-previous:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;background:#f59e0b;border-radius:50%}.calendar-task-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:.2rem .5rem;padding:.5rem;background:#0006;border-radius:4px;margin-bottom:.5rem}.legend-task-item{display:flex;align-items:center;gap:.25rem;font-size:.5rem;color:#777}.legend-icon{font-size:.6rem}.legend-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-stats{text-align:center;font-size:.55rem;color:#555;padding-top:.4rem;border-top:1px solid rgba(139,0,0,.2)}.calendar-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:2rem 1rem;text-align:center;color:var(--text2);font-size:.85rem}.tasks-section{padding:0 1rem}.tasks-section h3{font-size:.9rem;color:var(--text2);margin-bottom:.75rem}.task-wrapper{margin-bottom:.6rem}.task-card{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;background:var(--card);border:1px solid rgba(255,255,255,.05);border-radius:14px;cursor:pointer;transition:all .2s}.task-card:active{transform:scale(.98)}.task-card.done{background:#10b9811a;border-color:var(--green)}.task-card.optional{border-style:dashed}.task-icon{font-size:1.5rem}.task-info{flex:1;min-width:0}.task-name{display:flex;align-items:center;gap:.4rem;font-weight:600;font-size:.9rem}.opt-tag{font-size:.55rem;padding:.1rem .3rem;background:#ec489933;color:var(--pink);border-radius:4px}.points-tag{font-size:.55rem;padding:.1rem .3rem;background:#f59e0b33;color:var(--orange);border-radius:4px;margin-left:.3rem}.task-desc{display:block;font-size:.75rem;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workout-type{display:inline-flex;align-items:center;gap:.2rem;font-size:.7rem;padding:.15rem .4rem;border-radius:4px;margin-top:.3rem;background:#10b98133;color:var(--green)}.has-photo-badge{display:inline-flex;font-size:.65rem;padding:.15rem .4rem;border-radius:4px;margin-top:.3rem;margin-left:.3rem;background:#8b5cf633;color:var(--purple)}.task-check{width:24px;height:24px;border:2px solid rgba(255,255,255,.2);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700}.task-check.checked{background:var(--green);border-color:var(--green);color:#fff}.task-panel{background:#14141ff2;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1rem;margin-top:.4rem;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.options{display:flex;flex-direction:column;gap:.4rem}.options-label{font-size:.8rem;color:var(--text2);margin-bottom:.4rem}.photo-required-hint{font-size:.8rem;color:var(--orange);text-align:center;padding:.5rem;background:#f973161a;border-radius:8px;margin-top:.5rem}.opt-btn{display:flex;align-items:center;gap:.6rem;width:100%;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text);cursor:pointer;font-size:.85rem}.opt-btn:active{background:#f59e0b1a;border-color:var(--orange)}.badge{font-size:.65rem;background:#f59e0b33;color:var(--orange);padding:.15rem .4rem;border-radius:4px;margin-left:auto}.badge.green{background:#10b98133;color:var(--green)}.badge.orange{background:#f59e0b33;color:var(--orange)}.badge.public{background:#22c55e33;color:#22c55e}.badge.private{background:#fbbf2433;color:#fbbf24}.photos-section p{font-size:.8rem;color:var(--text2);margin-bottom:.6rem}.meal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.complete-btn,.unmark-btn{width:100%;padding:.7rem;background:var(--green);border:none;border-radius:10px;color:#fff;font-weight:600;cursor:pointer;font-size:.85rem;margin-top:.75rem}.unmark-btn:active{transform:scale(.98)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;padding:.5rem;padding-bottom:calc(.5rem + var(--safe-b));background:#14141ff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.05);z-index:100}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:none;border:none;color:var(--text2);cursor:pointer;padding:.4rem .6rem;border-radius:10px;min-width:48px}.bottom-nav button:active{transform:scale(.95)}.bottom-nav button.active{color:var(--orange);background:#f59e0b1a}.bottom-nav span:first-child{font-size:1.2rem}.bottom-nav span:last-child{font-size:.6rem}.ach-modal{background:var(--card);border-radius:24px;padding:2rem;max-width:300px;width:100%;text-align:center}.ach-icon{font-size:4rem;display:block;margin-bottom:.75rem;animation:bounce .5s}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-15px)}}.ach-modal h2{font-size:1.3rem;margin-bottom:.35rem}.ach-modal p{color:var(--text2);margin-bottom:1rem;font-size:.9rem}.ach-pts{font-size:1.2rem;font-weight:700;color:var(--orange);display:block;margin-bottom:1rem}.screen{min-height:100vh;background:var(--bg)}.screen-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;padding-top:calc(1rem + var(--safe-t));background:#14141fe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(255,255,255,.05)}.screen-header button{background:none;border:none;color:var(--orange);font-weight:500;cursor:pointer;font-size:1rem;padding:.5rem}.screen-header h2{font-size:1.1rem}.screen-content{padding:1rem;padding-bottom:calc(80px + var(--safe-b))}.tabs,.sub-tabs{display:flex;gap:.4rem;padding:.75rem 1rem;overflow-x:auto}.tabs button,.sub-tabs button{flex:1;min-width:max-content;padding:.6rem .8rem;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text2);cursor:pointer;font-size:.8rem;text-transform:capitalize}.tabs button.active,.sub-tabs button.active{background:var(--grad);color:#fff;border-color:transparent}.sub-tabs{background:transparent;padding:.5rem 1rem}.sub-tabs button{background:#ffffff0d;font-size:.75rem}.gender-toggle{display:flex;gap:.5rem;padding:.5rem 1rem}.gender-toggle button{flex:1;padding:.6rem;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:10px;color:var(--text2);cursor:pointer;font-size:.85rem}.gender-toggle button.active{border-color:var(--orange);background:#f59e0b1a;color:var(--text)}.prog-header{padding:1rem;text-align:center}.prog-header h3{font-size:1.1rem;margin-bottom:.25rem}.prog-header p{color:var(--text2);font-size:.85rem}.cards{padding:0 1rem 2rem;display:flex;flex-direction:column;gap:.75rem}.rec-card{background:var(--card);border-radius:14px;padding:1rem;border:1px solid rgba(255,255,255,.05)}.rec-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.5rem}.rec-top h4{font-size:.95rem;flex:1}.ing{font-size:.8rem;color:var(--text2);margin-bottom:.5rem}.rec-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--text2);margin-bottom:.4rem}.tip{font-size:.75rem;color:var(--orange);background:#f59e0b1a;padding:.4rem .6rem;border-radius:8px}.type-tag{display:inline-block;font-size:.65rem;background:#8b5cf633;color:var(--purple);padding:.2rem .5rem;border-radius:6px;margin-bottom:.5rem}.exercises{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.5rem}.ex{font-size:.7rem;background:#ffffff0d;padding:.3rem .5rem;border-radius:6px;color:var(--text2)}.sets{font-size:.75rem;color:var(--text2);margin-bottom:.4rem}.profile-hero{text-align:center;padding:1.5rem;background:var(--card);border-radius:20px;margin-bottom:1rem}.avatar-lg{font-size:4rem;display:block;margin-bottom:.5rem}.profile-hero h2{font-size:1.3rem;margin-bottom:.25rem}.day-badge{display:inline-block;padding:.4rem 1rem;background:var(--grad);border-radius:20px;font-size:.85rem;font-weight:600}.stats-row{display:flex;justify-content:space-around;background:var(--card);border-radius:16px;padding:1rem;margin-bottom:1rem}.stat{text-align:center}.num{font-family:Bebas Neue;font-size:2rem;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:block}.stat span:last-child{font-size:.75rem;color:var(--text2)}.section{margin-bottom:1.5rem}.section h3{font-size:.9rem;color:var(--text2);margin-bottom:.75rem}.ach-list{display:flex;flex-wrap:wrap;gap:.5rem}.ach-badge{font-size:.8rem;background:var(--card);padding:.5rem .75rem;border-radius:10px;border:1px solid rgba(245,158,11,.3)}.ms-row{display:flex;align-items:center;gap:.75rem;background:var(--card);border-radius:12px;padding:.75rem 1rem;margin-bottom:.5rem}.ms-row.done{border:1px solid var(--green);background:#10b9811a}.ms-badge{font-size:1.8rem}.ms-name{flex:1;font-size:.9rem}.ms-check{color:var(--green);font-weight:700}.empty{color:var(--text2);font-size:.85rem;font-style:italic}.lb-row{display:flex;align-items:center;gap:.75rem;background:var(--card);border-radius:12px;padding:.75rem 1rem;margin-bottom:.5rem}.lb-row.me{border:1px solid var(--orange);background:#f59e0b1a}.rank{width:32px;font-weight:700;font-size:1rem;text-align:center}.lb-av{font-size:1.5rem}.lb-info{flex:1}.lb-name{font-weight:600;font-size:.9rem;display:block}.lb-stats{font-size:.75rem;color:var(--text2)}.lb-score{font-weight:600;color:var(--orange)}.legend{display:flex;justify-content:center;gap:1rem;padding:.75rem;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:.35rem;font-size:.75rem;color:var(--text2)}.dot{width:12px;height:12px;border-radius:4px}.dot.green{background:var(--green)}.dot.red{background:var(--red)}.dot.orange{background:var(--orange)}.cal-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem;padding:0 1rem 2rem}.cal-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--card);border-radius:10px;cursor:pointer;position:relative;border:2px solid transparent}.cal-day:active{transform:scale(.95)}.day-num{font-weight:600;font-size:.9rem}.check{color:var(--green);font-size:.6rem;position:absolute;bottom:2px}.x{color:var(--red);font-size:.6rem;position:absolute;bottom:2px}.mood-mini{position:absolute;top:2px;right:2px;font-size:.5rem}.cal-day.complete{background:#10b98126;border-color:var(--green)}.cal-day.incomplete{background:#ef44441a;border-color:var(--red)}.cal-day.today{background:#f59e0b26;border-color:var(--orange);box-shadow:0 0 12px #f59e0b4d}.cal-day.future{opacity:.3;cursor:default}.day-modal{background:var(--card);border-radius:20px;padding:1.5rem;max-width:320px;width:100%}.day-modal h3{font-size:1.3rem;text-align:center;margin-bottom:1rem}.modal-tasks{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.modal-task{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;background:#ffffff08;border-radius:10px}.modal-task.done{background:#10b9811a}.modal-task span:first-child{font-size:1.2rem}.modal-task span:nth-child(2){flex:1;font-size:.9rem}.modal-task .status{font-weight:600;font-size:.9rem}.modal-task.done .status{color:var(--green)}.admin-card{background:var(--card);border-radius:16px;padding:1.25rem;margin-bottom:1rem;border:1px solid rgba(255,255,255,.05)}.admin-card h3{font-size:1rem;margin-bottom:.75rem;display:flex;align-items:center;gap:.5rem}.admin-stat{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid rgba(255,255,255,.05)}.admin-stat:last-child{border-bottom:none}.admin-stat span:first-child{color:var(--text2);font-size:.85rem}.admin-stat span:last-child{font-weight:600;color:var(--orange)}.user-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#ffffff08;border-radius:12px;margin-bottom:.5rem}.user-item .avatar{font-size:1.5rem}.user-item .info{flex:1}.user-item .name{font-weight:600;font-size:.9rem;display:block}.user-item .email{font-size:.75rem;color:var(--text2)}.user-item .actions{display:flex;gap:.5rem}.approve-btn{padding:.4rem .8rem;background:var(--green);border:none;border-radius:8px;color:#fff;font-size:.75rem;cursor:pointer}.reject-btn{padding:.4rem .8rem;background:var(--red);border:none;border-radius:8px;color:#fff;font-size:.75rem;cursor:pointer}.invite-code{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#ffffff0d;border-radius:10px;margin-bottom:.75rem}.invite-code code{flex:1;font-family:monospace;font-size:.9rem;color:var(--orange)}.copy-btn{padding:.4rem .8rem;background:var(--purple);border:none;border-radius:8px;color:#fff;font-size:.75rem;cursor:pointer}.challenge-selector{padding:1rem}.challenge-card{background:var(--card);border-radius:16px;padding:1rem;margin-bottom:.75rem;border:2px solid transparent;cursor:pointer;transition:all .2s}.challenge-card:active{transform:scale(.98)}.challenge-card.active{border-color:var(--orange);background:#f59e0b1a}.challenge-card h4{font-size:1rem;margin-bottom:.25rem}.challenge-card .meta{font-size:.8rem;color:var(--text2)}.challenge-card .progress{margin-top:.5rem;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.challenge-card .progress-fill{height:100%;background:var(--grad);border-radius:3px}.challenge-not-started{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 1.5rem;min-height:60vh}.challenge-not-started .not-started-icon{font-size:4rem;margin-bottom:1.5rem;opacity:.8}.challenge-not-started h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--text)}.challenge-not-started .not-started-date{font-size:1.1rem;color:var(--orange);font-weight:600;margin-bottom:1rem}.challenge-not-started .not-started-message{color:var(--text2);font-size:.95rem;max-width:300px;line-height:1.5;margin-bottom:2rem}.challenge-card.future-challenge{opacity:.5;cursor:not-allowed;border:2px dashed rgba(255,255,255,.2)}.challenge-card.future-challenge:active{transform:none}.challenge-card.future-challenge h4{color:var(--text2)}.future-challenge-info{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:.5rem;background:#ffffff0d;border-radius:8px}.future-challenge-info .lock-icon{font-size:1rem}.future-challenge-info .start-date{font-size:.8rem;color:var(--orange);font-weight:500}.pending-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.pending-icon{font-size:4rem;margin-bottom:1rem}.pending-screen h2{font-size:1.5rem;margin-bottom:.5rem}.pending-screen p{color:var(--text2);font-size:.9rem;margin-bottom:1.5rem;max-width:300px}@media (max-width: 380px){.mood-grid{gap:.3rem}.emoji{font-size:1.1rem}.name{font-size:.55rem}.cal-grid{gap:.3rem}.day-num{font-size:.8rem}.meal-grid{gap:.4rem}}.mood-tracker{background:var(--card);border-radius:16px;overflow:hidden}.mood-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;cursor:pointer}.mood-title{font-weight:600;font-size:.95rem}.current-mood{font-size:.85rem;color:var(--text2)}.expand-icon{font-size:.75rem;color:var(--text2)}.mood-content{padding:0 1rem 1rem;border-top:1px solid rgba(255,255,255,.05)}.mood-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;padding:1rem 0}.mood-btn{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding:.75rem .5rem;background:#ffffff08;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s}.mood-btn:active{transform:scale(.95)}.mood-btn.selected{border-color:var(--purple);background:#8b5cf61a}.mood-emoji{font-size:1.5rem}.mood-label{font-size:.65rem;color:var(--text2)}.journal-section{margin-top:.5rem}.journal-section label{font-size:.8rem;color:var(--text2);display:block;margin-bottom:.5rem}.journal-section textarea{width:100%;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text);font-family:inherit;font-size:.9rem;resize:none}.journal-section textarea:focus{outline:none;border-color:var(--purple)}.mood-actions{margin-top:.75rem;display:flex;justify-content:flex-end}.share-mood-btn{padding:.6rem 1rem;background:#8b5cf633;border:none;border-radius:10px;color:var(--purple);font-weight:600;cursor:pointer;font-size:.85rem}.publish-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:300;padding:1rem}.publish-content{background:var(--card);border-radius:20px;padding:1.5rem;width:100%;max-width:340px}.publish-content h4{text-align:center;margin-bottom:1rem}.publish-preview{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin-bottom:1rem}.big-emoji{font-size:3rem}.publish-content textarea{width:100%;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text);font-family:inherit;font-size:.9rem;resize:none;margin-bottom:1rem}.publish-actions{display:flex;gap:.75rem}.cancel-btn{flex:1;padding:.75rem;background:#ffffff0d;border:none;border-radius:12px;color:var(--text);font-weight:600;cursor:pointer}.publish-btn{flex:1;padding:.75rem;background:var(--purple);border:none;border-radius:12px;color:#fff;font-weight:600;cursor:pointer}.quote-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;opacity:0;transition:opacity .3s;display:flex;align-items:center;justify-content:center;padding:1rem}.quote-modal.visible{opacity:1}.quote-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6}.quote-content{position:relative;z-index:1;background:var(--card);border-radius:24px;padding:2.5rem 2rem;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 60px #0006;transform:scale(.9);transition:transform .3s ease}.quote-modal.visible .quote-content{transform:scale(1)}.quote-greeting{font-size:1.2rem;font-weight:600;margin-bottom:1.5rem}.quote-text{font-size:1.1rem;font-style:italic;line-height:1.5;margin-bottom:1rem;color:var(--text)}.quote-author{font-size:.9rem;color:var(--text2);margin-bottom:1.5rem}.quote-close{width:100%;padding:1rem;background:var(--grad);border:none;border-radius:14px;color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.achievement-popup{position:fixed;bottom:100px;left:50%;transform:translate(-50%) translateY(100px);z-index:500;opacity:0;transition:all .3s;pointer-events:none}.achievement-popup.visible{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto}.achievement-content{background:linear-gradient(135deg,#f59e0b26,#8b5cf626);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(245,158,11,.3);border-radius:20px;padding:1.5rem 2rem;text-align:center;min-width:280px}.achievement-sparkle{font-size:1.5rem;position:absolute;top:-10px;right:-5px;animation:sparkle 1s infinite}@keyframes sparkle{0%,to{transform:scale(1) rotate(0)}50%{transform:scale(1.2) rotate(15deg)}}.achievement-icon{font-size:3rem;margin-bottom:.5rem}.achievement-title{font-size:1.1rem;font-weight:700;color:var(--orange);margin-bottom:.25rem}.achievement-description{font-size:.9rem;color:var(--text2);margin-bottom:.5rem}.achievement-reward{font-size:.85rem;color:var(--green);font-weight:600;margin-bottom:.75rem}.achievement-close{padding:.6rem 1.5rem;background:var(--orange);border:none;border-radius:12px;color:#fff;font-weight:600;cursor:pointer;font-size:.9rem}.photo-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:flex-end}.photo-modal-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000d9}.photo-modal-content{position:relative;background:var(--card);border-radius:24px 24px 0 0;width:100%;max-height:90vh;overflow:hidden;animation:slideUp .3s}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.photo-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.05)}.photo-modal-header h3{font-size:1rem;font-weight:600}.close-btn{background:none;border:none;color:var(--text2);font-size:1.5rem;cursor:pointer;padding:.25rem}.photo-modal-body{padding:1.25rem;overflow-y:auto;max-height:calc(90vh - 140px)}.photo-capture-area{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;background:#ffffff08;border:2px dashed rgba(255,255,255,.15);border-radius:16px;cursor:pointer}.capture-icon{font-size:3rem;margin-bottom:.5rem}.capture-text{font-weight:600;margin-bottom:.25rem}.capture-hint{font-size:.8rem;color:var(--text2)}.photo-capture-area-v2{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;background:#ffffff08;border:2px dashed rgba(255,255,255,.15);border-radius:16px}.capture-prompt{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text)}.photo-source-buttons{display:flex;gap:1rem;margin-top:.75rem}.source-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,opacity .2s}.source-btn:active{transform:scale(.95)}.source-btn.camera{background:var(--accent);color:#fff}.source-btn.gallery{background:#ffffff1a;color:var(--text);border:1px solid rgba(255,255,255,.2)}.photo-preview-container{position:relative}.photo-preview-img{width:100%;max-height:50vh;object-fit:contain;background:#000;border-radius:12px}.retake-btn{position:absolute;bottom:.75rem;right:.75rem;padding:.5rem 1rem;background:#000000b3;border:none;border-radius:10px;color:#fff;font-size:.85rem;cursor:pointer}.caption-section{margin-top:1rem}.caption-section textarea{width:100%;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text);font-family:inherit;font-size:.9rem;resize:none}.privacy-toggle{margin-top:1rem;padding:.75rem;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.toggle-label{display:flex;align-items:center;gap:.75rem;cursor:pointer}.toggle-label input{display:none}.toggle-slider{width:50px;height:28px;background:#8b0000;border-radius:14px;position:relative;transition:background .2s}.toggle-slider:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;background:#fff;border-radius:50%;transition:transform .2s}.toggle-label input:checked+.toggle-slider{background:var(--green)}.toggle-label input:checked+.toggle-slider:after{transform:translate(22px)}.toggle-text{font-size:1rem;font-weight:500}.toggle-hint{font-size:.75rem;color:var(--text2);margin-top:.25rem}.photo-modal-footer{display:flex;gap:.75rem;padding:1rem 1.25rem;padding-bottom:calc(1rem + var(--safe-b));border-top:1px solid rgba(255,255,255,.05)}.photo-modal-footer .cancel-btn,.photo-modal-footer .save-btn{flex:1;padding:.9rem;border-radius:14px;font-weight:600;cursor:pointer;font-size:.95rem}.photo-modal-footer .save-btn{background:var(--grad);border:none;color:#fff}.photo-modal-footer .save-btn:disabled{opacity:.5}.feed-tabs{display:flex;gap:.5rem;padding:0 1rem;margin-bottom:1rem}.feed-tabs button{flex:1;padding:.75rem;background:#ffffff0d;border:none;border-radius:12px;color:var(--text2);font-weight:600;cursor:pointer;font-size:.9rem}.feed-tabs button.active{background:var(--grad);color:#fff}.feed-list{display:flex;flex-direction:column;gap:1rem}.load-more-container{display:flex;justify-content:center;padding:1rem 0 2rem}.load-more-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 2rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:12px;color:var(--text);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease}.load-more-btn:hover{background:#ffffff26;border-color:#ffffff4d}.loading-spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--orange);border-radius:50%;animation:spin .8s linear infinite}.end-of-feed{text-align:center;padding:1.5rem;color:var(--text2);font-size:.85rem}.back-to-top-btn{position:fixed;bottom:100px;right:20px;padding:12px 20px;background:var(--orange);border:none;border-radius:50px;color:#000;font-size:1rem;font-weight:700;cursor:pointer;box-shadow:0 4px 20px #f59e0b99;z-index:9999;animation:fadeInUp .2s ease}.back-to-top-btn:active{transform:scale(.95)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.feed-post{background:var(--card);border-radius:16px;overflow:hidden}.post-header{display:flex;align-items:center;gap:.75rem;padding:1rem}.post-name{font-weight:600;font-size:.9rem;display:block}.post-time{font-size:.75rem;color:var(--text2)}.post-content{padding:0 1rem}.post-image{margin:0 -1rem .75rem}.post-task-info{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.task-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.3rem .6rem;background:#ffffff0d;border-radius:8px;font-size:.8rem}.milestone-badge{background:#f59e0b26;color:var(--orange)}.mood-badge{background:#8b5cf626;color:var(--purple)}.post-caption{font-size:.9rem;line-height:1.4;margin-bottom:.75rem}.post-comments{padding:.75rem 1rem 1rem;border-top:1px solid rgba(255,255,255,.05);margin-top:.5rem}.comments-list{max-height:200px;overflow-y:auto}.no-comments{font-size:.85rem;color:var(--text2);text-align:center;padding:.5rem 0}.comment-name{font-weight:600;font-size:.8rem;display:block;margin-bottom:.15rem}.private-gallery{padding:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.gallery-item{aspect-ratio:1;position:relative;cursor:pointer;overflow:hidden}.gallery-item img{width:100%;height:100%;object-fit:cover}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;padding:.4rem;background:linear-gradient(transparent,#000000b3);display:flex;justify-content:space-between;align-items:center}.gallery-icon{font-size:.9rem}.private-badge{font-size:.7rem}.photo-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;z-index:400;display:flex;align-items:center;justify-content:center;padding:1rem}.lightbox-content{max-width:100%;max-height:100%;position:relative}.lightbox-close{position:absolute;top:-40px;right:0;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer}.lightbox-content img{max-width:100%;max-height:70vh;border-radius:12px}.lightbox-info{margin-top:1rem;text-align:center}.lightbox-task{font-size:1rem;font-weight:600;margin-bottom:.5rem}.private-tag{font-size:.8rem;color:var(--text2);margin-left:.5rem}.lightbox-caption{font-size:.9rem;color:var(--text2);margin-bottom:.5rem}.lightbox-date{font-size:.8rem;color:var(--text2)}.profile-header{display:flex;flex-direction:column;align-items:center;padding:2rem 1rem}.profile-avatar-large{font-size:4rem;background:#ffffff0d;padding:1rem;border-radius:50%;margin-bottom:1rem;position:relative}.profile-avatar-large.clickable{cursor:pointer;transition:transform .2s,box-shadow .2s}.profile-avatar-large.clickable:hover{transform:scale(1.05);box-shadow:0 0 20px #f59e0b4d}.profile-avatar-large .avatar-edit-hint{position:absolute;bottom:0;right:0;font-size:1rem;background:var(--orange);border-radius:50%;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center}.avatar-picker-modal{max-width:350px;width:90%}.avatar-picker-modal .modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid rgba(255,255,255,.1)}.avatar-picker-modal .modal-header h3{font-size:1.1rem;font-weight:600}.avatar-picker-modal .modal-close{background:none;border:none;color:var(--text2);font-size:1.25rem;cursor:pointer;padding:.25rem}.avatar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;padding:1.25rem}.avatar-option{font-size:2rem;padding:.75rem;background:#ffffff0d;border:2px solid transparent;border-radius:12px;cursor:pointer;transition:all .2s}.avatar-option:hover{background:#ffffff1a;transform:scale(1.1)}.avatar-option.selected{border-color:var(--orange);background:#f59e0b26}.avatar-option:disabled{opacity:.5;cursor:not-allowed}.saving-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;color:var(--text2);font-size:.9rem}.profile-name{display:flex;align-items:center;gap:.5rem;font-size:1.3rem;font-weight:700;cursor:pointer}.edit-icon{font-size:.9rem;opacity:.5}.profile-email{font-size:.85rem;color:var(--text2);margin-top:.25rem}.edit-name{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;max-width:250px}.edit-name input{width:100%;padding:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text);font-size:1rem;text-align:center}.edit-actions{display:flex;gap:.5rem}.edit-actions button{padding:.5rem 1rem;border-radius:10px;font-size:.85rem;cursor:pointer;border:none}.edit-actions button:first-child{background:#ffffff0d;color:var(--text)}.edit-actions button:last-child{background:var(--purple);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem;margin-bottom:1.5rem}.stat-card{background:var(--card);border-radius:16px;padding:1.25rem;text-align:center}.stat-icon{font-size:1.5rem;display:block;margin-bottom:.25rem}.stat-value{font-size:1.5rem;font-weight:700;display:block}.stat-label{font-size:.75rem;color:var(--text2)}.achievements-section,.milestones-section{padding:0 1rem;margin-bottom:1.5rem}.achievements-section h3,.milestones-section h3{font-size:1rem;margin-bottom:.75rem}.empty-achievements{text-align:center;padding:1.5rem;background:var(--card);border-radius:12px}.empty-achievements p{color:var(--text2);font-size:.9rem}.achievements-list,.milestones-list{display:flex;flex-direction:column;gap:.5rem}.achievement-item,.milestone-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--card);border-radius:12px}.milestone-item.completed{background:linear-gradient(135deg,#10b9811a,#10b9810d)}.ach-emoji,.ms-emoji{font-size:1.5rem}.ach-info,.ms-info{flex:1}.ach-title,.ms-title{font-weight:600;font-size:.9rem;display:block}.ach-desc,.ms-day{font-size:.8rem;color:var(--text2)}.history-stats{display:flex;gap:1rem;padding:0 1rem;margin-bottom:1rem}.hist-stat{flex:1;background:var(--card);border-radius:12px;padding:1rem;text-align:center}.hist-value{font-size:1.75rem;font-weight:700;display:block;background:var(--grad);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hist-label{font-size:.75rem;color:var(--text2)}.history-list{padding:0 1rem}.history-list h3{font-size:1rem;margin-bottom:.75rem}.history-day{background:var(--card);border-radius:12px;margin-bottom:.5rem;overflow:hidden;cursor:pointer}.history-day.complete{border-left:3px solid var(--green)}.history-day.partial{border-left:3px solid var(--orange)}.history-day.none{border-left:3px solid var(--red)}.backdated-badge{display:inline-block;background:#f9731633;color:#f97316;font-size:.6rem;font-weight:600;padding:.15rem .4rem;border-radius:4px;margin-left:.5rem;text-transform:uppercase;letter-spacing:.5px}.backdated-notice{color:#f97316;font-size:.75rem;font-weight:500}.day-summary{display:flex;align-items:center;justify-content:space-between;padding:1rem}.day-date{display:flex;flex-direction:column}.date-day{font-weight:600;font-size:.9rem}.date-full{font-size:.75rem;color:var(--text2)}.day-progress{display:flex;align-items:center;gap:.75rem}.progress-text{font-size:.9rem;color:var(--text2)}.status-badge{font-size:1rem}.day-details{padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid rgba(255,255,255,.05)}.detail-task{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text2)}.detail-task.done{color:var(--text)}.detail-task span:last-child{margin-left:auto}.day-points{font-size:.75rem;color:#22c55e;font-weight:600;padding:.15rem .4rem;background:#22c55e26;border-radius:4px}.day-points-header{font-size:.8rem;color:var(--text2);margin-bottom:.5rem;font-weight:500}.day-points-total{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.1);font-size:.9rem;color:#22c55e;text-align:right}.task-points{font-size:.8rem;color:#22c55e;font-weight:600}.detail-task:not(.done) .task-points{color:var(--text2)}.rec-tabs{display:flex;gap:.5rem;padding:0 1rem;margin-bottom:1rem}.rec-tabs button{flex:1;padding:.75rem;background:#ffffff0d;border:none;border-radius:12px;color:var(--text2);font-weight:600;cursor:pointer;font-size:.9rem}.rec-tabs button.active{background:var(--grad);color:#fff}.category-filter{display:flex;gap:.5rem;padding:0 1rem .75rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.category-filter::-webkit-scrollbar{display:none}.category-filter button{white-space:nowrap;padding:.5rem .75rem;background:#ffffff0d;border:none;border-radius:10px;color:var(--text2);font-size:.8rem;cursor:pointer}.category-filter button.active{background:var(--purple);color:#fff}.rec-list{padding:0 1rem;display:flex;flex-direction:column;gap:.75rem}.rec-card{background:var(--card);border-radius:12px;overflow:hidden}.rec-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;cursor:pointer}.rec-info{display:flex;align-items:center;gap:.75rem}.rec-icon{font-size:1.5rem}.rec-text{display:flex;flex-direction:column}.rec-name{font-weight:600;font-size:.95rem}.rec-meta,.expand-arrow{font-size:.75rem;color:var(--text2)}.rec-details{padding:0 1rem 1rem;border-top:1px solid rgba(255,255,255,.05)}.rec-description{font-size:.85rem;color:var(--text2);margin:.75rem 0;line-height:1.4}.rec-section{margin-top:.75rem}.rec-section h4{font-size:.85rem;margin-bottom:.5rem;color:var(--purple)}.rec-section ul,.rec-section ol{padding-left:1.25rem;font-size:.85rem;color:var(--text2);line-height:1.6}.exercise-list{display:flex;flex-direction:column;gap:.5rem}.exercise-item{display:flex;justify-content:space-between;font-size:.85rem;padding:.5rem;background:#ffffff08;border-radius:8px}.ex-reps{color:var(--purple);font-weight:600}.rec-tips{display:flex;align-items:flex-start;gap:.5rem;margin-top:.75rem;padding:.75rem;background:#f59e0b1a;border-radius:10px;font-size:.85rem}.tip-icon{font-size:1rem}.sort-tabs{display:flex;gap:.5rem;padding:0 1rem;margin-bottom:1rem}.sort-tabs button{flex:1;padding:.6rem;background:#ffffff0d;border:none;border-radius:10px;color:var(--text2);font-weight:600;cursor:pointer;font-size:.8rem}.sort-tabs button.active{background:var(--purple);color:#fff}.your-rank{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;margin:0 1rem 1rem;background:linear-gradient(135deg,#f59e0b1a,#8b5cf61a);border-radius:12px}.rank-label{font-size:.9rem;color:var(--text2)}.rank-value{font-size:1.25rem;font-weight:700}.leaderboard-list{padding:0 1rem;display:flex;flex-direction:column;gap:.5rem}.leaderboard-item{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--card);border-radius:12px}.leaderboard-item.top-3{background:linear-gradient(135deg,#f59e0b0d,#8b5cf60d);border:1px solid rgba(245,158,11,.2)}.leaderboard-item.current-user{border:1px solid var(--purple)}.leaderboard-item .rank{font-size:1.1rem;font-weight:700;min-width:35px;text-align:center}.participant-info{display:flex;align-items:center;gap:.5rem;flex:1}.participant-avatar{font-size:1.5rem}.participant-name{font-weight:600;font-size:.9rem}.you-tag{font-size:.7rem;padding:.15rem .4rem;background:var(--purple);border-radius:6px;margin-left:.4rem}.participant-stats .stat-value{font-size:.9rem;font-weight:600}.period-tabs{display:flex;gap:.5rem;padding:0 1rem;margin-bottom:.75rem}.period-tabs button{flex:1;padding:.75rem;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:12px;color:var(--text2);font-weight:600;cursor:pointer;font-size:.85rem;transition:all .2s}.period-tabs button.active{background:linear-gradient(135deg,#f59e0b26,#8b5cf626);border-color:var(--orange);color:var(--text)}.period-label{text-align:center;font-size:.85rem;color:var(--text2);margin-bottom:1rem;padding:0 1rem}.leaderboard-podium{display:flex;justify-content:center;align-items:flex-end;gap:.75rem;padding:1.5rem 1rem;margin-bottom:1rem}.podium-item{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--card);border-radius:16px;min-width:90px;transition:transform .2s}.podium-item.rank-1{background:linear-gradient(135deg,#ffd70026,#ffc1071a);border:2px solid rgba(255,215,0,.4);transform:scale(1.1);padding:1.25rem 1rem;z-index:2}.podium-item.rank-2{background:linear-gradient(135deg,#c0c0c026,#9e9e9e1a);border:2px solid rgba(192,192,192,.3)}.podium-item.rank-3{background:linear-gradient(135deg,#cd7f3226,#b08d571a);border:2px solid rgba(205,127,50,.3)}.podium-item.current-user{box-shadow:0 0 0 2px var(--purple)}.podium-medal{font-size:2rem;margin-bottom:.25rem}.podium-avatar{font-size:2.25rem;margin-bottom:.25rem}.podium-name{font-weight:600;font-size:.8rem;text-align:center;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.you-badge{display:block;font-size:.65rem;padding:.15rem .35rem;background:var(--purple);border-radius:4px;margin-top:.25rem}.podium-points{font-size:.75rem;color:var(--text2);margin-top:.25rem;font-weight:600}.past-winners-toggle{display:flex;align-items:center;gap:.5rem;width:calc(100% - 2rem);margin:0 1rem 1rem;padding:.75rem 1rem;background:#f59e0b0d;border:1px solid rgba(245,158,11,.15);border-radius:10px;color:var(--orange);font-weight:600;font-size:.85rem;cursor:pointer;transition:all .2s}.past-winners-toggle:hover{background:#f59e0b1a}.past-winners-section{margin:0 1rem 1rem;padding:1rem;background:#f59e0b08;border-radius:12px;display:flex;flex-direction:column;gap:.5rem}.past-winner-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#ffffff08;border-radius:8px}.winner-medal,.winner-avatar{font-size:1.25rem}.winner-name{flex:1;font-weight:500;font-size:.85rem}.winner-points{font-size:.8rem;color:var(--text2);font-weight:600}.text-btn{background:none;border:none;color:var(--red);font-weight:600;cursor:pointer;font-size:.9rem}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3rem 2rem;color:var(--text2);gap:1rem}.leaderboard-hint{font-size:.9rem;opacity:.7}.header-stats{cursor:pointer}.toast-notification{position:fixed;top:calc(var(--safe-t) + 1rem);left:50%;transform:translate(-50%);background:var(--green);color:#fff;padding:.75rem 1.25rem;border-radius:12px;font-size:.9rem;font-weight:500;z-index:1000;box-shadow:0 4px 20px #10b98166;animation:toastSlideIn .3s ease-out;max-width:calc(100% - 2rem);text-align:center}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.toast-success{background:var(--green);box-shadow:0 4px 20px #10b98166}.toast-error{background:var(--red);box-shadow:0 4px 20px #ef444466}.toast-info{background:var(--blue);box-shadow:0 4px 20px #3b82f666}.meal-sub-tabs{display:flex;gap:.5rem;padding:0 1rem .75rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.meal-sub-tabs button{flex-shrink:0;padding:.5rem 1rem;border:none;background:#ffffff0d;color:var(--text2);border-radius:20px;font-size:.8rem;cursor:pointer;transition:all .2s}.meal-sub-tabs button.active{background:var(--grad);color:#fff}.meal-filters{padding:0 0 1rem}.filter-row{display:flex;gap:.75rem;margin-bottom:.75rem}.filter-group{flex:1;min-width:0}.filter-group label{display:block;font-size:.7rem;color:var(--text2);margin-bottom:.25rem}.filter-group select{width:100%;padding:.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text);font-size:.85rem}.toggle-group{display:flex;align-items:flex-end}.toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.85rem;color:var(--text)}.toggle-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--orange)}.meal-count,.favorites-count{font-size:.8rem;color:var(--text2);margin-bottom:.75rem}.meal-card{background:var(--card);border:1px solid rgba(255,255,255,.05);border-radius:14px;margin-bottom:.6rem;overflow:hidden}.meal-card.expanded{border-color:#ffffff26}.meal-header{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;cursor:pointer}.meal-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.meal-icon{font-size:1.5rem;flex-shrink:0}.meal-text{flex:1;min-width:0}.meal-name{display:block;font-weight:600;font-size:.9rem}.meal-meta{display:block;font-size:.75rem;color:var(--text2)}.meal-actions{display:flex;align-items:center;gap:.5rem}.favorite-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem;transition:transform .2s}.favorite-btn:active{transform:scale(1.2)}.meal-details{padding:0 1rem 1rem;border-top:1px solid rgba(255,255,255,.05)}.meal-description{font-size:.85rem;color:var(--text2);margin:.75rem 0}.meal-macros{display:flex;gap:1rem;margin-bottom:.75rem;font-size:.8rem}.macro{color:var(--text2)}.macro strong{color:var(--text)}.meal-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.meal-tag{font-size:.7rem;padding:.2rem .5rem;background:#fb923c33;color:var(--orange);border-radius:4px}.meal-section{margin-top:.75rem}.meal-section h4{font-size:.8rem;color:var(--text2);margin-bottom:.5rem}.ingredient-list{list-style:none;padding:0;margin:0}.ingredient-list li{display:flex;gap:.5rem;padding:.25rem 0;font-size:.85rem;border-bottom:1px solid rgba(255,255,255,.03)}.ing-amount{color:var(--text2);min-width:80px}.ing-item{color:var(--text)}.instruction-list{padding-left:1.25rem;margin:0}.instruction-list li{padding:.25rem 0;font-size:.85rem;color:var(--text)}.add-to-plan-btn{width:100%;margin-top:1rem;padding:.75rem;background:var(--grad);border:none;border-radius:8px;color:#fff;font-weight:600;font-size:.85rem;cursor:pointer}.no-meals,.favorites-empty,.grocery-empty{text-align:center;padding:3rem 1rem;color:var(--text2)}.empty-icon{font-size:3rem;display:block;margin-bottom:1rem}.favorites-empty h3,.grocery-empty h3{color:var(--text);margin-bottom:.5rem}.meal-planner{padding:0}.planner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:.5rem}.planner-stats{font-size:.85rem;color:var(--text2)}.planner-actions{display:flex;gap:.5rem}.clear-week-btn,.generate-grocery-btn{padding:.5rem .75rem;border:none;border-radius:8px;font-size:.8rem;cursor:pointer;font-weight:500}.clear-week-btn{background:#ef444433;color:var(--red)}.generate-grocery-btn{background:var(--grad);color:#fff}.planner-grid{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;-webkit-overflow-scrolling:touch}.day-column{flex:1;min-width:100px;background:var(--card);border-radius:12px;overflow:hidden}.day-column.today{border:1px solid var(--orange)}.day-header{padding:.5rem;text-align:center;background:#ffffff08}.day-name{display:block;font-size:.75rem;color:var(--text2)}.day-num{font-family:Bebas Neue;font-size:1.2rem}.day-meals{padding:.5rem;display:flex;flex-direction:column;gap:.4rem}.meal-slot{padding:.5rem;border-radius:8px;text-align:center;cursor:pointer;transition:all .2s;min-height:50px;display:flex;flex-direction:column;justify-content:center;align-items:center}.meal-slot.empty{background:#ffffff08;border:1px dashed rgba(255,255,255,.1)}.meal-slot.filled{background:#10b9811a;border:1px solid rgba(16,185,129,.3)}.slot-type{font-size:.65rem;color:var(--text2);text-transform:capitalize}.slot-add{font-size:1.2rem;color:var(--text2)}.slot-emoji{font-size:1.2rem}.slot-name{font-size:.65rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.meal-selector-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;z-index:100;display:flex;align-items:flex-end}.meal-selector-modal{background:var(--bg);border-radius:20px 20px 0 0;width:100%;max-height:80vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3{text-transform:capitalize}.modal-header button{background:none;border:none;font-size:1.5rem;color:var(--text);cursor:pointer}.modal-content{overflow-y:auto;padding:1rem}.category-section{margin-bottom:1rem}.category-section h4{font-size:.8rem;color:var(--text2);margin-bottom:.5rem;text-transform:capitalize}.meal-options{display:flex;flex-direction:column;gap:.4rem}.meal-option{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:var(--card);border:1px solid rgba(255,255,255,.05);border-radius:10px;cursor:pointer;text-align:left;width:100%;color:var(--text)}.meal-option:active{transform:scale(.98)}.option-emoji{font-size:1.2rem}.option-name{flex:1;font-size:.85rem}.option-cals{font-size:.75rem;color:var(--text2)}.grocery-list{padding:0}.grocery-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.grocery-stats{font-size:.85rem;color:var(--text2)}.grocery-actions{display:flex;gap:.5rem}.clear-checked-btn{padding:.4rem .75rem;background:#ef444433;color:var(--red);border:none;border-radius:6px;font-size:.8rem;cursor:pointer}.grocery-categories{display:flex;flex-direction:column;gap:1rem}.grocery-category{background:var(--card);border-radius:12px;padding:1rem}.category-title{font-size:.9rem;margin-bottom:.75rem;color:var(--text)}.category-items{display:flex;flex-direction:column;gap:.5rem}.grocery-item{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:#ffffff05;border-radius:8px;cursor:pointer;transition:all .2s}.grocery-item.checked{opacity:.5}.grocery-item.checked .item-name{text-decoration:line-through}.grocery-item input[type=checkbox]{width:20px;height:20px;accent-color:var(--green);flex-shrink:0}.item-name{flex:1;font-size:.9rem;color:var(--text)}.item-amounts{font-size:.75rem;color:var(--text2);text-align:right}.backdated-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.backdated-modal{background:var(--bg);border:1px solid #8B0000;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;position:relative}.backdated-header{position:sticky;top:0;background:var(--bg);padding:1.25rem;border-bottom:1px solid rgba(139,0,0,.3);text-align:center;z-index:1}.backdated-header .close-btn{position:absolute;top:1rem;right:1rem;background:none;border:none;color:var(--text2);font-size:1.5rem;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.backdated-header .close-btn:hover{background:#ffffff1a;color:var(--text)}.backdated-header h2{font-size:1.5rem;margin:0;color:var(--text)}.backdated-date{font-size:.85rem;color:var(--text2);margin-top:.25rem}.backdated-notice{display:inline-flex;align-items:center;gap:.5rem;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:20px;padding:.35rem .75rem;margin-top:.75rem;font-size:.75rem;color:#f59e0b}.backdated-notice .notice-icon{font-size:.9rem}.backdated-progress{padding:1rem 1.25rem;display:flex;align-items:center;gap:1rem}.backdated-progress .progress-bar{flex:1;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.backdated-progress .progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#22c55e);border-radius:4px;transition:width .3s ease}.backdated-progress .progress-text{font-size:.85rem;color:var(--text2);white-space:nowrap}.saving-indicator{text-align:center;padding:.5rem;background:#3b82f61a;color:#3b82f6;font-size:.8rem;border-top:1px solid rgba(59,130,246,.2);border-bottom:1px solid rgba(59,130,246,.2)}.backdated-tasks{padding:.75rem 1rem}.backdated-tasks .task-card{margin-bottom:.75rem}.backdated-footer{position:sticky;bottom:0;background:var(--bg);padding:1rem 1.25rem;border-top:1px solid rgba(139,0,0,.3)}.backdated-footer .done-btn{width:100%;padding:.875rem;background:linear-gradient(135deg,#8b0000,#a00);border:none;border-radius:12px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.backdated-footer .done-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #8b000066}.backdated-footer .done-btn:active{transform:translateY(0)}.notification-bell-container{position:relative}.notification-bell{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem;position:relative;transition:transform .2s}.notification-bell:hover{transform:scale(1.1)}.notification-badge{position:absolute;top:-4px;right:-6px;background:var(--red);color:#fff;font-size:.65rem;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-family:Outfit,sans-serif}.notification-panel{position:absolute;top:100%;right:0;width:320px;max-height:400px;background:var(--card);border-radius:12px;box-shadow:0 8px 32px #0006;border:1px solid rgba(255,255,255,.1);overflow:hidden;z-index:100;margin-top:.5rem}.notification-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid rgba(255,255,255,.1)}.notification-panel-header h3{font-size:1rem;font-weight:600;margin:0}.mark-all-read{background:none;border:none;color:var(--orange);font-size:.8rem;cursor:pointer;padding:.25rem .5rem}.mark-all-read:hover{text-decoration:underline}.notification-list{max-height:340px;overflow-y:auto}.notification-loading,.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;color:var(--text2);gap:.5rem}.notification-empty .empty-icon{font-size:2rem;opacity:.5}.notification-empty p{margin:0;font-size:.9rem}.notification-item{display:flex;align-items:flex-start;gap:.75rem;padding:.875rem 1rem;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:background .2s;position:relative}.notification-item:hover{background:#ffffff0d}.notification-item.unread{background:#f59e0b14}.notification-item.unread:hover{background:#f59e0b1f}.notification-icon{font-size:1.25rem;flex-shrink:0;margin-top:.125rem}.notification-content{flex:1;min-width:0}.notification-actor{display:flex;align-items:center;gap:.375rem;margin-bottom:.25rem}.actor-avatar{font-size:.9rem}.actor-name{font-weight:500;font-size:.85rem;color:var(--text)}.notification-message{font-size:.8rem;color:var(--text2);margin:0;line-height:1.4;word-break:break-word}.notification-time{font-size:.7rem;color:var(--text2);opacity:.7;margin-top:.25rem;display:block}.unread-dot{width:8px;height:8px;background:var(--orange);border-radius:50%;flex-shrink:0;margin-top:.25rem}.notification-actors{margin-bottom:.25rem}.actor-avatars-stacked{display:flex;align-items:center}.actor-avatar.stacked{font-size:.85rem;margin-right:-6px;position:relative;background:var(--card);border-radius:50%;padding:2px}.actor-avatar.stacked.more{font-size:.6rem;background:var(--text2);color:var(--bg);width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-weight:600}.load-more-btn{width:100%;padding:.75rem;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:var(--text2);font-size:.85rem;cursor:pointer;margin:.5rem 1rem 1rem;width:calc(100% - 2rem);display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s}.load-more-btn:hover:not(:disabled){background:#ffffff0d;color:var(--text)}.load-more-btn:disabled{opacity:.6;cursor:not-allowed}.load-more-btn .loading-spinner{margin:0}.post-highlighted{animation:highlightPost 2s ease-out}@keyframes highlightPost{0%{background:#f59e0b4d;box-shadow:0 0 0 2px var(--orange);border-radius:12px}to{background:transparent;box-shadow:none}}.streak-badges-section{margin-top:2rem}.streak-badges-section h3{font-size:1.1rem;margin-bottom:.5rem}.streak-badges-subtitle{color:var(--text2);font-size:.85rem;margin-bottom:1rem}.streak-badges-subtitle strong{color:var(--orange)}.streak-badges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.streak-badge{display:flex;flex-direction:column;align-items:center;text-align:center;padding:.75rem .5rem;border-radius:12px;transition:all .3s ease}.streak-badge.earned{background:linear-gradient(135deg,#f59e0b26,#ef44441a)}.streak-badge.locked{opacity:.5}.streak-badge-circle{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:.5rem;transition:all .3s ease}.streak-badge.earned .streak-badge-circle{background:linear-gradient(135deg,var(--orange),var(--red));box-shadow:0 4px 15px #f59e0b66}.streak-badge.locked .streak-badge-circle{background:#ffffff1a;border:2px dashed rgba(255,255,255,.2)}.badge-emoji{font-size:1.75rem}.badge-lock{font-size:1.25rem;opacity:.5}.badge-title{font-size:.75rem;font-weight:600;color:var(--text);margin-bottom:.125rem;line-height:1.2}.streak-badge.locked .badge-title{color:var(--text2)}.badge-days{font-size:.65rem;color:var(--text2)}.badge-points{font-size:.6rem;color:var(--green);font-weight:600;margin-top:.25rem}@media (max-width: 360px){.streak-badges-grid{grid-template-columns:repeat(2,1fr)}.streak-badge-circle{width:50px;height:50px}.badge-emoji{font-size:1.5rem}}.report-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:300;padding:1rem}.report-modal{background:var(--bg2);border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;position:relative;padding:1.5rem}.report-close-btn{position:absolute;top:1rem;right:1rem;background:#ffffff1a;border:none;border-radius:50%;width:32px;height:32px;font-size:1.5rem;color:var(--text2);cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1}.report-close-btn:hover{background:#fff3;color:var(--text)}.report-header{text-align:center;margin-bottom:1.5rem}.report-icon{font-size:3rem;display:block;margin-bottom:.5rem}.report-header h2{font-size:1.25rem;margin:0 0 .5rem}.report-period{color:var(--text2);font-size:.9rem;margin:0}.report-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:1.5rem}.summary-stat{background:#ffffff0d;padding:1rem;border-radius:12px;text-align:center}.summary-stat.highlight{background:linear-gradient(135deg,var(--orange) 0%,var(--red) 100%)}.summary-stat.highlight .stat-value,.summary-stat.highlight .stat-label{color:#000}.stat-value{font-size:1.75rem;font-weight:700;display:block;color:var(--text)}.stat-label{font-size:.75rem;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}.report-section{margin-bottom:1.5rem}.report-section h3{font-size:1rem;margin:0 0 1rem;color:var(--text)}.task-rates{display:flex;flex-direction:column;gap:.75rem}.task-rate-item{background:#ffffff08;padding:.75rem;border-radius:8px}.task-rate-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.task-rate-name{font-size:.9rem;color:var(--text)}.task-rate-value{font-size:.9rem;font-weight:600}.task-rate-bar{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.task-rate-fill{height:100%;border-radius:3px;transition:width .5s ease}.report-footer{border-top:1px solid rgba(255,255,255,.1);padding-top:1rem;display:flex;flex-direction:column;gap:.5rem}.footer-stat{display:flex;justify-content:space-between;font-size:.85rem}.footer-stat span{color:var(--text2)}.footer-stat strong{color:var(--text)}.report-loading,.report-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;gap:1rem}.report-error button{background:var(--orange);color:#000;border:none;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-weight:500}.consistency-section{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1.5rem;background:#ffffff08;border-radius:16px}.consistency-score-container{display:flex;justify-content:center}.consistency-ring{width:140px;height:140px;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative}.consistency-inner{width:110px;height:110px;border-radius:50%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center}.consistency-value{font-size:1.75rem;font-weight:700;color:var(--text)}.consistency-label{font-size:.75rem;color:var(--text2);text-transform:uppercase;letter-spacing:.5px}.tier-badge{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:20px;color:#000;font-weight:600}.tier-emoji{font-size:1.25rem}.tier-name{font-size:.9rem}.consistency-breakdown{display:flex;align-items:center;gap:1rem;margin-top:.5rem}.breakdown-item{display:flex;flex-direction:column;align-items:center}.breakdown-value{font-size:1.5rem;font-weight:700;color:var(--text)}.breakdown-label{font-size:.7rem;color:var(--text2);text-transform:uppercase;letter-spacing:.3px}.breakdown-divider{font-size:1.5rem;color:var(--text2);font-weight:300}.tier-legend{background:#ffffff05;padding:1rem;border-radius:12px}.tier-list{display:flex;flex-direction:column;gap:.5rem}.tier-item{display:flex;align-items:center;gap:.75rem;padding:.4rem .6rem;border-radius:6px;font-size:.8rem;opacity:.6;transition:opacity .2s,background .2s}.tier-item.current{opacity:1;background:#ffffff0d}.tier-range{font-weight:600;min-width:55px}.tier-info{color:var(--text2)}
