#dgh-os-v2{ --navy:#091422;--navy2:#122238;--text:#142033;--muted:#667386;--line:#dfe5eb; --paper:#ffffff;--page:#f4f7f5;--green:#2f7650;--green2:#eaf5ee;--gold:#c5a15d; --gold2:#f5eddd;--shadow:0 18px 50px rgba(17,34,55,.09);--shadow2:0 7px 22px rgba(17,34,55,.07); width:100%;min-height:100vh;background:var(--page);color:var(--text); font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; font-size:16px;line-height:1.5;overflow-x:hidden; } #dgh-os-v2,#dgh-os-v2 *{box-sizing:border-box} #dgh-os-v2 button,#dgh-os-v2 input{font:inherit} #dgh-os-v2 button{cursor:pointer} #dgh-os-v2 svg{display:block} #dgh-os-v2 .app{width:100%;max-width:1540px;margin:0 auto;min-height:100vh;display:grid;grid-template-columns:278px minmax(0,1fr)} /* SIDEBAR */ #dgh-os-v2 .sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy),#07101c);color:white;padding:28px 20px 22px;display:flex;flex-direction:column;z-index:20} #dgh-os-v2 .brand{display:flex;align-items:center;gap:13px;padding:0 9px 28px;border-bottom:1px solid rgba(255,255,255,.08)} #dgh-os-v2 .brandmark{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,#d8bd84,#a9803f);color:#111;font-weight:900;letter-spacing:-.04em;box-shadow:0 10px 28px rgba(197,161,93,.25);flex:0 0 48px} #dgh-os-v2 .brandcopy strong{font-size:13px;line-height:1.15;letter-spacing:.05em;text-transform:uppercase;display:block} #dgh-os-v2 .brandcopy span{font-size:11px;color:rgba(255,255,255,.52);display:block;margin-top:5px} #dgh-os-v2 .nav{display:grid;gap:7px;margin-top:24px} #dgh-os-v2 .nav button{border:0;background:transparent;color:rgba(255,255,255,.67);min-height:50px;border-radius:15px;padding:0 15px;display:flex;align-items:center;gap:13px;text-align:left;font-weight:700;font-size:14px;transition:.18s ease} #dgh-os-v2 .nav button svg{width:20px;height:20px;flex:0 0 20px} #dgh-os-v2 .nav button:hover,#dgh-os-v2 .nav button.active{background:rgba(255,255,255,.09);color:white;transform:translateX(2px)} #dgh-os-v2 .nav button.active:after{content:"";margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 5px rgba(197,161,93,.12)} #dgh-os-v2 .side-progress{margin-top:auto;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.055);border-radius:20px;padding:18px} #dgh-os-v2 .side-progress small{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.52);font-weight:800} #dgh-os-v2 .side-progress strong{display:block;font-size:18px;line-height:1.25;margin-top:8px} #dgh-os-v2 .bar-dark{height:9px;background:rgba(255,255,255,.10);border-radius:999px;overflow:hidden;margin:15px 0 9px} #dgh-os-v2 .bar-dark i{height:100%;display:block;width:0;background:linear-gradient(90deg,var(--gold),#ead6a3);border-radius:inherit;transition:width .4s ease} #dgh-os-v2 .side-progress p{font-size:12px;line-height:1.5;color:rgba(255,255,255,.55);margin:0} /* MAIN */ #dgh-os-v2 .main{min-width:0;padding:28px 34px 60px} #dgh-os-v2 .topbar{height:54px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px} #dgh-os-v2 .welcome small{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:800} #dgh-os-v2 .welcome strong{display:block;font-size:16px;margin-top:2px} #dgh-os-v2 .top-actions{display:flex;align-items:center;gap:10px} #dgh-os-v2 .icon-button,#dgh-os-v2 .avatar{width:44px;height:44px;border-radius:14px;display:grid;place-items:center} #dgh-os-v2 .icon-button{border:1px solid var(--line);background:white;color:var(--text);box-shadow:var(--shadow2)} #dgh-os-v2 .avatar{background:var(--navy);color:white;font-size:14px;font-weight:900} #dgh-os-v2 .view{display:none} #dgh-os-v2 .view.active{display:block;animation:fadein .24s ease} @keyframes fadein{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}} /* HERO */ #dgh-os-v2 .hero{position:relative;overflow:hidden;min-height:350px;border-radius:30px;padding:42px;background:linear-gradient(125deg,#081321 0%,#152841 100%);color:white;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:42px;align-items:center;box-shadow:var(--shadow)} #dgh-os-v2 .hero:after{content:"";position:absolute;width:420px;height:420px;border:78px solid rgba(197,161,93,.065);border-radius:50%;right:-150px;bottom:-210px;pointer-events:none} #dgh-os-v2 .eyebrow{display:inline-flex;align-items:center;gap:9px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.06);border-radius:999px;padding:8px 12px;font-size:11px;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:#e1c992} #dgh-os-v2 .eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)} #dgh-os-v2 .hero h1{font-size:clamp(42px,4.5vw,66px);line-height:.98;letter-spacing:-.052em;margin:19px 0 16px;max-width:770px} #dgh-os-v2 .hero h1 em{font-style:normal;color:#dec587} #dgh-os-v2 .hero p{font-size:16px;line-height:1.7;color:rgba(255,255,255,.69);max-width:710px;margin:0} #dgh-os-v2 .hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:27px} #dgh-os-v2 .btn-primary,#dgh-os-v2 .btn-secondary{min-height:52px;border-radius:14px;padding:0 20px;font-size:14px;font-weight:850;display:inline-flex;align-items:center;justify-content:center;gap:9px} #dgh-os-v2 .btn-primary{border:0;background:linear-gradient(145deg,#dbc17f,#b68a43);color:#101010;box-shadow:0 13px 28px rgba(197,161,93,.20)} #dgh-os-v2 .btn-secondary{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:white} #dgh-os-v2 .score-wrap{width:240px;height:240px;margin:auto;position:relative;display:grid;place-items:center;z-index:1} #dgh-os-v2 .score-ring{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gold) 0 var(--angle),rgba(255,255,255,.09) var(--angle) 360deg);box-shadow:0 24px 60px rgba(0,0,0,.25)} #dgh-os-v2 .score-ring:before{content:"";width:184px;height:184px;border-radius:50%;background:#101d2d;box-shadow:inset 0 0 0 1px rgba(255,255,255,.05)} #dgh-os-v2 .score-copy{position:absolute;text-align:center} #dgh-os-v2 .score-copy small{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.52);font-weight:800} #dgh-os-v2 .score-copy strong{display:block;font-size:56px;line-height:1;letter-spacing:-.055em;margin-top:7px} #dgh-os-v2 .score-copy span{display:block;font-size:12px;color:#dec587;font-weight:800;margin-top:8px} /* CARDS */ #dgh-os-v2 .stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:17px} #dgh-os-v2 .stat,#dgh-os-v2 .panel,#dgh-os-v2 .program-card,#dgh-os-v2 .resource{background:white;border:1px solid var(--line);box-shadow:var(--shadow2)} #dgh-os-v2 .stat{border-radius:20px;padding:21px;min-height:143px} #dgh-os-v2 .stat-head{display:flex;align-items:center;justify-content:space-between;gap:10px} #dgh-os-v2 .stat small{font-size:11px;color:var(--muted);font-weight:850;letter-spacing:.07em;text-transform:uppercase} #dgh-os-v2 .stat-icon{width:40px;height:40px;border-radius:13px;background:var(--green2);color:var(--green);display:grid;place-items:center;font-size:17px;font-weight:900} #dgh-os-v2 .stat strong{display:block;font-size:28px;line-height:1.1;letter-spacing:-.035em;margin-top:16px} #dgh-os-v2 .stat p{font-size:12px;color:var(--muted);margin:6px 0 0} #dgh-os-v2 .content-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:16px;margin-top:16px} #dgh-os-v2 .panel{border-radius:22px;padding:25px;min-width:0} #dgh-os-v2 .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px} #dgh-os-v2 .panel-head small{font-size:11px;color:var(--green);font-weight:900;letter-spacing:.08em;text-transform:uppercase} #dgh-os-v2 .panel-head h2{font-size:25px;line-height:1.1;letter-spacing:-.035em;margin:6px 0 0} #dgh-os-v2 .panel-head p{font-size:13px;line-height:1.55;color:var(--muted);margin:7px 0 0} #dgh-os-v2 .text-button{border:0;background:transparent;color:var(--green);font-size:13px;font-weight:850;padding:3px 0;white-space:nowrap} #dgh-os-v2 .mission{border:1px solid #d5e8dc;background:linear-gradient(135deg,#eaf5ee,#f6faf7);border-radius:19px;padding:20px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:15px;align-items:center} #dgh-os-v2 .day-badge{width:58px;height:58px;border-radius:17px;background:var(--navy);color:white;display:grid;place-items:center;text-align:center} #dgh-os-v2 .day-badge small{font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:rgba(255,255,255,.62)} #dgh-os-v2 .day-badge strong{font-size:22px;line-height:1;display:block} #dgh-os-v2 .mission-copy strong{font-size:16px;line-height:1.3;display:block} #dgh-os-v2 .mission-copy p{font-size:13px;line-height:1.5;color:var(--muted);margin:5px 0 0} #dgh-os-v2 .chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px} #dgh-os-v2 .chip{border:1px solid #dce8e0;background:white;border-radius:999px;padding:6px 9px;font-size:11px;color:var(--green);font-weight:800} #dgh-os-v2 .open-button{border:0;background:var(--green);color:white;border-radius:13px;min-height:44px;padding:0 15px;font-size:13px;font-weight:850;white-space:nowrap;box-shadow:0 9px 18px rgba(47,118,80,.16)} #dgh-os-v2 .journey-row{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 0;border-top:1px solid var(--line)} #dgh-os-v2 .journey-row:first-child{border-top:0;padding-top:0} #dgh-os-v2 .journey-row:last-child{padding-bottom:0} #dgh-os-v2 .day-dot{width:42px;height:42px;border-radius:13px;background:#f0f3f5;color:var(--muted);display:grid;place-items:center;font-size:13px;font-weight:900} #dgh-os-v2 .day-dot.current{background:var(--navy);color:white} #dgh-os-v2 .day-dot.done{background:var(--green2);color:var(--green)} #dgh-os-v2 .journey-row strong{font-size:14px;line-height:1.25;display:block} #dgh-os-v2 .journey-row span{font-size:11px;color:var(--muted);display:block;margin-top:4px} #dgh-os-v2 .status{border-radius:999px;padding:6px 9px;background:#f0f3f5;color:var(--muted);font-size:10px;font-weight:850} #dgh-os-v2 .status.ready{background:var(--gold2);color:#86652e} #dgh-os-v2 .status.done{background:var(--green2);color:var(--green)} /* SECONDARY VIEWS */ #dgh-os-v2 .page-head{padding:12px 2px 24px} #dgh-os-v2 .page-head small{font-size:11px;color:var(--green);font-weight:900;letter-spacing:.1em;text-transform:uppercase} #dgh-os-v2 .page-head h1{font-size:clamp(38px,4.2vw,58px);line-height:1;letter-spacing:-.05em;margin:9px 0 10px} #dgh-os-v2 .page-head p{font-size:15px;line-height:1.65;color:var(--muted);max-width:760px;margin:0} #dgh-os-v2 .program-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px} #dgh-os-v2 .program-card{border-radius:20px;padding:18px;display:grid;grid-template-columns:50px minmax(0,1fr) auto;gap:14px;align-items:center;min-height:112px} #dgh-os-v2 .program-card.locked{opacity:.62} #dgh-os-v2 .program-card h3{font-size:15px;line-height:1.25;margin:0} #dgh-os-v2 .program-card p{font-size:12px;line-height:1.5;color:var(--muted);margin:5px 0 0} #dgh-os-v2 .card-action{border:0;background:var(--navy);color:white;border-radius:12px;min-height:40px;padding:0 13px;font-size:12px;font-weight:850} #dgh-os-v2 .card-action:disabled{background:#eef1f4;color:#7d8795} #dgh-os-v2 .progress-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:16px} #dgh-os-v2 .progress-card{border-radius:25px;padding:30px;background:linear-gradient(140deg,#091422,#1a2d46);color:white;box-shadow:var(--shadow)} #dgh-os-v2 .progress-card small{font-size:11px;color:#dec587;letter-spacing:.1em;text-transform:uppercase;font-weight:850} #dgh-os-v2 .progress-card strong{font-size:64px;line-height:1;letter-spacing:-.06em;display:block;margin-top:14px} #dgh-os-v2 .progress-card span{font-size:13px;color:rgba(255,255,255,.6);display:block;margin-top:8px} #dgh-os-v2 .large-bar{height:12px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:25px} #dgh-os-v2 .large-bar i{height:100%;width:0;display:block;background:linear-gradient(90deg,var(--gold),#ead6a3);border-radius:inherit} #dgh-os-v2 .focus-list{display:grid;gap:16px} #dgh-os-v2 .focus-label{display:flex;justify-content:space-between;gap:10px;font-size:13px;font-weight:800} #dgh-os-v2 .focus-bar{height:9px;border-radius:999px;background:#edf1f3;overflow:hidden;margin-top:8px} #dgh-os-v2 .focus-bar i{height:100%;display:block;background:var(--green);border-radius:inherit} #dgh-os-v2 .library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px} #dgh-os-v2 .resource{border-radius:20px;padding:20px;min-height:235px;display:flex;flex-direction:column} #dgh-os-v2 .resource-icon{width:48px;height:48px;border-radius:15px;background:var(--gold2);display:grid;place-items:center;font-size:21px} #dgh-os-v2 .resource h3{font-size:16px;margin:18px 0 7px} #dgh-os-v2 .resource p{font-size:13px;line-height:1.55;color:var(--muted);margin:0} #dgh-os-v2 .resource button{border:0;background:transparent;color:var(--green);font-size:12px;font-weight:850;text-align:left;padding:16px 0 0;margin-top:auto} #dgh-os-v2 .profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px} #dgh-os-v2 .field{display:grid;gap:8px;margin-bottom:15px} #dgh-os-v2 .field label{font-size:11px;color:var(--muted);font-weight:850;text-transform:uppercase;letter-spacing:.06em} #dgh-os-v2 .field input{height:50px;width:100%;border:1px solid var(--line);background:white;color:var(--text);border-radius:13px;padding:0 14px;outline:none;font-size:15px} #dgh-os-v2 .field input:focus{border-color:#94b5a2;box-shadow:0 0 0 4px rgba(47,118,80,.08)} #dgh-os-v2 .save-button{border:0;background:var(--navy);color:white;border-radius:13px;min-height:46px;padding:0 17px;font-size:13px;font-weight:850} /* MOBILE NAV / TOAST */ #dgh-os-v2 .mobile-nav{display:none} #dgh-os-v2 .toast{position:fixed;right:22px;bottom:22px;z-index:90;background:var(--navy);color:white;border-radius:14px;padding:14px 17px;font-size:13px;font-weight:750;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.22s ease} #dgh-os-v2 .toast.show{opacity:1;transform:none} @media(max-width:1180px){ #dgh-os-v2 .app{grid-template-columns:228px minmax(0,1fr)} #dgh-os-v2 .sidebar{padding-left:15px;padding-right:15px} #dgh-os-v2 .main{padding:24px 22px 60px} #dgh-os-v2 .hero{padding:34px;grid-template-columns:minmax(0,1fr) 245px;gap:25px} #dgh-os-v2 .score-wrap{width:210px;height:210px} #dgh-os-v2 .score-ring:before{width:160px;height:160px} #dgh-os-v2 .score-copy strong{font-size:48px} #dgh-os-v2 .stats{grid-template-columns:repeat(2,minmax(0,1fr))} #dgh-os-v2 .content-grid,#dgh-os-v2 .progress-layout{grid-template-columns:1fr} #dgh-os-v2 .library-grid{grid-template-columns:repeat(2,minmax(0,1fr))} } @media(max-width:820px){ #dgh-os-v2{padding-bottom:86px} #dgh-os-v2 .app{display:block;min-height:auto} #dgh-os-v2 .sidebar{display:none} #dgh-os-v2 .main{padding:16px 14px 26px} #dgh-os-v2 .topbar{height:46px;margin-bottom:14px} #dgh-os-v2 .welcome small{font-size:10px} #dgh-os-v2 .welcome strong{font-size:14px} #dgh-os-v2 .icon-button,#dgh-os-v2 .avatar{width:40px;height:40px;border-radius:12px} #dgh-os-v2 .hero{min-height:auto;border-radius:23px;padding:25px 20px;grid-template-columns:1fr;gap:28px;text-align:left} #dgh-os-v2 .hero h1{font-size:clamp(38px,10.5vw,52px);max-width:100%} #dgh-os-v2 .hero p{font-size:15px;line-height:1.65} #dgh-os-v2 .hero-actions{display:grid;grid-template-columns:1fr;margin-top:23px} #dgh-os-v2 .btn-primary,#dgh-os-v2 .btn-secondary{width:100%;min-height:50px} #dgh-os-v2 .score-wrap{width:204px;height:204px} #dgh-os-v2 .score-ring:before{width:156px;height:156px} #dgh-os-v2 .score-copy strong{font-size:46px} #dgh-os-v2 .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:11px} #dgh-os-v2 .stat{padding:16px;min-height:136px;border-radius:18px} #dgh-os-v2 .stat strong{font-size:23px;margin-top:14px;overflow-wrap:anywhere} #dgh-os-v2 .stat p{font-size:11px} #dgh-os-v2 .stat-icon{width:36px;height:36px;border-radius:12px} #dgh-os-v2 .content-grid{gap:11px;margin-top:11px} #dgh-os-v2 .panel{padding:18px;border-radius:19px} #dgh-os-v2 .panel-head{margin-bottom:17px} #dgh-os-v2 .panel-head h2{font-size:22px} #dgh-os-v2 .panel-head p{font-size:12px} #dgh-os-v2 .mission{grid-template-columns:52px minmax(0,1fr);padding:15px;gap:13px} #dgh-os-v2 .day-badge{width:52px;height:52px} #dgh-os-v2 .open-button{grid-column:1/-1;width:100%;min-height:46px} #dgh-os-v2 .page-head{padding:5px 2px 20px} #dgh-os-v2 .page-head h1{font-size:38px} #dgh-os-v2 .page-head p{font-size:14px} #dgh-os-v2 .program-grid,#dgh-os-v2 .library-grid,#dgh-os-v2 .profile-grid{grid-template-columns:1fr} #dgh-os-v2 .program-card{grid-template-columns:48px minmax(0,1fr);min-height:auto;padding:15px} #dgh-os-v2 .program-card .card-action{grid-column:1/-1;width:100%;min-height:44px} #dgh-os-v2 .progress-card{padding:24px} #dgh-os-v2 .progress-card strong{font-size:54px} #dgh-os-v2 .resource{min-height:210px} #dgh-os-v2 .mobile-nav{position:fixed;left:8px;right:8px;bottom:8px;z-index:80;display:grid;grid-template-columns:repeat(5,1fr);background:rgba(9,20,34,.97);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:7px;box-shadow:0 18px 44px rgba(9,20,34,.28);backdrop-filter:blur(18px)} #dgh-os-v2 .mobile-nav button{border:0;background:transparent;color:rgba(255,255,255,.51);border-radius:13px;padding:8px 2px;display:grid;place-items:center;gap:5px;min-width:0} #dgh-os-v2 .mobile-nav button svg{width:19px;height:19px} #dgh-os-v2 .mobile-nav button span{font-size:9px;font-weight:800;white-space:nowrap} #dgh-os-v2 .mobile-nav button.active{background:rgba(255,255,255,.09);color:white} #dgh-os-v2 .toast{left:13px;right:13px;bottom:92px;text-align:center} } @media(max-width:420px){ #dgh-os-v2 .main{padding-left:10px;padding-right:10px} #dgh-os-v2 .hero{padding-left:17px;padding-right:17px} #dgh-os-v2 .hero h1{font-size:38px} #dgh-os-v2 .stats{grid-template-columns:1fr 1fr} #dgh-os-v2 .stat{padding:14px;min-height:132px} #dgh-os-v2 .stat small{font-size:10px} #dgh-os-v2 .stat strong{font-size:21px} #dgh-os-v2 .mobile-nav button span{font-size:8px} }
Good eveningMary & Bella
MB
Personalised Wellness Plan

