/* QualGod CMMI Assessment - front-end */
#qg-cmmi-app{--qg-primary:#1f3864;--qg-accent:#2e7d32;--qg-bg:#f6f8fb;--qg-line:#e2e8f0;--qg-text:#1f2937;
  max-width:840px;margin:0 auto;color:var(--qg-text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;line-height:1.5;}
#qg-cmmi-app *{box-sizing:border-box;}
#qg-cmmi-app .qg-loading{padding:40px;text-align:center;color:#64748b;}
.qg-card{background:#fff;border:1px solid var(--qg-line);border-radius:14px;padding:28px;
  box-shadow:0 2px 14px rgba(31,56,100,.06);}
.qg-h{font-size:1.5rem;font-weight:700;color:var(--qg-primary);margin:0 0 6px;}
.qg-sub{color:#64748b;margin:0 0 22px;font-size:.95rem;}
.qg-disc{font-size:.78rem;color:#94a3b8;margin-top:18px;}

/* chooser */
.qg-choices{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:640px){.qg-choices{grid-template-columns:1fr 1fr 1fr;}}
.qg-choice{border:2px solid var(--qg-line);border-radius:12px;padding:20px;cursor:pointer;
  transition:.15s;text-align:center;background:#fff;}
.qg-choice:hover{border-color:var(--qg-primary);transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(31,56,100,.1);}
.qg-choice h3{margin:0 0 6px;color:var(--qg-primary);font-size:1.1rem;}
.qg-choice p{margin:0;font-size:.85rem;color:#64748b;}
.qg-choice .qg-count{display:inline-block;margin-top:10px;font-size:.78rem;font-weight:600;
  color:var(--qg-accent);background:#eaf7ea;border-radius:20px;padding:3px 10px;}

/* form */
.qg-field{margin-bottom:16px;}
.qg-field label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem;}
.qg-field input{width:100%;padding:11px 13px;border:1px solid var(--qg-line);border-radius:9px;font-size:1rem;}
.qg-field input:focus{outline:none;border-color:var(--qg-primary);box-shadow:0 0 0 3px rgba(31,56,100,.12);}
.qg-err{color:#c0392b;font-size:.85rem;margin-top:10px;min-height:1em;}

/* progress */
.qg-prog-wrap{position:sticky;top:0;background:var(--qg-bg);padding:14px 0;z-index:5;margin-bottom:10px;}
.qg-prog-meta{display:flex;justify-content:space-between;font-size:.82rem;color:#64748b;margin-bottom:6px;}
.qg-prog{height:8px;background:var(--qg-line);border-radius:6px;overflow:hidden;}
.qg-prog-bar{height:100%;width:0;background:var(--qg-accent);transition:width .25s;}

/* question */
.qg-pa-head{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--qg-primary);margin:0 0 4px;}
.qg-q{font-size:1.12rem;font-weight:600;margin:0 0 18px;}
.qg-opts{display:grid;gap:10px;}
.qg-opt{display:flex;align-items:flex-start;gap:12px;border:1.5px solid var(--qg-line);border-radius:10px;
  padding:14px 16px;cursor:pointer;transition:.12s;}
.qg-opt:hover{border-color:var(--qg-primary);background:#f8fafc;}
.qg-opt.sel{border-color:var(--qg-primary);background:#eef2f9;}
.qg-opt input{margin-top:3px;}
.qg-opt .ol{font-weight:600;}
.qg-opt .od{display:block;font-size:.82rem;color:#64748b;font-weight:400;}

/* nav */
.qg-nav{display:flex;justify-content:space-between;gap:12px;margin-top:24px;}
.qg-btn{appearance:none;border:none;border-radius:10px;padding:12px 26px;font-size:1rem;font-weight:600;
  cursor:pointer;transition:.15s;}
.qg-btn-primary{background:var(--qg-primary);color:#fff;}
.qg-btn-primary:hover{background:#16294a;}
.qg-btn-primary:disabled{background:#9fb0cc;cursor:not-allowed;}
.qg-btn-ghost{background:#eef2f7;color:var(--qg-primary);}
.qg-btn-ghost:hover{background:#e2e8f2;}

/* result */
.qg-result{text-align:center;}
.qg-score-ring{--p:0;width:180px;height:180px;border-radius:50%;margin:8px auto 18px;
  background:conic-gradient(var(--qg-accent) calc(var(--p)*1%),#e9eef5 0);
  display:flex;align-items:center;justify-content:center;}
.qg-score-ring .inner{width:140px;height:140px;background:#fff;border-radius:50%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;}
.qg-score-ring .pct{font-size:2.5rem;font-weight:800;color:var(--qg-primary);line-height:1;}
.qg-score-ring .lbl{font-size:.72rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-top:4px;}
.qg-band{font-size:1.05rem;font-weight:600;color:var(--qg-primary);margin:0 0 6px;}
.qg-cta{display:inline-block;margin-top:20px;background:var(--qg-accent);color:#fff;text-decoration:none;
  padding:14px 30px;border-radius:10px;font-weight:700;}
.qg-cta:hover{background:#1f6e22;}
.qg-result .note{color:#64748b;font-size:.9rem;margin-top:18px;}
