/* Shared controls and responsive layout for every screen. */
.reminder-details { margin-top:20px;border-top:1px solid var(--line);padding-top:16px; }
.reminder-details summary { cursor:pointer;font-weight:600;padding:10px 0; }
.goal-coach { border:1px solid #d9e5d9;background:#eef4ec;border-radius:16px;padding:16px;margin:12px 0 22px; }
.goal-coach b { display:block;margin-top:6px; }
.goal-coach p { font-size:13px;margin:5px 0; }
.platform-toast { position:fixed;bottom:85px;left:16px;right:16px;max-width:600px;margin:auto;z-index:20;border-radius:12px;background:#173039;color:white;padding:16px;box-shadow:0 8px 30px #0002; }
.history-day { display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:16px 0;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;font-size:13px; }
.history-day small { display:block;font-weight:400;color:var(--muted);margin-top:4px; }
.recipe-detail-photo { display:block;width:100%;max-height:220px;object-fit:cover;border-radius:12px;margin:16px 0; }
.app-v2 .continue-card.has-fast-clock { display:flex; flex-direction:column; align-items:stretch; }
.fast-tracker-heading { display:flex; flex-direction:column; gap:4px; }
.fast-clock { width:100%; margin:12px 0; }
.fast-digits { font-family:var(--font-ui);font-size:clamp(36px,10vw,52px);font-weight:600;letter-spacing:-1.5px;line-height:1.3;font-variant-numeric:tabular-nums; margin:5px 0 14px; }
.fast-clock-meta { display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:12px;font-size:12px;color:var(--muted); }
.has-fast-clock>button { align-self:stretch; }
.recipe-no-photo { min-height:130px;padding:18px 12px;background:#edf2ed;display:flex;align-items:center;flex-wrap:wrap;align-content:center;gap:6px; }
.recipe-no-photo span { font-size:11px;font-weight:500;padding:4px 7px;background:#fff;border-radius:6px;color:#425b4c; }
html { scroll-padding-bottom: 90px; }
body { line-height: 1.5; }
body.dialog-open { overflow: hidden; }
button,input,select,textarea { font: inherit; }
button { touch-action: manipulation; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline: 3px solid #708a99; outline-offset: 3px; }
.field input,.field select,.field textarea,.food-search input { width:100%; min-width:0; min-height:50px; border:1px solid #cdd7d7; border-radius:12px; background:#fff; color:var(--ink); padding:12px 14px; font-size:16px; box-sizing:border-box; }
.field select { appearance:none; padding-right:38px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23142630' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
.field label { font-size:13px; line-height:1.4; }
.field { gap:8px; margin:18px 0; }
.modal .dialog { width:min(510px,100%); max-height:calc(100dvh - 32px); padding:28px; overscroll-behavior:contain; scrollbar-width:thin; }
.modal .dialog h1,.modal .dialog h2 { font-size:28px; line-height:1.2; padding-right:32px; margin:8px 0 12px; }
.modal .dialog .lede { font-size:14px; margin-bottom:20px; }
.modal .dialog .modal-x { position:sticky; top:0; float:right; z-index:5; margin:0 0 0 8px; width:38px; height:38px; background:#eef2f1; }
.primary,.outlined { min-height:48px; }
.modal .wide { min-height:48px; margin-top:12px; border-radius:12px; }
.modal .quiet.wide { border:0; color:var(--muted); background:transparent; }
.choice { min-height:60px; font-size:14px; cursor:pointer; }
.choice:has(input:checked) { border-color:var(--accent); background:#fcf4f1; }
.choice input { accent-color:var(--accent); width:18px; height:18px; flex-shrink:0; }
.step-track { display:flex; gap:6px; margin:18px 0 24px; }
.step-track span { flex:1; height:4px; background:var(--line); border-radius:4px; }
.step-track span.done { background:var(--accent); }
.two-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.two-fields .field { margin:10px 0; }
.result-box,.fast-note,.food-total { background:#eef3ee; padding:16px; border-radius:14px; margin:18px 0; }
.result-box strong { display:block; font-size:28px; }
.error { color:#a13e30; font-size:14px; }
.portion-row { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0; }
.portion-row button { min-height:44px; border:1px solid var(--line); background:white; border-radius:10px; color:var(--ink); }
.portion-row button[aria-pressed=true] { border-color:var(--accent); background:#fcf4f1; }
.fast-options { display:grid; gap:10px; margin:20px 0; }
.fast-options button { display:grid; grid-template-columns:64px 1fr; text-align:left; gap:12px; padding:16px; border:1px solid var(--line); border-radius:14px; color:var(--ink); background:#fff; }
.fast-options small { display:block; color:var(--muted); font-weight:400; margin-top:3px; }
.fast-options b { font-size:21px; }
.profile-menu { display:grid; gap:10px; margin:20px 0; }
.profile-menu button { display:flex; justify-content:space-between; text-align:left; min-height:62px; padding:18px; border:1px solid var(--line); border-radius:14px; background:white; color:var(--ink); }
.profile-menu small { display:block; font-weight:400; color:var(--muted); }
.app-v2 .home-v2 .hello { margin:8px 0 18px; }
.app-v2 .home-v2 .hello h1 { font-size:30px; line-height:1.2; }
.app-v2 .day-card { padding:20px; }
.app-v2 .home-actions { margin:18px 0 24px; }
.app-v2 .layout { gap:20px; align-items:start; }
.app-v2 .stack { min-width:0; }
.app-v2 .nav button { min-height:44px; flex:1; max-width:150px; }
.app-v2 .recipe-card { grid-template-columns:88px minmax(0,1fr) auto; }
.recipe-card small { display:block; font-size:12px; margin-top:5px; }
.recipe-card img { width:88px; height:80px; }
#recipes #recipeList { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#recipes .recipe-card { display:flex; flex-direction:column; align-items:stretch; gap:10px; border:1px solid var(--line); padding:0 0 14px; overflow:hidden; background:white; }
#recipes .recipe-card[hidden] { display:none; }
#recipes .recipe-card img { width:100%; height:130px; border-radius:0; }
#recipes .recipe-card>span { padding:0 12px; flex:1; }
#recipes .recipe-card>button { margin:0 12px; }
#recipes .layout>.card { padding:0; border:0; background:transparent; }
@media(max-width:380px){#recipes #recipeList{grid-template-columns:1fr}}
.app-v2 .progress-v2 { max-width:760px; }
.review-line { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-bottom:1px solid var(--line); font-size:14px; }
.sync-status { font-size:12px; color:var(--muted); padding:6px 0; }
@media(max-width:600px) {
 .modal { padding:10px; align-items:center; }
 .modal .dialog { padding:24px 20px; max-height:calc(100dvh - 20px); border-radius:20px; }
 .app-v2 .view { padding-top:18px; }
 .app-v2 .view h1 { font-size:32px; }
 .app-v2 .recipe-card { grid-template-columns:70px minmax(0,1fr) auto; gap:10px; }
 .recipe-card img { width:70px; height:70px; }
 .row { flex-wrap:wrap; gap:12px; }
 .app-v2 .day-card h2 { font-size:25px; }
 .app-v2 .day-card .day-meter { margin-top:16px; }
 .home-actions i { width:46px; height:46px; }
 .continue-card { gap:10px; padding:16px; }
 .app-v2 .view .lede { font-size:14px; }
}
.shared-comment { border-top:1px solid var(--line); padding:16px 0; overflow-wrap:anywhere; }
.shared-comment p { white-space:pre-wrap; margin:8px 0; }
#dialog textarea { width:100%; box-sizing:border-box; border:1px solid var(--line); border-radius:14px; padding:14px; font:inherit; color:var(--ink); background:#fff; resize:vertical; }
#ingredientResults { max-height:260px; overflow:auto; }
#draftIngredients { margin-bottom:20px; }
#draftIngredients .history-day { gap:10px; flex-wrap:wrap; }
#draftIngredients label { font-size:12px; }
#draftIngredients input { display:block; min-height:44px; }
#sharedComments { margin-top:24px; }
/* Escala de 15 a 40: umbrales 18,5 / 25 / 30 en 14% / 40% / 60%. */
.bmi-bar { background:linear-gradient(90deg,#8ba8b6 0 14%,#93ae89 14% 40%,#d5a658 40% 60%,#c76e5a 60% 100%); }
.bmi-legend { grid-template-columns:14fr 26fr 20fr 40fr; }
#visibleWeightGraph .graph { background:none; margin-top:18px; }
#homeRecords .compact-list li { align-items:center; gap:10px; flex-wrap:wrap; }
#homeRecords .compact-list li>span { flex:1; min-width:120px; }
#homeRecords .compact-list li>.quiet { padding:8px 10px; }
.language-control { display:inline-flex; margin-left:8px; align-items:center; }
.language-control select { border:1px solid var(--line); border-radius:9px; padding:8px 6px; font:inherit; font-size:12px; color:var(--ink); background:var(--surface); min-height:40px; max-width:90px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:380px) { .brand{font-size:23px} .language-control{margin-left:5px}.language-control select{max-width:80px}.signup{padding:10px 8px!important} }
