/* forms.css - public form/thanks/error pages; see SYSTEM.md */

/* Landing page header/main overrides */
body.ao-landing-page .ao-header { background: var(--ao-surface-inverse); border-bottom-color: transparent; }
body.ao-landing-page .ao-main { max-width: none; padding: 0; }

/* Header logo: 44px hit area (S6) */
.ao-header__logo { display: inline-flex; align-items: center; min-height: var(--ao-control-h); }

.ao-ledger .ao-container { max-width: 1120px; margin-inline: auto; padding-inline: var(--ao-s-4); }
@media (min-width: 768px) { .ao-ledger .ao-container { padding-inline: var(--ao-s-7); } }

/* Home hero */
.ao-ledger .ao-hero { background: var(--ao-surface-inverse); color: var(--ao-text-inverse); position: relative; overflow: hidden; }
.ao-ledger .ao-hero__inner { position: relative; padding-block: var(--ao-s-8) var(--ao-s-9); max-width: 640px; }
.ao-ledger .ao-hero .ao-eyebrow { color: var(--ao-text-inverse-2); }
.ao-ledger .ao-hero h1 { color: var(--ao-text-inverse); font-size: var(--ao-fs-44); line-height: var(--ao-lh-44); font-weight: var(--ao-fw-display); margin: 0 0 var(--ao-s-5); }
.ao-ledger .ao-hero p.ao-lede { color: var(--ao-text-inverse-2); font-size: 17px; margin: 0 0 var(--ao-s-7); }
.ao-ledger .ao-hero__actions { display: flex; flex-wrap: wrap; gap: var(--ao-s-4); }
.ao-ledger .ao-hero .ao-btn-secondary { background: transparent; color: var(--ao-text-inverse); border-color: var(--ao-text-inverse); }
.ao-ledger .ao-hero .ao-btn-secondary:hover { background: var(--ao-text-inverse); color: var(--ao-brand-900); }
.ao-ledger .ao-hero__grid { position: absolute; pointer-events: none; left: 0; right: 0; bottom: 0; height: 40px; --d: 4px; --gap: 12px; background-image: radial-gradient(var(--d) var(--d) at center, var(--ao-logo-mark) 99%, transparent 100%); background-size: var(--gap) var(--gap); opacity: .32; -webkit-mask-image: linear-gradient(0deg, white 0%, transparent 100%); mask-image: linear-gradient(0deg, white 0%, transparent 100%); }
@media (min-width: 768px) {
  .ao-ledger .ao-hero__inner { padding-block: var(--ao-s-9) var(--ao-s-10); }
  .ao-ledger .ao-hero__grid { left: auto; right: 0; top: 0; bottom: 0; height: auto; width: 40%; -webkit-mask-image: linear-gradient(90deg, transparent 0%, white 45%); mask-image: linear-gradient(90deg, transparent 0%, white 45%); }
}

/* Home sections */
.ao-ledger .ao-band { padding-block: var(--ao-s-7); border-top: 1px solid var(--ao-line); }
.ao-ledger .ao-band:first-of-type { border-top: 0; }
.ao-ledger .ao-band__title { display: flex; align-items: center; gap: var(--ao-s-3); margin: 0 0 var(--ao-s-2); }
.ao-ledger .ao-rows > li { display: grid; grid-template-columns: 24px 1fr; gap: var(--ao-s-4); padding-block: var(--ao-s-5); border-top: 1px solid var(--ao-line); }
.ao-ledger .ao-rows > li:last-child { border-bottom: 1px solid var(--ao-line); }
.ao-ledger .ao-rows h3 { margin: 0 0 var(--ao-s-1); }
.ao-ledger .ao-rows p { margin: 0; color: var(--ao-text-2); }
.ao-ledger .ao-rows svg { width: 24px; height: 24px; color: var(--ao-primary); }
@media (min-width: 768px) {
  .ao-ledger .ao-rows { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--ao-s-7); }
  .ao-ledger .ao-rows > li, .ao-ledger .ao-rows > li:last-child { border-bottom: 0; border-top: 1.5px solid var(--ao-line-strong); padding-block: var(--ao-s-5) 0; }
}

