:root{--cfr-primary: #0b5cab;--cfr-primary-dark: #08417a;--cfr-primary-light: #e8f1fb;--cfr-success: #1f9d55;--cfr-warning: #d98a00;--cfr-danger: #d0424b;--cfr-muted: #5b6b7b;--cfr-line: #dbe3ec;--cfr-bg: #f4f7fb;--cfr-surface: #ffffff}.cfr-report{max-width:940px;margin:0 auto;background:var(--cfr-surface);padding-bottom:20px;border-radius:12px}.cfr-id-card{display:grid;grid-template-columns:1.4fr 1fr;gap:20px;align-items:center;padding:20px;border-bottom:1px solid var(--cfr-line)}@media (max-width: 760px){.cfr-id-card{grid-template-columns:1fr}}.cfr-id-card h1{font-size:24px;margin:0 0 2px;color:#1e3a5f;font-weight:800}.cfr-id-card .cfr-sub{color:var(--cfr-muted);font-size:14px;margin:0}.cfr-id-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:13.5px}.cfr-id-meta div{color:var(--cfr-muted)}.cfr-id-meta b{color:#1e3a5f;font-weight:700}.cfr-exam-badge{justify-self:end;text-align:right;background:var(--cfr-primary-light);border-radius:12px;padding:14px 18px;border:1px solid #cadff5}@media (max-width: 760px){.cfr-exam-badge{justify-self:start;text-align:left}}.cfr-exam-badge-title{font-weight:800;color:#1e3a5f;font-size:14px}.cfr-exam-badge-sub{color:var(--cfr-muted);font-size:12px}.cfr-overall-banner{display:grid;grid-template-columns:340px 1fr;gap:0;overflow:hidden;border-radius:12px;border:1px solid var(--cfr-line);box-shadow:0 6px 24px #0b3c6e14;margin:20px}@media (max-width: 820px){.cfr-overall-banner{grid-template-columns:1fr}}.cfr-overall-score{padding:26px 28px;color:#fff;background:linear-gradient(135deg,var(--cfr-primary),#08417a);display:flex;flex-direction:column;justify-content:center}.cfr-overall-score .cfr-cap{opacity:.85;color:#fff;font-size:13px;text-transform:uppercase;letter-spacing:.05em;font-weight:800;margin-bottom:8px}.cfr-overall-score .cfr-big{font-size:60px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}.cfr-overall-score .cfr-big small{font-size:20px;font-weight:700;opacity:.8}.cfr-overall-score .cfr-grade{font-size:18px;font-weight:800;margin-top:6px}.cfr-overall-score .cfr-outcome{margin-top:14px;align-self:flex-start;background:rgba(255,255,255,.22);padding:7px 14px;border-radius:999px;font-weight:800;font-size:14px;display:inline-flex;align-items:center;gap:7px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.cfr-overall-right{padding:24px 28px;background:var(--cfr-surface);display:flex;flex-direction:column;justify-content:center}.cfr-overall-right .cfr-cap{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--cfr-muted);font-weight:800;margin-bottom:25px}.cfr-ladder{display:flex;gap:6px}.cfr-ladder .cfr-rung{flex:1;text-align:center;padding:12px 6px 10px;border-radius:10px;background:#eef2f7;color:var(--cfr-muted);position:relative;border:2px solid transparent;font-weight:600}.cfr-ladder .cfr-rung .cfr-lv{font-weight:800;font-size:16px}.cfr-ladder .cfr-rung .cfr-cap{font-size:10.5px;letter-spacing:.04em}.cfr-ladder .cfr-rung.cfr-target{outline:2px dashed #b9c6d6;outline-offset:2px}.cfr-ladder .cfr-rung.cfr-here{background:var(--cfr-primary);color:#fff;border-color:#08417a;box-shadow:0 6px 16px #0b5cab66}.cfr-ladder .cfr-rung.cfr-here .cfr-cap{color:#fff}.cfr-ladder .cfr-rung.cfr-here .cfr-marker{position:absolute;top:-22px;left:50%;transform:translate(-50%);font-size:11px;font-weight:800;color:var(--cfr-primary);white-space:nowrap}.cfr-ladder-legend{display:flex;gap:16px;margin-top:10px;font-size:12px;color:var(--cfr-muted)}.cfr-ladder-legend strong{color:#1e3a5f}.cfr-scale-info{font-size:12.5px;color:#9ca3af;margin-top:12px}.cfr-section-h{font-size:19px;font-weight:800;color:#1e3a5f;margin:26px 20px 14px;break-after:avoid;page-break-after:avoid}.cfr-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 20px 18px;break-inside:avoid;page-break-inside:avoid}@media (max-width: 820px){.cfr-profile-grid{grid-template-columns:1fr}}.cfr-radar-wrap{display:grid;place-items:center;padding:6px;background:var(--cfr-surface);border:1px solid var(--cfr-line);border-radius:12px;break-inside:avoid;page-break-inside:avoid}.cfr-radar-wrap svg{width:100%;max-width:320px;height:auto;overflow:visible}.cfr-radar-wrap .cfr-grid{fill:none;stroke:#e3e9f0;stroke-width:1}.cfr-radar-wrap .cfr-axis{stroke:#e3e9f0;stroke-width:1}.cfr-radar-wrap .cfr-poly{fill:#0b5cab24;stroke:var(--cfr-primary);stroke-width:2;stroke-linejoin:round}.cfr-radar-wrap .cfr-dot{fill:var(--cfr-primary)}.cfr-radar-wrap text{font-size:11px;fill:#1e3a5f;font-weight:700}.cfr-radar-note{font-size:12px;color:#9ca3af;text-align:center;margin-top:6px}.cfr-cap-list{display:grid;gap:16px;background:var(--cfr-surface);border:1px solid var(--cfr-line);border-radius:12px;padding:16px;break-inside:avoid;page-break-inside:avoid}.cfr-cap-item{border:1px solid var(--cfr-line);border-radius:12px;padding:14px 16px;background:var(--cfr-surface)}.cfr-cap-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.cfr-cap-label{font-weight:700;font-size:14px;color:#1e3a5f}.cfr-cap-meter-row{display:flex;align-items:center;gap:10px}.cfr-meter{flex:1;height:10px;border-radius:999px;background:#eef1f5;overflow:hidden}.cfr-meter>span{display:block;height:100%;border-radius:999px;width:0;background:linear-gradient(90deg,var(--cfr-primary),var(--cfr-success))}.cfr-cap-pct{min-width:44px;text-align:right;font-weight:800;font-size:13px;color:var(--cfr-muted);font-variant-numeric:tabular-nums}.cfr-status-chip{display:inline-flex;align-items:center;gap:6px;border-radius:8px;padding:4px 10px;font-size:12px;font-weight:800;white-space:nowrap}.cfr-status-chip svg{width:16px;height:16px}.cfr-status-chip.cfr-st-above,.cfr-status-chip.cfr-st-strong{background:#dcfce7;color:#166534}.cfr-status-chip.cfr-st-on{background:#fef3c7;color:#b45309}.cfr-status-chip.cfr-st-dev{background:#fed7aa;color:#92400e}.cfr-status-chip.cfr-st-below{background:#fee2e2;color:#991b1b}.cfr-teacher-note{border:1px solid #cadff5;background:var(--cfr-primary-light);border-left:4px solid var(--cfr-primary);border-radius:12px;padding:16px 18px;margin:0 20px 18px;page-break-inside:avoid;break-inside:avoid}.cfr-teacher-note h3{margin:0 0 6px;font-size:15px;color:#0b5cab;font-weight:800}.cfr-teacher-note p{margin:0;color:#244;line-height:1.5}.cfr-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 20px 18px;page-break-inside:avoid;break-inside:avoid}@media (max-width: 760px){.cfr-two-col{grid-template-columns:1fr}}.cfr-panel{border:1px solid var(--cfr-line);border-radius:12px;background:var(--cfr-surface);box-shadow:0 1px 3px #0000000d;page-break-inside:avoid;break-inside:avoid}.cfr-panel-head{padding:16px 20px 0}.cfr-panel-body{padding:16px 20px}.cfr-panel h3{font-size:16px;margin:0 0 12px;color:#1e3a5f;font-weight:800}.cfr-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.cfr-list li{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:#1e3a5f}.cfr-list li svg{width:18px;height:18px;flex:none;margin-top:1px}.cfr-list.cfr-good li svg{color:var(--cfr-success)}.cfr-list.cfr-work li svg{color:var(--cfr-warning)}.cfr-cando{display:grid;gap:10px;margin:0 20px 18px;page-break-inside:avoid;break-inside:avoid}.cfr-cando-item{display:grid;grid-template-columns:26px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--cfr-line);border-radius:10px;font-size:13.5px;background:var(--cfr-surface)}.cfr-cando-item .cfr-tick{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;flex:none}.cfr-cando-item .cfr-tick svg{width:15px;height:15px;color:#fff}.cfr-cando-item.cfr-achieved .cfr-tick{background:var(--cfr-success)}.cfr-cando-item.cfr-developing .cfr-tick{background:var(--cfr-warning)}.cfr-cando-item.cfr-notyet .cfr-tick{background:#9aa7b4}.cfr-cando-item .cfr-state{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.cfr-cando-item.cfr-achieved .cfr-state{color:var(--cfr-success)}.cfr-cando-item.cfr-developing .cfr-state{color:var(--cfr-warning)}.cfr-cando-item.cfr-notyet .cfr-state{color:#9aa7b4}.cfr-recos{display:grid;gap:12px;counter-reset:cfr-reco;margin:0 20px 20px;page-break-inside:avoid;break-inside:avoid}.cfr-reco{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;font-size:14px;color:#1e3a5f;padding:12px;background:var(--cfr-surface);border:1px solid var(--cfr-line);border-radius:10px}.cfr-reco .cfr-num{counter-increment:cfr-reco;width:28px;height:28px;border-radius:8px;background:var(--cfr-primary);color:#fff;font-weight:800;display:grid;place-items:center;flex:none;font-size:14px}.cfr-reco .cfr-num:before{content:counter(cfr-reco)}@media print{.cfr-report{box-shadow:none}.cfr-overall-banner{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cfr-panel,.cfr-cap-item,.cfr-teacher-note{box-shadow:none;break-inside:avoid}}.skill-cap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}@media (max-width: 760px){.skill-cap-grid{grid-template-columns:1fr}}.skill-cap{border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-surface);box-shadow:var(--shadow);overflow:hidden;position:relative}.skill-cap:before{content:"";position:absolute;inset:0 auto 0 0;width:6px;background:var(--seg, var(--c-primary))}.skill-cap .sc-head{display:flex;align-items:center;gap:12px;padding:16px 18px 8px}.skill-cap .sc-icon{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--seg) 12%,#fff);color:var(--seg)}.skill-cap .sc-icon svg{width:22px;height:22px}.skill-cap .sc-title{font-size:16px;font-weight:800;margin:0}.skill-cap .sc-scale{margin-left:auto;text-align:right}.skill-cap .sc-scale .n{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.skill-cap .sc-scale .u{font-size:11px;color:var(--c-muted)}.skill-cap .sc-body{padding:6px 18px 18px}.skill-cap .sc-row{display:flex;align-items:center;gap:10px;margin:8px 0 12px}.skill-cap .sc-comment{font-size:13px;color:var(--c-muted);margin:0 0 12px}.subskills{display:grid;gap:9px}.subskill{display:grid;grid-template-columns:120px 1fr 38px;align-items:center;gap:10px;font-size:12.5px}.subskill .lbl{color:var(--c-ink)}.subskill .pct{text-align:right;font-weight:700;color:var(--c-muted);font-variant-numeric:tabular-nums}.progress-chart svg{width:100%;height:auto}
