/* The client report: shown on the Report tab and printed to PDF. Same tokens as the dashboard. */
.report { --pw: 8.5in; --ph: 11in; --px: .6in; --pt: .55in; --pb: .85in; color: var(--ink); font: 400 10.5pt/1.5 var(--serif); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.report.paper-a4 { --pw: 210mm; --ph: 297mm; }
.report * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.report .lab { display: block; font: 500 6.6pt/1.3 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-2); }
.report h1, .report h2, .report h3 { font-family: var(--display); font-weight: 400; text-transform: uppercase; line-height: .98; margin: 0; }
.report .script { font-family: var(--script); text-transform: none; color: var(--pink); -webkit-text-stroke: .1em var(--ink); paint-order: stroke fill; }
.report p { margin: 0; }
.report img { max-width: none; }

.sheet { position: relative; width: var(--pw); min-height: var(--ph); padding: var(--pt) var(--px) var(--pb); background: var(--bg); overflow: hidden; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
.preview .sheet { margin: 0 auto 1.4rem; border: 1px solid color-mix(in srgb, var(--ink) 25%, transparent); box-shadow: 4px 4px 0 color-mix(in srgb, var(--ink) 25%, transparent); }
.preview .sheet:last-child { margin-bottom: 0; }

/* Footers: one per sheet on screen, one repeating footer when printed */
.r-foot { display: flex; align-items: center; gap: .14in; font: 500 6.4pt/1.2 var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--ink-2); border-top: 1px solid var(--ink); padding-top: .1in; }
.r-foot img { width: .62in; height: auto; }
.r-foot span:last-child { margin-left: auto; }
.r-foot-sheet { position: absolute; left: var(--px); right: var(--px); bottom: .32in; }
.r-foot-fixed { display: none; }

/* Page 1 */
.r-band { position: relative; margin: calc(var(--pt) * -1) calc(var(--px) * -1) 0; background: var(--pink); border-bottom: 1.5px solid var(--ink); height: 1.25in; display: grid; place-items: center; }
.r-logo { width: 2.9in; height: auto; }
.r-st { position: absolute; height: auto; }
.r-st.st1 { width: .62in; left: .7in; top: .3in; transform: rotate(-10deg); }
.r-st.st2 { width: .72in; right: .7in; top: .26in; transform: rotate(9deg); }
.r-tape { display: flex; justify-content: center; overflow: hidden; white-space: nowrap; margin: 0 calc(var(--px) * -1); background: var(--butter); border-bottom: 1.5px solid var(--ink); }
.r-tape span { padding: .07in .16in; font: 500 6.4pt/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; }
.r-tape span::after { content: "✦"; margin-left: .32in; }
.r-hero { text-align: center; padding: .34in 0 .22in; }
.r-kick { font: 500 7pt/1 var(--mono); letter-spacing: .2em; text-transform: uppercase; color: var(--ink-2); }
.r-title { font-size: 42pt; margin-top: .1in; }
.r-title .script { font-size: .78em; margin-left: .04in; }
.r-name { font: 400 25pt/1.1 var(--serif); margin-top: .06in; overflow-wrap: anywhere; }
.r-meta { font: 500 7.4pt/1.3 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); margin-top: .1in; }
.r-goal { display: inline-flex; align-items: center; gap: .12in; margin-top: .2in; max-width: 6in; padding: .08in .2in .08in .1in; border: 1.5px solid var(--ink); border-radius: 999px; background: var(--surface); text-align: left; }
.r-goal .lab { flex: none; padding: .06in .12in; border-radius: 999px; background: var(--mint); border: 1px solid var(--ink); color: var(--ink); }
.r-goal p { font-size: 10pt; line-height: 1.3; }