/* Input override */
.ao-ledger .ao-field input.ao-input{width:100%;min-height:var(--ao-control-h);padding:10px 14px;font:var(--ao-fw-body) 16px/1.3 var(--ao-font);color:var(--ao-text);background:var(--ao-surface-1);border:1.5px solid var(--ao-line-control);border-radius:var(--ao-r-md);}
.ao-ledger .ao-field input.ao-input:hover{border-color:var(--ao-text);}
.ao-ledger .ao-field.has-error input.ao-input,.ao-ledger .ao-field input.ao-input[aria-invalid="true"]{border-color:var(--ao-danger-control);background:var(--ao-danger-bg);}
.ao-ledger .ao-intro{padding-block:var(--ao-s-6) var(--ao-s-5);}
.ao-ledger .ao-intro__title{font-size:var(--ao-fs-30);line-height:var(--ao-lh-30);font-weight:var(--ao-fw-heading);margin:0 0 var(--ao-s-3);}
.ao-ledger .ao-intro__lede{color:var(--ao-text-2);font-size:var(--ao-fs-16);line-height:var(--ao-lh-16);margin:0 0 var(--ao-s-3);}
.ao-ledger .ao-intro__time{display:inline-flex;align-items:center;gap:var(--ao-s-1);height:28px;padding:0 var(--ao-s-3);border-radius:var(--ao-r-sm);background:var(--ao-surface-2);border:1px solid var(--ao-line);font-size:var(--ao-fs-14);font-weight:var(--ao-fw-heading);margin:0;}
.ao-ledger .ao-intro__time svg{width:14px;height:14px;}
.ao-ledger .ao-field-error::before{content:none;}
.ao-ledger .ao-section{padding-block:var(--ao-s-7);border-top:1px solid var(--ao-line);}
.ao-ledger .ao-section:first-of-type{border-top:0;}
.ao-ledger .ao-section__title{display:flex;align-items:center;gap:var(--ao-s-3);margin:0 0 var(--ao-s-2);}
.ao-ledger .ao-grid__progress{display:flex;align-items:center;gap:var(--ao-s-3);font-size:var(--ao-fs-14);font-weight:var(--ao-fw-heading);color:var(--ao-text);margin:0 0 var(--ao-s-5);}
.ao-ledger .ao-grid,.ao-ledger fieldset.ao-field.ao-grid{border:1px solid var(--ao-line);border-radius:var(--ao-r-lg);overflow:hidden;}
.ao-ledger .ao-grid__head{display:none;}
.ao-ledger .ao-grid__row{display:block;border:0;border-radius:0;margin:0;padding:var(--ao-s-4);border-bottom:1px solid var(--ao-line);min-width:0;}
.ao-ledger .ao-grid__row:last-child{border-bottom:0;}
.ao-ledger .ao-grid__row.has-error{background:var(--ao-danger-bg);}
.ao-ledger .ao-grid__legend{display:flex;align-items:flex-start;gap:var(--ao-s-2);font-weight:var(--ao-fw-heading);font-size:var(--ao-fs-14);margin:0 0 var(--ao-s-3);padding:0;word-break:break-word;overflow-wrap:anywhere;}
.ao-ledger .ao-grid__legend::before{content:'';width:6px;height:6px;margin-top:7px;border-radius:50%;background:var(--ao-line-control);flex:none;}
.ao-ledger .is-answered .ao-grid__legend::before{background:var(--ao-primary);}
.ao-ledger .has-error .ao-grid__legend::before{background:var(--ao-danger-fg);}
.ao-ledger .ao-grid .ao-field-error{margin-top:var(--ao-s-3);}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4) .ao-segment{grid-template-columns:repeat(var(--ao-cols,4), minmax(0,1fr));}
.ao-ledger .ao-grid .ao-segment__opt,.ao-ledger .ao-scale .ao-segment__opt{min-width:0;}
.ao-ledger .ao-grid.ao-field .ao-segment__opt label,.ao-ledger .ao-scale .ao-segment__opt label{word-break:break-word;overflow-wrap:anywhere;min-width:0;}
.ao-ledger .ao-grid:not(.ao-field) .ao-segment__opt label{overflow-wrap:normal;word-break:normal;hyphens:none;font-size:10.5px;line-height:12px;padding:3px;}
.ao-ledger .ao-grid:not(.ao-field):is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4) .ao-segment{grid-template-columns:repeat(var(--ao-cols,4), minmax(min-content,1fr));gap:var(--ao-s-1);}
.ao-ledger .ao-grid:not(.ao-field) .ao-grid__row{padding-inline:var(--ao-s-1);}
.ao-ledger .ao-grid:not(.ao-field) .ao-segment__opt{min-width:44px;}
.ao-ledger .ao-dropzone{border:1.5px dashed var(--ao-line-control);border-radius:var(--ao-r-lg);padding:var(--ao-s-5);}
.ao-ledger .ao-dropzone.has-error{border-color:var(--ao-danger-fg);background:var(--ao-danger-bg);}
.ao-ledger .ao-dropzone input[type="file"]{min-height:var(--ao-control-h);width:100%;border:1.5px solid var(--ao-line-control);border-radius:var(--ao-r-md);padding:var(--ao-s-2);background:var(--ao-surface-1);font-size:var(--ao-fs-14);}
.ao-ledger .ao-dropzone input[type="file"]::file-selector-button{min-height:36px;margin-right:var(--ao-s-3);padding:0 var(--ao-s-4);border-radius:var(--ao-r-md);border:1.5px solid var(--ao-line-control);background:var(--ao-surface-1);font:var(--ao-fw-heading) var(--ao-fs-14) var(--ao-font);color:var(--ao-text);cursor:pointer;}
.ao-ledger .ao-dropzone__progress:empty{display:none;}
.ao-ledger .ao-consent__row{display:flex;align-items:flex-start;gap:var(--ao-s-3);}
.ao-ledger .ao-consent label{display:block;min-height:var(--ao-control-h);padding-block:var(--ao-s-2);font-size:var(--ao-fs-14);color:var(--ao-text-2);line-height:1.6;}
.ao-ledger .ao-consent .ao-check{margin-top:10px;}
.ao-ledger .ao-consent a{color:var(--ao-primary);}
.ao-ledger .ao-submit{padding-top:var(--ao-s-6);border-top:1px solid var(--ao-line);display:flex;}
@media (min-width:768px) {
.ao-ledger .ao-grid__row{position:relative;}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__head{position:relative;display:grid;grid-template-columns:repeat(var(--ao-cols,4), minmax(0,1fr));gap:var(--ao-s-3);padding:var(--ao-s-3) var(--ao-s-4);padding-left:336px;background:var(--ao-surface-2);border-bottom:1.5px solid var(--ao-line-strong);position:sticky;top:0;z-index:2;}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__head-module,.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__head-level{font-size:var(--ao-fs-12);font-weight:var(--ao-fw-heading);letter-spacing:.06em;text-transform:uppercase;color:var(--ao-text-2);display:flex;align-items:center;overflow-wrap:anywhere;}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__head-module{position:absolute;left:var(--ao-s-4);top:50%;transform:translateY(-50%);}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__head-level{justify-content:center;text-align:center;}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__row{position:relative;display:flow-root;padding:var(--ao-s-3) var(--ao-s-4);}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__legend{float:left;width:296px;margin:0;}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-segment,.ao-ledger .ao-grid:not(.ao-field):is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-segment{grid-template-columns:repeat(var(--ao-cols,4), minmax(0,1fr));gap:var(--ao-s-3);margin-left:320px;align-items:center;}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-segment__opt label{flex-direction:row;gap:6px;font-size:var(--ao-fs-14);}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-segment__opt svg{display:block;}
.ao-ledger .ao-grid:is(.ao-grid--cols-2,.ao-grid--cols-3,.ao-grid--cols-4,.ao-grid--cols-5) .ao-grid__row .ao-field-error{clear:left;margin-left:320px;margin-top:0;padding-top:calc(var(--ao-s-3) + var(--ao-s-2));}
.ao-ledger .ao-grid .ao-field-error{grid-column:1 / -1;margin:var(--ao-s-2) 0 0;}
}
@media (max-width:1023.98px) and (min-width:768px) {
.ao-ledger .ao-grid--cols-4:not(.ao-field) .ao-grid__head,.ao-ledger .ao-grid:not(.ao-field).ao-grid--cols-4 .ao-segment{grid-template-columns:repeat(var(--ao-cols,4), minmax(min-content,1fr));}
.ao-ledger .ao-grid--cols-4:not(.ao-field) .ao-grid__head-level{overflow-wrap:normal;word-break:normal;hyphens:none;}
.ao-ledger .ao-grid--cols-4:not(.ao-field) .ao-segment__opt svg{display:none;}
.ao-ledger .ao-grid--cols-4:not(.ao-field) .ao-segment__opt label{gap:0;}
}

