:root{--bg: var(--tg-theme-bg-color, #ffffff);--bg-2: var(--tg-theme-secondary-bg-color, #f1f2f6);--text: var(--tg-theme-text-color, #15171c);--hint: var(--tg-theme-hint-color, #868b96);--link: var(--tg-theme-link-color, #2a78d6);--accent: var(--tg-theme-button-color, #2a78d6);--accent-text: var(--tg-theme-button-text-color, #ffffff);--danger: var(--tg-theme-destructive-text-color, #e0454b);--good: #1f9d57;--warn: #d08a08;--bad: #e0454b;--good-bg: color-mix(in srgb, var(--good) 13%, transparent);--warn-bg: color-mix(in srgb, var(--warn) 15%, transparent);--bad-bg: color-mix(in srgb, var(--bad) 13%, transparent);--line: color-mix(in srgb, var(--hint) 20%, transparent);--raise: color-mix(in srgb, var(--hint) 11%, transparent);--radius: 16px;--radius-sm: 10px;--gap: 12px}@media(prefers-color-scheme:dark){:root:not([data-scheme=light]){--bg: var(--tg-theme-bg-color, #17181c);--bg-2: var(--tg-theme-secondary-bg-color, #0e0f12);--text: var(--tg-theme-text-color, #f1f2f5);--hint: var(--tg-theme-hint-color, #8e939e);--good: #3cc47a;--warn: #e6a92a;--bad: #f0666b;color-scheme:dark}}:root[data-scheme=dark]{--good: #3cc47a;--warn: #e6a92a;--bad: #f0666b;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{margin:0;background:var(--bg-2);color:var(--text);font:15px/1.42 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,sans-serif;overscroll-behavior-y:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}input,select,textarea{font:inherit;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100%;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.screen{padding:var(--gap);display:flex;flex-direction:column;gap:var(--gap);max-width:640px;margin:0 auto}.card{background:var(--bg);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px}.card--tight{gap:0;padding:4px 0}.row{display:flex;align-items:center;gap:10px}.row--between{justify-content:space-between}.row--top{align-items:flex-start}.col{display:flex;flex-direction:column;gap:3px;min-width:0}.grow{flex:1;min-width:0}.wrap{flex-wrap:wrap}.title{font-size:21px;font-weight:700;letter-spacing:-.2px;margin:0;text-wrap:balance}.h2{font-size:16px;font-weight:650;margin:0}.label{font-size:12px;font-weight:650;color:var(--hint);text-transform:uppercase;letter-spacing:.7px;margin:8px 4px -4px}.hint{color:var(--hint);font-size:13px}.small{font-size:13px}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero{padding:18px 16px 16px;gap:6px}.hero__label{font-size:13px;color:var(--hint)}.hero__value{font-size:38px;line-height:1.05;font-weight:750;letter-spacing:-.8px;font-variant-numeric:tabular-nums}.hero__sub{font-size:14px;color:var(--hint)}.split{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--raise);margin-top:8px}.split>i{display:block;height:100%}.legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--hint)}.legend b{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:0}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{background:var(--raise);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:2px}.stat__v{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}.stat__k{font-size:12px;color:var(--hint)}.item{display:flex;align-items:center;gap:12px;padding:11px 14px;text-align:left;width:100%}.item+.item{border-top:1px solid var(--line)}button.item:active{background:var(--raise)}.item__icon{width:34px;height:34px;border-radius:10px;background:var(--raise);display:grid;place-items:center;flex:none;font-size:17px}.item__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.item__side{text-align:right;display:flex;flex-direction:column;gap:1px;align-items:flex-end}.chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--raise);color:var(--hint);white-space:nowrap}.chip--good{background:var(--good-bg);color:var(--good)}.chip--warn{background:var(--warn-bg);color:var(--warn)}.chip--bad{background:var(--bad-bg);color:var(--bad)}.chip--accent{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.track{height:6px;border-radius:3px;background:var(--raise);overflow:hidden}.track>i{display:block;height:100%;border-radius:3px;background:var(--accent)}.notice{border-radius:var(--radius-sm);padding:10px 12px;font-size:14px;background:var(--warn-bg)}.notice--bad{background:var(--bad-bg)}.notice--good{background:var(--good-bg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 16px;border-radius:12px;font-weight:600;background:var(--accent);color:var(--accent-text)}.btn[disabled]{opacity:.5}.btn--ghost{background:var(--raise);color:var(--text)}.btn--danger{background:var(--bad-bg);color:var(--bad)}.btn--block{width:100%}.btn--sm{min-height:34px;padding:0 12px;font-size:14px;border-radius:10px}.link{color:var(--link);font-weight:600;font-size:14px}.field{display:flex;flex-direction:column;gap:5px}.field>span{font-size:13px;color:var(--hint)}.input{width:100%;min-height:44px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);outline:none}.input:focus{border-color:var(--accent)}.input--big{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;min-height:56px}.form{display:flex;flex-direction:column;gap:12px}.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.seg{display:flex;background:var(--raise);border-radius:12px;padding:3px;gap:3px;overflow-x:auto}.seg button{flex:1;min-height:34px;padding:0 10px;border-radius:9px;font-size:14px;font-weight:600;color:var(--hint);white-space:nowrap}.seg button[data-on="1"]{background:var(--bg);color:var(--text);box-shadow:0 1px 2px #0000001f}.cats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.cats button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px;border-radius:12px;background:var(--raise);font-size:12px;line-height:1.2;text-align:center}.cats button[data-on="1"]{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-weight:600}.cats button span:first-child{font-size:20px}.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.switch input{width:44px;height:26px;accent-color:var(--accent)}.tabs{position:fixed;left:0;right:0;bottom:0;z-index:10;display:flex;background:var(--bg);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabs button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:7px 2px 8px;font-size:11px;color:var(--hint)}.tabs button[data-on="1"]{color:var(--accent);font-weight:600}.tabs .tab-icon{font-size:20px;line-height:1.2}.fab{position:fixed;right:16px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:11;width:54px;height:54px;border-radius:50%;background:var(--accent);color:var(--accent-text);font-size:30px;line-height:1;box-shadow:0 6px 18px #00000038}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0000006b;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:640px;max-height:92vh;overflow-y:auto;background:var(--bg-2);border-radius:20px 20px 0 0;padding:8px 14px calc(18px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}.sheet>*{flex-shrink:0}.sheet__grip{width:38px;height:5px;border-radius:3px;background:var(--line);margin:2px auto 4px}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(140px + env(safe-area-inset-bottom));z-index:30;background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;font-size:14px;max-width:90vw}.spinner{width:28px;height:28px;margin:40vh auto 0;border:3px solid var(--raise);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.empty{padding:40px 24px;text-align:center;color:var(--hint)}.day-head{display:flex;justify-content:space-between;align-items:baseline;padding:10px 14px 4px;font-size:13px;color:var(--hint);font-weight:600}
