@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600&display=swap";:root{font-family:Outfit,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background:radial-gradient(circle at top right,#1a1a2e,#16213e,#0f3460);background-attachment:fixed;min-height:100vh}body{margin:0;display:flex;justify-content:center;padding:20px 10px}#root{width:100%;max-width:600px}h1{font-size:clamp(2rem,8vw,3.5rem);background:linear-gradient(135deg,#00d2ff,#3a7bd5);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:2rem;font-weight:600;text-align:center}.app-header{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2rem}.stats-trigger{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:8px 16px;border-radius:20px;cursor:pointer;transition:all .3s ease;font-weight:600;font-size:.9rem}.stats-trigger:hover{background:#3a7bd54d;border-color:#3a7bd5;transform:translateY(-2px)}.main-layout{display:flex;flex-direction:column;gap:20px;align-items:center;width:100%}.calendar-section{width:100%;box-sizing:border-box;background:#ffffff0d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:1.5rem 1rem;box-shadow:0 15px 35px #0006}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.calendar-header h2{margin:0;font-weight:600;font-size:clamp(1.1rem,4vw,1.5rem)}.calendar-header button{background:#ffffff1a;border:none;color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;transition:all .3s ease;font-size:1.1rem;display:flex;align-items:center;justify-content:center}.calendar-header button:hover{background:#3a7bd5;transform:scale(1.1)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.weekday{text-align:center;font-weight:600;color:#ffffff80;padding-bottom:8px;font-size:.8rem}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:10px;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;background:#ffffff05;border:1px solid transparent;font-size:.9rem}.calendar-day:hover:not(.empty){background:#ffffff1a;border-color:#3a7bd580}.calendar-day.selected{background:linear-gradient(135deg,#00d2ff,#3a7bd5);color:#fff;box-shadow:0 8px 15px #3a7bd566}.calendar-day.today{border:1px solid #00d2ff}.task-dot{width:4px;height:4px;background:#00d2ff;border-radius:50%;position:absolute;bottom:6px}.selected .task-dot{background:#fff}.todo-section{width:100%;display:flex;flex-direction:column;gap:15px}.todo-section h3{margin:0;font-size:clamp(1.1rem,4vw,1.4rem);color:#00d2ff;font-weight:600;padding:0 5px}.todo-container{background:#ffffff08;border-radius:20px;padding:1.5rem 1rem;border:1px solid rgba(255,255,255,.05)}.stats{text-align:right;font-size:.75rem;opacity:.6;margin-bottom:1rem}.input-wrapper{position:relative;margin-bottom:1.5rem}.input-group{display:flex;gap:8px}input{flex:1;padding:12px 15px;border-radius:12px;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#fff;font-size:.95rem;transition:all .3s ease;min-width:0}input:focus{outline:none;border-color:#3a7bd5;box-shadow:0 0 15px #3a7bd533}.add-btn{padding:0 16px;border-radius:12px;border:none;background:linear-gradient(135deg,#00d2ff,#3a7bd5);color:#fff;font-weight:600;cursor:pointer;transition:all .3s ease;font-size:.9rem;white-space:nowrap}.suggestions-list{position:absolute;top:100%;left:0;right:0;background:#141e30fa;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid rgba(255,255,255,.1);border-radius:12px;margin-top:8px;padding:6px 0;list-style:none;z-index:1000;max-height:150px;overflow-y:auto;box-shadow:0 15px 30px #00000080}.suggestion-item{padding:10px 15px;cursor:pointer;font-size:.9rem;color:#ffffffb3;text-align:left}.suggestion-item:hover{background:#3a7bd533;color:#fff}.todo-list{list-style:none;padding:0;margin:0}.todo-item{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;background:#ffffff08;border-radius:12px;margin-bottom:10px;border:1px solid transparent;animation:slideIn .4s ease-out forwards;touch-action:none}.todo-item.dragging{background:#3a7bd533;border:1px solid rgba(58,123,213,.4);box-shadow:0 10px 20px #0000004d;z-index:1000}.drag-handle{cursor:grab;color:#ffffff4d;font-size:1.1rem;padding:0 5px;margin-right:8px;-webkit-user-select:none;user-select:none}.todo-content{display:flex;align-items:center;gap:12px;flex:1;cursor:pointer;text-align:left;min-width:0}.todo-content span{font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkbox{width:20px;height:20px;border:2px solid rgba(255,255,255,.2);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.checkbox.checked{background:#00d2ff;border-color:#00d2ff;color:#fff}.todo-item.completed span{text-decoration:line-through;opacity:.5}.delete-btn{background:#ff2e631a;border:none;color:#ff2e63;padding:6px 10px;border-radius:8px;font-size:.8rem;margin-left:10px}.modal-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:20px}.modal-content{background:#1a1a2e;width:100%;max-width:500px;border-radius:25px;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px #00000080;padding:2rem;animation:modalFadeIn .3s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.modal-header h2{margin:0;font-size:1.5rem;background:linear-gradient(135deg,#00d2ff,#3a7bd5);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.close-btn{background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;opacity:.5;transition:.3s}.close-btn:hover{opacity:1}.modal-scroll-area{max-height:60vh;overflow-y:auto;padding-right:10px;margin:-1rem 0;padding:1rem 0}.modal-scroll-area::-webkit-scrollbar{width:4px}.modal-scroll-area::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.stats-summary{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.stat-card{background:#ffffff0d;padding:1.5rem;border-radius:20px;text-align:center}.stat-label{display:block;font-size:.9rem;opacity:.6;margin-bottom:.5rem}.stat-value{display:block;font-size:2.5rem;font-weight:700;color:#00d2ff;margin-bottom:1rem}.progress-bar-bg{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#00d2ff,#3a7bd5);transition:width .5s ease-out}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.stat-mini-card{background:#ffffff08;padding:1rem;border-radius:15px;text-align:center}.mini-label{display:block;font-size:.8rem;opacity:.5;margin-bottom:.3rem}.mini-value{font-size:1.2rem;font-weight:600}.daily-stats-section{margin-bottom:2.5rem}.daily-stats-section h3{font-size:1.1rem;margin-bottom:1rem;opacity:.8}.daily-chart{display:flex;align-items:flex-end;gap:8px;height:120px;padding:10px 0;overflow-x:auto;border-bottom:1px solid rgba(255,255,255,.1)}.chart-bar-container{display:flex;flex-direction:column;align-items:center;flex:0 0 30px}.chart-bar-wrap{width:12px;height:100px;background:#ffffff0d;border-radius:6px;display:flex;align-items:flex-end;position:relative}.chart-bar{width:100%;background:#3a7bd5;border-radius:6px;transition:height .5s ease-out}.bar-tooltip{position:absolute;top:-25px;left:50%;transform:translate(-50%);font-size:.7rem;background:#3a7bd5;padding:2px 4px;border-radius:4px;opacity:0;transition:.3s}.chart-bar-wrap:hover .bar-tooltip{opacity:1}.bar-label{margin-top:8px;font-size:.7rem;opacity:.4}.remaining-tasks-section h3{font-size:1.1rem;margin-bottom:1.5rem;color:#ff4e50;display:flex;align-items:center;gap:8px}.remaining-list{display:flex;flex-direction:column;gap:1.2rem}.remaining-group{background:#ffffff08;padding:1rem;border-radius:15px;border-left:3px solid #ff4e50}.remaining-day-label{font-size:.85rem;font-weight:600;color:#ffffff80;margin-bottom:.6rem}.remaining-items{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.remaining-items li{font-size:.95rem;color:#fffc;padding-left:12px;position:relative}.remaining-items li:before{content:"•";position:absolute;left:0;color:#ff4e50}.modal-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.05);display:flex;gap:12px;justify-content:center}.test-notify-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#fff;padding:12px 20px;border-radius:12px;font-weight:600;cursor:pointer;transition:.3s;font-size:.9rem}.test-notify-btn:hover{background:#ffffff1f;border-color:#fff3}.action-btn{background:linear-gradient(135deg,#00d2ff,#3a7bd5);border:none;color:#fff;padding:12px 40px;border-radius:12px;font-weight:600;cursor:pointer;transition:.3s}.header-actions{display:flex;gap:10px;align-items:center}.google-login-btn,.google-logout-btn{padding:8px 16px;border-radius:20px;font-size:.85rem;font-weight:600;cursor:pointer;transition:.3s;display:flex;align-items:center;gap:6px}.google-login-btn{background:#fff;color:#444;border:1px solid #ddd}.google-login-btn:hover{background:#f8f8f8;box-shadow:0 2px 8px #0000001a}.google-logout-btn{background:#ffffff0d;color:#ffffffb3;border:1px solid rgba(255,255,255,.1)}.sync-month-btn{background:linear-gradient(135deg,#fbc2eb,#a6c1ee);color:#444;border:none;padding:8px 16px;border-radius:20px;font-size:.85rem;font-weight:600;cursor:pointer;transition:.3s;display:flex;align-items:center;gap:6px}.sync-month-btn:hover{transform:translateY(-2px);box-shadow:0 4px 15px #a6c1ee66}.sync-month-btn:disabled{opacity:.5;cursor:not-allowed}.todo-actions{display:flex;gap:8px;align-items:center}.sync-calendar-btn{background:none;border:none;font-size:1.1rem;cursor:pointer;padding:4px;border-radius:6px;transition:.2s;opacity:.8}.sync-calendar-btn:hover{opacity:1;background:#ffffff26;transform:scale(1.1)}@keyframes slideIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}