.r-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: .14in; margin-top: .12in; }
.r-stat { border: 1.5px solid var(--ink); border-radius: .16in; padding: .13in .14in .12in; box-shadow: 2.5px 2.5px 0 var(--ink); }
.r-stat b { display: block; font: 400 17pt/1.1 var(--display); margin: .05in 0 .03in; white-space: nowrap; }
.r-stat small { display: block; font: 400 7.6pt/1.3 var(--serif); }
.r-stat .lab { color: var(--ink); }
.report .bg-pink { background: var(--pink); } .report .bg-butter { background: var(--butter); } .report .bg-sky { background: var(--sky); } .report .bg-mint { background: var(--mint); } .report .bg-orange { background: var(--orange); }

.r-charts { display: grid; grid-template-columns: 1fr 1fr; gap: .16in; margin-top: .22in; }
.r-card { border: 1.5px solid var(--ink); border-radius: .18in; background: var(--surface); padding: .16in .18in .18in; break-inside: avoid; }
.r-card h2 { font-size: 15pt; margin: .04in 0 .1in; }
.r-chart { display: grid; justify-items: center; gap: .12in; }
.r-chart .donut { width: 2.1in; height: 2.1in; }
.r-chart .legend { width: 100%; }
.r-note { font-size: 7.6pt; color: var(--ink-2); margin-top: .08in; text-align: center; }

/* Charts + legend (shared with the dashboard) */
.donut .sl { font: 500 11px/1 var(--mono); text-anchor: middle; dominant-baseline: central; fill: var(--ink); }
.donut .cb { font: 400 19px/1 var(--display); text-anchor: middle; dominant-baseline: central; fill: var(--ink); }
.donut .cs { font: 500 8.5px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; text-anchor: middle; dominant-baseline: central; fill: var(--ink-2); }
.legend { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.legend li { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto 52px; gap: .5rem; align-items: center; font-size: .9rem; padding-bottom: .28rem; border-bottom: 1px dashed color-mix(in srgb, var(--ink) 28%, transparent); }
.legend li:last-child { border-bottom: 0; }
.legend i { width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--ink); }
.legend .lg-v, .legend .lg-p { font: 500 .8rem/1 var(--mono); text-align: right; white-space: nowrap; }
.legend .lg-p { color: var(--ink-2); }
.report .legend { gap: .04in; }
.report .legend li { grid-template-columns: .13in minmax(0, 1fr) auto .45in; gap: .07in; font-size: 8.4pt; padding-bottom: .035in; }
.report .legend i { width: .13in; height: .13in; border-radius: .03in; }
.report .legend .lg-v, .report .legend .lg-p { font-size: 7.6pt; }

/* Page 2 */
.r-h2 { font-size: 28pt; margin: .06in 0 .18in; }
.r-flags { border: 1.5px solid var(--ink); border-radius: .16in; background: var(--orange-soft); padding: .14in .18in; margin-bottom: .2in; break-inside: avoid; }
.r-flags.ok { background: var(--mint-soft); }
.r-flags h3 { display: flex; align-items: center; gap: .1in; font-size: 11pt; margin-bottom: .08in; }
.r-flags h3 img { width: .36in; height: auto; }
.r-flags ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .06in .2in; }
.r-flags li { display: grid; gap: .01in; padding-left: .16in; position: relative; font-size: 8.4pt; line-height: 1.35; }
.r-flags li::before { content: ""; position: absolute; left: 0; top: .045in; width: .08in; height: .08in; border-radius: 50%; background: var(--orange); border: 1px solid var(--ink); }
.r-flags li b { font: 500 7pt/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }

