/* Budget Spreadsheet by CodeVision v1.0.0 — isolated from the other resource plugins. */
.bws-shell {
  --bws-blue:#086ad8; --bws-orange:#e97023; --bws-ink:#2f3542;
  --bws-muted:#687386; --bws-line:#e5e9ef; --bws-bg:#f2f4f7;
  --bws-sticky-offset:18px;
  width:100%; min-width:0; margin:0; padding:22px; border-radius:20px;
  background:var(--bws-bg); color:var(--bws-ink); font-family:Arial,Helvetica,sans-serif;
  font-size:15px; line-height:1.5; box-sizing:border-box;
}
.bws-shell *, .bws-shell *::before, .bws-shell *::after { box-sizing:border-box; }
.bws-shell section[id] { scroll-margin-top:calc(var(--bws-sticky-offset) + 108px); }
.bws-shell .bws-sticky-bar {
  position:sticky; top:var(--bws-sticky-offset); z-index:50; width:min(980px,100%);
  margin:0 auto 18px; display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:12px 14px 12px 18px; border:1px solid rgba(8,106,216,.13);
  border-radius:14px; background:rgba(255,255,255,.97); box-shadow:0 10px 30px rgba(31,42,58,.12);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
}
.admin-bar .bws-shell .bws-sticky-bar { top:calc(var(--bws-sticky-offset) + 32px); }
.bws-shell .bws-sticky-copy { display:flex; flex-direction:column; gap:2px; min-width:0; }
.bws-shell .bws-sticky-copy strong { color:var(--bws-ink); font-size:14px; line-height:1.35; font-weight:800; }
.bws-shell .bws-sticky-eyebrow { color:var(--bws-blue); font-size:10px; line-height:1.3; letter-spacing:.08em; text-transform:uppercase; font-weight:800; }
.bws-shell .bws-download-actions { display:flex; align-items:center; gap:9px; flex-wrap:wrap; flex:0 0 auto; }
.bws-shell .bws-download-btn {
  display:inline-flex; justify-content:center; align-items:center; gap:8px; padding:12px 15px;
  border-radius:10px; border:1px solid var(--bws-blue); background:var(--bws-blue); color:#fff!important;
  text-decoration:none!important; font-family:inherit; font-size:13px; font-weight:800;
  line-height:1.25; white-space:nowrap; box-shadow:0 7px 16px rgba(8,106,216,.13);
  transition:background .15s ease,transform .15s ease;
}
.bws-shell .bws-download-btn:hover { background:#075fbe; transform:translateY(-1px); }
.bws-shell .bws-download-btn span { font-size:18px; line-height:1; }
.bws-shell .bws-download-secondary { background:#fff; color:var(--bws-blue)!important; box-shadow:none; }
.bws-shell .bws-download-secondary:hover { background:#eaf3ff; }
.bws-shell a:focus-visible, .bws-shell .bws-table-scroll:focus-visible { outline:3px solid var(--bws-orange); outline-offset:4px; }
.bws-shell .bws-paper { width:min(980px,100%); margin:0 auto; background:#fff; border:1px solid rgba(25,35,50,.08); border-radius:18px; box-shadow:0 20px 60px rgba(31,42,58,.10); overflow:hidden; }
.bws-shell .bws-hero { padding:60px 64px 36px; background:linear-gradient(180deg,#fff,#fbfcfe); }
.bws-shell .bws-document-label { display:inline-flex; align-items:center; min-height:28px; padding:5px 11px; margin:0 0 18px; border-radius:99px; background:#eaf3ff; color:var(--bws-blue); font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.bws-shell .bws-hero h1 { margin:0; color:var(--bws-ink); font-family:inherit; font-size:44px; line-height:1.08; letter-spacing:-.035em; font-weight:900; }
.bws-shell .bws-subtitle { margin:12px 0 0; color:var(--bws-muted); font-size:18px; line-height:1.5; font-style:italic; }
.bws-shell .bws-rule { width:74px; height:4px; border-radius:99px; background:var(--bws-orange); margin:27px 0 24px; }
.bws-shell .bws-hero-note { border-left:4px solid var(--bws-blue); border-radius:12px; padding:15px 18px; background:#eaf3ff; color:var(--bws-ink); }
.bws-shell .bws-hero-note strong { display:block; margin:0 0 4px; font-size:14px; font-weight:800; }
.bws-shell .bws-hero-note p { margin:0; font-size:13px; line-height:1.6; }
.bws-shell .bws-toc { margin:0 64px 38px; padding:19px; background:#f8fafc; border:1px solid var(--bws-line); border-radius:14px; }
.bws-shell .bws-toc-heading { display:flex; justify-content:space-between; align-items:baseline; gap:12px; margin:0 0 13px; }
.bws-shell .bws-toc-heading span { font-size:17px; font-weight:800; }
.bws-shell .bws-toc-heading small { color:var(--bws-muted); font-size:12px; }
.bws-shell .bws-toc-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.bws-shell .bws-toc-links a { display:flex; align-items:center; gap:9px; min-height:68px; padding:12px; border:1px solid var(--bws-line); border-radius:11px; background:#fff; color:var(--bws-ink)!important; text-decoration:none!important; }
.bws-shell .bws-toc-links a:hover { border-color:var(--bws-blue); }
.bws-shell .bws-toc-links a span { display:inline-flex; align-items:center; justify-content:center; flex:0 0 27px; height:27px; background:#eaf3ff; color:var(--bws-blue); border-radius:8px; font-size:10px; font-weight:800; }
.bws-shell .bws-toc-links strong { font-size:12px; line-height:1.4; font-weight:800; }
.bws-shell .bws-document-body { padding:0 64px 52px; }
.bws-shell .bws-section + .bws-section { margin-top:48px; padding-top:36px; border-top:1px solid var(--bws-line); }
.bws-shell .bws-section-heading { display:flex; align-items:flex-start; gap:13px; margin:0 0 19px; }
.bws-shell .bws-section-number { display:inline-flex; align-items:center; justify-content:center; flex:0 0 36px; height:36px; color:var(--bws-blue); background:#eaf3ff; border-radius:10px; font-size:12px; font-weight:900; }
.bws-shell .bws-section-heading h2 { margin:0 0 6px; padding:0; font-family:inherit; font-size:22px; font-weight:900; line-height:1.25; letter-spacing:-.01em; color:var(--bws-ink); }
.bws-shell .bws-section-heading p { margin:0; font-size:13px; line-height:1.5; color:var(--bws-muted); }
.bws-shell .bws-scroll-hint { display:none; font-size:12px; line-height:1.45; color:var(--bws-muted); margin:0 0 11px; }
.bws-shell .bws-table-scroll { width:100%; overflow-x:auto; border:1px solid var(--bws-line); border-radius:12px; -webkit-overflow-scrolling:touch; }
.bws-shell .bws-table { width:100%; margin:0; border-collapse:collapse; border-spacing:0; table-layout:fixed; font-size:13px; line-height:1.45; font-variant-numeric:tabular-nums; background:#fff; }
.bws-shell .bws-table th, .bws-shell .bws-table td { padding:10px 11px; height:40px; border:0; border-bottom:1px solid var(--bws-line); border-right:1px solid #edf0f4; vertical-align:middle; word-break:normal; overflow-wrap:break-word; }
.bws-shell .bws-table tr > :last-child { border-right:0; }
.bws-shell .bws-table tbody tr:last-child > * { border-bottom:0; }
.bws-shell .bws-table thead th { background:#1f3864; color:#fff; font-size:11px; font-weight:800; line-height:1.4; text-align:left; padding:12px 10px; letter-spacing:.025em; }
.bws-shell .bws-table thead th:not(:nth-child(2)) { text-align:right; }
.bws-shell .bws-table thead th:first-child { text-align:center; }
.bws-shell .bws-table .bws-row-number { color:#7a8798; text-align:center; font-size:11px; padding-left:5px; padding-right:5px; }
.bws-shell .bws-table .bws-item { text-align:left; color:#344254; font-weight:600; }
.bws-shell .bws-table .bws-numeric { text-align:right; white-space:nowrap; }
.bws-shell .bws-table .bws-calculated { color:#41566d; background:#f8fafc; }
.bws-shell .bws-table .bws-entry { color:#344254; }
.bws-shell .bws-write-line { display:block; width:84%; min-width:18px; height:14px; margin:0 0 0 auto; border-bottom:1px solid #ccd6e2; }
.bws-shell .bws-item .bws-write-line { width:90%; margin-left:0; }
.bws-shell .bws-assets-table { min-width:600px; }
.bws-shell .bws-assets-table .bws-col-number { width:5%; }
.bws-shell .bws-assets-table .bws-col-label { width:41%; }
.bws-shell .bws-income-table { min-width:500px; }
.bws-shell .bws-income-table .bws-col-number { width:6%; }
.bws-shell .bws-income-table .bws-col-label { width:46%; }
.bws-shell .bws-cash-table { min-width:740px; }
.bws-shell .bws-cash-table .bws-col-number { width:5%; }
.bws-shell .bws-cash-table .bws-col-label { width:35%; }
.bws-shell .bws-table .bws-category th { padding-top:11px; padding-bottom:11px; background:#eaf3ff; color:var(--bws-blue); font-size:11px; letter-spacing:.05em; font-weight:800; text-align:left; }
.bws-shell .bws-table .bws-category td { background:#eaf3ff; color:#667d97; font-size:11px; }
.bws-shell .bws-table .bws-total th, .bws-shell .bws-table .bws-total td { background:#eef4fc; font-weight:800; color:#1f3864; border-top:2px solid #d7e4f5; }
.bws-shell .bws-table .bws-total th { text-align:left; }
.bws-shell .bws-table .bws-surplus th, .bws-shell .bws-table .bws-surplus td { background:#fff7e8; color:#77501d; border-top:1px solid #eedcc0; }
.bws-shell .bws-income-line { display:flex; align-items:center; justify-content:space-between; gap:15px; border:1px solid #dbe7f8; border-radius:12px; background:#f5f9ff; padding:15px 18px; margin:0 0 14px; }
.bws-shell .bws-income-line strong { font-size:12px; color:#1f3864; font-weight:800; }
.bws-shell .bws-income-line > span { font-size:22px; color:var(--bws-blue); font-weight:900; }
.bws-shell .bws-preview-note, .bws-shell .bws-section-note, .bws-shell .bws-final-note { padding:14px 17px; border-radius:12px; margin:16px 0; background:#fff7e8; border-left:4px solid var(--bws-orange); color:#6f4d1e; font-size:12px; line-height:1.55; }
.bws-shell .bws-preview-note strong, .bws-shell .bws-section-note strong, .bws-shell .bws-final-note strong { display:block; font-size:12px; line-height:1.4; margin:0 0 4px; font-weight:800; }
.bws-shell .bws-preview-note p, .bws-shell .bws-section-note p, .bws-shell .bws-final-note p { margin:0; font-size:12px; line-height:1.55; }
.bws-shell .bws-section-note { background:#f8fafc; color:#566477; border-left-color:#cbd8e7; }
.bws-shell .bws-cash-chunk + .bws-cash-chunk { margin-top:22px; }
.bws-shell .bws-final-note { margin:25px 0 0; }
.bws-shell .bws-end-cta { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:30px 40px; background:#f5f9ff; border-top:1px solid #dfeafb; }
.bws-shell .bws-end-kicker { display:block; color:var(--bws-blue); font-size:10px; letter-spacing:.08em; text-transform:uppercase; font-weight:800; margin-bottom:6px; }
.bws-shell .bws-end-cta h2 { font-family:inherit; color:var(--bws-ink); font-size:21px; line-height:1.25; font-weight:900; margin:0 0 6px; }
.bws-shell .bws-end-cta p { margin:0; color:var(--bws-muted); font-size:12px; line-height:1.5; }
.bws-shell .bws-print-frame, .bws-shell .bws-print-continuation { display:none; }
@media(max-width:1000px) { .bws-shell .bws-scroll-hint { display:block; } }
@media(max-width:800px) {
  .bws-shell { padding:12px; border-radius:14px; }
  .bws-shell .bws-paper { border-radius:14px; }
  .bws-shell .bws-hero { padding:40px 28px 28px; }
  .bws-shell .bws-hero h1 { font-size:34px; }
  .bws-shell .bws-toc { margin:0 28px 30px; padding:16px; }
  .bws-shell .bws-toc-links { grid-template-columns:1fr; }
  .bws-shell .bws-toc-links a { min-height:52px; }
  .bws-shell .bws-document-body { padding:0 28px 36px; }
  .bws-shell .bws-end-cta { flex-direction:column; align-items:flex-start; padding:28px; gap:18px; }
}
@media(max-width:782px) { .admin-bar .bws-shell .bws-sticky-bar { top:calc(var(--bws-sticky-offset) + 46px); } }
@media(max-width:580px) {
  .bws-shell { padding:10px; }
  .bws-shell section[id] { scroll-margin-top:calc(var(--bws-sticky-offset) + 145px); }
  .bws-shell .bws-sticky-bar { flex-direction:column; align-items:stretch; gap:10px; padding:12px; margin-bottom:12px; }
  .bws-shell .bws-sticky-eyebrow { display:none; }
  .bws-shell .bws-sticky-copy strong { font-size:13px; }
  .bws-shell .bws-download-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
  .bws-shell .bws-download-btn { padding:11px 8px; font-size:12px; gap:6px; }
  .bws-shell .bws-hero { padding:32px 20px 24px; }
  .bws-shell .bws-hero h1 { font-size:29px; }
  .bws-shell .bws-subtitle { font-size:15px; }
  .bws-shell .bws-document-label { font-size:9px; }
  .bws-shell .bws-hero-note { padding:12px 14px; }
  .bws-shell .bws-hero-note strong { font-size:13px; }
  .bws-shell .bws-hero-note p { font-size:12px; }
  .bws-shell .bws-toc { margin:0 20px 28px; padding:14px; }
  .bws-shell .bws-toc-heading { display:block; }
  .bws-shell .bws-toc-heading small { display:block; margin-top:3px; }
  .bws-shell .bws-document-body { padding:0 20px 30px; }
  .bws-shell .bws-section-heading { gap:10px; }
  .bws-shell .bws-section-heading h2 { font-size:18px; }
  .bws-shell .bws-section-number { height:30px; flex-basis:30px; font-size:10px; }
  .bws-shell .bws-income-line { padding:13px; }
  .bws-shell .bws-income-line strong { font-size:11px; }
  .bws-shell .bws-end-cta { padding:24px 20px; }
}
@media(prefers-reduced-motion:reduce) {
  .bws-shell a { transition:none!important; }
  .bws-shell a:hover { transform:none!important; }
}

/* Same design in PDF. These changes only handle paper size and pagination. */
@media print {
  @page { size:A4; margin:18mm 14mm 20mm;
    @bottom-left { content:"Budget Spreadsheet"; font-family:Arial,Helvetica,sans-serif; font-size:8pt; color:#687386; }
    @bottom-right { content:counter(page) " / " counter(pages); font-family:Arial,Helvetica,sans-serif; font-size:8pt; color:#687386; }
  }
  html,body { margin:0!important; padding:0!important; background:#fff!important; print-color-adjust:exact!important; -webkit-print-color-adjust:exact!important; }
  .bws-shell { margin:0!important; padding:0!important; background:#fff!important; border-radius:0!important; }
  /* The downloadable PDF has a page-coordinate frame added after pagination. */
  .bws-shell .bws-print-frame { display:none!important; }
  .bws-shell .bws-sticky-bar, .bws-shell .bws-end-cta, .bws-shell .bws-scroll-hint { display:none!important; }
  .bws-shell .bws-paper { width:100%!important; max-width:none!important; border:0!important; border-radius:0!important; margin:0!important; box-shadow:none!important; overflow:visible!important; }
  .bws-shell .bws-hero { padding:0 0 4mm!important; background:#fff!important; break-inside:avoid; }
  .bws-shell .bws-document-label { margin:0 0 3mm!important; padding:1mm 2.5mm!important; min-height:0!important; font-size:7.5pt!important; }
  .bws-shell .bws-hero h1 { font-size:27pt!important; line-height:1.1!important; }
  .bws-shell .bws-subtitle { font-size:11pt!important; margin:2mm 0 0!important; }
  .bws-shell .bws-rule { height:1mm!important; margin:4mm 0!important; width:18mm!important; }
  .bws-shell .bws-hero-note { padding:2.5mm 3.5mm!important; border-left-width:1mm!important; border-radius:3mm!important; }
  .bws-shell .bws-hero-note strong { font-size:8.5pt!important; margin-bottom:1mm!important; }
  .bws-shell .bws-hero-note p { font-size:8pt!important; line-height:1.45!important; }
  .bws-shell .bws-toc { margin:0 0 5mm!important; padding:3mm!important; border-radius:3mm!important; break-inside:avoid; }
  .bws-shell .bws-toc-heading { display:flex!important; margin-bottom:2mm!important; }
  .bws-shell .bws-toc-heading span { font-size:10pt!important; }
  .bws-shell .bws-toc-heading small { font-size:8pt!important; margin:0!important; }
  .bws-shell .bws-toc-links { display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important; gap:2mm!important; }
  .bws-shell .bws-toc-links a { min-height:0!important; padding:2mm!important; gap:2mm!important; border-radius:2mm!important; }
  .bws-shell .bws-toc-links a span { flex-basis:6mm!important; height:6mm!important; font-size:7pt!important; border-radius:1.5mm!important; }
  .bws-shell .bws-toc-links strong { font-size:8pt!important; line-height:1.3!important; }
  .bws-shell .bws-document-body { padding:0!important; }
  .bws-shell .bws-section + .bws-section { margin:0!important; padding:0!important; border:0!important; }
  .bws-shell .bws-print-page { break-before:page; }
  .bws-shell .bws-section-heading { gap:3mm!important; margin-bottom:4mm!important; break-inside:avoid; break-after:avoid; }
  .bws-shell .bws-section-number { flex-basis:8mm!important; height:8mm!important; border-radius:2mm!important; font-size:8pt!important; }
  .bws-shell .bws-section-heading h2 { font-size:12.5pt!important; line-height:1.25!important; margin:0 0 1.2mm!important; letter-spacing:0!important; }
  .bws-shell .bws-section-heading p { font-size:8.5pt!important; line-height:1.35!important; }
  .bws-shell .bws-table-scroll { overflow:visible!important; width:100%!important; border:0!important; border-radius:0!important; }
  .bws-shell .bws-table { min-width:0!important; width:100%!important; font-size:9pt!important; line-height:1.3!important; }
  .bws-shell .bws-table th, .bws-shell .bws-table td { height:0!important; padding:1.5mm 2mm!important; font-size:9pt!important; line-height:1.3!important; border:.4pt solid #e5e9ef!important; }
  /* Compact first worksheet so its complete item list and totals stay together. */
  .bws-shell .bws-assets-table tbody th, .bws-shell .bws-assets-table tbody td { padding:0.8mm 2mm!important; font-size:8.5pt!important; line-height:1.25!important; }
  .bws-shell .bws-assets-table .bws-write-line { height:2.6mm!important; }
  .bws-shell .bws-table thead { display:table-header-group; }
  .bws-shell .bws-table thead th { font-size:7.5pt!important; line-height:1.4!important; padding:2mm!important; }
  .bws-shell .bws-table tr { break-inside:avoid; }
  .bws-shell .bws-table .bws-category { break-after:avoid; }
  .bws-shell .bws-table .bws-category th, .bws-shell .bws-table .bws-category td { padding-top:2mm!important; padding-bottom:2mm!important; font-size:8pt!important; }
  .bws-shell .bws-write-line { height:3mm!important; border-bottom:.4pt solid #ccd6e2; }
  .bws-shell .bws-table .bws-row-number { font-size:8pt!important; }
  .bws-shell .bws-income-line { margin:0 0 3mm!important; padding:3mm 4mm!important; border-radius:3mm!important; break-inside:avoid; }
  .bws-shell .bws-income-line strong { font-size:8.5pt!important; }
  .bws-shell .bws-income-line > span { font-size:15pt!important; }
  .bws-shell .bws-preview-note, .bws-shell .bws-section-note, .bws-shell .bws-final-note { padding:3mm 4mm!important; margin:3mm 0 4mm!important; border-radius:3mm!important; font-size:8pt!important; break-inside:avoid; }
  .bws-shell .bws-preview-note strong, .bws-shell .bws-section-note strong, .bws-shell .bws-final-note strong { font-size:8.5pt!important; margin-bottom:1mm!important; }
  .bws-shell .bws-preview-note p, .bws-shell .bws-section-note p, .bws-shell .bws-final-note p { font-size:8pt!important; line-height:1.45!important; }
  .bws-shell .bws-cash-chunk + .bws-cash-chunk { margin:0!important; }
  .bws-shell .bws-print-continuation { display:flex; align-items:baseline; justify-content:space-between; margin:0 0 5mm; padding:0 0 3mm; border-bottom:.6pt solid #e5e9ef; color:#687386; }
  .bws-shell .bws-print-continuation span { color:var(--bws-blue); font-size:9pt; font-weight:800; letter-spacing:.04em; }
  .bws-shell .bws-print-continuation strong { font-size:8pt; font-weight:600; }
}
