:root {
    --navy-900:#162D4A; --navy-800:#1E3A5F; --navy-700:#2A4A73; --navy-100:#EAF0F7;
    --gold-600:#A8841F; --gold-500:#C49A2A; --gold-100:#F6EFD8;
    --ivory:#FFFDF7; --surface:#FFFFFF; --ivory-200:#F9F7F2; --ivory-300:#F1EFE7; --border:#E2DFD5;
    --ink-900:#1E293B; --ink-600:#475569; --gray-400:#9CA3AF; --gray-300:#CBD5E1;
    --error:#DC2626; --error-bg:#FEF2F2;
    --font-serif:'DM Serif Display', Georgia, 'Times New Roman', serif;
    --font-sans:'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-mono:'IBM Plex Mono', 'SFMono-Regular', Menlo, monospace;
  }
  * { box-sizing: border-box; }
  body { margin:0; background:var(--ivory); color:var(--ink-900); font-family:var(--font-sans); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
  a { color:var(--navy-800); }
  a:hover { color:var(--gold-600); }
  input, select, textarea { font-family:var(--font-sans); }
  ::placeholder { color:var(--gray-400); }

  .masthead { background:var(--navy-800); padding:clamp(40px,7vw,72px) clamp(20px,6vw,64px); }
  .masthead-inner { max-width:800px; margin:0 auto; }
  .eyebrow { font-size:11px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; color:var(--gold-500); margin-bottom:16px; }
  .masthead h1 { font-family:var(--font-serif); font-weight:400; font-size:clamp(28px,5vw,40px); line-height:1.15; margin:0 0 14px; color:#fff; }
  .masthead p { font-size:16px; line-height:1.6; color:rgba(255,255,255,0.72); margin:0; max-width:540px; }

  .toggle-wrap { max-width:800px; margin:0 auto; padding:clamp(24px,5vw,40px) clamp(20px,6vw,64px) 0; }
  .toggle { display:inline-flex; border:1px solid var(--navy-800); border-radius:4px; overflow:hidden; width:100%; max-width:420px; }
  .toggle button { flex:1; height:44px; padding:0 16px; font-family:var(--font-sans); font-size:15px; font-weight:600; cursor:pointer; border:none; outline:none; background:var(--ivory); color:var(--navy-800); transition:background 160ms ease, color 160ms ease; }
  .toggle button.active { background:var(--navy-800); color:var(--ivory); }
  .toggle button + button { border-left:1px solid var(--navy-800); }

  form { max-width:800px; margin:0 auto; padding:clamp(24px,5vw,40px) clamp(20px,6vw,64px) clamp(64px,8vw,96px); }

  .card { background:var(--surface); border:1px solid var(--border); border-radius:4px; padding:28px; margin-bottom:32px; }
  .card h2 { font-family:var(--font-serif); font-weight:400; font-size:22px; color:var(--navy-800); margin:0 0 12px; }
  .divider { height:1px; background:var(--ivory-300); margin-bottom:24px; }
  .grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:24px; }
  .full { grid-column:1/-1; }
  label.field-label, .field-label-static { display:block; font-size:13px; font-weight:600; color:var(--ink-900); margin-bottom:6px; }
  .req { color:var(--gold-500); }
  .field { width:100%; box-sizing:border-box; height:44px; padding:10px 14px; font-size:15px; color:var(--ink-900); background:var(--surface); border:1px solid var(--border); border-radius:4px; outline:none; }
  .field:focus { border-color:var(--navy-800); border-width:2px; padding:9px 13px; }
  .field.mono { font-family:var(--font-mono); }
  textarea.field { height:auto; padding:12px 14px; resize:vertical; font-family:var(--font-sans); }
  .radio-row, .check-row { display:flex; gap:16px 32px; align-items:center; flex-wrap:wrap; height:44px; }
  .radio-row label, .check-row label { display:flex; align-items:center; gap:8px; font-size:15px; color:var(--ink-900); cursor:pointer; }
  input[type="radio"], input[type="checkbox"] { width:18px; height:18px; accent-color:var(--navy-800); }
  input[type="file"] { width:100%; box-sizing:border-box; font-size:14px; color:var(--ink-900); background:var(--surface); border:1px dashed var(--gray-400); border-radius:4px; padding:14px; }
  .hint { display:block; margin-top:8px; font-size:12px; color:var(--ink-600); }

  .ack-label { display:flex; align-items:flex-start; gap:12px; cursor:pointer; margin-bottom:16px; }
  .ack-label input { margin-top:2px; flex-shrink:0; }
  .ack-label span { font-size:14px; line-height:1.5; color:var(--ink-900); }

  canvas#signature-pad { width:100%; height:160px; box-sizing:border-box; display:block; border:1.5px dashed var(--gray-400); border-radius:4px; background:var(--surface); touch-action:none; cursor:crosshair; }
  .sig-row { display:flex; justify-content:space-between; align-items:center; margin-top:10px; flex-wrap:wrap; gap:12px; }
  .sig-row span { font-size:12px; color:var(--ink-600); }
  .btn-ghost { background:none; border:1px solid var(--border); color:var(--navy-800); font-family:var(--font-sans); font-weight:600; font-size:13px; padding:0 14px; height:32px; border-radius:4px; cursor:pointer; }
  .btn-ghost:hover { border-color:var(--navy-800); }

  .btn-submit { width:100%; margin-top:8px; height:48px; background:var(--navy-800); color:#fff; font-family:var(--font-sans); font-weight:600; font-size:16px; border:none; border-radius:4px; cursor:pointer; transition:background 160ms ease; }
  .btn-submit:hover { background:var(--navy-900); }
  .btn-submit:disabled { background:var(--gray-400); cursor:not-allowed; }

  .error-banner { display:none; background:var(--error-bg); border:1px solid var(--error); color:var(--error); border-radius:4px; padding:14px 16px; font-size:14px; margin-bottom:24px; }

  #success-screen { display:none; padding:clamp(32px,6vw,64px) clamp(20px,6vw,64px) 96px; }
  .success-card { max-width:520px; margin:0 auto; text-align:center; padding:48px; background:var(--surface); border:1px solid var(--border); border-radius:6px; }
  .success-card h2 { font-family:var(--font-serif); font-weight:400; font-size:30px; color:var(--navy-800); margin:0 0 16px; }
  .success-card p { font-size:16px; line-height:1.6; color:var(--ink-600); margin:0 0 8px; }
  .success-card .fine { font-size:13px; color:var(--gray-400); margin:24px 0 0; }

  .admin-wrap { max-width:800px; margin:0 auto; padding:clamp(24px,5vw,40px) clamp(20px,6vw,64px) clamp(64px,8vw,96px); }
  .admin-login-card { max-width:420px; margin:0 auto; }
