
:root {
  --navy:#0f2747; --blue:#2563eb; --blue2:#3b82f6; --sky:#38bdf8;
  --aqua:#22d3ee; --indigo:#4f46e5; --purple:#8b5cf6; --orange:#f97316;
  --gold:#fbbf24; --teal:#14b8a6; --ink:#182235; --muted:#6b7280;
  --paper:#fff; --bg:#f4f7fb; --border:#e6ebf3;
  --shadow:0 20px 50px rgba(15,39,71,.10); --soft:0 10px 25px rgba(15,39,71,.07);
}
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:radial-gradient(circle at top left,rgba(56,189,248,.12),transparent 24%),linear-gradient(180deg,#f8fbff,var(--bg));color:var(--ink)}
button,input,select,textarea{font:inherit} button{border:0;cursor:pointer;transition:.18s}
button:hover{transform:translateY(-1px)}
.app-shell{min-height:100vh;padding-bottom:96px}
.topbar{width:min(1180px,92%);margin:auto;padding:1.3rem 0 1rem;display:flex;justify-content:space-between;align-items:center}
.brand-kicker{margin:0;color:var(--blue);text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:900}
.topbar h1{margin:.2rem 0 0;font-size:clamp(1.4rem,4vw,2.2rem)}
.icon-button{width:46px;height:46px;border-radius:16px;background:white;box-shadow:var(--soft);font-size:1.2rem}
main{width:min(1180px,92%);margin:auto}
.view{display:none;animation:fade .25s ease}.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hero-card{min-height:270px;border-radius:34px;overflow:hidden;position:relative;color:white;background:radial-gradient(circle at 25% 15%,rgba(255,255,255,.22),transparent 24%),linear-gradient(135deg,#0f2747 0%,#2563eb 58%,#38bdf8 100%);box-shadow:0 28px 70px rgba(37,99,235,.24);padding:2rem}
.hero-copy{position:relative;z-index:3;max-width:520px}.hero-card h2{margin:.7rem 0 .35rem;font-size:clamp(2.6rem,8vw,5.3rem);line-height:.95;letter-spacing:-.05em}.hero-card p{margin:0;font-size:1.15rem;opacity:.9}
.pill{display:inline-flex;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.48rem .75rem;font-weight:800}
.hero-art{position:absolute;inset:0;overflow:hidden}.sun{position:absolute;width:130px;height:130px;border-radius:50%;right:12%;top:13%;background:radial-gradient(circle,#fff6c7,#fbbf24 65%,rgba(251,191,36,.2));box-shadow:0 0 60px rgba(251,191,36,.45)}
.hill{position:absolute;bottom:-20%;border-radius:50%}.hill-one{width:68%;height:62%;right:-5%;background:linear-gradient(180deg,rgba(20,184,166,.85),rgba(15,39,71,.86));transform:rotate(-8deg)}.hill-two{width:58%;height:46%;right:25%;bottom:-25%;background:linear-gradient(180deg,rgba(139,92,246,.7),rgba(37,99,235,.8));transform:rotate(8deg)}
.section-block{margin-top:1.4rem}.section-heading,.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.eyebrow{margin:0 0 .35rem;color:var(--blue);text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:900}.light{color:rgba(255,255,255,.8)}
.section-heading h2,.panel h2,.view-hero h2{margin:0;font-size:clamp(1.6rem,4vw,2.4rem)}
.date-chip{background:white;border:1px solid var(--border);border-radius:999px;padding:.55rem .85rem;color:var(--muted);font-weight:800;box-shadow:var(--soft)}
.journey-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.9rem;margin-top:1rem}.journey-card{border-radius:24px;padding:1rem;color:white;box-shadow:var(--soft);min-height:150px;display:flex;flex-direction:column}
.aqua{background:linear-gradient(135deg,#06b6d4,#38bdf8)}.indigo{background:linear-gradient(135deg,#4338ca,#6366f1)}.orange{background:linear-gradient(135deg,#f97316,#fb923c)}.purple{background:linear-gradient(135deg,#7c3aed,#a78bfa)}.teal{background:linear-gradient(135deg,#0f766e,#14b8a6)}
.journey-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.17);font-size:1.35rem}.journey-card span{margin-top:.75rem;opacity:.85;font-weight:700}.journey-card strong{margin-top:.15rem}
.meter{height:7px;background:rgba(255,255,255,.22);border-radius:999px;overflow:hidden;margin-top:auto}.meter span{display:block;height:100%;width:0;background:white;border-radius:inherit}
.content-grid,.journal-layout{display:grid;grid-template-columns:1.35fr .85fr;gap:1.1rem;margin-top:1.2rem}.journal-layout{grid-template-columns:1.15fr .85fr}
.panel{background:rgba(255,255,255,.95);border:1px solid var(--border);border-radius:30px;padding:1.35rem;box-shadow:var(--shadow);margin-top:1.2rem}
.mini-icon{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:#eaf4ff;font-size:1.3rem}.gold{background:#fff7d6}
.form-grid,.feeling-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem;margin-top:1rem}.feeling-grid{grid-template-columns:repeat(3,1fr)}
label{display:flex;flex-direction:column;gap:.4rem;font-weight:800;color:#374151}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:17px;padding:.86rem .92rem;background:white;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(37,99,235,.13);border-color:var(--blue)}
.input-with-unit{display:flex;align-items:center;gap:.4rem;border:1px solid var(--border);border-radius:17px;background:white;padding-right:.8rem}.input-with-unit input{border:0}.input-with-unit span{color:var(--muted);font-weight:800}
.shot-box{display:grid;grid-template-columns:1.25fr .75fr;gap:.85rem;margin:.9rem 0}.toggle-row{flex-direction:row;align-items:center;background:linear-gradient(135deg,#e9fbf8,#f2fffd);border:1px solid #ccf3ec;border-radius:19px;padding:.95rem}.toggle-row input{width:auto}
.primary-button,.secondary-button,.gold-button{border-radius:999px;padding:.85rem 1.15rem;font-weight:900}.primary-button{background:linear-gradient(135deg,var(--blue),var(--blue2));color:white;box-shadow:0 10px 22px rgba(37,99,235,.22)}.secondary-button{background:#f7f9fc;color:var(--navy);border:1px solid var(--border)}.gold-button{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#4b3410}
.button-group{display:flex;gap:.65rem;flex-wrap:wrap}.bottom-actions{margin-top:1rem}
.win-options,.tag-options{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin:1rem 0}.win-options button,.tag-options button{text-align:left;padding:.8rem;border-radius:17px;background:#fff8df;color:#4b3a10;border:1px solid #f9e9aa;font-weight:800}.tag-options button{background:#eef4ff;color:#274472;border-color:#dbe7ff}.selected{outline:3px solid rgba(37,99,235,.25)}
.wins-list{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}.win-chip{background:linear-gradient(135deg,#fff7d6,#fffdf4);border:1px solid #f8e6a5;color:#5a4315;border-radius:999px;padding:.55rem .8rem;font-weight:800}
.quote-card{margin:1.2rem 0;border-radius:28px;padding:1.4rem;color:white;background:linear-gradient(135deg,#7c3aed,#2563eb);box-shadow:0 20px 45px rgba(124,58,237,.2);display:flex;align-items:center;gap:1rem}.quote-card span{font-size:3rem;opacity:.6}.quote-card p{margin:0;font-size:1.25rem;font-weight:800}
.view-hero{border-radius:32px;padding:1.7rem;color:white;box-shadow:var(--shadow)}.view-hero p:last-child{margin-bottom:0;opacity:.9}.journal-hero{background:linear-gradient(135deg,#7c3aed,#2563eb)}.meals-hero{background:linear-gradient(135deg,#7c3aed,#a855f7)}.story-hero{background:linear-gradient(135deg,#0ea5e9,#2563eb)}.progress-hero{background:linear-gradient(135deg,#0f2747,#334155)}
.meal-controls{display:grid;grid-template-columns:1fr 1fr;gap:.85rem;margin:1rem 0}.meal-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(240px,1fr);gap:.9rem;overflow-x:auto;padding:.2rem .1rem .7rem;scroll-snap-type:x mandatory}.meal-day{scroll-snap-align:start;border-radius:24px;padding:1rem;background:linear-gradient(180deg,white,#fbf8ff);border:1px solid #ece6fb;box-shadow:var(--soft)}.meal-day:nth-child(2n){background:linear-gradient(180deg,white,#eefbff)}.meal-day:nth-child(3n){background:linear-gradient(180deg,white,#fff8ed)}.meal-day h3{margin:0 0 .7rem;color:var(--indigo);font-size:1.2rem}.meal-day textarea{min-height:74px;margin-bottom:.55rem;resize:vertical}
.timeline{display:grid;gap:1rem;margin-top:1rem}.timeline-card{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:1rem;border-radius:22px;background:linear-gradient(90deg,#f8fbff,white);border:1px solid var(--border);box-shadow:var(--soft)}.timeline-date{font-weight:900;color:var(--blue)}.timeline-details{display:flex;flex-wrap:wrap;gap:.55rem}.timeline-pill{background:#eef4ff;border-radius:999px;padding:.45rem .65rem;font-weight:800;color:#274472}.timeline-note{margin:.65rem 0 0;color:var(--muted)}
.progress-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}.progress-cards article{border-radius:22px;padding:1rem;background:linear-gradient(180deg,#f8fafc,white);border:1px solid var(--border)}.progress-cards span{display:block;color:var(--muted)}.progress-cards strong{display:block;margin-top:.3rem;font-size:1.45rem}
.weight-form{display:grid;grid-template-columns:1fr 1fr auto;gap:.8rem;align-items:end;margin:1rem 0} canvas{width:100%;height:auto;background:white;border:1px solid var(--border);border-radius:22px}
.bottom-nav{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);width:min(820px,94%);display:grid;grid-template-columns:repeat(5,1fr);padding:.55rem;background:rgba(15,39,71,.95);backdrop-filter:blur(18px);border-radius:24px;box-shadow:0 20px 50px rgba(15,39,71,.28);z-index:20}.nav-item{color:rgba(255,255,255,.7);background:transparent;border-radius:18px;padding:.65rem .4rem;display:flex;flex-direction:column;align-items:center;gap:.2rem}.nav-item span{font-size:1.2rem}.nav-item strong{font-size:.72rem}.nav-item.active{color:white;background:rgba(255,255,255,.13)}
dialog{width:min(620px,92vw);border:0;border-radius:26px;padding:0;box-shadow:0 30px 80px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(15,39,71,.55)}.dialog-card{padding:1.3rem;display:grid;gap:1rem}.shopping-group{background:#f6f9ff;border:1px solid var(--border);border-radius:18px;padding:.9rem;margin-bottom:.8rem}
fieldset{border:1px solid var(--border);border-radius:18px;margin:1rem 0}legend{font-weight:900;color:var(--blue)}
@media(max-width:920px){.journey-grid{grid-template-columns:repeat(2,1fr)}.content-grid,.journal-layout{grid-template-columns:1fr}}
@media(max-width:620px){.hero-card{min-height:320px}.journey-grid,.form-grid,.feeling-grid,.shot-box,.meal-controls,.progress-cards,.weight-form{grid-template-columns:1fr}.win-options,.tag-options{grid-template-columns:1fr}.section-heading,.panel-heading{flex-direction:column}.timeline-card{grid-template-columns:1fr}.bottom-nav{width:96%}.nav-item strong{font-size:.65rem}}


/* Version 7.1 Journal polish */
.journal-scene {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 82% 18%, rgba(255,255,255,.18), transparent 20%),
    linear-gradient(135deg, #4f46e5 0%, #7c3aed 45%, #2563eb 100%);
}
.journal-scene::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -65px;
  bottom: -90px;
  border-radius: 50%;
  background: rgba(255,255,255,.09);
}

.journal-editor {
  background:
    linear-gradient(90deg, transparent 44px, rgba(239,68,68,.13) 45px, transparent 46px),
    repeating-linear-gradient(
      to bottom,
      #fffdf8 0,
      #fffdf8 31px,
      rgba(59,130,246,.10) 32px
    );
}

.journal-paper {
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(230,235,243,.95);
  border-radius: 24px;
  padding: 1rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9);
}

.journal-date-row,
.journal-two-column {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .85rem;
}

.favorite-toggle {
  align-self: end;
  flex-direction: row;
  align-items: center;
  background: #fff8df;
  border: 1px solid #f9e9aa;
  border-radius: 18px;
  padding: .9rem;
}
.favorite-toggle input {
  width: auto;
}

.reflection-prompt {
  margin: 1rem 0;
  padding: 1rem;
  border-radius: 18px;
  background: linear-gradient(135deg, #eef4ff, #f7f2ff);
  border: 1px solid #dce6fb;
}
.reflection-prompt span {
  display: block;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: .1em;
  font-size: .72rem;
  font-weight: 900;
}
.reflection-prompt strong {
  display: block;
  margin-top: .3rem;
  font-size: 1.08rem;
}

.journal-tools {
  display: flex;
  gap: .6rem;
  width: 100%;
}
.journal-tools input {
  flex: 1;
}

.journal-entry-card {
  position: relative;
  background:
    linear-gradient(90deg, transparent 34px, rgba(239,68,68,.10) 35px, transparent 36px),
    repeating-linear-gradient(
      to bottom,
      #fffdf8 0,
      #fffdf8 29px,
      rgba(59,130,246,.08) 30px
    );
}
.journal-entry-card.favorite::before {
  content: "⭐";
  position: absolute;
  top: .8rem;
  right: .8rem;
}

.journal-action-row {
  display: flex;
  gap: .5rem;
  margin-top: .75rem;
}
.journal-action-row button {
  padding: .55rem .75rem;
  font-size: .82rem;
}

.danger-button {
  border-radius: 999px;
  padding: .85rem 1.15rem;
  font-weight: 900;
  color: white;
  background: linear-gradient(135deg, #dc2626, #ef4444);
}

@media(max-width:620px){
  .journal-date-row,
  .journal-two-column {
    grid-template-columns: 1fr;
  }
  .journal-tools {
    flex-direction: column;
  }
}

.day-one-overlay{position:fixed;inset:0;z-index:999;display:grid;place-items:center;overflow:hidden;color:white;background:linear-gradient(180deg,#0f2747 0%,#2563eb 45%,#f59e0b 100%)}
.day-one-sky{position:absolute;inset:0;overflow:hidden}.day-one-sun{position:absolute;width:150px;height:150px;right:14%;top:12%;border-radius:50%;background:radial-gradient(circle,#fffbd2,#fbbf24 68%,rgba(251,191,36,.3));box-shadow:0 0 90px rgba(251,191,36,.65);animation:sunrise 1.8s ease both}
.day-one-hill{position:absolute;border-radius:50%;bottom:-23%}.hill-a{width:78%;height:55%;left:-15%;background:#1e3a5f;transform:rotate(6deg)}.hill-b{width:82%;height:48%;right:-22%;background:#0f766e;transform:rotate(-7deg)}
.day-one-path{position:absolute;width:110px;height:55%;bottom:-4%;left:51%;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,.72));clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);transform:translateX(-50%)}
.day-one-content{position:relative;z-index:2;width:min(680px,90%);text-align:center;animation:fadeUp 1s .35s both}.day-one-brand{text-transform:uppercase;letter-spacing:.18em;font-weight:900;font-size:.78rem}.day-one-content h1{font-size:clamp(2.4rem,8vw,5.8rem);margin:.3rem 0;letter-spacing:-.045em}.day-one-content h2{font-size:clamp(1.7rem,5vw,3.3rem);margin:.15rem 0}.day-one-content p{font-size:clamp(1rem,3vw,1.35rem)}.day-one-content small{display:block;margin-top:1rem;opacity:.82}.day-one-button{margin-top:1rem;padding:1rem 1.5rem;border-radius:999px;font-weight:900;background:white;color:#173c70;box-shadow:0 18px 44px rgba(0,0,0,.2)}
@keyframes sunrise{from{transform:translateY(190px);opacity:.2}to{transform:none;opacity:1}}@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.mission-card{margin-top:1.25rem;border-radius:30px;padding:1.35rem;color:white;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;background:linear-gradient(135deg,#7c3aed,#2563eb);box-shadow:0 20px 48px rgba(79,70,229,.22)}
.mission-card h2{margin:.15rem 0;font-size:clamp(1.5rem,4vw,2.35rem)}.mission-card p:last-child{margin:.2rem 0 0;opacity:.88}.mission-icon{width:62px;height:62px;display:grid;place-items:center;border-radius:20px;background:rgba(255,255,255,.16);font-size:2rem}.mission-button{border-radius:999px;padding:.82rem 1rem;color:#312e81;background:white;font-weight:900}.mission-card.complete{background:linear-gradient(135deg,#0f766e,#14b8a6)}
.quick-check-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.65rem;margin:1rem 0}.quick-check-grid button{border-radius:18px;padding:.85rem .45rem;background:#f7f9fc;border:1px solid var(--border);font-size:1.35rem}.quick-check-grid button span{display:block;margin-top:.3rem;color:#334155;font-size:.75rem;font-weight:800}.quick-check-grid button.selected{background:#eaf2ff;outline:3px solid rgba(37,99,235,.18)}.quick-actions{display:flex;gap:.6rem;flex-wrap:wrap}.gentle-message{border-radius:16px;padding:.75rem .9rem;background:#eef4ff;color:#274472;font-weight:750}
.future-letter-panel{background:radial-gradient(circle at 90% 8%,rgba(251,191,36,.22),transparent 20%),linear-gradient(180deg,#fffdf8,#f8f5ff)}.letter-intro{color:var(--muted)}.future-letter-panel textarea{font-family:Georgia,"Times New Roman",serif;line-height:1.65;font-size:1.05rem}
.exercise-hero{background:linear-gradient(135deg,#ea580c,#7c3aed)}.milestone-hero{background:linear-gradient(135deg,#b45309,#f59e0b)}
.exercise-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;margin-top:1rem}.summary-tile{border-radius:22px;padding:1rem;color:white;box-shadow:var(--soft)}.summary-tile span{display:block;opacity:.84;font-weight:750}.summary-tile strong{display:block;margin-top:.25rem;font-size:1.45rem}.blue-tile{background:linear-gradient(135deg,#0284c7,#38bdf8)}.purple-tile{background:linear-gradient(135deg,#6d28d9,#a78bfa)}.orange-tile{background:linear-gradient(135deg,#ea580c,#fb923c)}
.exercise-note{padding:.85rem;background:#fff7ed;border:1px solid #fed7aa;border-radius:17px;color:#7c2d12}.routine-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem;margin-top:1rem}.routine-card{border-radius:22px;padding:1rem;background:linear-gradient(180deg,#fff,#f8fbff);border:1px solid var(--border);box-shadow:var(--soft)}.routine-card h3{margin:.2rem 0 .5rem}.routine-card ul{padding-left:1.2rem;color:#475569;min-height:150px}.routine-badge{display:inline-block;padding:.35rem .55rem;border-radius:999px;background:#eef4ff;color:#274472;font-size:.72rem;font-weight:900}
.exercise-rows{display:grid;gap:.75rem;margin:1rem 0}.exercise-row{display:grid;grid-template-columns:1.6fr .65fr .55fr .55fr auto;gap:.55rem;padding:.75rem;border-radius:18px;background:#f8fafc;border:1px solid var(--border);align-items:end}.exercise-row button{height:44px}.last-setting{grid-column:1/-1;margin:0;color:var(--muted);font-size:.78rem}.workout-history{display:grid;gap:.8rem;margin-top:1rem}.workout-card{border-radius:20px;padding:1rem;background:linear-gradient(90deg,#f8fbff,#fff);border:1px solid var(--border)}.workout-card h3{margin:.1rem 0 .45rem}.workout-exercise-list{display:flex;flex-wrap:wrap;gap:.45rem}.workout-exercise-list span{padding:.42rem .6rem;border-radius:999px;background:#eef4ff;color:#274472;font-size:.78rem;font-weight:750}
.milestone-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem}.milestone-card{border-radius:24px;padding:1rem;min-height:180px;border:1px solid var(--border);background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:var(--soft)}.milestone-symbol{font-size:2.2rem}.milestone-card h3{margin:.5rem 0 .25rem}.milestone-card p{margin:.25rem 0;color:var(--muted)}.milestone-card.locked{filter:grayscale(.7);opacity:.55}.milestone-card.unlocked{background:linear-gradient(180deg,#fffbeb,#fff);border-color:#fde68a}.milestone-status{display:inline-block;margin-top:.5rem;border-radius:999px;padding:.35rem .55rem;background:#eef4ff;font-size:.72rem;font-weight:900}
.danger-button{border-radius:999px;padding:.85rem 1.15rem;font-weight:900;color:white;background:linear-gradient(135deg,#dc2626,#ef4444)}.about-card{margin:1.2rem 0;padding:1rem;border-radius:22px;text-align:center;background:#0f2747;color:white}.about-card span,.about-card small{display:block;margin-top:.25rem;opacity:.78}
.bottom-nav{grid-template-columns:repeat(7,1fr);width:min(980px,96%)}.nav-item strong{font-size:.62rem}
@media(max-width:920px){.routine-cards,.milestone-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.mission-card{grid-template-columns:1fr}.quick-check-grid{grid-template-columns:repeat(3,1fr)}.exercise-summary-grid,.routine-cards,.milestone-grid{grid-template-columns:1fr}.exercise-row{grid-template-columns:1fr 1fr}.exercise-name,.last-setting{grid-column:1/-1}.bottom-nav{overflow-x:auto;grid-template-columns:repeat(7,minmax(68px,1fr))}}


/* Version 8.0.2 critical Day One overlay fix */
.day-one-overlay.hidden {
  display: none !important;
}

/* Version 8.1 integrated nutrition tracker */
.nutrition-center{
  background:
    radial-gradient(circle at 92% 4%,rgba(56,189,248,.14),transparent 22%),
    linear-gradient(180deg,#ffffff,#f8fbff);
}
.nutrition-intro{margin:.35rem 0 0;color:var(--muted);font-weight:600}
.nutrition-date-row{display:flex;align-items:end;justify-content:space-between;gap:.8rem;margin:1rem 0}
.nutrition-date-row label{max-width:260px;flex:1}
.nutrition-stats-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.65rem;margin:1rem 0}
.nutrition-stats-grid article{padding:.85rem .55rem;border-radius:18px;text-align:center;background:#fff;border:1px solid var(--border);box-shadow:var(--soft)}
.nutrition-stats-grid span,.nutrition-stats-grid small{display:block;color:var(--muted);font-size:.76rem}
.nutrition-stats-grid strong{display:block;margin:.2rem 0;font-size:1.35rem;color:var(--navy)}
.nutrition-layout{display:grid;grid-template-columns:1.05fr .95fr;gap:1rem;margin-top:1rem}
.nutrition-entry-card,.nutrition-log-card{border:1px solid var(--border);border-radius:24px;padding:1rem;background:rgba(255,255,255,.88)}
.nutrition-entry-card h3,.nutrition-log-card h3{margin:.1rem 0;font-size:1.35rem}
.nutrition-food-results{display:grid;gap:.5rem;max-height:235px;overflow:auto;margin:.65rem 0 1rem}
.nutrition-food-result{display:flex;justify-content:space-between;gap:.8rem;padding:.75rem;border-radius:15px;text-align:left;background:#f8fbff;border:1px solid var(--border);color:var(--ink)}
.nutrition-food-result:hover{background:#eef4ff;border-color:#cdddf7}
.nutrition-food-result small{display:block;margin-top:.2rem;color:var(--muted)}
.nutrition-food-result span:last-child{white-space:nowrap;color:#0f766e;font-size:.78rem;font-weight:850}
.nutrition-form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}
.nutrition-wide{grid-column:span 2}
.nutrition-note{color:var(--muted);font-size:.82rem}
.nutrition-meal-section{margin-top:1rem}
.nutrition-meal-section h4{margin:0;padding-bottom:.45rem;border-bottom:1px solid var(--border);color:var(--indigo)}
.nutrition-meal-row{display:grid;grid-template-columns:1fr auto;gap:.55rem;padding:.7rem 0;border-bottom:1px solid #edf1f7}
.nutrition-meal-row p{margin:0}
.nutrition-meal-row small{display:block;margin-top:.2rem;color:var(--muted)}
.nutrition-meal-nutrients{grid-column:1/-1;color:var(--muted);font-size:.77rem}
.nutrition-remove{justify-self:end;border-radius:999px;padding:.45rem .65rem;background:#fff0f0;color:#b91c1c;font-weight:850}
.nutrition-empty{text-align:center;color:var(--muted);padding:1.5rem .5rem}
@media(max-width:920px){
  .nutrition-stats-grid{grid-template-columns:repeat(4,1fr)}
  .nutrition-layout{grid-template-columns:1fr}
}
@media(max-width:620px){
  .nutrition-date-row{align-items:stretch;flex-direction:column}
  .nutrition-date-row label{max-width:none}
  .nutrition-stats-grid{grid-template-columns:repeat(2,1fr)}
  .nutrition-form-grid{grid-template-columns:1fr}
  .nutrition-wide{grid-column:auto}
}

/* Version 8.2 food amount controls */
.serving-definition{display:grid;grid-template-columns:.7fr 1.3fr;gap:.5rem}
@media(max-width:620px){.serving-definition{grid-template-columns:1fr 1fr}}


/* Version 8.2.1 calculated total fix */
.locked-serving input[readonly]{
  background:#eef2f7;
  color:#475569;
  cursor:not-allowed;
}
.nutrition-preview{
  margin:1rem 0;
  padding:1rem;
  border-radius:20px;
  background:linear-gradient(135deg,#eaf4ff,#f4f0ff);
  border:1px solid #d8e4f8;
}
.nutrition-preview h3{margin:.1rem 0 .75rem;color:var(--navy)}
.nutrition-preview-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:.55rem;
}
.nutrition-preview-grid span{
  padding:.65rem;
  border-radius:14px;
  background:rgba(255,255,255,.78);
  color:var(--muted);
  font-size:.78rem;
}
.nutrition-preview-grid strong{
  display:block;
  color:var(--ink);
  font-size:1.1rem;
}
@media(max-width:620px){
  .nutrition-preview-grid{grid-template-columns:repeat(2,1fr)}
}


/* Version 8.2.2 visible amount calculation */
.amount-live-summary{
  padding:.85rem 1rem;
  border-radius:18px;
  background:#ecfdf5;
  border:2px solid #99f6e4;
  color:#134e4a;
}
.amount-live-summary span,
.amount-live-summary strong,
.amount-live-summary small{display:block}
.amount-live-summary > strong{margin:.25rem 0;font-size:1.08rem}
.amount-live-summary small{color:#476a67;line-height:1.35}


/* Version 8.2.3 live main totals */
.nutrition-totals-status{
  margin:.35rem 0 0;
  color:var(--muted);
  font-size:.82rem;
  font-weight:800;
}
.nutrition-totals-status.previewing{
  display:inline-block;
  padding:.35rem .6rem;
  border-radius:999px;
  background:#ecfdf5;
  color:#0f766e;
  border:1px solid #99f6e4;
}


/* Version 9.0 Nutrition Coach */
.coach-dashboard{
  background:radial-gradient(circle at 95% 5%,rgba(34,211,238,.16),transparent 24%),linear-gradient(135deg,#ffffff,#f5f8ff);
}
.coach-message{max-width:680px;color:var(--muted);font-weight:650;line-height:1.5}
.home-nutrition-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem;margin-top:1rem}
.home-nutrition-grid article{padding:1rem;border-radius:20px;background:white;border:1px solid var(--border);box-shadow:var(--soft)}
.home-nutrition-grid span,.home-nutrition-grid small{display:block;color:var(--muted)}
.home-nutrition-grid strong{display:block;margin:.25rem 0;font-size:1.45rem;color:var(--navy)}
.dashboard-meter,.goal-meter{height:8px;margin-top:.65rem;background:#e8edf5;border-radius:999px;overflow:hidden}
.dashboard-meter span,.goal-meter span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--aqua));transition:width .25s ease}
.nutrition-goal-panel,.panel-inner,.smart-food-card{margin-top:1rem;padding:1rem;border-radius:24px;background:rgba(255,255,255,.86);border:1px solid var(--border)}
.nutrition-goal-panel h3,.smart-food-card h3,.panel-inner h3{margin:.1rem 0;font-size:1.35rem}
.goal-progress-list{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:1rem}
.goal-progress-list>div{padding:.85rem;border-radius:17px;background:#f8fbff;border:1px solid var(--border)}
.goal-progress-list span,.goal-progress-list strong{display:block}
.goal-progress-list strong{margin-top:.2rem;color:var(--navy)}
.smart-food-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem}
.smart-chip-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.8rem}
.smart-chip-list button{padding:.65rem .75rem;border-radius:16px;text-align:left;background:#eef4ff;color:#274472;border:1px solid #dbe7ff;font-weight:850}
.smart-chip-list button small{display:block;margin-top:.2rem;color:#64748b;font-weight:650}
.protein-coach-card{background:linear-gradient(180deg,#f0fdfa,#fff)}
.weekly-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.55rem;margin-top:1rem}
.weekly-grid article{padding:.75rem .4rem;text-align:center;border-radius:16px;background:#f8fafc;border:1px solid var(--border)}
.weekly-grid article.today{background:#eef4ff;border-color:#bdd1f4}
.weekly-grid strong,.weekly-grid span{display:block}
.weekly-grid span{margin-top:.25rem;color:var(--muted);font-size:.73rem}
.grocery-form{display:grid;grid-template-columns:1fr auto;gap:.65rem;margin:1rem 0}
.grocery-list{display:grid;gap:.45rem}
.grocery-list label{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.65rem;padding:.7rem .8rem;border-radius:15px;background:#f8fafc;border:1px solid var(--border)}
.grocery-list label input{width:auto}
.grocery-list label button{width:34px;height:34px;border-radius:50%;background:#fff0f0;color:#b91c1c}
.grocery-list label.checked span{text-decoration:line-through;color:var(--muted)}
.meal-total-summary{margin:.35rem 0 .7rem;color:#0f766e;font-size:.82rem;font-weight:850}
.nutrition-favorite{float:left;margin-right:.45rem;padding:0;background:transparent;color:#f59e0b;font-size:1.2rem;transform:none!important}
@media(max-width:920px){
  .home-nutrition-grid,.smart-food-grid{grid-template-columns:repeat(2,1fr)}
  .weekly-grid{grid-template-columns:repeat(4,1fr)}
}
@media(max-width:620px){
  .home-nutrition-grid,.goal-progress-list,.smart-food-grid{grid-template-columns:1fr}
  .weekly-grid{grid-template-columns:repeat(2,1fr)}
  .grocery-form{grid-template-columns:1fr}
}


/* Version 9.0.1 food-name matching */
.nutrition-match-status{margin:-.2rem 0 .2rem;padding:.55rem .7rem;border-radius:13px;background:#f8fafc;color:var(--muted);font-size:.78rem;font-weight:750;border:1px solid var(--border)}
.nutrition-match-status.matched{background:#ecfdf5;color:#0f766e;border-color:#99f6e4}
.nutrition-match-status.not-matched{background:#fff7ed;color:#9a3412;border-color:#fed7aa}

/* Version 9.0.2 mobile matching */
.nutrition-match-status{transition:background .2s ease,border-color .2s ease,color .2s ease}


/* Version 9.0.3 typed-food lookup */
.nutrition-find-button{
  align-self:end;
  min-height:46px;
}


/* Version 10 — phone-first nutrition layout */
.smart-food-search{padding:1rem;border:1px solid var(--border);border-radius:20px;background:linear-gradient(180deg,#fff,#fafafa);margin-bottom:1rem}
.smart-food-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.8rem}
.smart-food-heading h3{margin:.1rem 0 0}
.food-source-badge{white-space:nowrap;font-size:.72rem;font-weight:850;padding:.35rem .55rem;border-radius:999px;background:#eef2ff;color:#4338ca}
.smart-search-row{display:grid;grid-template-columns:1fr auto;gap:.65rem}
.smart-search-row input{min-height:50px;font-size:16px}
.smart-search-row button{min-height:50px}
.search-help{font-size:.78rem;color:var(--muted);margin:.55rem 0 .25rem}
.result-section-label{font-size:.75rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:.8rem 0 .35rem}
.v10-food-card{width:100%;display:grid;grid-template-columns:46px 1fr auto;align-items:center;gap:.7rem;text-align:left;padding:.7rem;border:1px solid var(--border);border-radius:16px;background:#fff;margin:.45rem 0;min-height:68px}
.v10-food-card img,.food-card-placeholder{width:46px;height:46px;border-radius:12px;object-fit:cover;display:grid;place-items:center;background:#f3f4f6;font-size:1.4rem}
.v10-food-card-copy{display:grid;gap:.1rem;min-width:0}.v10-food-card-copy strong,.v10-food-card-copy small,.v10-food-card-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v10-food-card-copy small{color:var(--muted)}.v10-food-card-copy span{font-size:.78rem;font-weight:800}.v10-select-arrow{font-size:1.8rem;color:var(--muted)}
.food-search-loading,.food-search-empty{padding:1rem;border-radius:14px;background:#f8fafc;color:var(--muted);display:grid;gap:.25rem}
.nutrition-details-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.nutrition-details-toggle{display:none}
@media(max-width:720px){
  .nutrition-layout{display:block!important}.nutrition-entry-card,.nutrition-log-card{padding:.85rem!important;border-radius:18px!important}
  .smart-food-search{padding:.8rem;margin-left:-.1rem;margin-right:-.1rem}.smart-food-heading{align-items:center}
  .smart-search-row{grid-template-columns:1fr}.smart-search-row button{width:100%}
  .nutrition-form-grid{grid-template-columns:1fr 1fr!important;gap:.7rem!important}.nutrition-form-grid .nutrition-wide{grid-column:1/-1!important}
  .nutrition-form-grid input,.nutrition-form-grid select{font-size:16px;min-height:48px}
  .nutrition-details-toggle{display:block}.nutrition-details-fields{display:none;grid-template-columns:1fr 1fr}.nutrition-details-fields.open{display:grid}
  .amount-live-summary{padding:.8rem!important}.nutrition-preview{padding:.85rem!important}.nutrition-preview-grid{grid-template-columns:1fr 1fr!important}
  .nutrition-add-sticky{position:sticky;bottom:10px;z-index:12;width:100%;min-height:54px;font-size:1rem;box-shadow:0 8px 28px rgba(0,0,0,.22);margin-top:.8rem}
  .v10-food-card{grid-template-columns:42px 1fr auto;padding:.65rem}.v10-food-card img,.food-card-placeholder{width:42px;height:42px}
  .weekly-grid,.goal-progress-grid,.meal-totals-grid{grid-template-columns:1fr!important}
}
@media(min-width:721px){.nutrition-details-fields{display:grid!important}}


/* Version 11 — Smart Dining */
.home-dining-shortcut{width:100%;border:0;border-radius:22px;padding:16px 18px;margin:0 0 18px;background:linear-gradient(135deg,#fff7ed,#ffedd5);display:flex;align-items:center;gap:14px;text-align:left;box-shadow:var(--shadow);color:var(--ink);cursor:pointer}
.home-dining-icon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:#fff;font-size:1.55rem}
.home-dining-shortcut span:nth-child(2){display:grid;gap:3px;flex:1}.home-dining-shortcut small{color:var(--muted);font-weight:650}.home-dining-arrow{font-size:2rem}
.dining-hero{background:linear-gradient(135deg,#0f766e,#2563eb);color:#fff;border-radius:26px;padding:24px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;box-shadow:var(--shadow)}
.dining-hero h2{font-size:clamp(1.6rem,5vw,2.4rem);margin:.2rem 0 .4rem}.dining-hero p{margin:0;max-width:620px}.dining-hero-icon{font-size:3.3rem}
.dining-today-card,.dining-controls{margin-bottom:18px}
.dining-goal-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.dining-goal-strip article{background:#f8fafc;border:1px solid var(--border);border-radius:17px;padding:13px}.dining-goal-strip span{display:block;color:var(--muted);font-size:.78rem;font-weight:750}.dining-goal-strip strong{font-size:1.15rem}
.dining-search-label{display:grid;gap:7px;font-weight:800}.dining-search-label input{min-height:50px;font-size:1rem}
.restaurant-chip-row,.dining-filter-row{display:flex;gap:9px;overflow-x:auto;padding:12px 2px 4px;scrollbar-width:none}.restaurant-chip-row::-webkit-scrollbar,.dining-filter-row::-webkit-scrollbar{display:none}
.restaurant-chip,.dining-filter{white-space:nowrap;border:1px solid var(--border);background:#fff;border-radius:999px;padding:10px 14px;font-weight:800;cursor:pointer}.restaurant-chip.active,.dining-filter.active{background:#1d4ed8;color:#fff;border-color:#1d4ed8}
.dining-section-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:22px 2px 12px}.dining-section-heading h2{margin:.15rem 0 0}
.dining-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.dining-item-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:16px;box-shadow:0 10px 24px rgba(15,23,42,.07);display:flex;flex-direction:column;gap:12px}
.dining-item-card.green{border-top:5px solid #10b981}.dining-item-card.yellow{border-top:5px solid #f59e0b}
.dining-card-top{display:flex;gap:11px;align-items:flex-start}.dining-item-emoji{width:44px;height:44px;border-radius:14px;background:#f8fafc;display:grid;place-items:center;font-size:1.45rem;flex:0 0 auto}.dining-card-title{flex:1}.dining-card-title small{color:var(--muted);font-weight:800}.dining-card-title h3{font-size:1rem;margin:3px 0 0;line-height:1.28}
.dining-favorite{border:0;background:transparent;font-size:1.65rem;color:#94a3b8;padding:0;cursor:pointer}.dining-favorite.saved{color:#f59e0b}
.dining-score-line{display:flex;align-items:center;justify-content:space-between;font-weight:850}.choice-badge{border-radius:999px;padding:6px 9px;font-size:.73rem}.choice-badge.green{background:#ecfdf5;color:#047857}.choice-badge.yellow{background:#fffbeb;color:#a16207}
.dining-macro-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.dining-macro-grid div{background:#f8fafc;border-radius:12px;padding:8px 5px;text-align:center}.dining-macro-grid strong,.dining-macro-grid span{display:block}.dining-macro-grid strong{font-size:.83rem}.dining-macro-grid span{font-size:.62rem;color:var(--muted);font-weight:750}
.why-choice{font-size:.82rem}.why-choice summary{font-weight:850;cursor:pointer}.why-choice ul{margin:8px 0 0;padding-left:20px;color:var(--muted)}
.dining-add-button{width:100%;margin-top:auto;min-height:46px}.dining-add-button.added{background:#059669}
.dining-empty{text-align:center;padding:34px}.dining-empty>div{font-size:2.5rem}.dining-note{margin-top:18px}.dining-note p{margin:.35rem 0 0;color:var(--muted)}
.bottom-nav{overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.bottom-nav::-webkit-scrollbar{display:none}.nav-item{min-width:74px;flex:1 0 74px}
@media(max-width:720px){
  .dining-results{grid-template-columns:1fr}
  .dining-hero{padding:19px}.dining-hero-icon{font-size:2.4rem}
  .dining-goal-strip{grid-template-columns:repeat(3,1fr)}.dining-goal-strip article{padding:10px 8px}.dining-goal-strip strong{font-size:.95rem}
  .dining-item-card{padding:15px;border-radius:20px}
  .dining-macro-grid div{padding:9px 4px}
  .dining-controls{position:sticky;top:0;z-index:8;border-radius:0 0 20px 20px;margin-left:-14px;margin-right:-14px;padding:12px 14px}
}
@media(max-width:390px){
  .dining-goal-strip{gap:6px}.dining-goal-strip span{font-size:.67rem}.dining-goal-strip strong{font-size:.82rem}
  .dining-macro-grid strong{font-size:.75rem}.dining-macro-grid span{font-size:.56rem}
}


/* Version 11.1 — Dose-effectiveness tracker */
.dose-effectiveness-panel{margin:22px 0}
.dose-icon{background:#ede9fe}
.dose-cycle-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 16px}
.dose-cycle-summary article{background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--border);border-radius:17px;padding:13px}
.dose-cycle-summary span{display:block;color:var(--muted);font-size:.74rem;font-weight:800;margin-bottom:4px}
.dose-cycle-summary strong{font-size:1rem}
.dose-guidance{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:15px;padding:12px 14px;font-weight:750;margin-bottom:14px}
.dose-checkin-form{display:grid;gap:15px}
.dose-checkin-form.dose-disabled{opacity:.55;pointer-events:none}
.dose-slider-label{display:grid;gap:8px;background:#f8fafc;border:1px solid var(--border);border-radius:17px;padding:13px}
.dose-slider-label>span{display:flex;justify-content:space-between;gap:12px;align-items:center}
.dose-slider-label output{font-weight:900;color:#1d4ed8}
.dose-slider-label input[type="range"]{width:100%;accent-color:#2563eb}
.dose-slider-label small{color:var(--muted);line-height:1.35}
.dose-chart-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:22px 0 10px}
.dose-chart-heading h3{margin:.1rem 0 0}
.dose-effectiveness-chart{height:210px;display:grid;grid-template-columns:repeat(7,1fr);gap:8px;align-items:end;border:1px solid var(--border);border-radius:18px;padding:16px 10px 10px;background:linear-gradient(180deg,#eff6ff,#fff)}
.dose-day{height:100%;display:grid;grid-template-rows:1fr auto auto auto;align-items:end;text-align:center;gap:2px;border-radius:12px;padding:4px}
.dose-day.fade-day{background:#fff7ed;outline:2px solid #fb923c}
.dose-bar-shell{height:100%;display:flex;align-items:flex-end;justify-content:center}
.dose-bar{width:min(32px,75%);border-radius:10px 10px 4px 4px;min-height:4px;background:#94a3b8;transition:height .25s ease}
.dose-bar.strong{background:#10b981}.dose-bar.moderate{background:#f59e0b}.dose-bar.low{background:#ef4444}.dose-bar.empty{background:#cbd5e1}
.dose-day strong{font-size:.72rem}.dose-day span,.dose-day small{font-size:.63rem;color:var(--muted)}
.dose-insight{background:#eef2ff;color:#3730a3;border-radius:14px;padding:12px 14px;font-weight:750}
.dose-method-note{margin-top:12px;color:var(--muted);font-size:.83rem}.dose-method-note summary{font-weight:850;color:var(--ink);cursor:pointer}.dose-method-note p{line-height:1.5}
@media(max-width:720px){
  .dose-cycle-summary{grid-template-columns:repeat(2,1fr)}
  .dose-effectiveness-chart{height:190px;gap:4px;padding-left:6px;padding-right:6px}
  .dose-day strong{font-size:.64rem}.dose-day span{display:none}
}


/* Version 11.2 — Progress photos */
.photos-hero{background:linear-gradient(135deg,#6d28d9,#9333ea 60%,#f59e0b)}
.photo-upload-panel{border-top:5px solid #7c3aed}.photo-help{color:var(--muted);line-height:1.5}.privacy-note{display:block;margin-top:10px;color:var(--muted)}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.photo-picker-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:linear-gradient(135deg,#6d28d9,#2563eb);color:#fff;border-radius:15px;padding:13px 18px;font-weight:900;cursor:pointer;box-shadow:0 10px 20px rgba(79,70,229,.2)}
.photo-upload-preview{margin-top:15px;border:2px dashed #c4b5fd;border-radius:20px;min-height:220px;display:grid;place-items:center;overflow:hidden;background:#faf8ff}.photo-upload-preview img{display:block;width:100%;max-height:520px;object-fit:contain;background:#111827}.photo-preview-placeholder{text-align:center;color:var(--muted);padding:28px}.photo-preview-placeholder span{display:block;font-size:3rem}.photo-preview-placeholder strong,.photo-preview-placeholder small{display:block;margin-top:8px}.photo-remove-selection{margin-top:10px}
.photo-week-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.photo-notes-label,.photo-form-actions{grid-column:1/-1}
.photo-week-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.photo-week-card{border:1px solid var(--border);border-top:5px solid #cbd5e1;border-radius:20px;overflow:hidden;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.06)}.photo-week-card.photo-complete{border-top-color:#10b981}.photo-card-image{width:100%;aspect-ratio:4/5;object-fit:cover;background:#111827}.photo-card-placeholder{aspect-ratio:4/5;display:grid;place-items:center;align-content:center;gap:8px;background:#f1f5f9;color:var(--muted);font-size:2.5rem}.photo-card-placeholder span{font-size:.85rem;font-weight:800}.photo-week-card-body{padding:15px}.photo-week-card-top,.photo-week-details,.photo-card-actions{display:flex;justify-content:space-between;gap:8px;align-items:center}.photo-week-badge{font-weight:900;color:#6d28d9}.photo-status{font-size:.72rem;font-weight:850;color:var(--muted)}.photo-week-card-body>strong{display:block;font-size:1.05rem;margin:12px 0 8px}.photo-week-details{justify-content:flex-start;flex-wrap:wrap;color:var(--muted);font-weight:750}.photo-week-card p{color:var(--muted);line-height:1.45}.photo-card-actions{justify-content:flex-start;flex-wrap:wrap;margin-top:12px}.photo-card-actions button{padding:8px 10px;min-height:38px}.photo-empty{text-align:center;grid-column:1/-1;padding:32px;color:var(--muted)}.photo-empty div{font-size:2.6rem}.photo-empty strong{display:block;color:var(--ink);margin:8px}
.photo-compare-controls{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:15px}.photo-compare-result{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch}.photo-compare-result article{background:#f8fafc;border:1px solid var(--border);border-radius:18px;overflow:hidden}.photo-compare-image{width:100%;aspect-ratio:4/5;object-fit:cover;background:#111827}.photo-compare-placeholder{aspect-ratio:4/5;display:grid;place-items:center;background:#e2e8f0;color:var(--muted);font-weight:850}.photo-compare-copy{padding:16px}.photo-compare-result article span,.photo-compare-result article small{display:block;color:var(--muted);font-weight:750}.photo-compare-result article strong{font-size:1.7rem;display:block;margin:6px 0}.compare-arrow{display:grid;place-items:center;font-size:1.7rem;font-weight:900;color:#7c3aed}.compare-change{grid-column:1/-1;background:#eef2ff;color:#3730a3;border-radius:14px;padding:12px;text-align:center}.photo-guide-image{width:100%;height:auto;border-radius:18px;border:1px solid var(--border)}
@media(max-width:760px){.photo-week-form{grid-template-columns:1fr 1fr}.photo-week-grid{grid-template-columns:1fr}.photo-compare-result{grid-template-columns:1fr}.compare-arrow{transform:rotate(90deg)}.photo-compare-controls{grid-template-columns:1fr}.photo-guide-panel{padding:12px}.photo-upload-preview{min-height:180px}}
@media(max-width:430px){.photo-week-form{grid-template-columns:1fr}.photo-notes-label,.photo-form-actions{grid-column:1}.photo-picker-button{display:flex;width:100%}}


/* Version 11.3 — Full-screen progress photo gallery */
.photo-card-image-button{display:block;width:100%;padding:0;border:0;background:#111827;cursor:pointer}
.photo-card-image-button:focus-visible{outline:4px solid #f59e0b;outline-offset:-4px}
.photo-card-actions .primary-button:disabled{opacity:.45;cursor:not-allowed}
.photo-viewer[hidden]{display:none}
.photo-viewer{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:16px}
.photo-viewer-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.86);backdrop-filter:blur(5px)}
.photo-viewer-card{position:relative;z-index:1;width:min(920px,100%);max-height:94dvh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.photo-viewer-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--border);backdrop-filter:blur(10px)}
.photo-viewer-header h2{margin:2px 0 0}.photo-viewer-close{width:44px;height:44px;border:0;border-radius:50%;background:#eef2ff;color:#312e81;font-size:1.25rem;font-weight:900;cursor:pointer}
.photo-viewer-image-wrap{display:grid;place-items:center;min-height:320px;background:#111827;overflow:auto;touch-action:pinch-zoom}
.photo-viewer-image-wrap img{display:block;max-width:100%;max-height:68dvh;object-fit:contain}
.photo-viewer-details{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px}
.photo-viewer-details>div{background:#f8fafc;border:1px solid var(--border);border-radius:14px;padding:12px}.photo-viewer-details span{display:block;color:var(--muted);font-size:.78rem;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.photo-viewer-details strong{display:block;margin-top:5px}.photo-viewer-notes{grid-column:1/-1}.photo-viewer-notes p{margin:6px 0 0;line-height:1.5;color:var(--ink)}
.photo-viewer-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:0 18px 12px}.photo-viewer-controls button:disabled{opacity:.4;cursor:not-allowed}.photo-viewer-tip{text-align:center;color:var(--muted);font-size:.8rem;margin:0;padding:0 18px 18px}.photo-viewer-open{overflow:hidden}
@media(max-width:600px){.photo-viewer{padding:0}.photo-viewer-card{width:100%;height:100dvh;max-height:none;border-radius:0}.photo-viewer-image-wrap{min-height:45dvh}.photo-viewer-image-wrap img{max-height:58dvh}.photo-viewer-details{grid-template-columns:1fr 1fr;padding:14px}.photo-viewer-notes{grid-column:1/-1}.photo-viewer-controls{grid-template-columns:1fr 1fr}.photo-viewer-controls .primary-button{grid-column:1/-1;grid-row:1}.photo-viewer-tip{padding-bottom:24px}}
