
.pfp-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:18px; }
.pfp-eyebrow{ font-size:0.65rem; font-weight:800; letter-spacing:0.16em; text-transform:uppercase; color:#7d9e77; margin-bottom:6px; }
.pfp-title{ font-family:Georgia,serif; font-size:clamp(1.5rem,3.2vw,1.9rem); font-weight:700; color:#243447; line-height:1.12; margin:0 0 6px; }
.pfp-sub{ font-size:0.86rem; color:#6a7a8a; margin:0; max-width:520px; line-height:1.55; }
.pfp-count{ font-size:0.74rem; font-weight:800; color:#4a7a4e; background:rgba(125,164,126,0.15); border:1px solid rgba(125,164,126,0.3); border-radius:999px; padding:6px 13px; white-space:nowrap; }
.pfp-week{ background:#f6f9f5; border:1px solid #e8efe6; border-radius:18px; padding:16px 16px 13px; margin-bottom:18px; }
.pfp-week-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.pfp-week-label{ font-size:0.7rem; font-weight:800; letter-spacing:0.1em; text-transform:uppercase; color:#5a6659; }
.pfp-week-total{ font-size:0.78rem; font-weight:800; color:#4a7a4e; }
.pfp-week-row{ display:grid; grid-template-columns:repeat(7,1fr); gap:7px; align-items:end; }
.pfp-day{ display:flex; flex-direction:column; align-items:center; gap:5px; }
.pfp-day-count{ font-size:0.72rem; font-weight:800; color:#4a7a4e; height:14px; }
.pfp-day-track{ width:100%; max-width:30px; height:54px; background:#e8efe6; border-radius:8px; display:flex; align-items:flex-end; overflow:hidden; }
.pfp-day-fill{ width:100%; background:linear-gradient(180deg,#7d9e77,#4a7a4e); border-radius:8px 8px 0 0; transition:height .4s; }
.pfp-day-label{ font-size:0.66rem; font-weight:700; color:#9aa89a; }
.pfp-day-today .pfp-day-label{ color:#243447; }
.pfp-day-today .pfp-day-track{ box-shadow:0 0 0 2px rgba(125,164,126,0.5); }
.pfp-list{ display:flex; flex-direction:column; gap:10px; }
.pfp-entry{ display:flex; align-items:center; gap:12px; background:#fff; border:1px solid #eaeef0; border-radius:14px; padding:12px 14px; cursor:pointer; transition:all .18s; }
.pfp-entry:hover{ border-color:#c2d2bd; box-shadow:0 4px 16px rgba(36,52,71,0.06); }
.pfp-entry-icon{ width:40px; height:40px; border-radius:11px; background:rgba(125,164,126,0.14); display:flex; align-items:center; justify-content:center; font-size:1.35rem; flex-shrink:0; }
.pfp-entry-info{ flex:1; min-width:0; }
.pfp-entry-name{ font-size:0.9rem; font-weight:700; color:#243447; margin-bottom:6px; }
.pfp-pbar{ height:7px; border-radius:50px; background:#eef2ec; overflow:hidden; }
.pfp-pbar-fill{ height:100%; border-radius:50px; background:linear-gradient(90deg,#7d9e77,#4a7a4e); transition:width .35s; }
.pfp-entry-count{ font-size:0.78rem; font-weight:800; color:#4a7a4e; white-space:nowrap; flex-shrink:0; }
.pfp-empty{ text-align:center; padding:22px 18px; color:#6a7a8a; font-size:0.88rem; line-height:1.55; }
.pfp-empty b{ color:#4a7a4e; }
.pfp-continue{ margin-top:16px; width:100%; background:#243447; color:#fff; border:none; border-radius:14px; padding:13px; font-size:0.9rem; font-weight:800; cursor:pointer; font-family:inherit; transition:all .2s; }
.pfp-continue:hover{ background:#1a2735; }
