:root { --form-navy:#09243b; --form-blue:#446f82; --form-line:#c8d5df; --form-soft:#f2f6f8; --form-warn:#a44925; }
* { box-sizing:border-box; }
.retrofit-form-page { margin:0; overflow-x:hidden; color:#172c3d; background:#eaf0f4; font-family:Inter, Pretendard, "Noto Sans KR", Arial, sans-serif; }
.retrofit-form-main { width:min(1180px, calc(100% - 32px)); min-width:0; margin:34px auto 72px; overflow-x:clip; }
.form-cover, .form-sheet, .privacy-note, .form-references, .form-decision-figure { background:#fff; border:1px solid var(--form-line); }
.form-cover { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,.65fr); gap:34px; padding:46px; }
.form-kicker, .form-section-head p { margin:0 0 8px; color:var(--form-blue); font-size:.76rem; font-weight:850; letter-spacing:.12em; }
.form-cover h1 { max-width:820px; margin:0 0 16px; color:var(--form-navy); font-size:clamp(2rem,4vw,3.7rem); line-height:1.04; letter-spacing:-.045em; }
.form-cover p { margin:0; line-height:1.75; }
.form-boundary { align-self:stretch; padding:24px; color:#fff; background:var(--form-navy); }
.form-boundary strong { display:block; margin-bottom:10px; color:#ffbf86; }
.privacy-note { margin-top:14px; padding:18px 22px; border-left:4px solid #3d8b74; }
.privacy-note strong { color:var(--form-navy); }
.privacy-note p { margin:5px 0 0; color:#516676; }
.intake-progress { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:14px 0; padding:14px 16px; border:1px solid #cbd5e1; background:#f8fafc; color:#334155; font-weight:700; }
.intake-progress[data-state="complete"] { border-color:#2f855a; background:#f0fff4; color:#276749; }
.sensitive-warning { margin:14px 0; padding:16px; border:2px solid #b42318; background:#fff1f0; color:#7a271a; font-weight:800; }
.required-mark { color:#b42318; }
.form-actions { position:sticky; z-index:5; top:8px; display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin:16px 0; padding:12px; border:1px solid var(--form-line); background:rgba(255,255,255,.96); box-shadow:0 8px 22px rgba(9,36,59,.08); }
#form-save-status { margin-left:auto; color:#526876; font-size:.86rem; }
.form-sheet { margin-top:18px; padding:34px; break-inside:avoid; }
.form-section-head { display:flex; align-items:center; gap:16px; margin-bottom:24px; padding-bottom:17px; border-bottom:2px solid var(--form-navy); }
.form-section-head > span { display:grid; width:46px; height:46px; place-items:center; border-radius:50%; color:#fff; background:var(--form-navy); font-weight:900; }
.form-section-head h2 { margin:0; color:var(--form-navy); font-size:1.55rem; letter-spacing:-.025em; }
.field-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
label { display:grid; gap:7px; min-width:0; color:#344e60; font-size:.85rem; font-weight:750; }
input[type="text"], input[type="date"], textarea, select { width:100%; min-height:44px; padding:10px 11px; border:1px solid #9fb2bf; border-radius:3px; color:#132d40; background:#fff; font:inherit; resize:vertical; }
textarea { min-height:58px; line-height:1.45; }
input:focus, textarea:focus, select:focus, button:focus, a:focus { outline:3px solid rgba(34,126,170,.28); outline-offset:2px; }
.field-wide { margin-top:16px; }
.check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 18px; margin-top:18px; }
.check-grid label { grid-template-columns:22px 1fr; align-items:start; gap:8px; font-weight:600; line-height:1.5; }
.check-grid input { width:18px; height:18px; margin:2px 0 0; accent-color:var(--form-navy); }
.table-scroll { max-width:100%; overflow-x:auto; border:1px solid var(--form-line); }
.table-scroll table { width:100%; min-width:900px; border-collapse:collapse; table-layout:fixed; }
.table-scroll th, .table-scroll td { padding:9px; border:1px solid var(--form-line); text-align:left; vertical-align:top; }
.table-scroll th { color:#fff; background:var(--form-navy); font-size:.8rem; }
.table-scroll td:first-child { color:var(--form-navy); background:#f3f7f9; font-weight:800; }
.table-scroll input, .table-scroll textarea, .table-scroll select { min-height:40px; padding:7px; font-size:.78rem; }
.table-scroll textarea { min-height:74px; }
.stop-box { margin-top:20px; padding:20px; border:2px solid #d26d41; background:#fff8f4; }
.stop-box h3 { margin:0 0 12px; color:var(--form-warn); }
.evidence-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.evidence-grid article { min-width:0; padding:18px; border:1px solid var(--form-line); background:var(--form-soft); }
.evidence-grid h3 { margin:0 0 14px; color:var(--form-navy); }
.evidence-grid label + label { margin-top:12px; }
.form-note { margin:18px 0 0; padding:14px 16px; color:#5b3e2e; background:#fff6e9; border-left:4px solid #d5812d; line-height:1.65; }
.approval-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-top:18px; }
.approval-grid label { padding:14px; border:1px solid var(--form-line); background:#f8fafb; }
.approval-grid span { color:#6b7f8d; font-size:.72rem; font-weight:500; }
.form-decision-figure { margin:18px 0 0; padding:24px; text-align:center; }
.form-decision-figure img { width:min(100%,900px); height:auto; }
.form-decision-figure figcaption { margin-top:12px; color:#627684; font-size:.82rem; }
.form-references { margin-top:18px; padding:30px; }
.form-references h2 { color:var(--form-navy); }
.form-references li { margin:8px 0; line-height:1.5; }
.form-references p { color:#506676; line-height:1.65; }

@media (max-width:900px) {
  .form-cover { grid-template-columns:1fr; padding:30px; }
  .field-grid, .approval-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .evidence-grid { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .retrofit-form-main { width:min(100% - 20px,1180px); margin-top:18px; }
  .form-cover, .form-sheet, .form-references { padding:22px 17px; }
  .field-grid, .approval-grid, .check-grid { grid-template-columns:1fr; }
  .form-actions .button { flex:1 1 100%; }
  #form-save-status { width:100%; margin:0; text-align:center; }
  .form-section-head { align-items:flex-start; }
  .form-section-head h2 { font-size:1.25rem; }
}
@page { size:A4; margin:10mm; }
@media print {
  .no-print { display:none !important; }
  .retrofit-form-page { background:#fff; font-size:9.5pt; }
  .retrofit-form-main { width:auto; margin:0; }
  .form-cover, .form-sheet, .form-references, .form-decision-figure { margin:0 0 6mm; padding:7mm; box-shadow:none; break-inside:auto; }
  .form-cover { grid-template-columns:1.6fr .8fr; }
  .form-cover h1 { font-size:24pt; }
  .form-sheet { break-before:page; }
  .form-section-head { margin-bottom:4mm; padding-bottom:3mm; }
  .form-section-head > span { width:9mm; height:9mm; }
  .field-grid { grid-template-columns:repeat(4,1fr); gap:3mm; }
  .evidence-grid { grid-template-columns:repeat(3,1fr); gap:3mm; }
  .approval-grid { grid-template-columns:repeat(4,1fr); gap:3mm; }
  .check-grid { gap:2mm 4mm; margin-top:4mm; }
  input[type="text"], input[type="date"], textarea, select { min-height:8mm; padding:2mm; border-color:#869aa8; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  textarea { min-height:12mm; }
  .table-scroll { overflow:visible; }
  .table-scroll table { min-width:0; font-size:7.2pt; }
  .table-scroll th, .table-scroll td { padding:1.6mm; }
  .table-scroll textarea { min-height:13mm; }
  .form-boundary, .form-section-head > span, .table-scroll th { print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .form-decision-figure img { width:150mm; }
  a { color:inherit; text-decoration:none; }
}
