/* PiCiviQ — quiz / mock test performance report (Quiz page + My tests). */
.quiz-card{background:var(--surface);border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow-lg);padding:30px 28px}
.q-cat-chip{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--purple);background:color-mix(in srgb,var(--purple) 12%,transparent);border-radius:999px;padding:4px 11px}

.quiz-res{text-align:center}
.ringbig{position:relative;width:170px;height:170px;margin:6px auto 10px}
.ring-mid{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.quiz-res .rc{font-size:40px;font-weight:800;line-height:1}
.quiz-res .rl{font-size:13px;color:var(--muted);font-weight:600;margin-top:4px}
.quiz-res h2{font-size:23px;font-weight:800;margin-top:10px;letter-spacing:-.01em}
.quiz-res h2:focus{outline:none}
.quiz-res>p{color:var(--muted);font-size:15px;margin-top:8px}
.quiz-res .ra{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:26px}
.ring-arc{animation:ring-in 1.1s cubic-bezier(.2,.7,.2,1) both}
@keyframes ring-in{from{stroke-dashoffset:402}}

/* stat tiles */
.rep-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px;text-align:left}
.rs{background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:2px;min-width:0}
.rs-l{font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rs-v{font-size:28px;font-weight:800;letter-spacing:-.02em;line-height:1.2;font-variant-numeric:tabular-nums}
.rs-v small{font-size:15px;color:var(--muted);font-weight:700}
.rs-s{font-size:12.5px;color:var(--muted);font-weight:600}
.rs.score{background:var(--grad-soft);border-color:color-mix(in srgb,var(--purple) 25%,var(--border))}
.rep-time{margin-top:12px}
.rep-time .rep-stats{margin-top:0}

/* time per question */
.rep-chart{margin-top:12px;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:16px 18px 12px}
.rc-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.rc-head h3{font-size:14px;font-weight:800}
.rc-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:11.5px;font-weight:600;color:var(--muted)}
.rc-legend span{display:inline-flex;align-items:center;gap:5px}
.rc-legend span::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--c)}
.rc-legend .ok{--c:var(--good)}.rc-legend .no{--c:var(--trap)}.rc-legend .skip{--c:var(--border-strong)}
.rc-legend .avg::before{height:0;border-top:2px dashed var(--purple);border-radius:0;background:none}
.rc-plot{position:relative;height:170px;margin-top:14px;padding-bottom:20px}
.rc-bars{list-style:none;margin:0;padding:0;display:flex;align-items:flex-end;gap:6px;height:100%}
.tb{flex:1;min-width:0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.tb i{display:block;width:100%;max-width:34px;height:var(--h);border-radius:6px 6px 3px 3px;background:var(--c);transform-origin:bottom;animation:tb-grow .8s cubic-bezier(.2,.7,.2,1) both}
.tb.ok{--c:var(--good)}.tb.no{--c:var(--trap)}.tb.skip{--c:var(--border-strong)}
.tb-v{font-size:10.5px;font-weight:700;color:var(--muted);margin-bottom:3px;font-variant-numeric:tabular-nums}
.tb-q{position:absolute;bottom:-19px;font-size:10.5px;font-weight:700;color:var(--muted)}
.rc-plot.dense .tb-v{display:none}
.rc-plot.dense .rc-bars{gap:2px}
.rc-avg{position:absolute;left:0;right:0;bottom:calc(20px + (100% - 20px) * var(--a) / 100);border-top:2px dashed color-mix(in srgb,var(--purple) 70%,transparent);z-index:1;pointer-events:none}
.rc-avg b{position:absolute;right:0;top:-20px;font-size:10.5px;font-weight:800;color:var(--purple);background:var(--surface-2);padding:0 4px;border-radius:4px}
@keyframes tb-grow{from{transform:scaleY(0)}}

/* fastest / slowest */
.rep-x{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:left}
.rep-x li{background:var(--surface-2);border:1px solid var(--border);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;min-width:0}
.x-l{font-size:12px;font-weight:700;color:var(--muted)}
.x-v{font-size:18px;font-weight:800}
.x-t{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* guest: time metrics locked */
.rep-lock{position:relative;margin-top:12px;border-radius:18px;overflow:hidden}
.rl-blur{filter:blur(7px) saturate(.8);opacity:.75;pointer-events:none;user-select:none}
.rl-cta{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:20px;text-align:center;background:color-mix(in srgb,var(--surface) 55%,transparent)}
.rl-ic{width:48px;height:48px;border-radius:14px;background:var(--grad);color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -10px rgba(108,65,246,.8)}
.rl-ic svg{width:22px;height:22px}
.rl-cta h3{font-size:18px;font-weight:800;margin-top:6px}
.rl-cta p{font-size:13.5px;color:var(--muted);max-width:420px;line-height:1.5;margin:0}
.rl-btns{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:8px}

.res-review{text-align:left;margin-top:26px;border-top:1px solid var(--border);padding-top:20px}
.res-review h3{font-size:14px;font-weight:800;margin-bottom:10px}
.res-review ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.rep-tip{text-align:left;margin-top:22px;background:var(--grad-soft);border:1px solid color-mix(in srgb,var(--purple) 20%,var(--border));border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.55}
.rep-tip b{display:block;font-size:13px;color:var(--purple);margin-bottom:3px}
.rep-note{text-align:center;color:var(--muted);font-size:13px;margin-top:14px}

/* answer review (mock tests, My tests) */
.ans-rev{text-align:left;margin-top:26px;border-top:1px solid var(--border);padding-top:20px}
.ans-rev h3{font-size:15px;font-weight:800;margin-bottom:12px}
.rv-q{border:1px solid var(--border);border-radius:14px;background:var(--surface);margin-top:8px;overflow:hidden}
.rv-q summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none}
.rv-q summary::-webkit-details-marker{display:none}
.rv-q summary:hover{background:var(--surface-2)}
.rv-n{font-size:12px;font-weight:800;color:var(--muted);width:30px;flex:none}
.rv-s{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:800;color:#fff;flex:none;background:var(--border-strong)}
.rv-q.ok .rv-s{background:var(--good-solid)}.rv-q.no .rv-s{background:var(--trap)}
.rv-t{flex:1;min-width:0;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rv-ms{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}
.rv-body{padding:4px 16px 16px;border-top:1px solid var(--border)}
.rv-qq{font-weight:700;font-size:15px;line-height:1.45;margin:12px 0 10px}
.rv-opts{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.rv-opts li{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-radius:11px;background:var(--surface-2);font-size:14px}
.rv-opts li.right{background:var(--good-bg)}
.rv-opts li.wrong{background:var(--trap-bg)}
.rv-k{width:24px;height:24px;border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:800;background:var(--surface);border:1px solid var(--border-strong);flex:none}
.rv-opts li.right .rv-k{background:var(--good-solid);border-color:var(--good-solid);color:#fff}
.rv-opts li.wrong .rv-k{background:var(--trap);border-color:var(--trap);color:#fff}
.rv-o{min-width:0}
.rv-o em{font-style:normal;font-size:11px;font-weight:700;background:var(--surface);border-radius:999px;padding:1px 8px;margin-left:8px;color:var(--muted)}
.rv-note{display:block;font-size:13px;color:var(--muted);margin-top:4px;line-height:1.5}
.rv-ex{font-size:13.5px;color:var(--muted);margin-top:10px}
.rv-link{display:inline-block;margin-top:10px;font-size:13.5px;font-weight:700;color:var(--indigo)}

@media (max-width:560px){
  .quiz-card{padding:22px 18px}
  .rs{padding:14px}
  .rs-v{font-size:23px}
  .rep-x{grid-template-columns:1fr}
  .rc-plot{height:150px}
  .rc-bars{gap:3px}
  .tb-v{font-size:9.5px}
  .rl-cta{padding:14px;gap:4px}
  .rl-cta p{font-size:12.5px}
}
