:root{--gutter: 40px;--col-w: 160px;--col-min: 150px;--col-gap: 40px;--row-h: 34px;--row-line: 1px;--pill-h: 28px;--pill-r: 6px;--item-pad-x: 10px;--topbar-h: 48px;--head-top: 74px;--head-h: 72.5px;--date-top: 7.4px;--name-top: 22.6px;--footer-h: 44px;--edge-w: 34px;--edge-btn: 34px;--rowbtn: 20px;--rowbtn-r: 6px;--rowicon: 12px;--check-gutter: calc(var(--col-gap) / 2);--gutbtn: calc(var(--check-gutter) - 4px);--guticon: 11px;--guticon-done: 10px;--font-ui: "Figtree", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-num: "Figtree", -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif;--font-display: "Oswald", "Figtree", Impact, sans-serif;--fs-logo: 16px;--fs-date: 10.5px;--ls-date: -.007em;--fs-name: 1.3333rem;--fw-name: 500;--ls-name: .02em;--lh-name: 1.1;--fs-item: 14.5px;--fs-sub: 11.4px;--ls-sub: .08em;--accent: #2357dc;--accent-soft: #d7e1f9;--accent-dot: #e8452b;--danger: #d3302a;--danger-soft: #fbdedc;--bg: #ffffff;--surface: #f7f8fa;--line: #edeef0;--pill: #edeef0;--text: #000000;--text-strong: #141414;--muted: #a4a4a4;--past: #a6a6a7;--icon: #4a4a4a;--icon-soft: #707070;--sep: #c7c7c7;--done: #b7b7b8;--shadow-drag: 0 6px 20px rgba(0, 0, 0, .14);--hl-blue: #cfdcfb;--hl-red: #f7d3d8;--hl-green: #bfe6d4;--hl-yellow: #fae4a5}:root[data-theme=dark]{--accent: #86a3ec;--accent-soft: #1d2e57;--danger: #ff7b72;--danger-soft: #4a2220;--bg: #121212;--surface: #1b1c1e;--line: #2a2b2e;--pill: #2a2b2e;--text: #ededed;--text-strong: #f5f5f5;--muted: #6f7075;--past: #55565a;--icon: #b6b7ba;--icon-soft: #8a8b8f;--sep: #45464a;--done: #5c5d61;--shadow-drag: 0 6px 20px rgba(0, 0, 0, .5);--hl-blue: #24445e;--hl-red: #6c2c3d;--hl-green: #2f5230;--hl-yellow: #6c5a24}:root[dir=rtl]{--font-ui: "IRANYekanX", "IRANYekan", "Vazirmatn", "Figtree", Tahoma, sans-serif;--font-display: "IRANYekanX", "IRANYekan", "Vazirmatn", "Figtree", Tahoma, sans-serif;--fs-name: 1.25rem;--ls-name: 0;--lh-name: 1.5;--fs-date: 11px;--fs-item: 14px;--fs-sub: 11px;--ls-date: 0;--ls-sub: 0}@media (max-width: 1100px){:root{--gutter: 34px;--edge-w: 28px;--edge-btn: 30px}}@media (max-width: 700px){:root{--gutter: 16px;--col-gap: 16px;--edge-w: 24px;--edge-btn: 28px}}@font-face{font-family:IRANYekanX;src:local("IRANYekanX Regular"),local("IRANYekanXFaNum-Regular"),url(/fonts/IRANYekanX-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IRANYekanX;src:local("IRANYekanX Bold"),local("IRANYekanXFaNum-Bold"),url(/fonts/IRANYekanX-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:IRANYekanX;src:local("IRANYekanX ExtraBold"),local("IRANYekanXFaNum-ExtraBold"),url(/fonts/IRANYekanX-ExtraBold.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--fs-item);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}.app{display:flex;flex-direction:column;height:100%;position:relative}.topbar{height:var(--topbar-h);flex:0 0 auto;display:flex;align-items:center;position:relative;z-index:30}.topbar__side{display:flex;align-items:center;flex:0 0 auto}.topbar__side--left{padding-inline-start:12px;gap:6px}.todaybtn{height:26px;padding-inline:14px;display:grid;place-items:center;border-radius:8px;background:var(--pill);color:var(--icon-soft);font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}.todaybtn:hover{color:var(--text-strong)}.topbar__side--right{padding-inline-end:12px;gap:2px}.topbar__spacer{flex:1 1 auto}.iconbtn{width:32px;height:32px;display:grid;place-items:center;color:var(--icon);border-radius:6px}.iconbtn:hover{background:var(--surface)}.iconbtn--sm{width:24px;height:24px}.iconbtn.is-active{background:var(--pill);color:var(--text-strong)}.logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--font-display);font-weight:700;font-size:var(--fs-logo);line-height:1;letter-spacing:.005em;color:var(--accent);text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none}.logo__dot{position:absolute;inset-inline-end:-7px;top:-1px;width:4px;height:4px;border-radius:50%;background:var(--accent-dot)}.board{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;display:flex;align-items:stretch;gap:var(--col-gap);padding:calc(var(--head-top) - var(--topbar-h)) var(--gutter) 0;position:relative}.board::-webkit-scrollbar{width:0;height:0}.day{flex:1 1 0;min-width:0;min-height:100%;display:flex;flex-direction:column}.day__head{height:var(--head-h);flex:0 0 auto;position:relative;-webkit-user-select:none;user-select:none}.day__date{position:absolute;top:var(--date-top);inset-inline-start:var(--item-pad-x);margin:0;font-size:var(--fs-date);font-weight:700;line-height:1;letter-spacing:var(--ls-date);text-transform:uppercase;color:var(--muted);white-space:nowrap}.day__name{position:absolute;top:var(--name-top);inset-inline-start:var(--item-pad-x);inset-inline-end:0;margin:0;font-family:var(--font-display);font-size:var(--fs-name);font-weight:var(--fw-name);line-height:var(--lh-name);letter-spacing:var(--ls-name);text-transform:uppercase;color:var(--text);white-space:nowrap;padding-bottom:8px;overflow:hidden;text-overflow:ellipsis}.day.is-past .day__name{color:var(--past)}.day.is-today .day__name{color:var(--accent)}.day__list{flex:1 1 auto;display:flex;flex-direction:column}.day__fill{flex:1 0 auto;min-height:var(--row-h);cursor:text;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--row-h) - var(--row-line)),var(--line) calc(var(--row-h) - var(--row-line)),var(--line) var(--row-h))}.todo{height:var(--row-h);flex:0 0 auto;border-bottom:var(--row-line) solid var(--line);display:flex;align-items:center;position:relative;cursor:grab;transition:border-color 90ms linear}.todo__surface{position:absolute;z-index:0;inset-block:-1px 0;inset-inline:0;border-radius:8px;background:var(--bg);box-shadow:0 1px 2px #0000000f,0 8px 20px #0000001a;opacity:0;transition:opacity .11s linear;pointer-events:none}.todo:hover:not(.is-editing) .todo__surface{opacity:1}.todo:hover:not(.is-editing){border-bottom-color:transparent}:root[data-theme=dark] .todo__surface{background:#202124;box-shadow:0 1px 2px #00000080,0 8px 20px #0000008c}.todo__pill,.todo__rule{position:relative;z-index:1}.todo__pill{flex:1 1 auto;min-width:0;height:var(--pill-h);display:flex;align-items:center;gap:4px;padding-inline:var(--item-pad-x);border-radius:var(--pill-r);background:transparent}.todo__text{flex:1 1 auto;min-width:0;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;outline:none;cursor:text;color:var(--text)}.todo__text b,.todo__text strong{font-weight:700}.todo__text i,.todo__text em{font-style:italic}.todo__text a{color:var(--accent);text-decoration:underline}.todo.is-editing .todo__text{white-space:pre-wrap;overflow:visible;text-overflow:clip}.todo.is-editing{height:auto;min-height:var(--row-h)}.todo.is-editing .todo__pill{height:auto;min-height:var(--pill-h);padding-block:5px}.todo.is-done .todo__text{color:var(--done);text-decoration:line-through;text-decoration-thickness:1px}.todo[data-hl=blue] .todo__pill{background:var(--hl-blue)}.todo[data-hl=red] .todo__pill{background:var(--hl-red)}.todo[data-hl=green] .todo__pill{background:var(--hl-green)}.todo[data-hl=yellow] .todo__pill{background:var(--hl-yellow)}.todo.is-sub .todo__pill{background:var(--pill)}.todo.is-sub .todo__text{font-size:var(--fs-sub);font-weight:800;letter-spacing:var(--ls-sub);text-transform:uppercase;color:var(--text-strong)}.todo.is-sub.is-done .todo__text{color:var(--done)}.todo__time{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px;height:20px;padding-inline:6px;margin-inline-end:7px;border-radius:5px;background:var(--pill);color:var(--icon-soft);direction:ltr}.todo__timeval{font-family:var(--font-num);font-size:12px;font-weight:700;letter-spacing:.01em;font-variant-numeric:tabular-nums;-webkit-font-feature-settings:normal;font-feature-settings:normal}.todo__time:hover{background:var(--accent);color:#fff}.todo.is-overdue .todo__text{color:var(--danger)}.todo.is-overdue .todo__time{background:var(--danger-soft);color:var(--danger)}.todo.is-overdue .todo__time:hover{background:var(--danger);color:#fff}.todo.is-overdue.is-done .todo__text,.todo.is-overdue.is-done .todo__time{color:var(--done);background:var(--pill)}.todo__rule{flex:1 1 auto;height:2px;margin-inline:var(--item-pad-x);border-radius:2px;background:var(--sep)}.todo__check,.todo__del{position:absolute;top:0;bottom:0;width:var(--check-gutter);display:flex;align-items:center;z-index:2}.todo__check{inset-inline-start:calc(-1 * var(--check-gutter));justify-content:flex-start}.todo__del{inset-inline-end:calc(-1 * var(--check-gutter));justify-content:flex-end}.todo__check__box{width:var(--gutbtn);height:var(--gutbtn);display:grid;place-items:center;border-radius:var(--rowbtn-r);background:var(--accent-soft);color:transparent;opacity:0;transition:opacity 90ms linear,background 90ms linear}.todo__check__box svg{width:var(--guticon);height:var(--guticon)}.todo__check:hover .todo__check__box{background:var(--accent);color:#fff}.todo.is-done .todo__check__box{background:transparent;color:var(--done)}.todo.is-done .todo__check__box svg{width:var(--guticon-done);height:var(--guticon-done)}.todo.is-done .todo__check:hover .todo__check__box{background:var(--pill);color:var(--icon-soft)}.todo__actions{flex:0 0 auto;display:none;align-items:center;gap:6px;margin-inline-end:-4px}.todo:hover:not(.is-editing) .todo__actions{display:flex}.todo:hover:not(.is-editing) .todo__note{display:none}.rowbtn{position:relative;width:var(--rowbtn);height:var(--rowbtn);display:grid;place-items:center;border-radius:var(--rowbtn-r);background:var(--pill);color:var(--icon-soft)}.rowbtn svg{width:var(--rowicon);height:var(--rowicon)}.rowbtn:hover,.rowbtn.is-on{background:var(--accent);color:#fff}.rowbtn__hot{display:none}.todo__del:hover .rowbtn{background:var(--accent);color:#fff}.todo__del:hover .rowbtn__rest{display:none}.todo__del:hover .rowbtn__hot{display:grid}.todo[data-hl] .rowbtn,.todo.is-sub .rowbtn{background:#ffffffb8}:root[data-theme=dark] .todo[data-hl] .rowbtn,:root[data-theme=dark] .todo.is-sub .rowbtn{background:#00000057}.todo[data-hl] .rowbtn:hover,.todo.is-sub .rowbtn:hover,.todo[data-hl] .rowbtn.is-on,.todo.is-sub .rowbtn.is-on{background:var(--accent)}.todo__del .rowbtn{width:var(--gutbtn);height:var(--gutbtn);background:var(--pill);opacity:0;transition:opacity 90ms linear,background 90ms linear}.todo__del .rowbtn svg{width:var(--guticon);height:var(--guticon)}.todo:hover:not(.is-editing) .todo__check__box,.todo:hover:not(.is-editing) .todo__del .rowbtn{opacity:1}.todo__note,.todo__recur{flex:0 0 auto;display:grid;place-items:center;color:var(--line)}.todo__note{width:14px;height:14px}.todo__recur{width:12px;height:12px;color:var(--muted)}.todo:hover .todo__note{color:var(--muted)}.todo.is-done .todo__recur,.todo.is-done .todo__note{color:var(--line)}html.is-dragging-active,html.is-dragging-active body{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:contain}.todo.is-dragging{opacity:.32;cursor:grabbing}.todo.is-dragging .todo__surface{opacity:0}.app.is-dragging,.app.is-dragging .todo,.app.is-dragging .todo__text,.app.is-dragging .day__fill{cursor:grabbing}.app.is-dragging .todo__surface{opacity:0}.app.is-dragging .todo__actions,.app.is-dragging .todo__check,.app.is-dragging .todo__del{display:none}.todo.drag-card{position:fixed;border-bottom:0;border-radius:8px;background:var(--bg);box-shadow:0 2px 6px #0000001a,0 12px 28px #0000002e;cursor:grabbing;pointer-events:none}:root[data-theme=dark] .todo.drag-card{background:#202124;box-shadow:0 2px 6px #00000080,0 12px 28px #0009}.todo.is-dropbefore:before,.todo.is-dropafter:after{content:"";position:absolute;z-index:3;inset-inline:0;height:3px;border-radius:3px;background:var(--accent)}.todo.is-dropbefore:before{top:-2px}.todo.is-dropafter:after{bottom:-2px}.day.is-dropzone .day__fill{background-color:color-mix(in srgb,var(--accent) 7%,transparent)}.day.is-dropzone .day__name{color:var(--accent)}.drag-ghost{position:fixed;z-index:200;pointer-events:none;height:var(--pill-h);display:flex;align-items:center;padding-inline:var(--item-pad-x);border-radius:var(--pill-r);background:var(--bg);box-shadow:var(--shadow-drag);font-size:var(--fs-item);white-space:nowrap;overflow:hidden}.edbar{position:fixed;z-index:340;display:flex;align-items:center;gap:2px;padding:6px;border-radius:10px;background:var(--bg);box-shadow:0 1px 3px #00000014,0 10px 26px #00000024}.edbar__btn{width:36px;height:34px;display:grid;place-items:center;border-radius:7px;font-size:16px;line-height:1;color:var(--text-strong)}.edbar__btn:hover{background:var(--surface)}.edbar__btn.is-on{background:var(--text-strong);color:#fff}.edbar__sub{font-size:11px;vertical-align:baseline}.hlpop{position:fixed;z-index:345;min-width:200px;padding:22px 26px 26px;border-radius:12px;background:var(--bg);box-shadow:0 2px 6px #00000014,0 16px 40px #0000002e;display:flex;flex-direction:column;align-items:flex-start;gap:14px;overflow:hidden}.hlpop__head{margin:0 0 2px;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.hlpop__chip{padding:5px 12px;border-radius:4px;font-size:15px;color:#141414}.hlpop__chip.is-on{box-shadow:0 0 0 2px var(--accent)}.timepop{position:fixed;z-index:345;width:244px;padding:16px;border-radius:10px;background:var(--bg);border:1px solid var(--line);box-shadow:0 12px 34px #0000002e}.timepop__head{margin:0 0 10px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.timepop__field{width:100%;height:40px;border:0;border-radius:6px;background:var(--surface);color:var(--text);font-family:var(--font-num);font-size:17px;font-weight:600;letter-spacing:.02em;text-align:center;direction:ltr;outline:none}.timepop__field:focus{box-shadow:inset 0 0 0 1px var(--accent)}.timepop__field.is-bad{box-shadow:inset 0 0 0 1px var(--danger);color:var(--danger)}.timepop__hint{margin:10px 0 14px;font-size:11.5px;line-height:1.5;color:var(--muted)}.timepop__foot{display:flex;align-items:center;gap:10px}.btn--sm{height:32px;padding-inline:14px;font-size:13px}.btn--link.btn--sm{padding-inline:0;color:var(--muted)}.btn--link.btn--sm:hover{color:var(--danger)}.hlpop__bar{position:absolute;inset-inline:0;bottom:0;height:4px;background:var(--accent)}:root[data-theme=dark] .hlpop__chip{color:var(--text)}.notepop{position:absolute;inset-inline-start:0;top:calc(var(--row-h) - 2px);width:100%;z-index:40;background:var(--bg);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #0000001f;padding:8px}.notepop textarea{width:100%;min-height:76px;resize:vertical;border:0;outline:none;background:transparent;color:var(--text);font:400 13px/1.5 var(--font-ui)}.edge{position:absolute;top:var(--head-top);width:var(--edge-w);background:var(--surface);display:flex;flex-direction:column;z-index:20}.edge--left{left:0;border-radius:0 8px 8px 0}.edge--right{right:0;border-radius:8px 0 0 8px}.edge button{width:var(--edge-w);height:var(--edge-btn);display:grid;place-items:center;color:var(--icon-soft)}.edge button:hover{color:var(--text)}.footer{height:var(--footer-h);flex:0 0 auto;background:var(--surface);display:flex;align-items:center;position:relative;z-index:30}.footer__side{display:flex;align-items:center;flex:0 0 auto}.footer__side--left{padding-inline-start:12px;gap:2px}.footer__side--right{padding-inline-end:12px;gap:2px}.footer__spacer{flex:1 1 auto}.footer__center{position:absolute;left:50%;top:0;height:100%;transform:translate(-50%);display:flex;align-items:center}.spanbtn{position:relative;width:28px;height:24px;display:grid;place-items:center;font-size:15px;font-weight:600;color:var(--icon-soft)}.spanbtn>span{width:24px;height:24px;display:grid;place-items:center;border-radius:4px;font-variant-numeric:tabular-nums}.spanbtn:hover{color:var(--text)}.spanbtn.is-active{color:var(--text-strong)}.spanbtn.is-active>span{background:var(--pill)}.spanbtn+.spanbtn:before{content:"";position:absolute;inset-inline-start:0;top:50%;transform:translateY(-50%);width:1px;height:11px;background:var(--sep)}.spanbtn.is-active:before,.spanbtn.is-active+.spanbtn:before{display:none}.iconbtn{position:relative}.dot{position:absolute;top:5px;inset-inline-end:5px;width:6px;height:6px;border-radius:50%;background:var(--accent-dot);box-shadow:0 0 0 2px var(--surface)}.msg__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:290}.msgpop{position:absolute;z-index:300;inset-inline-end:12px;bottom:52px;width:340px;max-height:62vh;overflow-y:auto;padding:8px;border-radius:10px;background:var(--bg);border:1px solid var(--line);box-shadow:0 12px 34px #00000029}.msgpop__bar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:4px 8px 8px}.msgpop__head{margin:0;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.msgpop__all{font-size:11px;font-weight:600;color:var(--accent)}.msgpop__all:hover{text-decoration:underline}.msgpop__empty{margin:6px 8px 10px;font-size:13px;color:var(--muted)}.msgpop__row{display:flex;align-items:flex-start;gap:9px;width:100%;padding:9px 8px;border-radius:6px;text-align:start}.msgpop__row:hover{background:var(--surface)}.msgpop__dot{flex:0 0 auto;width:7px;height:7px;margin-top:5px;border-radius:50%;background:transparent}.msgpop__row.is-unread .msgpop__dot{background:var(--accent)}.msgpop__row.is-unread .msgpop__dot.kind-warning{background:var(--accent-dot)}.msgpop__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}.msgpop__title{font-size:13.5px;font-weight:500;color:var(--muted)}.msgpop__row.is-unread .msgpop__title{font-weight:700;color:var(--text)}.msgpop__text{font-size:13px;line-height:1.45;color:var(--muted)}.msgpop__when{font-size:11px;color:var(--muted)}.langbtn{min-width:32px;height:24px;padding-inline:6px;display:grid;place-items:center;border-radius:4px;color:var(--icon-soft);font-size:11px;font-weight:800;letter-spacing:.06em}.langbtn:hover{background:var(--pill);color:var(--text-strong)}.footer__caret{position:absolute;inset-inline-end:16px;top:-15px;width:24px;height:14px;display:grid;place-items:center;color:var(--icon-soft)}.search{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bg);display:flex;flex-direction:column;padding:0 var(--gutter)}.search__bar{height:72px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.search__bar input{flex:1 1 auto;border:0;outline:none;background:transparent;color:var(--text);font:400 22px/1.2 var(--font-ui)}.search__results{flex:1 1 auto;overflow:auto;padding-block:12px}.search__row{display:flex;gap:16px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.search__row time{flex:0 0 120px;font-size:11px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#00000038}.scrim--modal{z-index:420;background:#00000024}.recur{position:fixed;inset-block:0;inset-inline-start:0;z-index:410;width:min(46vw,620px);min-width:min(100vw,380px);background:var(--bg);box-shadow:0 0 40px #0000002e;padding:40px;overflow-y:auto;display:flex;flex-direction:column}.recur__close,.modal__close{position:absolute;top:22px;inset-inline-end:22px;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;color:var(--icon)}.recur__close:hover,.modal__close:hover{background:var(--surface)}.recur__title{margin:0 0 40px;font-size:21px;font-weight:500;letter-spacing:-.005em;color:var(--text)}.recur__empty p{margin:0 0 24px;font-size:15px;color:var(--text)}.recur__hints{display:flex;gap:40px;margin-top:44px;font-style:italic;color:var(--muted);font-size:14px}.recur__hints>div{display:flex;flex-direction:column;gap:8px}.recur__hints p{margin:0;font-size:14px;color:var(--muted)}.recur__hintHead{color:var(--muted)}.recur__list{display:flex;flex-direction:column;gap:28px}.recur__groupHead{margin:0 0 10px;font-size:14px;color:var(--muted)}.recur__row{display:flex;align-items:center;gap:12px;margin-inline-start:-40px;cursor:grab}.recur__row.is-dragging{opacity:.35}.recur__handle{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;border-radius:7px;background:var(--pill);color:var(--icon-soft);visibility:hidden}.recur__row:hover .recur__handle{visibility:visible}.recur__main{flex:1 1 auto;min-width:0;padding-block:5px;border-bottom:1px solid var(--line)}.recur__row.is-over .recur__main{box-shadow:inset 0 2px 0 var(--accent)}.recur__pill{width:100%;height:46px;display:flex;align-items:center;margin-inline:-14px;padding-inline:18px;border-radius:7px;background:transparent;text-align:start}.recur__row:hover .recur__pill{background:var(--surface)}.recur__text{flex:0 0 44%;min-width:0;padding-inline-end:12px;font-size:16px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recur__freq{flex:1 1 auto;min-width:0;font-size:16px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recur__del{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border-radius:5px;color:var(--icon-soft);visibility:hidden;cursor:pointer}.recur__row:hover .recur__del{visibility:visible}.recur__del:hover{background:var(--danger);color:#fff}.fab{position:absolute;inset-inline-end:40px;bottom:40px;width:66px;height:66px;display:grid;place-items:center;border-radius:50%;background:var(--text-strong);color:#fff;box-shadow:0 6px 18px #0000003d}.fab:hover{background:var(--accent)}.modal{position:fixed;z-index:430;top:50%;left:50%;transform:translate(-50%,-50%);width:min(92vw,620px);max-height:88vh;overflow-y:auto;background:var(--bg);border-radius:8px;border-top:3px solid var(--accent);box-shadow:0 20px 60px #00000047;padding:34px 40px 32px}.modal__title{margin:0 0 34px;font-size:21px;font-weight:500;letter-spacing:-.005em}.modal__text{width:100%;border:0;border-bottom:1px solid var(--line);outline:none;background:transparent;color:var(--text);font:400 20px/1.4 var(--font-ui);padding:6px 0 14px}.modal__text:focus{border-bottom-color:var(--accent)}.modal__label{margin:34px 0 12px;font-size:15px;font-weight:500;color:var(--text)}.modal__row{display:flex;align-items:center;gap:12px}.field{height:42px;border:0;border-radius:6px;background:var(--surface);color:var(--text);font:400 15px/1 var(--font-ui);padding-inline:12px;outline:none}.field:focus{box-shadow:inset 0 0 0 1px var(--accent)}.field--num{width:74px}.field--sel{width:124px;cursor:pointer}.datebtn{width:34px;height:34px;display:grid;place-items:center;border-radius:6px;background:var(--surface);color:var(--icon)}.datebtn:hover,.datebtn.is-on{background:var(--pill)}.modal__date{font-size:15px;color:var(--text)}.modal__date:hover{color:var(--accent)}.dp__scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;background:#00000038}.dp{position:fixed;inset-block:0;inset-inline-end:0;z-index:410;width:min(52vw,720px);min-width:min(100vw,380px);background:var(--bg);box-shadow:0 0 40px #0000002e;padding:34px 56px 0;display:flex;flex-direction:column;overflow-y:auto}.dp__close{position:absolute;top:22px;inset-inline-end:22px;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;color:var(--icon)}.dp__close:hover{background:var(--surface)}.dp__titleRow{display:flex;align-items:center;gap:12px;margin-bottom:26px}.dp__title{flex:1 1 auto;min-width:0;font-size:27px;font-weight:500;letter-spacing:-.01em;line-height:1.25;color:var(--text);outline:none}.dp__title.is-done{color:var(--done);text-decoration:line-through}.dp__check,.dp__box{flex:0 0 auto;width:26px;height:26px;display:grid;place-items:center;border-radius:7px;background:var(--accent-soft);color:transparent;opacity:0;transition:opacity 90ms linear,background 90ms linear}.dp__check:hover,.dp__box:hover{background:var(--accent);color:#fff}.dp__titleRow.is-done .dp__check,.dp__block.is-done .dp__box{background:transparent;color:var(--done)}.dp__titleRow.is-done .dp__check:hover,.dp__block.is-done .dp__box:hover{background:var(--accent-soft);color:transparent}.dp__bar{display:flex;align-items:center;gap:4px;padding-block:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.dp__tool{width:34px;height:32px;display:grid;place-items:center;border-radius:7px;font-size:16px;color:var(--text-strong)}.dp__tool:hover{background:var(--surface)}.dp__tool.is-on{background:var(--text-strong);color:#fff}.dp__barSpacer{flex:1 1 auto}.dp__date{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.dp__dateTime{font-family:var(--font-num);direction:ltr;font-variant-numeric:tabular-nums;color:var(--text)}.dp__body{flex:1 1 auto;padding-block:34px 20px}.dp__block{display:flex;align-items:flex-start;gap:12px;padding-block:3px}.dp__block.is-p+.dp__block.is-check{margin-top:10px}.dp__line{flex:1 1 auto;min-width:0;font-size:16px;line-height:1.6;color:var(--text);outline:none;word-break:break-word}.dp__block.is-check .dp__line{line-height:1.65}.dp__block.is-done .dp__line{color:var(--done);text-decoration:line-through}.dp__line a{color:var(--accent);text-decoration:underline}.dp__add{margin-top:14px;font-size:13px;color:var(--muted)}.dp__add:hover{color:var(--accent)}.dp__saved{flex:0 0 auto;margin:0;padding-block:22px;text-align:center;font-size:13px;color:var(--muted)}.rowbtn.has-body{color:var(--text-strong)}@media (max-width: 700px){.dp{width:100vw;padding:24px 20px 0}.dp__title{font-size:22px}}.cal{position:fixed;z-index:440;width:366px;padding:0 8px 8px;border-radius:10px;background:var(--bg);box-shadow:0 2px 8px #00000014,0 18px 44px #0003;overflow:hidden}.cal__bar{display:block;height:4px;margin:0 -8px 14px;background:var(--accent)}.cal__head{display:flex;align-items:center;gap:8px;padding:0 4px 12px}.cal__title{flex:1 1 auto;margin:0;text-align:center;font-size:15px;font-weight:700;letter-spacing:.05em;color:var(--text)}.cal__nav{flex:0 0 auto;width:26px;height:26px;display:grid;place-items:center;border-radius:6px;color:var(--icon-soft)}.cal__nav:hover{background:var(--surface);color:var(--text)}.cal__week,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr)}.cal__week{padding-bottom:10px}.cal__week span{text-align:center;font-size:13px;color:var(--icon-soft)}.cal__grid{border-top:1px solid var(--line);border-inline-start:1px solid var(--line)}.cal__day{height:46px;display:grid;place-items:center;border-inline-end:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15px;color:var(--text);background:none}.cal__day.is-blank{cursor:default}.cal__day:not(.is-blank):hover{background:var(--surface)}.cal__day.is-today:not(.is-on){font-weight:700;color:var(--accent)}.cal__day.is-on{background:var(--accent);color:#fff;font-weight:600}@media (max-width: 700px){.cal{width:min(94vw,366px)}.cal__day{height:40px}}.modal__foot{display:flex;align-items:center;gap:12px;margin-top:42px}.btn{height:42px;padding-inline:20px;display:inline-flex;align-items:center;gap:8px;border-radius:5px;font-size:15px;font-weight:500}.btn--dark{background:var(--text-strong);color:#fff}.btn--dark:hover{background:var(--accent)}.btn--dark:disabled{opacity:.4;cursor:not-allowed}.btn--soft{background:var(--surface);color:var(--text)}.btn--soft:hover{background:var(--pill)}.btn--link{margin-inline-start:auto;padding-inline:0;color:var(--text)}.btn--link:hover{color:var(--accent)}@media (max-width: 700px){.recur{width:100vw;padding:24px 20px}.recur__hints{gap:20px}.fab{inset-inline-end:20px;bottom:20px;width:56px;height:56px}.modal{padding:26px 20px 22px}}.ctxmenu{position:fixed;z-index:300;min-width:176px;background:var(--bg);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 30px #00000024;padding:6px;font-size:13px}.ctxmenu button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:5px;text-align:start}.ctxmenu button:hover{background:var(--surface)}.ctxmenu hr{border:0;border-top:1px solid var(--line);margin:5px 2px}.swatches{display:flex;gap:6px;padding:4px 8px 8px}.swatch{width:20px;height:20px;border-radius:50%;border:1px solid rgba(0,0,0,.08)}.swatch.is-none{background:var(--bg);position:relative}.swatch.is-none:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-inline-start:1px solid var(--sep);transform:rotate(45deg);transform-origin:center}@media (hover: none){.todo__actions{display:flex}.todo__check__box,.todo__del .rowbtn{opacity:1}}@media (max-width: 700px){:root{--check-gutter: 0px}.todo__check,.todo__del{position:static;display:flex;flex:0 0 auto;width:var(--gutbtn)}.todo__check__box,.todo__del .rowbtn{opacity:1}.todo__check{margin-inline-end:8px}.todo__del{margin-inline-start:8px}.logo{font-size:15px}.search{padding:0 var(--gutter)}.search__bar{height:56px}.search__bar input{font-size:17px}.search__row time{flex:0 0 84px}}@media (max-width: 400px){.logo{display:none}}.boot{height:100%;background:var(--bg)}.auth{min-height:100%;display:grid;place-items:center;padding:24px;background:var(--bg)}.auth__card{width:100%;max-width:380px;display:flex;flex-direction:column}.auth__brand{position:relative;align-self:flex-start;margin:0 0 28px;font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:.005em;text-transform:uppercase;color:var(--accent)}.auth__dot{position:absolute;inset-inline-end:-7px;top:1px;width:4px;height:4px;border-radius:50%;background:var(--accent-dot)}.auth__title{margin:0 0 26px;font-size:24px;font-weight:600;letter-spacing:-.015em;color:var(--text)}.auth__field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.auth__field>span{font-size:13px;font-weight:600;color:var(--muted)}.auth__field input{width:100%;height:44px;border:1px solid var(--line);border-radius:7px;background:var(--bg);color:var(--text);font:400 15px/1 var(--font-ui);padding-inline:13px;outline:none}.auth__field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth__pw{position:relative;display:block}.auth__pw input{padding-inline-end:62px}.auth__reveal{position:absolute;inset-inline-end:6px;top:50%;transform:translateY(-50%);height:30px;padding-inline:8px;border-radius:5px;font-size:12px;font-weight:600;color:var(--muted)}.auth__reveal:hover{color:var(--accent)}.auth__hint{font-size:12px;font-style:normal;color:var(--muted)}.auth__error{margin:0 0 18px;padding:11px 13px;border-radius:7px;background:var(--danger-soft);color:var(--danger);font-size:13.5px;line-height:1.45}.auth__submit{height:46px;border-radius:7px;background:var(--accent);color:#fff;font-size:15px;font-weight:600}.auth__submit:hover{background:var(--text-strong)}.auth__submit:disabled{opacity:.45;cursor:not-allowed}.auth__swap{margin:20px 0 0;text-align:center;font-size:13.5px;color:var(--muted)}.auth__swap button{font-size:13.5px;font-weight:600;color:var(--accent)}.auth__swap button:hover{text-decoration:underline}.sync{position:absolute;inset-inline-end:20px;top:11px;display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px;border-radius:13px;background:var(--surface);font-size:12.5px;color:var(--icon-soft);white-space:nowrap}.sync__dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:currentColor}.sync.is-quiet .sync__dot{animation:sync-pulse 1.4s ease-in-out infinite}@keyframes sync-pulse{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.sync.is-quiet .sync__dot{animation:none}}.sync.is-warn{background:#fdf3e2;color:#8a5a12}.sync.is-bad{background:var(--danger-soft);color:var(--danger)}[data-theme=dark] .sync.is-warn{background:#3a2f18;color:#e8c07a}.sync__count{font-variant-numeric:tabular-nums;opacity:.8}.sync__act{font-size:12.5px;font-weight:600;color:inherit;text-decoration:underline}@media (max-width: 700px){.sync__label{display:none}}.acctpanel{position:fixed;inset-inline-end:18px;bottom:58px;z-index:40;width:320px;max-width:calc(100vw - 36px);padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--bg);box-shadow:var(--shadow-drag)}.acctpanel__close{position:absolute;inset-inline-end:10px;top:10px;width:24px;height:24px;display:grid;place-items:center;border-radius:5px;color:var(--icon-soft)}.acctpanel__close:hover{background:var(--surface);color:var(--text-strong)}.acctpanel__title{margin:0 0 3px;font-size:15px;font-weight:600;color:var(--text-strong)}.acctpanel__email{margin:0 0 16px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.acctpanel__verify{margin:0 0 16px;padding:11px 12px;border-radius:7px;background:var(--accent-soft);font-size:12.5px;line-height:1.5;color:var(--text-strong)}.acctpanel__verify p{margin:0 0 7px}.acctpanel__verify button,.acctpanel__menu button,.acctpanel__row button{font-family:inherit}.acctpanel__verify button{font-size:12.5px;font-weight:600;color:var(--accent)}.acctpanel__verify button:hover{text-decoration:underline}.acctpanel__notice{margin:0 0 14px;padding:10px 12px;border-radius:7px;background:var(--surface);font-size:12.5px;line-height:1.45;color:var(--text-strong)}.acctpanel__menu{display:flex;flex-direction:column;gap:2px}.acctpanel__menu button{height:36px;padding:0 10px;border-radius:6px;text-align:start;font-size:13.5px;color:var(--text)}.acctpanel__menu button:hover{background:var(--surface)}.acctpanel__menu button:disabled{opacity:.5;cursor:not-allowed}.acctpanel__danger{color:var(--danger)}.acctpanel__menu .acctpanel__danger:hover{background:var(--danger-soft)}.acctpanel__form .auth__field{margin-bottom:14px}.acctpanel__warn{margin:0 0 14px;font-size:12.5px;line-height:1.5;color:var(--danger)}.acctpanel__row{display:flex;gap:8px;align-items:center}.acctpanel__row button{flex:1;height:38px;border-radius:7px;font-size:13.5px;font-weight:600}.acctpanel__row button[type=button]{background:var(--surface);color:var(--text)}.acctpanel__row .auth__submit{height:38px;font-size:13.5px}.acctpanel__row .acctpanel__danger{background:var(--danger);color:#fff}.acctpanel__row .acctpanel__danger:hover{filter:brightness(.92)}.auth__note{margin:0 0 20px;font-size:13.5px;line-height:1.55;color:var(--muted)}.auth__forgot{margin:-6px 0 16px;text-align:end}.auth__forgot button{font-size:13px;color:var(--muted)}.auth__forgot button:hover{color:var(--accent);text-decoration:underline}.recur__stop{flex:0 0 auto;width:24px;height:24px;display:grid;place-items:center;border-radius:5px;color:var(--icon-soft);visibility:hidden;cursor:pointer}.recur__row:hover .recur__stop{visibility:visible}.recur__stop:hover{background:var(--pill);color:var(--text-strong)}
