/* Full-page V2: working records, purchasing, and persistent navigation. */
html { scroll-padding-top:120px; }
.header-shell { position:sticky; top:0; z-index:50; }
.receiving-workspace,.record-detail { scroll-margin-top:120px; }
.document-viewport:focus-visible { outline-offset:-4px; }
.context-label { font-size:14px; font-weight:550; color:var(--color-secondary); margin-bottom:20px; }
.section-intro { display:grid; grid-template-columns:1.2fr .8fr; align-items:end; gap:64px; margin-bottom:40px; }
.section-intro h2 { font-size:48px; font-weight:550; line-height:1.12; letter-spacing:-2px; }
.section-intro>p { font-size:17px; line-height:1.75; color:var(--color-secondary); max-width:390px; justify-self:end; }
.hero-line-transfer { position:absolute; z-index:4; color:var(--color-text); background:var(--color-surface); border:1px solid var(--color-evidence); border-radius:var(--radius-small); padding:10px 14px; box-shadow:var(--shadow-panel); pointer-events:none; }
.hero-line-transfer>span { display:block; font-size:11px; color:var(--color-evidence); }
.hero-line-transfer strong { display:block; font:500 16px/1.5 var(--font-mono); }
.hero-line-transfer i { font-style:normal; color:var(--color-secondary); }
.hero-connector { position:absolute; inset:0; width:100%; height:100%; z-index:3; overflow:visible; pointer-events:none; }
.hero-connector path { fill:none; stroke:var(--color-evidence); stroke-width:2; stroke-dasharray:4 5; }
.motion-toggle { position:absolute; right:0; bottom:-22px; color:var(--color-inverse-secondary); background:var(--color-inverse); border:0; border-radius:var(--radius-control); padding:8px 12px; font-size:12px; min-height:44px; z-index:5; text-decoration:underline; text-underline-offset:4px; }
.motion-toggle:hover { color:var(--color-inverse-text); }
.motion-toggle:disabled { cursor:default; text-decoration:none; }
.hero-line-transfer { animation:line-transfer 16s ease-in-out infinite; }
.hero-connector { animation:line-connection 16s ease-in-out infinite; }
.hero-check { animation:check-emphasis 16s ease-in-out infinite; }
.hero-evidence .invoice-selected { animation:source-emphasis 16s ease-in-out infinite; }
.hero-evidence[data-motion=paused] * { animation-play-state:paused; }
@keyframes line-transfer { 0%,8%,88%,100% { opacity:0; transform:translateY(-5px); } 18%,68% { opacity:1; transform:translateY(0); } 80% { opacity:0; transform:translateY(10px); } }
@keyframes line-connection { 0%,27%,83%,100% { opacity:0; } 38%,68% { opacity:1; } 38% { stroke-dashoffset:35; } 68% { stroke-dashoffset:0; } }
@keyframes check-emphasis { 0%,42%,90%,100% { border-color:var(--color-border); } 54%,75% { border-color:var(--color-evidence); } }
@keyframes source-emphasis { 0%,80%,100% { outline-width:1px; } 12%,32% { outline-width:2px; } }
.manual-purchases { border-top:1px solid var(--color-border); }
.manual-shell,.history-shell { border:1px solid var(--color-border); border-radius:var(--radius-panel); overflow:hidden; background:var(--color-surface); }
.manual-toolbar { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:20px 28px; border-bottom:1px solid var(--color-border); }
.manual-toolbar>span { display:flex; align-items:center; gap:12px; font-size:14px; font-weight:550; }
.manual-toolbar svg { width:20px; height:20px; }
.manual-grid { display:grid; grid-template-columns:.85fr 1.15fr; }
.capture-panel { padding:32px; background:var(--color-subtle); border-right:1px solid var(--color-border); }
.capture-panel h3 { font-size:20px; font-weight:550; letter-spacing:-.5px; }
.panel-description { color:var(--color-secondary); font-size:14px; margin-top:8px; }
.product-stage { height:200px; display:flex; align-items:flex-end; justify-content:center; gap:24px; padding-bottom:18px; }
.water-case { width:180px; height:133px; background:var(--color-surface); border:1px solid var(--color-border-strong); padding:15px; position:relative; box-shadow:5px 6px 0 var(--color-border); }
.water-case::before { content:''; position:absolute; width:35px; height:14px; left:72px; top:-1px; background:var(--color-subtle); border-inline:1px solid var(--color-border); }
.water-case>span { display:block; font-size:20px; font-weight:650; line-height:1.05; letter-spacing:-.8px; }
.water-case>b { font-size:10px; font-weight:500; display:block; margin-top:8px; }
.case-barcode { height:20px; width:85px; margin-top:7px; }
.case-barcode svg,.can-barcode svg { width:100%; height:100%; fill:var(--color-text); }
.water-can { width:68px; height:118px; padding:20px 6px 8px; background:var(--color-evidence-soft); border:1px solid var(--color-border-strong); border-radius:12px 12px 15px 15px; text-align:center; position:relative; }
.water-can::before { content:''; position:absolute; top:4px; height:5px; border:1px solid var(--color-border-strong); border-radius:50%; left:6px; right:6px; }
.water-can>span { font-size:11px; font-weight:650; display:block; line-height:1.1; }
.water-can>b { display:block; font-size:8px; font-weight:400; margin-top:12px; }
.can-barcode { height:17px; margin-top:8px; }
.scan-actions { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.scan-actions .button { padding-inline:10px; font-size:14px; background:var(--color-surface); }
.scan-actions .scan-complete { border-color:var(--color-success); color:var(--color-success); background:var(--color-success-soft); }
.captured-codes { margin-block:20px; font-size:12px; }
.captured-codes>div { display:flex; justify-content:space-between; gap:12px; padding-block:6px; }
.captured-codes span { color:var(--color-secondary); }
.captured-codes b { font:400 12px var(--font-mono); }
.purchase-fields { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.purchase-fields label { font-size:14px; }
.purchase-fields input { width:100%; margin-top:8px; background:var(--color-surface); }
.unit-summary { display:flex; justify-content:space-between; align-items:center; margin-block:20px; gap:16px; font-size:13px; }
.unit-summary>span { color:var(--color-secondary); }
.unit-summary strong { font-size:22px; font-weight:550; }
.unit-summary small { font-size:12px; font-weight:400; }
#add-manual { width:100%; }
.sample-status { font-size:12px; color:var(--color-secondary); margin-top:12px; min-height:40px; }
.manual-invoice { padding:32px; min-width:0; }
.manual-invoice-heading { display:flex; justify-content:space-between; gap:20px; align-items:start; padding-bottom:28px; }
.manual-invoice-heading span:not(.badge) { color:var(--color-secondary); font-size:12px; }
.manual-invoice-heading h3 { font-size:28px; letter-spacing:-1px; font-weight:550; margin-block:8px; }
.manual-invoice-heading p { font-size:12px; color:var(--color-secondary); }
.invoice-columns,.manual-line { display:grid; grid-template-columns:1.2fr 1fr .7fr; gap:12px; }
.invoice-columns { color:var(--color-secondary); font-size:12px; padding-block:12px; border-block:1px solid var(--color-border); }
.invoice-columns>span:last-child,.manual-line>strong { text-align:right; }
.manual-line { padding-block:20px; border-bottom:1px solid var(--color-border); font-size:13px; }
.manual-line span,.manual-line code { display:block; font-size:11px; color:var(--color-secondary); margin-top:5px; }
.manual-line b,.manual-line strong { font-weight:550; }
.manual-line.new-line { animation:panel-enter var(--duration-standard) ease-out; }
.pending-invoice-line { min-height:100px; display:flex; gap:14px; align-items:center; border-bottom:1px dashed var(--color-border-strong); color:var(--color-secondary); font-size:13px; }
.pending-invoice-line p { font-size:12px; margin-top:6px; }
.pending-mark { font-size:25px; line-height:1; }
.manual-total { display:flex; justify-content:space-between; gap:24px; padding-block:24px; font-size:14px; align-items:center; }
.manual-total strong { font:500 26px var(--font-mono); }
.export-panel { border-top:1px solid var(--color-border); padding-top:24px; }
.export-panel>div { display:flex; align-items:center; gap:10px; }
.export-panel svg { width:20px; height:20px; }
.export-panel h4 { font-size:16px; font-weight:550; }
.export-panel p { color:var(--color-secondary); font-size:13px; margin-block:12px 20px; }
.export-panel .format-note { font-size:12px; margin-bottom:0; }
.cost-history { background:var(--color-subtle); border-block:1px solid var(--color-border); }
.history-shell { display:grid; grid-template-columns:1.4fr .8fr; }
.history-main { padding:32px; min-width:0; }
.history-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.history-heading h3 { font-size:22px; font-weight:550; letter-spacing:-.5px; }
.history-heading p { font-size:12px; color:var(--color-secondary); margin-top:8px; }
.history-chart { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:36px; }
.history-purchase { display:flex; align-items:center; flex-direction:column; min-width:0; border:1px solid transparent; background:transparent; padding:12px; border-radius:var(--radius-control); }
.history-purchase[aria-pressed=true] { background:var(--color-evidence-soft); border-color:var(--color-evidence); }
.history-purchase:hover { border-color:var(--color-border-strong); }
.history-purchase>strong { font:500 24px var(--font-mono); }
.bar-track { height:140px; width:100%; display:flex; align-items:end; margin-top:16px; border-bottom:1px solid var(--color-border-strong); }
.bar-track>span { display:block; background:var(--color-border-strong); width:100%; transition:height var(--duration-standard) ease; }
.history-purchase[aria-pressed=true] .bar-track>span { background:var(--color-evidence); }
.history-purchase>b { font-size:14px; font-weight:550; margin-top:16px; }
.history-purchase>small { font-size:12px; color:var(--color-secondary); margin-top:5px; }
.chart-helper { font-size:12px; color:var(--color-secondary); margin-top:16px; }
.cost-impact { margin-top:28px; padding-top:24px; border-top:1px solid var(--color-border); display:grid; grid-template-columns:.8fr 1.2fr; gap:24px; }
.cost-impact>strong { font-size:36px; font-weight:550; letter-spacing:-1.5px; }
.cost-impact>strong>span { display:block; font-size:13px; letter-spacing:0; font-weight:400; color:var(--color-secondary); margin-top:4px; }
.cost-impact>p { font-size:13px; line-height:1.8; color:var(--color-secondary); }
.cost-impact b { color:var(--color-text); font-weight:550; }
.purchase-source { padding:32px; border-left:1px solid var(--color-border); background:var(--color-page); }
.purchase-source h3 { font-size:24px; letter-spacing:-.7px; font-weight:550; }
.purchase-source>p:not(.context-label) { color:var(--color-secondary); font-size:12px; margin-top:12px; }
.purchase-source dl { margin-top:32px; }
.purchase-source dl>div { display:flex; justify-content:space-between; gap:16px; font-size:14px; padding-block:12px; border-bottom:1px solid var(--color-border); }
.purchase-source dt { color:var(--color-secondary); }
.purchase-source dd { font-weight:550; }
.source-equation { margin-top:32px; padding:20px; border:1px solid var(--color-border); background:var(--color-surface); border-radius:var(--radius-control); }
.source-equation>span { display:block; font-size:13px; color:var(--color-secondary); }
.source-equation strong { font-size:32px; font-weight:550; display:block; margin-top:8px; }
.source-equation small { font-size:13px; font-weight:400; }
.purchase-source .source-explanation { line-height:1.8; }
.owner-section { background:var(--color-inverse); }
.owner-section .context-label,.owner-section .section-intro>p { color:var(--color-inverse-secondary); }
.owner-shell { background:var(--color-surface); color:var(--color-text); border-radius:var(--radius-panel); border:1px solid var(--color-inverse-border); overflow:hidden; }
.owner-toolbar { display:flex; justify-content:space-between; align-items:center; padding:24px 32px; gap:24px; border-bottom:1px solid var(--color-border); }
.owner-toolbar>div { display:flex; gap:12px; align-items:center; }
.owner-toolbar h3 { font-size:18px; font-weight:550; }
.owner-toolbar select { background:var(--color-page); border:1px solid var(--color-border-strong); border-radius:var(--radius-control); min-height:44px; font-size:14px; padding:10px 12px; }
.owner-totals { display:grid; grid-template-columns:1fr 1.5fr 1fr; border-bottom:1px solid var(--color-border); padding:28px 32px; gap:32px; }
.owner-totals span { font-size:13px; color:var(--color-secondary); display:block; }
.owner-totals strong { display:block; font:500 36px/1.3 var(--font-mono); letter-spacing:-1.8px; margin-top:10px; }
.owner-content { display:grid; grid-template-columns:1.2fr 1fr; }
.owner-records { padding:28px 32px; }
.owner-list-heading { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-bottom:20px; }
.owner-list-heading h4 { font-size:14px; font-weight:550; }
.owner-list-heading>span { font-size:12px; color:var(--color-secondary); }
.owner-record { width:100%; display:flex; justify-content:space-between; gap:20px; padding:20px 14px; text-align:left; border:1px solid transparent; border-bottom-color:var(--color-border); background:var(--color-surface); border-radius:var(--radius-small); }
.owner-record[aria-pressed=true] { background:var(--color-evidence-soft); border-color:var(--color-evidence); }
.owner-record:hover { background:var(--color-subtle); }
.owner-record b,.owner-record strong { display:block; font-size:14px; font-weight:550; }
.owner-record small { display:block; font-size:12px; color:var(--color-secondary); margin-top:7px; }
.owner-record>span:last-child { text-align:right; white-space:nowrap; }
.owner-record .needs-check { color:var(--color-warning); }
.record-detail { padding:32px; background:var(--color-page); border-left:1px solid var(--color-border); }
.owner-section .record-detail .context-label { color:var(--color-secondary); }
.record-detail h4 { font-size:24px; font-weight:550; letter-spacing:-.7px; }
.record-detail>p:not(.context-label) { color:var(--color-secondary); font-size:12px; margin-top:10px; }
.record-facts { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; align-items:center; }
.record-facts>span:first-child { font-size:13px; color:var(--color-secondary); }
.record-facts>strong { margin-left:auto; font:500 18px var(--font-mono); }
.record-facts .badge { flex-basis:100%; width:fit-content; }
.team-timeline { padding:0; margin-top:28px; list-style:none; }
.team-timeline li { padding:0 0 24px 18px; margin-left:2px; border-left:1px solid var(--color-border-strong); position:relative; }
.team-timeline li::before { content:''; position:absolute; left:-4px; top:5px; width:7px; height:7px; background:var(--color-border-strong); border:2px solid var(--color-page); }
.team-timeline li:last-child { padding-bottom:0; }
.team-timeline span { display:block; color:var(--color-secondary); font-size:11px; margin-bottom:4px; }
.team-timeline b { font-size:13px; font-weight:550; }
.team-timeline p { font-size:13px; color:var(--color-secondary); margin-top:4px; line-height:1.7; }
.owner-footnote { border-top:1px solid var(--color-border); padding:16px 32px; font-size:12px; color:var(--color-secondary); }
.owner-bottom { display:flex; justify-content:space-between; gap:32px; align-items:center; margin-top:32px; }
.owner-bottom p { color:var(--color-inverse-secondary); font-size:15px; max-width:450px; }
.waitlist { background:var(--color-page); }
.waitlist h2 { font-size:56px; margin-top:0; line-height:1.1; }
.waitlist-copy>p { max-width:380px; }
.waitlist .context-label { font-size:14px; }
.join-details>div { font-size:14px; }
.form-top p { line-height:1.7; }
.preview-notice { background:var(--color-subtle); color:var(--color-secondary); border:0; font-size:12px; line-height:1.7; }
.preview-notice>span { font-size:12px; font-weight:550; color:var(--color-text); }
.form-foot { font-size:12px; }
.faq { border-top:1px solid var(--color-border); }
.faq-intro h2 { margin-top:0; }
.utility-header { position:sticky; top:0; z-index:50; }
.utility-content { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-panel); padding:40px; }
@media(max-width:1150px) {
 .capture-panel,.manual-invoice,.history-main,.purchase-source,.owner-records,.record-detail { padding:24px; }
 .section-intro h2 { font-size:42px; }
 .scan-actions { grid-template-columns:1fr; gap:8px; }
 .manual-line { grid-template-columns:1.15fr 1fr .65fr; gap:8px; }
}
@media(max-width:960px) {
 html { scroll-padding-top:108px; }
 .receiving-workspace,.record-detail { scroll-margin-top:108px; }
 .section-intro { gap:32px; grid-template-columns:1.1fr .9fr; }
 .section-intro h2 { font-size:38px; }
 .section-intro>p { font-size:16px; }
 .manual-grid { grid-template-columns:1fr; }
 .capture-panel { border-right:0; border-bottom:1px solid var(--color-border); }
 .product-stage { height:195px; }
 .scan-actions { grid-template-columns:1fr 1fr; }
 .capture-panel>h3,.panel-description { text-align:center; }
 .captured-codes,.purchase-fields,.unit-summary,.scan-actions,#add-manual,.sample-status { max-width:500px; margin-inline:auto; }
 #add-manual { display:flex; }
 .history-shell { grid-template-columns:1fr; }
 .purchase-source { border-left:0; border-top:1px solid var(--color-border); }
 .purchase-source dl { margin-top:20px; }
 .owner-content { grid-template-columns:1fr; }
 .record-detail { border-left:0; border-top:1px solid var(--color-border); }
 .team-timeline { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
 .team-timeline li { padding-bottom:0; }
 .record-facts .badge { flex-basis:auto; }
 .owner-totals strong { font-size:30px; }
 .waitlist h2 { font-size:46px; }
}
@media(max-width:640px) {
 html { scroll-padding-top:100px; }
 .receiving-workspace,.record-detail { scroll-margin-top:100px; }
 .section-intro { display:block; margin-bottom:28px; }
 .context-label { font-size:13px; margin-bottom:16px; }
 .section-intro h2 { font-size:38px; letter-spacing:-1.5px; }
 .section-intro>p { margin-top:20px; max-width:none; }
 .manual-toolbar { padding:16px; flex-wrap:wrap; gap:16px; }
 .manual-toolbar .format-selector { width:100%; }
 .manual-toolbar .format-selector button { flex:1; }
 .capture-panel,.manual-invoice,.history-main,.purchase-source,.owner-records,.record-detail { padding:24px 20px; }
 .capture-panel h3 { font-size:18px; }
 .capture-panel>h3,.panel-description { text-align:left; }
 .product-stage { height:190px; }
 .water-case { width:160px; }
 .water-case::before { left:62px; }
 .scan-actions { gap:8px; }
 .scan-actions .button { font-size:14px; line-height:1.4; }
 .captured-codes b { font-size:11px; }
 .purchase-fields { gap:12px; }
 .purchase-fields label { font-size:13px; }
 .manual-invoice-heading { padding-bottom:20px; }
 .manual-line,.invoice-columns { grid-template-columns:1.15fr 1fr .7fr; gap:8px; font-size:12px; }
 .manual-line span,.manual-line code { font-size:10px; }
 .manual-line>strong { font-size:12px; }
 .invoice-columns { font-size:10px; }
 .manual-invoice { padding-inline:16px; }
 .manual-line>div:nth-child(2)>b { font-size:11px; }
 .export-panel .button { width:100%; }
 .history-heading { align-items:start; flex-direction:column; gap:20px; }
 .history-heading .format-selector { width:100%; }
 .history-heading .format-selector button { flex:1; }
 .history-chart { gap:8px; margin-top:24px; }
 .history-purchase { padding:10px 6px; }
 .history-purchase>strong { font-size:21px; letter-spacing:-1px; }
 .history-purchase>b { font-size:13px; }
 .history-purchase>small { font-size:10px; }
 .bar-track { height:115px; }
 .cost-impact { grid-template-columns:1fr; gap:16px; }
 .cost-impact>strong>span { display:inline; margin-left:8px; }
 .owner-toolbar { padding:20px 16px; gap:16px; flex-wrap:wrap; }
 .owner-toolbar h3 { font-size:16px; }
 .owner-toolbar select { width:100%; font-size:16px; }
 .owner-totals { padding:24px 16px; gap:20px 16px; grid-template-columns:1fr 1fr; }
 .owner-totals>div:nth-child(2) { grid-column:1/-1; grid-row:2; }
 .owner-totals span { font-size:12px; }
 .owner-totals strong { font-size:32px; }
 .owner-records { padding-inline:12px; }
 .owner-list-heading { padding-inline:4px; }
 .owner-list-heading>span { font-size:11px; }
 .owner-record { gap:12px; padding:18px 10px; }
 .owner-record b,.owner-record strong { font-size:13px; }
 .owner-record small { font-size:10px; }
 .team-timeline { display:block; }
 .team-timeline li { padding-bottom:24px; }
 .record-facts .badge { flex-basis:100%; }
 .owner-footnote { padding:16px 20px; }
 .owner-bottom { display:block; }
 .owner-bottom .button { margin-top:24px; }
 .waitlist h2 { font-size:48px; letter-spacing:-2px; }
 .waitlist-copy>p { font-size:18px; }
 .waitlist .context-label { font-size:13px; }
 .join-details>div { font-size:14px; }
 .motion-toggle { bottom:-19px; }
 .hero-line-transfer { padding:8px 10px; }
 .hero-line-transfer strong { font-size:14px; }
 .hero-line-transfer>span { font-size:10px; }
 .utility-content { margin:32px 20px; padding:24px; }
}
@media(max-width:370px) {
 .section-intro h2 { font-size:34px; }
 .product-stage { gap:18px; }
 .water-case { width:145px; }
 .water-case::before { left:52px; }
 .capture-panel,.history-main,.purchase-source,.record-detail { padding-inline:16px; }
 .manual-invoice { padding-inline:12px; }
 .manual-line,.invoice-columns { gap:6px; grid-template-columns:1.1fr 1fr .65fr; }
 .manual-line code { font-size:9px; }
 .manual-line span { font-size:9px; }
 .manual-line>strong { font-size:11px; }
 .manual-line>div:nth-child(2)>b { font-size:10px; }
 .history-purchase>strong { font-size:19px; }
 .history-purchase>small { font-size:9px; }
 .owner-record b { font-size:12px; }
 .owner-record small { font-size:9px; }
}
@media(prefers-reduced-motion:reduce) {
 .hero-line-transfer { opacity:1; transform:none; }
 .hero-connector { opacity:1; }
 .hero-evidence * { animation:none!important; transition:none!important; }
}
/* On phones, give each purchase a readable block instead of shrinking the invoice. */
@media(max-width:640px) {
 .invoice-columns { display:none; }
 .manual-line { grid-template-columns:1fr auto; position:relative; padding-block:22px; font-size:14px; }
 .manual-line>div:first-child { grid-column:1; }
 .manual-line>div:nth-child(2) { grid-column:1/-1; grid-row:2; display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:12px; }
 .manual-line>strong { grid-column:2; grid-row:1; font-size:14px; }
 .manual-line>div:nth-child(2)>b { font-size:14px; }
 .manual-line span,.manual-line code { font-size:12px; }
 .manual-line>div:nth-child(2)>span { font-size:12px; margin-top:1px; }
 .manual-invoice { padding-inline:20px; }
}
.owner-section .section-intro h2 { color:var(--color-inverse-text); }

.owner-shell :focus-visible { outline-color:var(--color-focus); }

.form-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.form-status.is-error:not(:empty) { background:var(--color-error-soft); color:var(--color-error); }
#waitlist-challenge { margin-top:20px; }
