*{box-sizing:border-box;margin:0;padding:0}html{background:#f5f5f5}body{min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background .25s,color .25s}button,input{font:inherit}button{cursor:pointer;border:none}body.light{color:#111;--background:#f5f5f5;--card:#fff;--input:#fff;--search:#e9e9e9;--text:#111;--secondary:#888;--border:#e8e8e8;--button:#111;--button-text:#fff;--soft-button:#eee;--progress-background:#e2e2e2;--progress:#111;background:#f5f5f5}body.dark{color:#f5f5f5;--background:#111214;--card:#1b1c20;--input:#1b1c20;--search:#24252a;--text:#f5f5f5;--secondary:#999ba1;--border:#2a2b30;--button:#f5f5f5;--button-text:#111214;--soft-button:#292a2f;--progress-background:#2b2c31;--progress:#f5f5f5;background:#111214}.app{width:100%;max-width:520px;min-height:100vh;padding:24px 18px;padding-top:calc(24px + env(safe-area-inset-top));padding-bottom:calc(110px + env(safe-area-inset-bottom));margin:0 auto;position:relative;overflow-x:hidden}.app:before,.app:after{content:"";pointer-events:none;filter:blur(65px);opacity:.11;z-index:-1;border-radius:50%;width:220px;height:220px;position:fixed}.app:before{background:#8b5cf6;top:-80px;right:-80px}.app:after{background:#3b82f6;bottom:80px;left:-100px}body.dark .app:before,body.dark .app:after{opacity:.08}.app-header{justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 0 12px;display:flex}.brand{align-items:center;gap:11px;display:flex}.brand-logo{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:43px;height:43px;font-size:19px;font-weight:800;display:flex;box-shadow:0 8px 22px #7c3aed38}.brand h1{letter-spacing:-.4px;margin:0;font-size:20px;font-weight:750}.brand span{color:var(--secondary);margin-top:2px;font-size:12px;display:block}.theme-button{border:1px solid var(--border);background:var(--card);width:42px;height:42px;color:var(--text);cursor:pointer;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .2s,background .2s;display:flex}.theme-button:active{transform:scale(.92)}.welcome-section{padding:18px 0 10px}.small-label{color:var(--secondary);text-transform:uppercase;letter-spacing:.08em;margin:0 0 5px;font-size:11px;font-weight:750}.welcome-section h2,.page-intro h2{letter-spacing:-.6px;margin:0;font-size:27px;line-height:1.15}.welcome-description,.page-intro p{color:var(--secondary);margin:7px 0 0;font-size:14px;line-height:1.5}.progress-card{border:1px solid var(--border);background:var(--card);border-radius:20px;margin:15px 0;padding:17px;box-shadow:0 10px 35px #00000009}.progress-top{justify-content:space-between;align-items:flex-end;gap:15px;display:flex}.progress-top div{flex-direction:column;gap:3px;display:flex}.progress-top div span{color:var(--secondary);font-size:12px}.progress-top strong{font-size:24px}.progress-top>span{color:var(--secondary);font-size:12px}.progress-bar{background:var(--progress-background);border-radius:99px;width:100%;height:7px;margin-top:13px;overflow:hidden}.progress-fill{border-radius:inherit;background:var(--progress);height:100%;transition:width .4s}.search-box{background:var(--search);height:48px;color:var(--secondary);border:1px solid #0000;border-radius:16px;align-items:center;gap:9px;margin:18px 0;padding:0 14px;display:flex}.search-box:focus-within{border-color:var(--border)}.search-box input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-size:14px}.search-box input::placeholder{color:var(--secondary)}.clear-search{color:var(--secondary);cursor:pointer;background:0 0;border:0;font-size:20px}.tasks-section,.history-page,.account-page{padding:4px 0 20px}.section-heading{margin-bottom:12px}.section-heading h3{margin:0;font-size:18px}.task-list{flex-direction:column;gap:12px;display:flex}.task{background:var(--card);border:1px solid var(--border);border-radius:17px;align-items:flex-start;gap:12px;width:100%;padding:16px;display:flex;box-shadow:0 2px 7px #00000008}.check-button{width:28px;height:28px;color:var(--secondary);background:0 0;flex-shrink:0;justify-content:center;align-items:center;display:flex}.check-circle{background:var(--button);width:24px;height:24px;color:var(--button-text);border-radius:50%;justify-content:center;align-items:center;display:flex}.task-content{flex:1;justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}.task-text{min-width:0;color:var(--text);word-break:break-word;flex:1;font-size:16px;line-height:1.4}.completed .task-text{color:var(--secondary);text-decoration:line-through}.task-actions{flex-shrink:0;gap:7px;display:flex}.action-button{border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex}.action-button:active{transform:scale(.92)}.action-button.edit{background:var(--soft-button);color:var(--text)}.action-button.delete{background:var(--soft-button);color:var(--secondary)}.edit-container{gap:7px;width:100%;display:flex}.edit-container input{border:1px solid var(--border);background:var(--input);min-width:0;height:38px;color:var(--text);border-radius:10px;outline:none;flex:1;padding:0 11px}.edit-action{border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.edit-action.save{background:var(--button);color:var(--button-text)}.edit-action.cancel{background:var(--soft-button);color:var(--text)}.empty-state{border:1px dashed var(--border);text-align:center;background:var(--card);border-radius:20px;padding:38px 20px}.empty-icon{background:var(--soft-button);width:48px;height:48px;color:var(--text);border-radius:15px;justify-content:center;align-items:center;margin:0 auto 12px;display:flex}.empty-state h3{margin:0;font-size:16px}.empty-state p{color:var(--secondary);margin:6px 0 0;font-size:13px}.add-task-button{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#9333ea);border:0;border-radius:17px;justify-content:center;align-items:center;gap:8px;width:100%;height:52px;margin:8px 0 0;font-size:14px;font-weight:700;transition:transform .15s,box-shadow .2s;display:flex;box-shadow:0 10px 25px #7c3aed38}.add-task-button:active{transform:scale(.98)}.page-intro{padding:20px 0 22px}.history-list{flex-direction:column;gap:24px;display:flex}.history-group{flex-direction:column;gap:9px;display:flex}.history-date{color:var(--secondary);font-size:13px;font-weight:700}.account-card{border:1px solid var(--border);background:var(--card);border-radius:20px;align-items:center;gap:14px;padding:17px;display:flex;box-shadow:0 10px 35px #00000009}.account-avatar{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:17px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.account-info{flex-direction:column;gap:4px;min-width:0;display:flex}.account-info span{color:var(--secondary);font-size:12px}.account-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.logout-button{border:1px solid var(--border);background:var(--card);color:#d64545;cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:9px;width:100%;height:50px;margin-top:15px;font-size:14px;font-weight:650;display:flex}.logout-button:active{transform:scale(.98)}.bottom-nav{z-index:9999;width:calc(100% - 24px);max-width:484px;height:auto;min-height:68px;padding:7px;padding-bottom:calc(7px + env(safe-area-inset-bottom));box-sizing:border-box;border:1px solid var(--border);background:var(--card);-webkit-backdrop-filter:blur(18px);border-radius:22px;justify-content:space-around;align-items:center;gap:4px;display:flex;position:fixed;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 14px 40px #00000024}.bottom-nav button{width:100%;min-width:0;height:52px;color:var(--secondary);cursor:pointer;background:0 0;border:0;border-radius:17px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:10px;font-weight:650;transition:background .2s,color .2s,transform .15s;display:flex}.bottom-nav button.active{background:var(--soft-button);color:var(--text)}.bottom-nav button:active{transform:scale(.94)}.auth-loading{z-index:99999;background:var(--background);color:var(--text);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.auth-loading-content{z-index:2;flex-direction:column;align-items:center;display:flex;position:relative}.auth-loading-logo{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:21px;justify-content:center;align-items:center;width:64px;height:64px;font-size:27px;font-weight:800;animation:1.4s ease-in-out infinite loadingPulse;display:flex;box-shadow:0 18px 45px #7c3aed40}.auth-loading h1{letter-spacing:-.5px;margin:15px 0 0;font-size:24px}.auth-loading p{color:var(--secondary);margin:5px 0 13px;font-size:13px}.auth-loading-spinner{border:2px solid var(--border);border-top-color:#7c3aed;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite loadingSpin}.auth-loading-shape{filter:blur(65px);opacity:.15;border-radius:50%;position:absolute}.auth-loading-shape-one{background:#8b5cf6;width:220px;height:220px;top:-80px;right:-70px}.auth-loading-shape-two{background:#3b82f6;width:220px;height:220px;bottom:-90px;left:-80px}@keyframes loadingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes loadingSpin{to{transform:rotate(360deg)}}.auth-page{background:radial-gradient(circle at 10% 10%, #7c3aed38, transparent 32%), radial-gradient(circle at 90% 85%, #06b6d42e, transparent 32%), var(--background);justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:24px 18px;display:flex;position:relative;overflow:hidden}.auth-shape{filter:blur(1px);pointer-events:none;border-radius:50%;position:absolute}.auth-shape-one{opacity:.8;background:linear-gradient(135deg,#7c3aed,#a855f7);width:190px;height:190px;top:-80px;right:-60px}.auth-shape-two{opacity:.75;background:linear-gradient(135deg,#06b6d4,#3b82f6);width:130px;height:130px;bottom:-50px;left:-40px}.auth-shape-three{opacity:.65;background:#f59e0b;width:55px;height:55px;top:24%;left:8%}.auth-card{z-index:2;-webkit-backdrop-filter:blur(22px);background:#ffffffd1;border:1px solid #ffffffb3;border-radius:30px;width:100%;max-width:430px;padding:30px 24px 22px;position:relative;box-shadow:0 30px 80px #00000026,0 8px 30px #7c3aed14}body.dark .auth-card{background:#1b1c20d1;border-color:#ffffff14;box-shadow:0 30px 80px #00000080,0 8px 30px #7c3aed1f}.auth-brand{align-items:center;gap:10px;margin-bottom:32px;display:flex}.auth-brand span{color:var(--text);letter-spacing:-.4px;font-size:18px;font-weight:800}.auth-logo{color:#fff;background:linear-gradient(135deg,#7c3aed,#a855f7);border-radius:14px;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;font-weight:800;display:flex;box-shadow:0 8px 20px #7c3aed4d}.auth-heading{margin-bottom:28px}.auth-small-title{letter-spacing:1.6px;color:#7c3aed;margin-bottom:10px;font-size:11px;font-weight:800;display:inline-block}.auth-heading h1{color:var(--text);letter-spacing:-1.2px;margin:0;font-size:32px;line-height:1.08}.auth-heading p{color:var(--secondary);margin:12px 0 0;font-size:14px;line-height:1.55}.auth-form{margin-top:0}.auth-field+.auth-field{margin-top:18px}.auth-field label{letter-spacing:1.1px;color:var(--secondary);margin-bottom:8px;font-size:10px;font-weight:800;display:block}.auth-field input{border:1px solid var(--border);background:var(--input);width:100%;height:54px;color:var(--text);border-radius:15px;outline:none;padding:0 16px;font-size:15px;transition:border-color .2s,box-shadow .2s,transform .2s}.auth-field input::placeholder{color:var(--secondary);opacity:.7}.auth-field input:focus{border-color:#8b5cf6;transform:translateY(-1px);box-shadow:0 0 0 4px #8b5cf61f}.password-wrapper{position:relative}.password-wrapper input{padding-right:55px}.password-toggle{width:42px;height:42px;color:var(--secondary);cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle:hover{background:var(--soft-button);color:var(--text)}.auth-error{color:#dc2626;background:#ef44441a;border-radius:13px;margin-top:16px;padding:12px 14px;font-size:13px;line-height:1.4}.auth-submit{color:#fff;cursor:pointer;background:linear-gradient(135deg,#7c3aed,#9333ea);border:0;border-radius:16px;justify-content:center;align-items:center;gap:10px;width:100%;height:56px;margin-top:22px;font-size:15px;font-weight:750;transition:transform .15s,box-shadow .15s,opacity .15s;display:flex;box-shadow:0 10px 25px #7c3aed47}.auth-submit:active{transform:scale(.98)}.auth-submit:hover{box-shadow:0 14px 30px #7c3aed5c}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch-container{text-align:center;color:var(--secondary);margin-top:24px;font-size:13px}.auth-switch{color:#7c3aed;cursor:pointer;background:0 0;border:0;margin-left:5px;padding:0;font-size:13px;font-weight:800}.auth-switch:hover{text-decoration:underline}.auth-footer{border-top:1px solid var(--border);text-align:center;color:var(--secondary);margin-top:22px;padding-top:18px;font-size:11px}.auth-theme-button{border:1px solid var(--border);background:var(--soft-button);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;display:flex;position:absolute;top:22px;right:22px}.auth-theme-button:active{transform:scale(.95)}@media (width<=380px){.app{padding-left:14px;padding-right:14px}.bottom-nav{border-radius:20px;width:calc(100% - 20px);bottom:10px}.bottom-nav button{border-radius:15px;height:50px}.auth-card{border-radius:25px;padding:25px 19px 20px}.auth-heading h1{font-size:28px}.auth-page{padding:16px}}.add-task-button{z-index:10000;pointer-events:auto;cursor:pointer;position:relative}.edit-container{align-items:center;gap:8px;display:flex}.edit-container input{flex:1}.add-confirm-button,.add-cancel-button{cursor:pointer;border:none;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.add-confirm-button{color:#fff;background:#7c3aed}.add-cancel-button{background:var(--card);color:var(--text);border:1px solid var(--border)}.add-confirm-button:active,.add-cancel-button:active{transform:scale(.95)}.history-calendar{border:1px solid var(--border);background:var(--card);border-radius:22px;margin:0 0 24px;padding:15px 10px 13px;box-shadow:0 10px 35px #00000009}.history-calendar-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.history-calendar-title{min-width:0;color:var(--text);text-align:center;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:750;display:flex}.history-calendar-title span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.history-calendar-arrow{border:1px solid var(--border);background:var(--soft-button);width:38px;height:38px;color:var(--text);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:transform .15s,background .2s;display:flex}.history-calendar-arrow:active{transform:scale(.92)}.history-calendar-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.history-calendar-day{min-width:0;color:var(--secondary);cursor:pointer;background:0 0;border:0;border-radius:16px;flex-direction:column;align-items:center;gap:5px;padding:4px 1px 0;transition:background .2s,color .2s,transform .15s;display:flex}.history-calendar-day:active{transform:scale(.96)}.history-calendar-day.selected{background:var(--soft-button);color:var(--text)}.history-calendar-day.today .history-calendar-weekday{color:#7c3aed}.history-calendar-weekday{text-transform:uppercase;justify-content:center;align-items:center;height:18px;font-size:11px;font-weight:800;display:flex}.history-calendar-circle{justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:relative}.history-calendar-circle svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.history-calendar-circle-bg,.history-calendar-circle-progress{fill:none;stroke-width:5px}.history-calendar-circle-bg{stroke:var(--progress-background)}.history-calendar-circle-progress{stroke:#7c3aed;stroke-linecap:round;transition:stroke-dashoffset .35s}.history-calendar-circle strong{z-index:1;color:var(--text);font-size:13px;font-weight:750;position:relative}.history-calendar-count{min-height:12px;color:var(--secondary);font-size:9px;font-weight:700;line-height:12px}.history-selected-heading{justify-content:space-between;align-items:flex-end;gap:12px;margin:4px 0 13px;display:flex}.history-selected-heading h3{margin:0;font-size:17px;line-height:1.25}.history-selected-heading>span{color:var(--secondary);flex-shrink:0;font-size:11px;font-weight:650}@media (width<=380px){.history-calendar{padding-left:7px;padding-right:7px}.history-calendar-circle{width:43px;height:43px}.history-calendar-circle strong{font-size:12px}.history-calendar-days{gap:1px}}
