:root{--ink:#14201d;--muted:#68736f;--paper:#f5f7f5;--card:#fff;--line:#dfe5e2;--accent:#176b52;--accent-soft:#e5f1ed;--danger:#9a3636;--zone-1:#5b7f9c;--zone-2:#3f8f7a;--zone-3:#b08a2e;--zone-4:#c2662f;--zone-5:#a4302f;color:var(--ink);background:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-height:100vh;margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.shell{max-width:1180px;margin:0 auto;padding:0 24px 48px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:72px;display:flex}.brand{letter-spacing:-.02em;font-size:16px;font-weight:750}.eyebrow{color:var(--accent);letter-spacing:.09em;text-transform:uppercase;font-size:12px;font-weight:750}h1{letter-spacing:-.045em;margin:12px 0;font-size:clamp(30px,5vw,48px);line-height:1.05}h2{letter-spacing:-.025em;font-size:21px}p{color:var(--muted);line-height:1.6}.hero{max-width:720px;padding:64px 0 36px}.grid{grid-template-columns:repeat(12,1fr);gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;grid-column:span 4;padding:22px;box-shadow:0 4px 18px #0f231c09}.card.wide{grid-column:span 8}.metric{letter-spacing:-.04em;margin:12px 0 4px;font-size:34px;font-weight:760}.muted{color:var(--muted);font-size:14px}.button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:9px;justify-content:center;align-items:center;min-height:44px;padding:0 17px;font-weight:700;display:inline-flex}.button.secondary{background:var(--accent-soft);color:var(--accent)}.tabs{background:var(--card);border:1px solid var(--line);border-radius:12px;gap:8px;padding:10px;display:flex;overflow-x:auto}.tabs a{white-space:nowrap;color:var(--muted);border-radius:8px;padding:9px 13px}.tabs a[aria-current=page]{color:var(--accent);background:var(--accent-soft);font-weight:700}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:18px;padding:16px 0;display:flex}.status{background:var(--accent-soft);color:var(--accent);border-radius:99px;align-items:center;padding:4px 8px;font-size:12px;font-weight:700;display:inline-flex}.toggle{align-items:center;gap:12px;display:flex}.toggle input{width:44px;height:24px;accent-color:var(--accent)}.bubble{grid-column:span 3}.bubble .metric{margin-bottom:2px}.bubble .unit{color:var(--muted);letter-spacing:0;font-size:15px;font-weight:600}.delta-good{color:var(--accent);font-size:14px;font-weight:650}.delta-bad{color:#a4442f;font-size:14px;font-weight:650}.chart-card{margin-top:16px}.chart{width:100%;height:auto;margin-top:14px;display:block;overflow:visible}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-axis{fill:var(--muted);font-size:11px}.chart-area{fill:var(--accent-soft);opacity:.65}.chart-line{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart-dot{fill:var(--accent);opacity:.55}.chart-dot-last{fill:var(--accent);stroke:var(--card);stroke-width:2.5px}.upload{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;display:flex}.upload label{flex-basis:100%}.upload input[type=file]{border:1px dashed var(--line);background:var(--bg);min-height:44px;color:var(--muted);border-radius:9px;flex:260px;padding:9px}.upload p{flex-basis:100%;margin:0;font-size:14px}.upload-ok{color:var(--accent);font-weight:650}.upload-error{color:#a4442f;font-weight:650}@media (max-width:1000px){.bubble{grid-column:span 4}}@media (max-width:760px){.bubble{grid-column:span 6}.shell{padding-inline:16px}.hero{padding-top:40px}.card,.card.wide{grid-column:1/-1}}.macro-bubble{width:190px;height:190px;margin:10px auto 2px;position:relative}.macro-bubble svg{display:block}.bubble-center{flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:0}.bubble-center .metric{margin:0;font-size:30px}.ring-track{fill:none;stroke:var(--line);stroke-width:15px}.ring-fill{fill:none;stroke:var(--accent);stroke-width:15px;stroke-linecap:round;transform-origin:50%;transform:rotate(-90deg)}.ring-fill.over{stroke:#a4442f}.macro-bars{gap:10px;margin-top:16px;display:grid}.macro-bar{grid-template-columns:70px 1fr 110px;align-items:center;gap:10px;font-size:14px;display:grid}.macro-bar .track{background:var(--accent-soft);border-radius:99px;height:10px;overflow:hidden}.macro-bar .fill{background:var(--accent);border-radius:99px;height:100%}.macro-bar .fill.over{background:#a4442f}.macro-bar .value{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.slot-title{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:18px 0 4px;font-size:13px;font-weight:750}.food-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:14px;padding:10px 0;font-size:15px;display:flex}.food-row:last-child{border-bottom:0}.food-row .food-meta{color:var(--muted);font-size:13px}.food-row .food-macros{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:13px}.food-row form{margin:0}.mini-button{border-radius:8px;min-height:32px;padding:0 12px;font-size:13px}.status.warn{color:#a4442f;background:#f6e7dc}.status.flagged{color:var(--danger);background:#f3dede}.field-grid{gap:10px;margin-top:12px;display:grid}.field-grid label{gap:4px;font-size:14px;font-weight:650;display:grid}.field-grid input,.field-grid select,.field-grid textarea{border:1px solid var(--line);background:var(--card);min-height:42px;font:inherit;border-radius:9px;padding:8px 10px}.inline-fields{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.inline-fields label{gap:4px;font-size:13px;font-weight:650;display:grid}.inline-fields input,.inline-fields select{border:1px solid var(--line);background:var(--card);min-height:42px;font:inherit;border-radius:9px;padding:8px 10px}.result-note{margin-top:10px;font-size:14px;font-weight:650}.result-note.ok{color:var(--accent)}.result-note.bad{color:#a4442f}.plan-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:14px}.plan-table th,.plan-table td{text-align:left;border-bottom:1px solid var(--line);padding:7px 8px}.plan-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px}.plan-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.evidence-thumb{border:1px solid var(--line);border-radius:10px;max-width:220px;margin-top:8px;display:block}.live-now{text-align:left}.live-bpm{letter-spacing:-.05em;font-variant-numeric:tabular-nums;margin:10px 0 6px;font-size:clamp(56px,11vw,104px);font-weight:780;line-height:1}.live-unit{color:var(--muted);letter-spacing:0;margin-left:8px;font-size:18px;font-weight:650}.zone-bar .track{background:var(--line)}.zone-fields{grid-template-columns:repeat(5,1fr);gap:10px;margin-top:12px;display:grid}.zone-fields label{gap:4px;font-size:13px;font-weight:650;display:grid}.zone-fields input{border:1px solid var(--line);background:var(--card);min-height:42px;font:inherit;border-radius:9px;padding:8px 10px}.zone-fields .muted{font-size:12px;font-weight:500}.card.today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}@media (max-width:760px){.macro-bar{grid-template-columns:60px 1fr 92px}.zone-fields{grid-template-columns:repeat(2,1fr)}}