.ao-ledger.ao-outcome{padding-block:var(--ao-s-8) var(--ao-s-9);}
.ao-ledger.ao-outcome .ao-card{max-width:440px;width:100%;margin-inline:auto;text-align:center;}
.ao-ledger.ao-outcome .ao-card h1{margin:0 0 var(--ao-s-3);}
.ao-ledger.ao-outcome .ao-card p{margin:0 0 var(--ao-s-5);}
.ao-ledger .ao-outcome-mark{width:56px;height:56px;margin:0 auto var(--ao-s-4);border-radius:50%;background:var(--ao-ok-bg);border:1px solid var(--ao-ok-line);display:flex;align-items:center;justify-content:center;color:var(--ao-ok-fg);}
.ao-ledger .ao-outcome-mark svg{width:28px;height:28px;}
.ao-ledger .ao-outcome-actions{display:flex;flex-wrap:wrap;gap:var(--ao-s-3);justify-content:center;}

/* LEGACY — deleted by #38 (UI-15) */
/* pre-UI-01 forms.css, byte-for-byte except the two hex literals
   below turned into their equivalent brand.css token (#fff === var(--ao-surface)) so DesignSystemTest's
   "no hex literal outside brand.css" holds, and the old `.ao-skip` pair (superseded, see header comment). */
