/* Lactosa: readable, visual care inside the shared disease template. */
.lac-care figure { margin:0; }
.lac-care figcaption,.lac-small-note { color:#496376; font-size:.9rem; line-height:1.6; }
.lac-care figcaption { margin-top:12px; }
.lac-care li { line-height:1.65; margin-bottom:12px; }
.lac-care button:focus-visible,.lac-care input:focus-visible,.lac-care select:focus-visible,.lac-care textarea:focus-visible,.lac-care summary:focus-visible { outline:3px solid var(--cyan); outline-offset:4px; }
.lac-care button:disabled { cursor:default; opacity:.65; }
.lac-shopping-intro { margin-bottom:28px; }
.lac-shopping-intro img { max-height:330px; object-position:center 30%; }
.lac-products { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin:28px 0 20px; }
.lac-product { display:flex; flex-direction:column; align-items:center; gap:10px; padding:24px 18px; border:1px solid #b9cedd; border-radius:18px; background:#fff; color:var(--blue-ink); text-align:center; font:inherit; cursor:pointer; min-width:0; transition:background .2s,border-color .2s; }
.lac-product[aria-selected="true"] { border:2px solid #1b5a84; background:#eaf4fa; box-shadow:0 8px 25px rgba(24,70,105,.09); }
.lac-product > strong { font-size:1.2rem; margin-top:5px; }
.lac-product > span:not(.lac-carton) { color:#496477; font-size:.94rem; }
.lac-product > small { color:#526a7c; font-size:.85rem; }
.lac-carton { display:flex; flex-direction:column; align-items:center; justify-content:center; width:96px; height:130px; background:#f5f8f9; border:2px solid #7b9aaf; border-radius:7px 7px 9px 9px; box-shadow:inset -13px 0 rgba(36,79,107,.08),4px 5px 0 #e5edf3; position:relative; margin-top:24px; margin-bottom:5px; }
.lac-carton-top { position:absolute; left:-2px; right:-2px; top:-21px; height:22px; background:#d6e5ed; border:2px solid #7b9aaf; clip-path:polygon(19% 0,81% 0,100% 100%,0 100%); }
.lac-carton-number { color:#16466b; font-size:2rem; font-weight:800; }
.lac-carton-stripe { height:12px; width:100%; background:#3a749b; margin-top:16px; }
.carton-1 { background:#f3f5f9; }.carton-1 .lac-carton-stripe { background:#6b7d95; }
.carton-2 { background:#f0f7f5; }.carton-2 .lac-carton-stripe { background:#397e77; }
.lac-label-panel { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:26px; border:1px solid #b9d1e0; border-radius:19px; padding:27px; background:#fff; }
.lac-fake-label { padding:25px; background:#f3f7f9; border:1px solid #c8d6df; border-radius:14px; align-self:start; min-width:0; }
.lac-fake-label h3 { margin:10px 0 22px; font-size:1.5rem; }
.lac-fake-label p { margin-bottom:18px; }
.lac-fake-label small { color:#4a6275; line-height:1.6; display:block; }
.lac-allergen { padding:14px 0; border-top:1px solid #b7cbd8; border-bottom:1px solid #b7cbd8; }
.lac-label-barcode { height:28px; width:130px; margin:20px 0; opacity:.65; background:repeating-linear-gradient(90deg,#234257 0 2px,transparent 2px 5px,#234257 5px 6px,transparent 6px 10px); }
.lac-label-lesson { min-width:0; }
.lac-label-lesson h3 { margin:20px 0; font-size:1.35rem; }
.lac-answer-options { display:grid; gap:12px; }
.lac-care .lac-answer-options .button { text-align:left; justify-content:flex-start; white-space:normal; line-height:1.5; min-height:54px; }
.lac-answer-options .button[aria-pressed="true"] { border:2px solid #27648b; background:#edf5fa; color:#163e5c; }
.lac-answer-feedback { margin:22px 0; padding:18px; background:#f2f5f7; color:#3c586a; border-radius:12px; line-height:1.65; }
.lac-answer-feedback p { margin:9px 0 0; }
.lac-answer-feedback.is-correct { border-left:4px solid #34827a; background:#edf7f4; }
.lac-answer-feedback.is-review { border-left:4px solid #b67d37; background:#fff6e9; }
.lac-mission-progress { border-bottom:1px solid #d4e2eb; padding:20px 0; color:#244d6c; font-weight:700; }
.lac-flow-options,.lac-food-buttons { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0; }
.lac-care .lac-flow-options button,.lac-care .lac-food-buttons button { white-space:normal; }
.lac-flow-options button[aria-pressed="true"],.lac-food-buttons button[aria-pressed="true"] { background:#1e5277; border-color:#1e5277; color:#fff; }
.lac-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:28px 0; }
.lac-flow-step { padding:25px 22px; border:1px solid #bbd2e1; border-radius:17px; background:linear-gradient(160deg,#f7fbfd,#eaf3f8); position:relative; min-width:0; }
.lac-flow-step h3 { font-size:1.16rem; margin:18px 0 13px; }
.lac-flow-step p { margin:0; }
.lac-flow-number { display:grid; place-items:center; width:48px; height:48px; border-radius:50%; background:#d8ebf2; color:#1a5275; font-weight:800; }
.lac-flow-step:not(:last-child)::after { content:'→'; position:absolute; right:-22px; top:32px; color:#326e92; font-size:1.2rem; width:22px; text-align:center; }
.lac-flow-dot { position:absolute; right:20px; top:32px; width:11px; height:11px; border-radius:50%; background:#1789a2; opacity:.2; }
.lac-flow.is-playing .lac-flow-dot { animation:lacSignal 1.6s ease-in-out infinite; }
.lac-flow.is-playing .lac-flow-step:nth-child(2) .lac-flow-dot { animation-delay:.4s; }
.lac-flow.is-playing .lac-flow-step:nth-child(3) .lac-flow-dot { animation-delay:.8s; }
@keyframes lacSignal { 0%,100% { opacity:.2; transform:scale(.75); } 45% { opacity:1; transform:scale(1.4); } }
.lac-food-detail,.lac-nutrition-note,.lac-review-note { background:#fff; padding:25px; border:1px solid #c0d7e5; border-radius:16px; margin:24px 0; }
.lac-food-detail h3,.lac-nutrition-note h3,.lac-review-note h3 { margin-top:0; }
.lac-food-detail p:last-child,.lac-nutrition-note p:last-child,.lac-review-note p:last-child { margin-bottom:0; }
.lac-nutrition-note { background:#edf5fa; }
.lac-entry { background:#fff; border:1px solid #c0d5e3; border-radius:16px; margin:20px 0; overflow:hidden; }
.lac-entry > summary { cursor:pointer; padding:20px 24px; display:list-item; color:#164569; }
.lac-entry > summary strong { margin-right:18px; }
.lac-entry > summary span { color:#4d687d; font-size:.9rem; }
.lac-entry[open] > summary { background:#edf5fa; border-bottom:1px solid #d1e1ec; }
.lac-entry-body { padding:24px; }
.lac-entry-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.lac-care label { display:grid; gap:10px; min-width:0; font-weight:700; color:#1a4564; }
.lac-care input,.lac-care select,.lac-care textarea { box-sizing:border-box; display:block; min-width:0; width:100%; padding:12px; min-height:48px; font:inherit; font-size:1rem; color:var(--ink); background:#fff; border:1px solid #9fbacc; border-radius:9px; }
.lac-care select { white-space:normal; }
.lac-care textarea { resize:vertical; }
.lac-notes-label { margin:25px 0; }
.lac-clear { margin-top:24px; padding:18px 20px; border:1px solid #d3dde5; border-radius:12px; }
.lac-clear summary { cursor:pointer; color:#466279; }
.lac-status { color:#735225; line-height:1.65; }
.lac-status:empty { display:none; }
.lac-diary-summary { padding:25px; background:#eff6fb; border:1px solid #b9d1e2; border-radius:16px; margin-top:25px; }
.lac-diary-summary[hidden] { display:none; }
.lac-diary-summary pre { font:inherit; font-size:.95rem; line-height:1.75; white-space:pre-wrap; overflow-wrap:anywhere; margin-bottom:0; }
.lac-sources { padding:22px 0; border-top:1px solid #d7e4ee; color:#4b6475; margin-top:28px; font-size:.9rem; }
.lac-sources summary { cursor:pointer; font-weight:700; }
.lac-care .guide-picture-row { margin-bottom:25px; }
@media(max-width:780px) { .lac-label-panel { grid-template-columns:1fr; } .lac-fake-label { max-width:none; } .lac-flow { grid-template-columns:1fr; gap:24px; } .lac-flow-step:not(:last-child)::after { content:'↓'; top:auto; right:calc(50% - 12px); bottom:-26px; } .lac-products { gap:12px; } .lac-product { padding:22px 12px; } .lac-product > strong { font-size:1.04rem; } .lac-carton { width:74px; height:112px; } }
@media(max-width:520px) { .lac-products { grid-template-columns:1fr; } .lac-product { display:grid; grid-template-columns:70px minmax(0,1fr); text-align:left; align-items:center; column-gap:20px; padding:20px; } .lac-carton { grid-column:1; grid-row:1/4; width:62px; height:88px; margin:18px 0 0; } .lac-carton-number { font-size:1.5rem; } .lac-carton-stripe { height:8px; margin-top:10px; } .lac-product > strong,.lac-product > span:not(.lac-carton),.lac-product > small { grid-column:2; margin:0; } .lac-label-panel { padding:20px 16px; gap:22px; } .lac-fake-label { padding:22px 18px; } .lac-entry-grid { grid-template-columns:1fr; } .lac-entry-body { padding:22px 16px; } .lac-entry > summary span { display:block; margin-top:8px; } .lac-diary-summary { padding:22px 16px; } .lac-care .actions .button,.lac-care #lac-flow-play { white-space:normal; } .lac-shopping-intro img { max-height:260px; } }
@media(prefers-reduced-motion:reduce) { .lac-flow.is-playing .lac-flow-dot { animation:none; } .lac-product { transition:none; } }
