:root{--bg: #f7f6f3;--card: #fff;--text: #1a1a1a;--text2: #888;--text3: #bbb;--warm: #e8590c;--cool: #2f9e44;--dark: #1a1a1a;--r: 16px;font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;color:var(--text)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg)}.app{max-width:520px;margin:0 auto;padding:0 16px;min-height:100dvh;padding-bottom:calc(max(10px,env(safe-area-inset-bottom,10px)) + 76px)}.auth-page{min-height:100dvh;display:flex;align-items:center;justify-content:center}.auth-center{text-align:center;width:100%;max-width:340px;padding:20px;animation:up .4s ease}@keyframes up{0%{opacity:0;transform:translateY(16px)}}.auth-title{font-size:34px;font-weight:800;letter-spacing:-.04em}.auth-sub{font-size:15px;color:var(--text2);margin-bottom:28px}.auth-card{background:var(--card);border-radius:22px;padding:24px 22px 20px;box-shadow:0 2px 4px #00000005,0 12px 36px #0000000f}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-input{width:100%;padding:14px 16px;border:1.5px solid rgba(0,0,0,.06);border-radius:14px;background:var(--bg);font-size:15px;font-family:inherit;color:var(--text);outline:none;transition:border-color .2s,transform .15s}.auth-input:focus{border-color:var(--dark);transform:scale(1.01)}.auth-input::placeholder{color:var(--text3)}.auth-toggle{font-size:13px;color:var(--text2);margin-top:14px}.auth-toggle button{background:none;border:none;color:var(--text);font-weight:700;font-family:inherit;font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.btn-go{width:100%;padding:14px;border:none;border-radius:14px;background:var(--dark);color:#fff;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;margin-top:4px;transition:transform .15s}.btn-go:hover{transform:translateY(-1px)}.btn-go:active{transform:scale(.97)}.error-msg{color:#dc2626;font-size:13px;text-align:center;padding:8px 12px;background:#dc26260f;border-radius:10px;animation:shake .35s ease}@keyframes shake{20%,60%{transform:translate(-3px)}40%,80%{transform:translate(3px)}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;animation:fade .15s;-webkit-overflow-scrolling:touch}@keyframes fade{0%{opacity:0}}.modal{position:relative;width:100%;max-width:380px;background:var(--card);border-radius:24px;padding:28px 22px 22px;box-shadow:0 20px 50px #0000001f;margin:auto 0}.pop{animation:pop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes pop{0%{opacity:0;transform:scale(.92)}}.modal-x{position:absolute;top:12px;right:12px;width:28px;height:28px;border:none;border-radius:50%;background:#0000000d;color:var(--text2);font-size:15px;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .2s}.modal-x:hover{transform:rotate(90deg)}.modal-av{width:56px;height:56px;border-radius:50%;background:var(--dark);color:#fff;font-size:22px;font-weight:800;display:flex;align-items:center;justify-content:center;margin:0 auto 8px}.modal-t{text-align:center;font-size:18px;font-weight:800}.modal-s{text-align:center;font-size:12px;color:var(--text3);margin-bottom:18px}.mform{display:flex;flex-direction:column;gap:10px}.mrow{display:flex;gap:8px}.mwrap{flex:1;position:relative}.mi{width:100%;padding:12px 14px;border:1.5px solid rgba(0,0,0,.06);border-radius:12px;background:var(--bg);font-size:16px;font-family:inherit;color:var(--text);outline:none;transition:border-color .2s}.mi:focus{border-color:var(--dark)}.mi::placeholder{color:var(--text3)}.mu{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px;font-weight:700;color:var(--text3);pointer-events:none}.seg{display:grid;grid-template-columns:1fr 1fr;background:#0000000a;border-radius:10px;padding:3px}.seg-b{padding:9px;border:none;border-radius:8px;background:transparent;font-family:inherit;font-size:13px;font-weight:600;color:var(--text2);cursor:pointer;transition:all .2s}.seg-b--on{background:var(--card);color:var(--text);box-shadow:0 1px 4px #0000000f}.ml{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;flex:1}.bmr-pill{text-align:center;font-size:13px;font-weight:600;padding:12px;background:var(--bg);border-radius:12px;color:var(--text2)}.projection{padding:14px;border-radius:12px;text-align:center}.projection--w{background:#e8590c0f}.projection--c{background:#2f9e440f}.proj-title{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);margin-bottom:4px}.proj-avg{display:block;font-size:13px;color:var(--text2);margin-bottom:2px}.proj-result{display:block;font-size:16px;font-weight:800;font-variant-numeric:tabular-nums}.projection--w .proj-result{color:var(--warm)}.projection--c .proj-result{color:var(--cool)}.signout-btn{display:block;width:100%;padding:12px;margin-top:16px;border:none;border-top:1px solid rgba(0,0,0,.05);background:none;font-family:inherit;font-size:14px;font-weight:600;color:#dc2626;cursor:pointer;border-radius:0 0 14px 14px;transition:background .15s}.signout-btn:hover{background:#dc26260a}.signout-btn:active{background:#dc262614}.c-warm{color:var(--warm)}.c-cool{color:var(--cool)}.page{display:flex;flex-direction:column;gap:10px}.glass{background:#ffffffa6;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid rgba(255,255,255,.4);box-shadow:0 1px 8px #0000000f}.date-bar{display:flex;align-items:center;justify-content:center;gap:2px;padding:6px;border-radius:16px;position:sticky;top:8px;z-index:20;margin:8px 0 16px}.date-arr{width:32px;height:32px;border:none;border-radius:10px;background:transparent;color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s;flex-shrink:0}.date-arr:hover{transform:scale(1.1)}.date-arr:active{transform:scale(.88)}.date-arr:disabled{opacity:.15;cursor:default}.date-center{text-align:center;flex:1;cursor:pointer;padding:4px 8px;border-radius:10px;border:none;background:none;font-family:inherit;transition:transform .12s}.date-center:active{transform:scale(.96)}.date-label{display:block;font-size:16px;font-weight:800;letter-spacing:-.02em;color:var(--text)}.date-full{display:block;font-size:10px;color:var(--text3);margin-top:1px}.cal-nav{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:16px}.cal-arr{width:32px;height:32px;border:none;border-radius:10px;background:#0000000a;color:var(--text2);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s}.cal-arr:hover{transform:scale(1.08)}.cal-arr:active{transform:scale(.92)}.cal-month{font-size:16px;font-weight:700;min-width:140px;text-align:center}.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.cal-dh{text-align:center;font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;padding:4px}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day{border:none;background:none;font-family:inherit;font-size:14px;font-weight:500;color:var(--text);padding:10px 4px;border-radius:10px;cursor:pointer;position:relative;transition:all .15s}.cal-day:hover{background:#0000000a}.cal-day:active{transform:scale(.9)}.cal-day--on{background:var(--dark);color:#fff;font-weight:700}.cal-day--on:hover{background:var(--dark)}.cal-day--today{font-weight:800}.cal-day--today:not(.cal-day--on){color:var(--warm)}.cal-day--future{opacity:.25;cursor:default}.cal-dot{position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:50%;background:var(--cool)}.cal-day--on .cal-dot{background:#fff}.stats{padding:14px;animation:up .3s ease;background:var(--card);border-radius:var(--r);border:1px solid rgba(0,0,0,.05)}.stat-hero{text-align:center;font-size:36px;font-weight:800;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1;padding-bottom:10px}.stat-hero span{font-size:16px;font-weight:500;opacity:.5}.stat-hero--w{color:var(--warm)}.stat-hero--c{color:var(--cool)}.goal-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.goal-cal{font-size:22px;font-weight:800;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--text)}.goal-of{font-size:13px;font-weight:600;color:var(--text3)}.goal-delta{font-size:15px;font-weight:800;font-variant-numeric:tabular-nums}.goal-bar{height:6px;background:#0000000d;border-radius:100px;overflow:hidden;margin-bottom:10px}.goal-fill{height:100%;border-radius:100px;background:var(--cool);transition:width .4s ease,background .3s}.stat-pills{display:flex;gap:6px;flex-wrap:wrap}.pill{display:flex;align-items:baseline;gap:3px;padding:5px 10px;border-radius:8px;font-size:11px;font-weight:600;color:var(--text3);background:#00000006;white-space:nowrap}.pill--w{background:#fff4ed;color:var(--warm)}.pill--c{background:#edf8f0;color:var(--cool)}.pill--macro{color:var(--text3)}.pill-n{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.pill-sep{opacity:.3;margin:0 1px}.hint-btn{display:block;width:100%;padding:8px;margin-top:10px;border:none;background:#e8590c0f;border-radius:8px;font-family:inherit;font-size:12px;color:var(--warm);cursor:pointer;transition:transform .15s}.hint-btn:hover{transform:scale(1.02)}.card-grid{padding:14px;background:var(--card);border-radius:var(--r);border:1px solid rgba(0,0,0,.05)}.grid{display:grid;grid-template-columns:repeat(15,1fr);gap:3px}.g{width:100%;aspect-ratio:1;border:none;border-radius:3px;background:#0000000a;cursor:pointer;position:relative;padding:0;transition:transform .12s}.g:hover{transform:scale(1.3)}.g--on{box-shadow:0 0 0 1.5px var(--text);border-radius:4px}.g--green{background:#b8f0a0}.g--orange{background:#fdd09a}.g--red{background:#fca5a5}.g--workout{border:2px solid var(--cool)}.trend-wrap{padding:14px 14px 12px;background:var(--card);border-radius:var(--r);border:1px solid rgba(0,0,0,.05)}.chart{width:100%;height:40px;display:block}.trend-legend{display:flex;gap:14px;justify-content:center;margin-top:8px}.tl{font-size:10px;color:var(--text3);display:flex;align-items:center;gap:4px;font-weight:600}.td{width:7px;height:7px;border-radius:50%}.td--w{background:var(--warm)}.td--c{background:var(--cool)}.wt-line{font-size:11px;font-weight:700;text-align:center;margin-top:8px;padding-top:8px;border-top:1px solid rgba(0,0,0,.04);font-variant-numeric:tabular-nums}.entries{background:var(--card);border-radius:var(--r);overflow:hidden;box-shadow:0 1px 3px #00000008;min-height:120px}.row{display:flex;align-items:flex-start;padding:12px 14px;gap:10px;border-bottom:1px solid rgba(0,0,0,.04);animation:row-in .2s ease;transition:opacity .2s,background .1s,transform .2s;position:relative;overflow:hidden}@keyframes row-in{0%{opacity:0;transform:translateY(6px)}}.row:last-child{border-bottom:none}.row:hover{background:#00000003}.row--busy{opacity:.3}.dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:5px;transition:transform .15s}.dot--m{background:var(--warm)}.dot--w{background:var(--cool)}.row:hover .dot{transform:scale(1.3)}.row-body{flex:1;min-width:0}.row-text{display:block;font-size:14px;color:var(--text);line-height:1.5;cursor:text;word-break:break-word}.row-text:hover{color:var(--warm)}.row-edit{width:100%;padding:2px 0;border:none;border-bottom:2px solid var(--dark);background:transparent;font-size:14px;font-family:inherit;color:var(--text);outline:none}.row-cal{display:block;font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.03em;line-height:1.1;margin-top:2px}.row-cal--w{color:var(--warm)}.row-cal--c{color:var(--cool)}.row-meta{display:block;font-size:11px;color:var(--text3);margin-top:2px;font-variant-numeric:tabular-nums}.row-acts-desktop{display:flex;gap:2px;flex-shrink:0;margin-top:2px}.row-acts-mobile{display:none}.rb{width:24px;height:24px;border:none;border-radius:8px;background:transparent;color:var(--text3);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .15s}.row:hover .rb{opacity:1}.rb:hover{color:var(--text);background:#0000000d;transform:scale(1.1)}.rb--del:hover{color:#dc2626;background:#dc26260f}.rb--spin{opacity:1!important}.rb--spin svg{animation:spin .7s linear infinite}@media (hover: none){.row-acts-desktop{display:none}.row-acts-mobile{display:block;position:relative;flex-shrink:0}.rb-ellipsis{width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text3);display:flex;align-items:center;justify-content:center;cursor:pointer}.rb-ellipsis:active{background:#0000000d}.pop-menu{position:absolute;right:0;top:100%;margin-top:4px;background:var(--card);border-radius:12px;box-shadow:0 4px 20px #0000001f,0 0 0 1px #0000000f;z-index:50;min-width:150px;padding:4px;animation:pop-in .15s ease}@keyframes pop-in{0%{opacity:0;transform:scale(.95) translateY(-4px)}}.pop-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;border:none;background:none;font-family:inherit;font-size:14px;font-weight:500;color:var(--text);cursor:pointer;border-radius:8px}.pop-item:active{background:#0000000d}.pop-item--del{color:#dc2626}}.empty-note{text-align:center;padding:48px 20px}.empty-e{font-size:28px;display:block;margin-bottom:6px}.empty-m{font-size:14px;color:var(--text3)}.compose-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.compose{position:fixed;bottom:calc(max(10px,env(safe-area-inset-bottom,10px)) + 64px);left:50%;transform:translate(-50%);width:calc(100% - 32px);max-width:504px;z-index:81;background:var(--card);border-radius:20px;padding:10px;box-shadow:0 4px 20px #0000001a,0 0 0 1px #0000000a;animation:slide-up .25s cubic-bezier(.34,1.56,.64,1)}@keyframes slide-up{0%{opacity:0;transform:translate(-50%) translateY(20px) scale(.95)}}.compose-form{display:flex;align-items:center;gap:6px}.compose-input{flex:1;padding:14px 16px;border:none;background:var(--bg);border-radius:14px;font-size:15px;font-family:inherit;color:var(--text);outline:none;min-width:0}.compose-input::placeholder{color:var(--text3)}.compose-input:disabled{opacity:.4}.compose-mic{width:40px;height:40px;border:none;border-radius:12px;background:#0000000a;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s}.compose-mic:hover{transform:scale(1.08)}.compose-mic--on{background:#ef444414;animation:pulse-mic 1s ease-in-out infinite}@keyframes pulse-mic{0%,to{box-shadow:0 0 #ef444433}50%{box-shadow:0 0 0 6px #ef444400}}.compose-send{width:40px;height:40px;border:none;border-radius:12px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:transform .15s,opacity .15s}.compose-send:hover{transform:scale(1.08)}.compose-send:active{transform:scale(.92)}.compose-send:disabled{opacity:.3;cursor:default}.ai-msg{font-size:12px;color:var(--text2);padding:6px 16px 2px;font-style:italic;animation:dots 1.5s ease-in-out infinite}@keyframes dots{0%,to{opacity:1}50%{opacity:.3}}.dock{position:fixed;bottom:max(10px,env(safe-area-inset-bottom,10px));left:50%;transform:translate(-50%);width:auto;max-width:calc(100% - 32px);display:flex;align-items:center;gap:4px;padding:6px 8px;background:#ffffffa6;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-radius:20px;box-shadow:0 2px 16px #00000014,0 0 0 .5px #0000000f;z-index:90}.dock-btn{border:none;background:none;color:var(--text2);display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;padding:8px 18px;border-radius:14px;font-family:inherit;transition:all .15s}.dock-btn span{font-size:9px;font-weight:600}.dock-btn:hover{color:var(--text);background:#0000000a}.dock-btn:active{transform:scale(.9)}.dock-add{width:48px;height:48px;border:none;border-radius:50%;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px #0000001f;transition:transform .2s;margin:-18px 4px 0}.dock-add:hover{transform:scale(1.1)}.dock-add:active{transform:scale(.88)}.dock-add--open{transform:rotate(45deg)}.dock-add--open:hover{transform:rotate(45deg) scale(1.1)}.shimmer-block{background:linear-gradient(90deg,#00000008 25%,#0000000f,#00000008 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@media (hover: none){.g{min-width:0}.date-arr,.compose-mic,.compose-send{min-width:44px;min-height:44px}.dock-btn{min-height:44px;padding:8px 20px}}@media (max-width: 400px){.stat-hero{font-size:30px}.date-label{font-size:18px}}
