.sp-page { background: var(--md-surface-container-lowest); }
.sp-page section { padding: 0; }
.sp-intro { padding-top: 54px; padding-bottom: 44px; }
.sp-kicker { color: var(--md-primary); font-weight: 700; letter-spacing: .16em; font-size: .8rem; }
.sp-intro h1 { max-width: 19ch; font-size: clamp(2rem, 5vw, 3.4rem); line-height: 1.3; margin: .2em 0 .5em; }
.sp-intro > p:not(.sp-kicker) { max-width: 780px; font-size: 1.08rem; }
.sp-intro-actions { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 28px; }
.sp-layout { display: grid; grid-template-columns: minmax(0, 1fr) 275px; gap: 28px; align-items: start; padding-bottom: 70px; }
.sp-editor, .sp-sidebar { min-width: 0; }
.sp-privacy { background: var(--md-primary-container); color: var(--md-on-primary-container); padding: 18px 22px; border-radius: var(--md-corner-l); line-height: 1.7; }
.sp-steps { display: flex; overflow-x: auto; gap: 8px; padding: 22px 0; scrollbar-width: thin; }
.sp-steps a { flex: none; padding: 5px 12px; text-decoration: none; border: 1px solid var(--md-outline-variant); border-radius: var(--md-corner-full); background: var(--md-surface-container-lowest); }
.sp-steps a:hover { background: var(--md-surface-container); }
.sp-section { margin: 0 0 24px; padding: 28px !important; border: 1px solid var(--md-outline-variant); border-radius: var(--md-corner-xl); background: var(--md-surface-container-lowest); }
.sp-section, #sp-report-wrap { scroll-margin-top: 95px; }
.sp-section-head { display: flex; gap: 16px; border-bottom: 1px solid var(--md-outline-variant); margin-bottom: 22px; padding-bottom: 16px; }
.sp-section-head > span { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: var(--md-corner-full); color: var(--md-on-primary); background: var(--md-primary); font-weight: 700; }
.sp-section-head h2 { margin: 0; font-size: 1.3rem; line-height: 1.4; }
.sp-section-head p { margin: 5px 0 0; font-size: .9rem; color: var(--md-on-surface-variant); line-height: 1.6; }
.sp-fields { display: grid; gap: 20px; }
.sp-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.sp-field { display: grid; gap: 5px; line-height: 1.5; font-weight: 700; }
.sp-field small { font-weight: 400; color: var(--md-on-surface-variant); font-size: .82rem; }
.sp-field input, .sp-field textarea, .sp-finance-table input { width: 100%; min-width: 0; border: 1px solid var(--md-outline); border-radius: var(--md-corner-s); padding: 11px 12px; background: var(--md-surface-container-lowest); color: var(--md-on-surface); font: inherit; font-weight: 400; line-height: 1.5; }
.sp-field textarea { resize: vertical; min-height: 104px; }
.sp-field input:focus, .sp-field textarea:focus, .sp-finance-table input:focus { outline: 3px solid var(--md-primary-container); border-color: var(--md-primary); }
.sp-repeat { border-top: 1px solid var(--md-outline-variant); padding-top: 16px; }
.sp-repeat h3 { margin: 0 0 12px; font-size: 1.05rem; }
.sp-repeat-row { border: 1px solid var(--md-outline-variant); border-radius: var(--md-corner-m); padding: 16px; margin: 0 0 12px; min-width: 0; }
.sp-repeat-row legend { font-weight: 700; padding: 0 6px; }
.sp-repeat-row .sp-fields { gap: 12px; }
.sp-table-wrap { overflow-x: auto; max-width: 100%; }
.sp-finance-table { width: 100%; min-width: 540px; border-collapse: collapse; font-size: .9rem; line-height: 1.4; }
.sp-finance-table caption { text-align: left; font-weight: 700; padding-bottom: 8px; }
.sp-finance-table th, .sp-finance-table td { border-bottom: 1px solid var(--md-outline-variant); padding: 8px; text-align: left; }
.sp-finance-table thead { background: var(--md-surface-container); }
.sp-finance-table input { padding: 8px; font-size: 1rem; }
.sp-finance-table .sp-total { background: var(--md-primary-container); font-weight: 700; }
.sp-month-table { min-width: 610px; }
.sp-month-table th:first-child { width: 96px; }
.sp-calc { padding: 14px; border-radius: var(--md-corner-s); background: var(--md-surface-container); font-weight: 700; }
.sp-actions, .sp-report-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.sp-actions { padding: 8px 0; }
.sp-actions button, .sp-report-toolbar button { cursor: pointer; font: inherit; }
.sp-secondary, .sp-upload { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 18px; border: 1px solid var(--md-primary); border-radius: var(--md-corner-full); background: var(--md-surface-container-lowest); color: var(--md-primary); font-weight: 700; cursor: pointer; }
.sp-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.sp-upload:focus-within { outline: 3px solid var(--md-primary); outline-offset: 2px; }
.sp-status { min-height: 1.8em; }
.sp-sidebar { position: sticky; top: 90px; padding: 20px; border-radius: var(--md-corner-l); background: var(--md-surface); line-height: 1.6; }
.sp-sidebar h2 { font-size: 1.1rem; margin: 0 0 14px; }
.sp-progress { height: 12px; overflow: hidden; border-radius: var(--md-corner-full); background: var(--md-outline-variant); }
.sp-progress span { display: block; height: 100%; width: 0; background: var(--md-primary); }
.sp-sidebar ul { padding-left: 20px; font-size: .86rem; }
.sp-sidebar li { margin-bottom: 9px; }
.sp-sidebar-note { border-top: 1px solid var(--md-outline-variant); padding-top: 12px; font-size: .8rem; }
.sp-page .sp-report-wrap { padding: 0 28px 70px; }
.sp-report-wrap[hidden] { display: none !important; }
.sp-print-warning { display: none; }
.sp-report-toolbar { padding: 24px; margin-bottom: 20px; border-radius: var(--md-corner-l); background: var(--md-surface); }
.sp-report-toolbar div { flex: 1 1 320px; }
.sp-report-toolbar h2, .sp-report-toolbar p { margin: 0; }
.sp-report { max-width: 900px; margin: 0 auto; padding: 38px; border: 1px solid var(--md-outline-variant); box-shadow: var(--md-elev-soft); background: var(--md-surface-container-lowest); line-height: 1.55; font-size: .9rem; overflow-wrap: anywhere; overflow-x: auto; }
.sp-report-head { border-bottom: 3px solid var(--md-primary); padding-bottom: 14px; }
.sp-report-head p { margin: 0; font-weight: 700; color: var(--md-primary); }
.sp-report-head h1 { margin: 5px 0 10px; font-size: 1.8rem; }
.sp-draft-note { margin-top: 18px; padding: 12px; border: 1px solid var(--md-error); background: var(--md-error-container); color: var(--md-on-error-container); }
.sp-print-section { margin-top: 26px; break-inside: avoid-page; }
.sp-print-section h2 { margin: 0 0 10px; padding: 5px 10px; background: var(--md-primary-container); font-size: 1.08rem; }
.sp-print-section h3 { margin: 12px 0 5px; font-size: .93rem; }
.sp-report-table { width: 100%; border-collapse: collapse; }
.sp-report-table th, .sp-report-table td { border: 1px solid var(--md-outline-variant); padding: 6px 8px; vertical-align: top; text-align: left; }
.sp-report-table th { background: var(--md-surface-container-low); white-space: nowrap; }
.sp-report-table td { min-width: 80px; }
.sp-narrative { margin: 12px 0; break-inside: avoid-page; }
.sp-narrative p { margin: 0; white-space: normal; }
.sp-empty { color: var(--md-on-surface-variant); }
.sp-report-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.sp-print-unit, .sp-print-note, .sp-report-foot { font-size: .8rem; color: var(--md-on-surface-variant); }
.sp-print-unit { margin: 0 0 5px; }
.sp-report-foot { margin-top: 32px; border-top: 1px solid var(--md-outline-variant); padding-top: 8px; }
.sp-page .sp-about { padding: 20px 28px 80px; max-width: 900px; }
.sp-about h2 { font-size: 1.4rem; }
.sp-about li { margin-bottom: 8px; }
.sp-cta { padding: 18px; border-radius: var(--md-corner-m); background: var(--md-primary-container); }
@media (max-width: 850px) { .sp-layout { grid-template-columns: 1fr; } .sp-sidebar { position: static; } }
@media (max-width: 620px) { .sp-intro { padding-top: 34px; } .sp-section { padding: 18px !important; } .sp-grid, .sp-report-columns { grid-template-columns: 1fr; } .sp-page .sp-report-wrap { padding-left: 20px; padding-right: 20px; } .sp-page .sp-about { padding-left: 20px; padding-right: 20px; } .sp-report { padding: 18px; font-size: .78rem; } .sp-report-table th { white-space: normal; } .sp-report-table td { min-width: 0; } .sp-report > .sp-print-section:nth-of-type(8) { overflow-x: auto; } .sp-report > .sp-print-section:nth-of-type(8) .sp-report-table { min-width: 480px; } .sp-actions > * { flex: 1 1 100%; } }
@media print { @page { size: A4; margin: 14mm; } html, body { background: white !important; } .site-header, .scope-banner, .site-footer, .skip-link, .sp-intro, .sp-layout, .sp-about, .sp-report-toolbar { display: none !important; } .sp-page .sp-report-wrap, .sp-page, main { display: block !important; margin: 0 !important; padding: 0 !important; } .sp-page .sp-report-wrap[hidden] { display: none !important; } .sp-print-warning { display: block; margin: 20mm; font-size: 12pt; } .sp-report-wrap:not([hidden]) + .sp-print-warning { display: none; } .sp-report { max-width: none; border: 0; box-shadow: none; margin: 0; padding: 0; overflow: visible; font-size: 9pt; color: black; print-color-adjust: exact; -webkit-print-color-adjust: exact; } .sp-report-head, .sp-print-section, .sp-narrative { break-inside: avoid-page; } .sp-print-section { break-inside: auto; overflow: visible !important; } .sp-report-table tr { break-inside: avoid-page; } .sp-report-table th, .sp-report-table td { padding: 4px 5px; } .sp-report a { color: inherit; } }
