:root{--bg: #F2EAEA;--panel: #FBF7F7;--menu: #EDE3E4;--text: #3D3336;--text-dim: #8A7B7E;--line: #E2D5D6;--accent: #B5654F;--accent-soft: #EBD9D4}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:224px minmax(0,1fr) 320px;min-height:100vh}.app--wide{grid-template-columns:224px minmax(0,1fr)}.sidebar{background:var(--menu);border-right:1px solid var(--line);padding:28px 16px}.brand{display:flex;align-items:baseline;gap:8px;padding:0 12px;margin-bottom:32px}.brand__name{font-size:16px;font-weight:600;letter-spacing:.01em}.brand__sub{font-size:12px;color:var(--text-dim)}.nav{display:flex;flex-direction:column;gap:4px}.nav__item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:10px;color:var(--text-dim);text-decoration:none;font-size:14px}.nav__item:hover{background:var(--accent-soft);color:var(--text)}.nav__item--active{background:var(--accent-soft);color:var(--text);font-weight:700}.nav__count{font-size:12px;font-weight:400;color:var(--text-dim)}.calendar{margin-top:24px;padding:0 4px}.calendar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.calendar__title{font-size:13px;font-weight:600;color:var(--text)}.calendar__nav{width:22px;height:22px;padding:0;background:none;border:0;border-radius:8px;font:inherit;font-size:15px;line-height:1;color:var(--text-dim);cursor:pointer}.calendar__nav:hover{background:var(--accent-soft);color:var(--text)}.calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar__weekday{padding-bottom:4px;font-size:10px;text-align:center;color:var(--text-dim)}.calendar__day{position:relative;height:26px;padding:0;background:none;border:0;border-radius:8px;font:inherit;font-size:12px;color:var(--text);cursor:pointer}.calendar__day:hover{background:var(--accent-soft)}.calendar__day--out{color:#c4b5b7}.calendar__day--today{box-shadow:inset 0 0 0 1px var(--accent)}.calendar__day--selected{background:var(--accent);color:#fff;box-shadow:none}.calendar__day--selected:hover{background:var(--accent)}.calendar__dot{position:absolute;left:50%;bottom:3px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--text-dim)}.calendar__dot--soft{width:3px;height:3px;margin-left:-1.5px;opacity:.45}.calendar__day--selected .calendar__dot{background:#fff}.calendar__today{width:100%;margin-top:10px;padding:7px;background:none;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:12px;color:var(--text-dim);cursor:pointer}.calendar__today:hover{background:var(--accent-soft);color:var(--text)}.main{padding:28px 32px 56px;min-width:0}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.topbar__date{font-size:25px;font-weight:700;letter-spacing:-.01em;margin:0}.topbar__weekday{margin:4px 0 0;font-size:13px;color:var(--text-dim)}.btn-add{border:0;background:var(--accent);color:#fff;font:inherit;font-size:14px;font-weight:600;padding:10px 20px;border-radius:10px;cursor:pointer}.btn-add:hover{background:#a25844}.ongoing{margin-top:16px;background:var(--panel);border-radius:12px;border-left:3px solid var(--accent);padding:16px;display:flex;align-items:center;justify-content:space-between;gap:20px}.ongoing__title{font-size:15px;font-weight:700}.ongoing__dates{margin-top:3px;font-size:13px;color:var(--text-dim)}.ongoing__progress{text-align:right;white-space:nowrap}.ongoing__day{font-size:13px;font-weight:700;color:var(--text)}.ongoing__bar{margin-top:8px;width:132px;height:4px;background:var(--line);border-radius:2px;overflow:hidden}.ongoing__bar i{display:block;height:100%;background:var(--accent)}.list{position:relative;margin-top:20px;background:var(--panel);border-radius:12px;padding:6px 0;overflow:hidden}.list:before{content:"";position:absolute;top:0;bottom:0;left:47px;width:1px;background:var(--line)}.list--empty:before{display:none}.task{display:flex;align-items:center;gap:12px;padding:7px 14px;border:2px solid transparent;border-radius:10px;cursor:pointer}.task__check{flex:0 0 22px;height:22px;padding:0;background:none;border:1px solid var(--line);border-radius:50%;cursor:pointer}.task__time{flex:0 0 46px;padding-left:12px;font-size:13px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.task__body{min-width:0;flex:1;display:flex;align-items:baseline;gap:10px}.task__name{font-size:15px}.task__cat,.task__due{flex:0 0 auto;font-size:11px;color:var(--text-dim)}.task__note{flex:0 0 auto;color:var(--text-dim);align-self:center}.task--next{border-color:var(--accent);padding-top:12px;padding-bottom:12px}.task--next .task__check{border-color:#d3bab3}.task--next .task__time{font-size:14px;font-weight:700;color:var(--text)}.task--next .task__name{font-size:17px;font-weight:700}.task--overdue .task__name{color:var(--text)}.task--overdue .task__time{color:var(--accent);font-weight:600}@keyframes task-leaving{0%{opacity:1}12%{opacity:.45}70%{opacity:.45}to{opacity:0}}.task--leaving{animation:task-leaving 1.3s ease forwards}.task--leaving .task__name{color:var(--text-dim);text-decoration:line-through}.task--leaving .task__check,.task--done .task__check{background:var(--accent-soft);border-color:var(--accent)}.task--done .task__name,.task--done .task__time,.task--done .task__cat{color:var(--text-dim)}.task--done .task__name{text-decoration:line-through}.group__children{padding:2px 16px 8px 96px}.subtask{display:flex;align-items:center;gap:12px;padding:5px 0 5px 14px;border-left:1px solid var(--line);cursor:pointer}.subtask__time{flex:0 0 46px;font-size:13px;font-variant-numeric:tabular-nums;color:var(--text-dim)}.subtask__name{font-size:14px;color:var(--text-dim)}.subtask--done .subtask__name{text-decoration:line-through}.aside{background:var(--panel);border-left:1px solid var(--line);padding:28px 20px}.aside__title{margin:0 0 12px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.card{padding:0;margin-bottom:16px;border-radius:12px}.card__date{font-size:13px;color:var(--text-dim)}.card__name{margin-top:2px;font-size:14px;line-height:1.45;color:var(--text)}.card--soon .card__date{color:var(--text);font-weight:600}.upcoming{margin-bottom:16px;cursor:pointer}.upcoming__name{font-size:14px;line-height:1.45}.upcoming__what{margin-top:2px;font-size:13px;color:var(--text-dim)}.deadline{display:flex;align-items:center;gap:10px;margin-bottom:16px;cursor:pointer}.deadline__name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px;line-height:1.45}.deadline__countdown{flex:0 0 auto;white-space:nowrap;font-size:13px}.deadline--far .deadline__name,.deadline--far .deadline__countdown{color:var(--text-dim)}.deadline--week .deadline__name,.deadline--week .deadline__countdown{color:var(--text)}.deadline--soon .deadline__name,.deadline--soon .deadline__countdown,.deadline--now .deadline__name,.deadline--now .deadline__countdown{color:var(--accent)}.deadline--now .deadline__name{font-weight:700}.done-toggle{display:flex;align-items:center;gap:8px;margin-top:12px;padding:9px 0;background:none;border:0;border-radius:10px;font:inherit;font-size:13px;color:var(--text-dim);cursor:pointer}.done-toggle:hover{color:var(--text)}.done-toggle__arrow{font-size:10px;line-height:1;transition:transform .15s ease}.done-toggle__arrow--open{transform:rotate(90deg)}.settings__row--toggle{width:100%;padding:0;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.settings__arrow{flex:0 0 auto;font-size:11px;line-height:1;color:var(--text-dim);transition:transform .15s ease}.settings__arrow--open{transform:rotate(90deg)}.settings__hint--indent{margin-top:14px}.list--done{margin-top:4px}.list--done .task__name,.list--done .task__time{color:var(--text-dim)}.list--done .task__name{text-decoration:line-through}.empty{padding:32px 16px;text-align:center}.empty__text{font-size:14px;color:var(--text-dim)}.empty__link{margin-top:8px;background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--accent);text-decoration:underline;cursor:pointer}.task--event{cursor:default}.task__emoji{flex:0 0 22px;font-size:15px;text-align:center}.app--wide .main{height:100vh;padding-bottom:28px;overflow:hidden}.month{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.month__head{display:flex;align-items:center;gap:10px;margin-bottom:20px}.month__title{margin:0;font-size:25px;font-weight:700;letter-spacing:-.01em}.month__controls{display:flex;align-items:center;gap:8px;margin-left:auto}.month__nav{width:30px;height:30px;padding:0;background:none;border:0;border-radius:10px;font:inherit;font-size:20px;line-height:1;color:var(--text-dim);cursor:pointer}.month__nav:hover{background:var(--accent-soft);color:var(--text)}.month__today{padding:8px 16px;background:none;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:13px;color:var(--text-dim);cursor:pointer}.month__today:hover{background:var(--accent-soft);color:var(--text)}.month__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;padding:0 1px;margin-bottom:6px}.month__weekday{padding-left:7px;font-size:11px;color:var(--text-dim)}.month__gridwrap{flex:1;min-height:0;overflow-y:auto}.month__grid{--cell-min: 70px;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(var(--cell-min),1fr);gap:1px;height:100%;min-height:calc(var(--rows) * var(--cell-min) + var(--rows) * 1px + 1px);background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.month__cell{display:flex;flex-direction:column;gap:3px;min-height:0;padding:6px;background:var(--panel);overflow:hidden;cursor:pointer}.month__cell--out{background:var(--bg)}.month__cell:hover{background:#f7f0f0}.month__cell--selected,.month__cell--selected:hover{background:var(--accent-soft)}.month__cell--selected .month__chip{background:var(--panel)}.month__date{align-self:flex-start;min-width:24px;height:22px;padding:0 6px;background:none;border:1px solid transparent;border-radius:8px;font:inherit;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text);cursor:pointer}.month__date:hover{background:var(--accent-soft)}.month__cell--out .month__date{color:#c4b5b7;font-weight:400}.month__date--today{border-color:var(--accent)}.month__entries{display:flex;flex-direction:column;flex:1;gap:3px;min-height:0}.month__cell--out .month__entries{opacity:.55}.month__chip{display:flex;align-items:center;flex:0 0 22px;gap:6px;width:100%;height:22px;padding:0 6px;background:var(--accent-soft);border:0;border-radius:6px;font:inherit;font-size:12px;line-height:1;color:var(--text);text-align:left;cursor:pointer;overflow:hidden}.month__chip:hover{filter:brightness(.96)}.month__chip-time{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--text-dim)}.month__chip-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.month__chip--overdue,.month__chip--overdue .month__chip-time{color:var(--accent)}.month__chip--event{background:#e4dcea;cursor:default}.month__chip--event:hover{filter:none}.month__more{flex:0 0 22px;height:22px;padding:0 6px;background:none;border:0;border-radius:6px;font:inherit;font-size:12px;line-height:22px;color:var(--text-dim);text-align:left;cursor:pointer}.month__more:hover{color:var(--text)}.app--panel .main{padding-right:392px}.daypanel{position:fixed;top:0;right:0;bottom:0;z-index:5;width:360px;padding:24px 20px 40px;background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;animation:daypanel-in .18s ease}@keyframes daypanel-in{0%{transform:translate(100%)}to{transform:translate(0)}}@media(prefers-reduced-motion:reduce){.daypanel{animation:none}}.daypanel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.daypanel__date{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}.daypanel__close{flex:0 0 26px;width:26px;height:26px;padding:0;background:none;border:0;border-radius:8px;font:inherit;font-size:20px;line-height:1;color:var(--text-dim);cursor:pointer}.daypanel__close:hover{background:var(--accent-soft);color:var(--text)}.daypanel__add{margin-top:14px;padding:8px 16px;font-size:13px}.daypanel__ongoing{margin-top:14px;padding:10px 12px;background:var(--bg);border-left:3px solid var(--accent);border-radius:10px}.daypanel__ongoing-title{font-size:14px;font-weight:700}.daypanel__ongoing-day{margin-top:2px;font-size:12px;color:var(--text-dim)}.daypanel__empty{padding:20px 0;font-size:14px;color:var(--text-dim)}.list--plain{margin-top:10px;background:none;padding:0}.list--plain:before{left:31px}.list--plain .task{padding-left:0;padding-right:0}.list--plain .task__sticker{flex:0 0 32px;width:32px;height:32px}.list--plain .task__name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.people{width:100%}.people-list{display:flex;flex-direction:column;gap:12px;margin-top:20px}.person{display:flex;align-items:center;gap:16px;padding:16px;background:var(--panel);border-radius:12px;cursor:pointer}.person:hover{background:#f7f0f0}.person__body{flex:1;min-width:0}.person__name{font-size:15px}.person__what{margin-top:2px;font-size:12px;color:var(--text-dim)}.person__relation{margin-left:8px;font-size:12px;color:var(--text-dim)}.person__comment{margin-top:6px;font-size:13px;color:var(--text-dim);line-height:1.45}.until{white-space:nowrap}.until--far{color:var(--text-dim)}.until--week{color:var(--text)}.until--soon{color:var(--accent)}.until--now{color:var(--accent);font-weight:600}.card-block{margin-top:16px;padding:16px;background:var(--panel);border-radius:12px}.card-block__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.section-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim)}.person-date{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--line)}.person-date__main{display:flex;align-items:center;gap:10px;min-width:0}.person-date__emoji{font-size:16px}.person-date__controls{display:flex;align-items:center;gap:12px;flex:0 0 auto}.person-date__controls .field--check{margin-bottom:0}.field__input--inline{width:auto;padding:6px 10px;font-size:13px}.settings{max-width:620px}.settings__block{margin-top:16px;padding:16px;background:var(--panel);border-radius:12px}.settings__row{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings__label{font-size:15px;font-weight:600}.settings__hint{margin-top:2px;font-size:13px;color:var(--text-dim)}.settings__value{font-size:14px;color:var(--text);white-space:nowrap}.settings__note{margin-top:12px;font-size:13px;color:var(--text-dim)}.dot{flex:0 0 12px;width:12px;height:12px;border-radius:50%;border:1px solid rgba(61,51,54,.12)}.dot--big{flex:0 0 26px;width:26px;height:26px;padding:0;border-radius:8px;cursor:pointer}.dot--on{box-shadow:0 0 0 2px var(--accent)}.picker{position:relative}.picker__button{display:flex;align-items:center;gap:8px;text-align:left;cursor:pointer}.picker__empty{color:var(--text-dim)}.picker__list{position:absolute;z-index:2;top:calc(100% + 4px);left:0;right:0;max-height:220px;overflow-y:auto;padding:4px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 20px #3d33361f}.picker__option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;background:none;border:0;border-radius:8px;font:inherit;font-size:14px;color:var(--text);text-align:left;cursor:pointer}.picker__option:hover{background:var(--accent-soft)}.field__auto{margin-left:8px;font-size:11px;color:var(--text-dim)}.cat-block{border-top:1px solid var(--line)}.cat-block .cat{border-top:0}.words{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 0 12px 38px}.word{display:inline-flex;align-items:center;gap:6px;padding:3px 8px;background:var(--bg);border:1px solid var(--line);border-radius:20px;font:inherit;font-size:12px;color:var(--text-dim);cursor:pointer}.word:hover{background:var(--accent-soft);color:var(--text)}.word__x{font-size:13px;line-height:1}.words__add{width:96px;padding:3px 8px;background:none;border:1px dashed var(--line);border-radius:20px;font:inherit;font-size:12px;color:var(--text)}.words__add::placeholder{color:var(--text-dim)}.words__add:focus{outline:none;border-color:var(--accent);border-style:solid}.cat{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.cat .field__input{flex:1;padding:7px 10px;font-size:14px}.cat__add{flex:0 0 auto;padding:7px 14px;font-size:13px}.palette{position:relative}.palette__list{position:absolute;z-index:2;top:calc(100% + 6px);left:0;padding:12px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 20px #3d33361f}.palette__grid{display:grid;grid-template-columns:repeat(6,26px);gap:8px}.palette__own{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12px;color:var(--text-dim)}.palette__own input{width:32px;height:26px;padding:0;border:1px solid var(--line);border-radius:8px;background:none;cursor:pointer}.topbar__actions{display:flex;align-items:center;gap:10px}.btn-sticker{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;padding:0;background:var(--panel);border:1px solid var(--line);border-radius:50%;cursor:pointer}.btn-sticker:hover{background:var(--accent-soft)}.btn-sticker--on{background:var(--accent-soft);border-color:var(--accent)}.stickers{position:fixed;top:0;right:0;bottom:0;width:320px;z-index:5;padding:28px 20px;background:var(--panel);border-left:1px solid var(--line);border-radius:12px;overflow-y:auto;transform:translate(100%);transition:transform .18s ease}.stickers--open{transform:translate(0)}.stickers__head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px}.stickers__grid{display:grid;grid-template-columns:repeat(3,72px);gap:12px}.stickers__item{width:72px;height:72px;cursor:grab}.stickers__item:active{cursor:grabbing}.task--drop{background:var(--accent-soft)}.task__stickers,.person__stickers{display:inline-flex;align-items:center;align-self:center;gap:6px;height:0;margin-left:10px;overflow:visible;vertical-align:middle}.task__sticker,.person__sticker{flex:0 0 40px;width:40px;height:40px;cursor:grab}.task__sticker:active,.person__sticker:active{cursor:grabbing}.person--drop{background:var(--accent-soft)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none;overflow:hidden}.confetti__burst{position:absolute;width:0;height:0}.confetti__piece{position:absolute;left:-3px;top:-5px;width:6px;height:10px;border-radius:2px;will-change:transform,opacity;animation-name:confetti-fly;animation-timing-function:cubic-bezier(.2,.7,.5,1);animation-fill-mode:forwards}@keyframes confetti-fly{0%{transform:translateZ(0) rotate(0);opacity:1}35%{transform:translate3d(calc(var(--dx) * .55),var(--up),0) rotate(calc(var(--rot) * .35));opacity:1}to{transform:translate3d(var(--dx),var(--dy),0) rotate(var(--rot));opacity:0}}@media(prefers-reduced-motion:reduce){.confetti{display:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#3d333647;display:flex;align-items:center;justify-content:center;padding:24px}.dialog{width:360px;background:var(--panel);border-radius:12px;padding:16px}.dialog__title{margin:0 0 16px;font-size:15px;font-weight:700}.switch{display:flex;gap:4px;margin-bottom:16px;padding:3px;background:var(--bg);border-radius:10px}.switch__option{flex:1;padding:7px 12px;background:none;border:0;border-radius:8px;font:inherit;font-size:13px;color:var(--text-dim);cursor:pointer}.switch__option--on{background:var(--accent-soft);color:var(--text);font-weight:600}.field{display:block;margin-bottom:12px}.field__label{display:block;margin-bottom:4px;font-size:11px;color:var(--text-dim)}.field__input{width:100%;font:inherit;font-size:14px;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 12px}.field__input:focus{outline:none;border-color:var(--accent)}select.field__input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;cursor:pointer}.field__input--text{display:block;line-height:1.4;resize:none;overflow-y:hidden}.field__input--text::placeholder{color:#c4b5b7}.field-row{display:flex;gap:12px}.field-row .field{flex:1}.field--check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim);margin-bottom:16px}.field--check input{accent-color:var(--accent)}.dialog__actions{display:flex;align-items:center;gap:10px}.dialog__spacer{flex:1}.btn-delete{padding:0;background:none;border:0;font:inherit;font-size:14px;color:var(--accent);cursor:pointer}.btn-delete:hover{text-decoration:underline}.confirm{display:flex;align-items:center;gap:10px}.confirm__text{font-size:13px;color:var(--text-dim)}.btn-link{padding:0;background:none;border:0;font:inherit;font-size:13px;color:var(--text-dim);cursor:pointer}.btn-link:hover{color:var(--text)}.btn-ghost{border:1px solid var(--line);background:none;color:var(--text-dim);font:inherit;font-size:14px;padding:10px 20px;border-radius:10px;cursor:pointer}.btn-ghost:hover{background:var(--accent-soft);color:var(--text)}.state{font-size:13px;color:var(--text-dim);padding:9px 16px}.error{font-size:13px;color:var(--accent);padding:9px 16px}.login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:24px;background:var(--bg)}.login__card{width:320px;padding:24px;background:var(--panel);border-radius:12px}.login__title{margin:0 0 20px;font-size:22px;font-weight:700;letter-spacing:-.01em;text-align:center;color:var(--text)}.login__error{margin-bottom:12px;font-size:13px;color:var(--accent)}.login__button{width:100%;margin-top:4px}.settings__block--exit{margin-top:28px;background:none;padding:0}
