/* Shared spacing, readable secondary text, input feedback and mobile safe area. */
:root{--muted:#53665b;--error:#a13324;--footer-height:78px;--keyboard-bottom:0px}
html{scroll-padding:20px 0 calc(var(--footer-height) + 24px)}
body{line-height:1.5;-webkit-text-size-adjust:100%}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{min-height:44px}
.button{font-size:.8125rem;line-height:1.4;min-height:44px}
.button:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #346b56;outline-offset:3px}
.topbar{gap:20px;min-height:68px;height:auto;padding-top:10px;padding-bottom:10px}
.header-actions{flex-wrap:wrap;justify-content:flex-end}
.reset-button{color:#923c30;border-color:#d9b8af;background:#fff}
.reset-button:hover{background:#fff1ed;border-color:#aa5544}
.danger-button,.danger-button:hover{background:#a13324;color:#fff;border-color:#a13324}
.native-downloads,.native-requirement,.step-navigation small,.step-state,.step-context p,.review-status p,.review-metadata dt,.review-reminder p,.privacy-note p,.site-footer,.preview-footer,.optional,.preview-modal-foot,.share-file-card small,#share-dialog .share-footnote{color:var(--muted)}
.step-context>div>span,.section-title p,.field,.field-guidance p,.hint,.row-values .field,.guide-footer>span{color:var(--muted)}
.step-navigation strong{color:#3b5648}.step-navigation>button{min-height:64px}
.step-navigation small,.step-state,.native-downloads,.native-requirement{font-size:.75rem}
.step-context p,.field-guidance p,.hint,.privacy-note p,.review-status p,.review-reminder p{font-size:.75rem;line-height:1.8}
.field,.row-values .field{font-size:.75rem;font-weight:500}
.field input,.field select,.field textarea{min-height:46px;line-height:1.5}
input::placeholder,textarea::placeholder{color:#69796e;opacity:1}
.field-grid{gap:20px 16px}.row-card{border-color:#dce4dc;border-radius:9px}
.row-heading{gap:12px}.row-heading .field{min-width:0}
.remove-row{width:44px;min-width:44px;height:44px;min-height:44px;border:1px solid transparent;color:#8a4033;border-radius:7px}
.remove-row:hover{background:#fff1ed;border-color:#e4bcb0}
.income-mode button{min-height:40px;padding:7px 14px;font-size:.75rem}
.row-amount{font-size:.8125rem;line-height:1.6;color:#405c4a}
.field-error{display:block;color:var(--error);font-size:.75rem;line-height:1.7;font-weight:500;margin-top:7px;overflow-wrap:anywhere}
.section-error{padding:10px 12px;background:#fff4ef;border-left:3px solid var(--error);border-radius:4px;margin:0 0 16px}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--error);box-shadow:0 0 0 1px #a1332410;background:#fffaf7}
.error-panel{border-color:#d7a594;color:#8b2c20;line-height:1.8}
.error-panel button{min-height:44px;padding:9px 0;font-size:.8125rem}
.review-status strong{font-size:.9375rem}.review-status{gap:12px;padding:16px}
.review-metadata>div,.review-money>div{font-size:.8125rem;line-height:1.8}
.review-metadata dd{color:#243f31}.review-money strong{color:#244b38;font-weight:650}
.review-money .review-net{flex-wrap:wrap;gap:8px 16px}
.review-net strong{max-width:100%;font-size:clamp(1.15rem,3vw,1.6rem);overflow-wrap:anywhere}
.review-issues button{min-height:48px;font-size:.8125rem;color:#794d20}
.review-reminder strong,.preview-label h2,.paper-controls select,.preview-footer{font-size:.75rem}
.preview-label>span:last-child{font-size:.6875rem;color:#53665b}
.preview-toolbar{gap:12px}.paper-controls{flex-wrap:wrap}
.preview-canvas{scrollbar-gutter:stable}
#pages[aria-busy=true]{opacity:.45}#pages{transition:opacity .15s;min-height:100px}
#mobile-preview-pages[aria-busy=true]{min-height:180px;display:grid;place-items:center;font-size:.875rem;color:#405c4a}
.net-summary>div{flex-wrap:wrap;gap:6px 12px}.net-summary strong{font-size:clamp(1.3rem,2.2vw,1.85rem);overflow-wrap:anywhere;max-width:100%}
.summary-label{color:#e1eee5}.net-summary p,.net-summary #summary-currency{color:#c7ddcf;font-size:.75rem}
.next-button{border:1px solid #ccd9cc;border-radius:7px;padding:10px 14px;font-size:.8125rem;color:#3a5944;gap:12px}
.site-footer{flex-wrap:wrap;gap:12px;padding-bottom:28px}.site-footer>span:first-child{color:#53665b;font-size:.6875rem}
.keyboard-tools{display:none}
dialog{padding:24px;max-height:calc(100dvh - 32px);overflow:auto}
dialog p{font-size:.8125rem;color:#53665b}.dialog-actions{flex-wrap:wrap}.dialog-actions .button{min-height:46px}
.toast{pointer-events:none;font-size:.8125rem;max-width:min(90vw,420px)}
@media(max-width:1023px){
  body{padding-bottom:calc(var(--footer-height) + var(--keyboard-bottom) + 20px)}
  .workspace{grid-template-columns:minmax(0,1fr);gap:20px}.preview-panel{position:static}
  body[data-stage="1"] .preview-panel,body[data-stage="2"] .preview-panel{display:none}
  main{padding:22px 4% 0}.topbar{padding-left:4%;padding-right:4%;gap:12px}
  .header-note,.workspace-assurance,.step-state{display:none}
  .brand{min-width:125px;font-size:24px}.brand-mark{height:34px;width:30px}
  .header-actions .button{padding:0 12px;font-size:.75rem}
  .header-actions #share-pdf,.header-actions #download{display:none!important}
  .page-heading p{font-size:.8125rem}.native-downloads{gap:10px 16px;margin-bottom:18px}
  .native-requirement{display:none}.native-downloads>button{font-size:.75rem;min-height:44px}
  .step-navigation{gap:8px}.step-navigation>button{padding:12px 10px;gap:8px}
  .step-navigation strong{font-size:.8125rem}.step-navigation small{display:none}
  .step-context{padding:18px 0}.step-context h2{font-size:1.0625rem}.step-context p{font-size:.8125rem}
  #mobile-preview{display:inline-flex;align-items:center;justify-content:center;min-height:44px;font-size:.75rem;padding:10px 13px}
  .field,.row-values .field{font-size:.8125rem}.field input,.field select,.field textarea,.row-values input{font-size:16px!important;min-height:48px}
  .field input,.field select,.field textarea{scroll-margin-top:16px;scroll-margin-bottom:calc(var(--footer-height) + 24px)}
  .section-title h3{font-size:1rem}.section-title p,.section-amount{font-size:.8125rem}
  .field-grid{gap:20px 14px}.form-section,.review-panel{padding:20px}.row-card{padding:16px}
  .income-mode button{min-height:44px;font-size:.8125rem}.add-button{min-height:46px;font-size:.8125rem}
  .hint,.field-guidance p,.privacy-note p,.review-reminder p{font-size:.8125rem}
  .field-error{font-size:.8125rem}.error-panel{margin:16px 20px}
  .guide-footer{position:fixed;bottom:var(--keyboard-bottom);left:0;right:0;z-index:15;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 4% calc(10px + env(safe-area-inset-bottom));box-shadow:0 -3px 20px #203c2810;background:#fff;border-top:1px solid #ccd9cd}
  .guide-footer .button{min-height:46px;white-space:nowrap;font-size:.75rem;padding:0 12px}
  .guide-footer #guide-back{font-size:.75rem;padding:0 10px}
  .guide-footer #guide-next{font-size:.75rem;padding:0 14px}
  .guide-footer #guide-share{font-size:.75rem;padding:0 10px}
  .guide-footer>span{font-size:.6875rem;margin-right:auto}
  .keyboard-open .keyboard-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 100%;border-bottom:1px solid #e2e8e1;padding-bottom:6px;color:#53665b;font-size:.75rem}
  .keyboard-tools span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}
  #keyboard-done{min-height:36px;border:0;background:#eef4ed;color:#244b38;border-radius:5px;padding:4px 12px;font-size:.75rem;font-weight:600}
  .keyboard-open .guide-footer{padding-bottom:8px}
  .toast{bottom:calc(var(--footer-height) + var(--keyboard-bottom) + 14px)}
  .site-footer{padding-bottom:28px;align-items:center}.next-button{margin-left:auto}
  .preview-canvas{min-height:0;max-height:none;padding:20px 4%}.preview-toolbar{flex-wrap:wrap}
  .preview-footer{font-size:.6875rem}.review-net strong{font-size:clamp(1.15rem,5vw,1.5rem)}
  .mobile-preview-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px);padding:0}
}
@media(max-width:420px){
  .step-context{display:block}.step-navigation>button{align-items:flex-start;flex-direction:column}
  .row-values{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
  .row-values:not(.compact-values):not(.fixed-values)>.field:last-child{grid-column:1/-1}
  .guide-footer #guide-back,.guide-footer #guide-share,.guide-footer #guide-next{font-size:.6875rem;padding-left:9px;padding-right:9px}
  .guide-footer{gap:6px}.form-section,.review-panel{padding:18px}.row-card{padding:14px}
}
@media(max-height:480px) and (max-width:1023px){.guide-footer{padding-top:6px;padding-bottom:6px}.guide-footer .button{min-height:40px}.keyboard-tools{padding-bottom:3px}main{padding-top:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
@media print{body{padding-bottom:0}.keyboard-tools,.guide-footer{display:none!important}#pages{opacity:1!important}.preview-panel{display:block!important}}

:focus-visible{outline:3px solid #247a50;outline-offset:3px}#step-title:focus{outline:none}
