/* Casca comum dos itens do framework (fw_build.py). Os tokens (--line, --card, --brand…) vêm de estilo.css. */
.fw{display:grid;gap:16px;margin:8px 0 24px}
.fw .bloco{border:1px solid var(--line);background:var(--card);border-radius:20px;padding:22px clamp(18px,3vw,26px);min-width:0}
.fw .bloco h2{font-family:Sora,sans-serif;font-size:18px;line-height:1.3;margin:0 0 4px}
.fw .bloco>p{margin:0 0 14px;color:var(--mut);font-size:14px;line-height:1.5}
.fw .campo{display:grid;gap:6px;min-width:0}
.fw .campo label{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim)}
.fw .campo input,.fw .campo select,.fw .campo textarea{background:var(--bg);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:10px 12px;font:16px Manrope,system-ui,sans-serif;width:100%;box-sizing:border-box}
.fw .campo input:focus,.fw .campo select:focus,.fw .campo textarea:focus{outline:none;border-color:var(--brand)}
.fw .campo textarea{min-height:160px;resize:vertical}
.fw .res{margin:14px 0 0;min-height:3.2em}
.fw .res strong{display:block;font-family:Sora,sans-serif;font-weight:600;font-size:clamp(20px,2.6vw,26px);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.fw .res span{display:block;font-size:13px;color:var(--mut);overflow-wrap:anywhere}
.fw .grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}
.fw .aviso{font-size:13px;color:var(--dim);margin:8px 0 0}
