/* Todas as regras ficam sob .codeform (mais especificidade que os estilos de tema, sem !important).
   Fonte: por padrão herda do tema; para trocar, defina --cf-font no contêiner (ex.: .codeform{--cf-font:Georgia,serif}). */
.codeform{--cf-primary:#2563eb;--cf-on-primary:#fff;--cf-bg:#fff;--cf-text:#1f2937;--cf-radius:8px;--cf-line:color-mix(in srgb,var(--cf-text) 22%,transparent);--cf-r:min(var(--cf-radius),8px);max-width:640px;margin:0 auto;padding:20px;background:var(--cf-bg);color:var(--cf-text);font-family:var(--cf-font,inherit);font-size:15px;line-height:1.45;border:1px solid color-mix(in srgb,var(--cf-text) 9%,transparent);border-radius:var(--cf-radius);box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px -8px rgba(16,24,40,.08);box-sizing:border-box}
.codeform *,.codeform *::before,.codeform *::after{box-sizing:border-box}
.codeform [hidden]{display:none!important}
.codeform fieldset{border:0;margin:0;padding:0;min-width:0}

/* ---------- Progresso ---------- */
.codeform .cf-progress{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;font-size:12px;font-weight:500;letter-spacing:.02em;color:color-mix(in srgb,var(--cf-text) 78%,transparent)}
.codeform .cf-progress-bar{display:block;height:4px;background:color-mix(in srgb,var(--cf-text) 8%,transparent);border-radius:99px;overflow:hidden}
.codeform .cf-progress-bar i{display:block;height:100%;background:var(--cf-primary);border-radius:99px;transition:width .3s}

/* ---------- Etiquetas (vagas restantes e tempo) ---------- */
.codeform .cf-code-info:not(:empty),.codeform .cf-timer:not([hidden]){display:inline-flex;align-items:center;gap:6px;margin:0 6px 14px 0;padding:3px 10px;border-radius:99px;font-size:12px;font-weight:500;line-height:1.5;background:color-mix(in srgb,var(--cf-primary) 8%,transparent);color:color-mix(in srgb,var(--cf-text) 85%,transparent);opacity:1}
.codeform .cf-code-info:not(:empty)::before,.codeform .cf-timer:not([hidden])::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--cf-primary)}
.codeform .cf-timer{font-variant-numeric:tabular-nums}

