/* DogFoodBuyer Dog Profile. Scoped under .dfb-dp so it does not leak into the theme. */

.dfb-dp, .dfb-dp * { box-sizing: border-box; }
.dfb-dp { --dfb-ink:#1d2327; --dfb-mut:#646970; --dfb-line:#e2e4e7; --dfb-bg:#fff; --dfb-accent:#2b6cb0; --dfb-accent-ink:#fff; --dfb-warn:#b34700; --dfb-radius:12px; font-size:15px; line-height:1.5; color:var(--dfb-ink); }

.dfb-dp-card { background:var(--dfb-bg); border:1px solid var(--dfb-line); border-radius:var(--dfb-radius); padding:20px; margin:0 0 18px; }
.dfb-dp-h { margin:0 0 6px; font-size:1.15rem; line-height:1.25; }
.dfb-dp-fine { color:var(--dfb-mut); font-size:.82rem; margin:.4rem 0 0; }
.dfb-dp-disc { border-top:1px solid var(--dfb-line); padding-top:.5rem; margin-top:.8rem; }

/* buttons */
.dfb-dp-btn { display:inline-block; background:var(--dfb-accent); color:var(--dfb-accent-ink); border:1px solid var(--dfb-accent); border-radius:8px; padding:.55rem .95rem; font-size:.9rem; font-weight:600; cursor:pointer; text-decoration:none; line-height:1.2; }
.dfb-dp-btn:hover { filter:brightness(.95); color:var(--dfb-accent-ink); }
.dfb-dp-btn-ghost { background:transparent; color:var(--dfb-accent); }
.dfb-dp-btn-sm { padding:.4rem .7rem; font-size:.82rem; }
.dfb-dp-btn-warn { background:transparent; color:var(--dfb-warn); border-color:var(--dfb-warn); }
.dfb-dp-btn-on { background:#1a7f4b; border-color:#1a7f4b; color:#fff; }
.dfb-dp-btn[disabled] { opacity:.6; cursor:default; }
.dfb-dp-link { background:none; border:0; color:var(--dfb-accent); cursor:pointer; padding:0; font:inherit; text-decoration:underline; }
.dfb-dp-iconbtn { background:none; border:1px solid var(--dfb-line); border-radius:6px; padding:.25rem .5rem; cursor:pointer; font-size:.8rem; color:var(--dfb-mut); }

/* forms */
.dfb-dp-row { display:flex; flex-wrap:wrap; gap:14px; }
.dfb-dp-field { display:flex; flex-direction:column; gap:.3rem; margin:0 0 14px; flex:1 1 180px; }
.dfb-dp-field > span { font-size:.8rem; font-weight:600; color:var(--dfb-mut); }
.dfb-dp-field input, .dfb-dp-field select { padding:.5rem .6rem; border:1px solid var(--dfb-line); border-radius:8px; font-size:.9rem; background:#fff; color:var(--dfb-ink); width:100%; }
.dfb-dp-inline { display:flex; gap:8px; }
.dfb-dp-inline .dfb-dp-calc-unit { max-width:80px; }
.dfb-dp-actions { display:flex; align-items:center; gap:12px; margin-top:6px; }
.dfb-dp-formnote { font-size:.82rem; color:var(--dfb-mut); }
.dfb-dp-formnote.is-ok { color:#1a7f4b; }
.dfb-dp-formnote.is-err { color:#b32d2e; }

/* chips */
.dfb-dp-flags { display:flex; flex-wrap:wrap; gap:8px; }
.dfb-dp-chip { display:inline-flex; align-items:center; gap:.35rem; border:1px solid var(--dfb-line); border-radius:999px; padding:.3rem .7rem; font-size:.82rem; cursor:pointer; }
.dfb-dp-chip input { accent-color:var(--dfb-accent); }

/* food picker */
.dfb-dp-foodpick { position:relative; }
.dfb-dp-foodresults { list-style:none; margin:.2rem 0 0; padding:0; border:1px solid var(--dfb-line); border-radius:8px; background:#fff; position:absolute; z-index:5; width:100%; max-height:240px; overflow:auto; box-shadow:0 6px 20px rgba(0,0,0,.08); }
.dfb-dp-foodopt { padding:.5rem .7rem; cursor:pointer; font-size:.88rem; }
.dfb-dp-foodopt:hover { background:#f2f6fb; }

/* dogs */
.dfb-dp-dogs { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.dfb-dp-dog-head { display:flex; align-items:center; gap:12px; }
.dfb-dp-dog-photo { width:52px; height:52px; border-radius:50%; object-fit:cover; flex:none; }
.dfb-dp-dog-photo--empty { background:#eef1f4; display:flex; align-items:center; justify-content:center; font-weight:700; color:var(--dfb-mut); text-transform:uppercase; }
.dfb-dp-dog-id { flex:1; min-width:0; }
.dfb-dp-dog-id h3 { margin:0; }
.dfb-dp-dog-meta { margin:.1rem 0 0; color:var(--dfb-mut); font-size:.82rem; }
.dfb-dp-dog-food { margin:.8rem 0; font-size:.9rem; }
.dfb-dp-stats { display:flex; gap:10px; margin:.6rem 0 .9rem; }
.dfb-dp-stat { flex:1; background:#f7f8fa; border-radius:8px; padding:.5rem; text-align:center; }
.dfb-dp-stat-n { display:block; font-size:1.2rem; font-weight:700; }
.dfb-dp-stat-l { display:block; font-size:.68rem; color:var(--dfb-mut); text-transform:uppercase; letter-spacing:.03em; }
.dfb-dp-quick { display:flex; flex-wrap:wrap; gap:8px; }
.dfb-dp-addmore { margin-top:8px; }

/* injection: break out of the theme two-column grid */
.dfb-dp-inject { grid-column:1 / -1 !important; width:100% !important; max-width:100% !important; float:none !important; clear:both !important; margin:22px 0 !important; }
.dfb-dp-inject-social { color:var(--dfb-mut); font-size:.85rem; margin:.2rem 0 0; }
.dfb-dp-inject-doglist { display:flex; flex-wrap:wrap; gap:8px; margin:.4rem 0; }
.dfb-dp-verified { color:#1a7f4b; font-size:.82rem; font-weight:600; margin:.4rem 0 0; }

/* signin */
.dfb-dp-signin p { margin:.4rem 0; }

/* stool scale */
.dfb-dp-scale { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin:.4rem 0; }
.dfb-dp-scale-btn { display:flex; flex-direction:column; align-items:center; gap:2px; border:1px solid var(--dfb-line); border-radius:8px; padding:.5rem .2rem; cursor:pointer; background:#fff; }
.dfb-dp-scale-btn small { font-size:.6rem; color:var(--dfb-mut); text-align:center; }
.dfb-dp-scale-btn.on { border-color:var(--dfb-accent); background:#eef4fb; }

/* calculator */
.dfb-dp-calc-out { display:flex; gap:14px; flex-wrap:wrap; margin-top:14px; border-top:1px solid var(--dfb-line); padding-top:14px; }
.dfb-dp-calc-result { background:#f7f8fa; border-radius:10px; padding:.7rem 1.1rem; text-align:center; }
.dfb-dp-calc-result strong { display:block; font-size:1.6rem; }
.dfb-dp-calc-result span { font-size:.72rem; color:var(--dfb-mut); text-transform:uppercase; }

/* modal */
.dfb-dp-modal-back { position:fixed; inset:0; background:rgba(15,20,25,.5); display:flex; align-items:center; justify-content:center; z-index:99999; padding:16px; }
.dfb-dp-modal { background:#fff; border-radius:14px; width:100%; max-width:460px; max-height:90vh; overflow:auto; padding:0; }
.dfb-dp-modal-head { display:flex; align-items:center; justify-content:space-between; padding:14px 18px; border-bottom:1px solid var(--dfb-line); }
.dfb-dp-modal-body { padding:18px; }

@media (max-width:600px){
	.dfb-dp-scale { grid-template-columns:repeat(4,1fr); }
	.dfb-dp-stats { flex-wrap:wrap; }
}
