:root {
    --cor-primaria: #0f4c81;
    --cor-secundaria: #1d6fa5;
    --cor-clara: #eef6fb;
}

* { box-sizing: border-box; }
body { margin:0; font-family: Arial, Helvetica, sans-serif; background: linear-gradient(135deg, #f4f7fb 0%, #eef4f8 100%); color:#1f2937; }
.container { max-width: 1180px; margin: 30px auto; background: white; border-radius: 22px; padding: 32px; box-shadow: 0 18px 45px rgba(0,0,0,0.10); border: 1px solid #e5e7eb; }
.hero { background: linear-gradient(135deg, #0B1220 0%, #1d6fa5 100%); color: white; border-radius: 20px; padding: 24px; margin-bottom: 26px; }
.hero-top { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.brand { display:flex; align-items:center; gap:16px; }
.logo-box { width:84px; height:54px; border-radius:0; background: transparent; display:flex; align-items:center; justify-content:flex-start; overflow:visible; font-size:24px; font-weight:bold; border:none; box-shadow:none; }
.logo-box img { width:100%; height:100%; object-fit:contain; background: transparent; padding:0; border:none; box-shadow:none; }
.brand h1 { margin:0; font-size:30px; }
.brand p { margin:4px 0 0 0; color: rgba(255,255,255,0.88); }
.badge { padding:10px 14px; border-radius:999px; background: rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.22); font-size:14px; font-weight:bold; }
.edit-company-name { margin-top:10px; color: rgba(255,255,255,0.95); cursor:pointer; display:inline-block; }
.campo { margin-bottom:16px; }
label { display:block; font-weight:bold; margin-bottom:6px; }
input[type='text'], input[type='email'], input[type='month'], input[type='password'], select { width:100%; padding:12px; border:1px solid #d1d5db; border-radius:12px; font-size:15px; transition:0.2s ease; background:white; }
input:focus, select:focus { outline:none; border-color:#1d6fa5; box-shadow: 0 0 0 4px rgba(29,111,165,0.12); }
.grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:16px; }
.grid-login { display:grid; grid-template-columns: 1.05fr 0.95fr; gap:24px; align-items:stretch; }
.field-wide { grid-column: 1 / -1; }
.btn { display:inline-block; padding:12px 20px; background:#0f4c81; color:white; text-decoration:none; border:none; border-radius:12px; cursor:pointer; font-size:15px; font-weight:bold; transition:0.2s ease; margin-right:8px; margin-top:6px; }
.btn:hover { transform: translateY(-1px); background:#1d6fa5; }
.btn-block { width:100%; margin-right:0; text-align:center; }
.btn-sec { background:#6b7280; }
.btn-sec:hover { background:#4b5563; }
.btn-print { background:#0b8f57; }
.btn-print:hover { background:#087046; }
.btn-danger { background:#b91c1c; }
.btn-danger:hover { background:#991b1b; }
.btn-copy { background:#7c3aed; }
.btn-copy:hover { background:#6d28d9; }
.alert { padding:12px 14px; border-radius:12px; margin-bottom:18px; background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
.success { padding:12px 14px; border-radius:12px; margin-bottom:18px; background:#dcfce7; color:#166534; border:1px solid #bbf7d0; }
.card { border:1px solid #e5e7eb; border-radius:16px; padding:18px; margin-bottom:18px; background:#fafafa; }
.card-highlight { background:#eef6fb; border:1px solid #d5e9f5; }
.login-side { background:linear-gradient(135deg, #0f4c81 0%, #1d6fa5 100%); color:white; }
.opcao { padding:12px; background:white; border-radius:12px; border:1px solid #e5e7eb; margin-bottom:10px; }
.linha-radio { display:flex; align-items:center; gap:18px; margin-top:10px; flex-wrap:wrap; }
.linha-radio label { display:inline-flex; align-items:center; gap:6px; font-weight:normal; margin-bottom:0; }
.resultado-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:14px; margin:20px 0; }
.score-box { padding:18px; border-radius:16px; background:#eef6fb; text-align:center; border:1px solid #d7e8f2; }
.score-box h3 { margin-bottom:8px; color:#0f4c81; font-size:20px; }
.score-box p { margin:0; font-size:28px; font-weight:bold; }
.bar-wrap { margin-top:10px; }
.bar-label { display:flex; justify-content:space-between; font-weight:bold; margin-bottom:6px; gap:12px; }
.bar-bg { width:100%; height:14px; border-radius:999px; background:#e5e7eb; overflow:hidden; }
.bar-fill { height:14px; border-radius:999px; background: linear-gradient(90deg, #0f4c81 0%, #1d6fa5 100%); }
.copy-box { width:100%; padding:12px; border:1px solid #cbd5e1; border-radius:12px; background:#fff; font-size:14px; }
.muted { color:#6b7280; font-size:14px; }
.toolbar { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:16px; }
.historico-top-row { display:flex; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.historico-top-row .search-input { margin:0; }
.menu-toggle-btn { width:46px; height:46px; padding:0; display:inline-flex; align-items:center; justify-content:center; font-size:22px; margin:0; }
.menu-actions-panel { display:none; margin-bottom:16px; }
.menu-actions-panel.open { display:block; }
.menu-actions-panel .toolbar { margin-bottom:0; }
.search-input { flex:1; min-width:280px; }
.table-wrap { overflow-x:auto; border:1px solid #e5e7eb; border-radius:16px; background:#fff; }
.cad-table { min-width:1350px; table-layout:fixed; width:100%; border-collapse:collapse; }
.cad-table th, .cad-table td { padding:12px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:top; white-space: normal; overflow-wrap:anywhere; word-break:break-word; }
.cad-table th { background:#f8fafc; }
.col-resize { resize:horizontal; overflow:auto; min-width:80px; max-width:420px; }
.actions form { display:inline; }
.icon-btn { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border:none; border-radius:10px; cursor:pointer; color:white !important; text-decoration:none; margin-right:6px; font-size:18px; line-height:1; }
.icon-eye { background:#f3f4f6; color:#4b5563 !important; border:1px solid #d1d5db; }
.icon-eye:hover { background:#e5e7eb; color:#111827 !important; }
.icon-trash { background:#f3f4f6; color:#6b7280 !important; border:1px solid #d1d5db; }
.icon-trash:hover { background:#fee2e2; color:#991b1b !important; border-color:#fecaca; }
.icon-edit { background:#f3f4f6; color:#6b7280 !important; border:1px solid #d1d5db; }
.icon-edit:hover { background:#fff7ed; color:#9a3412 !important; border-color:#fdba74; }
.tooltip-wrap { position:relative; display:inline-block; }
.tooltip-text { visibility:hidden; opacity:0; transition:0.15s ease; position:absolute; bottom:110%; left:50%; transform:translateX(-50%); background:#111827; color:#fff; font-size:12px; padding:6px 8px; border-radius:8px; white-space:nowrap; z-index:10; }
.tooltip-wrap:hover .tooltip-text { visibility:visible; opacity:1; }
.modal-bg { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:999; align-items:center; justify-content:center; padding:20px; }
.modal-card { background:#fff; width:100%; max-width:420px; border-radius:16px; padding:22px; box-shadow:0 20px 50px rgba(0,0,0,0.2); }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; margin-top:18px; }
.small-btn { margin-top:0; }
.col-config-panel { display:none; position:fixed; top:0; right:0; width:360px; max-width:100%; height:100vh; background:#fff; z-index:1100; box-shadow:-10px 0 30px rgba(0,0,0,0.18); padding:22px; overflow-y:auto; }
.col-config-panel.open { display:block; }
.col-config-backdrop { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.3); z-index:1090; }
.col-config-backdrop.open { display:block; }
.col-config-item { display:flex; align-items:center; justify-content:space-between; gap:8px; border:1px solid #e5e7eb; border-radius:12px; padding:10px 12px; margin-bottom:10px; background:#fafafa; }
.col-config-controls { display:flex; gap:6px; }
.mini-btn { padding:6px 10px; border:none; border-radius:8px; cursor:pointer; background:#e5e7eb; font-weight:bold; }
.mini-btn:hover { background:#d1d5db; }
.user-table-wrap { width:100%; overflow-x:auto; border:1px solid #e5e7eb; border-radius:16px; background:#fff; }
.user-table { width:100%; min-width:760px; border-collapse:collapse; table-layout:fixed; }
.user-table th, .user-table td { padding:14px 16px; border-bottom:1px solid #e5e7eb; text-align:left; vertical-align:middle; white-space:normal; word-break:break-word; overflow-wrap:anywhere; }
.user-table th { background:#f8fafc; }
.user-actions-col { width:180px; }
.user-actions-cell { white-space:nowrap; text-align:center; }
@media print { body { background:white; } .container { box-shadow:none; border:none; margin:0; max-width:100%; } .btn, .no-print, .actions { display:none !important; } .hero { -webkit-print-color-adjust:exact; print-color-adjust:exact; } }
@media (max-width:768px) { .grid, .grid-login, .resultado-grid { grid-template-columns:1fr; } .hero-top { flex-direction:column; align-items:flex-start; } }
/* Compatibilidade e legibilidade dos formulários públicos e administrativos. */
input[type='tel'], input[type='date'], input[type='number'] { width:100%; padding:12px; border:1px solid #d1d5db; border-radius:12px; font:inherit; background:white; }
fieldset { min-width:0; }
legend, .field-label { font-weight:bold; }
legend { padding:0 8px; font-size:18px; color:#0f4c81; }
[hidden] { display:none !important; }
button:disabled { opacity:.65; cursor:wait; transform:none; }
input[type='radio'], input[type='checkbox'] { width:20px; height:20px; flex-shrink:0; accent-color:#0f4c81; }
a:focus-visible, button:focus-visible, input[type='radio']:focus-visible { outline:3px solid #7c3aed; outline-offset:3px; }
.public-container { max-width:880px; }
.public-container h2 { font-size:26px; line-height:1.25; }
.public-container p { line-height:1.6; }
.steps { display:flex; gap:12px; flex-wrap:wrap; margin:8px 0 24px; font-size:14px; }
.steps span, .steps strong { border-radius:8px; padding:8px 12px; background:#f1f5f9; }
.steps strong { background:#e0edf7; color:#0f4c81; }
.public-footer { border-top:1px solid #e5e7eb; margin-top:28px; padding-top:18px; font-size:13px; line-height:1.6; color:#64748b; }
.question-progress { border:1px solid #cbd5e1; border-radius:12px; padding:16px; margin-bottom:24px; background:#f8fafc; }
.question-progress label { font-size:16px; }
.question-progress progress { display:block; width:100%; height:12px; margin:10px 0; accent-color:#0f4c81; }
.question-group { margin-top:22px; border-left:4px solid #cbd5e1; }
.question-group.is-complete { border-left-color:#14804a; }
.question-group.is-complete legend { color:#126a40; }
.question-option p { margin:0 0 8px; }
.answer-choice { display:inline-flex; padding:10px 12px; border:1px solid #cbd5e1; border-radius:8px; min-height:46px; cursor:pointer; background:#fff; }
.answer-choice:has(input:checked) { background:#e0edf7; border-color:#0f4c81; }
.answer-choice span { font-size:14px; }
.form-actions { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.group-status { margin:10px 0 0; }
@media (max-width:768px) {
  .container { width:auto; margin:12px; padding:18px; border-radius:14px; }
  .hero { padding:18px; border-radius:12px; }
  .brand { gap:10px; max-width:100%; }
  .brand h1 { font-size:23px; overflow-wrap:anywhere; }
  .brand p { font-size:14px; }
  .badge { white-space:normal; overflow-wrap:anywhere; }
  .public-container h2 { font-size:23px; }
  .public-container .card { padding:14px; }
  .public-container .grid { gap:4px; }
  input[type='text'], input[type='email'], input[type='month'], input[type='password'], input[type='tel'], select { font-size:16px; }
  .linha-radio { gap:10px; }
  .answer-choice { flex:1; justify-content:center; padding:10px 6px; }
  .form-actions .btn { width:100%; margin-right:0; text-align:center; }
  .search-input { min-width:0; width:100%; }
  .steps { gap:5px; font-size:12px; }
  .steps span, .steps strong { padding:8px; }
}
