:root {
    --audit-blue: #00a8e1;
    --audit-blue-dark: #007fae;
    --audit-navy: #18384b;
    --audit-ink: #263d4c;
    --audit-muted: #607786;
    --audit-line: #dce7ed;
    --audit-pale: #f3f8fb;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: var(--audit-ink);
    background: #fff;
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; min-width: 320px; background: radial-gradient(ellipse at 87% 1%, rgba(0, 168, 225, .055), transparent 30rem), #fff; color: var(--audit-ink); font-size: 16px; line-height: 1.65; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
[hidden] { display: none !important; }
a { color: inherit; }

.site-header, .site-footer { width: min(1160px, calc(100% - 48px)); margin-inline: auto; display: flex; align-items: center; justify-content: space-between; }
.site-header { min-height: 82px; }
.header-actions { display: flex; align-items: center; gap: 20px; }
.brand { display: inline-flex; align-items: center; gap: 11px; color: var(--audit-navy); font-weight: 720; line-height: 1.15; text-decoration: none; letter-spacing: -.02em; }
.brand img { display: block; width: 52px; height: 36px; object-fit: contain; }
.brand small { display: block; margin-top: 5px; color: var(--audit-muted); font-size: .68rem; font-weight: 500; letter-spacing: .035em; }
.header-link, .language-link, .site-footer > a:last-child { color: var(--audit-muted); font-size: .86rem; font-weight: 600; text-decoration: none; }
.header-link:hover, .language-link:hover, .site-footer > a:last-child:hover { color: var(--audit-blue-dark); }

.hero { position: relative; isolation: isolate; overflow: hidden; width: min(1160px, calc(100% - 48px)); min-height: 470px; margin: 12px auto 0; padding: clamp(42px, 7vw, 78px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(330px, .75fr); align-items: center; gap: clamp(30px, 6vw, 88px); border: 1px solid #e8f0f4; border-radius: 28px; background: radial-gradient(ellipse at 76% 50%, rgba(0, 168, 225, .105), transparent 37%), linear-gradient(125deg, #f8fbfd, #f1f8fb); }
.hero::before { position: absolute; z-index: -1; inset: 0; content: ""; opacity: .3; pointer-events: none; background-image: radial-gradient(rgba(0, 134, 179, .25) .8px, transparent .8px); background-size: 22px 22px; mask-image: linear-gradient(90deg, transparent 35%, #000); }
.hero-copy { position: relative; z-index: 1; max-width: 670px; }
.eyebrow, .principle-kicker { margin: 0; color: var(--audit-blue-dark); font-size: .75rem; font-weight: 750; letter-spacing: .095em; line-height: 1.5; text-transform: uppercase; }
.hero .eyebrow { display: flex; align-items: center; gap: 9px; }
.eyebrow-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--audit-blue); box-shadow: 0 0 0 5px rgba(0, 168, 225, .11); }
h1, h2, h3, p { margin-top: 0; }
.hero h1 { max-width: 700px; margin: 20px 0 18px; color: var(--audit-navy); font-size: clamp(2.5rem, 5vw, 4.35rem); font-weight: 690; line-height: 1.04; letter-spacing: -.058em; }
.hero h1 span { color: var(--audit-blue-dark); }
.hero-lead { max-width: 590px; margin-bottom: 12px; color: var(--audit-navy); font-size: clamp(1.12rem, 1.8vw, 1.35rem); font-weight: 570; line-height: 1.48; }
.hero-description { max-width: 580px; margin-bottom: 0; color: var(--audit-muted); font-size: .96rem; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 19px; margin-top: 25px; }
.button { display: inline-flex; min-height: 46px; align-items: center; justify-content: center; gap: 12px; padding: 11px 18px; border: 1px solid transparent; border-radius: 8px; cursor: pointer; font-size: .88rem; font-weight: 680; text-decoration: none; transition: transform 180ms ease, box-shadow 180ms ease, background 180ms ease; }
.button:hover { transform: translateY(-2px); }
.button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.button-primary { background: linear-gradient(120deg, var(--audit-blue), var(--audit-blue-dark)); box-shadow: 0 8px 18px rgba(0, 134, 179, .2); color: #fff; }
.button-primary:hover { box-shadow: 0 11px 24px rgba(0, 134, 179, .27); }
.button-secondary { border-color: #d6e3e9; background: #fff; color: var(--audit-navy); }
.button-secondary:hover, .button-quiet:hover { border-color: #95c7d8; background: #f2f9fc; }
.button-quiet { border-color: #dfe8ed; background: #fff; color: #58717f; }
.text-button { padding: 4px 0; border: 0; background: none; color: #5b7786; cursor: pointer; font-size: .8rem; font-weight: 620; text-decoration: underline; text-decoration-color: #bfd0d8; text-underline-offset: 3px; }
.text-button:hover { color: var(--audit-blue-dark); text-decoration-color: currentColor; }
.hero-note { margin: 13px 0 0; color: #718792; font-size: .75rem; }
.button:focus-visible, .text-button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible, .area-tab:focus-visible { outline: 3px solid rgba(0, 168, 225, .44); outline-offset: 3px; }

.sample-card { position: relative; width: 100%; max-width: 420px; justify-self: center; padding: 25px 26px 19px; border: 1px solid #dce9ef; border-radius: 15px; background: rgba(255,255,255,.92); box-shadow: 0 16px 42px rgba(24,56,75,.09); transform: rotate(1deg); animation: sample-float 6s ease-in-out infinite; }
.sample-card::before { position: absolute; z-index: -1; top: 9px; right: -9px; bottom: -9px; left: 9px; content: ""; border: 1px solid #dce9ef; border-radius: 15px; background: rgba(255,255,255,.54); }
.sample-card-top { display: flex; align-items: center; justify-content: space-between; }
.sample-mark { color: var(--audit-blue-dark); font-size: .65rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.sample-icon { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: #edf7fb; color: var(--audit-blue-dark); }
.sample-card h2 { margin: 20px 0 6px; color: var(--audit-navy); font-size: 1.28rem; letter-spacing: -.03em; }
.sample-question { margin: 0; color: #425d6b; font-size: .94rem; font-weight: 620; }
.sample-card dl { display: grid; gap: 12px; margin: 19px 0 15px; }
.sample-card dl div { display: grid; grid-template-columns: 108px 1fr; gap: 12px; padding-top: 10px; border-top: 1px solid #edf1f3; }
.sample-card dt { color: #718894; font-size: .7rem; }
.sample-card dd { margin: 0; color: var(--audit-ink); font-size: .76rem; font-weight: 560; }
.sample-disclaimer { margin: 0; color: #7d929d; font-size: .68rem; font-style: italic; }

.intro-section, .workflow-section, .review-section, .priority-section, .document-stage, .contact-section { width: min(1000px, calc(100% - 48px)); margin-inline: auto; }
.intro-section { padding: 85px 0 78px; }
.section-marker { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; color: #718996; font-size: .7rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.section-marker > span:first-child { color: var(--audit-blue-dark); font-variant-numeric: tabular-nums; }
.marker-line { width: 35px; height: 1px; background: #b7cbd4; }
.intro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 8vw, 100px); align-items: start; }
.intro-grid h2, .workflow-heading h2, .review-section > h2, .priority-section > h2, .document-stage > h2 { margin: 0; color: var(--audit-navy); font-size: clamp(1.7rem, 3.2vw, 2.45rem); font-weight: 650; line-height: 1.22; letter-spacing: -.04em; }
.intro-grid h2 em { color: var(--audit-blue-dark); font-style: normal; }
.intro-copy { color: var(--audit-muted); font-size: .92rem; }
.intro-copy p { margin-bottom: 13px; }

.workflow-section, .review-section, .priority-section, .document-stage { padding: 15px 0 78px; }
.workflow-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 24px; }
.workflow-heading .eyebrow, .review-section > .eyebrow, .priority-section > .eyebrow, .document-stage > .eyebrow { margin-bottom: 9px; }
.workflow-heading h2 { margin-bottom: 8px; }
.section-lead { max-width: 710px; margin: 9px 0 0; color: var(--audit-muted); font-size: .91rem; }
.progress-card { flex: 0 0 200px; padding: 14px 16px 12px; border: 1px solid var(--audit-line); border-radius: 11px; background: #fff; }
.progress-label { display: block; color: #718894; font-size: .68rem; font-weight: 720; letter-spacing: .07em; text-transform: uppercase; }
.progress-card > strong { display: block; color: var(--audit-navy); font-size: 1.38rem; line-height: 1.25; }
.progress-card > strong span { color: #8196a1; font-size: .87rem; font-weight: 500; }
.progress-detail { color: var(--audit-muted); font-size: .71rem; }
.progress-track { height: 4px; overflow: hidden; margin-top: 10px; border-radius: 10px; background: #eaf1f4; }
.progress-track span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--audit-blue), var(--audit-blue-dark)); transition: width 300ms ease; }
.area-tabs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 18px; }
.area-tab { min-height: 46px; padding: 8px 12px; border: 1px solid var(--audit-line); border-radius: 8px; background: #fff; color: #657f8c; cursor: pointer; font-size: .78rem; font-weight: 620; text-align: left; }
.area-tab.is-current { border-color: #9dcddd; background: #eff8fb; color: var(--audit-blue-dark); box-shadow: inset 0 -2px 0 var(--audit-blue); }

.answer-legend { margin-bottom: 16px; padding: 16px 18px; border: 1px solid #dfe9ee; border-radius: 10px; background: #f9fcfd; }
.legend-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin-bottom: 11px; }
.legend-heading strong { color: var(--audit-navy); font-size: .85rem; }
.legend-heading > span { color: #708793; font-size: .75rem; }
.legend-items { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px 18px; }
.legend-items > span { display: flex; align-items: baseline; gap: 7px; color: #5c7481; font-size: .73rem; }
.legend-items b { display: inline-grid; min-width: 23px; height: 23px; flex: 0 0 auto; place-items: center; border: 1px solid #ccdce3; border-radius: 50%; background: #fff; color: var(--audit-blue-dark); font-size: .67rem; }
.legend-items strong { color: #314957; }
.question-step { min-height: 315px; }
.active-question { padding: clamp(20px, 4vw, 34px); border: 1px solid #dce8ed; border-radius: 13px; background: #fff; box-shadow: 0 10px 28px rgba(24,56,75,.045); animation: arrive .25s ease both; }
.question-position { margin: 0 0 9px; color: var(--audit-blue-dark); font-size: .71rem; font-weight: 740; letter-spacing: .08em; text-transform: uppercase; }
.active-question-title { max-width: 820px; margin: 0; color: var(--audit-navy); font-size: clamp(1.23rem, 2.5vw, 1.75rem); font-weight: 640; line-height: 1.35; letter-spacing: -.025em; }
.question-help { max-width: 780px; margin: 10px 0 22px; color: var(--audit-muted); font-size: .87rem; }
.answer-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.answer-group legend { margin-bottom: 9px; color: #738995; font-size: .72rem; }
.answer-options { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
.answer-choice { position: relative; display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 4px 10px; min-height: 64px; padding: 9px 12px; border: 1px solid #dfe8ed; border-radius: 8px; background: #fff; color: #526e7c; cursor: pointer; transition: border-color .15s, background .15s; }
.answer-choice:hover { border-color: #9dcddd; background: #fbfeff; }
.answer-choice:has(input:checked) { border-color: var(--audit-blue-dark); background: #eff8fb; box-shadow: inset 0 0 0 1px rgba(0,134,179,.12); }
.answer-choice:has(input:focus-visible) { outline: 3px solid rgba(0,168,225,.35); outline-offset: 2px; }
.answer-choice input { width: 16px; height: 16px; margin: 0; accent-color: var(--audit-blue-dark); }
.answer-code { display: inline-grid; min-width: 25px; height: 25px; place-items: center; border: 1px solid #dbe7ec; border-radius: 50%; background: #fff; color: var(--audit-blue-dark); font-size: .7rem; font-weight: 800; }
.answer-label { color: var(--audit-navy); font-size: .79rem; font-weight: 680; }
.answer-description { grid-column: 2 / -1; color: #708691; font-size: .7rem; line-height: 1.4; }
.answer-b:has(input:checked) { border-color: #6b9b79; background: #f2f8f3; }
.answer-c:has(input:checked) { border-color: #c98155; background: #fff8f3; }
.answer-detail { display: grid; gap: 6px; max-width: 630px; margin: 16px 0 0; color: #536f7d; font-size: .75rem; font-weight: 620; animation: arrive .2s ease both; }
.answer-detail input, .meta-field input, .priority-field input { width: 100%; min-width: 0; min-height: 42px; padding: 9px 11px; border: 1px solid #dfe8ed; border-radius: 7px; background: #fff; color: var(--audit-ink); font-size: .83rem; }
.workflow-actions, .review-actions, .priority-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; }
.step-counter { color: #718792; font-size: .73rem; font-variant-numeric: tabular-nums; }
.workflow-bottom { display: flex; justify-content: space-between; gap: 14px; margin-top: 19px; }

.review-section > h2, .priority-section > h2, .document-stage > h2 { margin-bottom: 0; }
.response-counts { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; margin: 22px 0 18px; }
.count-item { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 8px; min-height: 54px; padding: 9px 11px; border: 1px solid var(--audit-line); border-radius: 8px; background: #fff; }
.count-item strong { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 50%; background: #f0f5f7; color: var(--audit-navy); font-size: .8rem; }
.count-item span { color: #5f7885; font-size: .66rem; font-weight: 600; line-height: 1.3; }
.count-critical { border-color: #ead9bd; background: #fffaf2; }
.count-critical strong { background: #f7ead1; color: #78520f; }
.review-toolbar { display: flex; align-items: center; gap: 9px; margin: 10px 0 16px; }
.filter-label { color: #536f7d; font-size: .78rem; font-weight: 650; }
.review-toolbar select { min-height: 36px; padding: 5px 25px 5px 9px; border: 1px solid #d8e4e9; border-radius: 6px; background: #fff; color: var(--audit-ink); font-size: .76rem; }
.review-list { display: grid; gap: 16px; }
.review-area { border: 1px solid #e1eaee; border-radius: 10px; overflow: hidden; }
.review-area h3 { margin: 0; padding: 12px 16px; background: #f5f9fb; color: var(--audit-navy); font-size: .9rem; }
.review-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 15px; padding: 13px 16px; border-top: 1px solid #edf1f3; }
.review-row-c { background: #fffaf6; }
.review-row-d { border-left: 4px solid #c18a25; background: #fff9eb; }
.review-question { display: grid; gap: 7px; }
.review-question > strong { color: #314957; font-size: .8rem; font-weight: 600; }
.response-badge { display: inline-flex; width: fit-content; max-width: 100%; align-items: center; padding: 4px 8px; border: 1px solid #dce6ea; border-radius: 5px; background: #fff; color: #4b6775; font-size: .68rem; font-weight: 620; line-height: 1.35; }
.badge-a { background: #f2f7f4; color: #375f4e; }
.badge-b { background: #f2f7f3; color: #3d684d; }
.badge-c { background: #fbf5f0; color: #80502e; }
.badge-missing { background: #f4f5f5; color: #657780; }
.review-reason { margin: 0; color: #6a818c; font-size: .74rem; }
.review-reason-d { padding: 9px 11px; border-left: 3px solid #c18a25; border-radius: 0 6px 6px 0; background: #fff0c9; color: #604713; font-size: .78rem; font-weight: 620; }
.review-row-actions { display: flex; align-items: flex-start; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.review-row-actions .text-button { font-size: .7rem; white-space: nowrap; }
.priority-order { color: var(--audit-blue-dark); font-size: .69rem; font-weight: 700; white-space: nowrap; }
.review-actions { justify-content: space-between; margin-top: 23px; }

.project-meta { display: grid; grid-template-columns: 1fr 1fr .8fr; gap: 13px; margin: 25px 0 8px; padding: 19px; border: 1px solid var(--audit-line); border-radius: 11px; background: #fff; }
.meta-field { display: grid; align-content: start; gap: 6px; color: #536f7d; font-size: .74rem; font-weight: 650; }
.meta-field small { display: block; color: #82949d; font-size: .67rem; font-weight: 450; }
.privacy-note { margin: 10px 0 20px; color: #778b95; font-size: .72rem; }
.priority-list { display: grid; gap: 12px; }
.empty-selection { margin: 12px 0 0; padding: 18px; border: 1px dashed #cbdbe2; border-radius: 9px; color: #718894; font-size: .83rem; }
.priority-card { padding: 17px; border: 1px solid #dce8ed; border-radius: 10px; background: #fbfdfe; animation: arrive .2s ease both; }
.priority-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.priority-card-heading h3 { margin: 0; color: var(--audit-navy); font-size: .88rem; font-weight: 630; line-height: 1.45; }
.priority-picker { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 9px 12px; margin-bottom: 20px; padding: 15px; border: 1px solid var(--audit-line); border-radius: 9px; background: #f8fbfc; }
.priority-picker label { grid-column: 1 / -1; color: var(--audit-navy); font-size: .8rem; font-weight: 650; }
.priority-picker select { width: 100%; min-width: 0; min-height: 42px; padding: 8px 10px; border: 1px solid #dfe8ed; border-radius: 7px; background: #fff; color: var(--audit-ink); font-size: .78rem; }
.priority-count { grid-column: 1 / -1; margin: 0; color: var(--audit-muted); font-size: .72rem; }
.priority-order-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 11px 0 14px; }
.priority-order-actions .text-button { font-size: .71rem; }
.priority-order-actions .text-button:disabled { opacity: .4; cursor: not-allowed; }
.remove-priority { color: #80502e; }
.priority-fields { display: grid; grid-template-columns: repeat(2,1fr); gap: 11px; }
.priority-field { display: grid; gap: 5px; color: #637c89; font-size: .7rem; font-weight: 620; }
.priority-field input { min-height: 39px; font-size: .76rem; }
.selection-message { margin: 12px 0 0; padding: 10px 13px; border-left: 3px solid #b66c37; background: #fff8f3; color: #784720; font-size: .78rem; }
.selection-message[hidden] { display: none; }

.document-controls { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 20px 0 12px; }
.appendix-toggle { display: flex; align-items: center; gap: 9px; color: #425e6c; cursor: pointer; font-size: .78rem; font-weight: 620; }
.appendix-toggle[hidden] { display: none; }
.appendix-toggle input { width: 16px; height: 16px; accent-color: var(--audit-blue-dark); }
.document-preview { padding: clamp(15px, 3.5vw, 34px); border: 1px solid #dce6ea; border-radius: 10px; background: #f6f8f9; }
.memo-document { max-width: 760px; margin: 0 auto; padding: clamp(22px, 5vw, 48px); background: #fff; box-shadow: 0 5px 22px rgba(24,56,75,.07); color: #263d4c; overflow-wrap: anywhere; }
.memo-header { padding-bottom: 18px; border-bottom: 1px solid #dce3e7; }
.memo-header h1 { margin: 0 0 14px; color: #18384b; font-size: clamp(1.45rem, 3vw, 2.1rem); line-height: 1.2; letter-spacing: -.035em; }
.doc-meta { display: grid; gap: 6px; margin: 0; }
.doc-meta-row { display: grid; grid-template-columns: minmax(150px, .36fr) 1fr; gap: 12px; margin: 0; }
.doc-meta-row dt { color: #627985; font-size: .75rem; font-weight: 650; }
.doc-meta-row dd { min-width: 0; margin: 0; color: #263d4c; font-size: .77rem; overflow-wrap: anywhere; }
.doc-disclaimer, .doc-appendix-note { margin: 13px 0 0; color: #627985; font-size: .72rem; }
.doc-summary { padding-top: 19px; }
.doc-summary > h2, .doc-appendix > h2, .doc-blank-priorities > h2 { margin: 0 0 6px; color: #18384b; font-size: 1.1rem; }
.doc-summary > p { margin: 0 0 13px; color: #627985; font-size: .77rem; }
.doc-priority-card { margin: 14px 0; padding: 15px 0; border-top: 1px solid #dce3e7; break-inside: avoid; }
.doc-priority-card h3 { margin: 0 0 6px; color: #18384b; font-size: .95rem; line-height: 1.4; }
.doc-area-state, .doc-answer-detail { margin: 0 0 10px; color: #536e7b; font-size: .73rem; }
.doc-answer-detail strong { color: #263d4c; font-weight: 750; }
.doc-priority-fields { display: grid; gap: 6px; margin: 0; }
.doc-priority-fields .doc-meta-row { grid-template-columns: minmax(170px,.4fr) 1fr; }
.doc-workspace-label { margin: 13px 0 4px; color: #526f7c; font-size: .72rem; font-weight: 650; }
.doc-writing-space { min-height: 48px; border-bottom: 1px solid #b9c6cc; }
.doc-legend-note { margin: 8px 0 0; color: #6b7e87; font-size: .67rem; }
.doc-closing { margin: 19px 0 0; padding: 11px 13px; border-left: 3px solid #7996a3; background: #f5f7f8; color: #344f5d; font-size: .78rem; font-weight: 620; }
.doc-signoff { display: grid; gap: 3px; margin-top: 18px; padding-top: 10px; border-top: 1px solid #e0e6e9; color: #536e7b; font-size: .68rem; }
.doc-signoff p { margin: 0; }
.doc-signoff a { width: fit-content; color: #395e70; font-size: .68rem; overflow-wrap: anywhere; }
.doc-appendix { break-before: page; page-break-before: always; padding-top: 10px; }
.doc-appendix > h2 { margin-bottom: 3px; }
.doc-legend { display: grid; grid-template-columns: repeat(2,1fr); gap: 3px 12px; margin: 12px 0; padding: 10px; border: 1px solid #d9e1e5; }
.doc-legend h2 { grid-column: 1 / -1; margin: 0 0 3px; color: #18384b; font-size: .78rem; }
.doc-legend p { margin: 0; color: #455e6a; font-size: .67rem; }
.doc-appendix-area { margin-top: 18px; break-inside: avoid; }
.doc-appendix-area h3 { margin: 0; padding-bottom: 5px; border-bottom: 1px solid #cdd7dc; color: #18384b; font-size: .88rem; }
.doc-answer-row { padding: 8px 0; border-bottom: 1px solid #e5eaed; break-inside: avoid; }
.doc-answer-row p { margin: 2px 0; color: #526b77; font-size: .68rem; }
.doc-answer-row .doc-question-title { color: #263d4c; font-size: .73rem; font-weight: 620; }
.doc-answer-row .doc-selected-tag { font-weight: 700; }
.doc-blank-question { display: grid; grid-template-columns: 1fr auto; align-items: start; gap: 10px; padding: 8px 0; border-bottom: 1px solid #e3e8eb; }
.doc-blank-question p { margin: 0; color: #263d4c; font-size: .72rem; }
.doc-blank-question .doc-checks { color: #3b505b; white-space: nowrap; }
.doc-blank-priorities { margin-top: 21px; }
.doc-blank-priority { min-height: 58px; padding: 8px 0; border-bottom: 1px solid #aebbc1; }
.doc-blank-priority p { margin: 0 0 5px; color: #526b77; font-size: .68rem; }
.export-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }
.export-actions .button { min-height: 40px; font-size: .75rem; }
.print-note { margin: 10px 0 0; color: #738892; font-size: .72rem; }
.copy-message-panel { display: grid; gap: 9px; margin-top: 16px; padding: 15px; border: 1px solid #dce7ec; border-radius: 9px; background: #f8fbfc; }
.copy-message-panel label { color: #405c69; font-size: .77rem; font-weight: 630; }
.copy-message-panel textarea { width: 100%; padding: 10px; border: 1px solid #d6e1e6; border-radius: 6px; color: #324c59; font-size: .79rem; line-height: 1.55; resize: vertical; }
.copy-message-panel .button { width: fit-content; }
.copy-fallback-panel { display: grid; gap: 7px; margin-top: 12px; }
.copy-fallback-panel[hidden] { display: none; }
.copy-fallback-panel label { color: #526f7c; font-size: .75rem; font-weight: 650; }
.copy-fallback { width: 100%; max-width: 720px; padding: 10px; border: 1px solid #d6e1e6; border-radius: 6px; color: #324c59; font-size: .79rem; line-height: 1.55; resize: vertical; }
.copy-feedback { margin: 0; color: #526f7c; font-size: .75rem; }

.contact-section { padding: 0 0 65px; }
.case-card { margin-bottom: 17px; border: 1px solid var(--audit-line); border-radius: 10px; background: #fff; }
.case-card summary { padding: 15px 18px; color: var(--audit-navy); cursor: pointer; font-size: .85rem; font-weight: 650; }
.case-card details > div { max-width: 850px; padding: 0 18px 13px; color: var(--audit-muted); font-size: .82rem; }
.case-card details > div p:last-child { margin-bottom: 0; }
.contact-panel { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 29px; border-radius: 12px; background: var(--audit-navy); color: #fff; }
.contact-panel > div { max-width: 720px; }
.contact-panel .principle-kicker { color: #84d9f3; }
.contact-panel h2 { margin: 7px 0; color: #fff; font-size: clamp(1.35rem, 2.5vw, 1.85rem); line-height: 1.25; }
.contact-panel p { margin: 10px 0 0; color: #d0e0e7; font-size: .83rem; }
.contact-panel .privacy-note { color: #afc4ce; font-size: .73rem; }
.contact-panel .button { flex: 0 0 auto; background: #fff; box-shadow: none; color: var(--audit-navy); }
.contact-panel .button:hover { background: #e8f7fc; }

.example-dialog { width: min(520px, calc(100% - 30px)); max-height: min(85vh, 700px); padding: 23px; border: 1px solid #d9e5ea; border-radius: 14px; background: #fff; color: var(--audit-ink); box-shadow: 0 24px 80px rgba(13,40,54,.22); }
.example-dialog::backdrop { background: rgba(20,43,56,.48); backdrop-filter: blur(3px); }
.dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; }
.dialog-heading h2 { margin: 5px 0 0; color: var(--audit-navy); font-size: 1.35rem; line-height: 1.25; }
.icon-button { display: grid; width: 35px; height: 35px; flex: 0 0 auto; place-items: center; border: 1px solid var(--audit-line); border-radius: 50%; background: #fff; color: #597480; cursor: pointer; font-size: 1.3rem; }
.example-document { margin: 17px 0; padding: 17px; border: 1px solid #e0e8ec; border-radius: 8px; background: #f9fbfc; }
.example-document h3 { margin: 0 0 11px; color: var(--audit-navy); font-size: .92rem; }
.example-document p { margin: 7px 0; color: #536e7b; font-size: .78rem; }

.site-footer { min-height: 92px; border-top: 1px solid #e8eef1; color: #718792; font-size: .75rem; }
.footer-brand { font-size: .82rem; }
.footer-brand small { font-size: .61rem; }
.print-document { display: none; }

@keyframes arrive { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@keyframes sample-float { 0%, 100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-7px) rotate(1deg); } }

@media (max-width: 850px) {
    .hero { grid-template-columns: minmax(0,1fr) minmax(280px,.8fr); gap: 26px; padding-inline: 38px; }
    .hero h1 { font-size: clamp(2.3rem, 5vw, 3.5rem); }
    .response-counts { grid-template-columns: repeat(3,1fr); }
}

@media (max-width: 640px) {
    .site-header, .site-footer { width: calc(100% - 36px); }
    .site-header { min-height: 70px; }
    .brand { gap: 8px; font-size: .9rem; }
    .brand img { width: 46px; height: 32px; }
    .brand small { font-size: .59rem; }
    .header-link { font-size: .76rem; }
    .language-link { font-size: .76rem; }
    .header-actions { gap: 12px; }
    .hero { width: calc(100% - 24px); min-height: unset; grid-template-columns: 1fr; gap: 25px; padding: 34px 23px 26px; border-radius: 20px; }
    .hero h1 { margin-top: 16px; font-size: clamp(2.35rem, 10.5vw, 3.2rem); }
    .hero-lead { font-size: 1.08rem; }
    .hero-description { font-size: .89rem; }
    .hero-actions { align-items: flex-start; flex-direction: column; }
    .sample-card { max-width: 390px; padding: 20px; transform: none; animation: none; }
    .sample-card dl div { grid-template-columns: 92px 1fr; gap: 8px; }
    .intro-section, .workflow-section, .review-section, .priority-section, .document-stage, .contact-section { width: calc(100% - 36px); }
    .intro-section { padding: 62px 0 53px; }
    .intro-grid { grid-template-columns: 1fr; gap: 17px; }
    .intro-grid h2 { font-size: 1.8rem; }
    .workflow-section, .review-section, .priority-section, .document-stage { padding-top: 5px; padding-bottom: 49px; }
    .workflow-heading { align-items: stretch; flex-direction: column; gap: 16px; margin-bottom: 20px; }
    .workflow-heading h2, .review-section > h2, .priority-section > h2, .document-stage > h2 { font-size: 1.78rem; }
    .progress-card { display: grid; grid-template-columns: 1fr auto; align-items: center; column-gap: 12px; }
    .progress-card > strong { grid-column: 2; grid-row: 1 / span 2; }
    .progress-track { grid-column: 1 / -1; }
    .area-tabs { grid-template-columns: 1fr; gap: 6px; }
    .area-tab { min-height: 40px; }
    .answer-legend { padding: 13px; }
    .legend-items { grid-template-columns: 1fr; gap: 7px; }
    .legend-items > span { font-size: .7rem; }
    .question-step { min-height: 0; }
    .active-question { padding: 20px 15px; }
    .active-question-title { font-size: 1.24rem; }
    .question-help { font-size: .82rem; }
    .answer-options { grid-template-columns: 1fr; gap: 7px; }
    .answer-choice { min-height: 56px; padding: 8px 10px; }
    .workflow-actions { gap: 7px; }
    .workflow-actions .button { min-height: 42px; padding-inline: 11px; font-size: .76rem; }
    .step-counter { font-size: .66rem; white-space: nowrap; }
    .workflow-bottom { align-items: flex-start; flex-direction: column; }
    .response-counts { grid-template-columns: repeat(2,1fr); }
    .count-item { min-height: 49px; padding: 7px 9px; }
    .review-toolbar { flex-wrap: wrap; }
    .review-row { grid-template-columns: 1fr; gap: 9px; padding: 12px; }
    .review-row-actions { justify-content: flex-start; }
    .review-actions, .priority-controls { align-items: stretch; flex-direction: column-reverse; }
    .review-actions .button, .priority-controls .button { width: 100%; }
    .project-meta { grid-template-columns: 1fr; gap: 11px; margin: 19px 0 8px; padding: 14px; }
    .priority-card { padding: 13px; }
    .priority-card-heading { flex-direction: column; gap: 9px; }
    .priority-order-actions { gap: 9px 13px; }
    .priority-fields { grid-template-columns: 1fr; }
    .document-controls { align-items: flex-start; flex-direction: column; }
    .document-preview { margin-inline: -5px; padding: 8px; }
    .memo-document { padding: 17px 13px; }
    .doc-meta-row, .doc-priority-fields .doc-meta-row { grid-template-columns: 1fr; gap: 1px; }
    .doc-legend { grid-template-columns: 1fr; }
    .doc-blank-question { grid-template-columns: 1fr; gap: 4px; }
    .export-actions { display: grid; grid-template-columns: 1fr; }
    .export-actions .button { width: 100%; }
    .contact-panel { align-items: flex-start; flex-direction: column; gap: 16px; padding: 21px 17px; }
    .contact-panel .button { width: 100%; }
    .site-footer { min-height: 78px; gap: 10px; }
    .site-footer > span { font-size: .62rem; text-align: center; }
    .site-footer > a:last-child { font-size: .68rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@page { size: A4 portrait; margin: 16mm; }
@media print {
    html, body { width: auto; min-width: 0; margin: 0; background: #fff !important; color: #1c2a31; font: 11pt/1.45 Arial, sans-serif; }
    body > .site-header, body > .site-footer, main > :not(.print-document) { display: none !important; }
    .print-document, .print-document[hidden] { display: block !important; }
    .memo-document { display: block; max-width: none; margin: 0; padding: 0; box-shadow: none; color: #1c2a31; font: 11pt/1.45 Arial, sans-serif; overflow-wrap: anywhere; }
    .memo-document h1 { margin: 0 0 12pt; color: #111; font-size: 21pt; }
    .memo-document h2 { margin: 0 0 7pt; color: #111; font-size: 14pt; }
    .memo-document h3 { color: #111; font-size: 11.5pt; }
    .memo-document p, .memo-document dd, .memo-document dt, .memo-document a { font-size: 10.5pt; overflow-wrap: anywhere; }
    .doc-meta { gap: 4pt; }
    .doc-meta-row { grid-template-columns: 42mm 1fr; gap: 4mm; }
    .doc-meta-row dt { font-weight: 700; }
    .doc-disclaimer, .doc-appendix-note { margin-top: 9pt; font-size: 9pt !important; }
    .doc-priority-card { margin: 8pt 0; padding: 9pt 0; border-color: #aaa; break-inside: avoid; page-break-inside: avoid; }
    .doc-priority-card h3 { margin-bottom: 4pt; font-size: 11pt; }
    .doc-area-state, .doc-answer-detail, .doc-priority-fields dt, .doc-priority-fields dd, .doc-legend-note, .doc-workspace-label { font-size: 10pt !important; }
    .doc-priority-fields { gap: 3pt; }
    .doc-priority-fields .doc-meta-row { grid-template-columns: 48mm 1fr; }
    .doc-writing-space { min-height: 18mm; border-color: #888; }
    .doc-legend-note { margin-top: 4pt; }
    .doc-closing { margin-top: 12pt; padding: 7pt; border: 1px solid #999; background: #fff; color: #111; }
    .doc-signoff { margin-top: 12pt; padding-top: 6pt; border-color: #aaa; }
    .doc-signoff p, .doc-signoff a { font-size: 9pt !important; }
    .doc-appendix { break-before: page; page-break-before: always; }
    .doc-legend { border-color: #aaa; }
    .doc-legend p { color: #111; font-size: 10pt !important; }
    .doc-appendix-area { margin-top: 12pt; }
    .doc-appendix-area h3 { border-color: #999; }
    .doc-answer-row { padding: 5pt 0; border-color: #ccc; break-inside: avoid; page-break-inside: avoid; }
    .doc-answer-row p, .doc-answer-row .doc-question-title { color: #111; font-size: 10.5pt !important; }
    .doc-blank-question { grid-template-columns: 1fr auto; gap: 5mm; padding: 5pt 0; }
    .doc-blank-question p { color: #111; font-size: 10.5pt !important; }
    .doc-blank-question .doc-checks { white-space: nowrap; }
    .doc-blank-priorities { margin-top: 14pt; }
    .doc-blank-priority { min-height: 18mm; border-color: #888; }
    .doc-blank-priority p { color: #111; font-size: 9pt !important; }
    .doc-selected-tag { font-weight: 700; }
    a { color: #111; text-decoration: underline; }
}
