.ddt-tool{--ddt-green:#18745b;--ddt-pale:#eef8f4;--ddt-ink:#22312d;max-width:900px;margin:0 auto;color:var(--ddt-ink);line-height:1.8}.ddt-lead{font-size:1.08rem}.ddt-notice,.ddt-caveat{padding:14px 18px;border-left:4px solid var(--ddt-green);background:var(--ddt-pale);border-radius:4px}.ddt-form{margin:28px 0;padding:22px;border:1px solid #d9e5e0;border-radius:12px;background:#fff;box-shadow:0 5px 22px rgba(34,49,45,.07)}.ddt-form fieldset{border:0;margin:0;padding:0}.ddt-form legend{margin-bottom:16px;font-size:1.3rem;font-weight:700}.ddt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.ddt-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.ddt-grid input,.ddt-grid select{width:100%;min-height:48px;padding:8px 12px;border:1px solid #9eb4ac;border-radius:6px;background:#fff;font:inherit}.ddt-input-unit{display:flex;align-items:center;gap:8px}.ddt-input-unit input{flex:1;min-width:0}.ddt-error{padding:10px 14px;color:#8b1e1e;background:#fff0f0;border-radius:6px}.ddt-submit{display:block;width:100%;margin-top:20px;padding:14px;border:0;border-radius:8px;background:var(--ddt-green);color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer}.ddt-submit:hover,.ddt-submit:focus{background:#105d48}.ddt-results{scroll-margin-top:20px;margin:30px 0}.ddt-result-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ddt-result-grid article,.ddt-pfc>div{padding:18px;border:1px solid #d9e5e0;border-radius:9px;background:#fff}.ddt-result-grid span,.ddt-result-grid strong,.ddt-result-grid small,.ddt-pfc span,.ddt-pfc strong,.ddt-pfc small{display:block}.ddt-result-grid strong,.ddt-pfc strong{font-size:1.25rem;color:var(--ddt-green)}.ddt-target{margin:16px 0;padding:24px;text-align:center;background:var(--ddt-pale);border-radius:10px}.ddt-target span,.ddt-target small{display:block}.ddt-target strong{display:block;font-size:1.8rem;color:var(--ddt-green)}.ddt-pfc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ddt-method{margin-top:36px;padding-top:12px;border-top:1px solid #d9e5e0}.ddt-method a{text-decoration:underline}@media(max-width:640px){.ddt-grid,.ddt-result-grid,.ddt-pfc{grid-template-columns:1fr}.ddt-form{padding:16px}.ddt-target strong{font-size:1.5rem}}
.ddt-food-entry{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr) minmax(160px,1fr);gap:14px;align-items:end;margin:24px 0;padding:18px;border:1px solid #d9e5e0;border-radius:10px}.ddt-food-entry label{display:flex;flex-direction:column;font-weight:700}.ddt-food-entry input{min-height:48px;padding:8px 12px;border:1px solid #9eb4ac;border-radius:6px;font:inherit}.ddt-food-entry .ddt-submit{margin:0}.ddt-meal-table-wrap{overflow-x:auto;margin:20px 0}.ddt-meal-table{width:100%;min-width:760px;border-collapse:collapse}.ddt-meal-table th,.ddt-meal-table td{padding:9px;border-bottom:1px solid #d9e5e0;text-align:right;white-space:nowrap}.ddt-meal-table th:first-child,.ddt-meal-table td:first-child{text-align:left;white-space:normal;min-width:210px}.ddt-meal-table input{width:76px;padding:6px}.ddt-remove-food{border:1px solid #b3c2bd;background:#fff;border-radius:4px;cursor:pointer}.ddt-meal-table tfoot{font-weight:700;background:var(--ddt-pale)}.ddt-loading{color:#52645e}@media(max-width:720px){.ddt-food-entry{grid-template-columns:1fr}.ddt-food-entry .ddt-submit{width:100%}}
.ddt-recipe-servings{display:block;max-width:22rem;margin:1.25rem 0;font-weight:700}.ddt-recipe-servings .ddt-input-unit{margin-top:.35rem}.ddt-recipe .ddt-meal-table{min-width:520px}
.ddt-rice-nutrients{grid-template-columns:repeat(4,minmax(0,1fr))}.ddt-rice-grid{align-items:end}@media(max-width:720px){.ddt-rice-nutrients{grid-template-columns:repeat(2,minmax(0,1fr))}}.ddt-body-fat{--bf-estimated:#267168;--bf-measured:#e9785c;--bf-habit:#d5a52f}.ddt-bf-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(15rem,.75fr);gap:1rem;align-items:start;margin-bottom:1.5rem}.ddt-bf-intro__note{margin:0;padding:1rem 1.1rem;border-radius:.75rem;background:#fff8ee;border:1px solid #eadfce}.ddt-bf-form{margin-top:1rem}.ddt-bf-result-main{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(14rem,.9fr);gap:1rem;align-items:stretch}.ddt-bf-estimate{display:flex;flex-direction:column;justify-content:center;padding:1.5rem;border-radius:1rem;background:linear-gradient(135deg,#e7f0e8,#f7fbf8);border:1px solid #cbded4}.ddt-bf-estimate span,.ddt-bf-estimate small{display:block}.ddt-bf-estimate strong{display:block;margin:.2rem 0;font-size:clamp(2.3rem,7vw,4.3rem);line-height:1;color:var(--bf-estimated)}.ddt-bf-result-note{padding:1.2rem;border-radius:1rem;background:#fff;border:1px solid #d9e5e0}.ddt-bf-result-note h3{margin-top:0}.ddt-bf-metrics{margin-top:1rem}.ddt-bf-record-panel{margin:2rem 0;padding:1.3rem;border-radius:1rem;background:#fff8ee;border:1px solid #eadfce}.ddt-bf-record-panel h2{margin-top:0}.ddt-bf-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.ddt-bf-record-grid label{display:flex;flex-direction:column;gap:.35rem;font-weight:700}.ddt-bf-record-grid input{min-height:48px;padding:.5rem .7rem;border:1px solid #9eb4ac;border-radius:.4rem;font:inherit;background:#fff}.ddt-bf-checks{display:grid;gap:.55rem;margin:1rem 0;padding:1rem;border-radius:.7rem;background:#fff}.ddt-bf-checks label{display:flex;gap:.6rem;align-items:flex-start}.ddt-bf-checks input{width:1.2rem;height:1.2rem;margin-top:.3rem}.ddt-bf-save{background:#267168}.ddt-bf-saved{padding:.75rem 1rem;border-radius:.5rem;background:#e7f0e8;color:#183f3a;font-weight:700}.ddt-bf-history{margin:2.4rem 0}.ddt-bf-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1rem}.ddt-bf-summary>div{padding:1rem;border-radius:.7rem;background:#fff;border:1px solid #d9e5e0}.ddt-bf-summary span,.ddt-bf-summary strong{display:block}.ddt-bf-summary strong{color:#267168}.ddt-bf-graph-wrap{overflow:hidden;padding:.7rem;border:1px solid #d9e5e0;border-radius:.8rem;background:#fff}.ddt-bf-graph{display:block;width:100%;height:auto;min-height:220px}.ddt-bf-graph text{font:12px system-ui,sans-serif;fill:#5d6f69}.ddt-bf-gridline{stroke:#dce7e2;stroke-width:1}.ddt-bf-line{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.ddt-bf-line--estimated{stroke:var(--bf-estimated)}.ddt-bf-line--measured{stroke:var(--bf-measured)}.ddt-bf-legend{display:flex;gap:1rem;flex-wrap:wrap;margin:.5rem 0 0;font-size:.9rem}.ddt-bf-legend span::before{content:"";display:inline-block;width:1.4rem;height:.25rem;margin-right:.4rem;vertical-align:middle;border-radius:1rem;background:var(--bf-estimated)}.ddt-bf-legend span+span::before{background:var(--bf-measured)}.ddt-bf-table-wrap{overflow-x:auto;margin-top:1rem}.ddt-bf-table{width:100%;min-width:620px;border-collapse:collapse}.ddt-bf-table th,.ddt-bf-table td{padding:.65rem;border-bottom:1px solid #d9e5e0;text-align:left}.ddt-bf-delete-one,.ddt-bf-secondary{padding:.45rem .7rem;border:1px solid #9eb4ac;border-radius:.4rem;background:#fff;color:#203631;cursor:pointer}.ddt-bf-history-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.ddt-bf-secondary--danger{border-color:#c97969;color:#8b2d20}.ddt-bf-answer{margin:1.5rem 0;padding:1rem 1.2rem;border-left:4px solid #267168;background:#e7f0e8}.ddt-bf-answer strong{color:#183f3a}.ddt-bf-source-list li+li{margin-top:.5rem}@media(max-width:700px){.ddt-bf-intro,.ddt-bf-result-main,.ddt-bf-record-grid,.ddt-bf-summary{grid-template-columns:1fr}.ddt-bf-record-panel{padding:1rem}.ddt-bf-summary{gap:.5rem}.ddt-bf-graph{min-height:180px}.ddt-bf-history-actions>*{flex:1 1 10rem}}.ddt-bf-range {
display: flex;
align-items: center;
gap: .45rem;
flex-wrap: wrap;
margin: .9rem 0;
}
.ddt-bf-range span {
margin-right: .25rem;
font-weight: 700;
}
.ddt-bf-range button {
padding: .45rem .8rem;
border: 1px solid #9eb4ac;
border-radius: 999px;
background: #fff;
color: #203631;
cursor: pointer;
}
.ddt-bf-range button[aria-pressed="true"] {
border-color: var(--bf-estimated);
background: var(--bf-estimated);
color: #fff;
font-weight: 700;
}
.ddt-bf-point {
stroke: #fff;
stroke-width: 2;
}
.ddt-bf-point--estimated {
fill: var(--bf-estimated);
}
.ddt-bf-point--measured {
fill: var(--bf-measured);
}