.ao-ribbon { margin: 0; padding: 6px 12px; text-align: center; font-weight: 600; color: var(--ao-surface); background: var(--ao-warning-700); }

.ao-header { display: flex; align-items: center; padding: 16px; background: var(--ao-surface); border-bottom: 1px solid var(--ao-border); }
.ao-header__logo img { display: block; height: 32px; width: auto; }
.ao-main { max-width: 880px; margin: 0 auto; padding: 16px 16px 48px; }
.ao-footer { max-width: 880px; margin: 0 auto; padding: 24px 16px 40px; color: var(--ao-muted); font-size: 14px; }
.ao-footer p { margin: 4px 0; }

.ao-intro__title { font-size: 26px; line-height: 1.25; margin: 24px 0 8px; }
.ao-intro__lede { margin: 0 0 8px; color: var(--ao-gray-700); }
.ao-intro__time { margin: 0 0 8px; color: var(--ao-muted); font-size: 14px; }

.ao-errors { margin: 16px 0; }
.ao-errors.is-empty { display: none; }
.ao-errors__title { margin: 0 0 8px; font-weight: 600; color: var(--ao-error-700); }
.ao-errors { background: var(--ao-danger-soft); border: 1px solid var(--ao-error-200); border-radius: var(--ao-radius); padding: 12px 16px; }
.ao-errors__list { margin: 0; padding-left: 20px; }
.ao-errors__list a { color: var(--ao-error-700); }

.ao-section { background: var(--ao-surface); border: 1px solid var(--ao-border); border-radius: var(--ao-radius); box-shadow: var(--ao-shadow); padding: 16px; margin: 16px 0; }
.ao-section__title { font-size: 18px; margin: 0 0 4px; }
.ao-section__lede { margin: 0 0 12px; color: var(--ao-gray-700); }

.ao-field { margin: 16px 0; }
.ao-field > label { display: block; font-weight: 500; margin-bottom: 6px; }
.ao-field input[type="text"], .ao-field input[type="tel"], .ao-field input[type="email"], .ao-field input[type="file"] {
  width: 100%; min-height: 44px; padding: 10px 12px; font: inherit; color: inherit;
  background: var(--ao-surface); border: 1px solid var(--ao-border); border-radius: 8px;
}
.ao-field.has-error input { border-color: var(--ao-danger); }
.ao-field-error { margin: 6px 0 0; color: var(--ao-error-600); font-size: 14px; font-weight: 500; }
.ao-field-error::before { content: "⚠ "; }

.ao-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }

.ao-grid__progress { margin: 0 0 12px; font-size: 14px; color: var(--ao-muted); }
.ao-grid__head { display: none; }
.ao-grid__row { border: 1px solid var(--ao-border); border-radius: 10px; margin: 0 0 10px; padding: 12px; }
.ao-grid__row.is-answered { border-color: var(--ao-accent); }
.ao-grid__row.has-error { border-color: var(--ao-danger); background: var(--ao-danger-soft); }
.ao-grid__legend { font-weight: 500; padding: 0; margin-bottom: 8px; }

@media (min-width: 768px) {
  .ao-grid__head { display: grid; grid-template-columns: minmax(0, 2fr) repeat(4, minmax(0, 1fr)); gap: 8px;
    position: sticky; top: 0; z-index: 2; background: var(--ao-surface); border-bottom: 2px solid var(--ao-border); padding: 10px 12px; font-size: 13px; font-weight: 600; }
  .ao-grid__head-level { text-align: center; }
  .ao-grid__row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 4fr); align-items: center; gap: 8px; border-width: 0 0 1px; border-radius: 0; }
  .ao-grid__legend { margin: 0; }
  .ao-grid__row .ao-field-error { grid-column: 1 / -1; }
}

.ao-dropzone.is-dragover { border: 2px dashed var(--ao-accent); border-radius: var(--ao-radius); padding: 8px; }
.ao-dropzone__progress:empty { display: none; }
.ao-dropzone__progress { margin: 8px 0 0; font-size: 14px; color: var(--ao-muted); }

.ao-consent__row { display: flex; gap: 10px; align-items: flex-start; }
.ao-consent input { width: 22px; height: 22px; margin-top: 2px; flex: 0 0 auto; }
.ao-consent label { font-size: 14px; color: var(--ao-gray-700); }

.ao-submit { margin: 24px 0 0; }

/* END LEGACY */
