.diagnosis-recovered-group { margin-top:12px; border:1px solid #dce3e7; border-radius:12px; background:#f6f8f9; }
.diagnosis-recovered-group>summary { padding:12px; color:#5b6d76; font-weight:750; cursor:pointer; }
.diagnosis-recovered-group .diagnosis-row { margin:0 8px 8px; }
.diagnosis-photo-section { border-top:1px solid #e2e8f0; margin-top:22px; padding-top:16px; }
.diagnosis-photo-section h4 { margin:0 0 12px; }
.diagnosis-photo-section [hidden] { display:none!important; }
#diagnosisPhotoActions { padding:0; margin:8px 0 0; border:0; min-width:0; }
.diagnosis-photo-tools { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:14px 0; font-size:.8rem; }
.diagnosis-photo-tools select { width:auto; max-width:100%; padding:7px; }
#diagnosisPhotoList,#diagnosisPhotoQueue { display:grid; gap:12px; }
.diagnosis-photo-card,.diagnosis-photo-draft { border:1px solid #dbe5ea; background:#f8fbfa; border-radius:14px; padding:12px; min-width:0; }
.diagnosis-photo-card time { font-weight:800; font-size:.82rem; color:#3c6c60; }
.diagnosis-photo-card p { font-size:.88rem; white-space:pre-wrap; overflow-wrap:anywhere; margin:10px 0; }
.diagnosis-photo-preview { display:block; width:100%; padding:0; margin-top:8px; overflow:hidden; min-height:80px; }
.diagnosis-photo-preview img { display:block; width:100%; max-height:220px; object-fit:contain; background:#edf2ef; }
.diagnosis-photo-draft { display:grid; gap:10px; grid-template-columns:72px minmax(0,1fr); align-items:start; }
.diagnosis-photo-draft img { width:72px; height:80px; object-fit:cover; border-radius:8px; }
.diagnosis-photo-draft label { min-width:0; font-size:.78rem; }
.diagnosis-photo-draft textarea { display:block; margin-top:5px; width:100%; min-height:62px!important; box-sizing:border-box; }
.diagnosis-photo-draft>button { grid-column:2; justify-self:start; }
#diagnosisPhotoSave { width:100%; margin:12px 0; }
#diagnosisCamera { background:#162523; padding:8px; border-radius:12px; margin:12px 0; }
#diagnosisCameraVideo { width:100%; max-height:35vh; }
#diagnosisPhotoViewer { margin-top:12px; border:2px solid #6ba998; border-radius:12px; padding:10px; }
#diagnosisPhotoFull { width:100%; max-height:70vh; object-fit:contain; }
#diagnosisPhotoFullCaption { white-space:pre-wrap; overflow-wrap:anywhere; }
.success-rate-box { cursor:pointer; font-family:inherit; appearance:none; }
.success-rate-box:focus-visible { outline:2px solid #24774e; outline-offset:3px; }
.sobriety-rate-card { padding:20px; border-radius:18px; background:#f0faf5; border:1px solid #d4e9dd; margin:16px 0; }
.sobriety-rate-headline { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; margin-top:6px; font-variant-numeric:tabular-nums; }
.sobriety-rate-number { font-size:clamp(1.8rem,8vw,2.5rem); font-weight:900; color:#23764c; line-height:1.25; white-space:nowrap; }
.sobriety-rate-change { font-size:clamp(.68rem,2.5vw,.8rem); font-weight:700; color:#61736b; white-space:nowrap; }
.sobriety-rate-change[data-direction="up"] { color:#23764c; }
.sobriety-rate-change[data-direction="down"] { color:#a44b32; }
.sobriety-rate-bar { display:flex; height:20px; border-radius:12px; overflow:hidden; background:#ecaa91; margin:16px 0 10px; }
.sobriety-rate-bar>span { background-color:#2e956c; background-image:linear-gradient(135deg,#ffffff30 25%,transparent 25%,transparent 50%,#ffffff30 50%,#ffffff30 75%,transparent 75%,transparent); background-size:28px 28px; animation:sobrietyStripeFlow 1.15s linear infinite; box-shadow:inset 0 1px 0 #ffffff30; }
@keyframes sobrietyStripeFlow { to { background-position:28px 0; } }
@media (prefers-reduced-motion:reduce) { .sobriety-rate-bar>span { animation:none; } }
.sobriety-rate-legend { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; font-size:.83rem; }
.sobriety-rate-legend span:first-child { color:#23764c; }.sobriety-rate-legend span:last-child { color:#9c4226; }
.sobriety-rate-formula { font-weight:800; line-height:1.8; overflow-wrap:anywhere; }
.sobriety-rate-facts { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; font-size:.85rem; }
.sobriety-rate-facts dt { color:#61736b; }.sobriety-rate-facts dd { margin:0; font-weight:750; text-align:right; }
#sobrietyRateModal .modal-content { max-width:500px; }
.sobriety-history,.sobriety-weekly { margin:22px 0; border-bottom:1px solid #e1e9e5; padding-bottom:18px; }
.sobriety-history h4,.sobriety-weekly h4 { margin:0 0 8px; color:#244d40; }
.sobriety-trend-tools { display:flex; gap:6px; margin:12px 0; }
.sobriety-trend-tools .health-btn { flex:1; padding:7px 4px; font-size:.78rem; }
.sobriety-trend-tools [aria-pressed="true"] { background:#e7f5ee; color:#1c704c; border-color:#5fa987; font-weight:800; }
.sobriety-trend-label { font-size:.76rem; color:#5e7469; margin-top:12px; }
.sobriety-trend-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin:8px 0 12px; }
.sobriety-series-all { --series-color:#23764c; }
.sobriety-series-30 { --series-color:#2463ba; }
.sobriety-series-60 { --series-color:#ac571b; }
.sobriety-series-90 { --series-color:#8650b7; }
.sobriety-trend-legend .health-btn { display:flex; align-items:center; justify-content:center; gap:6px; padding:8px 4px; font-size:.78rem; color:var(--series-color); border:1px solid currentColor; background:#fff; }
.sobriety-trend-legend [aria-pressed="false"] { opacity:.5; border-style:dashed; }
.sobriety-trend-legend svg { flex:none; }
.sobriety-trend-legend button:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.sobriety-reference-legend { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; margin:8px 0; }
.sobriety-reference-month { --reference-color:#9a7024; }
.sobriety-reference-week { --reference-color:#66788c; }
.sobriety-reference-week2 { --reference-color:#917273; }
.sobriety-reference-week3 { --reference-color:#777354; }
.sobriety-reference-legend .health-btn { display:flex; flex-wrap:wrap; align-items:center; justify-content:center; column-gap:5px; row-gap:2px; padding:8px 3px; color:var(--reference-color); border:1px dashed currentColor; background:#fffdf6; font-size:clamp(.67rem,2.65vw,.76rem); }
.sobriety-reference-legend svg { flex:none; width:22px; }
.sobriety-reference-legend :is(span,strong) { white-space:nowrap; }
.sobriety-reference-legend [aria-pressed="false"] { opacity:.55; background:#fff; }
.sobriety-reference-legend button:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.sobriety-reference-line { stroke:var(--reference-color); stroke-width:1.5; opacity:.8; }
.sobriety-reference-info { margin:8px 0 14px; color:#61736b; font-size:.74rem; line-height:1.65; }
.sobriety-reference-info>summary { cursor:pointer; font-weight:650; }
.sobriety-reference-info a { color:#346e59; text-underline-offset:3px; }
.sobriety-trend-chart { display:block; width:100%; height:auto; overflow:visible; cursor:crosshair; }
.sobriety-grid-line { stroke:#dfe9e4; stroke-width:1; }
.sobriety-axis-label { fill:#5e7469; font:13px sans-serif; }
.sobriety-trend-line { stroke:var(--series-color); stroke-width:2.5; }
.sobriety-trend-cursor { stroke:#81a792; stroke-dasharray:3 3; }
.sobriety-trend-point { fill:var(--series-color); stroke:#fff; stroke-width:2; }
.sobriety-trend-selection { display:flex; flex-wrap:wrap; align-items:center; gap:10px; background:#f0f8f4; border-radius:12px; padding:12px; }
.sobriety-trend-selection label { display:flex; align-items:center; gap:6px; font-size:.8rem; }
#sobrietyTrendDate { width:auto; min-width:0; max-width:155px; margin:0; padding:6px; font-size:.82rem; }
.sobriety-trend-selection output { display:grid; gap:8px; flex:1 1 100%; min-width:0; font-size:.75rem; color:#5e7469; }
.sobriety-trend-values { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.sobriety-trend-value { display:grid; align-content:start; gap:4px; background:#fff; border:1px solid #deebe3; border-top:3px solid var(--series-color); border-radius:8px; padding:9px; min-width:0; }
.sobriety-trend-value-label { color:var(--series-color); font-weight:800; }
.sobriety-trend-selection strong { font-size:1.15rem; color:var(--series-color); }
.sobriety-trend-value small { font-size:.66rem; line-height:1.5; overflow-wrap:anywhere; }
.sobriety-trend-value-range span { display:block; white-space:nowrap; }
#sobrietyTrendSlider { display:block; width:100%; padding:0; margin:14px 0 0; accent-color:#258c60; }
.sobriety-weekly-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:.8rem; }
.sobriety-weekly-table caption { text-align:left; color:#6b7d74; font-size:.74rem; margin-bottom:8px; }
.sobriety-weekly-table th,.sobriety-weekly-table td { padding:11px 4px; border-bottom:1px solid #e3ebe6; text-align:right; vertical-align:middle; }
.sobriety-weekly-table th:first-child { width:41%; text-align:left; }
.sobriety-weekly-table thead { background:#f2f7f4; color:#456553; }
.sobriety-weekly-table tbody th { font-weight:500; }
.sobriety-weekly-table tbody th>* { display:block; }
.sobriety-weekly-table small { color:#75837c; margin-top:4px; font-size:.68rem; }
.sobriety-weekly-table td:last-child { font-weight:850; color:#23764c; }
.sobriety-weekly>button { margin-top:12px; width:100%; }
