:root{--green:#b6d531;--green-hover:#c9e35a;--green-soft:#2b3317;--green-line:#3a4420;--black:#0e0f0c;--surface:#1a1c17;--surface-2:#24271f;--line:#2a2d25;--text:#f3f5ee;--text-2:#d9dcd2;--muted:#a3a89a;--warn:#f2b84b;--danger:#ff8a7a;--radius:16px;--font-display:"Poppins", system-ui, sans-serif;--font-body:"Inter", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--black);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0}body{min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--green)}a:hover{color:var(--green-hover)}img{max-width:100%;display:block}.app{flex-direction:column;max-width:480px;min-height:100dvh;margin:0 auto;display:flex}.page{flex-direction:column;flex:1;gap:18px;padding:20px 20px 24px;display:flex}.page.with-nav{padding-bottom:96px}.page.green{background:var(--green);color:var(--black)}.page.green a{color:var(--black)}.topbar{justify-content:space-between;align-items:center;min-height:44px;display:flex}.logo{font-family:var(--font-display);color:var(--green);letter-spacing:-1px;flex-direction:column;font-size:22px;font-weight:800;line-height:.82;display:flex}.logo.big{letter-spacing:-3px;font-size:64px}.page.green .logo{color:var(--black)}h1,.h1{font-family:var(--font-display);letter-spacing:-.8px;margin:0;font-size:30px;font-weight:800;line-height:1.05}.h1-xl{font-family:var(--font-display);letter-spacing:-1.8px;margin:0;font-size:46px;font-weight:900;line-height:.95}h2{font-family:var(--font-display);margin:0;font-size:18px;font-weight:800}.accent{color:var(--green)}.muted{color:var(--muted)}.small{font-size:13px}.label{letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}p{margin:0;line-height:1.45}.btn{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);min-height:52px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:8px;width:100%;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:var(--black);font-family:var(--font-display);min-height:56px;font-size:17px;font-weight:800}.btn.primary:hover{background:var(--green-hover);color:var(--black)}.btn.dark{background:var(--black);border-color:var(--black);color:var(--green);font-family:var(--font-display);min-height:56px;font-size:17px;font-weight:800}.btn.ghost{color:var(--green);background:0 0;border-style:dashed;border-color:#5e6652}.btn.link{color:var(--green);background:0 0;border:none;min-height:44px}.btn.danger{color:var(--danger)}.icon-btn{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:22px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn.sq{background:var(--surface-2);border:none;border-radius:12px}.hero-cta{background:var(--green);color:var(--black);cursor:pointer;text-align:left;border:none;border-radius:20px;justify-content:space-between;align-items:center;width:100%;padding:20px;text-decoration:none;display:flex}.hero-cta:hover{background:var(--green-hover);color:var(--black)}.hero-cta .t{font-family:var(--font-display);font-size:22px;font-weight:800;display:block}.hero-cta .s{font-size:14px;font-weight:500}.hero-cta .circle{background:var(--black);width:56px;height:56px;color:var(--green);border-radius:28px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.card{background:var(--surface);border-radius:var(--radius);flex-direction:column;gap:12px;padding:16px;display:flex}.card.tip{border:1px solid var(--green-line);background:#161a0e;flex-direction:row;align-items:flex-start}.card.dark{background:var(--black);color:var(--text);border-radius:22px;padding:20px}.card.outline-dark{border:2px solid var(--black);background:0 0}.stack{flex-direction:column;gap:10px;display:flex}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.spacer{flex:1}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.chip.on{background:var(--green);border-color:var(--green);color:var(--black);font-weight:600}.chip.static{cursor:default}.meal-row{border-radius:var(--radius);background:var(--surface);align-items:center;gap:12px;padding:14px;display:flex}.meal-row .time{background:var(--green-soft);width:48px;height:44px;color:var(--green);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex}.meal-row .name{font-size:15px;font-weight:600}.meal-row .desc{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.field{flex-direction:column;gap:6px;display:flex}.field label{font-size:14px;font-weight:600}.field .hint{color:var(--muted);font-size:12px}.input{border:1px solid var(--line);background:var(--surface);border-radius:14px;width:100%;min-height:52px;padding:0 14px;font-size:16px}.input:focus,.btn:focus-visible,.chip:focus-visible,.icon-btn:focus-visible,.hero-cta:focus-visible{outline:3px solid var(--green);outline-offset:2px}textarea.input{resize:vertical;min-height:96px;padding:12px 14px}.check{background:var(--surface);cursor:pointer;border-radius:14px;align-items:flex-start;gap:12px;padding:12px;display:flex}.check input{width:22px;height:22px;accent-color:var(--green);flex-shrink:0;margin:2px 0 0}.check span{color:var(--text-2);font-size:14px;line-height:1.45}.seg{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.seg button{border:1px solid var(--line);min-height:44px;color:var(--text-2);cursor:pointer;background:0 0;border-radius:10px;font-size:13px;font-weight:600}.seg button.on{background:var(--green);border-color:var(--green);color:var(--black)}.bar{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.bar>div{background:var(--green);border-radius:4px;height:100%}.nav{height:72px;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:var(--black);z-index:10;grid-template-columns:repeat(4,minmax(0,1fr));max-width:480px;margin:0 auto;display:grid;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.nav a.active{color:var(--green)}.camera-box{background:var(--surface);border-radius:24px;justify-content:center;align-items:center;min-height:300px;display:flex;position:relative;overflow:hidden}.camera-box img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ring{border:2px dashed var(--green);border-radius:50%;width:220px;height:220px}.tips3{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.tips3 div{border:1px solid var(--green-line);text-align:center;color:var(--text-2);background:#161a0e;border-radius:12px;padding:10px;font-size:12px;line-height:1.35}.tips3 b{color:var(--green);margin-bottom:2px;display:block}.shutter{border:4px solid var(--green);cursor:pointer;background:0 0;border-radius:40px;justify-content:center;align-items:center;width:80px;height:80px;padding:0;display:flex}.shutter span{background:var(--green);border-radius:31px;width:62px;height:62px;display:block}.banner{border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.4}.banner.warn{color:var(--warn);background:#2e2510;border:1px solid #5a4718}.banner.err{color:var(--danger);background:#2e1512;border:1px solid #5a2a24}.banner.ok{background:var(--green-soft);color:var(--green);border:1px solid var(--green-line)}.banner.demo{color:var(--text-2);border:1px dashed var(--green-line);background:#161a0e;font-size:13px}.days{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.days div{color:var(--muted);flex-direction:column;align-items:center;gap:6px;font-size:12px;display:flex}.days i{border:2px solid #3a3d34;border-radius:18px;width:36px;height:36px;display:block}.days i.on{background:var(--green);border-color:var(--green)}.spinner{border:4px solid var(--surface-2);border-top-color:var(--green);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.list-pick{flex-direction:column;gap:6px;max-height:280px;display:flex;overflow-y:auto}.list-pick button{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;min-height:48px;padding:0 14px}.list-pick button:hover{border-color:var(--green)}.stat{font-family:var(--font-display);color:var(--green);letter-spacing:-1px;font-size:32px;font-weight:800}.sr{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-height:108px;color:var(--text);flex-direction:column;gap:4px;padding:14px;text-decoration:none;display:flex}.tile:hover{border-color:var(--green);color:var(--text)}.tile:focus-visible{outline:3px solid var(--green);outline-offset:2px}.tile-ic{background:var(--green-soft);width:40px;height:40px;color:var(--green);border-radius:12px;justify-content:center;align-items:center;margin-bottom:6px;display:flex}.tile-t{font-family:var(--font-display);font-size:15px;font-weight:800;line-height:1.15}.tile-s{color:var(--muted);font-size:12px}.bullets{color:var(--text-2);flex-direction:column;gap:8px;margin:0;padding-left:18px;font-size:15px;line-height:1.45;display:flex}.bullets li::marker{color:var(--green)}.water-bars{grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:6px;height:130px;display:grid}.water-bars div{flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.water-bars i{background:var(--green);border-radius:6px;width:22px;display:block}.bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;max-width:88%;padding:12px 14px;font-size:15px;line-height:1.5}.bubble.user{background:var(--green);color:var(--black);border-bottom-right-radius:4px;align-self:flex-end}.bubble.assistant{background:var(--surface);border-bottom-left-radius:4px;align-self:flex-start}.composer{left:0;right:0;bottom:calc(72px + env(safe-area-inset-bottom));max-width:480px;padding:10px max(16px, env(safe-area-inset-left));background:var(--black);border-top:1px solid var(--line);z-index:9;gap:8px;margin:0 auto;display:flex;position:fixed}.composer .input{flex:1;min-width:0}button.card{font:inherit;color:inherit}
