/* The agent product (a brief) on screen and in print. Fonts and colours are the reading design's
   tokens (ai-reading.css, generated from functions/_shared/ai-tokens.js): Cambria, then the
   self-hosted Caladea, on warm paper. The body, heading, table and list look is INLINE in
   functions/_shared/agent-products.js so the emailed copy matches; this file keeps only what email
   cannot carry (scrolling, the pinned first column, the swipe line, the measure, print). */
.jag-product{box-sizing:border-box;max-width:1060px;margin:0 auto;text-align:left;color-scheme:light;background:var(--ai-surface,#fffdf9);font-family:var(--ai-serif,Cambria,Caladea,Georgia,'Times New Roman',serif)!important;border:0;padding:0}
.jag-product *{box-sizing:border-box}
.jag-product :is(h1,h2,h3,.jag-product-deck){font-family:var(--ai-serif,Cambria,Caladea,Georgia,'Times New Roman',serif)!important}
.jag-product .jag-product-strip img{display:block;width:100%;height:auto}
.jag-product .jag-product-paper{background:var(--ai-surface,#fffdf9)}
.jag-product a{color:var(--ai-link,#9a4523)}
.jag-product :is(.jag-product-kicker,.jag-product-status,.jag-product-footer,.jag-product-number,.jag-product-meta,.jag-product-note,.jag-product-status-label,.jag-product-brandline-text){font-family:var(--ai-sans,Inter,'Segoe UI',Arial,sans-serif)!important}
.jag-product .jag-product-kicker-rule{color:var(--ai-rule-strong,#cdbfae);padding:0 9px}
.jag-product .jag-product-body{background:var(--ai-surface,#fffdf9)}
/* A comfortable line: prose stops at about 72 characters; tables and boxes keep the full width. */
.jag-product .jag-product-body>:is(p,ul,ol,blockquote,.jag-product-tasks){max-width:72ch}
.jag-product .jag-product-heading{break-after:avoid-page}
.jag-product .jag-product-table-wrap{position:relative;overflow-x:auto;-webkit-overflow-scrolling:touch;outline-offset:4px;border:1px solid var(--ai-rule,#e4dbcf);border-radius:6px}
.jag-product .jag-product-table{min-width:0}
.jag-product .jag-product-table :is(th,td){min-width:7em;max-width:22em}
.jag-product .jag-product-table .jag-product-num{min-width:0;font-variant-numeric:tabular-nums lining-nums}
/* The first column names the row; it stays on screen while the rest of a wide table scrolls. Each
   cell already paints its own background inline, so the pinned cell covers what slides under it. */
.jag-product .jag-product-table :is(th,td):first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 0 var(--ai-rule,#e4dbcf)}
.jag-product .jag-product-table tbody tr{break-inside:avoid}
.jag-product .jag-product-task{break-inside:avoid}
.jag-product .jag-product-task>span{margin-right:8px}
.jag-product .jag-product-code{max-height:none}
/* A chart scrolls sideways on a phone rather than shrinking its 12.5px labels to nothing. */
.jag-product .jag-product-chart{overflow-x:auto;break-inside:avoid}
.jag-product .jag-product-chart svg{min-width:520px}
.jag-product code{overflow-wrap:anywhere}
.jag-product .jag-product-footer{display:block}
.jag-product .jag-product-footer-logos{display:block;width:200px;max-width:60%;height:auto}
.ag-run-result .jag-product{box-shadow:0 8px 30px rgba(31,26,23,.07);border-radius:0;max-height:none;overflow:visible}
.jag-product-print-frame{position:fixed;width:1px;height:1px;left:-10000px;top:0;border:0}
#jag-print-root{display:none}
@media(max-width:600px){
.jag-product .jag-product-paper{padding:20px 16px 24px!important}
.jag-product h1{font-size:28px!important}
.jag-product .jag-product-deck{font-size:17px!important}
.jag-product .jag-product-brandline img{width:100%!important;height:auto}
.jag-product .jag-product-body>p:first-child{font-size:16px!important;padding-left:12px!important}
.jag-product .jag-product-heading{font-size:20px!important}
.jag-product .jag-product-meta td:first-child{width:96px!important}
/* A wide table (four columns or more) says it scrolls. Email never shows this line. */
.jag-product .jag-product-table-wide::after{content:'Swipe for more \2192';position:sticky;left:0;display:block;padding:6px 12px;text-align:right;font:600 12.5px/1.4 var(--ai-sans,Inter,'Segoe UI',Arial,sans-serif);color:var(--ai-ink-3,#6b625b);background:var(--ai-paper,#fbf7f0);border-top:1px solid var(--ai-rule,#e4dbcf)}
}
/* Print is a CARBON COPY of the screen (owner ask 2026-10-20): the same paper tone, fonts, sizes,
   colours, table frames and closing logos. The page is the paper, so the warm tone runs edge to edge,
   and the whole brief is scaled down as one piece (zoom) instead of being re-set in printer sizes — a
   second set of sizes is a second design, and it drifted from the screen the first time it existed.
   Only what paper genuinely cannot do changes: nothing scrolls, nothing is pinned, and a row, box,
   chart or heading is never split across a page. */
@page jag-product-page{size:Letter;margin:11mm 6mm 13mm;background:#fffdf9;
@bottom-left{content:"J. A. Green & Company \B7  Pulse";font:7.5pt Inter,'Segoe UI',Arial,sans-serif;color:#6b625b;padding-left:9mm}
@bottom-right{content:"Page " counter(page) " of " counter(pages);font:7.5pt Inter,'Segoe UI',Arial,sans-serif;color:#6b625b;padding-right:9mm}}
@media print{
html,body.jag-product-print-document{background:#fffdf9!important;margin:0!important;padding:0!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
/* The browser's own Print command (Ctrl+P) with a brief open: print the mounted copy, not the dialog. */
body:has(#jag-print-root)>*:not(#jag-print-root){display:none!important}
#jag-print-root{display:block;margin:0;padding:0;background:#fffdf9}
/* zoom with an auto width: the brief lays out at its desktop width (about 1030px on Letter, close to its width on screen) and lands
   exactly on the page, on Letter or A4 alike. A fixed pixel width would clip on a narrower sheet. */
.jag-product{page:jag-product-page;zoom:.75;width:auto!important;max-width:none!important;margin:0!important;box-shadow:none!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}
/* The paper's own top and bottom padding sit inside the page margins already. */
.jag-product .jag-product-paper{padding-top:14px!important;padding-bottom:10px!important}
/* Paper cannot scroll: a table shows every column, and the pinned first column becomes an ordinary one
   (its divider line stays, as on screen). Cells keep their screen sizes. */
.jag-product .jag-product-table-wrap{overflow:visible!important}
.jag-product .jag-product-table :is(th,td):first-child{position:static}
.jag-product .jag-product-table :is(th,td){max-width:none}
.jag-product .jag-product-table-wide::after{display:none!important}
.jag-product .jag-product-chart{overflow:visible}
/* A word is never cut in half (part numbers used to break as "PE 06042 / 34N"). */
.jag-product .jag-product-table :is(th,td){word-break:normal!important;overflow-wrap:break-word!important;hyphens:manual!important}
/* Page breaks: headings stay with what follows, and nothing small is split. */
.jag-product-header{break-inside:avoid}
.jag-product .jag-product-brandline{break-after:avoid}
.jag-product p{orphans:3;widows:3}
.jag-product thead{display:table-header-group}
.jag-product .jag-product-table-wrap{break-inside:auto}
.jag-product .jag-product-table thead th{break-after:avoid}
.jag-product .jag-product-table tr{break-inside:avoid}
.jag-product :is(blockquote,.jag-product-box,.jag-product-note,.jag-product-chart,.jag-product-task){break-inside:avoid}
.jag-product .jag-product-chart figcaption,.jag-product .jag-product-note{break-after:avoid}
.jag-product .jag-product-heading+:is(p,ul,ol,.jag-product-table-wrap,.jag-product-chart){break-before:avoid}
/* The closing logos travel with the last lines of the brief rather than alone onto a blank page. */
.jag-product .jag-product-footer{break-before:avoid;break-inside:avoid}
}
