/* Get Lean — styles (extracted from the single-file app) */

  * { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
  :root{
    --canvas:#F7F8F6; --card:#FFFFFF; --line:#E4E9E6;
    --green:#154734; --green2:#1E6349; --green3:#1F7A56; --pillb:#D4EDE3; --pillf:#F0F8F4;
    --ink:#0D0D0D; --muted:#6B7280;
    --amber:#D97706; --amberT:#92400E; --amberBg:#FFFBEB;
    --blue:#3B82F6; --teal:#0891B2; --tealBg:#ECFEFF; --red:#DC2626;
    --sand:#D4A574; --sandBg:#FEF5E7;
  }
  body{ background:#E8ECE9; font-family:'Inter',sans-serif; color:var(--ink); display:flex; justify-content:center; min-height:100vh; min-height:100dvh; }
  .phone{ width:100%; max-width:560px; height:100vh; height:100dvh; background:var(--canvas); overflow:hidden; position:relative; display:flex; flex-direction:column; }
  @media (min-width:600px){
    body{ padding:24px; align-items:center; }
    .phone{ height:calc(100dvh - 48px); max-height:920px; border-radius:28px; box-shadow:0 18px 50px -12px rgba(21,71,52,.25), 0 0 0 1px var(--line); }
  }
  .topbar{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px 14px; position:relative; border-bottom:1px solid var(--line); }
  .brandwrap{ display:flex; align-items:center; gap:9px; }
  .logodot{ width:22px; height:22px; border-radius:7px; background:var(--green); display:flex; align-items:center; justify-content:center; }
  .logodot span{ width:9px; height:9px; border-radius:2px; background:var(--green3); }
  .brand{ font-size:13px; font-weight:700; color:var(--green); }
  .phasepill{ display:flex; align-items:center; gap:6px; background:var(--pillf); border:1px solid var(--pillb); color:var(--green); font-size:12px; font-weight:600; padding:6px 11px; border-radius:99px; }
  .phasepill .pdot{ width:7px; height:7px; border-radius:99px; background:var(--green3); }
  .scroll{ flex:1; min-height:0; overflow-y:auto; padding:14px 20px 96px; }
  .scroll::-webkit-scrollbar{ display:none; }
  .eyebrow{ font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); font-weight:600; }
  h1{ font-weight:700; font-size:27px; letter-spacing:-.02em; margin-top:4px; color:var(--green); }
  .sub{ color:var(--muted); font-size:13px; margin-top:3px; }
  .subctx{ color:var(--green3); font-size:13px; font-weight:600; margin-top:5px; }
  .card{ background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px; }
  .stat-label{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); font-weight:600; }

  /* today's session card */
  .session{ display:flex; align-items:center; gap:13px; background:var(--tealBg); border:1px solid #CFEBF2; border-radius:16px; padding:14px 16px; margin-top:18px; }
  .sicon{ width:42px; height:42px; border-radius:12px; background:#fff; border:1px solid #CFEBF2; display:flex; align-items:center; justify-content:center; font-size:20px; }
  .session .st{ flex:1; }
  .session .se{ font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--teal); font-weight:700; }
  .session .stt{ font-size:16px; font-weight:700; color:var(--green); margin-top:1px; }
  .session .ss{ font-size:12px; color:var(--muted); margin-top:1px; }
  .chev{ color:var(--teal); font-size:20px; font-weight:700; }

  .goalcard{ margin-top:12px; }
  .goalhead{ display:flex; justify-content:space-between; align-items:baseline; }
  .goalhead .tag{ font-size:11px; color:var(--green3); font-weight:600; }
  .grow{ margin-top:14px; }
  .grow .gl{ display:flex; justify-content:space-between; font-size:12.5px; margin-bottom:6px; }
  .grow .gl .gt{ color:var(--muted); }
  .gbar{ height:7px; background:#EDEFEC; border-radius:99px; overflow:hidden; }
  .gfill{ height:100%; border-radius:99px; background:var(--green3); }
  .gcap{ font-size:11.5px; color:var(--muted); margin-top:13px; line-height:1.45; }
  .row2{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:12px; }
  .stat-num{ font-size:26px; font-weight:700; margin-top:8px; line-height:1; letter-spacing:-.02em; }
  .stat-num small{ font-size:13px; color:var(--muted); font-weight:500; }
  .bar{ height:6px; background:#EDEFEC; border-radius:99px; margin-top:13px; overflow:hidden; }
  .fill{ height:100%; border-radius:99px; }
  .note{ font-size:11.5px; margin-top:8px; font-weight:600; }
  .mrow{ margin-top:15px; } .mrow:first-of-type{ margin-top:12px; }
  .mhead{ display:flex; justify-content:space-between; align-items:baseline; font-size:13px; margin-bottom:7px; }
  .mhead .mn{ font-weight:600; } .mhead .mv b{ font-weight:700; } .mhead .mv .tgt{ color:var(--muted); font-weight:500; }
  .mtrack{ height:7px; background:#EDEFEC; border-radius:99px; position:relative; }
  .mtrack .mf{ height:100%; border-radius:99px; }
  .mtrack .tick{ position:absolute; top:-3px; width:2px; height:13px; background:var(--ink); opacity:.45; border-radius:2px; }
  .flag{ font-size:10px; font-weight:700; padding:2px 7px; border-radius:99px; }
  .sec{ font-size:15px; font-weight:700; margin:24px 2px 12px; color:var(--green); letter-spacing:-.01em; }
  .log{ background:var(--card); border:1px solid var(--line); border-radius:16px; overflow:hidden; }
  .meal{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; }
  .meal:nth-child(even){ background:#FAFBFA; }
  .meal .nm{ font-size:14px; font-weight:600; } .meal .dt{ font-size:11.5px; color:var(--muted); margin-top:2px; }
  .meal .mac{ text-align:right; font-size:13px; } .meal .mac b{ font-weight:700; } .meal .mac span{ color:var(--green3); font-weight:700; }
  .chips{ display:flex; gap:9px; overflow-x:auto; padding:2px 0 4px; } .chips::-webkit-scrollbar{ display:none; }
  .chip{ flex:0 0 auto; background:var(--pillf); border:1px solid var(--pillb); border-radius:99px; padding:9px 15px; font-size:13px; font-weight:600; color:var(--green); }

  /* day summary */
  .daysum{ margin-top:24px; background:var(--green); border-radius:16px; padding:17px; color:#fff; }
  .daysum .dh{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#A9D9C4; font-weight:700; }
  .dsgrid{ display:flex; gap:8px; margin-top:13px; }
  .dscell{ flex:1; background:rgba(255,255,255,.08); border-radius:11px; padding:10px; }
  .dscell .dv{ font-size:16px; font-weight:700; } .dscell .dl{ font-size:10.5px; color:#A9D9C4; margin-top:2px; }
  .coach{ font-size:12.5px; line-height:1.5; margin-top:13px; color:#EAF4EE; font-style:italic; }
  .coach b{ color:#fff; font-style:normal; }

  /* FAB */
  .fab{ position:absolute; right:18px; bottom:86px; background:var(--green); color:#fff; border:none; height:54px; padding:0 20px; border-radius:99px; font-family:'Inter'; font-size:14px; font-weight:600; display:flex; align-items:center; gap:8px; box-shadow:0 8px 22px -4px rgba(21,71,52,.5); z-index:5; }
  .fab .pl{ font-size:20px; margin-top:-2px; }

  /* exercise */
  .schedrow{ display:flex; align-items:center; gap:12px; padding:13px 14px; background:var(--card); border:1px solid var(--line); border-radius:13px; margin-bottom:9px; }
  .schedrow.today{ border-color:var(--green3); background:var(--pillf); }
  .sday{ font-size:12px; font-weight:700; width:38px; color:var(--muted); } .schedrow.today .sday{ color:var(--green); }
  .stype{ font-size:14px; font-weight:600; flex:1; }
  .stag{ font-size:10px; font-weight:700; color:var(--green3); }
  .exlist{ background:var(--card); border:1px solid var(--line); border-radius:14px; overflow:hidden; margin-top:4px; }
  .exrow{ display:flex; justify-content:space-between; padding:12px 15px; font-size:13.5px; }
  .exrow:nth-child(even){ background:#FAFBFA; }
  .exrow .ex{ font-weight:500; } .exrow .rs{ color:var(--muted); font-weight:600; }

  /* food */
  .searchbar{ background:var(--card); border:1px solid var(--line); border-radius:12px; padding:11px 14px; font-size:13px; color:var(--muted); margin-top:16px; }
  .addrow2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:11px; }
  .addbtn2{ background:var(--green); color:#fff; border-radius:12px; padding:12px; text-align:center; font-size:13px; font-weight:600; }
  .addbtn2.alt{ background:var(--card); color:var(--green); border:1px solid var(--pillb); }
  .frow{ display:flex; align-items:center; justify-content:space-between; padding:13px 15px; background:var(--card); border:1px solid var(--line); border-radius:13px; margin-bottom:9px; }
  .frow .fn{ font-size:14px; font-weight:600; } .frow .fm{ font-size:11.5px; color:var(--muted); margin-top:2px; }
  .ficons{ display:flex; gap:14px; color:var(--muted); font-size:15px; }
  .recipe .fn .badge{ font-size:9.5px; font-weight:700; color:var(--green3); background:var(--pillf); border:1px solid var(--pillb); padding:1px 6px; border-radius:5px; margin-left:6px; vertical-align:middle; }

  /* progress */
  .wbig{ font-size:48px; font-weight:700; line-height:1; letter-spacing:-.03em; color:var(--green); margin-top:4px; }
  .wbig small{ font-size:15px; color:var(--muted); font-weight:500; }
  .wdelta{ color:var(--green3); font-size:13px; font-weight:600; margin-top:9px; }
  .miles{ display:flex; justify-content:space-between; margin-top:16px; }
  .mile{ text-align:center; flex:1; } .mile .mv{ font-size:16px; font-weight:700; color:var(--muted); }
  .mile .ml{ font-size:10px; color:var(--muted); text-transform:uppercase; margin-top:3px; }
  .mile.done .mv{ color:var(--green3); } .mile.now .mv{ color:var(--amber); }
  .hday{ background:var(--card); border:1px solid var(--line); border-radius:13px; padding:13px 15px; margin-bottom:9px; }
  .hday .hh{ display:flex; align-items:center; justify-content:space-between; }
  .hday .hd{ font-size:13.5px; font-weight:600; } .hday .hsub{ font-size:11.5px; color:var(--muted); margin-top:2px; }
  .hday .hr{ text-align:right; font-size:13px; } .hday .hr b{ font-weight:700; } .hday .hr .p{ color:var(--green3); font-weight:700; }
  .sdot{ width:8px; height:8px; border-radius:99px; display:inline-block; margin-right:6px; }
  .loadmore{ text-align:center; font-size:12.5px; color:var(--green3); font-weight:600; padding:8px; }

  .nav{ position:absolute; bottom:0; left:0; right:0; height:72px; background:rgba(247,248,246,.95); backdrop-filter:blur(8px); border-top:1px solid var(--line); display:flex; }
  .nav button{ flex:1; border:none; background:none; font-family:'Inter'; font-size:10.5px; font-weight:600; color:var(--muted); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; padding-top:6px; }
  .nav button .ni{ font-size:16px; } .nav button.on{ color:var(--green); }
  .formtop{ display:flex; align-items:center; justify-content:space-between; padding:2px 0; }
  .formtop .cancel{ font-size:14px; color:var(--muted); font-weight:500; }
  .formtop .ftitle{ font-size:16px; font-weight:700; color:var(--green); }
  .formtop .save{ font-size:14px; color:var(--green); font-weight:700; }
  .methods{ display:flex; gap:8px; margin-top:16px; }
  .method{ flex:1; text-align:center; padding:11px 6px; border-radius:11px; font-size:12.5px; font-weight:600; border:1px solid var(--line); background:var(--card); color:var(--ink); }
  .method.active{ background:var(--green); color:#fff; border-color:var(--green); }
  .method .mi{ display:block; font-size:15px; margin-bottom:4px; }
  .field{ margin-top:16px; }
  .flabel{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); font-weight:600; margin-bottom:7px; }
  .input{ background:var(--card); border:1px solid var(--line); border-radius:11px; padding:12px 14px; font-size:14px; color:var(--ink); font-weight:500; }
  .seg{ display:flex; gap:7px; }
  .seg .s{ flex:1; text-align:center; padding:9px 4px; border-radius:9px; font-size:12.5px; font-weight:600; border:1px solid var(--line); background:var(--card); color:var(--muted); }
  .seg .s.on{ background:var(--pillf); border-color:var(--green3); color:var(--green); }
  .macgrid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .mfield .mlab{ font-size:11px; color:var(--muted); margin-bottom:5px; font-weight:600; }
  .ing{ display:flex; align-items:center; justify-content:space-between; background:var(--card); border:1px solid var(--line); border-radius:11px; padding:11px 13px; margin-bottom:8px; }
  .ing .in{ font-size:13.5px; font-weight:600; } .ing .iq{ font-size:11.5px; color:var(--muted); margin-top:2px; }
  .ing .ix{ color:var(--muted); font-size:13px; }
  .adding{ text-align:center; border:1px dashed var(--pillb); color:var(--green); border-radius:11px; padding:12px; font-size:13px; font-weight:600; background:var(--pillf); }
  .totals{ background:var(--green); color:#fff; border-radius:14px; padding:15px; margin-top:16px; }
  .totals .tt{ font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:#A9D9C4; font-weight:700; }
  .totals .tg{ display:flex; gap:8px; margin-top:11px; }
  .totals .tc{ flex:1; text-align:center; } .totals .tc .tv{ font-size:18px; font-weight:700; } .totals .tc .tl{ font-size:10px; color:#A9D9C4; margin-top:2px; }
  .photos{ display:flex; gap:9px; margin-top:13px; }
  .photo{ flex:1; height:74px; border-radius:11px; border:1px solid var(--line); background:var(--card); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; font-size:11px; color:var(--muted); font-weight:600; position:relative; }
  .photo.shot{ background:var(--pillf); flex:0 0 74px; }
  .photo .pj{ font-size:22px; }
  .photo .rm{ position:absolute; top:5px; right:5px; width:17px; height:17px; border-radius:50%; background:rgba(13,13,13,.55); color:#fff; font-size:10px; display:flex; align-items:center; justify-content:center; }
  .photo.add{ border-style:dashed; border-color:var(--pillb); color:var(--green); font-size:22px; }
  .itag{ font-size:9.5px; font-weight:700; color:var(--amberT); background:var(--amberBg); border:1px solid #F3E1C0; padding:1px 6px; border-radius:5px; margin-left:6px; vertical-align:middle; }
  .iedit{ margin-bottom:12px; }
  .ielabel{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:7px; }
  .iname{ font-size:13.5px; font-weight:600; }
  .imac{ font-size:11.5px; color:var(--muted); }
  .stepper{ display:flex; align-items:stretch; border:1px solid var(--green3); border-radius:11px; overflow:hidden; }
  .stepper .sb{ width:46px; display:flex; align-items:center; justify-content:center; font-size:19px; font-weight:700; color:#fff; background:var(--green3); cursor:pointer; user-select:none; }
  .stepper .smid{ flex:1; display:flex; align-items:center; justify-content:center; gap:3px; background:#fff; }
  .stepper input{ width:64px; border:none; outline:none; text-align:center; font-size:15px; font-weight:700; color:var(--green); padding:11px 0; background:transparent; }
  .stepper .un{ font-size:13px; color:var(--muted); font-weight:600; }
  .sechead{ display:flex; align-items:baseline; justify-content:space-between; margin:24px 2px 12px; }
  .sec2{ font-size:15px; font-weight:700; color:var(--green); letter-spacing:-.01em; }
  .editlink{ font-size:12.5px; font-weight:700; color:var(--green3); }
  .schededit{ display:flex; align-items:center; gap:12px; padding:11px 14px; background:var(--card); border:1px solid var(--line); border-radius:12px; margin-bottom:9px; }
  .sday2{ font-size:13px; font-weight:700; color:var(--green); width:80px; flex:0 0 auto; }
  .selday{ flex:1; min-width:0; border:1px solid var(--line); border-radius:9px; padding:9px 10px; font-family:inherit; font-size:13.5px; font-weight:600; color:var(--ink); background:var(--card); outline:none; }
  .selday:focus{ border-color:var(--green3); }
  .exedrow{ display:flex; align-items:center; gap:8px; padding:9px 10px; background:var(--card); border:1px solid var(--line); border-radius:12px; margin-bottom:9px; }
  .exorder{ display:flex; flex-direction:column; gap:1px; flex:0 0 auto; }
  .exarrow{ font-size:11px; color:var(--green3); cursor:pointer; line-height:1.1; user-select:none; }
  .exarrow.off{ color:var(--line); pointer-events:none; }
  .exname{ flex:1; min-width:40px; border:1px solid var(--line); border-radius:8px; padding:8px 10px; font-family:inherit; font-size:13.5px; font-weight:600; color:var(--ink); outline:none; }
  .exname:focus{ border-color:var(--green3); }
  .exsr{ display:flex; align-items:center; gap:4px; color:var(--muted); font-size:12px; font-weight:700; flex:0 0 auto; }
  .wkrow2{ display:flex; align-items:center; gap:12px; padding:12px 14px; background:var(--card); border:1px solid var(--line); border-radius:12px; margin-bottom:8px; cursor:pointer; }
  .wkrow2 .ck{ width:24px; height:24px; border-radius:7px; border:2px solid var(--line); display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; flex:0 0 auto; }
  .wkrow2.done .ck{ background:var(--green3); border-color:var(--green3); }
  .wkrow2 .wn{ flex:1; font-size:13.5px; font-weight:600; }
  .wkrow2.done .wn{ color:var(--muted); text-decoration:line-through; }
  .wkrow2 .wt{ font-size:12px; color:var(--muted); font-weight:600; }
  .exlog{ background:var(--card); border:1px solid var(--line); border-radius:13px; overflow:hidden; }
  .exl{ display:flex; align-items:center; gap:10px; padding:11px 15px; border-bottom:1px solid #F0EFEA; }
  .exl:last-child{ border-bottom:none; }
  .exhit{ display:flex; align-items:center; gap:12px; flex:1; cursor:pointer; }
  .ck{ width:21px; height:21px; border-radius:6px; border:2px solid var(--pillb); flex:0 0 auto; display:flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; color:#fff; }
  .exl.done .ck{ background:var(--green3); border-color:var(--green3); }
  .exl.done .ck::after{ content:'\2713'; }
  .exn{ font-size:13.5px; font-weight:500; }
  .exl.done .exn{ color:var(--muted); text-decoration:line-through; }
  .exedit{ display:flex; align-items:center; gap:5px; color:var(--muted); font-size:12px; font-weight:600; }
  .rin{ width:36px; border:1px solid var(--green3); border-radius:7px; text-align:center; font-size:13px; font-weight:700; color:var(--green); padding:6px 0; outline:none; background:#fff; }
  .win{ width:100%; box-sizing:border-box; outline:none; -webkit-appearance:none; font-family:inherit; }
  .water .wtop{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:10px; }
  .water .wamt{ font-size:13px; color:var(--muted); font-weight:600; }
  .water .wamt b{ font-size:20px; color:var(--teal); }
  .wbtns{ display:flex; gap:8px; margin-top:13px; }
  .wb{ flex:1; border:1px solid var(--green3); background:#fff; color:var(--green); font-size:13px; font-weight:700; padding:10px 0; border-radius:10px; cursor:pointer; font-family:inherit; }
  .wb.minus{ border-color:var(--line); color:var(--muted); }
  .wb.alt{ background:var(--pillf); }
  .sleep .sltop{ display:flex; justify-content:space-between; align-items:center; }
  .slpill{ font-size:11.5px; font-weight:700; color:var(--green); background:var(--pillf); border:1px solid var(--pillb); padding:2px 9px; border-radius:99px; }
  .sleep .sldur{ font-size:24px; font-weight:700; color:var(--green); letter-spacing:-.02em; margin:8px 0 11px; }
  .slbar{ display:flex; height:9px; gap:2px; }
  .slbar span{ display:block; height:100%; border-radius:2px; }
  .sllegend{ display:flex; gap:14px; margin-top:9px; }
  .sllegend span{ font-size:11px; color:var(--muted); font-weight:600; display:flex; align-items:center; gap:5px; }
  .sllegend i{ width:8px; height:8px; border-radius:2px; display:inline-block; }
  .slmetrics{ font-size:12px; color:var(--muted); font-weight:600; margin-top:11px; padding-top:11px; border-top:1px solid #F0EFEA; }
  .cardbtn{ width:100%; margin-top:13px; border:1px solid var(--green3); background:var(--pillf); color:var(--green); font-size:13px; font-weight:700; padding:11px 0; border-radius:11px; cursor:pointer; font-family:inherit; }
  .slchartwrap{ position:relative; margin-top:12px; }
  .slgoal{ position:absolute; left:0; right:0; top:20px; border-top:1px dashed var(--pillb); }
  .slgoal span{ position:absolute; right:0; top:-8px; font-size:9px; color:var(--muted); background:var(--card); padding:0 4px; }
  .slchart{ display:flex; gap:8px; align-items:flex-end; }
  .slcol{ flex:1; display:flex; flex-direction:column; align-items:center; gap:7px; }
  .sltrack{ width:100%; height:100px; display:flex; align-items:flex-end; }
  .slb{ width:62%; max-width:20px; margin:0 auto; background:var(--teal); border-radius:5px 5px 0 0; }
  .slcol.now .slb{ background:var(--green3); }
  .sldd{ font-size:10px; color:var(--muted); font-weight:600; }
  .slcol.now .sldd{ color:var(--green); }
  .view{ display:none; } .view.on{ display:block; }
  .phead2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; align-items:start; margin-top:4px; }
  .phead2 .wbig{ font-size:42px; margin-top:6px; }
  .trendhead{ display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
  .tlegend{ display:flex; gap:14px; }
  .tlegend .li{ display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:var(--muted); }
  .tlegend .li i{ width:11px; height:3px; border-radius:2px; display:inline-block; }
  .tlegend .li b{ color:var(--ink); font-weight:700; }
  .rangeseg{ display:flex; gap:3px; background:#EDEFEC; border-radius:9px; padding:3px; }
  .rangeseg button{ border:none; background:none; font-family:inherit; font-size:11px; font-weight:700; color:var(--muted); padding:5px 9px; border-radius:7px; cursor:pointer; }
  .rangeseg button.on{ background:#fff; color:var(--green); box-shadow:0 1px 2px rgba(0,0,0,.08); }
  .trendx{ display:flex; justify-content:space-between; font-size:10px; color:var(--muted); margin-top:2px; font-weight:600; }
  .stagerow{ margin-top:13px; }
  .stagetop{ display:flex; justify-content:space-between; align-items:baseline; font-size:13px; margin-bottom:7px; }
  .stagetop .sname{ font-weight:600; display:flex; align-items:center; gap:6px; }
  .stagetop .sname i{ width:8px; height:8px; border-radius:2px; display:inline-block; }
  .stagetop .sval b{ font-weight:700; }
  .stagetop .pct.ok{ color:var(--green3); font-weight:700; } .stagetop .pct.warn{ color:var(--amber); font-weight:700; }
  .rangebar{ position:relative; height:8px; background:#EDEFEC; border-radius:99px; }
  .rangebar .band{ position:absolute; top:0; bottom:0; background:var(--pillb); border-radius:99px; }
  .rangebar .marker{ position:absolute; top:-3px; width:14px; height:14px; border-radius:50%; border:3px solid #fff; transform:translateX(-50%); box-shadow:0 1px 3px rgba(0,0,0,.25); }
  .rangebar .marker.ok{ background:var(--green3); } .rangebar .marker.warn{ background:var(--amber); }
  .rangecap{ font-size:10.5px; color:var(--muted); margin-top:6px; font-weight:600; }

  .toast{ position:fixed; left:50%; bottom:30px; transform:translateX(-50%) translateY(20px); background:var(--green); color:#fff; padding:11px 18px; border-radius:99px; font-size:13px; font-weight:600; opacity:0; pointer-events:none; transition:.25s; z-index:50; box-shadow:0 8px 22px -6px rgba(0,0,0,.4); }
  .toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }
  .delx{ color:var(--muted); font-size:16px; cursor:pointer; padding:0 4px; }
  .logbtn{ font-size:12px; font-weight:700; color:var(--green); background:var(--pillf); border:1px solid var(--pillb); padding:6px 12px; border-radius:99px; cursor:pointer; font-family:inherit; }
  .aibtn{ flex:1; border:1px solid var(--green3); background:#fff; color:var(--green); font-weight:700; font-size:13px; padding:11px 0; border-radius:11px; cursor:pointer; font-family:inherit; }
  .aibtn:disabled{ opacity:.5; }
  .selin{ width:100%; box-sizing:border-box; background:var(--card); border:1px solid var(--line); border-radius:11px; padding:11px 12px; font-size:13.5px; font-family:inherit; color:var(--ink); }
  .databtn{ width:100%; border:1px solid var(--green3); background:var(--pillf); color:var(--green); font-weight:700; font-size:13px; padding:12px 0; border-radius:12px; cursor:pointer; font-family:inherit; margin-top:9px; }
  .empty{ text-align:center; color:var(--muted); font-size:12.5px; padding:20px 10px; }
  .ai-hint{ font-size:11px; color:var(--muted); margin-top:8px; }
  textarea.input{ width:100%; box-sizing:border-box; resize:none; font-family:inherit; }
  .addchip{ display:inline-flex; align-items:center; gap:6px; }
  .formtop .cancel,.formtop .save,.method,.seg .s,.chip,.addbtn2,.session,.schedrow,.cardbtn,.phasepill,.editlink,.nav button,.fab{ cursor:pointer; }
  .calrow{ margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--line); }
  .ic{ vertical-align:-0.15em; flex:0 0 auto; }
  .nav .ni svg{ display:block; }
  .fab .pl{ display:flex; align-items:center; }
  .compgrid{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); border-radius:13px; overflow:hidden; margin-top:6px; }
  .cmp{ background:var(--card); padding:11px 13px; }
  .cmp .cl{ font-size:10.5px; color:var(--muted); font-weight:600; }
  .cmp .cv{ font-size:15px; font-weight:700; color:var(--green); margin-top:3px; }
