:root{
--bg:#0b0d0f;
--panel:#111820;
--panel2:#18232b;
--border:#31414a;
--text:#f7f8f6;
--muted:#b9c2bd;
--green:#63d471;
--sage:#93a98f;
--sage-dark:#4f6650;
--sage-soft:#c8d2c5;
--navy:#0f2238;
--navy2:#16304d;
--blue:#8bb8d9;
--red:#ff8d8d;
--gold:#e7cf8c;
--shadow:0 14px 34px rgba(0,0,0,.28)
}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top right,rgba(147,169,143,.12),transparent 32rem),linear-gradient(180deg,#0b0d0f,#0f1822);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}.wrap{width:min(100% - 28px,1050px);margin:auto;padding:24px 0 50px}.hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:34px;border:1px solid var(--border);border-radius:24px;background:linear-gradient(145deg,rgba(15,34,56,.98),rgba(12,16,20,.98));box-shadow:var(--shadow);margin-bottom:14px}.eyebrow,.kicker{margin:0 0 6px;color:var(--green);font-size:.76rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}h1{margin:0;font-size:clamp(2rem,5vw,3rem);line-height:1;letter-spacing:-.035em}h2{margin:0;font-size:1.35rem}.sub,.note,.hint{color:var(--muted)}.sub{max-width:680px;margin:14px 0 0}.hero-actions{display:flex;gap:8px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 14px;font:inherit;font-weight:800;cursor:pointer;text-decoration:none}.secondary{background:var(--green);color:#06140b}.danger{background:#3b2328;color:#ffd6d6}.profile-add{background:var(--sage-dark);color:#f5fbf4}.profile-edit{background:var(--navy2);color:#f4f7fa}.profile-zone{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:290px}.profile-switcher{display:flex;align-items:center;gap:9px}.profile-switcher label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.profile-switcher select{min-width:180px;border:1px solid #36506f;border-radius:10px;background:#101820;color:var(--text);padding:10px 12px;font:inherit;font-size:16px;font-weight:800}.person-banner{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 14px;padding:12px 16px;border:1px solid #294461;border-radius:14px;background:rgba(15,34,56,.88)}.person-banner>div{display:flex;align-items:baseline;gap:9px}.person-label{color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}#currentProfileName{color:var(--green);font-size:1.05rem}.person-note{color:#8fa0b6;font-size:.8rem;text-align:right}.card{padding:21px;border:1px solid var(--border);border-radius:18px;background:rgba(17,24,32,.96);margin-bottom:14px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.form-grid,.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}label{display:flex;flex-direction:column;gap:6px;color:#dce6f5;font-size:.84rem;font-weight:700}input,textarea{width:100%;border:1px solid #36506f;border-radius:10px;background:#101820;color:var(--text);padding:11px 12px;font:inherit;font-size:16px;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,210,115,.12)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.stat{padding:16px;border:1px solid var(--border);border-radius:15px;background:var(--panel)}.stat span,.stat small{display:block;color:var(--muted)}.stat span{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.stat strong{display:block;margin:5px 0;font-size:1.55rem}.stat small{font-size:.78rem}.progress{height:12px;background:#0a0f13;border-radius:999px;overflow:hidden;border:1px solid #253951}.progress div{width:0;height:100%;background:linear-gradient(90deg,var(--green),var(--sage));transition:width .25s ease}.phase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.phase-grid div,.target-grid div{padding:12px;border-radius:11px;background:var(--panel2);border:1px solid #2a405d}.phase-grid b,.phase-grid span,.target-grid strong,.target-grid span{display:block}.phase-grid span,.target-grid span{color:var(--muted);font-size:.82rem;margin-top:3px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px 8px;border-bottom:1px solid var(--border);text-align:left}th{color:#dbeafe;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em}.weigh-table input{min-width:100px;padding:8px}.weeks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.week{border:1px solid #2b405c;border-radius:13px;background:var(--panel2);padding:14px}.week-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px}.week-head span{font-size:.76rem;color:var(--muted)}.checks{display:grid;gap:7px}.checkrow{display:flex;align-items:flex-start;gap:9px;color:#dbe6f4;font-size:.9rem;cursor:pointer}.checkrow input{width:18px;height:18px;min-width:18px;margin-top:2px;accent-color:var(--green)}.week.done{border-color:rgba(82,210,115,.65);background:rgba(23,60,39,.42)}.schedule{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:12px}.schedule div{padding:11px 8px;border-radius:10px;background:var(--panel2);border:1px solid #2a405d}.schedule b,.schedule span{display:block}.schedule b{color:var(--green)}.schedule span{font-size:.76rem;color:var(--muted);margin-top:4px}.target-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}.wide{grid-column:1/-1}.diet-guardrail{display:flex;justify-content:space-between;gap:14px;align-items:center;margin:12px 0 14px;padding:13px 14px;border-radius:11px;border:1px solid rgba(255,209,102,.35);background:rgba(255,209,102,.08)}.diet-guardrail strong{color:#ffe29a}.diet-guardrail span{color:#d7dfeb;font-size:.86rem;text-align:right}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-card{width:min(100%,460px);padding:28px;border:1px solid var(--border);border-radius:22px;background:var(--panel);box-shadow:var(--shadow)}.auth-card form{display:grid;gap:13px;margin-top:18px}.auth-card h1{font-size:3rem}.auth-card p{color:var(--muted)}.auth-error{padding:10px 12px;border-radius:9px;background:#3b2328;color:#ffd6d6;margin-top:12px}code{color:var(--sage-soft)}
@media(max-width:760px){.wrap{width:min(100% - 20px,1050px);padding-top:10px}.hero{padding:24px 18px;display:block}.profile-zone{align-items:stretch;min-width:0;margin-top:18px}.profile-switcher{justify-content:space-between}.profile-switcher select{flex:1;min-width:0}.stats{grid-template-columns:repeat(2,1fr)}.form-grid,.review-grid{grid-template-columns:1fr 1fr}.weeks{grid-template-columns:1fr}.schedule{grid-template-columns:1fr 1fr}.target-grid{grid-template-columns:1fr 1fr}.person-banner{display:block}.person-banner>div{display:block}.person-note{display:block;margin-top:4px;text-align:left}}
@media(max-width:460px){.stats,.form-grid,.review-grid,.target-grid{grid-template-columns:1fr}.wide{grid-column:auto}.schedule{grid-template-columns:1fr}.profile-switcher{display:block}.profile-switcher select{width:100%}.hero-actions .btn{width:100%}.diet-guardrail{display:block}.diet-guardrail span{display:block;margin-top:5px;text-align:left}}
@media print{body{background:#fff;color:#111}.wrap{width:100%;padding:0}.hero,.card,.stat,.week{background:#fff;color:#111;border:1px solid #bbb;box-shadow:none;break-inside:avoid}.hero-actions,.profile-switcher{display:none}.sub,.note,.hint,.stat span,.stat small,.phase-grid span,.target-grid span,.schedule span{color:#444}.kicker,.eyebrow,.schedule b{color:#166534}input,textarea{background:#fff;color:#111;border:1px solid #bbb}}


.accordion{display:grid;gap:9px;margin-top:14px}.accordion details{border:1px solid #2b405c;border-radius:12px;background:var(--panel2);overflow:hidden}.accordion summary{padding:14px 16px;cursor:pointer;font-weight:850;list-style:none;display:flex;align-items:center;justify-content:space-between}.accordion summary::-webkit-details-marker{display:none}.accordion summary::after{content:"+";color:var(--green);font-size:1.25rem}.accordion details[open] summary::after{content:"–"}.accordion details[open] summary{border-bottom:1px solid #2b405c}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px}.library-item{padding:12px;border-radius:10px;background:#0c1828;border:1px solid #253a54}.library-item strong,.library-item span,.library-item small{display:block}.library-item span{color:var(--muted);font-size:.84rem;margin:4px 0 7px}.library-item small{color:var(--sage-soft);font-weight:750}.library-item.exercise-open{width:100%;text-align:left;color:var(--text);font:inherit;cursor:pointer;appearance:none}.library-item.exercise-open::after{content:"View guide →";display:block;margin-top:8px;color:var(--blue);font-size:.76rem;font-weight:850}.food-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px;margin-top:12px}.food-tab{flex:0 0 auto;border:1px solid #35506e;border-radius:999px;background:#101820;color:#dce6f5;padding:9px 13px;font:inherit;font-size:.88rem;font-weight:800;cursor:pointer}.food-tab.active{background:var(--green);border-color:var(--green);color:#06140b}.food-panel{display:none}.food-panel.active{display:block}.food-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.food-grid>div{padding:12px;border:1px solid #2b405c;border-radius:10px;background:var(--panel2)}.food-grid strong,.food-grid span{display:block}.food-grid span{color:var(--muted);font-size:.82rem;margin-top:4px}.meal-builder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.meal-builder article{display:flex;gap:11px;padding:13px;border:1px solid #2b405c;border-radius:11px;background:var(--panel2)}.meal-builder p{margin:4px 0 0;color:var(--muted);font-size:.84rem}.meal-number{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:rgba(82,210,115,.13);color:var(--green);font-weight:900}.plate-reminder{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:12px;padding:13px 14px;border-radius:11px;border:1px solid rgba(82,210,115,.3);background:rgba(82,210,115,.08)}.plate-reminder span{color:#c3d0e1;font-size:.86rem;text-align:right}
.exercise-modal[hidden]{display:none}.exercise-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px}.exercise-backdrop{position:absolute;inset:0;background:rgba(2,8,16,.78);backdrop-filter:blur(4px)}.exercise-dialog{position:relative;z-index:1;width:min(100%,760px);max-height:calc(100vh - 36px);overflow:auto;border:1px solid #35516f;border-radius:20px;background:#0d1929;box-shadow:0 24px 70px rgba(0,0,0,.5)}.exercise-close{position:absolute;top:10px;right:10px;z-index:2;width:44px;height:44px;border:1px solid #405d7c;border-radius:50%;background:var(--navy);color:#fff;font-size:1.7rem;line-height:1;cursor:pointer}.exercise-visual{display:grid;place-items:center;min-height:245px;padding:26px 54px 12px;background:linear-gradient(180deg,var(--navy2),#111820);color:var(--sage-soft)}.exercise-visual svg{width:100%;max-width:520px;height:auto}.exercise-copy{padding:20px 22px 24px}.exercise-description{color:#c7d2e0;margin:8px 0 16px}.exercise-meta{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:18px}.exercise-meta>div{padding:11px 12px;border:1px solid #2b405c;border-radius:10px;background:var(--panel2)}.exercise-meta span,.exercise-meta strong{display:block}.exercise-meta span{color:#91a3bb;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.exercise-meta strong{margin-top:3px;color:#dff6e5}.exercise-cues{margin:0;padding-left:21px}.exercise-cues li{margin:5px 0}.exercise-safety{margin:16px 0 0;padding:11px 12px;border-left:4px solid var(--gold);background:rgba(255,209,102,.06);color:#ffe8ab;font-size:.84rem}body.modal-open{overflow:hidden}
@media(max-width:620px){.library-grid,.food-grid,.meal-builder{grid-template-columns:1fr}.plate-reminder{display:block}.plate-reminder span{display:block;margin-top:5px;text-align:left}.exercise-modal{padding:10px}.exercise-dialog{max-height:calc(100vh - 20px);border-radius:16px}.exercise-visual{min-height:205px;padding:42px 16px 8px}.exercise-copy{padding:16px}.exercise-meta{grid-template-columns:1fr}}
@media print{.food-tabs{display:none}.food-panel{display:block!important}.exercise-modal{display:none!important}.library-item.exercise-open::after{display:none}}


.food-detail-card{width:100%;padding:12px;border:1px solid #2b405c;border-radius:10px;background:var(--panel2);color:var(--text);text-align:left;font:inherit;cursor:pointer}.food-detail-card strong,.food-detail-card span,.food-detail-card small{display:block}.food-detail-card span{color:var(--muted);font-size:.82rem;margin-top:4px}.food-detail-card small{color:var(--blue);font-weight:850;margin-top:8px}.food-detail-card:hover,.meal-detail-card:hover{border-color:var(--sage)}.meal-detail-card{cursor:pointer}.meal-detail-card:focus{outline:2px solid var(--green);outline-offset:2px}.food-modal[hidden]{display:none}.food-modal{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;padding:18px}.food-backdrop{position:absolute;inset:0;background:rgba(2,8,16,.8);backdrop-filter:blur(4px)}.food-dialog{position:relative;z-index:1;width:min(100%,700px);max-height:calc(100vh - 36px);overflow:auto;border:1px solid #35516f;border-radius:20px;background:#0d1929;box-shadow:0 24px 70px rgba(0,0,0,.5)}.food-close{position:absolute;top:10px;right:10px;width:44px;height:44px;border:1px solid #405d7c;border-radius:50%;background:var(--navy);color:#fff;font-size:1.7rem;cursor:pointer}.food-copy{padding:26px}.food-intro{color:#c7d2e0;padding-right:38px}.portion-box{display:flex;justify-content:space-between;gap:15px;padding:12px 14px;margin:14px 0;border:1px solid rgba(82,210,115,.3);border-radius:10px;background:rgba(82,210,115,.08)}.portion-box span{color:var(--muted)}.recipe-box{margin-top:18px;padding:16px;border:1px solid #2b405c;border-radius:12px;background:var(--panel2)}.recipe-box h3{margin:2px 0 10px}.recipe-box p{margin:4px 0;color:#c7d2e0}.recipe-box ol{padding-left:20px;margin-bottom:0}.recipe-box li{margin:7px 0}.ingredient-check{margin-top:14px;padding:11px 12px;border-left:4px solid var(--gold);background:rgba(255,209,102,.06);color:#ffe8ab;font-size:.82rem}
@media(max-width:620px){.food-modal{padding:10px}.food-dialog{max-height:calc(100vh - 20px);border-radius:16px}.food-copy{padding:20px 16px}.portion-box{display:block}.portion-box strong{display:block;margin-top:4px}}
@media print{.food-modal{display:none!important}.food-detail-card small{display:none}}


/* Sage / Navy theme refinements */
h1,h2,h3{color:var(--text)}
.eyebrow,.kicker,.schedule b,#currentProfileName{color:var(--sage-soft)}
.secondary{background:var(--green);color:#071109}
.profile-add{background:var(--sage-dark);color:white}
.profile-edit{background:var(--navy2);color:white}
.card,.stat,.week,.accordion details,.food-grid>div,.meal-builder article,.library-item,.target-grid div,.phase-grid div{border-color:var(--border)}
.week.done{border-color:rgba(99,212,113,.65);background:rgba(79,102,80,.28)}
.food-tab.active{background:var(--sage);border-color:var(--sage);color:#101410}
.food-detail-card small,.library-item.exercise-open::after{color:var(--green)}
.diet-guardrail{border-color:rgba(147,169,143,.4);background:rgba(147,169,143,.09)}
.diet-guardrail strong{color:var(--sage-soft)}
.plate-reminder{border-color:rgba(99,212,113,.32);background:rgba(99,212,113,.07)}
.person-banner{border-color:#344c5c}
input:focus,textarea:focus,select:focus,.library-item.exercise-open:focus{
  border-color:var(--green);
  box-shadow:0 0 0 3px rgba(99,212,113,.12)
}
@media(hover:hover) and (pointer:fine){
  .library-item.exercise-open:hover,.food-detail-card:hover,.meal-detail-card:hover{
    border-color:var(--sage);
    background:#1a2630
  }
}

.hero-tagline{margin:9px 0 0;color:var(--sage-soft);font-size:clamp(1rem,2vw,1.18rem);font-weight:750;letter-spacing:.01em}
.hero .sub{margin-top:8px}
@media(max-width:760px){h1{font-size:2.15rem}.hero-tagline{font-size:1rem}}


.activity-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}
.activity-summary>div{padding:12px;border:1px solid var(--border);border-radius:11px;background:var(--panel2)}
.activity-summary span,.activity-summary strong{display:block}
.activity-summary span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}
.activity-summary strong{margin-top:4px;color:var(--sage-soft)}
.activity-list{display:grid;gap:8px}
.activity-entry{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:12px;background:#101820}
.activity-entry-main{display:flex;gap:11px;align-items:center;min-width:0}
.activity-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:11px;background:var(--navy2);font-size:1.25rem}
.activity-entry strong,.activity-entry span,.activity-entry small{display:block}
.activity-entry span{color:var(--muted);font-size:.82rem;margin-top:2px}
.activity-entry small{color:#c5d0d8;font-size:.78rem;margin-top:4px}
.activity-edit{padding:8px 11px;flex:0 0 auto}
.activity-modal[hidden]{display:none}
.activity-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:18px}
.activity-backdrop{position:absolute;inset:0;background:rgba(2,8,16,.82);backdrop-filter:blur(4px)}
.activity-dialog{position:relative;z-index:1;width:min(100%,760px);max-height:calc(100vh - 36px);overflow:auto;border:1px solid #35516f;border-radius:20px;background:#0d151c;box-shadow:0 24px 70px rgba(0,0,0,.55)}
.activity-close{position:absolute;top:10px;right:10px;z-index:2;width:44px;height:44px;border:1px solid #405d7c;border-radius:50%;background:var(--navy);color:#fff;font-size:1.7rem;cursor:pointer}
.activity-copy{padding:24px}
.activity-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;margin-top:16px}
.activity-form-grid select{width:100%;border:1px solid #36506f;border-radius:10px;background:#101820;color:var(--text);padding:11px 12px;font:inherit;font-size:16px}
.activity-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
@media(max-width:700px){.activity-summary{grid-template-columns:repeat(2,1fr)}.activity-entry{align-items:flex-start}.activity-form-grid{grid-template-columns:1fr}.activity-form-grid .wide{grid-column:auto}}
@media(max-width:460px){.activity-summary{grid-template-columns:1fr 1fr}.activity-entry{display:block}.activity-edit{margin-top:10px;width:100%}.activity-modal{padding:10px}.activity-dialog{max-height:calc(100vh - 20px);border-radius:16px}.activity-copy{padding:20px 15px}}
@media print{.activity-modal,.activity-edit,#addActivityBtn{display:none!important}}
