*{box-sizing:border-box}body{margin:0;font-family:PingFang SC,Noto Sans SC,sans-serif;background:linear-gradient(180deg,#f4f8fb,#eef2f6);color:#1d2732}.header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:#0f3354;color:#fff}.title{font-size:20px;font-weight:700}.actions{display:flex;gap:8px}.switch{border:none;border-radius:8px;padding:8px 12px;background:#f0f6ff;color:#16324f;cursor:pointer}.logout{border:none;border-radius:8px;padding:8px 12px;background:#dbe7f5;color:#16324f;cursor:pointer}.nav{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 20px;background:#fff;border-bottom:1px solid #e2e8f0}.nav a{text-decoration:none;color:#16324f;background:#edf3fa;border:1px solid #d6e2f0;border-radius:999px;padding:8px 14px}.nav a.router-link-active{background:#16324f;color:#fff}.content{max-width:1040px;margin:20px auto;background:#fff;padding:20px;border-radius:14px;border:1px solid #e5eaf0;box-shadow:0 8px 24px #0f33540f}.card[data-v-8dd91763]{max-width:420px;margin:0 auto}.form[data-v-8dd91763]{display:grid;gap:14px}.field[data-v-8dd91763]{display:grid;gap:6px}label[data-v-8dd91763]{font-weight:600}input[data-v-8dd91763]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.primary[data-v-8dd91763]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff;cursor:pointer}.error[data-v-8dd91763]{color:#c62828}.star-rating[data-v-9aa99e17]{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:3px;min-height:34px;white-space:nowrap}.star[data-v-9aa99e17]{border:0;background:transparent;color:#cfd6df;font-size:28px;line-height:1;padding:0 1px;cursor:pointer;transition:color .15s ease,transform .15s ease;text-shadow:0 1px 0 rgba(15,23,42,.08)}.star.active[data-v-9aa99e17]{color:#f43f5e}button.star[data-v-9aa99e17]:hover,button.star[data-v-9aa99e17]:focus-visible{transform:translateY(-1px) scale(1.08);outline:none}.readonly .star[data-v-9aa99e17]{cursor:default;font-size:18px}.score[data-v-9aa99e17]{margin-left:8px;color:#ef233c;font-weight:700;white-space:nowrap}.exemplar-badge[data-v-fb6a0b71]{position:relative;margin:12px 0 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:150px;overflow:hidden;border:1px solid #f4c66b;border-radius:18px;padding:18px 22px;background:radial-gradient(circle at 84% 34%,#ffffffeb,#fff0 28%),linear-gradient(135deg,#fff8df,#fff1b8 48%,#eaf7ff);box-shadow:0 18px 42px #865b0024}.exemplar-badge[data-v-fb6a0b71]:before{content:"";position:absolute;inset:-30% auto auto -8%;width:260px;height:260px;border-radius:999px;background:#ffcf403d}.badge-copy[data-v-fb6a0b71]{position:relative;display:grid;gap:7px;z-index:1}.badge-eyebrow[data-v-fb6a0b71]{width:fit-content;border:1px solid rgba(160,93,0,.28);border-radius:999px;background:#ffffff9e;color:#9a5a00;font-size:13px;font-weight:700;padding:3px 10px}.badge-copy strong[data-v-fb6a0b71]{color:#7c3f00;font-size:clamp(30px,6vw,54px);line-height:1;letter-spacing:.08em}.badge-copy span[data-v-fb6a0b71]:last-child{color:#4b5563;font-weight:700}.badge-img[data-v-fb6a0b71]{position:relative;z-index:1;width:min(180px,34vw);max-height:140px;object-fit:contain;filter:drop-shadow(0 14px 22px rgba(90,54,0,.18))}.profile-grid[data-v-fb6a0b71]{margin-top:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;background:#f7fbff;padding:14px;border:1px solid #d8e5f2;border-radius:12px}.profile-grid>div[data-v-fb6a0b71]{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:center}.row-full[data-v-fb6a0b71]{grid-column:1 / -1}.k[data-v-fb6a0b71]{color:#506173;font-weight:600}.photo[data-v-fb6a0b71]{max-width:220px;border-radius:10px;border:1px solid #ccd8e5}.form[data-v-fb6a0b71],.learning-form[data-v-fb6a0b71]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.field[data-v-fb6a0b71]{display:grid;gap:6px}.learning-form textarea[data-v-fb6a0b71]{font-family:JetBrains Mono,Menlo,Consolas,monospace}.field[data-v-fb6a0b71]:last-of-type,.form .primary[data-v-fb6a0b71],.learning-form .primary[data-v-fb6a0b71]{grid-column:1 / -1}input[data-v-fb6a0b71],select[data-v-fb6a0b71],textarea[data-v-fb6a0b71]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.primary[data-v-fb6a0b71]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.sub[data-v-fb6a0b71]{border:1px solid #c7d8ea;border-radius:10px;padding:10px 14px;background:#f2f7fc;color:#1f4f7c}.artifact-current[data-v-fb6a0b71]{display:grid;gap:10px;border:1px solid #d8e5f2;border-radius:10px;background:#f8fbff;padding:10px}.artifact-chips[data-v-fb6a0b71]{display:flex;flex-wrap:wrap;gap:8px}.chip[data-v-fb6a0b71]{display:inline-flex;align-items:center;gap:8px;border:1px solid #ccd8e5;border-radius:999px;background:#fff;padding:4px 10px}.chip-del[data-v-fb6a0b71]{border:none;background:transparent;color:#c62828;text-decoration:underline;cursor:pointer;padding:0}.records[data-v-fb6a0b71]{margin-top:14px;display:grid;gap:12px;min-width:0}.portrait-actions[data-v-fb6a0b71]{margin:8px 0 10px;display:flex;flex-wrap:wrap;gap:8px}.style-workshop[data-v-fb6a0b71]{margin:8px 0 12px;border:1px solid #d9e7f5;background:linear-gradient(180deg,#f4f9ff,#eef6ff);border-radius:12px;padding:10px}.style-title[data-v-fb6a0b71]{font-weight:700;color:#1f4f7c;margin-bottom:8px}.style-grid[data-v-fb6a0b71]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.style-card[data-v-fb6a0b71]{text-align:left;border:1px solid #c9dcf0;background:#fff;border-radius:10px;padding:8px;display:grid;gap:4px;cursor:pointer}.style-card span[data-v-fb6a0b71]{font-size:12px;color:#4a5565}.style-card.active[data-v-fb6a0b71]{border-color:#1f4f7c;box-shadow:0 0 0 2px #d5e5f6 inset}.portrait-card[data-v-fb6a0b71]{display:grid;grid-template-columns:280px 1fr;gap:14px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:12px}.portrait-visual[data-v-fb6a0b71]{display:grid;gap:10px}.avatar-frame[data-v-fb6a0b71]{position:relative;overflow:hidden;border:1px solid #ccd8e5;border-radius:10px;background:#fff}.avatar[data-v-fb6a0b71],.real-photo[data-v-fb6a0b71]{width:100%;display:block}.avatar[data-v-fb6a0b71]{border:0;border-radius:0}.real-photo[data-v-fb6a0b71]{border:1px solid #ccd8e5;border-radius:10px;background:#fff}.portrait-main[data-v-fb6a0b71]{display:grid;gap:10px}.portrait-honor[data-v-fb6a0b71]{display:flex;align-items:center;gap:12px;border:1px solid #f1c85d;border-radius:14px;background:linear-gradient(135deg,#fff8df,#eef8ff);padding:10px 12px}.portrait-honor img[data-v-fb6a0b71]{width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(96,56,0,.16))}.portrait-honor div[data-v-fb6a0b71]{display:grid;gap:3px}.portrait-honor span[data-v-fb6a0b71]{color:#9a5a00;font-size:12px;font-weight:700}.portrait-honor strong[data-v-fb6a0b71]{color:#7c3f00;font-size:22px}.portrait-honor small[data-v-fb6a0b71]{color:#4b5563;font-weight:700}.persona[data-v-fb6a0b71]{margin:0;color:#1d4ed8;font-weight:700}.summary[data-v-fb6a0b71]{margin:0;line-height:1.6}.portrait-stats[data-v-fb6a0b71]{display:flex;flex-wrap:wrap;gap:8px}.portrait-stats span[data-v-fb6a0b71]{background:#fff;border:1px solid #d8e5f2;border-radius:999px;padding:4px 10px}.portrait-tags[data-v-fb6a0b71]{display:flex;flex-wrap:wrap;gap:8px}.tag[data-v-fb6a0b71]{background:#e8f3ff;color:#1e4c7c;border-radius:999px;padding:4px 10px;font-size:13px}.portrait-topics[data-v-fb6a0b71]{color:#334155}.motto[data-v-fb6a0b71]{margin:0;padding:10px 12px;border-left:4px solid #60a5fa;background:#eef6ff;color:#1e3a8a;border-radius:6px}.portrait-achievements[data-v-fb6a0b71]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.achievement-item[data-v-fb6a0b71]{display:grid;gap:2px;border:1px solid #d8e5f2;border-radius:8px;background:#fff;padding:8px}.timeline-box[data-v-fb6a0b71]{margin-top:6px}.timeline-box h5[data-v-fb6a0b71]{margin:0 0 8px;font-size:15px}.timeline[data-v-fb6a0b71]{display:grid;gap:8px}.timeline-item[data-v-fb6a0b71]{display:grid;grid-template-columns:16px 1fr;gap:10px;position:relative}.dot[data-v-fb6a0b71]{width:10px;height:10px;border-radius:999px;background:#2563eb;margin-top:8px;margin-left:1px}.line[data-v-fb6a0b71]{position:absolute;left:5px;top:18px;bottom:-8px;width:2px;background:#bfdbfe}.timeline-content[data-v-fb6a0b71]{border:1px solid #dbe7f5;border-radius:8px;background:#fff;padding:8px}.t-head[data-v-fb6a0b71]{display:flex;justify-content:space-between;gap:8px}.t-meta[data-v-fb6a0b71]{margin-top:4px;display:flex;gap:10px;color:#334155;font-size:13px}.t-keys[data-v-fb6a0b71]{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.record-card[data-v-fb6a0b71]{background:#f8fbff;border:1px solid #d8e5f2;border-radius:10px;padding:12px;width:100%;max-width:100%;min-width:0;overflow:hidden}.record-head[data-v-fb6a0b71]{display:flex;justify-content:space-between;gap:8px;min-width:0}.record-actions[data-v-fb6a0b71]{margin-top:6px;display:flex;gap:10px}.record-social[data-v-fb6a0b71]{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;color:#334155;font-size:14px}.record-social span[data-v-fb6a0b71]{border:1px solid #d8e5f2;border-radius:999px;background:#fff;padding:3px 10px}.record-social .rating-chip[data-v-fb6a0b71]{display:inline-flex;align-items:center;gap:8px}.teacher-review[data-v-fb6a0b71]{margin:8px 0 0;border-left:4px solid #1f4f7c;background:#eef6ff;border-radius:6px;padding:8px 10px;color:#1d3550;white-space:pre-wrap}.link-btn[data-v-fb6a0b71]{border:none;background:transparent;color:#1f4f7c;text-decoration:underline;padding:0;cursor:pointer}.link-btn.danger[data-v-fb6a0b71]{color:#c62828}.reflection[data-v-fb6a0b71]{white-space:pre-wrap;overflow-wrap:anywhere}.code[data-v-fb6a0b71]{background:#10243a;color:#e7eff9;padding:10px;border-radius:8px;overflow-x:hidden;overflow-y:auto;max-width:100%;width:100%;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;font-family:JetBrains Mono,Menlo,Consolas,monospace;line-height:1.45}.code[data-v-fb6a0b71] .kw{color:#ffd166;font-weight:600}.code[data-v-fb6a0b71] .str{color:#8ee6a0}.code[data-v-fb6a0b71] .cm{color:#86a4be;font-style:italic}.artifact-img[data-v-fb6a0b71]{margin-top:6px;width:min(360px,100%);max-width:100%;max-height:260px;object-fit:contain;border-radius:8px;border:1px solid #ccd8e5}.artifact-list[data-v-fb6a0b71]{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.artifact-item[data-v-fb6a0b71]{border:1px solid #d8e5f2;border-radius:8px;padding:8px;background:#fff}.success[data-v-fb6a0b71]{color:#2e7d32}.upload-tip[data-v-fb6a0b71]{color:#1f4f7c}.error[data-v-fb6a0b71]{color:#c62828}.tip[data-v-fb6a0b71]{color:#5f6368}@media(max-width:900px){.exemplar-badge[data-v-fb6a0b71]{align-items:flex-start;padding:16px}.badge-img[data-v-fb6a0b71]{width:118px}.portrait-card[data-v-fb6a0b71],.portrait-achievements[data-v-fb6a0b71],.form[data-v-fb6a0b71],.learning-form[data-v-fb6a0b71]{grid-template-columns:1fr}}.panel[data-v-2362c37b]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.tip[data-v-2362c37b]{color:#5f6368}.material-item[data-v-2362c37b]{border:1px solid #dde7f2;border-radius:10px;padding:10px;margin-top:10px;background:#fff}.material-title[data-v-2362c37b]{border:none;background:transparent;color:#1f4f7c;font-size:16px;font-weight:700;cursor:pointer;text-decoration:underline;padding:0}.sub-line[data-v-2362c37b]{margin-top:6px;color:#5f6368;display:flex;gap:16px;flex-wrap:wrap}.detail-line[data-v-2362c37b]{margin:4px 0}.block[data-v-2362c37b]{margin-top:14px}.file-meta[data-v-2362c37b]{color:#334;display:flex;flex-wrap:wrap;gap:10px}.file-actions[data-v-2362c37b]{display:flex;gap:14px;margin-top:6px}.file-actions a[data-v-2362c37b]{color:#1f4f7c;text-decoration:underline}.attachment-preview[data-v-2362c37b]{margin-top:8px;max-width:100%;max-height:260px;border:1px solid #dde7f2;border-radius:8px;object-fit:contain;background:#fff}.desc[data-v-2362c37b]{white-space:pre-wrap}.code-block[data-v-2362c37b]{margin:8px 0;background:#0f2840;color:#eef4ff;border-radius:10px;padding:12px;overflow-x:auto}.code-block[data-v-2362c37b] .kw{color:#ffd166;font-weight:700}.code-block[data-v-2362c37b] .str{color:#80ed99}.code-block[data-v-2362c37b] .cm{color:#9db2c9;font-style:italic}.code-block[data-v-2362c37b] .num{color:#7dd3fc}.error[data-v-2362c37b]{color:#c62828}.section-head[data-v-e5d7b041]{display:flex;align-items:center;justify-content:space-between;gap:12px}.records[data-v-e5d7b041]{margin-top:14px;display:grid;gap:12px}.record-card[data-v-e5d7b041]{background:#f8fbff;border:1px solid #d8e5f2;border-radius:10px;padding:12px;overflow:hidden}.record-head[data-v-e5d7b041]{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.student-name[data-v-e5d7b041]{margin-top:4px;color:#5f6368;font-size:14px}.record-social[data-v-e5d7b041]{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;color:#334155;font-size:14px}.record-social span[data-v-e5d7b041]{border:1px solid #d8e5f2;border-radius:999px;background:#fff;padding:3px 10px}.record-social .rating-chip[data-v-e5d7b041]{display:inline-flex;align-items:center;gap:8px}.teacher-review[data-v-e5d7b041]{margin:8px 0 0;border-left:4px solid #1f4f7c;background:#eef6ff;border-radius:6px;padding:8px 10px;color:#1d3550;white-space:pre-wrap}.reflection[data-v-e5d7b041]{white-space:pre-wrap;overflow-wrap:anywhere}.code[data-v-e5d7b041]{background:#10243a;color:#e7eff9;padding:10px;border-radius:8px;overflow-x:hidden;overflow-y:auto;max-width:100%;width:100%;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;font-family:JetBrains Mono,Menlo,Consolas,monospace;line-height:1.45}.code[data-v-e5d7b041] .kw{color:#ffd166;font-weight:600}.code[data-v-e5d7b041] .str{color:#8ee6a0}.code[data-v-e5d7b041] .cm{color:#86a4be;font-style:italic}.artifact-list[data-v-e5d7b041]{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.artifact-item[data-v-e5d7b041]{border:1px solid #d8e5f2;border-radius:8px;padding:8px;background:#fff}.artifact-img[data-v-e5d7b041]{width:min(360px,100%);max-width:100%;max-height:260px;object-fit:contain;border-radius:8px;border:1px solid #ccd8e5}.like-btn[data-v-e5d7b041],.sub[data-v-e5d7b041]{border:1px solid #ccd8e5;border-radius:10px;padding:8px 12px;background:#fff;color:#1f4f7c;cursor:pointer;white-space:nowrap}.like-btn.active[data-v-e5d7b041]{background:#1f4f7c;color:#fff;border-color:#1f4f7c}.tip[data-v-e5d7b041]{color:#5f6368}.success[data-v-e5d7b041]{color:#2e7d32}.error[data-v-e5d7b041]{color:#c62828}@media(max-width:640px){.section-head[data-v-e5d7b041],.record-head[data-v-e5d7b041]{display:grid}}.panel[data-v-f754b128]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.form[data-v-f754b128]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-f754b128]{display:grid;gap:6px}.row-full[data-v-f754b128]{grid-column:1 / -1}input[data-v-f754b128],select[data-v-f754b128]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.club-grid[data-v-f754b128]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:10px 0 12px}.club-option[data-v-f754b128]{display:flex;align-items:center;gap:8px;border:1px solid #d8e5f2;border-radius:10px;padding:10px;background:#fff}.import-actions[data-v-f754b128]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sub[data-v-f754b128]{border:1px solid #ccd8e5;border-radius:8px;background:#f7fbff;padding:8px 12px;cursor:pointer}.primary[data-v-f754b128]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.tip[data-v-f754b128]{color:#5f6368}.error-list[data-v-f754b128]{color:#c62828;margin:10px 0 0;padding-left:18px}.success[data-v-f754b128]{color:#2e7d32}.error[data-v-f754b128]{color:#c62828}@media(max-width:900px){.form[data-v-f754b128]{grid-template-columns:1fr}}.panel[data-v-a0b55bde]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.tip[data-v-a0b55bde]{color:#5f6368}.filter-row[data-v-a0b55bde]{margin-top:10px;max-width:320px}.form[data-v-a0b55bde]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-a0b55bde]{display:grid;gap:6px}.row-full[data-v-a0b55bde]{grid-column:1 / -1}input[data-v-a0b55bde],select[data-v-a0b55bde],textarea[data-v-a0b55bde]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.code-input[data-v-a0b55bde]{font-family:JetBrains Mono,Menlo,Consolas,monospace}.upload-row[data-v-a0b55bde]{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.file-tip[data-v-a0b55bde]{margin-top:6px}.actions[data-v-a0b55bde]{grid-column:1 / -1;display:flex;gap:10px}.primary[data-v-a0b55bde]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.sub[data-v-a0b55bde]{border:1px solid #ccd8e5;border-radius:10px;padding:10px 14px;background:#fff;color:#1f4f7c}.material-card[data-v-a0b55bde]{border:1px solid #dde7f2;border-radius:10px;padding:12px;margin-top:10px;background:#fff}.row[data-v-a0b55bde]{display:flex;justify-content:space-between;gap:8px}.time[data-v-a0b55bde]{color:#5f6368;font-size:12px}.desc[data-v-a0b55bde]{margin:8px 0;white-space:pre-wrap}.code-block[data-v-a0b55bde]{margin:8px 0;background:#0f2840;color:#eef4ff;border-radius:10px;padding:12px;overflow-x:auto}.code-block[data-v-a0b55bde] .kw{color:#ffd166;font-weight:700}.code-block[data-v-a0b55bde] .str{color:#80ed99}.code-block[data-v-a0b55bde] .cm{color:#9db2c9;font-style:italic}.code-block[data-v-a0b55bde] .num{color:#7dd3fc}.file-row[data-v-a0b55bde]{margin:8px 0}.file-meta[data-v-a0b55bde]{color:#334;display:flex;flex-wrap:wrap;gap:10px}.file-actions[data-v-a0b55bde]{display:flex;gap:14px;margin-top:6px}.file-actions a[data-v-a0b55bde]{color:#1f4f7c;text-decoration:underline}.attachment-preview[data-v-a0b55bde]{margin-top:8px;max-width:100%;max-height:260px;border:1px solid #dde7f2;border-radius:8px;object-fit:contain;background:#fff}.ops[data-v-a0b55bde]{display:flex;gap:12px}.link[data-v-a0b55bde],.danger-link[data-v-a0b55bde]{border:none;background:transparent;cursor:pointer;text-decoration:underline;padding:0}.link[data-v-a0b55bde]{color:#1f4f7c}.danger-link[data-v-a0b55bde]{color:#c62828}.success[data-v-a0b55bde]{color:#2e7d32}.error[data-v-a0b55bde]{color:#c62828}@media(max-width:900px){.form[data-v-a0b55bde]{grid-template-columns:1fr}}.panel[data-v-2bcb7d29]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.form[data-v-2bcb7d29]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-2bcb7d29]{display:grid;gap:6px}.row-full[data-v-2bcb7d29]{grid-column:1 / -1}input[data-v-2bcb7d29],select[data-v-2bcb7d29],textarea[data-v-2bcb7d29]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.picker-grid[data-v-2bcb7d29]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.picker-item[data-v-2bcb7d29]{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #d8e5f2;border-radius:10px;padding:8px 10px}.password-row[data-v-2bcb7d29]{display:flex;gap:8px;align-items:center}.password-row input[data-v-2bcb7d29]{flex:1}.primary[data-v-2bcb7d29]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.sub[data-v-2bcb7d29]{border:1px solid #ccd8e5;border-radius:10px;padding:10px 14px;background:#fff;color:#1f4f7c}.mini[data-v-2bcb7d29]{padding:8px 12px;white-space:nowrap}.table-wrap[data-v-2bcb7d29]{margin-top:12px;overflow-x:auto}table[data-v-2bcb7d29]{width:100%;border-collapse:collapse;min-width:780px}th[data-v-2bcb7d29],td[data-v-2bcb7d29]{border-bottom:1px solid #e1e9f2;text-align:left;padding:10px;vertical-align:top}.ops[data-v-2bcb7d29]{white-space:nowrap}.link[data-v-2bcb7d29],.danger-link[data-v-2bcb7d29]{border:none;background:transparent;cursor:pointer;padding:0;margin-right:10px}.link[data-v-2bcb7d29]{color:#1f4f7c;text-decoration:underline}.danger-link[data-v-2bcb7d29]{color:#c62828;text-decoration:underline}.search-row[data-v-2bcb7d29]{display:flex;gap:10px;margin-bottom:10px}.search-row input[data-v-2bcb7d29]{max-width:280px}.student-match-list[data-v-2bcb7d29]{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}.match-item[data-v-2bcb7d29]{border:1px solid #ccd8e5;border-radius:10px;background:#fff;color:#1f4f7c;padding:8px 12px;cursor:pointer}.account-box[data-v-2bcb7d29]{background:#fff;border:1px solid #d8e5f2;border-radius:10px;padding:12px;margin:6px 0 12px}.account-actions[data-v-2bcb7d29]{display:flex;gap:10px}.account-single-action[data-v-2bcb7d29]{align-self:end}.tip[data-v-2bcb7d29]{color:#5f6368}.import-actions[data-v-2bcb7d29]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.error-list[data-v-2bcb7d29]{color:#c62828;margin:10px 0 0;padding-left:18px}.mono[data-v-2bcb7d29]{font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:12px}.pager[data-v-2bcb7d29]{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.success[data-v-2bcb7d29]{color:#2e7d32}.error[data-v-2bcb7d29]{color:#c62828}@media(max-width:900px){.form[data-v-2bcb7d29]{grid-template-columns:1fr}.search-row[data-v-2bcb7d29]{flex-direction:column}}.panel[data-v-bb499ee3]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.search-row[data-v-bb499ee3]{display:flex;gap:10px;margin-bottom:10px}.search-row input[data-v-bb499ee3]{max-width:320px}input[data-v-bb499ee3],select[data-v-bb499ee3]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.sub[data-v-bb499ee3]{border:1px solid #ccd8e5;border-radius:10px;padding:10px 14px;background:#fff;color:#1f4f7c}.table-wrap[data-v-bb499ee3]{margin-top:12px;overflow-x:auto}table[data-v-bb499ee3]{width:100%;border-collapse:collapse;min-width:880px}th[data-v-bb499ee3],td[data-v-bb499ee3]{border-bottom:1px solid #e1e9f2;text-align:left;padding:10px;vertical-align:top}.mono[data-v-bb499ee3]{font-family:JetBrains Mono,Menlo,Consolas,monospace;font-size:12px}.tip[data-v-bb499ee3]{color:#5f6368}.pager[data-v-bb499ee3]{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}.error[data-v-bb499ee3]{color:#c62828}@media(max-width:900px){.search-row[data-v-bb499ee3]{flex-direction:column}}.panel[data-v-c9b99486]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.stats[data-v-c9b99486]{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat[data-v-c9b99486]{border:1px solid #d8e5f2;border-radius:10px;background:#fff;padding:10px;text-align:center}.label[data-v-c9b99486]{color:#5a6d80}.value[data-v-c9b99486]{font-size:22px;font-weight:700;color:#1f4f7c}.desc[data-v-c9b99486]{color:#35485a}.admin-layout[data-v-c9b99486]{display:grid;grid-template-columns:minmax(280px,38%) minmax(0,1fr);gap:14px}.admin-left[data-v-c9b99486],.admin-right[data-v-c9b99486]{border:1px solid #d8e5f2;border-radius:10px;background:#fff;padding:12px}.admin-club-list[data-v-c9b99486]{display:grid;gap:10px}.admin-club-item[data-v-c9b99486]{border:1px solid #d8e5f2;border-radius:10px;background:#f8fbff;padding:10px}.admin-club-item.active[data-v-c9b99486]{border-color:#1f4f7c;box-shadow:0 0 0 1px #1f4f7c inset}.mini-stats[data-v-c9b99486]{margin-top:6px;display:flex;gap:14px;color:#5a6d80;font-size:14px}.club-link[data-v-c9b99486]{border:none;background:transparent;color:#1f4f7c;text-decoration:underline;font-size:1em;font-weight:700;cursor:pointer;padding:0}.form[data-v-c9b99486]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-c9b99486]{display:grid;gap:6px}.row-full[data-v-c9b99486]{grid-column:1 / -1}input[data-v-c9b99486],select[data-v-c9b99486],textarea[data-v-c9b99486]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.primary[data-v-c9b99486]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.group[data-v-c9b99486]{border:1px solid #d8e5f2;border-radius:10px;background:#fff;padding:10px;margin-bottom:10px}.group ul[data-v-c9b99486]{margin:0;padding-left:18px}.name-link[data-v-c9b99486]{border:none;background:transparent;color:#1f4f7c;text-decoration:underline;cursor:pointer;padding:0}.modal-mask[data-v-c9b99486]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;display:flex;align-items:flex-start;justify-content:center;z-index:999;overflow-y:auto;padding:20px 12px}.modal[data-v-c9b99486]{width:min(760px,94vw);max-height:calc(100vh - 40px);background:#fff;border-radius:12px;border:1px solid #d8e5f2;padding:14px;overflow:auto;min-width:0}.modal-head[data-v-c9b99486]{display:flex;align-items:center;justify-content:space-between;gap:10px;position:sticky;top:0;background:#fff;padding-bottom:8px;z-index:1}.close-btn[data-v-c9b99486]{border:1px solid #ccd8e5;border-radius:8px;background:#f7fbff;padding:8px 12px;cursor:pointer}.student-badge-card[data-v-c9b99486]{margin:10px 0 12px;display:flex;align-items:center;gap:14px;border:1px solid #f1c85d;border-radius:14px;background:linear-gradient(135deg,#fff8df,#eef8ff);padding:12px 14px;box-shadow:0 10px 24px #865b001f}.student-badge-card img[data-v-c9b99486]{width:86px;height:86px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(90,54,0,.16))}.student-badge-card div[data-v-c9b99486]{display:grid;gap:4px}.student-badge-card span[data-v-c9b99486]{width:fit-content;border:1px solid rgba(160,93,0,.28);border-radius:999px;background:#ffffffad;color:#9a5a00;font-size:12px;font-weight:700;padding:3px 10px}.student-badge-card strong[data-v-c9b99486]{color:#7c3f00;font-size:26px;letter-spacing:.08em}.student-badge-card small[data-v-c9b99486]{color:#4b5563;font-weight:700}.learning-box[data-v-c9b99486]{margin-top:14px;border-top:1px solid #e4ebf3;padding-top:12px}.record-card[data-v-c9b99486]{margin-top:10px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:10px;padding:10px;width:100%;max-width:100%;min-width:0;overflow:hidden}.record-head[data-v-c9b99486]{display:flex;justify-content:space-between;gap:8px;min-width:0}.record-social[data-v-c9b99486]{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;color:#334155;font-size:14px}.record-social span[data-v-c9b99486]{border:1px solid #d8e5f2;border-radius:999px;background:#fff;padding:3px 10px}.record-social .rating-chip[data-v-c9b99486]{display:inline-flex;align-items:center;gap:8px}.teacher-review[data-v-c9b99486]{margin:8px 0 0;border-left:4px solid #1f4f7c;background:#eef6ff;border-radius:6px;padding:8px 10px;color:#1d3550;white-space:pre-wrap}.review-form[data-v-c9b99486]{margin-top:10px;display:grid;grid-template-columns:220px minmax(0,1fr) auto;gap:8px;align-items:end}.review-form label[data-v-c9b99486]{display:grid;gap:4px}.rating-field[data-v-c9b99486]{align-self:center}.reflection[data-v-c9b99486]{white-space:pre-wrap;overflow-wrap:anywhere}.code[data-v-c9b99486]{background:#10243a;color:#e7eff9;padding:10px;border-radius:8px;overflow-x:hidden;overflow-y:auto;max-width:100%;width:100%;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;font-family:JetBrains Mono,Menlo,Consolas,monospace;line-height:1.45}.code[data-v-c9b99486] .kw{color:#ffd166;font-weight:600}.code[data-v-c9b99486] .str{color:#8ee6a0}.code[data-v-c9b99486] .cm{color:#86a4be;font-style:italic}.artifact-img[data-v-c9b99486]{margin-top:6px;width:min(360px,100%);max-width:100%;max-height:260px;object-fit:contain;border-radius:8px;border:1px solid #ccd8e5}.artifact-list[data-v-c9b99486]{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.artifact-item[data-v-c9b99486]{border:1px solid #d8e5f2;border-radius:8px;padding:8px;background:#fff}.tip[data-v-c9b99486]{color:#5f6368}.success[data-v-c9b99486]{color:#2e7d32}.error[data-v-c9b99486]{color:#c62828}@media(max-width:900px){.admin-layout[data-v-c9b99486],.stats[data-v-c9b99486],.form[data-v-c9b99486],.review-form[data-v-c9b99486]{grid-template-columns:1fr}}.panel[data-v-3c4482b5]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.form[data-v-3c4482b5]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-3c4482b5]{display:grid;gap:6px}.row-full[data-v-3c4482b5]{grid-column:1 / -1}.inline-check[data-v-3c4482b5]{display:inline-flex;align-items:center;gap:8px}input[data-v-3c4482b5]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.primary[data-v-3c4482b5]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.tip[data-v-3c4482b5]{color:#5f6368}.success[data-v-3c4482b5]{color:#2e7d32}.error[data-v-3c4482b5]{color:#c62828}@media(max-width:900px){.form[data-v-3c4482b5]{grid-template-columns:1fr}}
