:root {
  --midnight: #0b1526;
  --ink: #162033;
  --paper: #f7f4ed;
  --white: #ffffff;
  --lime: #c8f169;
  --amber: #e79c47;
  --line: #c8cfda;
  --slate: #627083;
  --muted: #e8e5df;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.5; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.topline { height: 6px; background: var(--lime); }
.site-header { min-height: 76px; padding: 0 5.2vw; display: flex; align-items: center; justify-content: space-between; background: var(--midnight); color: #fff; }
.brand { display: inline-flex; align-items: center; gap: .68rem; color: #fff; text-decoration: none; font-weight: 800; letter-spacing: .115em; font-size: .97rem; }
.brand img { width: 34px; height: 34px; display: block; }
.brand span span { color: var(--lime); }
.header-meta { display: flex; align-items: center; gap: .6rem; color: #c6cdd8; font-size: .79rem; font-weight: 650; letter-spacing: .025em; }
.secure-dot { width: 8px; height: 8px; display: inline-block; border-radius: 99px; background: var(--lime); box-shadow: 0 0 0 4px rgba(200,241,105,.13); }
.header-divider { width: 1px; height: 17px; background: #536072; margin: 0 .25rem; }
.page-shell { max-width: 1510px; margin: 0 auto; display: grid; grid-template-columns: 300px minmax(0, 1fr); align-items: start; padding: 2.5rem 5.2vw 4rem; gap: clamp(2rem, 5vw, 7rem); }
.brief-rail { position: sticky; top: 1.5rem; padding: .4rem 0; }
.eyebrow { display: block; color: var(--slate); font-size: .71rem; letter-spacing: .135em; font-weight: 800; text-transform: uppercase; }
.rail-intro .eyebrow { color: var(--amber); }
.rail-intro h1 { margin: .65rem 0 .65rem; color: var(--midnight); font: 700 clamp(2rem, 3.3vw, 3rem)/.98 var(--serif); letter-spacing: -.045em; }
.rail-intro p { max-width: 17.5rem; color: #536072; font-size: .91rem; margin: 0; }
.progress-wrap { margin: 2.15rem 0 1.55rem; }
.progress-label { display: flex; justify-content: space-between; color: var(--ink); font-size: .75rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.progress-label strong { color: #476114; }
.progress-track { display: block; width: 100%; height: 7px; margin-top: .55rem; overflow: hidden; background: #deddd6; border-radius: 10px; }
.progress-track span { display: block; width: 0%; height: 100%; background: var(--lime); border-radius: inherit; transition: width .25s ease; }
.section-nav { margin: 0 0 1.8rem; border-top: 1px solid #d7d5ce; }
.section-nav a { display: flex; gap: .8rem; padding: .72rem 0; border-bottom: 1px solid #d7d5ce; color: #536072; text-decoration: none; font-size: .85rem; font-weight: 700; transition: color .15s ease, padding-left .15s ease; }
.section-nav a span { color: #8c97a6; font-variant-numeric: tabular-nums; font-size: .72rem; }
.section-nav a:hover, .section-nav a.active { color: var(--midnight); padding-left: .35rem; }
.section-nav a.active span { color: #759b1b; }
.ledger-card { padding: 1.2rem 1.15rem 1rem; background: var(--midnight); color: #fff; border: 1px solid #26354d; box-shadow: 0 12px 24px rgba(11,21,38,.1); }
.ledger-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; color: #b8c2d0; font-size: .66rem; letter-spacing: .125em; font-weight: 800; }
.ledger-status { padding: .17rem .36rem; color: var(--midnight); background: var(--lime); font-size: .58rem; }
.ledger-row, .ledger-total { display: flex; justify-content: space-between; gap: .7rem; padding: .45rem 0; font-size: .77rem; }
.ledger-row span { color: #b8c2d0; }
.ledger-row strong { color: #fff; font-variant-numeric: tabular-nums; }
.ledger-total { margin-top: .55rem; padding-top: .85rem; border-top: 1px solid #3c4a61; font-size: .85rem; font-weight: 800; }
.ledger-total strong { color: var(--lime); font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.ledger-card p { margin: .8rem 0 0; color: #aab4c2; font-size: .66rem; line-height: 1.45; }
.rail-note { display: grid; grid-template-columns: auto 1fr; gap: .55rem; margin-top: 1.4rem; color: #667386; font-size: .72rem; }
.rail-note span { align-self: start; padding: .2rem .3rem; background: #e2dfd5; color: #667386; font-size: .6rem; font-weight: 800; letter-spacing: .08em; }
.rail-note p { margin: 0; }
.brief-main { min-width: 0; max-width: 920px; }
.hero { display: grid; grid-template-columns: 1.1fr .9fr; gap: 3rem; align-items: end; padding: 1.5rem 0 3rem; border-bottom: 3px solid var(--midnight); }
.hero h2 { margin: .7rem 0 0; max-width: 13ch; color: var(--midnight); font: 700 clamp(2.35rem, 4vw, 4.15rem)/.97 var(--serif); letter-spacing: -.052em; }
.hero p { margin: 0 0 .3rem; color: #536072; font-size: .96rem; }
.hero p b, legend span, .consent b { color: #9e5015; }
.form-section { padding: 3.3rem 0; border-bottom: 1px solid #d2d0c9; }
.section-heading { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(170px, .6fr); gap: 1.05rem; align-items: start; margin-bottom: 1.7rem; }
.section-number { display: grid; place-items: center; width: 42px; height: 42px; color: var(--midnight); border: 1px solid var(--midnight); background: var(--lime); font-size: .77rem; font-weight: 850; letter-spacing: .07em; }
.section-heading h3 { margin: .2rem 0 0; color: var(--midnight); font: 700 clamp(1.6rem, 2.2vw, 2.15rem)/1 var(--serif); letter-spacing: -.033em; }
.section-heading p { margin: .15rem 0 0; color: #657184; font-size: .82rem; }
.form-grid { display: grid; gap: 1.15rem; margin-bottom: 1.15rem; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
label, legend { display: block; color: #243146; font-size: .77rem; font-weight: 750; letter-spacing: .014em; }
input, select, textarea { display: block; width: 100%; margin-top: .42rem; padding: .76rem .85rem; color: var(--ink); background: var(--white); border: 1px solid #9ba6b5; border-radius: 2px; outline: none; box-shadow: inset 0 0 0 1px rgba(11,21,38,.02); transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
input::placeholder, textarea::placeholder { color: #9aa4b1; opacity: 1; }
textarea { min-height: 105px; resize: vertical; }
select { appearance: none; padding-right: 2.35rem; background-image: linear-gradient(45deg, transparent 50%, #4d5a6e 50%), linear-gradient(135deg, #4d5a6e 50%, transparent 50%); background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }
input:hover, select:hover, textarea:hover { border-color: #66768b; }
input:focus, select:focus, textarea:focus { border-color: var(--midnight); box-shadow: 0 0 0 3px rgba(200,241,105,.62); }
input:invalid:not(:placeholder-shown), select:invalid:focus { border-color: #a2471e; }
.full-field { margin-top: .2rem; }
fieldset { min-width: 0; margin: 0 0 1.15rem; padding: 0; border: 0; }
legend { margin-bottom: .62rem; }
.option-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.option-grid.compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.check-option { display: flex; align-items: center; gap: .55rem; min-height: 45px; padding: .52rem .6rem; color: #415068; background: rgba(255,255,255,.52); border: 1px solid #aeb7c2; border-radius: 2px; font-size: .75rem; font-weight: 650; letter-spacing: 0; cursor: pointer; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.check-option:hover { border-color: #6d7d91; transform: translateY(-1px); }
.check-option:has(input:checked) { color: var(--midnight); background: #eff8cf; border-color: #94bd2d; }
.check-option input, .consent input { width: 17px; height: 17px; flex: 0 0 auto; margin: 0; accent-color: var(--midnight); box-shadow: none; }
.notice { margin-bottom: 1.25rem; padding: .85rem 1rem; color: #734515; background: #fff2e1; border-left: 4px solid var(--amber); font-size: .78rem; }
.addon-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.addon-card { position: relative; display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: .7rem; align-items: start; min-height: 104px; padding: 1rem; color: #243146; background: var(--white); border: 1px solid #aeb7c2; border-radius: 2px; cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.addon-card:hover { border-color: #66768b; box-shadow: 0 8px 18px rgba(11,21,38,.06); transform: translateY(-1px); }
.addon-card:has(input:checked) { border: 2px solid var(--midnight); padding: calc(1rem - 1px); background: #fbffef; }
.addon-card input { position: absolute; opacity: 0; pointer-events: none; }
.addon-check { display: grid; place-items: center; width: 25px; height: 25px; color: #7b8796; border: 1px solid #9aa6b5; font-size: 1.1rem; line-height: 1; }
.addon-card:has(input:checked) .addon-check { color: var(--midnight); background: var(--lime); border-color: var(--midnight); font-size: 0; }
.addon-card:has(input:checked) .addon-check::after { content: '✓'; font-size: .95rem; font-weight: 900; }
.addon-content { display: grid; gap: .16rem; }
.addon-content strong { font-size: .84rem; }
.addon-content small { color: #667386; font-size: .69rem; line-height: 1.4; font-weight: 500; }
.addon-card b { color: #9e5015; font-size: .82rem; white-space: nowrap; }
.review-section { border-bottom: 0; padding-bottom: 1rem; }
.review-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem; margin-bottom: 1rem; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .65rem; min-height: 45px; padding: .7rem 1rem; border: 1px solid var(--midnight); border-radius: 2px; font-size: .78rem; font-weight: 800; letter-spacing: .025em; transition: transform .16s ease, box-shadow .16s ease, background .16s ease; }
.button:hover { transform: translateY(-1px); box-shadow: 0 6px 13px rgba(11,21,38,.15); }
.button.secondary { color: var(--midnight); background: var(--lime); }
.button.primary { color: #fff; background: var(--midnight); }
.button.primary span { color: var(--lime); font-size: 1.15rem; }
.text-button { padding: .4rem .15rem; color: #536072; background: transparent; border: 0; border-bottom: 1px solid #9ca6b3; font-size: .76rem; font-weight: 700; }
.text-button:hover { color: var(--midnight); border-bottom-color: var(--midnight); }
.review-empty { padding: 1.15rem; color: #667386; background: rgba(255,255,255,.6); border: 1px dashed #9aa6b5; font-size: .82rem; }
.review-summary { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem 1rem; margin-top: 1rem; padding: 1.1rem; background: var(--white); border: 1px solid #9aa6b5; }
.review-summary.ready { display: grid; }
.summary-group { padding: .25rem 0 .85rem; border-bottom: 1px solid #e1e4e8; }
.summary-group:nth-last-child(-n+2) { border-bottom: 0; }
.summary-group h4 { margin: 0 0 .35rem; color: #536072; font-size: .64rem; letter-spacing: .1em; text-transform: uppercase; }
.summary-group p { margin: 0; color: var(--ink); font-size: .78rem; white-space: pre-line; }
.summary-group .estimate-line { color: #476114; font-size: 1rem; font-weight: 850; }
.consent { display: flex; align-items: start; gap: .65rem; max-width: 780px; margin-top: 1.2rem; color: #536072; font-size: .76rem; line-height: 1.45; font-weight: 550; }
.consent input { margin-top: .12rem; }
.submit-row { display: flex; align-items: center; flex-wrap: wrap; gap: .9rem 1.1rem; margin-top: 1.35rem; }
.submit-row p { max-width: 390px; margin: 0; color: #6b7789; font-size: .69rem; }
.submit-row code { color: #38465a; font-size: .7rem; }
.confirmation { display: flex; gap: .8rem; align-items: flex-start; margin-top: 1.2rem; padding: 1rem; background: #edfac8; border: 1px solid #96b94c; }
.confirmation-icon { display: grid; place-items: center; width: 26px; height: 26px; flex: 0 0 auto; color: #fff; background: var(--midnight); border-radius: 50%; font-size: .85rem; font-weight: 900; }
.confirmation strong { color: var(--midnight); font-size: .86rem; }
.confirmation p { margin: .18rem 0 0; color: #405127; font-size: .75rem; }
footer { padding: 1.5rem 5.2vw 2.2rem; color: #7d8794; border-top: 1px solid #dad8d1; font-size: .72rem; letter-spacing: .025em; }
footer span { color: var(--midnight); font-weight: 850; letter-spacing: .09em; }
@media (max-width: 1060px) { .page-shell { grid-template-columns: 245px minmax(0, 1fr); gap: 2.5rem; padding-inline: 3.5vw; } .option-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 840px) { .site-header { padding-inline: 5vw; } .page-shell { display: block; padding: 1.8rem 5vw 3rem; } .brief-rail { position: relative; top: 0; display: grid; grid-template-columns: 1.1fr .9fr; gap: 1.4rem 2rem; margin-bottom: 2.3rem; padding-bottom: 1.55rem; border-bottom: 1px solid #d7d5ce; } .rail-intro { grid-column: 1 / -1; } .rail-intro h1 { font-size: 2.35rem; } .section-nav { display: none; } .ledger-card { margin: 0; } .progress-wrap { margin: .2rem 0 0; align-self: end; } .rail-note { display: none; } .hero { padding-top: .4rem; } }
@media (max-width: 620px) { .site-header { min-height: 66px; padding-inline: 1.1rem; } .header-meta { display: none; } .page-shell { padding: 1.2rem 1.1rem 2.2rem; } .brief-rail { grid-template-columns: 1fr; gap: 1rem; margin-bottom: 1.6rem; } .ledger-card { grid-row: 2; } .progress-wrap { grid-row: 3; } .hero { display: block; padding: .8rem 0 2rem; } .hero h2 { font-size: 2.5rem; } .hero p { margin-top: 1.15rem; } .form-section { padding: 2.3rem 0; } .section-heading { grid-template-columns: auto 1fr; gap: .8rem; } .section-heading p { grid-column: 2; } .form-grid.two, .addon-grid, .review-summary { grid-template-columns: 1fr; } .option-grid, .option-grid.compact { grid-template-columns: 1fr 1fr; } .addon-card { min-height: 92px; } .summary-group:nth-last-child(-n+2) { border-bottom: 1px solid #e1e4e8; } .summary-group:last-child { border-bottom: 0; } footer { padding: 1.2rem 1.1rem 1.8rem; } }
@media (max-width: 385px) { .option-grid, .option-grid.compact { grid-template-columns: 1fr; } .hero h2 { font-size: 2.15rem; } }
@media print { .site-header, .brief-rail, .review-toolbar, .submit-row, .confirmation, footer { display: none; } body { background: #fff; } .page-shell { display: block; padding: 0; } .hero { padding-top: 0; } .form-section { break-inside: avoid; } }


/* Durable upload controls */
.upload-panel { margin: 1.15rem 0; padding: 1.15rem; background: #f0f4e4; border: 1px solid #b8c88f; border-left: 4px solid var(--lime); }
.upload-panel-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(180px, .85fr); gap: 1rem; align-items: end; margin-bottom: .9rem; }
.upload-panel-heading.compact { display: block; margin-bottom: .75rem; }
.upload-panel-heading h4 { margin: .23rem 0 0; color: var(--midnight); font: 700 1.12rem/1.1 var(--serif); letter-spacing: -.015em; }
.upload-panel-heading p { margin: 0; color: #5c6b47; font-size: .73rem; line-height: 1.45; }
.upload-label { color: var(--midnight); }
.upload-label input[type="file"] { min-height: 0; padding: .52rem .62rem; color: #344257; background: var(--white); border-style: dashed; border-color: #84955d; cursor: pointer; }
.upload-label input[type="file"]::file-selector-button { margin-right: .75rem; padding: .35rem .62rem; color: var(--midnight); background: var(--lime); border: 1px solid var(--midnight); border-radius: 1px; font-weight: 800; cursor: pointer; }
.upload-help { margin: .55rem 0 0; color: #62704d; font-size: .68rem; line-height: 1.45; }
.upload-list { display: block; min-height: 2.2rem; margin-top: .7rem; padding: .55rem .65rem; color: #5a687a; background: rgba(255, 255, 255, .72); border: 1px solid #c8d1b3; font-size: .71rem; line-height: 1.45; overflow-wrap: anywhere; }
.upload-list.has-error { color: #8d3519; background: #fff1ec; border-color: #c9846d; }
.upload-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.15rem 0; }
.button:disabled { opacity: .68; cursor: wait; transform: none; box-shadow: none; }
.submit-status { min-height: 1.1rem; margin: .6rem 0 0; color: #526276; font-size: .72rem; }
.submit-status.error { color: #9d3d1f; font-weight: 700; }

/* Private provider review */
.provider-page { min-height: 100vh; }
.provider-shell { max-width: 1180px; margin: 0 auto; padding: clamp(2.5rem, 6vw, 5.5rem) 5.2vw 4.5rem; }
.provider-shell > h1 { max-width: 13ch; margin: .65rem 0 .7rem; color: var(--midnight); font: 700 clamp(2.45rem, 5vw, 4.65rem)/.95 var(--serif); letter-spacing: -.052em; }
.provider-intro { max-width: 570px; margin: 0; color: #5b6879; }
.provider-status { margin-top: 2rem; padding: 1rem 1.1rem; color: #526276; background: var(--white); border: 1px solid #b9c3cf; font-size: .85rem; }
.provider-status.error { color: #90391d; background: #fff0ea; border-color: #cb8b71; }
.provider-content { margin-top: 2rem; }
.provider-meta { display: flex; flex-wrap: wrap; gap: .45rem 1rem; align-items: baseline; padding: 1rem 1.15rem; color: #c9d2de; background: var(--midnight); }
.provider-meta strong { color: var(--lime); font-size: 1rem; }
.provider-meta span { font-size: .75rem; }
.provider-columns { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 1.2rem; margin-top: 1.2rem; }
.provider-card { min-width: 0; padding: 1.25rem; background: var(--white); border: 1px solid #aeb7c2; }
.provider-card h2 { margin: 0 0 1rem; color: var(--midnight); font: 700 1.45rem/1.05 var(--serif); }
.provider-fields { margin: 0; }
.provider-fields > div { display: grid; grid-template-columns: minmax(115px, .52fr) minmax(0, 1fr); gap: .8rem; padding: .58rem 0; border-bottom: 1px solid #e3e6e9; }
.provider-fields > div:last-child { border-bottom: 0; }
.provider-fields dt { color: #637186; font-size: .67rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.provider-fields dd { min-width: 0; margin: 0; color: var(--ink); font-size: .79rem; overflow-wrap: anywhere; white-space: pre-wrap; }
.provider-file-group + .provider-file-group { margin-top: 1.1rem; padding-top: 1.1rem; border-top: 1px solid #e0e4e8; }
.provider-file-group h3 { margin: 0 0 .55rem; color: #5b6a7f; font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.provider-file-group ul { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.provider-file-group li { display: grid; gap: .16rem; padding: .7rem; background: #f5f7f2; border: 1px solid #d6dec6; }
.provider-file-group a { color: #233c0c; font-size: .78rem; font-weight: 800; overflow-wrap: anywhere; }
.provider-file-group span, .provider-empty { color: #69768a; font-size: .68rem; }

@media (max-width: 620px) {
  .upload-panel-heading, .upload-grid, .provider-columns { grid-template-columns: 1fr; }
  .provider-shell { padding-inline: 1.1rem; }
  .provider-fields > div { grid-template-columns: 1fr; gap: .18rem; }
}

@media print {
  .upload-panel, .submit-status { display: none; }
}


/* Provider recovery inbox */
.inbox-list { display: grid; gap: .9rem; }
.inbox-card { padding: 1.1rem; background: var(--white); border: 1px solid #aeb7c2; }
.inbox-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.inbox-heading h2 { margin: 0; color: var(--midnight); font: 700 1.3rem/1.08 var(--serif); }
.inbox-status { padding: .21rem .42rem; font-size: .63rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.inbox-status.ready { color: #28400a; background: #e4f5bb; }
.inbox-status.failed { color: #862f19; background: #fee2d7; }
.inbox-status.uploading { color: #594716; background: #fff0c5; }
.inbox-details { margin: .55rem 0 0; color: #637186; font-size: .73rem; }
.inbox-actions { display: grid; gap: .7rem; margin-top: .9rem; }
.inbox-actions .button { justify-self: start; }
.inbox-result { display: grid; gap: .42rem; color: #516137; font-size: .74rem; overflow-wrap: anywhere; }
.inbox-result.error, .inbox-error { color: #90391d; }
.inbox-result code { display: block; padding: .55rem .65rem; color: #334353; background: #f4f6f1; border: 1px dashed #aab797; white-space: normal; overflow-wrap: anywhere; }
.inbox-error { margin: .8rem 0 0; font-size: .75rem; }


/* Browser draft autosave */
.draft-card { display: grid; gap: .55rem; margin-top: 1.25rem; padding: .95rem 1rem; color: #4f5f73; background: rgba(255,255,255,.58); border: 1px solid #c9d1da; }
.draft-card .eyebrow { color: #5d711e; margin-bottom: .2rem; }
.draft-card strong { display: block; color: var(--midnight); font-size: .76rem; }
.draft-card p { margin: .25rem 0 0; font-size: .68rem; line-height: 1.45; }
.draft-card .text-button { justify-self: start; font-size: .68rem; }
.draft-card strong[data-state="error"] { color: #9d3d1f; }
@media (max-width: 840px) { .draft-card { margin-top: 0; } }
@media (max-width: 620px) { .draft-card { grid-row: 4; } }


/* Expanded upload file lists */
.upload-list-summary { display: block; margin-bottom: .45rem; color: #334353; font-size: .69rem; font-weight: 850; letter-spacing: .025em; }
.upload-file-list { display: grid; gap: .3rem; max-height: 13rem; margin: 0; padding: 0; overflow: auto; list-style: none; }
.upload-file-list li { display: flex; justify-content: space-between; gap: .75rem; padding: .36rem .45rem; color: #48586d; background: rgba(255, 255, 255, .76); border: 1px solid #d8dfca; font-size: .69rem; }
.upload-file-list li span { min-width: 0; overflow-wrap: anywhere; }
.upload-file-list li small { flex: 0 0 auto; color: #6a7957; font-size: .66rem; white-space: nowrap; }
.upload-list.has-error .upload-list-summary { color: #7f2f17; }
.upload-list-error { margin: 0 0 .55rem; color: #8d3519; font-weight: 800; }


/* Clickable local file preview dropdowns */
.upload-dropdown { min-width: 0; }
.upload-dropdown summary { display: flex; align-items: center; justify-content: space-between; gap: .5rem; cursor: pointer; list-style: none; }
.upload-dropdown summary::-webkit-details-marker { display: none; }
.upload-dropdown summary::after { content: '+'; display: grid; place-items: center; width: 17px; height: 17px; flex: 0 0 auto; color: var(--midnight); background: var(--lime); border: 1px solid #8eaa48; font-size: .9rem; line-height: 1; }
.upload-dropdown[open] summary::after { content: '–'; }
.upload-file-list { margin-top: .48rem; }
.upload-file-list li { align-items: center; }
.upload-file-list li > a { min-width: 0; color: #1e3c09; font-weight: 800; overflow-wrap: anywhere; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.upload-file-list li > a:hover { color: #577510; }
.upload-file-metadata { display: grid; justify-items: end; gap: .08rem; flex: 0 0 auto; }
.upload-file-metadata .upload-file-action { color: #476114; font-size: .61rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; white-space: nowrap; }
.upload-file-metadata small:last-child { color: #6a7957; font-size: .66rem; white-space: nowrap; }
@media (max-width: 460px) { .upload-file-list li { align-items: start; flex-direction: column; gap: .2rem; } .upload-file-metadata { justify-items: start; } }

.provider-file-group .provider-file-action { color: #476114; font-size: .61rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }


/* Pending file removal controls */
.upload-file-controls { display: flex; align-items: center; gap: .55rem; flex: 0 0 auto; }
.upload-file-remove { min-height: 0; padding: .28rem .43rem; color: #8a3218; background: #fff7f2; border: 1px solid #cb8b71; border-radius: 1px; font-size: .62rem; font-weight: 850; letter-spacing: .035em; line-height: 1; text-transform: uppercase; cursor: pointer; }
.upload-file-remove:hover, .upload-file-remove:focus-visible { color: #fff; background: #9d3d1f; border-color: #9d3d1f; }
@media (max-width: 460px) { .upload-file-controls { align-items: flex-start; } }
