:root{--bg:#14100d;--s1:#1c1611;--s2:#261e17;--line:#33291f;--tx:#f2eae2;--mu:#9a8b7d;--ac:#d4631a;--ac2:#9c4210;--acd:#d4631a33;--bad:#b0544a;--badd:#b0544a24;--num:ui-rounded,"SF Pro Rounded",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--tx);margin:0}body{-webkit-font-smoothing:antialiased;min-height:100dvh;padding:env(safe-area-inset-top) 0 calc(84px + env(safe-area-inset-bottom));font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--ac);outline-offset:2px}.app{max-width:480px;margin:0 auto;padding:0 20px}.top{justify-content:space-between;align-items:baseline;padding:20px 0 4px;display:flex}.brand{font-family:var(--num);letter-spacing:-.01em;font-size:18px;font-weight:800}.brand b{color:var(--ac)}.muted{color:var(--mu)}.small{font-size:13px}.num{font-family:var(--num);font-variant-numeric:tabular-nums}h2{color:var(--mu);margin:28px 0 10px;font-size:15px;font-weight:600}.hero{margin:30px 0 0}.hero-row{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.count{font-family:var(--num);letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:72px;font-weight:800;line-height:.85}.count small{color:var(--mu);letter-spacing:0;margin-left:4px;font-size:19px;font-weight:600}.delta{text-align:right}.delta .d{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:1}.delta.pos .d{color:var(--ac)}.delta.neg .d{color:#e0948a}.delta.zero .d{color:var(--tx)}.delta .l{color:var(--mu);margin-top:4px;font-size:12px}.track{background:var(--s1);height:30px;box-shadow:inset 0 0 0 1px var(--line);border-radius:8px;margin:22px 0 8px;position:relative;overflow:hidden}.track .exp{background:repeating-linear-gradient(-45deg,#f2eae217 0 5px,#f2eae206 5px 10px);position:absolute;inset:0 auto 0 0}.track .done{background:linear-gradient(90deg,var(--ac2),var(--ac));transition:width .6s cubic-bezier(.2,.8,.2,1);position:absolute;inset:0 auto 0 0}.track .seg{background:var(--bg);width:2px;position:absolute;top:0;bottom:0}.track .mark{background:var(--tx);border-radius:2px;width:3px;margin-left:-1.5px;position:absolute;top:-2px;bottom:-2px}.phases{height:16px;color:var(--mu);font-size:11px;position:relative}.phases span{white-space:nowrap;position:absolute;transform:translate(-50%)}.legend{color:var(--mu);gap:18px;margin-top:14px;font-size:13px;display:flex}.legend b{color:var(--tx);font-family:var(--num);font-variant-numeric:tabular-nums}.sw{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.sw.a{background:var(--ac)}.sw.b{background:repeating-linear-gradient(-45deg,#f2eae259 0 2px,#0000 2px 4px);box-shadow:inset 0 0 0 1px #f2eae24d}.logger{background:var(--s1);border:1px solid var(--line);border-radius:20px;margin-top:28px;padding:18px}.lg-head{justify-content:space-between;align-items:flex-end;display:flex}.lg-day{color:var(--mu);font-size:13px}.lg-count{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:1.1}.lg-count span{color:var(--mu);font-size:18px;font-weight:600}.lg-left{color:var(--mu);font-size:14px}.badge{color:var(--bg);background:var(--ac);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700}.mini{background:var(--s2);border-radius:3px;height:6px;margin:14px 0 16px;overflow:hidden}.mini div{background:var(--ac);height:100%;transition:width .4s}.btns{grid-template-columns:1fr 1fr;gap:10px;display:grid}.btn{border:1px solid var(--line);background:var(--s2);cursor:pointer;border-radius:14px;height:58px;font-size:19px;font-weight:700;transition:transform 80ms,background .15s}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.35;cursor:default;transform:none}.btn.primary{background:var(--ac);border-color:var(--ac);color:#1a0c03}.btn.primary small{opacity:.7;margin-left:4px;font-size:15px;font-weight:600}.btn.wide{width:100%;height:50px;margin-top:12px;font-size:16px}.btn.quiet{height:50px;font-size:16px}.btn.danger{color:#e0948a;background:0 0}.custom{grid-template-columns:1fr 96px;gap:10px;margin-top:10px;display:grid}.custom input{border:1px solid var(--line);background:var(--bg);height:58px;font-size:19px;font-family:var(--num);border-radius:14px;min-width:0;padding:0 16px;font-weight:700}.custom input::placeholder{color:var(--mu);font-family:inherit;font-size:16px;font-weight:500}.sets{border-top:1px solid var(--line);margin:16px 0 0;padding:0;list-style:none}.sets li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 0;display:flex}.sets li:last-child{border-bottom:0}.sets .t{color:var(--mu);flex:1;font-size:14px}.sets b{font-family:var(--num);font-size:18px}.x{width:34px;height:34px;color:var(--mu);cursor:pointer;background:0 0;border:0;border-radius:10px;font-size:20px}.x:hover{background:var(--s2);color:var(--tx)}.wait{background:var(--s1);border:1px solid var(--line);text-align:center;border-radius:20px;margin-top:28px;padding:28px 18px}.wait .big{font-family:var(--num);margin:6px 0 0;font-size:44px;font-weight:800}.month{justify-content:space-between;align-items:baseline;margin:26px 0 14px;display:flex}.month h1{font-family:var(--num);letter-spacing:-.02em;margin:0;font-size:26px;font-weight:800}.stats{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px;display:grid}.stat{background:var(--s1);border:1px solid var(--line);border-radius:14px;padding:12px}.stat b{font-family:var(--num);font-variant-numeric:tabular-nums;font-size:24px;display:block}.stat span{color:var(--mu);font-size:12px}.stat.ok b{color:var(--ac)}.stat.bad b{color:#e0948a}.wk,.grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.wk{color:var(--mu);text-align:center;margin-bottom:6px;font-size:11px}.cell{aspect-ratio:1;border:1px solid var(--line);background:var(--s1);cursor:pointer;--p:0%;background-image:linear-gradient(to top,var(--acd) var(--p),transparent var(--p));border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0;display:flex}.cell .dn{font-family:var(--num);font-size:16px;font-weight:700;line-height:1}.cell .dc{color:var(--mu);font-variant-numeric:tabular-nums;font-size:10px}.cell.done{background:var(--ac);border-color:var(--ac);color:#1a0c03}.cell.done .dc{color:#1a0c03a6}.cell.missed{background:var(--badd);border-color:#b0544a73}.cell.missed .dn{color:#e0948a}.cell.partial{border-color:#d4631a73}.cell.today{box-shadow:inset 0 0 0 2px var(--ac);border-color:var(--ac)}.cell.future{opacity:.4;cursor:default}.keys{color:var(--mu);flex-wrap:wrap;gap:14px;margin-top:16px;font-size:12px;display:flex}.keys i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.panel{background:var(--s1);border:1px solid var(--line);border-radius:20px;padding:6px 18px 18px}.row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.row:last-of-type{border-bottom:0}.row input[type=time],.row input[type=date],.row select{background:var(--s2);border:1px solid var(--line);border-radius:10px;min-width:120px;padding:8px 10px;font-size:16px}.hint{color:var(--mu);margin:12px 0 0;font-size:13px;line-height:1.5}.note{background:var(--acd);border-radius:12px;margin:12px 0 4px;padding:12px 14px;font-size:14px}.switch{flex:none;width:52px;height:32px;position:relative}.switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.switch span{background:var(--s2);border:1px solid var(--line);pointer-events:none;border-radius:999px;transition:all .2s;position:absolute;inset:0}.switch span:after{content:"";background:var(--mu);border-radius:50%;width:24px;height:24px;transition:all .2s;position:absolute;top:3px;left:3px}.switch input:checked+span{background:var(--ac);border-color:var(--ac)}.switch input:checked+span:after{background:#1a0c03;transform:translate(20px)}.switch input:focus-visible+span{outline:2px solid var(--ac);outline-offset:2px}.tabs{z-index:5;padding:8px 0 calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);background:#14100de0;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tabs div{grid-template-columns:repeat(3,1fr);width:100%;max-width:480px;display:grid}.tabs a{color:var(--mu);flex-direction:column;align-items:center;gap:3px;padding:6px 0;font-size:11px;font-weight:600;text-decoration:none;display:flex}.tabs a svg{width:24px;height:24px}.tabs a.on{color:var(--ac)}dialog{padding:20px 20px calc(24px + env(safe-area-inset-bottom));background:var(--bg);width:100%;max-width:480px;max-height:88dvh;color:var(--tx);border:0;border-top:1px solid var(--line);border-radius:24px 24px 0 0;margin:auto auto 0}dialog[open]{animation:.28s cubic-bezier(.2,.8,.2,1) up}dialog::backdrop{background:#0009}dialog .logger{margin-top:12px}.sh-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.sh-head h3{font-family:var(--num);margin:0;font-size:22px}.close{background:var(--s2);cursor:pointer;border:0;border-radius:999px;padding:8px 14px;font-weight:600}@keyframes up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}#toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));background:var(--tx);color:var(--bg);opacity:0;pointer-events:none;z-index:20;white-space:nowrap;border-radius:12px;padding:10px 16px;font-size:14px;font-weight:600;transition:all .25s;position:fixed;transform:translate(-50%,20px)}#toast.on{opacity:1;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.tag{border:1px solid var(--ac);color:var(--ac);letter-spacing:.04em;text-transform:uppercase;vertical-align:3px;border-radius:999px;margin-left:8px;padding:2px 7px;font-family:inherit;font-size:11px;font-weight:700}
