:root{--forest: #0f4d33;--leaf: #17734a;--leaf-bright: #2bb673;--mint: #e3f1e8;--ink: #16201b;--muted: #5b6760;--muted-2: #4a544f;--amber: #f2a93b;--amber-ink: #8a5300;--amber-deep: #3d2600;--blue: #2563a8;--blue-ink: #1d4f86;--purple-ink: #5b2f82;--red: #b42318;--red-tint: #fdecea;--line: rgba(22, 32, 27, .07);--glass: rgba(255, 255, 255, .56);--glass-strong: rgba(255, 255, 255, .72);--glass-edge: rgba(255, 255, 255, .8);--blur: blur(22px) saturate(170%);--shadow: 0 10px 30px rgba(15, 77, 51, .09), inset 0 1px 0 rgba(255, 255, 255, .95);--radius: 18px;--nav-h: 80px;--safe-b: env(safe-area-inset-bottom, 0px);font-family:Plus Jakarta Sans,Noto Sans Devanagari,Noto Sans Gujarati,system-ui,-apple-system,Segoe UI,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(70% 40% at 0% 0%,#bde5cd,#bde5cd00 70%),radial-gradient(60% 35% at 100% 16%,#fce0ae,#fce0ae00 70%),radial-gradient(70% 40% at 15% 72%,#cbe1f3,#cbe1f300 70%),radial-gradient(60% 40% at 100% 100%,#cfebd9,#cfebd900 70%),#f2f3ec;background-attachment:fixed}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--leaf)}:focus-visible{outline:3px solid rgba(23,115,74,.45);outline-offset:2px}h1,h2,h3,p{margin:0}.app{max-width:480px;margin:0 auto;min-height:100%;position:relative;display:flex;flex-direction:column}.page{flex:1;display:flex;flex-direction:column;gap:14px;padding:18px 18px calc(var(--nav-h) + 28px + var(--safe-b))}.page.no-nav{padding-bottom:calc(24px + var(--safe-b))}.page.has-footer{padding-bottom:calc(110px + var(--safe-b))}.row{display:flex;align-items:center;gap:10px}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:6px}.stack{display:flex;flex-direction:column;gap:10px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.grow{flex:1;min-width:0}.scroll-x{display:flex;gap:8px;overflow-x:auto;margin:0 -18px;padding:2px 18px 6px;scrollbar-width:none}.scroll-x::-webkit-scrollbar{display:none}.h1{font-size:26px;font-weight:800;letter-spacing:-.02em}.h2{font-size:17px;font-weight:800}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.07em;color:var(--leaf);text-transform:uppercase}.label{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--muted-2);text-transform:uppercase}.muted{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.strong{font-weight:800}.num{font-variant-numeric:tabular-nums}.center{text-align:center}.glass{background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow);border-radius:var(--radius)}.card{padding:14px}.card.list{padding:0;overflow:hidden}.list-row{min-height:56px;padding:10px 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left}.list-row:last-child{border-bottom:0}.deep{background:linear-gradient(150deg,#23915f,#0f4d33 55%,#0a3825);color:#fff;border-radius:24px;box-shadow:0 16px 36px #0f4d3347,inset 0 1px #ffffff2e}.deep .muted,.on-dark{color:#cfe5d8}.amber-glass{background:#ffeecf9e;border:1px solid rgba(255,255,255,.8);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 10px 30px #b26b001f,inset 0 1px #ffffffe6;border-radius:var(--radius)}.tint-blue{background:#e6eff9cc;color:var(--blue-ink);border-radius:16px}.tint-green{background:#e3f1e8d9;color:var(--forest);border-radius:16px}.tint-red{background:#fdeceae6;color:#8f1d14;border-radius:16px}.note{padding:12px 14px;font-size:13px;line-height:1.5}.btn{min-height:52px;padding:0 18px;border-radius:16px;border:0;font-size:16px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;white-space:nowrap;transition:transform .08s ease,box-shadow .15s ease}.btn:active:not(:disabled){transform:scale(.98)}.btn.primary{color:#fff;background:linear-gradient(135deg,#2bb673,#17734a 55%,#0f4d33);box-shadow:0 12px 26px #17734a57,inset 0 1px #ffffff59}.btn.secondary{color:var(--ink);background:var(--glass-strong);border:1px solid var(--glass-edge);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 2px 10px #0f4d330f}.btn.danger{color:#fff;background:linear-gradient(135deg,#d9473b,#b42318);box-shadow:0 10px 22px #b4231847}.btn.danger-ghost{color:var(--red);background:var(--glass-strong);border:1px solid #f1c6c1}.btn.amber{color:var(--amber-deep);background:linear-gradient(135deg,#ffc566,#f2a93b);box-shadow:0 10px 22px #f2a93b59}.btn.block{width:100%}.btn.sm{min-height:40px;padding:0 12px;font-size:14px;border-radius:12px}.icon-btn{width:44px;height:44px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow);color:var(--ink);text-decoration:none;position:relative}.icon-btn.on-dark{background:#ffffff29;border-color:#ffffff47;color:#fff;box-shadow:none}.link-btn{background:none;border:0;padding:6px 2px;color:var(--leaf);font-weight:800;font-size:14px;text-decoration:none}.badge{position:absolute;top:-5px;right:-5px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--red);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}.chip{min-height:40px;padding:0 14px;border-radius:999px;font-size:14px;font-weight:700;white-space:nowrap;background:#ffffff8c;border:1px solid rgba(255,255,255,.85);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 2px 10px #0f4d330f;color:var(--ink)}.chip[aria-pressed=true]{color:#fff;border-color:transparent;background:linear-gradient(135deg,#23915f,#0f4d33);box-shadow:0 8px 20px #0f4d334d,inset 0 1px #ffffff40}.chip.soft[aria-pressed=true]{color:var(--forest);background:#17734a24;border:2px solid var(--leaf);box-shadow:none}.chip.warn[aria-pressed=true]{color:#8f1d14;background:#fdeceae6;border:2px solid #d9534a;box-shadow:none}.chip.heat[aria-pressed=true]{color:var(--amber-deep);background:#fdf1dcf2;border:2px solid var(--amber);box-shadow:none}.segmented{display:grid;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:4px;padding:4px;border-radius:14px;background:#ffffff52;border:1px solid rgba(255,255,255,.7);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.segmented button{min-height:42px;border:0;border-radius:11px;background:transparent;font-size:14px;font-weight:700;color:var(--muted);padding:0 6px}.segmented button[aria-pressed=true]{background:#fffffff2;color:var(--ink);box-shadow:0 4px 14px #0f4d3324,inset 0 1px #fff}.pill{display:inline-flex;align-items:center;align-self:flex-start;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap}.field{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:700}.field .hint{font-size:12px;font-weight:500;color:var(--muted)}.input,select.input,textarea.input{width:100%;min-height:52px;border-radius:14px;padding:0 14px;font-size:16px;font-weight:500;border:1px solid rgba(255,255,255,.85);background:#ffffff9e;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:inset 0 1px #fffffff2,0 2px 10px #0f4d330f;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea.input{padding:12px 14px;min-height:90px;resize:vertical}.input:focus{border-color:var(--leaf);box-shadow:0 0 0 3px #17734a33}.input[aria-invalid=true]{border-color:var(--red)}.error-text{color:var(--red);font-size:13px;font-weight:600}.stepper{display:flex;align-items:center;gap:8px}.stepper button{width:44px;height:44px;border-radius:12px;font-size:22px;font-weight:600;border:1px solid rgba(255,255,255,.85);background:#ffffff9e}.stepper button.plus{border:0;color:#fff;background:linear-gradient(135deg,#2bb673,#17734a)}.stepper .value{min-width:56px;text-align:center;font-size:20px;font-weight:800}.switch{width:48px;height:28px;border-radius:14px;padding:3px;display:flex;flex-shrink:0;transition:background .15s;background:#c9c9bf}.switch[data-on=true]{background:var(--leaf);justify-content:flex-end}.switch span{width:22px;height:22px;border-radius:11px;background:#fff;box-shadow:0 1px 3px #00000040}.topbar{display:flex;align-items:center;gap:12px;min-height:48px}.topbar .title{flex:1;min-width:0;display:flex;flex-direction:column}.topbar .title .h1{font-size:22px}.bottom-nav{position:fixed;left:50%;transform:translate(-50%);bottom:calc(12px + var(--safe-b));width:calc(min(480px,100%) - 24px);height:68px;z-index:20;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 6px;border-radius:26px;background:#ffffff9e;border:1px solid rgba(255,255,255,.85);-webkit-backdrop-filter:blur(26px) saturate(180%);backdrop-filter:blur(26px) saturate(180%);box-shadow:0 14px 34px #0f4d332e,inset 0 1px #fffffff2}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:11px;font-weight:600;text-decoration:none;border-radius:18px}.bottom-nav a.active{color:var(--leaf);font-weight:800}.footer-bar{position:fixed;left:50%;transform:translate(-50%);bottom:0;width:min(480px,100%);z-index:15;padding:12px 18px calc(14px + var(--safe-b));display:flex;flex-direction:column;gap:8px;background:#ffffff73;border-top:1px solid rgba(255,255,255,.75);-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%)}.fab{position:fixed;right:max(18px,calc(50% - 222px));bottom:calc(96px + var(--safe-b));z-index:18}.avatar{width:52px;height:52px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.bar-track{height:8px;border-radius:4px;background:#16201b14;overflow:hidden}.bar-track>span{display:block;height:100%;border-radius:4px}.progress{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}.progress span{height:6px;border-radius:3px;background:#16201b1f}.progress span.on{background:var(--leaf)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0f1e1680;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}.sheet{width:min(480px,100%);max-height:88vh;overflow-y:auto;border-radius:28px 28px 0 0;padding:12px 20px calc(24px + var(--safe-b));display:flex;flex-direction:column;gap:14px;background:#fafaf6f0;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);animation:rise .2s ease}.sheet .grabber{width:44px;height:5px;border-radius:3px;background:#d6d6cc;align-self:center}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(100px + var(--safe-b));z-index:60;width:calc(min(480px,100%) - 36px);padding:14px 16px;border-radius:18px;background:#16201beb;color:#fff;display:flex;align-items:center;gap:12px;box-shadow:0 16px 40px #0000004d;animation:rise .2s ease}.toast.error{background:#8c1a12f2}.empty{padding:28px 18px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center}.spinner{width:36px;height:36px;border-radius:50%;border:4px solid rgba(23,115,74,.2);border-top-color:var(--leaf);animation:spin .8s linear infinite}.demo-banner{padding:10px 14px;border-radius:14px;background:#fdf1dcf2;color:var(--amber-deep);font-size:13px;line-height:1.45;border:1px dashed var(--amber)}@keyframes spin{to{transform:rotate(360deg)}}@keyframes rise{0%{transform:translate(var(--tx, 0),24px);opacity:0}to{transform:translate(var(--tx, 0));opacity:1}}.toast{--tx: -50%}@keyframes fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
