/* Self-contained profitability calculator and printable reports. */
:where(.calculator-page, .apps-report) .apps-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.calculator-page { padding-block: 64px 90px; background: radial-gradient(ellipse at 85% 0%, #075c7f2b, transparent 40%); }
.calculator-page .apps-introduction { max-width: 850px; margin-bottom: 42px; }
.calculator-page .apps-introduction h1 { margin-top: 18px; font-size: clamp(2.2rem, 4.5vw, 3.8rem); letter-spacing: -.055em; line-height: 1.15; }
.calculator-page .apps-introduction > p:not(.eyebrow) { max-width: 720px; margin-top: 20px; color: var(--muted, #afc2d6); font-size: 1.0625rem; line-height: 1.8; }
:where(.calculator-page, .apps-report) .apps-back { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: var(--link, #79e0f5); font-size: .875rem; }
:where(.calculator-page, .apps-report) .apps-back:hover { text-decoration: underline; text-underline-offset: 5px; }
.calculator-introduction { margin-top: 26px; }
.calculator-panel { margin-top: 24px; padding: 28px 30px; border: 1px solid var(--line, #294259); border-radius: 18px; background: linear-gradient(130deg, #102338, #0b1b2e); box-shadow: inset 0 1px #ffffff05; }
.calculator-panel-heading { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.calculator-step { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border: 1px solid #396b82; border-radius: 11px; color: var(--link, #79e0f5); background: #12394f; font-size: .8125rem; }
.calculator-panel-heading h2 { font-size: 1.25rem; line-height: 1.4; letter-spacing: -.025em; }
.calculator-panel-heading p { margin-top: 5px; color: var(--muted, #afc2d6); font-size: .875rem; }
.calculator-import-fields { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 20px; }
.calculator-import-button { margin-top: 27px; }
.calculator-import .calculator-validation { margin-bottom: 22px; }
.calculator-import input[type="file"] { padding: 7px; font-size: .875rem; }
.calculator-import input::file-selector-button { min-height: 32px; margin-right: 12px; padding: 5px 10px; border: 1px solid #486982; border-radius: 5px; background: #0d263c; color: #dcecf8; cursor: pointer; font: inherit; }
.calculator-import-success { margin-top: 20px; padding: 18px 22px; border: 1px solid #458897; border-radius: 10px; background: #10333f; color: #b8f0eb; font-size: .875rem; }
.calculator-import-success p + p { margin-top: 8px; }
.calculator-settings { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.calculator-field { min-width: 0; }
.calculator-field label { display: block; color: #dcebf8; font-size: .8125rem; font-weight: 600; margin-bottom: 8px; }
.calculator-field input, .calculator-field select { display: block; width: 100%; min-height: 47px; padding: 11px 12px; border: 1px solid #65839c; border-radius: 8px; font: inherit; font-size: .9375rem; color: var(--ink, #edf5ff); background: #071727; caret-color: var(--link, #79e0f5); }
.calculator-field input:focus, .calculator-field select:focus { outline: 2px solid var(--link, #79e0f5); outline-offset: 3px; border-color: var(--link, #79e0f5); }
.calculator-field [aria-invalid="true"] { border-color: #f791a8; }
.calculator-field input::placeholder { color: #9eb3c8; }
.calculator-field input:-webkit-autofill { -webkit-text-fill-color: var(--ink, #edf5ff); box-shadow: 0 0 0 1000px #071727 inset; }
.calculator-help { color: var(--muted, #afc2d6); font-size: .8125rem; line-height: 1.7; margin-top: 10px; }
.calculator-field-errors:empty { display: none; }
.calculator-field-errors { color: #ffc5d0; font-size: .8125rem; }
.calculator-field-errors ul, .calculator-validation ul { padding-left: 18px; margin-block: 8px 0; }
.calculator-validation { padding: 18px 22px; border: 1px solid #a25d76; border-left: 4px solid #f791a8; border-radius: 10px; background: #3b1d2b; color: #ffc5d0; }
.calculator-product { min-width: 0; padding: 20px 0 24px; margin: 0; border: 0; border-top: 1px solid #2b465e; }
.calculator-product legend { padding: 0 12px 0 0; color: #b7d5e7; font-size: .75rem; font-weight: 650; }
.calculator-product-fields { display: grid; grid-template-columns: minmax(170px, 1.8fr) minmax(80px, .7fr) repeat(3, minmax(100px, 1fr)) 44px; gap: 15px; align-items: stretch; }
.calculator-product-fields .calculator-field { display: flex; flex-direction: column; }
.calculator-product-fields .calculator-field label { flex: 1; }
.calculator-field-quantity input, .calculator-field-purchasePrice input, .calculator-field-margin input, .calculator-field-vatRate input { font-variant-numeric: tabular-nums; }
.calculator-remove-wrap { align-self: end; margin-bottom: 2px; }
.calculator-remove, .calculator-add, .calculator-export { min-height: 44px; border: 1px solid #486982; border-radius: 8px; background: #0d263c; color: #dcecf8; cursor: pointer; font: inherit; font-size: .875rem; }
.calculator-remove { display: grid; place-items: center; width: 44px; padding: 9px; color: #f2b6c2; border-color: #775263; background: #352333; }
.calculator-remove:hover { background: #4a2a3b; border-color: #dc90a5; }
.calculator-add { display: inline-flex; align-items: center; gap: 10px; padding: 10px 17px; color: var(--link, #79e0f5); border-color: #427b93; }
.calculator-add > span { font-size: 1.125rem; line-height: 1; }
.calculator-add:hover, .calculator-export:hover { background: #17425a; border-color: #75c7df; }
.calculator-form button:disabled { opacity: .45; cursor: not-allowed; }
.calculator-form button:disabled:hover { transform: none; }
.calculator-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 26px; margin-top: 28px; }
.calculator-calculate { border: 1px solid var(--brand-cyan, #13c7ed); cursor: pointer; min-width: 165px; }
.calculator-export-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.calculator-export { padding: 10px 17px; }
.calculator-export-hint, .calculator-footnote, .calculator-result-note { margin-top: 14px; color: var(--muted, #afc2d6); font-size: .8125rem; }
.calculator-empty { display: flex; gap: 15px; align-items: center; padding: 24px; margin-top: 38px; border: 1px dashed #40617a; border-radius: 14px; color: var(--muted, #afc2d6); font-size: .9375rem; }
.calculator-empty > span { color: var(--link, #79e0f5); font-size: 1.75rem; }
.calculator-results { margin-top: 48px; scroll-margin-top: 30px; }
.calculator-results-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px 28px; margin-bottom: 22px; }
.calculator-results-heading h2 { font-size: 1.75rem; letter-spacing: -.04em; }
.calculator-results-heading p { color: var(--muted, #afc2d6); font-size: .875rem; }
.calculator-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; }
.calculator-summary-card { min-width: 0; padding: 22px; border: 1px solid #35516b; border-radius: 13px; background: #102237; }
.calculator-summary-card dt { color: #b6cde0; font-size: .8125rem; }
.calculator-summary-card dd { margin: 9px 0 0; font-size: clamp(1.25rem, 2.2vw, 1.8rem); font-weight: 650; letter-spacing: -.04em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.calculator-summary-profit { border-color: #458897; background: linear-gradient(120deg, #103d4b, #102c3c); }
.calculator-summary-profit dt { color: #c0eaf2; }
.calculator-summary-profit dd { color: #87e7ec; }
.calculator-totals-detail { display: flex; flex-wrap: wrap; gap: 18px 34px; margin: 22px 0 26px; }
.calculator-totals-detail > div { display: flex; align-items: baseline; flex-wrap: wrap; gap: 5px 12px; }
.calculator-totals-detail dt { color: var(--muted, #afc2d6); font-size: .8125rem; }
.calculator-totals-detail dd { margin: 0; color: #e0eef9; font-size: .875rem; font-variant-numeric: tabular-nums; font-weight: 600; }
.calculator-table-help { margin-bottom: 10px; color: var(--muted, #afc2d6); font-size: .8125rem; }
.calculator-table-scroll { overflow-x: auto; border: 1px solid #36546d; border-radius: 12px; background: #0b1c2e; }
.calculator-table-scroll:focus-visible { outline: 2px solid var(--link, #79e0f5); outline-offset: 4px; }
.calculator-table { width: 100%; border-collapse: collapse; font-size: .8125rem; font-variant-numeric: tabular-nums; }
.calculator-table caption { text-align: left; padding: 16px 18px; color: #c7dced; border-bottom: 1px solid #36546d; font-size: .875rem; }
.calculator-table th, .calculator-table td { padding: 14px 15px; text-align: right; vertical-align: top; white-space: nowrap; border-bottom: 1px solid #294259; }
.calculator-table thead { background: #123149; }
.calculator-table thead th { color: #cce7f5; font-size: .75rem; font-weight: 600; line-height: 1.6; white-space: normal; }
.calculator-table th:first-child { min-width: 150px; text-align: left; }
.calculator-table tbody th { color: #e5f0fa; white-space: normal; overflow-wrap: anywhere; max-width: 260px; font-weight: 500; }
.calculator-table tbody td { color: #c5d9e9; }
.calculator-table tbody td:last-child { color: #9ce5ed; font-weight: 600; }
.calculator-table tbody tr:last-child > * { border-bottom: 0; }
.calculator-table tbody tr:nth-child(even) { background: #ffffff03; }
.apps-report-main { padding-block: 36px 50px; }
.apps-report-controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 30px; margin-bottom: 30px; border-bottom: 1px solid var(--line, #294259); }
.apps-report-controls button { border: 0; cursor: pointer; }
.apps-report-controls p { width: 100%; color: var(--muted, #afc2d6); font-size: .875rem; }
.apps-report-header .eyebrow { color: var(--link, #79e0f5); }
.apps-report-header h1 { margin-top: 14px; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.2; letter-spacing: -.045em; }

@media (max-width: 1150px) {
  .calculator-product-fields { grid-template-columns: minmax(140px, 1.5fr) minmax(65px, .7fr) repeat(3, minmax(85px, 1fr)) 44px; gap: 10px; }
  .calculator-panel { padding-inline: 24px; }
  .calculator-summary-card { padding: 18px; }
}
@media (max-width: 900px) {
  .calculator-product-fields { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
  .calculator-field-name { grid-column: span 3; }
  .calculator-field-quantity { grid-column: 4; }
  .calculator-remove-wrap { justify-self: end; }
  .calculator-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calculator-settings { gap: 24px; }
}
@media (max-width: 680px) {
  .calculator-page { padding-block: 36px 60px; }
  .calculator-page .apps-introduction { margin-bottom: 28px; }
  .calculator-page .apps-introduction > p:not(.eyebrow) { font-size: 1rem; }
  .calculator-settings { grid-template-columns: 1fr; }
  .calculator-panel { padding: 22px 18px; }
  .calculator-panel-heading { gap: 12px; }
  .calculator-panel-heading h2 { font-size: 1.125rem; }
  .calculator-import-fields { grid-template-columns: 1fr; gap: 16px; }
  .calculator-import-button { margin-top: 0; }
  .calculator-product-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .calculator-field-name { grid-column: 1 / -1; }
  .calculator-field-quantity { grid-column: auto; }
  .calculator-remove-wrap { grid-column: -2 / -1; }
  .calculator-actions { align-items: stretch; }
  .calculator-calculate { width: 100%; }
  .calculator-export-actions { width: 100%; }
  .calculator-export { flex: 1; }
  .calculator-summary { gap: 12px; }
  .calculator-summary-card { padding: 17px 14px; }
  .calculator-summary-card dt { font-size: .75rem; }
  .calculator-summary-card dd { font-size: 1.35rem; }
  .calculator-totals-detail { display: grid; gap: 12px; }
  .calculator-results { margin-top: 36px; }
  .calculator-results-heading { gap: 8px; }
  .apps-report-controls { align-items: flex-start; flex-direction: column; }
}
@page { size: A4 landscape; margin: 12mm; }
@media print {
  html, body.public-site { background: #fff !important; color: #111 !important; color-scheme: light; font-size: 10pt; }
  .apps-report-main { width: 100%; padding: 0; margin: 0; }
  .apps-report-controls, .calculator-table-help, .profitability-header, .profitability-skip-link { display: none !important; }
  .apps-report-header .eyebrow, .apps-report-header h1 { color: #111; }
  .apps-report-header h1 { font-size: 22pt; }
  .calculator-results { margin-top: 20px; }
  .calculator-results-heading { margin-bottom: 14px; }
  .calculator-results-heading h2 { color: #111; font-size: 15pt; }
  .calculator-results-heading p, .calculator-footnote { color: #333; font-size: 9pt; }
  .calculator-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
  .calculator-summary-card, .calculator-summary-profit { background: #fff; border-color: #aaa; box-shadow: none; padding: 12px; break-inside: avoid; }
  .calculator-summary-card dt, .calculator-summary-card dd, .calculator-summary-profit dt, .calculator-summary-profit dd { color: #111; }
  .calculator-summary-card dd { font-size: 16pt; }
  .calculator-totals-detail { display: flex; margin-block: 14px 18px; gap: 12px 28px; }
  .calculator-totals-detail dt, .calculator-totals-detail dd { color: #222; }
  .calculator-table-scroll { overflow: visible; border-color: #aaa; border-radius: 0; background: #fff; }
  .calculator-table { table-layout: fixed; font-size: 8pt; }
  .calculator-table caption { border-color: #aaa; color: #111; padding: 10px 8px; font-size: 9pt; }
  .calculator-table th, .calculator-table td { padding: 8px 6px; border-color: #ccc; white-space: normal; overflow-wrap: anywhere; }
  .calculator-table th:first-child { width: 17%; min-width: 0; }
  .calculator-table thead { display: table-header-group; background: #eee; }
  .calculator-table thead th, .calculator-table tbody th, .calculator-table tbody td, .calculator-table tbody td:last-child { color: #111; font-size: inherit; }
  .calculator-table tbody tr { break-inside: avoid; }
  .calculator-table tbody tr:nth-child(even) { background: #f6f6f6; }
}
