/*
 * DOTMCS Operating Authority Form — WordPress Plugin Styles
 * All classes prefixed with 'oaf-' to avoid conflicts.
 */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700;900&display=swap');

.oaf-wrapper { max-width:1050px; margin:40px auto 80px; padding:0 20px; font-family:'Roboto',sans-serif; color:#1a2633; line-height:1.5; -webkit-font-smoothing:antialiased; }
.oaf-wrapper *, .oaf-wrapper *::before, .oaf-wrapper *::after { box-sizing:border-box; }

/* ── Lookup Panel ─────────────────────────────────────────────────────────── */
.oaf-lookup-panel { background:#f5f7fa; border:1px solid #d0dcea; border-radius:8px; padding:56px 24px; text-align:center; }
.oaf-lookup-inner { max-width:540px; margin:0 auto; }
.oaf-lookup-title { font-size:clamp(1.3rem,4vw,1.8rem); font-weight:700; color:#003366; letter-spacing:.04em; text-transform:uppercase; margin-bottom:10px; }
.oaf-lookup-sub   { font-size:.93rem; color:#5a6e82; line-height:1.6; margin-bottom:28px; }
.oaf-lookup-card  { background:#fff; border:1px solid #d0dcea; border-radius:8px; padding:28px 32px; box-shadow:0 4px 20px rgba(0,0,0,.07); }
.oaf-lookup-hint  { font-size:.85rem; color:#5a6e82; margin-bottom:14px; font-weight:500; }
.oaf-lookup-row   { display:flex; gap:10px; }
.oaf-lookup-row input { flex:1; padding:12px 16px; font-size:1rem; border:1px solid #d0dcea; border-radius:4px; outline:none; font-family:inherit; color:#1a2633; transition:border-color .2s; }
.oaf-lookup-row input:focus { border-color:#1976d2; box-shadow:0 0 0 3px rgba(25,118,210,.12); }
#oaf-lookupBtn { display:inline-flex; align-items:center; gap:8px; background:#1976d2; color:white; font-family:'Roboto',sans-serif; font-size:.85rem; font-weight:700; padding:12px 24px; border-radius:4px; border:none; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; white-space:nowrap; transition:background .2s; }
#oaf-lookupBtn:hover { background:#1256a0; }
#oaf-lookupBtn:disabled { opacity:.7; cursor:not-allowed; }
.oaf-lookup-note  { font-size:.82rem; color:#5a6e82; margin-top:12px; }
.oaf-lookup-note a { color:#1976d2; }
.oaf-trust-strip  { display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; margin-top:24px; font-size:.78rem; color:#5a6e82; }

/* ── Form Wrapper Card ────────────────────────────────────────────────────── */
.oaf-form-wrap { animation:oafFadeIn .4s ease; }
@keyframes oafFadeIn { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:translateY(0)} }
.oaf-card { background:#fff; border:1px solid #d0dcea; border-radius:8px; box-shadow:0 2px 16px rgba(0,0,0,.05); overflow:hidden; }

/* ── Progress ─────────────────────────────────────────────────────────────── */
.oaf-progress-header { background:#f5f7fa; border-bottom:1px solid #d0dcea; padding:16px 28px; display:flex; align-items:center; justify-content:space-between; }
.oaf-step-label  { font-size:.82rem; font-weight:600; color:#003366; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; }
.oaf-step-title  { font-size:.82rem; font-weight:600; color:#1976d2; white-space:nowrap; }
.oaf-pbar-wrap   { flex:1; margin:0 24px; height:6px; background:#d0dcea; border-radius:3px; overflow:hidden; }
.oaf-pbar-fill   { height:100%; background:#1976d2; border-radius:3px; transition:width .4s cubic-bezier(.4,0,.2,1); }

/* ── Steps ────────────────────────────────────────────────────────────────── */
.oaf-step { display:none; padding:36px 44px; min-height:250px; }
.oaf-step.active { display:block; animation:oafStepIn .35s ease; }
@keyframes oafStepIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }
.oaf-step-heading { font-size:1.3rem; font-weight:500; color:#003366; letter-spacing:.03em; margin-bottom:6px; }
.oaf-step-sub     { font-size:.9rem; color:#5a6e82; line-height:1.55; margin-bottom:28px; }

/* ── DOT Banner ───────────────────────────────────────────────────────────── */
.oaf-dot-banner { display:flex; align-items:center; gap:14px; background:#e8f1fb; border:1px solid #b0c9f0; border-radius:6px; padding:14px 18px; margin-bottom:24px; }
.oaf-dot-banner-icon { font-size:1.4rem; }
.oaf-dot-banner-label { font-size:.82rem; color:#1256a0; font-weight:600; text-transform:uppercase; letter-spacing:.06em; }
.oaf-dot-banner-name  { font-size:1rem; font-weight:700; color:#003366; }

/* ── Form Groups ──────────────────────────────────────────────────────────── */
.oaf-fg { margin-bottom:22px; }
.oaf-label { display:block; font-size:.88rem; font-weight:600; color:#1a2633; margin-bottom:8px; }
.oaf-req   { color:#c0392b; margin-left:3px; }
.oaf-fg input[type="text"], .oaf-fg input[type="email"], .oaf-fg input[type="tel"], .oaf-fg input[type="number"], .oaf-fg select {
  width:100%; padding:11px 14px; border:1.5px solid #d0dcea; border-radius:5px;
  font-family:'Roboto',sans-serif; font-size:.92rem; color:#1a2633; background:#fff;
  outline:none; transition:border-color .2s,box-shadow .2s;
}
.oaf-fg input:focus, .oaf-fg select:focus { border-color:#1976d2; box-shadow:0 0 0 3px rgba(25,118,210,.12); }
.oaf-fg input.oaf-error-inp, .oaf-fg select.oaf-error-inp { border-color:#c0392b; background:#fdf2f2; }
.oaf-error  { color:#c0392b; font-size:.8rem; font-weight:500; margin-top:5px; display:none; }
.oaf-helper { font-size:.75rem; color:#5a6e82; margin-top:5px; line-height:1.4; }
.oaf-divider { height:1px; background:#d0dcea; margin:22px 0; }
.oaf-grid2  { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:18px; }
.oaf-grid3  { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:14px; }

/* ── Toggle Buttons ───────────────────────────────────────────────────────── */
.oaf-toggle { display:flex; align-items:flex-start; gap:12px; padding:14px 16px; border:1.5px solid #d0dcea; border-radius:5px; background:#fff; cursor:pointer; font-size:.92rem; color:#1a2633; transition:all .2s; margin-bottom:8px; }
.oaf-toggle:hover { background:#f5f7fa; border-color:#b0c4de; }
.oaf-toggle.checked { background:#e8f1fb; border-color:#1976d2; }
.oaf-toggle-title { font-weight:600; font-size:.94rem; color:#1a2633; }
.oaf-toggle-desc  { font-size:.8rem; color:#5a6e82; margin-top:3px; line-height:1.4; }
.oaf-auth-price   { margin-left:auto; font-weight:700; color:#003366; font-size:.95rem; white-space:nowrap; padding-left:10px; }
.oaf-toggle.oaf-sm { padding:10px 14px; }

/* Dot (radio) indicator */
.oaf-tdot { width:18px; height:18px; border:2px solid #d0dcea; border-radius:50%; flex-shrink:0; margin-top:2px; position:relative; transition:all .2s; }
.oaf-toggle.checked .oaf-tdot { border-color:#1976d2; }
.oaf-toggle.checked .oaf-tdot::after { content:""; position:absolute; width:8px; height:8px; background:#1976d2; border-radius:50%; top:50%; left:50%; transform:translate(-50%,-50%); }

/* Check (checkbox) indicator */
.oaf-tcheck { width:18px; height:18px; border:2px solid #d0dcea; border-radius:3px; flex-shrink:0; margin-top:2px; position:relative; transition:all .2s; }
.oaf-toggle.checked .oaf-tcheck { border-color:#1976d2; }
.oaf-toggle.checked .oaf-tcheck::after { content:"✓"; position:absolute; color:#1976d2; font-size:11px; font-weight:bold; top:50%; left:50%; transform:translate(-50%,-50%); }

/* ── Checkbox row ─────────────────────────────────────────────────────────── */
.oaf-check-row { display:flex; align-items:flex-start; gap:12px; cursor:pointer; }
.oaf-check-row input[type="checkbox"] { width:17px; height:17px; margin-top:3px; flex-shrink:0; accent-color:#1976d2; }
.oaf-badge-required { display:inline-block; background:#fde68a; color:#92400e; border-radius:3px; font-size:.7rem; font-weight:700; padding:1px 6px; margin-left:6px; vertical-align:middle; }

/* ── Notes and Boxes ──────────────────────────────────────────────────────── */
.oaf-info-note  { background:#e8f1fb; border:1px solid #b0c9f0; border-radius:5px; padding:14px 18px; font-size:.88rem; color:#1256a0; line-height:1.55; margin-bottom:18px; }
.oaf-info-box   { background:#fffbeb; border:1px solid #fde68a; border-radius:5px; padding:14px 18px; font-size:.88rem; color:#92400e; line-height:1.55; margin-bottom:18px; }
.oaf-warning-note { background:#fff8e1; border:1px solid #f59e0b; border-radius:5px; padding:14px 18px; font-size:.88rem; color:#92400e; line-height:1.55; margin-bottom:18px; }
.oaf-success-box  { background:#ecfdf5; border:1px solid #6ee7b7; border-radius:5px; padding:14px 18px; font-size:.9rem; color:#065f46; line-height:1.55; margin-bottom:18px; }

/* ── Insurance Cards ─────────────────────────────────────────────────────── */
.oaf-ins-card { border:1.5px solid #d0dcea; border-top:3px solid #1976d2; border-radius:6px; padding:18px 20px; margin-bottom:16px; }
.oaf-ins-card-title { font-weight:700; font-size:.95rem; color:#003366; margin-bottom:8px; }
.oaf-ins-row  { display:flex; align-items:flex-start; gap:10px; font-size:.88rem; color:#1a2633; margin-bottom:6px; }
.oaf-ins-row svg { flex-shrink:0; margin-top:2px; }

/* ── Mini Summary ─────────────────────────────────────────────────────────── */
.oaf-mini-summary { background:#f5f7fa; border:1.5px solid #d0dcea; border-radius:6px; padding:18px 22px; margin-top:10px; }
.oaf-mini-summary-title { font-size:.78rem; font-weight:700; text-transform:uppercase; color:#5a6e82; letter-spacing:.1em; margin-bottom:10px; }
.oaf-mini-line    { display:flex; justify-content:space-between; font-size:.88rem; color:#1a2633; margin-bottom:6px; }
.oaf-mini-total-row { display:flex; justify-content:space-between; font-size:.95rem; font-weight:700; color:#003366; border-top:1px dashed #d0dcea; padding-top:10px; margin-top:8px; }
.oaf-multi-auth-note { background:#e8f1fb; border:1px solid #b0c9f0; border-radius:4px; padding:10px 14px; font-size:.82rem; color:#1256a0; margin-top:6px; }

/* ── Acknowledgments ─────────────────────────────────────────────────────── */
.oaf-ack-list { display:flex; flex-direction:column; gap:6px; }
.oaf-ack-row  { display:flex; align-items:flex-start; gap:12px; background:#f9fafb; border:1px solid #e5edf5; border-radius:5px; padding:14px 16px; cursor:pointer; line-height:1.55; font-size:.9rem; }
.oaf-ack-row input[type="checkbox"] { width:17px; height:17px; margin-top:2px; flex-shrink:0; accent-color:#1976d2; }

/* ── Signature ────────────────────────────────────────────────────────────── */
.oaf-sig-container { position:relative; border:1.5px solid #d0dcea; border-radius:6px; background:#fff; height:140px; overflow:hidden; }
.oaf-sig-canvas    { width:100%; height:100%; cursor:crosshair; display:block; }
.oaf-sig-clear     { position:absolute; top:8px; right:10px; background:none; border:none; font-size:.75rem; color:#5a6e82; cursor:pointer; text-decoration:underline; font-family:'Roboto',sans-serif; }

/* ── Checkout ─────────────────────────────────────────────────────────────── */
.oaf-checkout-box   { background:#f5f7fa; border:1.5px solid #d0dcea; border-radius:6px; padding:22px; margin-bottom:24px; }
.oaf-checkout-title { font-size:.9rem; font-weight:700; text-transform:uppercase; color:#003366; letter-spacing:.08em; margin-bottom:14px; border-bottom:1px solid #d0dcea; padding-bottom:8px; }
.oaf-checkout-row   { display:flex; justify-content:space-between; font-size:.9rem; margin-bottom:10px; color:#1a2633; }
.oaf-checkout-total { font-size:1.1rem; font-weight:700; border-top:1px dashed #d0dcea; padding-top:10px; margin-top:10px; color:#003366; }

.oaf-review-box   { border:1.5px solid #d0dcea; border-radius:6px; padding:20px; margin-bottom:24px; }
.oaf-review-title { font-weight:700; font-size:.9rem; text-transform:uppercase; color:#003366; letter-spacing:.08em; margin-bottom:14px; }
.oaf-review-grid  { display:grid; grid-template-columns:1fr 1fr; gap:8px 20px; }
.oaf-review-row   { }
.oaf-review-key   { font-size:.75rem; font-weight:600; text-transform:uppercase; color:#5a6e82; letter-spacing:.06em; }
.oaf-review-val   { font-size:.9rem; color:#1a2633; margin-top:2px; }

/* ── Nav Buttons ──────────────────────────────────────────────────────────── */
.oaf-nav-row  { display:flex; justify-content:space-between; align-items:center; padding:20px 44px 26px; border-top:1px solid #d0dcea; }
.oaf-btn-prev { display:inline-flex; align-items:center; gap:8px; background:transparent; color:#5a6e82; font-family:'Roboto',sans-serif; font-size:.88rem; font-weight:600; padding:11px 22px; border-radius:5px; border:1.5px solid #d0dcea; cursor:pointer; transition:all .15s; }
.oaf-btn-prev:hover { background:#f5f7fa; color:#1a2633; }
.oaf-btn-next { display:inline-flex; align-items:center; gap:8px; background:#1976d2; color:#fff; border:none; padding:11px 28px; border-radius:5px; cursor:pointer; font-family:'Roboto',sans-serif; font-size:.88rem; font-weight:600; transition:background .15s,transform .1s; }
.oaf-btn-next:hover { background:#1256a0; }
.oaf-btn-next:active { transform:scale(.98); }
.oaf-btn-next:disabled { opacity:.6; cursor:not-allowed; }
.oaf-btn-secondary { background:#fff; color:#003366; border:1.5px solid #003366; padding:9px 18px; border-radius:4px; cursor:pointer; font-family:'Roboto',sans-serif; font-size:.85rem; font-weight:700; transition:all .15s; }
.oaf-btn-secondary:hover { background:#e8f1fb; }
.oaf-btn-admin { display:inline-flex; align-items:center; gap:6px; background:#fff; color:#003366; border:1.5px solid #003366; padding:10px 18px; border-radius:4px; cursor:pointer; font-family:'Roboto',sans-serif; font-size:.82rem; font-weight:700; transition:all .15s; }
.oaf-btn-admin:hover { background:#e8f1fb; }

/* ── Modal ────────────────────────────────────────────────────────────────── */
.oaf-modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:100000; display:none; align-items:center; justify-content:center; padding:0 16px; backdrop-filter:blur(2px); }
.oaf-modal-overlay.active { display:flex; }
.oaf-modal-box { background:#fff; border-radius:12px; max-width:500px; width:100%; box-shadow:0 20px 60px rgba(0,0,0,.3); overflow:hidden; animation:oafModalIn .3s cubic-bezier(.34,1.56,.64,1); }
@keyframes oafModalIn { from{transform:scale(.9);opacity:0} to{transform:scale(1);opacity:1} }
.oaf-modal-header { padding:16px 22px; display:flex; align-items:center; color:#fff; font-weight:700; }
.oaf-modal-warning { background:#d97706; }
.oaf-modal-body   { padding:22px; }
.oaf-modal-body p { font-size:.93rem; color:#1a2633; line-height:1.6; margin-bottom:20px; }
.oaf-modal-btns   { display:flex; gap:10px; justify-content:flex-end; }
.oaf-modal-btn    { padding:10px 20px; border-radius:5px; font-size:.88rem; font-weight:700; cursor:pointer; font-family:'Roboto',sans-serif; transition:all .2s; }
.oaf-modal-primary   { background:#003366; color:#fff; border:none; }
.oaf-modal-primary:hover { background:#002244; }
.oaf-modal-secondary { background:#fff; color:#374151; border:1.5px solid #d0dcea; }
.oaf-modal-secondary:hover { background:#f5f7fa; }

@media (max-width:768px) {
  .oaf-step     { padding:22px 18px; }
  .oaf-nav-row  { padding:16px 18px; }
  .oaf-progress-header { padding:12px 18px; }
  .oaf-review-grid { grid-template-columns:1fr; }
}
