@font-face{font-family:'Poppins';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/Poppins-Medium.woff) format('woff')}
@font-face{font-family:'Poppins';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/Poppins-Bold.woff) format('woff')}
@font-face{font-family:'Inter';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/Inter-Regular.woff) format('woff')}
@font-face{font-family:'Inter';font-weight:600 700;font-style:normal;font-display:swap;src:url(fonts/Inter-SemiBold.woff) format('woff')}

/* Layout: één mobiele kolom (max 430px): sticky prototype-lint, schermen eronder, vaste tabbalk onderin; sheets schuiven van onderen. */
:root{
  --bg:#F5F1E4; --surface:#FBF8EE; --card:#FFFDF6; --ink:#25302A; --muted:#667268; --line:#E3DDCA;
  --green:#3F6C50; --green-d:#2B4D3A; --on-green:#FFFDF6; --sage:#A8BEA3; --sage-s:#DDE7D7; --sand:#EBE0C4;
  --alert:#A4442A; --alert-s:#F5DFD5;
  --c1:#3F6C50; --c2:#A8BEA3; --c3:#CDB98A; --c4:#7F9C98; --c5:#B6A99B;
  --display:'Poppins','SF Pro Rounded',ui-rounded,system-ui,-apple-system,sans-serif;
  --body:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --shadow:0 1px 2px rgba(37,48,42,.06),0 10px 28px rgba(37,48,42,.07);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#151B17; --surface:#1B231E; --card:#212B25; --ink:#EDEBDD; --muted:#A3AFA5; --line:#314036;
  --green:#8CBB9B; --green-d:#0F1712; --on-green:#10201A; --sage:#5F7A63; --sage-s:#2A372E; --sand:#3A3626;
  --alert:#EE9A7C; --alert-s:#3B241C;
  --c1:#8CBB9B; --c2:#5F7A63; --c3:#B7A472; --c4:#6F8E89; --c5:#8F8276; --shadow:0 8px 28px rgba(0,0,0,.35); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#151B17; --surface:#1B231E; --card:#212B25; --ink:#EDEBDD; --muted:#A3AFA5; --line:#314036;
  --green:#8CBB9B; --green-d:#0F1712; --on-green:#10201A; --sage:#5F7A63; --sage-s:#2A372E; --sand:#3A3626;
  --alert:#EE9A7C; --alert-s:#3B241C;
  --c1:#8CBB9B; --c2:#5F7A63; --c3:#B7A472; --c4:#6F8E89; --c5:#8F8276; --shadow:0 8px 28px rgba(0,0,0,.35); color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:15px/1.45 var(--body);
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--sand)}
button,input{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.phone{max-width:430px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column;position:relative}
@media (min-width:600px){body{padding-block:20px}.phone{min-height:760px;border:1px solid var(--line);border-radius:30px;background:var(--bg);box-shadow:var(--shadow)}}
#app{display:flex;flex-direction:column;flex:1}
.screen{flex:1;display:flex;flex-direction:column;gap:26px;padding:22px 0 36px}
.h1{font:700 28px/1.15 var(--display);letter-spacing:-.02em;margin:0;text-wrap:balance}
.h2{font:700 18px/1.25 var(--display);letter-spacing:-.01em;margin:0;text-wrap:balance}
.lead{color:var(--muted);margin:0}
.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.small{font-size:13px;color:var(--muted)}
.num{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:16px;min-width:0}
.card.hero{background:var(--green);color:var(--on-green);border-color:transparent;box-shadow:var(--shadow)}
.card.hero .small{color:inherit;opacity:.85}
.card.flat{background:var(--surface)}
.card.alert{background:var(--alert-s);border-color:var(--alert);color:var(--ink)}
.card.alert .h2{color:var(--alert)}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}
.row>*{min-width:0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.neg{color:var(--alert)}
.hero .neg{color:#FFD9C9}
.dots{display:flex;gap:6px}.dots i{width:22px;height:6px;border-radius:9px;background:var(--line)}.dots i.on{background:var(--green)}

.btn{min-height:50px;border-radius:16px;transition:transform .12s ease,filter .12s ease;border:1px solid transparent;background:var(--green);color:var(--on-green);font-weight:650;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-align:center}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line)}
.btn.soft{background:var(--sage-s);color:var(--ink)}
.btn.sm{min-height:38px;padding:0 14px;font-size:14px;border-radius:12px}
.btn.block{width:100%}
.btns{display:flex;gap:12px}.btns>.btn{flex:1}
.field{display:flex;flex-direction:column;gap:6px}
.field>label,.lbl{font-size:13px;font-weight:600;color:var(--muted)}
.field input[type=text],.field input[type=time]{height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 14px;font-size:16px;width:100%}
.money{position:relative}.money>b{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:600}
.money input{padding-left:34px!important;font-variant-numeric:tabular-nums}
.stepper{display:flex;align-items:center;gap:12px}
.stepper button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);font-size:20px;line-height:1}
.stepper output{min-width:64px;text-align:center;font:700 26px var(--display)}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg button{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 8px;font-size:14px;line-height:1.25;font-weight:550}
.seg button.on{background:var(--sage-s);border-color:var(--green);color:var(--ink)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 12px;font-size:14px;display:inline-flex;align-items:center;gap:7px}
.chip.on{border-color:var(--green);background:var(--sage-s)}
.dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.pill{font-size:12px;font-weight:600;border-radius:999px;padding:3px 9px;background:var(--sage-s)}
.pill.warn{background:var(--alert-s);color:var(--alert)}
.list{display:flex;flex-direction:column}
.li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 0;border-top:1px solid var(--line);min-width:0}
.li:first-child{border-top:0}
.li .t{min-width:0;flex:1}.li .t b{display:block;font-weight:600;overflow-wrap:anywhere}
.li .a{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.linkbtn{background:none;border:0;padding:4px 2px;color:var(--green);font-weight:650;text-decoration:underline;text-underline-offset:3px}
.hero .linkbtn{color:inherit}

.frow{display:flex;gap:8px;align-items:baseline;padding:5px 0}
.frow .s{width:16px;text-align:center;font-weight:700;color:var(--muted);flex:none}
.frow .n{flex:1;min-width:0}.frow .v{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.frow.total{border-top:2px solid var(--ink);margin-top:6px;padding-top:10px;font-weight:700;font-size:17px}
.bar{height:9px;border-radius:99px;background:var(--sage-s);overflow:hidden}
.bar i{display:block;height:100%;border-radius:99px;background:var(--green)}
.hero .bar{background:rgba(255,253,246,.25)}.hero .bar i{background:var(--on-green)}
.bar.bad i{background:var(--alert)}
.quote{font:italic 500 18px/1.35 var(--display);text-wrap:balance}
details>summary{cursor:pointer;font-weight:650;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:8px}
details>summary::-webkit-details-marker{display:none}
details>summary::after{content:"+";font-size:20px;color:var(--muted)}
details[open]>summary::after{content:"–"}

.tabbar{position:sticky;bottom:0;z-index:15;display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-top:1px solid var(--line);margin-inline:-16px;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px))}
@media (min-width:600px){.tabbar{margin-inline:0;border-radius:0 0 30px 30px}}
.tabbar button{background:none;border:0;padding:9px 4px;border-radius:12px;font-weight:600;font-size:14px;color:var(--muted)}
.tabbar button.on{color:var(--ink);background:var(--sage-s)}
.notif{background:var(--card);border:1px solid var(--green);border-radius:16px;padding:12px 14px;margin-top:12px;box-shadow:var(--shadow);display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%}
.notif .x{margin-left:auto;background:none;border:0;font-size:18px;color:var(--muted)}
.mock{background:var(--surface);border:1px dashed var(--line);border-radius:14px;padding:12px 14px}