/* ---------- Campos ---------- */
.codeform .cf-field{margin-bottom:14px}
.codeform .cf-label{display:block;margin:0 0 5px;padding:0;font-size:13.5px;font-weight:500;line-height:1.45;letter-spacing:normal;text-transform:none;color:color-mix(in srgb,var(--cf-text) 90%,transparent)}
.codeform .cf-req{margin-left:1px;color:#dc2626}
.codeform input.cf-input,.codeform select.cf-input,.codeform textarea.cf-input{display:block;width:100%;max-width:none;min-height:40px;margin:0;padding:9px 12px;font:inherit;font-family:var(--cf-font,inherit);font-size:15px;font-weight:400;font-style:normal;letter-spacing:normal;text-transform:none;text-shadow:none;color:inherit;background:#fff;border:1px solid var(--cf-line);border-radius:var(--cf-r);box-shadow:none;box-sizing:border-box;-webkit-appearance:none;appearance:none;transition:border-color .15s,box-shadow .15s}
.codeform select.cf-input{-webkit-appearance:auto;appearance:auto}
.codeform .cf-input:hover{border-color:color-mix(in srgb,var(--cf-text) 38%,transparent)}
.codeform .cf-input:focus{outline:0;border-color:var(--cf-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--cf-primary) 18%,transparent)}
.codeform textarea.cf-input{min-height:96px}
.codeform .cf-invalid .cf-input,.codeform .cf-invalid .cf-drop-zone{border-color:#dc2626}
.codeform .cf-invalid .cf-input:focus{box-shadow:0 0 0 3px rgba(220,38,38,.15)}
.codeform .cf-error,.codeform .cf-msg{margin:5px 0 0;padding:0;font-size:12.5px;font-weight:500;letter-spacing:normal;text-transform:none;color:#dc2626}
.codeform .cf-msg:empty{display:none}
.codeform .cf-error{min-height:1.4em;line-height:1.4}
.codeform .cf-hint{display:block;margin-top:4px;font-size:12px;color:color-mix(in srgb,var(--cf-text) 72%,transparent)}
.codeform .cf-file{padding:8px}

/* ---------- Checkboxes ---------- */
.codeform .cf-check{display:flex;align-items:flex-start;gap:9px;margin:8px 0 0;padding:2px 0;font-size:14px;font-weight:400;line-height:1.4;letter-spacing:normal;text-transform:none;color:color-mix(in srgb,var(--cf-text) 85%,transparent);cursor:pointer}
.codeform .cf-check input{flex:none;width:17px;height:17px;margin:1px 0 0;padding:0;box-shadow:none;accent-color:var(--cf-primary);cursor:pointer}
.codeform .cf-check input:focus-visible{outline:2px solid var(--cf-primary);outline-offset:2px}
.codeform .cf-foreign{margin-top:8px}

/* ---------- Escala ---------- */
.codeform .cf-scale{display:flex;gap:8px;flex-wrap:wrap}
.codeform .cf-scale label{margin:0;cursor:pointer}
.codeform .cf-scale input{position:absolute;opacity:0;margin:0;box-shadow:none}
.codeform .cf-scale span{display:inline-block;min-width:40px;padding:8px 0;text-align:center;font-size:14px;line-height:1.45;border:1px solid var(--cf-line);border-radius:var(--cf-r)}
.codeform .cf-scale input:checked+span{background:var(--cf-primary);border-color:var(--cf-primary);color:var(--cf-on-primary)}
.codeform .cf-scale input:focus-visible+span{outline:2px solid var(--cf-primary);outline-offset:2px}
.codeform .cf-grid{overflow-x:auto;border:0;margin:0;padding:0}.codeform .cf-grid-head,.codeform .cf-grid-row{display:grid;grid-auto-columns:minmax(72px,1fr);grid-auto-flow:column;gap:8px;align-items:center;min-width:max-content;padding:8px 0}.codeform .cf-grid-head{font-weight:600}.codeform .cf-grid-row>span:first-child,.codeform .cf-grid-head>span:first-child{position:sticky;left:0;min-width:120px;background:var(--cf-bg);z-index:1}.codeform .cf-grid-row label{text-align:center;margin:0}.codeform .cf-grid-row input{accent-color:var(--cf-primary)}.codeform .cf-name-parts{display:grid;grid-template-columns:1fr 1fr;gap:10px}

/* ---------- Área de arrastar e soltar ---------- */
.codeform .cf-drop{position:relative}
.codeform .cf-drop .cf-file{position:absolute;width:1px;height:1px;margin:0;padding:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);border:0}
.codeform .cf-drop-zone{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;padding:16px;text-align:center;border:1px dashed var(--cf-line);border-radius:var(--cf-r);background:color-mix(in srgb,var(--cf-text) 2.5%,transparent);cursor:pointer;transition:border-color .15s,background .15s}
.codeform .cf-drop-zone:hover{border-color:var(--cf-primary);background:color-mix(in srgb,var(--cf-primary) 4%,transparent)}
.codeform .cf-drop-icon{display:grid;place-items:center;width:30px;height:30px;margin-bottom:4px;border-radius:50%;background:color-mix(in srgb,var(--cf-primary) 10%,transparent);color:var(--cf-primary);line-height:1}
.codeform .cf-drop-icon svg{width:16px;height:16px}
.codeform .cf-drop-text{font-size:14px}
.codeform .cf-drop-text u{color:var(--cf-primary);font-weight:500;text-underline-offset:2px}
.codeform .cf-drop-zone .cf-hint{margin:0}
.codeform .cf-drop.is-over .cf-drop-zone{border-color:var(--cf-primary);background:color-mix(in srgb,var(--cf-primary) 10%,transparent)}
.codeform .cf-drop:focus-within .cf-drop-zone{outline:2px solid var(--cf-primary);outline-offset:2px}
.codeform .cf-drop.has-file .cf-drop-zone{border-style:solid;border-color:color-mix(in srgb,var(--cf-primary) 50%,transparent)}
.codeform .cf-drop-list{list-style:none;margin:8px 0 0;padding:0}
.codeform .cf-drop-list li{display:flex;align-items:center;gap:10px;margin:6px 0 0;padding:8px 10px;border:1px solid var(--cf-line);border-radius:var(--cf-r);background:#fff}
.codeform .cf-drop-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500}
.codeform .cf-drop-size{font-size:12px;white-space:nowrap;color:color-mix(in srgb,var(--cf-text) 55%,transparent)}
.codeform button.cf-drop-remove{display:inline-block;width:auto;min-height:32px;margin:0;padding:0 4px;border:0;border-radius:0;background:none;box-shadow:none;color:#dc2626;font:inherit;font-family:var(--cf-font,inherit);font-size:13px;font-weight:400;letter-spacing:normal;text-transform:none;text-decoration:underline;-webkit-appearance:none;appearance:none;cursor:pointer}
.codeform button.cf-drop-remove:hover,.codeform button.cf-drop-remove:focus{background:none;color:#dc2626;box-shadow:none}

/* ---------- Botão ---------- */
.codeform button.cf-btn{display:inline-block;width:100%;min-height:42px;margin:0;padding:10px 18px;font:inherit;font-family:var(--cf-font,inherit);font-size:15px;font-weight:600;font-style:normal;letter-spacing:normal;text-transform:none;text-decoration:none;text-shadow:none;text-align:center;color:var(--cf-on-primary);background:var(--cf-primary);border:0;border-radius:var(--cf-r);box-shadow:0 1px 2px rgba(16,24,40,.12),inset 0 1px 0 rgba(255,255,255,.14);box-sizing:border-box;-webkit-appearance:none;appearance:none;cursor:pointer;transition:filter .15s,transform .05s}
.codeform button.cf-btn:hover,.codeform button.cf-btn:focus{color:var(--cf-on-primary);background:var(--cf-primary);border:0;box-shadow:0 1px 2px rgba(16,24,40,.12),inset 0 1px 0 rgba(255,255,255,.14);text-decoration:none}
.codeform .cf-step-code .cf-btn{margin-top:16px}
.codeform .cf-step-form .cf-btn{margin-top:16px}
.codeform .cf-btn:hover:not(:disabled):not([aria-disabled=true]){filter:brightness(.94)}
.codeform .cf-btn:active:not(:disabled):not([aria-disabled=true]){transform:translateY(1px)}
.codeform .cf-btn:focus-visible{outline:3px solid var(--cf-primary);outline-offset:2px}
.codeform .cf-btn:disabled,.codeform .cf-btn[aria-disabled=true]{opacity:.7;cursor:wait}
.codeform .cf-btn.cf-loading{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.codeform .cf-btn.cf-loading::before{content:"";flex:none;width:14px;height:14px;border:2px solid color-mix(in srgb,var(--cf-on-primary) 35%,transparent);border-top-color:var(--cf-on-primary);border-radius:50%;animation:cf-spin .7s linear infinite}
@keyframes cf-spin{to{transform:rotate(360deg)}}

/* ---------- Aviso, agradecimento, extras ---------- */
.codeform .cf-notice{margin-bottom:16px;border-radius:var(--cf-r);line-height:1.5}
.codeform .cf-notice-title{margin:0 0 12px;padding:0;text-align:center;line-height:1.1;font-family:var(--cf-font,inherit);font-weight:600;letter-spacing:normal;text-transform:none}
.codeform .cf-notice-icon{display:block;margin:0 auto 12px}
.codeform .cf-notice>:first-child{margin-top:0}
.codeform .cf-notice>:last-child{margin-bottom:0}
.codeform .cf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.codeform .cf-thanks{text-align:center;padding:24px 20px;border:1px solid color-mix(in srgb,var(--cf-primary) 30%,transparent);border-left:4px solid var(--cf-primary);border-radius:var(--cf-radius);background:color-mix(in srgb,var(--cf-primary) 6%,var(--cf-bg));color:var(--cf-text);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.codeform .cf-thanks:focus,.codeform .cf-thanks:focus-visible{outline:0}
.codeform .cf-thanks .cf-notice{margin:0;padding:0;border:0;background:none;box-shadow:none}
.codeform .cf-redirect{font-size:13px;opacity:.75}
.codeform .cf-captcha{margin-top:14px;max-width:100%}

/* ---------- Celular ---------- */
@media (max-width:480px){
	.codeform{padding:16px;box-shadow:none}
	.codeform input.cf-input,.codeform select.cf-input{min-height:44px;font-size:16px}
	.codeform textarea.cf-input{font-size:16px}
	.codeform button.cf-btn{min-height:44px}
	.codeform .cf-check input{width:20px;height:20px}
	.codeform .cf-scale span{min-width:44px;padding:11px 0}
}
@media (max-width:420px){.codeform .cf-captcha{transform:scale(.8);transform-origin:0 0;height:64px}}
@media (max-width:320px){.codeform .cf-captcha{transform:scale(.7);height:56px}}
/* !important aqui é intencional: a preferência de movimento reduzido vale sobre qualquer transição/animação declarada acima. */
@media (prefers-reduced-motion:reduce){.codeform *,.codeform *::before{transition:none!important}.codeform .cf-btn.cf-loading::before{animation-duration:2s}}
.codeform .cf-timer-warn{margin:0 0 12px;padding:6px 10px;border-left:3px solid #d97706;font-size:13px;font-weight:600;color:var(--cf-text)}
.codeform .cf-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.codeform button.cf-link-btn{display:inline;width:auto;min-height:0;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;font:inherit;font-family:var(--cf-font,inherit);font-weight:400;letter-spacing:normal;text-transform:none;color:var(--cf-primary);text-decoration:underline;-webkit-appearance:none;appearance:none;cursor:pointer}
.codeform button.cf-link-btn:hover,.codeform button.cf-link-btn:focus{background:none;color:var(--cf-primary);box-shadow:none}
.codeform .cf-error-summary{margin:0 0 16px;padding:10px 14px;border:1px solid #dc2626;border-left-width:4px;border-radius:var(--cf-r);background:color-mix(in srgb,#dc2626 7%,var(--cf-bg));color:var(--cf-text);font-size:14px}
.codeform .cf-error-summary:focus{outline:2px solid #b91c1c;outline-offset:2px}
.codeform .cf-error-summary-title{margin:0 0 6px;font-weight:600;color:#b91c1c}
.codeform .cf-error-summary ul{margin:0;padding-left:20px}
.codeform .cf-error-summary a{color:var(--cf-text);text-decoration:underline;text-underline-offset:2px}
.codeform .cf-error-summary a:focus-visible{outline:2px solid var(--cf-primary);outline-offset:2px}
.codeform .cf-upload-status{margin:0 0 10px;font-size:13px;font-weight:500;color:var(--cf-text)}
.codeform .cf-upload-status[hidden]{display:none}

/* Grade de escolhas: cabeçalho e respostas alinhados em linhas delimitadas. */
.codeform .cf-grid{overflow-x:auto;border:1px solid var(--cf-line);border-radius:var(--cf-r);margin:0;padding:0;background:#fff}
.codeform .cf-grid-head,.codeform .cf-grid-row{display:grid;grid-auto-columns:minmax(88px,1fr);grid-auto-flow:column;gap:0;align-items:stretch;min-width:max-content;padding:0}
.codeform .cf-grid-head{font-weight:600;background:color-mix(in srgb,var(--cf-primary) 6%,var(--cf-bg));border-bottom:1px solid var(--cf-line)}
.codeform .cf-grid-head>span,.codeform .cf-grid-row>span:first-child{display:flex;align-items:center;min-height:44px;padding:8px 12px}
.codeform .cf-grid-row{border-bottom:1px solid color-mix(in srgb,var(--cf-text) 10%,transparent)}
.codeform .cf-grid-row:last-child{border-bottom:0}
.codeform .cf-grid-row>span:first-child,.codeform .cf-grid-head>span:first-child{position:sticky;left:0;min-width:140px;background:var(--cf-bg);z-index:1;font-weight:500}
.codeform .cf-grid-head>span:first-child{background:color-mix(in srgb,var(--cf-primary) 6%,var(--cf-bg))}
.codeform .cf-grid-head>span:not(:first-child),.codeform .cf-grid-row>label{border-left:1px solid color-mix(in srgb,var(--cf-text) 10%,transparent)}
.codeform .cf-grid-head>span:not(:first-child){display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;text-align:center}
.codeform .cf-grid-row>label{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px;margin:0;cursor:pointer}
.codeform .cf-grid-row>label:hover{background:color-mix(in srgb,var(--cf-primary) 5%,transparent)}
.codeform .cf-grid-row input{width:17px;height:17px;margin:0;accent-color:var(--cf-primary);cursor:pointer}
.codeform .cf-grid-row input:focus-visible{outline:2px solid var(--cf-primary);outline-offset:3px}

/* Slider: aparência própria, sem a caixa de texto aplicada aos outros inputs. */
.codeform input.cf-input[data-slider]{display:block;width:100%;height:34px;min-height:34px;margin:4px 0;padding:0 2px;border:0;border-radius:0;background:transparent;box-shadow:none;appearance:none;-webkit-appearance:none;cursor:pointer}
.codeform input.cf-input[data-slider]:hover{border:0}
.codeform input.cf-input[data-slider]:focus{border:0;box-shadow:none;outline:0}
.codeform input.cf-input[data-slider]:focus-visible{outline:2px solid var(--cf-primary);outline-offset:3px;border-radius:6px}
.codeform input.cf-input[data-slider]::-webkit-slider-runnable-track{height:6px;border-radius:99px;background:color-mix(in srgb,var(--cf-primary) 24%,var(--cf-text) 10%)}
.codeform input.cf-input[data-slider]::-moz-range-track{height:6px;border-radius:99px;background:color-mix(in srgb,var(--cf-primary) 24%,var(--cf-text) 10%)}
.codeform input.cf-input[data-slider]::-webkit-slider-thumb{width:20px;height:20px;margin-top:-7px;border:3px solid #fff;border-radius:50%;background:var(--cf-primary);box-shadow:0 1px 4px rgba(16,24,40,.28);appearance:none;-webkit-appearance:none}
.codeform input.cf-input[data-slider]::-moz-range-thumb{width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:var(--cf-primary);box-shadow:0 1px 4px rgba(16,24,40,.28)}
