/* FiraGO — SIL Open Font License 1.1 (fonts/OFL.txt). */
@font-face{font-family:"FiraGO";src:url("/fonts/FiraGO-Regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"FiraGO";src:url("/fonts/FiraGO-Medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"FiraGO";src:url("/fonts/FiraGO-SemiBold.woff2") format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"FiraGO";src:url("/fonts/FiraGO-Bold.woff2") format("woff2");font-weight:700;font-display:swap}
:root{--ac:#0f9d76;--ac-2:#dff5ec;--ac-tx:#fff;--bg:#f2f5f4;--card:#fff;--field:#f1f4f3;--tx:#14201b;--mu:#66756f;--bd:#e3e9e6;--red:#d33a3a;--red-2:#fdecec;--gold:#e29b00;
  --sh:0 1px 2px rgba(16,32,26,.05),0 8px 24px rgba(16,32,26,.06);--sh-lg:0 12px 44px rgba(16,32,26,.22);--r:20px;--r-sm:13px;--tabbar:64px;--safe-b:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root{--ac:#41d6a6;--ac-2:#173a2f;--ac-tx:#06231a;--bg:#0d1311;--card:#161e1b;--field:#1e2824;--tx:#e9f1ee;--mu:#93a39d;--bd:#26322d;--red:#ff7b7b;--red-2:#3a1e22;--gold:#f5c04a;
  --sh:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.28);--sh-lg:0 12px 44px rgba(0,0,0,.6)}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"FiraGO",-apple-system,BlinkMacSystemFont,"Noto Sans Georgian",sans-serif;background:var(--bg);color:var(--tx);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;min-height:100vh}
