/* Body stats and reports pages (on top of site.css). */
.gate { text-align: center; padding-block: 80px 120px; }
.gate .ctas { justify-content: center; margin-top: 20px; }
.member-nav { display: flex; gap: 18px; flex-wrap: wrap; font-size: .9rem; }
.member-nav a { color: var(--dim); text-decoration: none; }
.member-nav a:hover, .member-nav a[aria-current] { color: var(--ink); }
.preview-banner { border: 1px dashed var(--gold); color: var(--gold); border-radius: 4px; padding: 10px 14px; font-size: .88rem; margin-bottom: 24px; }
.small { font-size: .85rem; }
.dim { color: var(--dim); }
.panel { border: 1px solid var(--line); border-radius: 6px; background: var(--panel); backdrop-filter: blur(3px); padding: 22px; display: grid; gap: 14px; align-content: start; min-width: 0; margin-bottom: 20px; }
.panel h3 { font-family: var(--font-display); font-weight: 400; font-size: 1.5rem; margin: 0; }
.panel p { margin: 0; }
.sub { font-family: var(--font-data); font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--gold); font-weight: 500; margin: 6px 0 0; }
.t-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 20px; align-items: start; }
.t-grid .panel { margin-bottom: 0; }
.t-grid + .panel { margin-top: 20px; }
.fgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 140px), 1fr)); gap: 10px; }
.panel label, .ctrl label { display: grid; gap: 4px; font-size: .74rem; color: var(--dim); font-family: var(--font-data); letter-spacing: .06em; text-transform: uppercase; }
.panel input:not([type=radio]):not([type=checkbox]), .panel select, .ctrl input, .ctrl select {
  font: .95rem var(--font-body); color: var(--ink); background: var(--sky); border: 1px solid var(--line); border-radius: 4px; padding: 8px 9px; width: 100%; min-width: 0; text-transform: none; letter-spacing: 0; }
.row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.formmsg { color: var(--gold); font-size: .85rem; }
fieldset.comp { border: 1px solid var(--line); border-radius: 4px; padding: 10px 12px 12px; margin: 0; display: grid; gap: 8px; }
fieldset.comp legend { font-family: var(--font-data); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); padding: 0 6px; }
.seg { display: flex; flex-wrap: wrap; gap: 14px; }
.seg label { display: flex; flex-direction: row; align-items: center; gap: 6px; font-family: var(--font-body); font-size: .9rem; text-transform: none; letter-spacing: 0; color: var(--ink); }
.seg input { accent-color: var(--gold); }
.est b { font-size: 1.4rem; font-weight: 500; font-variant-numeric: tabular-nums; }
.badge { font-family: var(--font-data); font-size: .64rem; letter-spacing: .08em; text-transform: uppercase; border-radius: 999px; padding: 1px 8px; border: 1px solid var(--line); color: var(--dim); white-space: nowrap; }
.est-badge { border-style: dashed; }
.clinic-badge { color: var(--gold); border-color: var(--gold); }
.note { color: var(--dim); font-size: .82rem; }
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); gap: 12px; margin-bottom: 20px; }
.tile { border: 1px solid var(--line); border-radius: 6px; padding: 14px 16px; background: var(--panel); display: grid; gap: 2px; align-content: start; }
.tile span { font-family: var(--font-data); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; color: var(--dim); }
.tile b { font-family: var(--font-display); font-weight: 400; font-size: 1.8rem; font-variant-numeric: tabular-nums; }
.tile small { color: var(--dim); font-size: .78rem; }
.tile .badge { justify-self: start; }
.scroll { overflow-x: auto; }
table.data { width: 100%; border-collapse: collapse; font-size: .88rem; font-variant-numeric: tabular-nums; }
table.data th, table.data td { text-align: left; padding: 8px 8px; border-bottom: 1px solid var(--line); white-space: nowrap; }
table.data th { color: var(--dim); font-weight: 500; font-family: var(--font-data); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.comp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 12px; }
.tip-text { text-transform: none; letter-spacing: 0; font-family: var(--font-body); font-size: .74rem; color: var(--dim); }
.readonly-note { margin-bottom: 16px; }
/* Reports */
.ctrl { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.ctrl > * { min-width: 0; }
.ctrl label { min-width: 130px; flex: 1 1 130px; max-width: 240px; }
.chart-box { position: relative; min-width: 0; }
.chart-box svg { width: 100%; height: auto; display: block; overflow: visible; }
.chart-box .grid line { stroke: var(--line); stroke-width: 1; }
.chart-box .axis text { fill: var(--dim); font: 11px var(--font-data); }
.chart-box .series { fill: none; stroke: var(--gold); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.chart-box .area { fill: rgba(242, 200, 121, .10); }
.chart-box .dot { fill: var(--gold); stroke: var(--sky); stroke-width: 2; }
.chart-box .dot.hollow { fill: var(--sky); stroke: var(--gold); }
.chart-box .cross { stroke: var(--dim); stroke-width: 1; stroke-dasharray: 3 3; }
.tip { position: absolute; pointer-events: none; background: var(--sky-2); border: 1px solid var(--line); border-radius: 4px; padding: 6px 9px; font-size: .8rem; white-space: nowrap; transform: translate(-50%, calc(-100% - 10px)); }
.tip b { font-variant-numeric: tabular-nums; }
.legend-note { font-size: .8rem; color: var(--dim); display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.legend-note i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--gold); vertical-align: -1px; margin-right: 4px; }
.legend-note i.fill { background: var(--gold); }
.charts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 20px; }
.empty { color: var(--dim); font-size: .9rem; padding: 30px 0; text-align: center; }
.footer-note { color: var(--dim); font-size: .8rem; border-top: 1px solid var(--line); padding-top: 14px; margin-top: 10px; }
@media (max-width: 820px) { .t-grid { grid-template-columns: 1fr; } }

.sumgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 20px; }
.toggles { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin: 6px 0 12px; }
.panel .toggle, .toggle { display: inline-flex; min-width: 0; max-width: none; flex: 0 0 auto; font-family: var(--font-body); text-transform: none; letter-spacing: 0; align-items: center; gap: 6px; font-size: .88rem; color: var(--dim); cursor: pointer; }
.panel .toggle input { width: auto; accent-color: var(--gold); margin: 0; }
.toggle i { width: 12px; height: 3px; border-radius: 2px; display: inline-block; }
h4.sub .unit { text-transform: none; letter-spacing: 0; color: var(--dim); font-weight: 400; }
#win-note { margin: 10px 0 0; }
[hidden] { display: none !important; }
.panel label { align-content: start; }
#circ { align-items: start; }
.panel textarea { font: 1rem var(--font-body); color: var(--ink); background: var(--sky); border: 1px solid var(--line); border-radius: 4px; padding: 10px; width: 100%; resize: vertical; text-transform: none; letter-spacing: 0; }
.panel .consent-line { display: flex; gap: 10px; align-items: flex-start; font-family: var(--font-body); font-size: .9rem; text-transform: none; letter-spacing: 0; color: var(--ink); }
.panel .consent-line input { margin-top: 4px; accent-color: var(--gold); }
.vibe-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.mine-item { border-top: 1px solid var(--line); padding-top: 12px; }
.mine-item:first-child { border-top: 0; padding-top: 0; }
.mine-head { display: flex; gap: 8px; align-items: center; margin: 0 0 6px; }
.mine-body { margin: 0; color: var(--dim); white-space: pre-line; overflow-wrap: anywhere; }
.row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
@media (max-width: 820px) { .vibe-grid { grid-template-columns: 1fr; } }
.review-list { display: grid; gap: 14px; margin-top: 14px; }
.review .review-head { display: flex; flex-wrap: wrap; gap: 10px; align-items: baseline; }
.review .vname { font-family: var(--font-display); font-size: 1.4rem; color: var(--gold); }
.review .review-body { white-space: pre-line; overflow-wrap: anywhere; }
.review .reason { flex: 1 1 220px; font: .95rem var(--font-body); color: var(--ink); background: var(--sky); border: 1px solid var(--line); border-radius: 4px; padding: 9px 10px; min-width: 0; }
.contact-wrap { max-width: 680px; padding-bottom: 80px; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
