*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
:root{
  --a:#d4a853;--as:#d4a85322;--am:#d4a85355;--sg:#7a9e87;
  --rc:16px;--rp:999px;--ri:12px;
  --fd:'Cormorant Garamond',Georgia,serif;
  --fb:'Nunito',system-ui,sans-serif;
  --tr:0.2s ease
}
body.L{--bg:#f2f2f7;--s:#fff;--s2:#f2f2f7;--s3:#e5e5ea;--b:rgba(0,0,0,.08);--b2:rgba(0,0,0,.12);--t:#1c1c1e;--t2:#3a3a3c;--t3:#636366;--mu:#8e8e93;--di:#aeaeb2;--dk:rgba(242,242,247,.92);--sh:0 2px 16px rgba(0,0,0,.08)}
body.D{--bg:#1c1c1e;--s:#2c2c2e;--s2:#3a3a3c;--s3:#48484a;--b:rgba(255,255,255,.08);--b2:rgba(255,255,255,.12);--t:#f2f2f7;--t2:#d1d1d6;--t3:#a1a1a6;--mu:#6d6d72;--di:#48484a;--dk:rgba(28,28,30,.92);--sh:0 2px 16px rgba(0,0,0,.3)}
html,body{height:100%;background:var(--bg);color:var(--t);font-family:var(--fb);font-size:15px;overflow:hidden;transition:background var(--tr),color var(--tr)}
button{font-family:var(--fb);cursor:pointer;border:none;background:none;color:inherit}
textarea,input{font-family:var(--fb)}
#app{display:flex;flex-direction:column;height:100vh;height:100dvh}
.pane{display:none;flex:1;overflow:hidden;flex-direction:column;min-height:0}
.pane.on{display:flex}
.scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 24px}
.scroll::-webkit-scrollbar{display:none}
.hdr{flex-shrink:0;padding:env(safe-area-inset-top,14px) 20px 0;background:var(--bg);z-index:10}
.hdr-in{display:flex;justify-content:space-between;align-items:center;padding:14px 0 12px;border-bottom:1px solid var(--b)}
.ey{font-size:11px;letter-spacing:.18em;color:var(--mu);text-transform:uppercase;font-weight:500;margin-bottom:2px}
.ttl{font-family:var(--fd);font-size:26px;font-weight:600;color:var(--t);line-height:1}
#dock{flex-shrink:0;background:var(--dk);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--b);padding:6px 0 calc(env(safe-area-inset-bottom,0px) * 0.5);display:flex;justify-content:space-around;align-items:center;z-index:50}
.db{display:flex;flex-direction:column;align-items:center;gap:0;padding:2px 0 0 0;flex:1}
.db:active{transform:scale(.9)}
.di{display:flex;align-items:center;justify-content:center;transition:color var(--tr)}
.dl{display:none;font-size:11px;font-weight:600;transition:color var(--tr)}
.db.on .di{color:var(--a)}
.db:not(.on) .di{color:var(--mu)}
.db.on .dl{color:var(--a)}
.db:not(.on) .dl{color:var(--mu)}
.db.on .di svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.8}
.db:not(.on) .di svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4}
@media(min-width:768px){
  #dock{padding:12px 0 12px}
  .db{gap:4px}
  .dl{display:block}
  .db.on .di svg,.db:not(.on) .di svg{width:26px;height:26px}
}
.card{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);padding:16px;margin-bottom:12px;box-shadow:var(--sh)}
.ct{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--mu);margin-bottom:10px}
/* Planner strips */
.strip{display:flex;gap:6px;align-items:center;padding:10px 20px 8px;overflow-x:auto;scrollbar-width:none}
.strip::-webkit-scrollbar{display:none}
.sl{font-size:11px;color:var(--mu);letter-spacing:.12em;text-transform:uppercase;flex-shrink:0;font-weight:600;margin-right:2px}
.sp{padding:5px 12px;border-radius:var(--rp);border:1.5px solid var(--b2);color:var(--mu);font-size:12px;font-weight:500;flex-shrink:0;transition:all var(--tr)}
.sp.on{border-color:transparent;color:#1c1c1e;font-weight:600}
.sc{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--b2);color:var(--mu);font-size:12px;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--tr)}
.sc.on{border-color:transparent;color:#1c1c1e;font-weight:600}
.dts{display:flex;gap:4px;padding:8px 20px 12px;overflow-x:auto;scrollbar-width:none}
.dts::-webkit-scrollbar{display:none}
.dt{padding:7px 12px;border-radius:10px;border:1.5px solid transparent;color:var(--mu);font-size:13px;font-weight:500;white-space:nowrap;position:relative;flex-shrink:0;transition:all var(--tr)}
.dt.on{background:var(--s);border-color:var(--b2);color:var(--t);box-shadow:var(--sh)}
.dd{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--sg)}
/* Banner */
.bn{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);border-left:3px solid var(--a);padding:14px 16px;margin-bottom:14px;box-shadow:var(--sh)}
.bn-hdr{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.bnt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
.bnb{font-size:13px;color:var(--t3);line-height:1.7;display:none;margin-top:8px}
.bnb.open{display:block}
.bnb strong{color:var(--t2);font-weight:600}
.bn-chev{font-size:14px;color:var(--mu);transition:transform .25s;flex-shrink:0}
.bn-chev.open{transform:rotate(90deg)}
/* Collapsible dinner card */
.din-hdr{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.din-body{display:none;margin-top:10px}
.din-body.open{display:block}
/* Day header */
.dh{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px}
.dn{font-family:var(--fd);font-size:28px;font-weight:600;color:var(--t)}
.dn-date{font-size:14px;color:var(--mu);font-weight:500;align-self:center;padding-bottom:2px}
.ds{font-size:12px;color:var(--mu);letter-spacing:.08em;text-transform:uppercase;font-weight:500;margin-top:2px}
.dp{font-family:var(--fd);font-size:26px;font-weight:500;text-align:right}
.dc{font-size:11px;color:var(--mu);text-align:right;font-weight:500}
.pb{height:3px;background:var(--s3);border-radius:2px;overflow:hidden;margin:10px 0 6px}
.pf{height:100%;border-radius:2px;transition:width .5s cubic-bezier(.4,0,.2,1)}
.cb{font-size:12px;color:var(--mu);font-weight:500}
/* Proto sub-page pattern */
.proto-page{display:none;flex-direction:column;flex:1;overflow:hidden;min-height:0}
.proto-page.on{display:flex}
/* Momentum score (tappable) */
.momentum-wrap{text-align:right;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.momentum-lbl{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--mu)}
.momentum-val{font-size:18px;font-weight:700;line-height:1.1}
.mom-chev{font-size:13px;opacity:.45;margin-left:1px}
/* Tasks */
.tl{display:flex;flex-direction:column;gap:6px;margin-top:14px;margin-bottom:20px}
.ti{display:flex;gap:12px;padding:13px 14px;background:var(--s);border-radius:13px;border:1px solid var(--b);cursor:pointer;align-items:flex-start;box-shadow:var(--sh);transition:all var(--tr)}
.ti:active{transform:scale(.985);opacity:.85}
.ti.done{opacity:.38}
.tc{width:20px;height:20px;border-radius:50%;flex-shrink:0;margin-top:1px;border:2px solid var(--b2);display:flex;align-items:center;justify-content:center;transition:all var(--tr)}
.tc.on{border-color:transparent;background:var(--sg)}
.tm{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:3px}
.tt{font-size:11px;color:var(--mu);font-weight:600;letter-spacing:.04em;flex-shrink:0}
.tg{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:6px;flex-shrink:0}
.tx{font-size:14px;color:var(--t2);line-height:1.45}
.ti.done .tx{text-decoration:line-through;color:var(--di)}
.g-nu{background:#7a9e8718;color:#5a8a68}.g-gy{background:#6b8cae18;color:#4a6e90}.g-sk{background:#9e7a9018;color:#7a5a78}.g-su{background:#a8953018;color:#8a7825}.g-ha{background:#a07a5818;color:#7a5a3a}.g-ca{background:#6a9aaa18;color:#4a7a8a}.g-sl{background:#7a6aaa18;color:#5a4a8a}.g-ad{background:#88888818;color:#606068}.g-sh{background:#5a9a9a18;color:#3a7a7a}
body.D .g-nu{background:#7a9e8728;color:#8fc09e}body.D .g-gy{background:#6b8cae28;color:#8aaec8}body.D .g-sk{background:#9e7a9028;color:#c09ab8}body.D .g-su{background:#a8953028;color:#c8b560}body.D .g-ha{background:#a07a5828;color:#c09a78}body.D .g-ca{background:#6a9aaa28;color:#8abac8}body.D .g-sl{background:#7a6aaa28;color:#9a8ac8}body.D .g-ad{background:#88888828;color:#a8a8b0}body.D .g-sh{background:#5a9a9a28;color:#7ababa}
/* Dinner card */
.mr{display:flex;gap:8px;margin-bottom:7px;font-size:13px;line-height:1.5}
.ml{color:var(--mu);font-weight:600;flex-shrink:0;min-width:70px}
.mv{color:var(--t2)}
/* Roadmap */
.rp{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);overflow:hidden;box-shadow:var(--sh);margin-bottom:10px}
.rph{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:background var(--tr)}
.rph:active{background:var(--s2)}
.rpb{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--fd);font-size:17px;font-weight:600;flex-shrink:0}
.rpl{font-weight:600;font-size:15px;color:var(--t)}
.rps{font-size:12px;color:var(--mu);margin-top:1px}
.rpc{margin-left:auto;font-size:14px;color:var(--mu);transition:transform .25s}
.rpc.open{transform:rotate(90deg)}
.rpd{padding:14px 16px;display:none;border-top:1px solid var(--b)}
.rpd.open{display:block}
.rpd p{font-size:14px;color:var(--t2);line-height:1.65;margin-bottom:10px}
.rpd p:last-child{margin-bottom:0}
.rpd strong{color:var(--t);font-weight:600}
/* Mission collapsible */
.mission-preview{font-size:14px;color:var(--t3);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mission-full{font-size:14px;color:var(--t2);line-height:1.7;display:none}
.mission-full.open{display:block}
.mission-ta{width:100%;background:var(--s2);border:1.5px solid var(--a);border-radius:10px;padding:12px;color:var(--t);font-size:14px;line-height:1.7;resize:none;outline:none;min-height:160px;display:none}
.mission-ta.open{display:block}
.edit-btn{font-size:12px;color:var(--a);font-weight:600;padding:4px 10px;background:var(--as);border-radius:6px}
/* Goals */
.goal-swipe-wrap{position:relative;margin-bottom:10px}
.goal-card{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);box-shadow:var(--sh);overflow:hidden;position:relative;z-index:1;transition:transform .2s}
.goal-card.goal-archived{opacity:.7}
.goal-del-reveal-btn{position:absolute;right:0;top:0;bottom:0;width:80px;background:#c0504a;color:#fff;font-size:13px;font-weight:600;border-radius:0 var(--rc) var(--rc) 0;display:flex;align-items:center;justify-content:center;z-index:0}
.goal-arch-reveal-btn{position:absolute;right:0;top:0;bottom:0;width:80px;background:var(--a);color:#1c1c1e;font-size:13px;font-weight:600;border-radius:0 var(--rc) var(--rc) 0;display:flex;align-items:center;justify-content:center;z-index:0}
/* Ach row swipe */
.ach-swipe-wrap{position:relative;margin-bottom:6px}
.ach-swipe-wrap .ach-row{margin-bottom:0;position:relative;z-index:1;transition:transform .2s}
.ach-del-reveal-btn{position:absolute;right:0;top:0;bottom:0;width:80px;background:#c0504a;color:#fff;font-size:13px;font-weight:600;border-radius:0 10px 10px 0;display:flex;align-items:center;justify-content:center;z-index:0}
.goal-hdr{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:background var(--tr)}
.goal-hdr:active{background:var(--s2)}
.goal-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.goal-title{font-weight:600;font-size:15px;color:var(--t);flex:1}
.goal-date{font-size:12px;color:var(--mu)}
.goal-body{display:none;border-top:1px solid var(--b);padding:16px}
.goal-body.open{display:block}
.goal-field{margin-bottom:12px}
.goal-label{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--mu);margin-bottom:4px}
.goal-body .goal-label{color:var(--a)}
.goal-value{font-size:14px;color:var(--t2);line-height:1.6}
.goal-plan{font-size:13px;color:var(--t2);line-height:1.7;white-space:pre-wrap}
.gen-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--as);border:1.5px solid var(--am);border-radius:10px;color:var(--a);font-size:13px;font-weight:700;margin-top:4px}
.gen-btn:active{transform:scale(.97)}
.add-goal-btn{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--s);border-radius:var(--rc);border:1.5px dashed var(--b2);color:var(--mu);font-size:14px;font-weight:600;width:100%;margin-bottom:14px;justify-content:center;transition:all var(--tr)}
.add-goal-btn:active{background:var(--s2)}
/* Goal form */
.goal-form{background:var(--s);border-radius:var(--rc);border:1.5px solid var(--a);padding:16px;margin-bottom:14px;box-shadow:0 4px 20px var(--as);display:none}
.goal-form.open{display:block}
.gf-row{margin-bottom:12px}
.gf-label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--mu);margin-bottom:5px}
.gf-inp{width:100%;background:var(--s2);border:1.5px solid var(--b2);border-radius:9px;padding:11px 12px;color:var(--t);font-size:16px;outline:none;transition:border-color var(--tr);-webkit-appearance:none}
.gf-inp:focus{border-color:var(--a)}
.gf-row-2{display:flex;flex-direction:column;gap:12px;margin-bottom:12px}
.gf-weeks-display{font-size:15px;font-weight:600;color:var(--a);padding:11px 12px;background:var(--s2);border:1.5px solid var(--b2);border-radius:9px;min-height:44px}
/* Metrics */
.macro-card{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);padding:16px;margin-bottom:12px;box-shadow:var(--sh)}
.mrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.mlbl{font-size:13px;font-weight:600;color:var(--t2)}
.msub{font-size:11px;color:var(--mu);font-weight:500}
.mval{font-family:var(--fd);font-size:22px;font-weight:600;color:var(--t)}
.mtrk{height:4px;background:var(--s3);border-radius:2px;overflow:hidden;margin-bottom:12px}
.mfil{height:100%;border-radius:2px}
.mgrd{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.mitm{text-align:center;padding:8px 4px;background:var(--s2);border-radius:10px}
.miv{font-size:16px;font-weight:700}
.mik{font-size:10px;color:var(--mu);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
.bio-card{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);padding:16px;margin-bottom:12px;box-shadow:var(--sh)}
.bio-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.bio-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.bio-f{display:flex;flex-direction:column;gap:2px}
.bio-l{font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--mu)}
.bio-v{font-family:var(--fd);font-size:22px;font-weight:600;color:var(--t);line-height:1.1}
.bio-u{font-size:11px;color:var(--mu);font-weight:500}
.bio-inputs{display:none;flex-direction:column;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--b)}
.bio-inputs.open{display:flex}
.bio-row{display:flex;align-items:center;gap:8px}
.bio-rl{font-size:12px;font-weight:600;color:var(--mu);min-width:90px}
.pr-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--b)}
.pr-row:last-child{border-bottom:none}
.pr-name{font-size:14px;font-weight:600;color:var(--t2)}
.pr-val{font-family:var(--fd);font-size:20px;font-weight:600;color:var(--a)}
.pr-date{font-size:11px;color:var(--mu);font-weight:500;text-align:right;margin-top:1px}
.pr-btn{font-size:13px;color:var(--mu);padding:4px 8px;background:var(--s2);border-radius:6px;border:1px solid var(--b);margin-top:4px}
.pr-inp-row{display:none;justify-content:flex-end;gap:6px;margin-top:4px;align-items:center}
.pr-inp-row.open{display:flex}
.inp{background:var(--s2);border:1.5px solid var(--a);border-radius:8px;padding:7px 10px;color:var(--t);font-size:15px;font-weight:600;outline:none}
.ok-btn{font-size:13px;font-weight:700;padding:7px 12px;background:var(--a);color:#1c1c1e;border-radius:8px}
.ok-btn:active{transform:scale(.95)}
.wg-wrap{position:relative;height:120px;margin-top:8px}
/* Account */
.acct-folder{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);margin-bottom:10px;box-shadow:var(--sh);overflow:hidden}
.acct-row{display:flex;align-items:center;padding:15px 16px;cursor:pointer;transition:background var(--tr)}
.acct-row:active{background:var(--s2)}
.acct-icon{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;margin-right:12px}
.acct-lbl{font-size:15px;font-weight:600;color:var(--t);flex:1}
.acct-chev{font-size:14px;color:var(--mu)}
.acct-page{display:none;flex:1;flex-direction:column;overflow:hidden;min-height:0}
.acct-page.on{display:flex}
.back-btn{font-size:13px;color:var(--a);font-weight:600;padding:0 0 14px;display:block}
/* Settings */
.set-card{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);overflow:hidden;box-shadow:var(--sh)}
.set-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--b)}
.set-row:last-child{border-bottom:none}
.set-lbl{font-size:15px;color:var(--t);font-weight:500}
.set-val{font-size:14px;color:var(--mu)}
.tog{width:44px;height:26px;background:var(--s3);border-radius:13px;position:relative;transition:background .2s;flex-shrink:0;cursor:pointer}
.tog.on{background:var(--sg)}
.tog-dot{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.tog.on .tog-dot{transform:translateX(18px)}
/* Grocery */
.gl-week{font-size:13px;color:var(--mu);font-weight:600;margin-bottom:14px;text-align:center}
.gl-sec{margin-bottom:16px}
.gl-sh{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--mu);margin-bottom:8px}
.gl-item-wrap{position:relative;overflow:hidden}
.gl-del-reveal-btn{position:absolute;right:0;top:0;bottom:0;width:80px;background:#c0504a;color:#fff;font-size:14px;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:0}
.gl-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--b);background:var(--bg);position:relative;z-index:1;transition:transform .25s ease}
.gl-item:last-child{border-bottom:none}
.gl-chk{width:20px;height:20px;border-radius:6px;border:2px solid var(--b2);flex-shrink:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--tr)}
.gl-chk.on{background:var(--sg);border-color:var(--sg)}
.gl-name{font-size:14px;color:var(--t2);flex:1}
.gl-name.done{text-decoration:line-through;color:var(--di)}
.gl-add-row{display:flex;gap:8px;align-items:center;padding:8px 0}
.gl-add-inp{flex:1;background:var(--s2);border:1.5px solid var(--b2);border-radius:8px;padding:7px 10px;color:var(--t);font-size:13px;outline:none;transition:border-color var(--tr)}
.gl-add-inp:focus{border-color:var(--a)}
.gl-add-btn{font-size:12px;font-weight:700;padding:7px 12px;background:var(--as);color:var(--a);border-radius:8px;flex-shrink:0}
.gl-done-sep{margin-top:4px;padding-top:4px;border-top:1px dashed var(--b)}
.gl-edit-inp{flex:1;background:var(--s2);border:1.5px solid var(--a);border-radius:7px;padding:5px 8px;color:var(--t);font-size:14px;outline:none}
.gl-ref-hdr{display:flex;justify-content:space-between;align-items:center;cursor:pointer}
.gl-ref-body{display:none;margin-top:12px}
.gl-ref-body.open{display:block}
.gl-ref-sub{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--mu);margin-bottom:6px}
.gl-ref-cols{display:flex;flex-direction:column}
.gl-ref-col{flex:1}
.gl-ref-col+.gl-ref-col{margin-top:12px}
@media(min-width:768px){
  .gl-ref-body{display:block!important}
  .gl-ref-hdr{cursor:default}
  .gl-ref-hdr .bn-chev{display:none!important}
  .gl-ref-cols{flex-direction:row;gap:16px;align-items:flex-start}
  .gl-ref-col+.gl-ref-col{margin-top:0}
  .gl-ref-col .mv{white-space:normal}
  .gl-ref-col .ml{min-width:36px}
}
/* Achievements & Badges */
.ach-sec{margin-bottom:4px}
.ach-hdr{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.ach-icon{font-size:20px}
.ach-title{font-size:15px;font-weight:700;color:var(--t)}
.ach-row{display:flex;align-items:center;padding:8px 12px;background:var(--s2);border-radius:10px;margin-bottom:6px}
.ach-rank{font-size:11px;font-weight:700;min-width:22px}
.ach-rank.gold{color:#d4a853}.ach-rank.silver{color:#a0a0b0}.ach-rank.bronze{color:#a07a58}
.ach-time{font-family:var(--fd);font-size:20px;font-weight:600;color:var(--t);flex:1;margin-left:8px}
.ach-date{font-size:11px;color:var(--mu);font-weight:500}
.ach-add{display:flex;gap:8px;margin-top:8px}
.ach-inp{flex:1;background:var(--s2);border:1.5px solid var(--b2);border-radius:8px;padding:8px 12px;color:var(--t);font-size:14px;outline:none;transition:border-color var(--tr)}
.ach-inp:focus{border-color:var(--a)}
.ach-log-btn{padding:8px 14px;background:var(--a);color:#1c1c1e;border-radius:8px;font-size:13px;font-weight:700}
/* Achievement hero + tabs */
.ach-hero{text-align:center;padding:18px 0 10px}
.ach-hero-lbl{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);margin-bottom:4px}
.ach-hero-num{font-family:'Cormorant Garamond',var(--fd);font-size:58px;font-weight:700;color:var(--a);line-height:1}
.ach-tabs{display:flex;gap:6px;padding-bottom:12px}
.ach-tab{flex:1;padding:8px 4px;border-radius:20px;font-size:12px;font-weight:600;background:var(--s2);color:var(--mu);border:1px solid var(--b);text-align:center;transition:all var(--tr);cursor:pointer}
.ach-tab.on{background:var(--a);color:#1c1c1e;border-color:var(--a)}
/* Badge section label */
.badge-section-lbl{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mu);margin:16px 0 4px;padding-top:4px}
.badge-section-lbl:first-child{margin-top:4px}
/* Badge rows */
.badge-row{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--b);min-height:56px}
.badge-row:last-child{border-bottom:none}
.badge-circle{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;margin-top:2px}
.badge-circle.earned{background:var(--as)}
.badge-circle.locked{background:var(--s3)}
.badge-row-body{flex:1;min-width:0}
.badge-row-name{font-size:14px;font-weight:700;color:var(--t);line-height:1.3}
.badge-row-desc{font-size:12px;color:var(--mu);margin-top:2px;line-height:1.4}
.locked-row .badge-row-name{color:var(--mu)}
.locked-row{opacity:.4}
/* Badge progress bar */
.badge-row-prog{margin-top:6px}
.badge-prog-bar{height:4px;background:var(--s3);border-radius:2px;overflow:hidden;margin-bottom:3px}
.badge-prog-fill{height:100%;background:var(--a);border-radius:2px}
.badge-prog-lbl{font-size:10px;color:var(--mu);font-weight:500}
/* Locked divider */
.badge-locked-divider{display:flex;align-items:center;gap:8px;padding:10px 0 6px}
.badge-locked-divider::before,.badge-locked-divider::after{content:'';flex:1;height:1px;background:var(--b)}
.badge-locked-divider span{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--mu)}
.miles-log-row{display:flex;gap:8px;margin-bottom:10px}
/* Protocol Guide */
.guide-section{margin-bottom:6px}
.guide-card{background:var(--s);border-radius:var(--rc);border:1px solid var(--b);overflow:hidden;box-shadow:var(--sh);margin-bottom:8px}
.guide-hdr{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:background var(--tr)}
.guide-hdr:active{background:var(--s2)}
.guide-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.guide-name{font-weight:600;font-size:14px;color:var(--t);flex:1}
.guide-sub{font-size:11px;color:var(--mu);margin-top:1px}
.guide-body{display:none;border-top:1px solid var(--b);padding:14px 16px}
.guide-body.open{display:block}
.guide-row{display:flex;gap:8px;margin-bottom:8px;font-size:13px;line-height:1.5}
.guide-lbl{color:var(--mu);font-weight:600;flex-shrink:0;min-width:64px}
.guide-val{color:var(--t2)}
.guide-prod-hdr{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:8px 0 4px;border-top:1px solid var(--b);margin-top:4px}
.guide-prod-hdr .guide-lbl{color:var(--a)}
.guide-prod-body{display:none;padding-bottom:2px}
.guide-prod-body.open{display:block}
.guide-prod-item{font-size:13px;color:var(--t2);line-height:1.6;padding:5px 0;border-bottom:1px solid var(--b)}
.guide-prod-item:last-child{border-bottom:none}
/* Chat */
.chat-bar{flex-shrink:0;background:var(--dk);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid var(--b);padding:10px 16px 14px}
.chat-thread{max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:8px;margin-bottom:10px;padding-right:2px}
.chat-thread::-webkit-scrollbar{width:3px}
.chat-thread::-webkit-scrollbar-thumb{background:var(--s3);border-radius:2px}
.chat-bubble{padding:9px 13px;border-radius:14px;font-size:13px;line-height:1.5;max-width:88%}
.chat-bubble.u{align-self:flex-end;background:var(--a);color:#1c1c1e;font-weight:500;border-radius:14px 14px 4px 14px}
.chat-bubble.a{align-self:flex-start;background:var(--s2);color:var(--t2);border-radius:14px 14px 14px 4px;border:1px solid var(--b)}
.chat-bubble.thinking{color:var(--mu);font-style:italic;background:transparent;border:none;padding-left:4px}
.chat-title{font-size:14px;font-weight:600;color:var(--t);margin-bottom:8px}
.chat-row{display:flex;gap:8px;align-items:flex-end}
.chat-inp{flex:1;background:var(--s2);border:1.5px solid var(--b2);border-radius:var(--ri);padding:10px 13px;color:var(--t);font-size:14px;resize:none;min-height:42px;max-height:100px;outline:none;line-height:1.4;transition:border-color var(--tr)}
.chat-inp:focus{border-color:var(--a)}
.chat-inp::placeholder{color:var(--mu)}
.chat-send{width:40px;height:40px;border-radius:50%;background:var(--a);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px var(--am)}
.chat-send:disabled{opacity:.4;box-shadow:none}
.chat-send:active{transform:scale(.92)}
.chat-send svg{width:16px;height:16px}
.chat-hint{font-size:11px;color:var(--mu);text-align:center;margin-top:6px;font-weight:500}

/* ── Hover delete button (pointer:fine / desktop) ── */
.hover-del-btn{display:none;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:6px;background:rgba(192,80,74,.12);color:#c0504a;font-size:18px;font-weight:400;line-height:1;border:none;cursor:pointer;align-items:center;justify-content:center;z-index:2;flex-shrink:0;transition:background .15s}
.hover-del-btn:hover{background:rgba(192,80,74,.25)}
@media (pointer:fine){
  .gl-item-wrap:hover .hover-del-btn,
  .bio-hist-item:hover .hover-del-btn,
  .mac-meal-wrap:hover .hover-del-btn{display:flex}
}

/* ── Macro Tracker ── */
.mtr-page{display:none;flex-direction:column;height:100%;overflow:hidden}
.mtr-page.on{display:flex}
.mac-card-hdr{user-select:none}
.mac-tabs{display:flex;gap:6px;padding:0 0 12px;flex-shrink:0}
.mac-tab{flex:1;padding:8px 0;border-radius:10px;font-size:13px;font-weight:600;background:var(--s2);color:var(--mu);border:1px solid var(--b);transition:all var(--tr)}
.mac-tab.on{background:var(--a);color:#1c1c1e;border-color:var(--a)}
.mac-bars{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.mac-bar-row{display:flex;align-items:center;gap:8px}
.mac-bar-label{width:56px;font-size:12px;font-weight:600;color:var(--mu);text-transform:capitalize}
.mac-bar-track{flex:1;height:6px;border-radius:3px;background:var(--b);overflow:hidden}
.mac-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}
.mac-bar-val{width:64px;text-align:right;font-size:12px;font-weight:700;color:var(--t)}
.mac-bar-val span{font-weight:400;color:var(--mu)}
.mac-meals-list{display:flex;flex-direction:column;gap:1px}
.mac-meal-wrap{position:relative;overflow:hidden}
.mac-del-reveal-btn{position:absolute;right:0;top:0;bottom:0;width:80px;background:#c0504a;color:#fff;font-size:14px;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:0}
.mac-meal-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--b);background:var(--bg);position:relative;z-index:1;transition:transform .25s ease}
.mac-meal-row:last-child{border-bottom:none}
.mac-meal-name{flex:1;font-size:13px;font-weight:500;color:var(--t)}
.mac-meal-chips{display:flex;gap:5px;flex-shrink:0}
.mac-chip{font-size:11px;font-weight:600;color:var(--mu)}
.mac-meal-cal{font-size:12px;font-weight:700;color:var(--mu);width:52px;text-align:right;flex-shrink:0}
.mac-week-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--b)}
.mac-week-row:last-child{border-bottom:none}
.mac-week-row.today .mac-week-date{color:var(--a)}
.mac-week-date{font-size:13px;font-weight:700;color:var(--t);width:36px;flex-shrink:0}
.mac-week-date span{display:block;font-size:10px;font-weight:400;color:var(--mu)}
.mac-week-bars{flex:1}
.mac-week-right{text-align:right;flex-shrink:0;width:56px}
.mac-week-kcal{font-size:13px;font-weight:700;color:var(--t)}
.mac-week-prot{font-size:10px;color:var(--mu);font-weight:500}
.insight-card{background:var(--s2);border:1px solid var(--a);border-radius:14px;padding:16px;margin-bottom:10px}
.insight-title{font-size:11px;font-weight:600;color:#d4a853;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.insight-stat{font-size:28px;font-weight:800;color:var(--t);line-height:1.1;margin-bottom:2px}
.insight-pct{font-size:13px;font-weight:500;color:var(--mu);margin-left:4px}
.insight-nudge{font-size:13px;color:var(--t);margin-top:6px;line-height:1.5}

/* ── Manual meal entry ── */
.mac-empty{text-align:center;color:var(--mu);padding:20px 0;font-size:14px;line-height:1.5}
.mac-add-row{display:flex;align-items:center;gap:10px;padding:12px 0;cursor:pointer;border-top:1px solid var(--b);margin-top:4px}
.mac-add-plus{width:26px;height:26px;border-radius:50%;background:var(--a);color:#1c1c1e;font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}
.mac-add-label{font-size:14px;color:var(--mu);font-weight:500}
.mac-add-form{padding:12px 0 4px;border-top:1px solid var(--b)}
.mac-add-inp{width:100%;background:var(--s2);border:1.5px solid var(--b2);border-radius:9px;padding:10px 12px;color:var(--t);font-size:14px;outline:none;transition:border-color var(--tr);margin-bottom:8px;font-family:var(--fb);-webkit-appearance:none;appearance:none}
.mac-add-inp:focus{border-color:var(--a)}
.mac-type-pills{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap}
.mac-type-pill{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;background:var(--s2);color:var(--mu);border:1px solid var(--b);transition:all var(--tr)}
.mac-type-pill.on{background:var(--a);color:#1c1c1e;border-color:var(--a)}
.mac-add-submit{width:100%;padding:12px;background:var(--a);color:#1c1c1e;border-radius:10px;font-size:15px;font-weight:700}
.mac-add-submit:disabled{opacity:.5}
.mac-cancel-btn{color:var(--mu);font-size:13px;font-weight:500}

/* ── Biometrics card (main metrics view) ── */
.bio-hdr-tap{display:flex;justify-content:space-between;align-items:center;cursor:pointer;margin-bottom:10px}
.bio-sum-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--b)}
.bio-sum-row:last-child{border-bottom:none}
.bio-sum-l{font-size:13px;font-weight:500;color:var(--t2)}
.bio-sum-r{font-size:13px;font-weight:600;color:var(--t)}

/* ── Biometrics sub-page ── */
.bio-tabs{display:flex;gap:6px;padding:0 0 14px;flex-shrink:0}
.bio-tab{flex:1;padding:8px 0;border-radius:10px;font-size:13px;font-weight:600;background:var(--s2);color:var(--mu);border:1px solid var(--b);transition:all var(--tr)}
.bio-tab.on{background:var(--a);color:#1c1c1e;border-color:var(--a)}
/* Hero stat */
.bio-hero{text-align:center;padding:20px 0 8px;cursor:pointer;user-select:none}
.bio-hero-val{font-family:var(--fd);font-size:72px;font-weight:600;color:var(--t);line-height:1}
.bio-hero-unit{font-size:14px;font-weight:500;color:var(--mu);margin-top:4px}
.bio-delta{font-size:13px;font-weight:500;text-align:center;margin-bottom:16px;min-height:20px}
/* Inline edit */
.bio-hero-edit-row{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 0 8px}
.bio-hero-inp{background:var(--s2);border:2px solid var(--a);border-radius:12px;padding:10px 16px;color:var(--t);font-family:var(--fd);font-size:42px;font-weight:600;width:160px;text-align:center;outline:none;-webkit-appearance:none;appearance:none}
.bio-hero-edit-unit{font-size:18px;font-weight:500;color:var(--mu)}
.bio-hero-save{font-size:16px;font-weight:700;padding:10px 16px;background:var(--a);color:#1c1c1e;border-radius:10px}
/* Graph */
.bio-graph-wrap{position:relative;margin:0 0 16px;min-height:40px}
.bio-graph-empty{font-size:13px;color:var(--mu);font-style:italic;text-align:center;padding:20px 0;display:none}
/* History list */
.bio-hist-list{display:flex;flex-direction:column}
.bio-hist-item{position:relative;overflow:hidden}
.bio-hist-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--b);background:var(--bg);position:relative;z-index:1}
.bio-hist-item:last-child .bio-hist-row{border-bottom:none}
.bio-hist-val{font-size:15px;font-weight:600;color:var(--t)}
.bio-hist-date{font-size:13px;color:var(--mu);font-weight:500}
.bio-del-btn{position:absolute;right:0;top:0;bottom:0;width:80px;background:#c0504a;color:#fff;font-size:14px;font-weight:700;border:none;cursor:pointer;z-index:0}
.bio-hist-empty{font-size:13px;color:var(--mu);font-style:italic;text-align:center;padding:28px 0;line-height:1.6}

/* ── Momentum sub-page ── */
.mom-tabs{display:flex;gap:6px;padding:0 0 14px;flex-shrink:0}
.mom-tab{flex:1;padding:8px 0;border-radius:10px;font-size:13px;font-weight:600;background:var(--s2);color:var(--mu);border:1px solid var(--b);transition:all var(--tr)}
.mom-tab.on{background:var(--a);color:#1c1c1e;border-color:var(--a)}
/* Hero */
.mom-hero{text-align:center;padding:18px 0 10px}
.mom-hero-pct{font-family:var(--fd);font-size:72px;font-weight:600;line-height:1}
.mom-hero-lbl{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--mu);margin-top:6px}
/* Section header */
.mom-section-hdr{font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--mu);margin:16px 0 8px}
/* Day rows */
.mom-day-rows{display:flex;flex-direction:column;gap:2px}
.mom-day-row{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;transition:background var(--tr)}
.mom-day-row.today{background:var(--s2)}
.mom-day-name{font-size:13px;font-weight:600;color:var(--t2);width:32px;flex-shrink:0}
.mom-day-pct{font-size:12px;font-weight:700;color:var(--mu);width:36px;text-align:right;flex-shrink:0}
/* Shared bar */
.mom-bar-track{flex:1;height:5px;border-radius:3px;background:var(--s3);overflow:hidden}
.mom-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}
/* Category rows */
.mom-cat-rows{display:flex;flex-direction:column;gap:2px}
.mom-cat-row{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px}
.mom-cat-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.mom-cat-name{font-size:13px;font-weight:500;color:var(--t2);width:80px;flex-shrink:0}
.mom-cat-pct{font-size:12px;font-weight:700;color:var(--mu);width:36px;text-align:right;flex-shrink:0}
/* History stat cards */
.mom-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
.mom-stat-card{background:var(--s);border:1px solid var(--b);border-radius:12px;padding:14px 16px;box-shadow:var(--sh)}
.mom-stat-lbl{font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:var(--mu);margin-bottom:6px}
.mom-stat-val{font-family:var(--fd);font-size:22px;font-weight:600;color:var(--a);line-height:1.1}
.mom-hist-empty{font-size:13px;color:var(--mu);font-style:italic;text-align:center;padding:28px 0;line-height:1.6}

/* ── PR overhaul ── */
.pr-ex-row{display:flex;flex-direction:column;border-bottom:1px solid var(--b);padding:0}
.pr-ex-row:last-child{border-bottom:none}
.pr-ex-hdr{display:flex;justify-content:space-between;align-items:center;padding:10px 0;cursor:pointer}
.pr-ex-body{border-top:1px solid var(--b);padding:4px 0}
.pr-entry-wrap{position:relative;overflow:hidden}
.pr-del-btn{position:absolute;right:0;top:0;bottom:0;width:80px;background:#c0504a;color:#fff;font-size:13px;font-weight:600;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:0}
.pr-entry-row{display:flex;justify-content:space-between;align-items:center;padding:9px 0;background:var(--s);position:relative;z-index:1;transition:transform .25s ease}
.pr-entry-val{font-family:var(--fd);font-size:17px;font-weight:600;color:var(--a)}
.pr-entry-date{font-size:11px;color:var(--mu);font-weight:500}
.pr-add-row{display:flex;align-items:center;gap:8px;padding:8px 0}
.pr-add-btn{font-size:13px;color:var(--a);font-weight:700;padding:5px 0}

/* ── Goal form pills & emoji ── */
.gf-pill-row{display:flex;gap:6px;flex-wrap:wrap}
.gf-pill-scroll{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.gf-pill-scroll::-webkit-scrollbar{display:none}
.gf-pill{padding:7px 14px;border-radius:20px;font-size:13px;font-weight:600;background:var(--s2);color:var(--mu);border:1px solid var(--b);flex-shrink:0;transition:all var(--tr);cursor:pointer}
.gf-pill.on{background:var(--a);color:#1c1c1e;border-color:var(--a)}
.gf-emoji-btn{font-size:22px;padding:6px 10px;background:var(--s2);border-radius:10px;border:1.5px solid var(--b2);line-height:1;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:border-color var(--tr)}
.gf-emoji-btn:active{border-color:var(--a)}
.gf-emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;margin-top:8px;max-height:120px;overflow-y:auto}
.gf-emoji-opt{font-size:20px;padding:6px;border-radius:8px;text-align:center;cursor:pointer;transition:background var(--tr)}
.gf-emoji-opt:active,.gf-emoji-opt.on{background:var(--as)}
.gf-pace-display{font-size:13px;font-weight:600;color:var(--a);padding:5px 0}
