.report-page{--r-ink: #1a1d21;--r-cyan: #146cb9;--r-cyan-dk: #0f5390;--r-panel: #f4f7f9;--r-rule: #e2e7ec;--r-muted: #6a7480;--r-gp: #32ad7c;--r-warn: #b8860b;background:#e7ecf0;min-height:100vh;padding:16px 12px 40px}.report-toolbar{max-width:820px;margin:0 auto 12px;display:flex;justify-content:space-between;gap:8px}.report-sheet{max-width:820px;margin:0 auto;background:#fff;color:var(--r-ink);box-shadow:0 4px 24px #1e2d3e24;font-family:Open Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.rhatch{height:9px;background:repeating-linear-gradient(-45deg,var(--r-ink) 0 1px,transparent 1px 6px)}.rband{background:#fff;color:var(--r-ink);padding:22px 32px 18px;display:flex;align-items:flex-start;gap:20px;border-bottom:2px solid var(--r-ink)}.rbrand{display:flex;align-items:center;gap:14px}.rsub{font-size:11px;color:var(--r-muted);letter-spacing:.1em;text-transform:uppercase;padding-left:14px;border-left:1px solid var(--r-rule)}.rmeta{margin-left:auto;text-align:right}.rkind{font:600 11px/1 Poppins,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--r-cyan)}.rnum{font:600 24px/1.1 Poppins,Segoe UI,system-ui,sans-serif;margin-top:5px;font-variant-numeric:tabular-nums;color:var(--r-ink)}.rdate{font-size:12px;color:var(--r-muted);margin-top:4px}.rsummary{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--r-rule)}.rcell{padding:12px 16px;border-right:1px solid var(--r-rule)}.rcell:last-child{border-right:none}.rcell.wide{grid-column:span 2}.rlbl{font:600 10px/1 sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--r-muted);margin-bottom:5px}.rval{font-size:14px;font-weight:500}.rstatus{display:inline-block;font:600 11px/1 sans-serif;padding:4px 9px;border-radius:4px;background:#fdf6e7;color:var(--r-warn)}.rstatus.locked{background:#eef2f5;color:var(--r-muted)}.rbody{padding:20px 32px 12px;display:grid;grid-template-columns:1fr 300px;gap:24px}.rstack{display:flex;flex-direction:column;gap:18px}.rblock h3{font:600 12px/1 sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--r-cyan-dk);margin:0 0 9px;padding-bottom:6px;border-bottom:2px solid var(--r-rule)}.rspec{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px}.rspec.one{grid-template-columns:1fr}.rrow{display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:2px 0}.rrow .k{color:var(--r-muted)}.rrow .v{font-weight:500;font-variant-numeric:tabular-nums;text-align:right}.rtooling{display:flex;gap:16px;align-items:flex-start}.rtooling .rspec{flex:1}.rdiagram{margin:0;flex-shrink:0}.rdiagram figcaption{font-size:10px;color:var(--r-muted);margin-top:4px;text-align:center;max-width:130px}.rside{display:flex;flex-direction:column;gap:16px}.rcosts{width:100%;border-collapse:collapse;font-size:13px}.rcosts caption{font:600 12px/1 sans-serif;letter-spacing:.09em;text-transform:uppercase;color:var(--r-cyan-dk);text-align:left;padding-bottom:6px;border-bottom:2px solid var(--r-rule)}.rcosts th{font:600 10px/1 sans-serif;letter-spacing:.05em;text-transform:uppercase;color:var(--r-muted);text-align:right;padding:6px 0 6px 8px}.rcosts th:first-child{text-align:left}.rcosts td{padding:4px 0 4px 8px;text-align:right;font-variant-numeric:tabular-nums;border-bottom:1px solid #eef2f5}.rcosts td:first-child{text-align:left;color:var(--r-muted)}.rcosts tr.total td{font-weight:700;border-top:1.5px solid var(--r-rule);border-bottom:none;padding-top:7px;color:var(--r-ink)}.rpricing{background:var(--r-panel);border:1px solid var(--r-rule);border-radius:8px;padding:14px 16px}.rpricing .prow{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0;font-size:13px}.rpricing .prow .k{color:var(--r-muted)}.rpricing .prow .v{font-weight:600;font-variant-numeric:tabular-nums}.rpricing .sell{border-bottom:1px solid var(--r-rule);padding-bottom:8px;margin-bottom:2px}.rpricing .sell .k{color:var(--r-ink);font-weight:600}.rpricing .sell .v{font:700 18px/1 Poppins,Segoe UI,system-ui,sans-serif;color:var(--r-cyan-dk)}.rpricing .gp .v{color:var(--r-gp)}.gp-badge{display:flex;align-items:baseline;justify-content:space-between;margin-top:8px;background:#eaf5ea;color:var(--r-gp);border-radius:6px;padding:8px 12px}.gp-badge .pct{font:700 22px/1 Poppins,Segoe UI,system-ui,sans-serif}.gp-badge .cap{font-size:11px}.rrates{display:grid;grid-template-columns:1fr 1fr;gap:3px 14px;font-size:12px}.mrow{display:flex;justify-content:space-between}.mrow .k{color:var(--r-muted)}.mrow .v{font-variant-numeric:tabular-nums;font-weight:500}.rrate-set{font-size:11px;color:var(--r-muted);margin-top:8px}.rnotes{padding:4px 32px 18px}.rnote{font-size:13px;border-left:3px solid var(--r-cyan);background:var(--r-panel);padding:8px 12px;border-radius:0 6px 6px 0;margin-top:8px}.rnote .meta{font-size:11px;color:var(--r-muted);margin-bottom:3px}.rfoot{border-top:1px solid var(--r-rule);padding:12px 32px;display:flex;justify-content:space-between;font-size:11px;color:var(--r-muted)}@media print{.report-page{background:#fff;padding:0}.no-print{display:none!important}.report-sheet{box-shadow:none;max-width:none}@page{margin:12mm}}:root{--color-primary: #146cb9;--color-primary-dark: #0f5390;--color-secondary: #101418;--color-bg: #f5f7f9;--color-surface: #ffffff;--color-text: #1a1d21;--color-text-muted: #6a7480;--color-ok: #32ad7c;--color-warn: #b8860b;--color-locked: #8a8886;--font-heading: "Poppins", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-body: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--shadow-card: 0 1px 3px rgba(16, 20, 24, .1);--shadow-hover: 0 4px 14px rgba(16, 20, 24, .14);--radius: 3px;--hatch: repeating-linear-gradient(-45deg, #1a1d21 0 1px, transparent 1px 6px);--hatch-blue: repeating-linear-gradient(-45deg, var(--color-primary) 0 1.5px, transparent 1.5px 7px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-heading);margin:0;font-weight:600;letter-spacing:-.01em}.hatch-strip{height:7px;background:var(--hatch);opacity:.85}.hatch-strip.blue{background:var(--hatch-blue);opacity:1}.app-frame{display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:20px 24px 40px}.panel{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px}@keyframes cost-pulse{0%{background-color:#146cb92e}to{background-color:transparent}}.cost-pulse{animation:cost-pulse .6s ease-out}.hover-lift{transition:box-shadow .15s ease,transform .15s ease}.hover-lift:hover{box-shadow:var(--shadow-hover);transform:translateY(-1px)}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.workspace-results{position:sticky;top:16px}@media(max-width:1023px){.workspace-grid{grid-template-columns:1fr}.workspace-results{position:static}}.summary-bar{display:none}@media(max-width:767px){.workspace-results{display:none}.summary-bar{display:flex;position:sticky;bottom:0;left:0;right:0;gap:16px;align-items:center;justify-content:space-between;background:var(--color-secondary);color:#fff;padding:10px 16px;border-radius:var(--radius) var(--radius) 0 0;z-index:20}.app-content{padding:12px 12px 24px}}.scroll-x{overflow-x:auto}.accordion-section{padding:8px 16px;transition:box-shadow .2s ease,padding .28s cubic-bezier(.4,0,.2,1)}.accordion-section.open{padding-bottom:16px;box-shadow:var(--shadow-hover)}.accordion-trigger:hover .accordion-chevron{color:var(--color-primary-dark)}.accordion-chevron{flex-shrink:0;transition:transform .26s cubic-bezier(.34,1.56,.64,1),color .15s ease}.accordion-chevron.open{transform:rotate(90deg)}.accordion-body{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(-4px);transition:grid-template-rows .3s cubic-bezier(.4,0,.2,1),opacity .24s ease,transform .3s cubic-bezier(.4,0,.2,1)}.accordion-body.open{grid-template-rows:1fr;opacity:1;transform:translateY(0)}.accordion-body-inner{overflow:hidden;min-height:0}@media(prefers-reduced-motion:reduce){.accordion-section,.accordion-chevron,.accordion-body{transition:none}}a{color:var(--color-primary-dark)}.pack-print-header{display:none}
