@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:Nunito,sans-serif;background:#f0eefb;color:#2d2b55;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:Nunito,sans-serif;cursor:pointer}input,select{font-family:Nunito,sans-serif}.app{min-height:100vh;padding:20px}.layout{display:grid;grid-template-columns:320px 1fr 270px;gap:16px;max-width:1440px;margin:0 auto;height:calc(100vh - 40px)}.left-panel,.center-panel,.right-panel{display:flex;flex-direction:column;gap:14px;overflow:hidden}.task-tabs{display:flex;gap:4px;background:#f5f3ff;border-radius:12px;padding:4px;margin-bottom:16px;flex-shrink:0}.task-tab{flex:1;padding:7px 0;border:none;border-radius:9px;background:transparent;font-size:12px;font-weight:700;color:#9b99b5;cursor:pointer;transition:all .18s}.task-tab.active{background:#fff;color:#7c5cbf;box-shadow:0 2px 8px #7c5cbf26}.weekly-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1}.weekly-list::-webkit-scrollbar{width:4px}.weekly-list::-webkit-scrollbar-thumb{background:#e8e4f3;border-radius:4px}.weekly-day{padding:10px 12px;border-radius:12px;border:1.5px solid #F0EEF8;background:#fafafa;cursor:pointer;transition:all .15s}.weekly-day:hover{border-color:#e0daf5;box-shadow:0 2px 8px #7c5cbf14}.weekly-today{background:#f5f2ff;border-color:#c4b5fd!important}.weekly-selected{border-color:#7c5cbf!important;box-shadow:0 0 0 2px #7c5cbf1f!important}.weekly-day-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.weekly-day-name{font-size:12px;font-weight:800;color:#2d2b55;flex:1}.weekly-day-name.sunday{color:#f76b8a}.weekly-day-name.saturday{color:#4f8ef7}.weekly-day-date{font-size:11px;color:#b0adca;font-weight:600}.weekly-count{font-size:11px;font-weight:700;color:#7c5cbf;background:#ede9fe;padding:2px 7px;border-radius:10px}.weekly-empty{font-size:11px;color:#d0cde8;font-weight:600}.weekly-tasks{display:flex;flex-direction:column;gap:4px}.weekly-task-item{display:flex;align-items:center;gap:6px}.weekly-task-item.completed .weekly-task-text{text-decoration:line-through;color:#b0adca}.weekly-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.weekly-task-text{font-size:12px;font-weight:600;color:#3d3b6b;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-more{font-size:11px;color:#a78bfa;font-weight:700;padding-left:13px}.monthly-summary{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#f8f7ff;border-radius:12px;margin-bottom:12px;flex-wrap:wrap;flex-shrink:0}.monthly-stat{display:flex;flex-direction:column;align-items:center;gap:2px}.monthly-stat-num{font-size:20px;font-weight:800;color:#2d2b55;line-height:1}.monthly-stat-label{font-size:10px;font-weight:700;color:#b0adca}.monthly-progress-wrap{flex:1;display:flex;flex-direction:column;gap:4px;min-width:80px}.monthly-pct{font-size:11px;font-weight:700;color:#7c5cbf;text-align:right}.monthly-cats{display:flex;flex-direction:column;gap:7px;margin-bottom:6px;flex-shrink:0}.monthly-cat-row{display:flex;align-items:center;gap:8px}.monthly-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.monthly-cat-name{font-size:12px;font-weight:700;color:#2d2b55;width:36px;flex-shrink:0}.monthly-cat-bar-wrap{flex:1}.monthly-cat-bar{height:6px;background:#f0eef8;border-radius:4px;overflow:hidden}.monthly-cat-fill{height:100%;border-radius:4px;transition:width .4s ease}.monthly-cat-count{font-size:11px;font-weight:700;width:30px;text-align:right;flex-shrink:0}.monthly-day-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1.5px solid #F0EEF8;background:#fafafa;cursor:pointer;transition:all .15s}.monthly-day-row:hover{border-color:#e0daf5}.monthly-day-label{font-size:12px;font-weight:700;color:#2d2b55;width:72px;flex-shrink:0}.monthly-day-label.sunday{color:#f76b8a}.monthly-day-label.saturday{color:#4f8ef7}.monthly-day-dots{display:flex;gap:3px;flex:1}.monthly-day-dot{width:8px;height:8px;border-radius:50%}.monthly-day-count{font-size:11px;font-weight:700;color:#7c5cbf}.task-panel{background:#fff;border-radius:20px;padding:22px 20px;box-shadow:0 4px 24px #7c5cbf14;display:flex;flex-direction:column;height:100%;overflow:hidden}.task-panel-header{margin-bottom:16px}.task-panel-header h2{font-size:18px;font-weight:800;color:#2d2b55}.task-date{font-size:12px;color:#9b99b5;margin-top:3px;display:block;font-weight:600}.add-task-form{display:flex;gap:8px;margin-bottom:12px}.category-select{padding:8px;border:1.5px solid #E8E4F3;border-radius:10px;font-size:12px;color:#2d2b55;background:#fafafa;outline:none;flex-shrink:0;max-width:80px;cursor:pointer;transition:border-color .2s}.category-select:focus{border-color:#a78bfa}.task-input{flex:1;padding:8px 12px;border:1.5px solid #E8E4F3;border-radius:10px;font-size:13px;color:#2d2b55;background:#fafafa;outline:none;transition:border-color .2s;min-width:0}.task-input:focus{border-color:#a78bfa;background:#fff}.task-input::placeholder{color:#c0bdda}.add-btn{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#7c5cbf,#a78bfa);color:#fff;border:none;font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s;flex-shrink:0;line-height:1;padding-bottom:2px}.add-btn:hover{transform:scale(1.08);box-shadow:0 4px 14px #7c5cbf73}.task-stats{display:flex;align-items:center;gap:8px;margin-bottom:12px}.stat-badge{font-size:11px;font-weight:700;color:#9b99b5;background:#f5f3ff;padding:3px 10px;border-radius:20px}.done-badge{color:#4ecba9;background:#edfaf7}.progress-bar{flex:1;height:5px;background:#f0eef8;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#7c5cbf,#a78bfa);border-radius:4px;transition:width .4s ease}.task-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:2px}.task-list::-webkit-scrollbar{width:4px}.task-list::-webkit-scrollbar-track{background:transparent}.task-list::-webkit-scrollbar-thumb{background:#e8e4f3;border-radius:4px}.no-tasks{text-align:center;color:#c0bdda;font-size:14px;padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:8px}.no-tasks span{font-size:32px}.no-tasks p{font-weight:600}.task-item{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#fafafa;border-radius:12px;border:1.5px solid #F0EEF8;transition:all .2s;position:relative;overflow:hidden}.task-item:hover{border-color:#e0daf5;box-shadow:0 2px 10px #7c5cbf14}.task-item.completed{opacity:.55;background:#f7f6fc}.task-color-bar{width:4px;align-self:stretch;border-radius:4px;flex-shrink:0}.task-checkbox{width:17px;height:17px;cursor:pointer;accent-color:#7C5CBF;flex-shrink:0}.task-content{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.task-text{font-size:13px;font-weight:700;color:#2d2b55;line-height:1.3;word-break:break-word}.task-item.completed .task-text{text-decoration:line-through;color:#b0adca}.task-category-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:800;width:fit-content;letter-spacing:.02em}.delete-btn{width:24px;height:24px;border-radius:50%;background:transparent;border:none;color:#d0cde8;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;padding:0;line-height:1}.delete-btn:hover{background:#ffe8ec;color:#f76b8a}.calendar-panel{background:#fff;border-radius:20px;padding:22px 20px;box-shadow:0 4px 24px #7c5cbf14;display:flex;flex-direction:column;height:100%;overflow:hidden}.calendar-header{display:flex;align-items:center;margin-bottom:16px;gap:10px}.calendar-header h2{flex:1;text-align:center;font-size:17px;font-weight:800;color:#2d2b55}.nav-btn{width:34px;height:34px;border-radius:10px;background:#f0eefb;border:none;font-size:20px;cursor:pointer;color:#7c5cbf;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;line-height:1}.nav-btn:hover{background:#7c5cbf;color:#fff;box-shadow:0 2px 8px #7c5cbf4d}.settings-btn{width:34px;height:34px;border-radius:10px;background:#f0eefb;border:none;font-size:17px;cursor:pointer;color:#7c5cbf;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.settings-btn:hover{background:#7c5cbf;color:#fff;box-shadow:0 2px 8px #7c5cbf4d}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;flex:1}.day-header{text-align:center;font-size:11px;font-weight:800;color:#b0adca;padding:6px 0;letter-spacing:.05em}.day-header.sunday{color:#f76b8a}.day-header.saturday{color:#4f8ef7}.day-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:6px;border-radius:12px;cursor:pointer;transition:background .15s;position:relative;gap:2px;min-height:52px}.day-cell:hover:not(.empty){background:#f5f2ff}.day-cell.empty{cursor:default}.day-num{font-size:13px;font-weight:700;color:#2d2b55;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .15s}.day-cell.sunday .day-num{color:#f76b8a}.day-cell.saturday .day-num{color:#4f8ef7}.day-cell.today .day-num{background:linear-gradient(135deg,#7c5cbf,#a78bfa);color:#fff!important;box-shadow:0 3px 10px #7c5cbf66}.day-cell.selected:not(.today) .day-num{background:#f0eefb;border:2px solid #A78BFA;color:#7c5cbf}.day-sticker{font-size:13px;line-height:1}.todo-dots{display:flex;gap:2px;justify-content:center;flex-wrap:wrap;max-width:32px}.todo-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0}.date-display{background:linear-gradient(135deg,#7c5cbf,#a78bfa);border-radius:20px;padding:20px 22px;color:#fff;box-shadow:0 6px 24px #7c5cbf59;position:relative;overflow:hidden}.date-display:before{content:"";position:absolute;top:-20px;right:-20px;width:100px;height:100px;background:#ffffff14;border-radius:50%}.date-display:after{content:"";position:absolute;bottom:-30px;left:-10px;width:80px;height:80px;background:#ffffff0d;border-radius:50%}.date-day{font-size:13px;font-weight:700;opacity:.8;position:relative;z-index:1}.date-main{display:flex;align-items:baseline;gap:6px;margin-top:2px;position:relative;z-index:1}.date-month{font-size:18px;font-weight:700}.date-num{font-size:52px;font-weight:800;line-height:1}.date-year{font-size:12px;opacity:.65;margin-top:2px;position:relative;z-index:1;font-weight:600}.quote-card{background:linear-gradient(135deg,#fdf6ff,#f0f4ff);border-radius:18px;padding:16px;border:1.5px solid #E8E4F3;box-shadow:0 2px 12px #7c5cbf12}.quote-header{display:flex;align-items:center;gap:6px;margin-bottom:10px}.quote-icon{font-size:14px}.quote-title{flex:1;font-size:12px;font-weight:800;color:#7c5cbf;letter-spacing:.04em}.quote-refresh{width:24px;height:24px;border-radius:50%;background:#ede9fe;border:none;color:#7c5cbf;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}.quote-refresh:hover:not(:disabled){background:#7c5cbf;color:#fff;transform:rotate(180deg)}.quote-refresh:disabled{opacity:.5;cursor:default}.quote-body{display:flex;flex-direction:column;gap:8px}.quote-message{font-size:12px;font-weight:600;color:#3d3b6b;line-height:1.65;word-break:keep-all}.quote-author{font-size:11px;font-weight:700;color:#9b99b5}.quote-profile{font-weight:500;color:#b8b6ce}.quote-loading{font-size:12px;color:#b8b6ce;font-weight:600;text-align:center;padding:6px 0}.sticker-panel{background:#fff;border-radius:20px;padding:18px 16px;box-shadow:0 4px 24px #7c5cbf14;flex:1;overflow-y:auto;display:flex;flex-direction:column}.sticker-panel::-webkit-scrollbar{width:4px}.sticker-panel::-webkit-scrollbar-thumb{background:#e8e4f3;border-radius:4px}.sticker-panel h3{font-size:15px;font-weight:800;color:#2d2b55;margin-bottom:2px}.sticker-date{font-size:11px;color:#b0adca;font-weight:700;margin-bottom:12px}.current-sticker-area{background:#f8f7ff;border-radius:14px;padding:12px;text-align:center;margin-bottom:14px;min-height:70px;display:flex;align-items:center;justify-content:center}.current-sticker{display:flex;flex-direction:column;align-items:center;gap:4px}.current-emoji{font-size:36px}.current-label{font-size:12px;font-weight:700;color:#7c5cbf}.no-sticker{font-size:12px;color:#c0bdda;font-weight:600;line-height:1.6}.sticker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;flex:1}.sticker-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border-radius:12px;border:1.5px solid #F0EEF8;background:#fafafa;cursor:pointer;transition:all .15s}.sticker-btn:hover{border-color:#c4b5fd;background:#f5f2ff;transform:translateY(-2px);box-shadow:0 4px 12px #7c5cbf26}.sticker-btn.active{border-color:#7c5cbf;background:#ede9fe;box-shadow:0 0 0 2px #7c5cbf33}.sticker-emoji{font-size:22px}.sticker-label{font-size:10px;font-weight:700;color:#b0adca}.sticker-btn.active .sticker-label{color:#7c5cbf}.modal-overlay{position:fixed;inset:0;background:#2d2b5573;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:200;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:#fff;border-radius:24px;padding:28px;width:460px;max-width:90vw;box-shadow:0 20px 60px #2d2b5533;animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(16px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-header h2{font-size:18px;font-weight:800;color:#2d2b55}.modal-close{width:32px;height:32px;border-radius:50%;background:#f0eefb;border:none;font-size:18px;cursor:pointer;color:#7c5cbf;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0;line-height:1}.modal-close:hover{background:#7c5cbf;color:#fff}.modal-section h3{font-size:11px;font-weight:800;color:#b0adca;text-transform:uppercase;letter-spacing:.1em;margin-bottom:12px}.category-list{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;max-height:220px;overflow-y:auto}.category-list::-webkit-scrollbar{width:4px}.category-list::-webkit-scrollbar-thumb{background:#e8e4f3;border-radius:4px}.no-categories{text-align:center;color:#c0bdda;font-size:13px;padding:16px;font-weight:600}.category-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fafafa;border-radius:12px;border:1.5px solid #F0EEF8}.category-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.category-name{flex:1;font-size:14px;font-weight:700;color:#2d2b55}.delete-cat-btn{background:transparent;border:none;color:#d0cde8;font-size:17px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .15s;line-height:1}.delete-cat-btn:hover{background:#ffe8ec;color:#f76b8a}.add-category-form{display:flex;flex-direction:column;gap:12px}.cat-input{padding:10px 14px;border:1.5px solid #E8E4F3;border-radius:12px;font-size:14px;color:#2d2b55;outline:none;transition:border-color .2s;background:#fafafa}.cat-input:focus{border-color:#a78bfa;background:#fff}.cat-input::placeholder{color:#c0bdda}.color-picker{display:flex;gap:8px;flex-wrap:wrap}.color-swatch{width:28px;height:28px;border-radius:50%;border:2.5px solid transparent;cursor:pointer;transition:all .15s;padding:0}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:#2d2b55;box-shadow:0 0 0 2px #fff inset;transform:scale(1.2)}.add-cat-btn{padding:10px;background:linear-gradient(135deg,#7c5cbf,#a78bfa);color:#fff;border:none;border-radius:12px;font-size:14px;font-weight:700;cursor:pointer;transition:all .15s;letter-spacing:.02em}.add-cat-btn:hover{box-shadow:0 4px 14px #7c5cbf66;transform:translateY(-1px)}@media(max-width:960px){.layout{grid-template-columns:1fr;height:auto}.left-panel,.center-panel,.right-panel{overflow:visible}.task-panel,.calendar-panel,.sticker-panel{height:auto;min-height:300px}}
