@layer reset, base, components, layout, responsive, accessibility, print;
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  body, h1, h2, h3, p, dl, dd, fieldset { margin: 0; }
  button, input, select, textarea { font: inherit; max-width:100%; }
  button, summary, input[type=radio], input[type=checkbox] { cursor: pointer; }
  fieldset { padding:0; border:0; min-width:0; }
  button { border:0; color:inherit; }
  a { color:inherit; }
  [hidden] { display:none !important; }
}
@layer base {
  :root { --paper:#f8f5ef; --surface:#fffdf9; --white:#fff; --soft:#edf0e8; --ink:#193c2e; --green:#194c38; --muted:#49534c; --border:#788579; --divider:#d6cebf; --accent:#9b4b30; --warning-surface:#f8ece3; --error:#973b2f; --error-surface:#fff1ee; --focus:#a44e25; --serif:Georgia,'Times New Roman',serif; color-scheme:light; }
  body { background:var(--paper); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-size:1.125rem; line-height:1.55; }
  h1,h2 { font-family:var(--serif); font-weight:400; letter-spacing:-.035em; line-height:1.12; }
  h1 { font-size:clamp(2.5rem,6vw,6rem); }
  h2 { font-size:clamp(2rem,3vw,2.75rem); }
  h3 { font-size:1.25rem; line-height:1.3; font-weight:600; }
  p,li,dt,dd,th,td,label,button,summary,h2,h3 { overflow-wrap:anywhere; }
  a,.text-button { text-underline-offset:.28em; text-decoration-thickness:1px; }
  :focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
  ::selection { color:white; background:var(--green); }
  .eyebrow { font-size:1rem; font-weight:500; letter-spacing:.09em; }
  .field-hint,.result-note,.footer-note { color:var(--muted); font-size:1rem; }
  .field-hint { margin-top:.5rem; }
  .sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
  .skip-link { position:fixed;z-index:10;top:.75rem;left:.75rem;padding:.75rem 1rem;color:white;background:var(--green);transform:translateY(-200%); }
  .skip-link:focus { transform:translateY(0); }
  .amount { font-variant-numeric:tabular-nums; white-space:normal; display:inline-block;max-width:100%; }
  .amount-digits { white-space:nowrap; }
}
@layer layout {
  .wrap { width:min(calc(100% - 6.5rem),90rem); margin-inline:auto; }
  .site-header { min-height:98px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;border-bottom:1px solid var(--divider); }
  .site-header nav { display:flex;gap:3rem; }
  .brand { display:flex;align-items:center;gap:.85rem;text-decoration:none;font-size:2rem;line-height:1;font-weight:650;letter-spacing:-.07em;white-space:nowrap; }
  .brand svg { width:2.3rem;height:2.3rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }
  .brand-light { font-weight:400; } .brand-dot { color:var(--accent); }
  .welcome { display:grid;grid-template-columns:58% 42%;min-height:calc(100dvh - 98px); }
  .welcome-copy { padding:3.7rem 2.8rem 2rem max(3.25rem,5.55vw); }
  .welcome h1 { margin-top:1.55rem;font-size:clamp(4rem,6.65vw,6.2rem);line-height:1.005;letter-spacing:-.04em; }
  .welcome-description { margin-top:1.2rem;font-size:1.5rem;line-height:1.48;color:#30363b; }
  .welcome .start-button { margin-top:1.7rem;min-width:21.25rem;min-height:3.7rem;font-size:1.5rem;font-weight:600; }
  .welcome-support { display:flex;gap:clamp(1rem,5.8vw,5.8rem);margin-top:1.1rem; }
  .welcome-support .text-button { white-space:nowrap;gap:.65rem; }
  .welcome-reassurance { margin-top:1.2rem;color:#30363b; }
  .welcome-path { display:flex;align-items:center;list-style:none;padding:0;margin:2.5rem 0 2.5rem;gap:1.4rem;font-size:1rem; }
  .welcome-path li { display:flex;align-items:center;gap:1.2rem;white-space:nowrap; }
  .welcome-path li:not(:last-child)::after { content:'';width:clamp(1rem,4.5vw,4.5rem);height:1px;background:#aaa395;margin-left:.25rem; }
  .welcome-path span { display:grid;place-items:center;min-width:2rem;min-height:2rem;border-radius:50%;background:var(--green);color:white;font-size:1.2rem; }
  .welcome-preparation { border-top:1px solid #aaa395;padding-top:1.5rem;color:#30363b;font-size:1.125rem; }
  .welcome-preparation > p { display:flex;align-items:center;gap:1rem; }
  .welcome-preparation img { flex-shrink:0; }
  .welcome-preparation > div { margin-top:1.9rem;display:flex;gap:2rem;align-items:center;font-size:.9375rem; }
  .welcome-preparation > div p+p { border-left:1px solid var(--divider);padding-left:1.8rem; }
  .welcome-photo { width:100%;height:100%;max-height:none;min-height:0;object-fit:cover;object-position:50% 50%; }
  .workspace-tools { display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;position:sticky;top:0;z-index:2;padding-block:.85rem;background:var(--paper);border-bottom:1px solid var(--divider); }
  .workspace-tools > div { display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center; }
  body:not(.has-worksheet) .workspace-tools { position:static;border:0;padding:0; }
  body:not(.has-worksheet) .workspace-tools:not(:has(button:not([hidden]))) { display:none; }
  #draft-status:empty { display:none; }
  .worksheet-shell { padding-bottom:2rem; }
  #workspace { display:grid;grid-template-columns:16rem minmax(0,1fr);gap:clamp(2rem,6vw,6rem);padding-block:2.5rem 3rem;scroll-margin-top:5rem; }
  .chapter-rail { padding-top:.4rem; }
  .chapter-rail h2 { font-size:1.9rem;line-height:1.25;margin-block:1rem; }
  .chapter-rail > p:not(.eyebrow) { font-size:1rem;color:var(--muted); }
  #step-list { list-style:none;padding:0;margin:2rem 0; }
  #step-list li { padding:.55rem 0;display:flex;gap:1rem;align-items:center;font-size:1rem;color:var(--muted); }
  #step-list span { width:1.8rem;height:1.8rem;display:grid;place-items:center;border:1px solid var(--divider);border-radius:50%; }
  #step-list [aria-current] { font-weight:650;color:var(--ink); }
  #step-list [aria-current] span { background:var(--green);border-color:var(--green);color:white; }
  .question-panel { max-width:48rem;min-width:0; }
  .section-heading .eyebrow { margin-bottom:.9rem; }
  #step-description { margin-top:1rem;color:var(--muted);max-width:42rem; }
  #question-count { margin-top:1rem; }
  #step-content { margin-top:2rem; }
  .section-content { display:grid;grid-template-columns:minmax(0,1fr);gap:1.75rem; }
  .section-content > * { min-width:0; }
  .mode-notice { font-size:1rem;color:var(--muted);padding-bottom:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--divider); }
  .step-actions { display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--divider); }
  .step-actions .primary-button { min-width:10rem; }
  .site-footer { display:flex;justify-content:space-between;gap:2rem;padding-block:1.5rem;border-top:1px solid var(--divider);font-size:.9375rem; }
  .site-footer > div { display:flex;gap:1.5rem; }
}
@layer components {
  .guide-icon { display:inline-block;width:1.75rem;height:1.75rem;flex-shrink:0;vertical-align:middle; }
  .primary-button .guide-icon { filter:brightness(0) invert(1); }
  .illustrated-label,.result-section-heading,.result-status { display:flex;align-items:center;gap:.65rem; }
  .field .illustrated-label { display:flex; }
  .illustrated-label > span,.result-section-heading > h3 { min-width:0; }
  .icon-notice { display:flex;align-items:flex-start;gap:.85rem; }
  .icon-notice > div { min-width:0;overflow-wrap:anywhere; }
  .icon-notice details { margin-top:.65rem; }
  .icon-notice summary { min-height:3rem;padding-block:.6rem;text-decoration:underline;text-underline-offset:.25em; }
  .icon-notice ul { padding-left:1.25rem; }
  .fee-visual { padding:1.25rem;background:var(--soft);border-radius:.35rem; }
  .fee-equation,.money-journey,.payment-concept { list-style:none;padding:0;margin:0;display:grid;gap:1rem; }
  .fee-equation,.payment-concept { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .fee-equation li,.payment-concept li { display:flex;flex-direction:column;align-items:flex-start;gap:.3rem;min-width:0; }
  .fee-equation li > span { color:var(--muted);font-size:1rem; }
  .fee-equation strong { font-size:1.25rem;font-variant-numeric:tabular-nums; }
  .fee-formula-copy { margin-top:1rem;font-size:1rem; }
  .fee-formula-copy .guide-icon { margin-right:.5rem; }
  .fee-cap { margin-top:1rem;border-top:1px solid var(--divider);padding-top:1rem; }
  .fee-cap p { display:flex;justify-content:space-between;gap:.5rem;flex-wrap:wrap;font-size:1rem; }
  .fee-cap p > span { color:var(--muted); }
  .fee-cap meter { display:block;width:100%;height:1.2rem;margin-top:.6rem;accent-color:var(--green); }
  .fee-cap meter::-webkit-meter-bar { background:var(--paper);border:1px solid var(--border);border-radius:.25rem; }
  .fee-cap meter::-webkit-meter-optimum-value { background:var(--green); }
  .fee-cap meter::-moz-meter-bar { background:var(--green); }
  .money-journey { grid-template-columns:repeat(4,minmax(0,1fr));padding-block:1.1rem;border-block:1px solid var(--divider); }
  .money-journey li { display:grid;gap:.65rem;align-content:start;min-width:0; }
  .money-journey strong,.payment-concept strong { font-size:1rem;overflow-wrap:anywhere; }
  .money-journey p,.payment-concept small { margin-top:.25rem;font-size:1rem;color:var(--muted); }
  .payment-concept { padding:1.25rem;background:var(--soft);border-radius:.35rem; }
  .review-overview { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;padding:1.25rem;background:var(--soft); }
  .review-overview > div { display:grid;grid-template-columns:auto 1fr;gap:.3rem .65rem;align-items:center; }
  .review-overview strong { font-size:1.75rem;font-variant-numeric:tabular-nums; }
  .review-overview span { grid-column:1/-1;font-size:1rem;min-width:0;overflow-wrap:anywhere; }
  .review-topic { margin:0;padding-block:.85rem; }
  .review-topic summary { min-height:3rem;cursor:pointer; }
  .review-topic summary > span { display:inline-block;width:calc(100% - 5rem);vertical-align:middle;margin-left:.65rem;overflow-wrap:anywhere; }
  .review-topic summary strong { font-size:1.125rem;font-weight:600; }
  .review-topic summary small { display:block;font-size:1rem;color:var(--muted);margin-top:.25rem; }
  .next-question-list { list-style:none;padding:0;margin-block:1rem; }
  .next-question-list li { display:flex;gap:.85rem;align-items:flex-start;padding-block:.8rem;border-bottom:1px solid var(--divider); }
  .next-question-list li > span { min-width:0; }
  .result-status { margin-block:.75rem;color:var(--muted);font-size:1rem; }
  .result-source-details { margin-top:.5rem; }
  .result-source-details > summary { font-weight:500; }
  .contract-input-options { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-block:1.25rem; }
  .contract-input-choice { width:100%;justify-content:flex-start; }
  .contract-control-guide { list-style:none;padding:0;margin-block:1rem;display:grid;gap:1.25rem; }
  .contract-control-guide li { display:flex;align-items:flex-start;gap:.85rem; }
  .contract-control-guide p { font-size:1rem;color:var(--muted);margin-top:.25rem; }
  .contract-scan-tips { padding-left:1.5rem; }
  .contract-scan-tips li { margin-block:.5rem; }
  .text-button { display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem;padding:.5rem .125rem;background:transparent;color:var(--ink);text-decoration:underline;font-size:1.125rem;text-align:left;line-height:1.4; }
  .text-button:hover:not(:disabled) { color:var(--accent); }
  .primary-button,.secondary-button { display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3rem;padding:.7rem 1.3rem;border:1px solid var(--green);border-radius:.35rem;text-align:center;text-decoration:none;font-size:1.125rem;font-weight:600;line-height:1.4; }
  .primary-button { color:white;background:var(--green); }
  .primary-button:hover:not(:disabled) { background:#103726; }
  .secondary-button { color:var(--green);background:transparent; }
  .secondary-button:hover:not(:disabled) { background:var(--soft); }
  button:disabled { cursor:not-allowed;background:var(--soft);color:var(--muted);border-color:var(--border); }
  label,legend { display:block;font-weight:600;line-height:1.4; }
  .field { min-width:0; }
  .field > label,.field-source label,legend { margin-bottom:.65rem; }
  input:not([type=radio]):not([type=checkbox]):not([type=range]):not([type=hidden]),select,textarea { width:100%;min-width:0;min-height:3.25rem;border:1px solid var(--border);border-radius:.25rem;background:var(--white);color:var(--ink);padding:.65rem .75rem;line-height:1.4; }
  input[type=number] { font-variant-numeric:tabular-nums; }
  textarea { resize:vertical; }
  input::placeholder,textarea::placeholder { color:var(--muted);opacity:1; }
  input:disabled { background:#eeeee7;color:var(--muted); }
  input[type=radio],input[type=checkbox] { width:1.4rem;height:1.4rem;accent-color:var(--green);margin:0;flex-shrink:0; }
  label:has(>input[type=checkbox]) { display:flex;align-items:center;gap:.75rem;min-height:3rem;font-weight:400; }
  input[type=range] { width:100%;min-height:3rem;accent-color:var(--green); }
  [aria-invalid=true] { border:2px solid var(--error) !important; }
  .field-controls { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:end; }
  .field-controls > div > label { display:block; margin-bottom:.65rem; }
  .certainty-control label { font-weight:400;font-size:1rem; }
  .certainty-control select { font-size:1rem; }
  .field-error { color:var(--error);font-weight:600;margin-top:.6rem; }
  .field-error:empty { display:none; }
  .field-source { margin-top:.5rem; }
  .field-source summary,.context-help summary { min-height:3rem;padding-block:.6rem;color:var(--green);font-size:1rem;text-decoration:underline;text-underline-offset:.25em; }
  .field-source label { margin-top:.7rem;font-size:1rem; }
  .field-source textarea { font-size:1rem; }
  .context-help p { margin-block:.5rem; }
  .country-options { display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem; }
  .country-options label { display:flex;gap:1rem;align-items:center;padding:1.4rem;border:1px solid var(--border);border-radius:.35rem;font-size:1.25rem; }
  .country-options label:has(:checked) { background:var(--soft);border:2px solid var(--green);padding:calc(1.4rem - 1px); }
  .notice,.guidance-note,.warning,.error { padding:1rem 1.25rem;border-left:3px solid var(--green);background:var(--soft);font-size:1rem; }
  .warning { color:#713922;border-color:var(--accent);background:var(--warning-surface); }
  .error { color:var(--error);background:var(--error-surface);border-color:var(--error); }
  .notice p+p,.guidance-note p+p,.warning p+p { margin-top:.75rem; }
  .action-row { display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:1.25rem; }
  .answer-list > div { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:1.25rem;padding-block:1rem;border-bottom:1px solid var(--divider); }
  .answer-list dt { font-size:1rem; }
  .answer-list dd { font-variant-numeric:tabular-nums; }
  .answer-list dd > .text-button { display:flex;justify-content:flex-start;margin-top:.4rem; }
  .answer-list small,.answer-status { display:block;font-size:1rem;color:var(--muted);margin-top:.25rem; }
  .review-group { margin-top:1rem;padding-top:1rem;border-top:1px solid var(--divider); }
  .review-group > header { display:flex;gap:1rem;align-items:center;justify-content:space-between; }
  .question-list { padding-left:1.5rem;margin-block:1rem; }
  .question-list li+li { margin-top:.7rem; }
  .payment-row { display:grid;gap:1rem;border-top:1px solid var(--divider);padding-top:1rem; }
  .payment-summary { padding-left:1.5rem; }
  .payment-summary [aria-current] { font-weight:650; }
  .table-wrap { max-width:100%;overflow-x:auto; }
  .table-wrap .amount { white-space:nowrap;max-width:none; }
  table { border-collapse:collapse;width:100%;font-size:1rem; }
  th,td { padding:.8rem .5rem;border-bottom:1px solid var(--divider);text-align:left;vertical-align:top;font-variant-numeric:tabular-nums; }
  th { font-weight:600; }
  td:not(:first-child) { text-align:right; }
  thead { background:var(--soft); }
  .result-details { border-bottom:1px solid var(--divider); }
  .result-details > summary { min-height:3rem;padding-block:1rem;font-weight:600; }
  .result-details[open] { padding-bottom:1.5rem; }
  .result-card { padding:1.75rem;background:var(--soft);border-radius:.4rem; }
  .result-label { font-size:.9375rem;letter-spacing:.04em;margin-bottom:.7rem; }
  #payout { display:block;font-family:var(--serif);font-size:clamp(1.75rem,4.2vw,3.8rem);letter-spacing:-.04em;line-height:1.2;margin-block:.8rem; }
  .result-note { margin-top:.75rem; }
  .chart-wrap { height:20rem;position:relative;max-width:100%;margin-block:1rem; }
  .waterfall-rows { display:grid;gap:0; }
  .waterfall-rows button { display:flex;align-items:center;justify-content:space-between;gap:1rem;background:transparent;border-bottom:1px solid var(--divider);min-height:3.25rem;text-align:left;padding:.75rem; }
  .waterfall-rows button[aria-pressed=true] { background:var(--soft);box-shadow:inset 3px 0 var(--green); }
  .waterfall-rows .negative { color:var(--accent); }
  .waterfall-detail { padding:1.25rem;border:1px solid var(--divider);margin-top:1rem; }
  .waterfall-detail p { margin-top:.5rem; }
  .timeline { list-style:none;padding:0; }
  .timeline li { padding:0 0 1.5rem 1.5rem;border-left:2px solid var(--divider);margin-left:.35rem;position:relative; }
  .timeline li::before { content:'';position:absolute;width:.8rem;height:.8rem;background:var(--green);border-radius:50%;left:-.46rem;top:.45rem; }
  .timeline time { display:block;font-size:1rem;color:var(--muted); }
  .timeline .unresolved::before { background:var(--paper);border:2px solid var(--accent); }
  .timeline strong { display:block; }
  .what-if-grid { display:grid;gap:1rem;margin-block:1.25rem; }
  .what-if-output { margin-block:1.25rem;padding:1.25rem;background:var(--soft); }
  .what-if-output p+p { margin-top:.5rem; }
  .summary-actions { border-top:1px solid var(--divider);padding-top:1.5rem; }
  dialog { width:min(44rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:2rem;border:1px solid var(--divider);border-radius:.5rem;background:var(--paper);color:var(--ink); }
  dialog::backdrop { background:rgb(25 60 46 / 45%); }
  dialog h2 { margin-bottom:1rem; }
  dialog h3 { margin-top:1.5rem; }
  dialog p+p,dialog h3+p { margin-top:.75rem; }
  dialog > .close-dialog { display:block;margin-left:auto;margin-bottom:1rem; }
  #share-dialog label { margin-block:1.25rem .65rem; }
  #share-preview { font-size:1rem;line-height:1.6; }
  body:has(dialog[open]) { overflow:hidden; }
  #contract-dialog { width:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;border-radius:0;padding:2rem max(1.5rem,4vw); }
  .contract-reader-header { display:grid;grid-template-columns:1fr auto;align-items:center;gap:1rem;border-bottom:1px solid var(--divider);padding-bottom:1rem;margin-bottom:1.5rem; }
  #contract-title { grid-column:1/-1; margin:0; }
  .contract-return { justify-self:start; }
  .contract-reader-steps { grid-column:1/-1; display:flex;gap:1.5rem;padding:0;list-style:none;font-size:1rem; }
  .contract-reader-steps [aria-current] { color:var(--ink);font-weight:700; }
  #contract-content { margin-top:1.5rem; }
  .contract-reader-grid { display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:3rem;margin-block:1.5rem; }
  .contract-document,.contract-mapping { min-width:0; }
  .contract-mapping { padding-left:2rem;border-left:1px solid var(--divider); }
  #contract-content .field,#contract-content details,#contract-original,#contract-figure-form > * { margin-top:1.25rem; }
  #contract-content details > summary { min-height:3rem;padding-block:.5rem;color:var(--green); }
  .contract-target { margin-block:1rem;padding:1rem 1.25rem;background:var(--soft); }
  #contract-content progress { display:block;width:100%;height:1rem;accent-color:var(--green);margin-block:1rem; }
  #contract-original { overflow-wrap:anywhere; }
  #contract-original > a { display:inline-block;min-height:3rem;padding-block:.5rem; }
  .contract-file-list { list-style:none;padding:0; }
  .contract-file-list li { display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding-block:.75rem;border-bottom:1px solid var(--divider); }
  .contract-file-list li > span { flex:1;min-width:0; }
  .contract-photo { display:block;max-width:100%;max-height:30rem;margin-top:1rem;object-fit:contain; }
  #contract-text { font-size:1rem;white-space:pre-wrap;min-height:20rem; }
  .contract-values { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem; }
  .contract-values > div { min-width:0;padding:.75rem;background:var(--soft); }
  .contract-values dt { font-weight:600; }
  .contract-values dd { margin-top:.5rem;font-variant-numeric:tabular-nums; }
  #print-report { display:none; }
}
@layer responsive {
  @media (min-width:1600px) { .welcome-copy { padding-left:max(5.5vw,calc((100vw - 1440px)/2)); } }
  @media (max-width:1250px) {
    .welcome-support { flex-wrap:wrap;gap:.25rem 1.5rem; }
    .welcome-path { gap:.8rem;flex-wrap:wrap; }
    .welcome-path li { gap:.6rem; }
    .welcome-path li:not(:last-child)::after { width:1rem; }
    .welcome-preparation > div { flex-wrap:wrap;gap:.5rem; }
    .welcome-preparation > div p+p { border:0;padding:0; }
    #workspace { grid-template-columns:12rem minmax(0,1fr);gap:2.5rem; }
  }
  @media (max-width:900px) {
    .wrap { width:calc(100% - 3rem); }
    .site-header nav { gap:1.5rem; }
    .brand { font-size:1.7rem; }
    .welcome-copy { padding:2.5rem 1.5rem; }
    .welcome { grid-template-columns:60% 40%; }
    .welcome h1 { font-size:clamp(3rem,6.5vw,4rem); }
    .welcome-description { font-size:1.25rem; }
    .welcome .start-button { min-width:0;width:100%; }
    .welcome-path { flex-direction:column;align-items:flex-start;gap:1rem;margin-block:2rem; }
    .welcome-path li:not(:last-child)::after { display:none; }
    #workspace { display:block; }
    .chapter-rail { display:none; }
    .question-panel { max-width:44rem;margin:auto; }
    .contract-reader-grid { gap:1.5rem; }
    .contract-mapping { padding-left:1.5rem; }
  }
  @media (max-width:650px) {
    .money-journey { grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem; }
    .contract-input-options { grid-template-columns:minmax(0,1fr); }
    .fee-visual { padding:1rem; }
    .fee-equation { gap:.75rem; }
    .fee-equation li > span,.fee-equation strong { font-size:1rem; }
    .wrap { width:calc(100% - 2rem); }
    .site-header { flex-wrap:wrap;padding-block:1rem;gap:.75rem;min-height:0; }
    .brand { font-size:min(1.7rem,7vw); }
    .brand svg { width:min(2.3rem,9vw);height:auto; }
    .site-header nav { width:100%;justify-content:space-between;gap:.5rem; }
    .site-header .text-button { font-size:1rem; }
    .welcome { display:flex;flex-direction:column;min-height:0; }
    .welcome-copy { padding:2rem 1rem 1.5rem; }
    .welcome h1 { font-size:clamp(2.7rem,9vw,4rem);line-height:1.07; }
    .welcome-description { margin-top:1.5rem; }
    .desktop-break { display:none; }
    .welcome .start-button { font-size:1.25rem; }
    .welcome-support { flex-direction:column;align-items:flex-start;gap:.5rem; }
    .welcome-path { margin-block:1.75rem; }
    .welcome-preparation > div { font-size:1rem; }
    .welcome-photo { height:24rem;width:100%;object-position:center 58%; }
    .workspace-tools { position:static;gap:.5rem;padding-bottom:1rem; }
    body.has-worksheet { padding-bottom:5rem; }
    .has-worksheet #save-draft { position:fixed;z-index:4;bottom:0;left:0;width:100%;min-height:3.5rem;padding-bottom:max(.7rem,env(safe-area-inset-bottom));border-radius:0;background:var(--paper); }
    .workspace-tools > div { gap:.25rem 1rem; }
    .workspace-tools .text-button { font-size:1rem; }
    #workspace { padding-top:1.5rem;scroll-margin-top:1rem; }
    .field-controls,.country-options,.answer-list > div,.contract-reader-grid,.contract-values { grid-template-columns:minmax(0,1fr); }
    .answer-list > div { gap:.5rem; }
    .field-controls { gap:.75rem; }
    .country-options label { padding:1.1rem; }
    .country-options label:has(:checked) { padding:calc(1.1rem - 1px); }
    .result-card { padding:1.1rem; }
    #payout { font-size:clamp(1.125rem,6.6vw,2.75rem);max-width:100%;overflow-x:auto; }
    #payout .amount { display:flex;flex-wrap:wrap;column-gap:.25em;white-space:normal; }
    #payout .amount-digits { white-space:nowrap; }
    .waterfall-rows button { flex-wrap:wrap;gap:.25rem;padding:.75rem .35rem; }
    .waterfall-rows .amount { font-size:1rem; }
    .waterfall-detail { padding:1rem; }
    .waterfall-detail h3 { font-size:1.125rem; }
    .what-if-output { padding:1rem; }
    .chart-wrap { height:18rem; }
    .site-footer { flex-direction:column;gap:.75rem; }
    .site-footer > div { flex-wrap:wrap; }
    .step-actions { gap:1rem; }
    .step-actions .primary-button { min-width:0;max-width:65%; }
    .action-row { flex-direction:column;align-items:stretch; }
    .review-group > header { flex-wrap:wrap; }
    dialog { padding:1.25rem; }
    #contract-dialog { padding:1rem; }
    .contract-mapping { padding:0;border:0; }
    .contract-reader-header { display:flex; flex-direction:column;align-items:flex-start;gap:.75rem; }
    .contract-reader-steps { display:none; }
    .contract-values dd { font-size:1rem; }
  }
  @media (max-width:400px) {
    .icon-notice { display:block; }
    .icon-notice > .guide-icon { margin-bottom:.5rem; }
    .fee-equation,.payment-concept,.review-overview { grid-template-columns:minmax(0,1fr); }
    .fee-equation li { display:grid;grid-template-columns:auto 1fr;gap:.15rem .65rem; }
    .fee-equation .guide-icon { grid-row:1/3;align-self:center; }
    .fee-equation strong { grid-column:2; }
    .money-journey { grid-template-columns:minmax(0,1fr); }
    .money-journey li { display:flex;gap:.85rem; }
    .review-topic summary > span { width:calc(100% - 4rem);margin-left:.3rem; }
    .review-topic summary .guide-icon { width:1.3rem;height:1.3rem; }
  }
}
@layer accessibility {
  @media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important;transition:none !important;animation:none !important; } }
  @media (forced-colors:active) { :focus-visible { outline-color:Highlight; } input,select,textarea,button,.country-options label { border:1px solid ButtonText; } .country-options label:has(:checked),.waterfall-rows [aria-pressed=true] { border:3px solid Highlight; } .notice,.warning,.error { border-color:CanvasText; } }
}
@layer print {
  @media print {
    @page { margin: 16mm; size: A4; }
    body { color: #000000; background: #ffffff; font-size: 11pt; line-height: 1.5; }
    body > *:not(#print-report) { display: none !important; }
    #print-report { display: block; }
    #print-report .report-source-summary a::after { content:none; }
    #print-report .report-source-summary { font-size:9.5pt; }
    #print-report .report-summary h1 { font-size:22pt; margin-bottom:6pt; }
    #print-report .report-summary h2 { font-size:15pt; margin:10pt 0 6pt; }
    #print-report .report-summary p { margin-block:6pt; }
    #print-report .report-summary table { margin-block:6pt; }
    #print-report .report-summary th,#print-report .report-summary td { padding:4pt; }
    #print-report .report-appendix { break-before:page; }
    #print-report h1 { font-size: 24pt; margin-bottom: 12pt; }
    #print-report h2 { font-size: 17pt; margin: 18pt 0 10pt; }
    #print-report h3 { font-size: 12pt; margin-top: 14pt; }
    #print-report p { margin-block: 8pt; }
    #print-report .report-total { font-family: var(--serif); font-size: 25pt; overflow-wrap: anywhere; }
    #print-report table { table-layout: fixed; font-size: 10.5pt; margin-block: 10pt; }
    #print-report th, #print-report td { padding: 6pt; overflow-wrap: anywhere; }
    #print-report th { background: none; }
    #print-report tr { break-inside: avoid; }
    #print-report h2, #print-report h3 { break-after: avoid; }
    #print-report .report-scenario + .report-scenario { break-before: page; }
    #print-report a { color: #000000; }
    #print-report .report-sources .review-group { break-inside: avoid; margin-top: 10pt; padding-top: 8pt; }
    #print-report .report-sources h3 { margin-top: 0; }
    #print-report .report-sources p { margin-block: 3pt; font-size: 10.5pt; }
    #print-report .report-sources a { display: block; margin-block: 3pt; overflow-wrap: anywhere; font-size: 10.5pt; }
    #print-report a::after { content: ' — ' attr(href); }
    #print-report .warning, #print-report .error, #print-report .notice { color: #000000; background: none; border-color: #000000; }
  }
}