.sheetwrap{position:fixed;inset:0;z-index:40;background:rgba(18,26,21,.5);display:flex;justify-content:center;align-items:flex-end}
.sheet{width:100%;max-width:430px;max-height:92vh;overflow:auto;background:var(--card);color:var(--ink);border-radius:24px 24px 0 0;
  padding:20px max(16px,env(safe-area-inset-left,0px)) calc(20px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;gap:14px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:50;max-width:min(92vw,400px);
  background:var(--green-d);color:#FFFDF6;border-radius:14px;padding:11px 16px;font-weight:550;box-shadow:var(--shadow);text-align:center}
svg text{font-family:var(--body)}
.layer{transform-box:fill-box;transform-origin:50% 100%;animation:rise .5s ease-out both}
@keyframes rise{from{transform:scaleY(.7);opacity:.3}}
@media (prefers-reduced-motion:reduce){.layer{animation:none}*{scroll-behavior:auto!important}}

.tabbar{grid-template-columns:repeat(5,1fr)}.tabbar button{font-size:12.5px;padding:9px 2px}
select,input[type=date]{height:48px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 12px;font-size:16px;width:100%;color:var(--ink)}
.field input[type=date]{width:100%}
.banner{background:var(--sand);border:1px solid var(--line);border-radius:14px;padding:10px 12px;font-size:13px}
.err{color:var(--alert);font-weight:600;font-size:14px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.foot{font-size:12px;color:var(--muted);text-align:center;padding:4px 0 0}
.filters{display:grid;grid-template-columns:1fr;gap:8px}
@media (min-width:380px){.filters{grid-template-columns:1fr 1fr 1fr}}
.tag{font-size:12px;color:var(--muted)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

[hidden]{display:none!important}
img{max-width:100%}
body{margin:0}
.li .t>span{display:block}

.btn:active,.chip:active{transform:scale(.97)}
.btn:not(.ghost):not(.soft){box-shadow:0 3px 0 var(--green-d)}
.btn:not(.ghost):not(.soft):active{box-shadow:0 1px 0 var(--green-d);transform:translateY(2px)}
.sec{display:flex;flex-direction:column;gap:14px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 2px}
.sec-h .h2{font-size:17px}
.top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.streak{border:0;cursor:pointer;display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 13px 7px 10px;font:700 14px var(--display);background:var(--sage-s);color:var(--ink);white-space:nowrap}
.streak svg{color:var(--ember);flex:none}.streak.off svg{color:var(--muted)}
.ringwrap{position:relative;width:176px;height:176px;margin:2px auto 0}
.ringwrap svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring-track{stroke:var(--ring-track,rgba(255,253,246,.22))}.ring-bar{stroke:var(--on-green);stroke-linecap:round}
@keyframes ringin{from{stroke-dashoffset:var(--c)}}
.ringwrap.over .ring-bar{stroke:var(--sand)}
.ringc{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center}
.ringc .eyebrow{color:inherit;opacity:.85;font-size:11px}
.ringc .num{font-size:34px;line-height:1.05;font-weight:700}
.coach{display:flex;gap:14px;align-items:flex-start;background:var(--sage-s);border-radius:22px;padding:18px 20px}
.coach .ico{flex:none;width:44px;height:44px;border-radius:50%;background:var(--card);display:grid;place-items:center;color:var(--green)}
.coach b{font:700 16px/1.25 var(--display);display:block;margin-bottom:3px}
.coach p{margin:0;font-size:14px;color:var(--ink)}
.weekdots{display:flex;gap:8px}
.wd{flex:1;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12px;color:var(--muted)}
.wd i{width:100%;max-width:34px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:var(--line);color:var(--card)}
.wd.ok i{background:var(--green)}.wd.over i{background:var(--sand);color:var(--ink)}.wd.now i{background:transparent;border:2px dashed var(--green)}.wd.none i{background:transparent;border:2px solid var(--line)}
.wd.today{color:var(--ink);font-weight:700}
.badges{display:flex;gap:8px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 11px;font:700 12px var(--display);background:var(--surface);border:1px solid var(--line);color:var(--muted)}
.badge.on{background:var(--green);border-color:var(--green);color:var(--on-green)}
.sug{border-radius:18px;background:var(--surface);border:1px dashed var(--sage);padding:16px;display:flex;flex-direction:column;gap:12px}
.sug .chips{gap:10px}.sug .chip{padding:10px 14px;line-height:1.3;text-align:left;border-radius:14px}
.sug p{margin:0;font-size:14px}
.pulse{animation:pulse .6s ease-out 1}
@keyframes pulse{0%{transform:scale(.96)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
.pop{animation:pop .45s cubic-bezier(.2,.9,.3,1.3) both}
@keyframes pop{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}
.confetti{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden}
.confetti i{position:absolute;top:-12px;width:9px;height:14px;border-radius:2px;animation:fall 1.7s ease-in forwards}
@keyframes fall{to{transform:translate3d(var(--dx),105vh,0) rotate(var(--rot));opacity:.9}}
@media (prefers-reduced-motion:reduce){.pop,.pulse,.confetti{animation:none}.confetti{display:none}.ring-bar{animation:none!important}.btn,.chip{transition:none}}
:root{--ember:#D9822B}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--ember:#F0A04B}}
:root[data-theme="dark"]{--ember:#F0A04B}
.sug .advice{background:var(--sage-s);color:var(--ink);border-radius:12px;padding:10px 12px;font-weight:600}
/* doelen: herontwerp */
.ghero{gap:18px;padding:24px 22px}
.gtop{display:flex;align-items:center;gap:20px}
.gring{position:relative;width:112px;height:112px;flex:none}
.gring svg{width:100%;height:100%;transform:rotate(-90deg)}
.gpct{position:absolute;inset:0;display:grid;place-items:center;font:700 22px var(--display)}
.gtxt{display:flex;flex-direction:column;gap:2px;min-width:0}
.gname{font:700 20px var(--display);margin:0}
.gbig{font-size:30px}
.gstat{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border-radius:16px;background:var(--sage-s)}
.gstat b{font:700 19px var(--display)}
.gstat.warn{background:var(--sand)}
.gmini{text-align:left;gap:10px;cursor:pointer;color:var(--ink);font:inherit}
.gmini .gname{font-size:17px}
.sugbox{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:18px}
.sugh{font:700 17px var(--display)}
.reco{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;width:100%;padding:16px 18px;border-radius:18px;border:2px solid var(--green);background:var(--card);color:var(--ink);font:inherit}
.reco b{font:700 18px var(--display)}
.reco .tag{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--green)}
.reco:disabled{opacity:.5}
.sugbox .chips{display:flex;flex-direction:column;gap:10px}
.sugbox .chip{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border-radius:16px;padding:12px 14px;width:100%;line-height:1.3}

/* kleuraccent: groen is de rustige basis, oranje isoleert het ene belangrijke ding per scherm */
:root{--ember:#B85A0C;--ember-ink:#FFFDF6;--ring-track:rgba(255,253,246,.26)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--ember:#F0A04B;--ember-ink:#10201A;--ring-track:rgba(16,32,26,.22)}}
:root[data-theme="dark"]{--ember:#F0A04B;--ember-ink:#10201A;--ring-track:rgba(16,32,26,.22)}
.btn.ember{background:var(--ember);color:var(--ember-ink);border-color:var(--ember)}
.bar.ember i{background:var(--ember)}
.reco{border-color:var(--ember)}.reco .tag{color:var(--ember)}
.recap{display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--line);padding-top:16px}
.recap-top{display:flex;flex-direction:column;gap:2px}.recap-h{font:700 18px var(--display)}
.chal{display:flex;flex-direction:column;gap:8px}
.win{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:rgba(16,24,19,.72)}
.winc{width:100%;max-width:360px;border-radius:26px;padding:28px 24px;background:linear-gradient(160deg,#2B4D3A,#3F6C50);color:#FFFDF6;display:flex;flex-direction:column;gap:14px;text-align:center;animation:pop .5s}
.winc h2{font:700 26px var(--display);margin:0}.winc p{margin:0;line-height:1.5}
.winflag{align-self:center;background:#F2C14E;color:#2B2A1F;font:700 12px var(--display);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:5px 12px}
.winfree{background:rgba(255,253,246,.12);border-radius:14px;padding:12px}
.winc .btn.ember{background:#F2C14E;color:#2B2A1F;border-color:#F2C14E}
/* hero: rustig kaartje in plaats van een groen vlak */
.card.hero{background:var(--card);color:var(--ink);border:1px solid var(--line);box-shadow:none}
.card.hero .small{opacity:1;color:var(--muted)}
.hero .neg{color:var(--alert,#B4532A)}
.ring-track{stroke:var(--sage-s)}.ring-bar{stroke:var(--green)}
.ringwrap.over .ring-bar{stroke:var(--ember)}
.hero .bar{background:var(--sage-s)}.hero .bar i{background:var(--green)}

/* leven in de achtergrond: zachte gloed van salie en warm oranje, in licht en donker */
body{background-image:radial-gradient(120% 60% at 100% 0%,rgba(217,130,43,.12),transparent 60%),radial-gradient(100% 60% at 0% 35%,rgba(63,108,80,.12),transparent 65%);background-attachment:fixed}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) body{background-image:radial-gradient(120% 60% at 100% 0%,rgba(240,160,75,.16),transparent 60%),radial-gradient(100% 60% at 0% 35%,rgba(140,187,155,.18),transparent 65%)}}
:root[data-theme="dark"] body{background-image:radial-gradient(120% 60% at 100% 0%,rgba(240,160,75,.16),transparent 60%),radial-gradient(100% 60% at 0% 35%,rgba(140,187,155,.18),transparent 65%)}
.card.hero{background:radial-gradient(90% 80% at 100% 0%,rgba(240,160,75,.20),transparent 62%),radial-gradient(80% 90% at 0% 100%,rgba(140,187,155,.24),transparent 62%),var(--card);border:1px solid var(--sage)}
.ring-bar{stroke:var(--green);filter:drop-shadow(0 0 6px rgba(140,187,155,.45))}
.card.focus{gap:8px;border-left:4px solid var(--ember)}
.focus-d{font:700 20px var(--display)}
.gwhy{margin:0;font-style:italic;color:var(--muted);line-height:1.5}
.explain summary{cursor:pointer;list-style:none}.explain summary::-webkit-details-marker{display:none}
.explain-b{display:flex;flex-direction:column;gap:14px;margin-top:14px}
.glong{border-color:var(--ember)}
textarea{font:inherit;color:inherit}
.plan{display:flex;flex-direction:column;gap:10px}
.plan2{display:flex;flex-direction:column;gap:8px}
.plan2 .chips{display:flex;flex-direction:column;gap:8px}
.plan2 .chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border-radius:14px;width:100%}
.gsec{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:14px;margin-top:4px}

.gphoto{display:block;width:100%;height:auto;max-height:340px;object-fit:contain;border-radius:16px;margin:0 0 4px;background:var(--sage-s,transparent)}
.gphoto-prev{display:block;width:100%;height:auto;max-height:300px;object-fit:contain;border-radius:14px;background:var(--sage-s,transparent)}
.vh{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;pointer-events:none}
.card.focus .gphoto{max-height:300px;margin-bottom:6px}
.gmini .gphoto-mini{max-height:150px;margin:0}
