/* CSV to JSON – minimal, namespaced add-ons */
.ctl-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.ctl-label{display:block;font-weight:600;margin-bottom:8px}
.ctl-in--mono{font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}

/* Dropzone */
.ctl-drop{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  border:2px dashed var(--line); border-radius:var(--radius-card);
  background:#fff; padding:18px 16px; cursor:pointer;
}
.ctl-drop:focus-visible{box-shadow:var(--focus-ring)}
.ctl-drop.is-drag{border-color:var(--primary); background:#f0f7ff}

/* Fieldset grid */
.ctl-fieldset{border:1px solid var(--line); border-radius:12px; padding:14px}
.ctl-fieldset legend{font-weight:700; padding:0 6px}
.ctl-grid--options{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}

/* Status & error */
.ctl-status{font-size:13px;color:var(--ink-500)}
.ctl-error{margin-top:10px; background:#fff; border:1px solid var(--danger); color:var(--danger); padding:10px; border-radius:12px}

/* Summary bar */
.ctl-summary{font-size:13px;color:var(--ink-700);border:1px solid var(--line);background:#fff;padding:10px;border-radius:12px}

/* Buttons in actions row adapt on small screens */
@media (max-width: 560px){
  #app .u-flex{flex-wrap:wrap}
}
