@font-face{font-family:'Onest';font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/onest-cyrillic.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Onest';font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/onest-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{--r:28px;
  --bg:#F4F2EB;--card:#FFFFFF;--ink:#1E2420;--muted:#8A8F87;--line:#E6E4DB;--acc:#2E8A5C;--soft:#E1EFE6;--path:#D4D2C8;
  --top:env(safe-area-inset-top,0px);--bot:env(safe-area-inset-bottom,0px);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#14161B;--card:#1D2027;--ink:#ECEAE4;--muted:#80858F;--line:#2A2E37;--acc:#5CC28C;--soft:#1E3529;--path:#363C48;color-scheme:dark}}
:root[data-theme="dark"]{--bg:#14161B;--card:#1D2027;--ink:#ECEAE4;--muted:#80858F;--line:#2A2E37;--acc:#5CC28C;--soft:#1E3529;--path:#363C48;color-scheme:dark}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden}
body{font-family:'Onest',system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--ink);transition:background .4s;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1{font-size:30px;font-weight:600;letter-spacing:-.02em;margin:0;line-height:1.2}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;background:var(--bg);padding:1px 5px;border-radius:6px;overflow-wrap:anywhere}
.ic{width:1em;height:1em;flex:none;display:block}

/* страницы */
.pg{position:fixed;inset:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;
  transition:transform .45s cubic-bezier(.3,.7,.2,1),opacity .35s}
#pgP{background:var(--bg)}
.pre *,.pre *::before{transition:none!important}
.pg::-webkit-scrollbar{display:none}
.col{max-width:520px;margin:0 auto}
.today{padding:calc(30px + var(--top)) 20px calc(100px + var(--bot))}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.date{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px}
.date .ic{font-size:13px}
.today h1{margin:6px 0 4px}
.sum{font-size:14px;color:var(--muted);margin-bottom:24px;font-variant-numeric:tabular-nums}
.tb{margin:-8px -8px -8px 0}

/* карточки задач */
.card{background:var(--card);border-radius:var(--r);padding:18px;margin-bottom:12px;transition:background .4s}
.row{display:flex;align-items:center;gap:14px}
.cb{width:26px;height:26px;flex:none;border-radius:50%;border:2px solid var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s,border-color .25s,transform .15s}
.cb:active{transform:scale(.88)}
.cb svg path{stroke-dasharray:14;stroke-dashoffset:14;transition:stroke-dashoffset .3s ease .08s}
.done .cb{background:var(--acc);border-color:var(--acc)}
.done .cb svg path{stroke-dashoffset:0}
.done .tt{color:var(--muted)}
.tt{flex:1;min-width:0;font-size:15.5px;font-weight:500;line-height:1.35;cursor:pointer;text-align:left;transition:color .3s;overflow-wrap:anywhere}
.mn{font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.mn .ic{font-size:12.5px}
.ib{width:34px;height:34px;flex:none;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--muted);font-size:19px;cursor:pointer;transition:background .2s,color .2s}
.row .ib{margin:-6px -8px -6px -6px}
.ib.has{color:var(--acc)}
@media (hover:hover){.ib:hover{background:var(--bg);color:var(--ink)}.ib.has:hover{color:var(--acc)}}
.ex{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}
.ex.open{grid-template-rows:1fr}
.ex>div{min-height:0;overflow:hidden;padding-left:40px}
.desc{font-size:13.5px;color:var(--muted);line-height:1.55;padding-top:12px}
.desc p{margin:0 0 8px}
.desc .lbl{font-size:12px;margin:12px 0 6px;color:var(--muted);font-weight:500}
.desc ol{margin:0;padding:0;list-style:none;counter-reset:s}
.desc li{position:relative;padding-left:22px;margin-bottom:6px;color:var(--ink);counter-increment:s}
.desc li::before{content:counter(s);position:absolute;left:0;top:0;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.desc .more{display:inline-flex;align-items:center;gap:4px;margin-top:6px;color:var(--acc);font-size:13px}
.desc .more .ic{font-size:13px}
textarea,input[type=password]{display:block;width:100%;background:var(--bg);color:var(--ink);border:none;outline:none;border-radius:calc(var(--r)*.6);font:inherit;font-size:16px;padding:12px 14px;transition:background .4s}
textarea{margin-top:12px;resize:none;height:64px;font-size:13.5px;line-height:1.45}
@supports (-webkit-touch-callout:none){textarea{font-size:16px}}
textarea::placeholder,input::placeholder{color:var(--muted)}
.to-plan{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px;font-size:13.5px;color:var(--muted)}
.to-plan .go{color:var(--acc);display:flex;align-items:center;gap:4px;white-space:nowrap}
.to-plan .go .ic{font-size:13.5px}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:28px 18px}
.empty .ic{font-size:28px;color:var(--acc);margin-bottom:4px}
.empty b{font-weight:600;font-size:16px}
.empty span{font-size:13.5px;color:var(--muted);line-height:1.5}
.note{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;line-height:1.5}
.note .ic{font-size:19px;color:var(--muted);margin-top:1px}
.note button{color:var(--acc);margin-top:6px;font-size:13.5px}
.sk{height:62px;opacity:.55}

/* навигация */
.nav{position:fixed;left:0;right:0;margin:0 auto;bottom:calc(16px + var(--bot));width:calc(100% - 32px);max-width:488px;height:60px;padding:6px;display:flex;background:var(--card);border-radius:var(--r);z-index:5;transition:background .4s}
.ind{position:absolute;top:6px;bottom:6px;left:6px;width:calc(50% - 6px);background:var(--soft);border-radius:calc(var(--r) - 6px);transition:transform .45s cubic-bezier(.3,.7,.2,1),background .4s}
.nv{flex:1;position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .3s}
.nv .ic{font-size:20px}
.nv.on{color:var(--acc)}

/* весь план */
.bar{position:sticky;top:0;z-index:2;padding:calc(30px + var(--top)) 20px 18px}
.bar h1{margin-bottom:16px}
.bar .top{align-items:flex-start}
.cnt-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;font-variant-numeric:tabular-nums}
#cnt{font-size:14px;color:var(--muted)}
.pct{font-size:20px;font-weight:600;color:var(--acc)}
.trk{height:12px;border-radius:99px;background:var(--line);overflow:hidden;transition:background .4s}
.fill{height:100%;width:0;background:var(--acc);border-radius:99px;transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
#snk{position:relative;margin-bottom:calc(96px + var(--bot))}
.tl{position:absolute}
.tl .k{font-size:12px;color:var(--muted);display:flex;gap:5px;align-items:center}
.tl .k .ic{font-size:15px}
.tl .n{font-size:17px;line-height:1.3}
.tl .s{font-size:12px;color:var(--muted)}
.pulse{transform-box:fill-box;transform-origin:center;animation:pulse 1.8s ease-out infinite}
@keyframes pulse{from{transform:scale(1);opacity:.5}to{transform:scale(2.8);opacity:0}}
.seg{animation:segin .45s ease both}
@keyframes segin{from{opacity:0}to{opacity:1}}

/* вход и сообщения */
.login{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--bg)}
.login[hidden]{display:none}
.login form{width:100%;max-width:340px;padding:28px 22px 22px;text-align:center}
.lock{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;background:var(--soft);color:var(--acc);display:flex;align-items:center;justify-content:center;font-size:24px}
.login h2{margin:0 0 6px;font-size:22px;font-weight:600;letter-spacing:-.01em}
.login p{margin:0 0 18px;font-size:13.5px;color:var(--muted);line-height:1.5}
.login p.err{color:#C0563F}
.btn{display:block;width:100%;margin-top:12px;height:48px;border-radius:99px;background:var(--acc);color:#fff;font-weight:500;font-size:15px;transition:opacity .2s,transform .15s}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.6}
.toast{position:fixed;left:50%;bottom:calc(88px + var(--bot));transform:translate(-50%,12px);max-width:calc(100% - 40px);padding:10px 16px;border-radius:99px;background:var(--ink);color:var(--bg);font-size:13.5px;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:20;text-align:center}
.toast.on{opacity:1;transform:translate(-50%,0)}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
