/* Base provided by global.css */
h1{margin-bottom:6px}
.subtitle{color:var(--muted);font-size:.95rem;margin-bottom:32px}
.progress-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:32px}
.progress-card h2{font-size:1rem;font-weight:700;margin-bottom:18px}
.cefr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.cefr-level{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:16px;text-align:center;transition:all .2s}
.cefr-level.unlocked{border-color:var(--green);background:rgba(63,185,80,.06);cursor:pointer}
.cefr-level.unlocked:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(63,185,80,.15)}
.cefr-level.current{border-color:var(--accent);background:rgba(124,58,237,.08)}
.cefr-badge{font-size:2rem;margin-bottom:6px}
.cefr-label{font-size:.85rem;font-weight:700}
.cefr-name{font-size:.72rem;color:var(--muted);margin-top:2px}
.cefr-bar{height:4px;background:var(--bg);border-radius:2px;margin-top:10px;overflow:hidden}
.cefr-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--cyan));border-radius:2px;transition:width .6s}
.cefr-pct{font-size:.7rem;color:var(--muted);margin-top:4px}
.verify-box{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:24px;margin-bottom:32px}
.verify-box h2{font-size:1rem;font-weight:700;margin-bottom:14px}
.form-input{flex:1;background:var(--sur2);border:1px solid var(--brd-solid);border-radius:8px;padding:10px 14px;color:var(--txt);font-size:.9rem;outline:none}
.form-input:focus{border-color:var(--pri)}
.verify-result{margin-top:14px;padding:14px;border-radius:8px;font-size:.88rem;display:none;line-height:1.6}
.verify-result.valid{background:rgba(63,185,80,.08);border:1px solid rgba(63,185,80,.3);color:var(--green)}
.verify-result.invalid{background:rgba(248,81,73,.08);border:1px solid rgba(248,81,73,.3);color:var(--red)}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.section-header h2{font-size:1.1rem;font-weight:700}
.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}
.cert-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:all .2s}
.cert-card:hover{border-color:var(--accent);transform:translateY(-2px)}
.cert-banner{height:100px;background:linear-gradient(135deg,#1e1040,#0e2040);display:flex;align-items:center;justify-content:center;font-size:2.4rem;position:relative}
.cert-ribbon{position:absolute;top:8px;right:8px;background:rgba(212,175,55,.15);border:1px solid rgba(212,175,55,.4);color:#d4af37;font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:6px}
.cert-body{padding:16px}
.cert-title{font-size:.95rem;font-weight:700;margin-bottom:4px}
.cert-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:.78rem;color:var(--muted);margin-bottom:14px}
.cert-actions{display:flex;gap:8px;flex-wrap:wrap}
.empty{text-align:center;padding:60px 20px;color:var(--muted)}
.empty .icon{font-size:3rem;margin-bottom:12px}
.toast{position:fixed;bottom:24px;right:24px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:12px 18px;font-size:.88rem;z-index:200;display:none;gap:8px;align-items:center}
.toast.show{display:flex}
.toast.success{border-color:rgba(63,185,80,.4);background:rgba(63,185,80,.08)}
.toast.error{border-color:rgba(248,81,73,.4);background:rgba(248,81,73,.08)}
