:root{
  --ink:#1c1c1c;
  --ink-soft:#5b5b5b;
  --ink-faint:#9a9a9a;
  --bg:#FAFAF9;
  --card:#FFFFFF;
  --border:#E7E5DF;
  --accent:#2C4A3E;
  --accent-soft:#EDF2EF;
  --success:#2F7D4F;
  --success-bg:#EAF5EE;
  --danger:#B23B3B;
  --danger-bg:#FBEAEA;
  --radius-sm:6px;
  --radius-md:10px;
  --radius-lg:16px;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
.topbar{
  border-bottom:1px solid var(--border);
  background:var(--card);
  padding:18px 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.topbar-brand{display:flex; align-items:center; gap:10px;}
.topbar-mark{
  width:30px; height:30px; border-radius:8px; background:var(--accent);
  color:#fff; display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:12px; letter-spacing:0.02em; flex-shrink:0;
}
.topbar-label{font-size:13px; font-weight:600; color:var(--ink-soft); letter-spacing:0.01em;}
.topbar-action a, .topbar-action button{
  font-size:13px; color:var(--ink-soft); text-decoration:none; background:none; border:none;
  cursor:pointer; font-family:inherit; padding:6px 10px; border-radius:var(--radius-sm);
}
.topbar-action a:hover, .topbar-action button:hover{background:var(--accent-soft); color:var(--accent);}

main{max-width:640px; margin:0 auto; padding:40px 20px 72px;}
main.wide{max-width:760px;}

h1{font-size:25px; font-weight:700; margin:0 0 8px; letter-spacing:-0.01em;}
h2{font-size:17px; font-weight:600; margin:0 0 14px;}
h3{font-size:15px; font-weight:700; margin:0 0 12px;}
p{margin:0 0 14px;}
.muted{color:var(--ink-soft); font-size:14px;}
.faint{color:var(--ink-faint); font-size:12px;}

label.field-label{display:block; font-size:13px; font-weight:600; color:var(--ink-soft); margin-bottom:6px;}
input[type=text], input[type=password], select{
  width:100%; padding:12px 14px; font-size:15px; border:1px solid var(--border);
  border-radius:var(--radius-sm); background:var(--card); color:var(--ink);
  font-family:inherit; margin-bottom:20px; appearance:none;
}
input:focus, select:focus{outline:2px solid var(--accent); outline-offset:1px; border-color:var(--accent);}

button, .btn{font-family:inherit; cursor:pointer;}
.btn-primary{
  display:inline-block; width:100%; padding:14px 18px; background:var(--accent); color:#fff;
  border:none; border-radius:var(--radius-sm); font-size:15px; font-weight:600; text-align:center;
  text-decoration:none;
}
.btn-primary:disabled{background:#D8D8D2; color:#A8A8A0; cursor:not-allowed;}
.btn-secondary{
  display:inline-block; padding:10px 16px; background:var(--card); color:var(--ink);
  border:1px solid var(--border); border-radius:var(--radius-sm); font-size:13px; font-weight:600;
  text-decoration:none;
}
.btn-secondary:hover{border-color:var(--accent); color:var(--accent);}
.btn-ghost{background:none; border:none; color:var(--ink-faint); font-size:11px; padding:6px;}

.progress-track{height:5px; background:#EDEBE3; border-radius:99px; overflow:hidden; margin-bottom:28px;}
.progress-fill{height:100%; background:var(--accent); border-radius:99px; transition:width .25s ease;}

.block-label{font-size:12px; font-weight:700; color:var(--accent); text-transform:uppercase; letter-spacing:0.05em; margin-bottom:8px;}
.block-instruction{font-size:16px; font-weight:600; margin-bottom:20px;}
.option-row{
  display:flex; align-items:center; gap:14px; border:1px solid var(--border);
  background:var(--card); border-radius:var(--radius-md); padding:14px 16px; margin-bottom:10px;
}
.option-row.is-mais{border-color:var(--success); background:var(--success-bg);}
.option-row.is-menos{border-color:var(--danger); background:var(--danger-bg);}
.option-text{flex:1; font-size:14px;}
.option-buttons{display:flex; gap:6px; flex-shrink:0;}
.opt-btn{padding:7px 13px; font-size:12px; font-weight:700; border-radius:var(--radius-sm); background:var(--card);}
.opt-btn.mais{border:1.5px solid var(--success); color:var(--success);}
.opt-btn.mais.active{background:var(--success); color:#fff;}
.opt-btn.menos{border:1.5px solid var(--danger); color:var(--danger);}
.opt-btn.menos.active{background:var(--danger); color:#fff;}

.nav-row{display:flex; justify-content:space-between; align-items:center; margin-top:28px;}

.center-block{max-width:440px; margin:56px auto; text-align:center;}
.check-circle{
  width:56px; height:56px; border-radius:50%; background:var(--success-bg);
  display:flex; align-items:center; justify-content:center; margin:0 auto 20px;
}

.respondent-card{display:flex; align-items:center; gap:14px; margin-bottom:24px;}
.avatar{
  width:46px; height:46px; border-radius:50%; background:var(--accent-soft); color:var(--accent);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:14px; flex-shrink:0;
}

.badge-row{display:flex; gap:8px; flex-wrap:wrap; margin:20px 0;}
.badge{font-size:13px; font-weight:700; padding:6px 14px; border-radius:99px;}

.score-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin:20px 0 4px;}
.score-cell{background:var(--card); border:1px solid var(--border); border-radius:var(--radius-md); padding:14px 8px; text-align:center;}
.score-cell .letter{font-size:12px; font-weight:700; letter-spacing:0.04em; margin-bottom:4px;}
.score-cell .value{font-size:22px; font-weight:700;}

.bar-row{display:flex; align-items:center; gap:10px; margin-bottom:10px;}
.bar-row .bar-label{width:18px; font-size:13px; font-weight:700; flex-shrink:0;}
.bar-track{flex:1; height:18px; background:#EFEEE8; border-radius:99px; overflow:hidden;}
.bar-fill{height:100%; border-radius:99px;}
.bar-row .bar-value{width:28px; font-size:12px; color:var(--ink-soft); text-align:right; flex-shrink:0;}

.profile-card{border:1px solid var(--border); border-radius:var(--radius-lg); padding:20px 22px; margin-bottom:14px; background:var(--card);}
.profile-card .section-label{font-size:12px; font-weight:700; color:var(--ink-soft); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:6px;}
.profile-card ul{margin:0 0 16px; padding-left:18px; font-size:14px;}
.profile-card li{margin-bottom:5px;}
.profile-card .body-text{font-size:14px; margin-bottom:16px;}

.list-item{
  display:flex; align-items:center; justify-content:space-between; text-align:left;
  width:100%; padding:14px 16px; border:1px solid var(--border); border-radius:var(--radius-md);
  background:var(--card); margin-bottom:8px; text-decoration:none; color:inherit;
}
.list-item:hover{border-color:var(--accent);}
.list-item .lname{font-weight:700; font-size:14px; margin:0;}
.list-item .lmeta{font-size:12px; color:var(--ink-soft); margin:2px 0 0;}

.empty-state{text-align:center; padding:64px 0; color:var(--ink-soft);}

.footer-link{text-align:center; margin-top:52px;}

.toolbar{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:8px; flex-wrap:wrap;}

.login-box{max-width:360px; margin:80px auto;}

.alert{padding:12px 14px; border-radius:var(--radius-sm); font-size:13px; margin-bottom:18px;}
.alert-danger{background:var(--danger-bg); color:var(--danger); border:1px solid #EFC9C9;}

@media print{
  .topbar, .no-print{display:none !important;}
  body{background:#fff;}
  main{max-width:100%; padding:0;}
}