Welcome back, Mary.

Guide Bella through a clear 14-day gut wellness reset with one practical action each day.

Gut Health Score72Digestive Balance
Current Day
Day 1

Your next recommended step

Completed
0/14

Daily missions finished

Current Streak
0 days

Consistency builds confidence

Primary Focus
Digestive Balance

From the wellness assessment

Today’s Mission

Build the baseline

Observe what is happening before changing the routine.

Day1
Build the Baseline

Understand the current routine before changing anything.

8 minutes1 lesson1 reflection
The 14-Day Reset

A calmer plan for Bella.

Each day introduces one clear idea, one practical action and one reflection. The lesson engine will plug directly into this framework.

Progress Intelligence

See the momentum building.

Your baseline assessment and program completion are brought together in one simple view.

Program Completion0%0 of 14 daily missions completed
Assessment Pillars

Wellness snapshot

Bonus Library

Support tools, ready when needed.

Premium resources designed to support the daily experience on screen and in print.

Personalisation

Make the experience yours.

Update the details shown throughout the Wellness Hub.

Owner Profile

Your details

Assessment Connection

Personalised baseline

The Hub automatically reads the existing Dog Gut Health assessment stored in this browser.

#
Gut Health ScoreCurrent assessment baseline
72
Primary FocusRecommended attention area
Digestive Balance
Saved
(()=>{ const ROOT=document.getElementById('dgh-os-v2'); if(!ROOT)return; const ASSESSMENT_KEY='dghWellnessExperienceV1', OS_KEY='dghOperatingSystemV2'; const days=[ ['Build the Baseline','Understand the current routine before changing anything.'],['Read the Signals','Learn what stool, appetite and energy patterns may reveal.'],['Hydration First','Create a simple hydration routine that is easy to maintain.'],['Audit the Bowl','Review the current food routine with fresh eyes.'],['Treat Check','Identify hidden extras that can complicate consistency.'],['Slow the Change','Understand why gradual adjustments matter.'],['The First Review','Pause, compare and capture the first seven days.'],['Routine Over Perfection','Create a repeatable feeding rhythm.'],['Support the Environment','Reduce avoidable stress around meals and rest.'],['Track What Matters','Focus on meaningful trends rather than isolated moments.'],['Build Better Consistency','Strengthen the habits already working.'],['Spot Your Triggers','Identify possible routine patterns worth discussing.'],['Create the Maintenance Plan','Design the next 30 days around what you learned.'],['Complete the Reset','Review progress and prepare the wellness summary.']]; const resources=[['💩','Stool Score Guide','A visual reference for recording daily stool quality.'],['🛒','Smart Shopping List','A practical checklist for routine-friendly essentials.'],['🍽','Food Audit Worksheet','Map the current food, treat and supplement routine.'],['📈','Progress Tracker','Capture changes across digestion, energy and consistency.'],['🦴','Treat Review Guide','Audit frequency, ingredients and portions.'],['📝','Daily Journal','Printable prompts to accompany the experience.']]; const defaults={owner:'Mary',dog:'Bella',score:72,focus:'Digestive Balance',completed:0,streak:0,currentDay:1,pillars:{Digestion:72,Hydration:66,Routine:74,Energy:69}}; let state={...defaults}; const parse=x=>{try{return JSON.parse(x)}catch(e){return null}}; const readAssessment=()=>{const d=parse(localStorage.getItem(ASSESSMENT_KEY));if(!d)return{};const a=d.answers||{},r=d.results||{};return{owner:a.name||a.ownerName||a.yourName,dog:a.dogName||a.petName||a.dog,score:Number(r.overall||r.score||d.score)||undefined,focus:r.focus||r.strongest||undefined,pillars:r.pillars||undefined}}; function load(){state={...defaults,...readAssessment(),...(parse(localStorage.getItem(OS_KEY))||{})};state.completed=Math.max(0,Math.min(14,Number(state.completed)||0));state.currentDay=Math.max(1,Math.min(14,Number(state.currentDay)||state.completed+1));state.score=Math.max(0,Math.min(100,Number(state.score)||72));state.streak=Math.max(0,Number(state.streak)||0);if(!state.pillars||typeof state.pillars!=='object')state.pillars=defaults.pillars} function save(){localStorage.setItem(OS_KEY,JSON.stringify(state))} function text(sel,val){ROOT.querySelectorAll(sel).forEach(el=>el.textContent=val)} function toast(msg){const el=ROOT.querySelector('#toast');el.textContent=msg;el.classList.add('show');clearTimeout(window.__dghToast);window.__dghToast=setTimeout(()=>el.classList.remove('show'),2400)} function navigate(view){ROOT.querySelectorAll('.view').forEach(el=>el.classList.toggle('active',el.dataset.panel===view));ROOT.querySelectorAll('[data-view]').forEach(el=>el.classList.toggle('active',el.dataset.view===view));window.scrollTo({top:0,behavior:'smooth'})} function renderNext(){const wrap=ROOT.querySelector('#next-days');wrap.innerHTML='';for(let i=0;i<3;i++){const idx=Math.min(13,state.currentDay-1+i),done=idx<state.completed,current=idx===state.currentDay-1,row=document.createElement('div');row.className='journey-row';row.innerHTML=`
${done?'✓':idx+1}
${days[idx][0]}Day ${idx+1} · ${current?'Ready now':'Upcoming'}
${done?'Done':current?'Ready':'Locked'}`;wrap.appendChild(row)}} function renderProgram(){const grid=ROOT.querySelector('#program-grid');grid.innerHTML='';days.forEach((day,idx)=>{const no=idx+1,done=idx<state.completed,ready=no<=state.currentDay,card=document.createElement('article');card.className='program-card '+(!ready?'locked':'');card.innerHTML=`
${done?'✓':no}

${day[0]}

${day[1]}

`;card.querySelector('button').addEventListener('click',()=>ready&&toast('The Day '+no+' lesson engine is the next build stage.'));grid.appendChild(card)})} function renderPillars(){const wrap=ROOT.querySelector('#focus-bars');wrap.innerHTML='';Object.entries(state.pillars).slice(0,5).forEach(([name,val])=>{const n=Math.max(0,Math.min(100,Number(val)||0)),el=document.createElement('div');el.innerHTML=`
${name}${n}
`;wrap.appendChild(el)})} function renderLibrary(){const grid=ROOT.querySelector('#library-grid');grid.innerHTML='';resources.forEach(item=>{const card=document.createElement('article');card.className='resource';card.innerHTML=`
${item[0]}

${item[1]}

${item[2]}

`;card.querySelector('button').addEventListener('click',()=>toast('This resource will be activated with the full library.'));grid.appendChild(card)})} function render(){const pct=Math.round(state.completed/14*100);text('[data-owner]',state.owner);text('[data-dog]',state.dog);text('[data-score]',state.score);text('[data-focus]',state.focus);text('[data-completed]',state.completed);text('[data-streak]',state.streak);text('[data-current-day]',state.currentDay);text('[data-percent]',pct);text('[data-initials]',(state.owner[0]||'M')+(state.dog[0]||'B'));ROOT.querySelectorAll('[data-progress]').forEach(el=>el.style.width=pct+'%');ROOT.querySelector('#score-ring').style.setProperty('--angle',(state.score*3.6)+'deg');const today=days[state.currentDay-1]||days[13];text('[data-today-title]',today[0]);text('[data-today-desc]',today[1]);ROOT.querySelector('#owner-input').value=state.owner;ROOT.querySelector('#dog-input').value=state.dog;renderNext();renderProgram();renderPillars();renderLibrary()} ROOT.querySelectorAll('[data-view]').forEach(btn=>btn.addEventListener('click',()=>navigate(btn.dataset.view))); ROOT.querySelectorAll('[data-go]').forEach(btn=>btn.addEventListener('click',()=>navigate(btn.dataset.go))); ROOT.querySelector('#save-profile').addEventListener('click',()=>{state.owner=ROOT.querySelector('#owner-input').value.trim()||'Mary';state.dog=ROOT.querySelector('#dog-input').value.trim()||'Bella';save();render();toast('Profile saved successfully.')}); ROOT.querySelector('#notify').addEventListener('click',()=>toast('You are all caught up.')); const hour=new Date().getHours();ROOT.querySelector('#greeting').textContent=hour<12?'Good morning':hour<18?'Good afternoon':'Good evening'; load();render(); })();