/* The Daily Table v4 — warm, responsive everyday-kitchen refinement.
   Keep all form controls native, accessible, and usable without animation. */
:root{
 --bg:#f8f7f1;--paper:#fffefb;--ink:#243d33;--muted:#65756a;--line:#dce4dc;
 --primary:#274f3f;--primary-hover:#153728;--soft:#edf3eb;--sage:#dbe9cd;--terra:#b96b52;
 --shadow:0 15px 42px rgba(22,54,42,.075);--radius:24px;
}
html[data-theme=dark]{--bg:#111d18;--paper:#1a2a22;--ink:#f1f6e9;--muted:#c5d4c5;--line:#3e5847;--primary:#d6eec9;--primary-hover:#ecf5df;--soft:#223c2d;--sage:#37523e;--terra:#f0b397;--shadow:0 15px 46px rgba(0,0,0,.24)}
body{background:radial-gradient(ellipse at 88% 5%,rgba(200,220,187,.26),transparent 38%),var(--bg);font-size:16px}
button,input,select,textarea{accent-color:#286748}
button,a,summary{touch-action:manipulation}
:focus-visible{outline:3px solid #b57858;outline-offset:3px}
.site-header{position:sticky;top:0;z-index:50;background:var(--paper);background:color-mix(in srgb,var(--paper) 91%,transparent);border-bottom:1px solid var(--line);box-shadow:0 5px 24px rgba(28,64,46,.04);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.header-inner{min-height:80px;gap:14px}
.brand>span:last-child{letter-spacing:-.045em;font-size:25px}.brand-mark{width:42px;height:42px;filter:drop-shadow(0 5px 7px rgba(31,67,47,.18))}
.main-nav{gap:5px;padding:5px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--soft) 60%,transparent)}
.main-nav a{padding:10px 15px;color:var(--muted);border-radius:11px;font-weight:650;font-size:.86rem;transition:background .16s ease,color .16s ease,box-shadow .16s ease}
.main-nav a:hover,.main-nav a[aria-current=page]{background:var(--paper);box-shadow:0 2px 8px rgba(34,61,45,.075);color:var(--ink)}
.main-nav a[aria-current=page]{box-shadow:0 2px 8px rgba(34,61,45,.075),inset 0 -3px 0 var(--terra)}
.icon-btn{border:1px solid transparent;transition:background .17s,border-color .17s}
.icon-btn:hover{background:var(--soft);border-color:var(--line)}
.btn{border-radius:13px;letter-spacing:-.012em;transition:background .18s,box-shadow .18s,transform .18s}
.btn.primary{box-shadow:0 7px 18px rgba(32,78,50,.18)}.btn.primary:hover{box-shadow:0 11px 28px rgba(32,78,50,.21)}
.recipe-card,.panel,.plan-card,.today-meal,.match-card{border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;overflow:hidden}
.recipe-card,.plan-card,.today-meal{transition:box-shadow .2s,transform .2s}
.recipe-card:hover,.plan-card:hover,.today-meal:hover{box-shadow:0 19px 40px rgba(30,65,47,.12);transform:translateY(-2px)}
.filter-bar,.pantry-panel{border-radius:20px}
input:not([type=checkbox]):not([type=range]),select,textarea{border-radius:12px;background:var(--paper);color:var(--ink);border-color:var(--line)}
input:not([type=checkbox]):not([type=range]):focus,select:focus,textarea:focus{border-color:#639477;box-shadow:0 0 0 3px rgba(85,130,91,.12)}

/* A polished three-stage photo experience, not a page of admin forms. */
.photo-lab{background:linear-gradient(145deg,color-mix(in srgb,var(--paper) 94%,var(--sage)),var(--paper));border-radius:30px;border:1px solid var(--line);box-shadow:0 20px 62px rgba(33,64,40,.085);padding:clamp(20px,3.2vw,40px);scroll-margin-top:108px}
.photo-lab-head{align-items:center}.photo-lab h2{letter-spacing:-.035em}
.photo-service-badge{border-color:#afc9b8;background:var(--soft);color:var(--ink);font-weight:650}
.photo-stages{gap:12px;margin-top:20px;padding-top:18px;flex-wrap:wrap}
.photo-stages li{padding:8px 14px 8px 8px;border:1px solid transparent;border-radius:999px;white-space:nowrap}
.photo-stages li[aria-current=step]{background:var(--soft);border-color:var(--line)}
.photo-workspace{gap:clamp(20px,3vw,38px)}
.photo-drop{border-radius:20px;border:1.5px dashed #94af9b;background:linear-gradient(145deg,rgba(202,231,208,.2),rgba(255,250,236,.16));padding:22px 18px}
.photo-preview-wrap{border-radius:17px;overflow:hidden;border:1px solid var(--line);background:var(--soft)}
.photo-preview-wrap img{max-height:310px;width:100%;object-fit:contain}
.photo-boundary{background:color-mix(in srgb,var(--peach) 54%,var(--paper));border-radius:12px}
.photo-crop{padding:10px 3px}.photo-crop summary{font-weight:650}
.photo-status[data-tone=error]{padding:12px 14px;border-left:4px solid var(--terra);background:var(--soft);border-radius:8px}
.photo-lab[data-photo-stage="3"] .photo-drop{display:flex;flex-direction:column;gap:8px;padding:14px}
.photo-lab[data-photo-stage="3"] .photo-drop .photo-camera-mark,.photo-lab[data-photo-stage="3"] .photo-drop>p,.photo-lab[data-photo-stage="3"] .photo-drop>small{display:none}
.photo-lab[data-photo-stage="3"] .photo-drop h3{margin:0;font-size:1rem}
.photo-lab[data-photo-stage="3"] .photo-preview-wrap img{max-height:220px}
.photo-lab[data-photo-stage="3"] .photo-controls>.eyebrow,.photo-lab[data-photo-stage="3"] .photo-controls>h3,.photo-lab[data-photo-stage="3"] .photo-controls>p:not(#photo-provider):not(#photo-status):not(.fineprint),.photo-lab[data-photo-stage="3"] .photo-controls>label.field{display:none}
.photo-lab[data-photo-stage="3"] .photo-controls{align-content:start;display:grid;gap:9px}
.photo-lab[data-photo-stage="3"] .photo-controls .photo-consent{margin:0}
.photo-results{margin-top:26px;padding-top:30px;scroll-margin-top:100px;border-top:1.5px solid var(--line)}
.photo-results-head{align-items:center;flex-wrap:wrap;gap:18px}
.photo-results-head h3{font-size:clamp(24px,3vw,36px);letter-spacing:-.035em;line-height:1.13;margin:0 0 6px}
.photo-results-head p{margin:0 0 5px;color:var(--muted)}.photo-results-head small{display:block;color:var(--muted);font-size:.72rem}
.photo-review-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.photo-review-tools .btn{min-height:40px;padding:10px 13px;font-size:.78rem}.photo-review-tools .text-button{font-size:.78rem}
.photo-issues{background:var(--soft);padding:12px 20px 12px 33px;border-radius:12px;margin:16px 0;font-size:.82rem}
.photo-issues:empty{display:none}
.photo-results-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.photo-food{display:flex;flex-direction:column;gap:6px;min-width:0;border:1px solid var(--line);border-radius:18px;padding:15px 17px;background:var(--paper);box-shadow:0 2px 10px rgba(30,63,45,.03);transition:border-color .16s,box-shadow .16s,transform .16s}
.photo-food:hover{border-color:#9ab7a1}
.photo-food.is-reviewed{border-color:#639277;box-shadow:inset 0 0 0 1px #639277,0 7px 18px rgba(52,109,69,.08);background:color-mix(in srgb,var(--paper) 88%,var(--soft))}
.photo-food-top{display:flex;align-items:center;gap:10px}
.photo-pick-food{display:flex;align-items:center;gap:12px;cursor:pointer;width:100%;min-height:46px}
.photo-pick-food input{appearance:none;width:27px;height:27px;min-width:27px;min-height:27px;margin:0;position:relative;cursor:pointer;border-radius:9px;border:2px solid #98b09c;background:var(--paper)}
.photo-pick-food input:checked{border-color:#326b51;background:#326b51}
.photo-pick-food input:checked:after{content:'✓';position:absolute;inset:-3px 0 0;text-align:center;color:white;font:700 20px/28px var(--sans)}
.photo-food-heading{display:flex;flex:1;flex-wrap:wrap;align-items:center;gap:7px 12px}
.photo-food-name{font:700 clamp(16px,1.5vw,19px)/1.2 var(--sans);color:var(--ink);text-transform:capitalize;letter-spacing:-.025em}
.photo-certainty{border-radius:999px;padding:4px 8px;font-size:10px;line-height:1.3;font-weight:700;white-space:nowrap;background:#e4f0e0;color:#315d36;border:1px solid #d0e2d0}
.photo-certainty.uncertain{background:#faeedc;color:#865328;border-color:#eed9b9}
.photo-certainty.corrected{background:#e6f0fb;color:#285b83;border-color:#cfe2f4}
.photo-evidence-brief{margin:2px 0 2px 39px;color:var(--muted);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.photo-choices{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:6px 0 0 39px}
.photo-choices>span{font-size:11px;color:var(--muted);font-weight:650}
.photo-choice{padding:5px 9px;border:1px solid var(--line);background:var(--soft);color:var(--ink);border-radius:999px;min-height:32px!important;font-size:12px;line-height:1.15;font-weight:650}
.photo-choice:hover{border-color:#5d9271;background:var(--sage)}
.photo-edit-details{margin:4px 0 0 39px;border-top:1px solid var(--line);padding-top:3px}
.photo-edit-details summary{cursor:pointer;font-weight:650;font-size:12px;min-height:36px;display:flex;align-items:center;gap:7px;list-style:none;color:var(--ink)}
.photo-edit-details summary::-webkit-details-marker{display:none}
.photo-edit-details summary:before{content:'+';font:700 18px/1 var(--sans);color:var(--terra)}
.photo-edit-details[open] summary:before{content:'−'}
.photo-edit-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px 0 4px}
.photo-edit-fields .field{margin:0}
.photo-edit-fields .field:nth-child(3){grid-column:1/-1}
.photo-edit-fields label span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
.photo-edit-fields input,.photo-edit-fields select{width:100%;height:42px;min-height:42px;font-size:13px;padding:8px 10px}
.photo-observation{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted)}
.photo-caution{grid-column:1/-1;color:var(--muted);font-size:11px}
.photo-confirm-bar{position:sticky;bottom:16px;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid #acc9b1;border-radius:18px;padding:14px 17px;background:var(--paper);box-shadow:0 18px 40px rgba(27,65,42,.16)}
.photo-confirm-copy{min-width:0;display:grid;gap:4px;max-width:640px}
.photo-confirm-copy strong{font-size:.95rem;line-height:1.4}
.photo-confirm-copy .photo-consent{margin:0;font-size:.76rem;color:var(--muted);line-height:1.4}
.photo-confirm-bar #photo-save{flex-shrink:0;min-width:220px}
.photo-commit-feedback{background:var(--soft);border-radius:12px;border-left:4px solid #438358;font-size:.84rem;font-weight:650;padding:11px 14px}
html[data-theme=dark] .photo-lab,html[data-theme=dark] .photo-food{background:var(--paper);color:var(--ink);border-color:var(--line)}
html[data-theme=dark] .photo-certainty.clear{background:#294d33;color:#dff8df;border-color:#416e4d}
html[data-theme=dark] .photo-certainty.uncertain{background:#564129;color:#f8deb0;border-color:#7e6240}
html[data-theme=dark] .photo-certainty.corrected{background:#253d56;color:#b8d7f5;border-color:#486789}
html[data-theme=dark] .photo-choice{color:var(--ink)}

@media(max-width:1050px){.main-nav{gap:0}.main-nav a{padding:9px 11px}.photo-results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:950px){.main-nav{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}.photo-results-head{align-items:flex-start}.photo-food-heading{align-items:start}}
@media(max-width:700px){
 .header-inner{min-height:70px}
 .photo-lab{border-radius:20px;padding:17px;margin-bottom:26px}
 .photo-lab-head{align-items:start;gap:12px}.photo-service-badge{font-size:11px;padding:6px 9px;max-width:125px}
 .photo-lab h2{font-size:30px}
 .photo-stages{gap:3px;justify-content:space-between;padding-top:12px;margin-bottom:16px}
 .photo-stages li{padding:5px;gap:5px;font-size:10px}.photo-stages li span{width:25px;height:25px}
 .photo-workspace{grid-template-columns:1fr;gap:14px}
 .photo-results{scroll-margin-top:85px;margin-top:17px}
 .photo-results-grid{grid-template-columns:1fr;gap:9px}
 .photo-food{padding:13px 14px}
 .photo-results-head h3{font-size:27px}
 .photo-review-tools{width:100%;gap:7px}
 .photo-review-tools .btn{flex:1;padding:9px 8px;font-size:11px}
 .photo-review-tools .text-button{min-width:100px;justify-content:center}
 .photo-confirm-bar{position:sticky;bottom:76px;flex-direction:column;align-items:stretch;gap:9px;padding:12px 13px;border-radius:16px}
 .photo-confirm-bar #photo-save{width:100%;min-width:0;min-height:48px}
 .photo-confirm-copy strong{font-size:13px}.photo-confirm-copy .photo-consent{font-size:12px}
 .photo-food-top,.photo-food-heading{gap:7px}
 .photo-evidence-brief,.photo-choices,.photo-edit-details{margin-left:39px}
 .bottom-nav{background:var(--paper);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 -7px 24px rgba(31,62,46,.09)}
 .bottom-nav a[aria-current=page]{color:var(--ink);font-weight:750}
}
@media(max-width:360px){.photo-review-tools .btn{font-size:10px;flex:auto}.photo-food-heading{gap:4px}.photo-certainty{font-size:9px}.photo-edit-fields{grid-template-columns:1fr}.photo-edit-fields .field:nth-child(3){grid-column:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Keep the first review unobstructed until there is an explicit selection. */
.photo-confirm-bar:has(#photo-save:disabled){position:static}

/* Photo remains visible while checking names, even after scrolling past the uploader. */
.photo-review-reference{display:flex;align-items:center;gap:15px;padding:12px 14px;margin:15px 0 3px;background:var(--soft);border:1px solid var(--line);border-radius:16px}
.photo-review-reference[hidden]{display:none}
.photo-review-reference img{width:132px;height:90px;flex-shrink:0;border-radius:10px;object-fit:contain;background:#233329}
.photo-review-reference strong{display:block;color:var(--ink);font-size:14px;line-height:1.3}
.photo-review-reference p{color:var(--muted);font-size:12px;line-height:1.4;margin:5px 0 0}
@media(max-width:700px){.photo-review-reference{gap:10px;padding:10px}.photo-review-reference img{width:104px;height:92px}.photo-review-reference strong{font-size:12px}.photo-review-reference p{font-size:11px}}
/* Do not obscure review cards with an oversized sticky action bar. */
.photo-confirm-bar{position:static!important;bottom:auto}