/* Breakdown table (shared with the dashboard) */
.r-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .9rem; }
.r-table th, .r-table td { padding: .42rem .55rem; text-align: left; vertical-align: middle; }
.r-table thead th { font: 500 .6rem/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-2); border-bottom: 1.5px solid var(--ink); padding-bottom: .5rem; }
.r-table .n { text-align: right; font-family: var(--mono); font-weight: 500; font-size: .84rem; white-space: nowrap; }
.r-table thead .n, .r-table thead .rec { text-align: right; }
.r-table .rec { text-align: right; font: 500 .74rem/1.2 var(--mono); white-space: nowrap; }
.r-table tr.g th, .r-table tr.g td { border-top: 1.5px solid var(--ink); border-bottom: 1px solid var(--ink); padding-top: .5rem; padding-bottom: .5rem; }
.r-table tbody:first-of-type tr.g th, .r-table tbody:first-of-type tr.g td { border-top: 0; }
.r-table tr.g th { font: 400 .95rem/1.1 var(--display); text-transform: uppercase; }
.r-table tr.g-pink > * { background: var(--pink-soft); } .r-table tr.g-butter > * { background: #FFF6CC; } .r-table tr.g-orange > * { background: var(--orange-soft); } .r-table tr.g-mint > * { background: var(--mint-soft); }
.r-table tr.g.is-flag > * { background: var(--orange); }
.r-table .sw { display: inline-block; width: 12px; height: 12px; border-radius: 3px; border: 1px solid var(--ink); margin-right: .45rem; vertical-align: -1px; }
.r-table .v { display: block; font-size: .6rem; letter-spacing: .08em; text-transform: uppercase; margin-top: .15rem; }
.warn-dot { display: inline-grid; place-items: center; width: 13px; height: 13px; border-radius: 50%; background: var(--ink); color: var(--orange); font: 700 9px/1 var(--mono); margin-right: .25rem; vertical-align: -2px; }
.r-table td.nm { padding-left: 1.6rem; border-bottom: 1px dashed color-mix(in srgb, var(--ink) 22%, transparent); }
.r-table tbody tr:not(.g) td { border-bottom: 1px dashed color-mix(in srgb, var(--ink) 22%, transparent); }
.r-table tbody tr:last-child td { border-bottom: 0; }
.r-table .bal { font: 500 .66rem/1 var(--mono); color: var(--ink-2); margin-left: .3rem; white-space: nowrap; }
.r-table td.bar { width: 22%; }
.r-table td.bar span { display: block; height: 10px; border-radius: 5px; border: 1px solid var(--ink); min-width: 12px; margin-left: auto; }
.r-table tfoot th, .r-table tfoot td { border-top: 1.5px solid var(--ink); font: 400 .95rem/1.2 var(--display); text-transform: uppercase; padding-top: .55rem; }
.r-table tfoot .n { font: 400 .95rem/1.2 var(--display); }
.r-table tfoot tr + tr th, .r-table tfoot tr + tr td { border-top: 0; padding-top: .2rem; }
.r-table tfoot tr.neg > * { color: #A0280F; }

.report .r-table { font-size: 8.6pt; }
.report .r-table th, .report .r-table td { padding: .045in .08in; }
.report .r-table thead th { font-size: 6.2pt; padding-bottom: .06in; }
.report .r-table .n { font-size: 8pt; }
.report .r-table .rec { font-size: 7.4pt; }
.report .r-table tr.g th { font-size: 9.6pt; }
.report .r-table tr.g th, .report .r-table tr.g td { padding-top: .06in; padding-bottom: .06in; }
.report .r-table .v { font-size: 5.8pt; }
.report .r-table td.nm { padding-left: .28in; }
.report .r-table td.bar span { height: .09in; }
.report .r-table tfoot th, .report .r-table tfoot td, .report .r-table tfoot .n { font-size: 9.6pt; }
.report .r-table tbody { break-inside: avoid; }

.r-weekly { display: grid; grid-template-columns: 1.05fr 1fr; gap: .2in; margin: .06in 0 .24in; border: 1.5px solid var(--ink); border-radius: .18in; background: var(--butter); padding: .16in .2in; box-shadow: 3px 3px 0 var(--ink); break-inside: avoid; position: relative; }
.r-weekly .w-big { font: 400 28pt/1 var(--display); margin: .08in 0 .08in; }
.r-weekly .w-big small { font: 500 8pt/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; margin-left: .06in; }
.r-weekly .w-sub { font-size: 9pt; line-height: 1.45; max-width: 3.2in; }
.r-weekly .w-st { position: absolute; width: .7in; height: auto; left: 3.05in; top: -.4in; transform: rotate(10deg); }
.w-list { list-style: none; margin: 0; padding: .08in .14in; display: grid; align-content: start; background: var(--surface); border: 1.5px solid var(--ink); border-radius: .14in; }
.w-list li { display: flex; justify-content: space-between; gap: .12in; padding: .03in 0; border-bottom: 1px dashed color-mix(in srgb, var(--ink) 28%, transparent); font-size: 9pt; }
.w-list li:last-child { border-bottom: 0; }
.w-list b { font: 500 8.6pt/1.3 var(--mono); white-space: nowrap; }

/* Page 3 */
.r-h3 { font-size: 15pt; margin: 0 0 .1in; }
.r-closing .sig .script, .r-band .script { color: var(--surface); }
.r-advice { list-style: none; margin: 0; padding: 0; display: grid; gap: .11in; }
.r-advice li { display: grid; grid-template-columns: .44in 1fr; gap: .14in; padding: .12in .18in; border: 1.5px solid var(--ink); border-radius: .16in; break-inside: avoid; }
.r-advice li.a-pink { background: var(--pink-soft); } .r-advice li.a-butter { background: #FFF6CC; } .r-advice li.a-sky { background: #DDEAF5; } .r-advice li.a-mint { background: var(--mint-soft); }
.r-advice .a-n { display: grid; place-items: center; width: .44in; height: .44in; border-radius: 50%; border: 1.5px solid var(--ink); font: 400 12pt/1 var(--display); background: var(--surface); }
.r-advice li.a-pink .a-n { background: var(--pink); } .r-advice li.a-butter .a-n { background: var(--butter); } .r-advice li.a-sky .a-n { background: var(--sky); } .r-advice li.a-mint .a-n { background: var(--mint); }
.r-advice h3 { font-size: 11.5pt; margin: .03in 0 .06in; line-height: 1.1; }
.r-advice p { font-size: 9.3pt; line-height: 1.45; }
.r-advice p + p { margin-top: .06in; }
.r-closing { position: relative; margin-top: .2in; padding: .18in .24in; border: 1.5px solid var(--ink); border-radius: .18in; background: var(--pink); box-shadow: 3px 3px 0 var(--ink); break-inside: avoid; }
.r-closing p { font-size: 10pt; line-height: 1.5; max-width: 5.2in; }
.r-iconic { position: absolute; width: 1.15in; height: auto; right: .25in; top: .2in; transform: rotate(-6deg); }
.r-closing p + p { margin-top: .08in; }
.r-closing .sig { margin-top: .14in; font: 500 7.6pt/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.r-closing .sig .script { font-size: 20pt; letter-spacing: 0; margin-left: .06in; vertical-align: -.04in; }
.r-gogirl { position: absolute; width: 1.3in; height: auto; right: -.14in; bottom: -.24in; transform: rotate(-7deg); }
.r-end { display: flex; align-items: center; gap: .2in; margin-top: .3in; break-inside: avoid; }
.r-end img { width: 1.5in; height: auto; transform: rotate(-4deg); }
.r-end p { font: 400 13pt/1.3 var(--serif); }
.report .muted { color: var(--ink-2); }

@media print {
  .report .sheet { width: auto; min-height: 0; break-after: page; margin: 0; border: 0; box-shadow: none; }
  .report .sheet:last-of-type { break-after: auto; }
  .report .r-foot-sheet { display: none; }
  .report .r-foot-fixed { display: flex; z-index: 10; background: var(--bg); position: fixed; left: var(--px); right: var(--px); bottom: .32in; }
  .report .s1 { height: var(--ph); }
}