button{font-family:inherit;cursor:pointer;color:inherit}
[hidden]{display:none!important}
.top{position:sticky;top:0;z-index:5;padding:calc(10px + env(safe-area-inset-top)) 18px 10px;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px)}
.brand{display:flex;align-items:center;gap:12px;max-width:640px;margin:0 auto}
.logo{width:40px;height:40px;border-radius:13px;background:var(--ac);display:grid;place-items:center;font-size:20px;flex:none}
.brand h1{font-size:17px;margin:0;font-weight:700}.brand .sub{margin:0;font-size:12.5px;color:var(--mu)}.brand .grow{flex:1;min-width:0}
.out{border:0;background:var(--card);box-shadow:var(--sh);border-radius:12px;padding:0 12px;height:38px;font-size:13.5px;font-weight:500;color:var(--mu)}
main{max-width:640px;margin:0 auto;padding:4px 16px calc(var(--tabbar) + var(--safe-b) + 28px)}
.view{display:none}.view.active{display:block;animation:vi .25s cubic-bezier(.2,.8,.2,1)}
@keyframes vi{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
h2{font-size:26px;font-weight:700;letter-spacing:-.02em;margin:6px 2px 14px}
h3{font-size:17px;margin:0 0 12px;font-weight:600;display:flex;justify-content:space-between;align-items:center;gap:8px}
.card{background:var(--card);border-radius:var(--r);padding:16px;margin-bottom:12px;box-shadow:var(--sh)}
label{display:block;font-size:13px;font-weight:500;color:var(--mu);margin-bottom:14px}
input{display:block;width:100%;margin-top:6px;font:inherit;font-size:16px;color:var(--tx);padding:11px 14px;border:1.5px solid transparent;border-radius:var(--r-sm);background:var(--field);min-height:48px;-webkit-appearance:none;appearance:none}
input:focus{outline:none;border-color:var(--ac);background:var(--card)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:14px;min-height:50px;font-size:16px;font-weight:600;background:var(--ac);color:var(--ac-tx);box-shadow:0 6px 18px color-mix(in srgb,var(--ac) 28%,transparent)}
.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6}
.btn.ghost{background:var(--field);color:var(--tx);box-shadow:none}.btn.danger{background:var(--red-2);color:var(--red);box-shadow:none}
.btn.sm{min-height:34px;font-size:13.5px;width:auto;padding:0 12px;border-radius:10px;box-shadow:none;background:var(--ac-2);color:var(--ac)}
.row-btns{display:flex;gap:8px}.row-btns>*{flex:1}
.err{color:var(--red);font-size:13px;font-weight:500;margin:-4px 2px 10px}.err:empty{display:none}
/* ring */
.hero{display:flex;flex-direction:column;align-items:center;padding:20px 16px 18px}
.ring{position:relative;width:230px;height:230px}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:18;stroke-linecap:round}
.ring .bg{stroke:var(--field)}.ring .fg{stroke:var(--ac);transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1)}
.ring .fg.done{stroke:var(--gold)}
.ring .in{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ring .n{font-size:44px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;line-height:1.05}
.ring .g{font-size:14px;color:var(--mu)}.ring .pc{font-size:13px;font-weight:600;color:var(--ac);margin-top:4px}
.hero .meta{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;justify-content:center;font-size:13.5px;color:var(--mu)}
.pill{background:var(--field);border-radius:999px;padding:6px 12px;font-weight:500}
.pill.link{border:0;color:var(--ac);background:var(--ac-2)}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.stat{background:var(--card);border-radius:var(--r);padding:14px 16px;box-shadow:var(--sh)}
.stat .k{font-size:12.5px;color:var(--mu);font-weight:500}.stat .v{font-size:24px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat .d{font-size:12.5px;color:var(--mu)}
.stat.wide{grid-column:1/-1}
/* bars */
.chart{position:relative;display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:14px}
.chart.month{gap:2px}
.chart .col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.chart .b{width:100%;max-width:34px;border-radius:7px 7px 3px 3px;background:color-mix(in srgb,var(--ac) 45%,var(--field));min-height:3px}
.chart.month .b{border-radius:3px 3px 1px 1px}
.chart .b.hit{background:var(--ac)}.chart .b.today{outline:2px solid var(--gold);outline-offset:1px}
.chart .l{font-size:11px;color:var(--mu);margin-top:5px;height:15px;white-space:nowrap}
.chart .goal{position:absolute;left:0;right:0;border-top:1.5px dashed var(--gold);pointer-events:none}
.chart .goal span{position:absolute;right:0;top:-17px;font-size:10.5px;color:var(--gold);font-weight:600;background:var(--card);padding:0 3px}
.nav{display:flex;gap:6px}.nav button{width:34px;height:34px;border:0;border-radius:10px;background:var(--field);font-size:16px}.nav button:disabled{opacity:.35}
.chart-foot{display:flex;justify-content:space-between;font-size:13px;color:var(--mu);margin-top:10px}
/* list */
.list{list-style:none;margin:0;padding:0}
.item{display:flex;align-items:center;gap:12px;background:var(--card);padding:12px 14px;border-radius:16px;margin-bottom:6px;box-shadow:var(--sh)}
.item .mid{flex:1;min-width:0}.item .t{font-weight:600;font-size:15px}.item .s{font-size:13px;color:var(--mu)}
.item .amt{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.item .amt small{display:block;font-weight:500;font-size:12px;color:var(--mu)}
.item button.x{border:0;background:none;color:var(--mu);font-size:17px;width:34px;height:34px;border-radius:10px}
.item .dot{width:10px;height:10px;border-radius:50%;background:var(--field);flex:none}.item .dot.hit{background:var(--ac)}
.empty{text-align:center;color:var(--mu);padding:26px 10px;font-size:14px}
.hint{font-size:13px;color:var(--mu);margin:8px 2px 0}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:6;display:flex;justify-content:center;gap:4px;padding:6px 8px calc(6px + var(--safe-b));background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);border-top:1px solid var(--bd)}
.tab{flex:1;max-width:150px;border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border-radius:12px;font-size:11.5px;font-weight:500;color:var(--mu)}
.tab .e{font-size:20px;line-height:1;filter:grayscale(1);opacity:.7}.tab.active{color:var(--ac)}.tab.active .e{filter:none;opacity:1}
dialog{border:0;border-radius:22px;padding:0;background:var(--card);color:var(--tx);width:min(420px,calc(100% - 28px));box-shadow:var(--sh-lg)}
dialog::backdrop{background:rgba(5,15,10,.45)}.dlg{padding:18px}
.toast{position:fixed;left:50%;bottom:calc(var(--tabbar) + var(--safe-b) + 14px);transform:translateX(-50%) translateY(20px);opacity:0;background:var(--tx);color:var(--bg);padding:11px 18px;border-radius:14px;font-size:14px;font-weight:500;transition:.25s;z-index:20;pointer-events:none;max-width:90%;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%)}
.top .out+.out{margin-left:-4px}
#sc-btn{padding:0 10px;font-size:17px}
.lbl{font-size:13px;font-weight:500;color:var(--mu);margin:14px 0 6px}
.copy-row{display:flex;gap:8px;align-items:center}
.copy-row code,.tok{flex:1;min-width:0;display:block;background:var(--field);border-radius:11px;padding:9px 12px;font:500 13.5px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all;user-select:all;-webkit-user-select:all}
.x-close{border:0;background:var(--field);width:34px;height:34px;border-radius:10px;color:var(--mu);font-size:15px}
.btn.copied{background:var(--ac);color:var(--ac-tx)}
