*{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-43bfceac]{max-width:420px;margin:0 auto}.form[data-v-43bfceac]{display:grid;gap:14px}.field[data-v-43bfceac]{display:grid;gap:6px}label[data-v-43bfceac]{font-weight:600}input[data-v-43bfceac]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.primary[data-v-43bfceac]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff;cursor:pointer}.error[data-v-43bfceac]{color:#c62828}.profile-grid[data-v-2c87dff1]{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-2c87dff1]{display:grid;grid-template-columns:88px 1fr;gap:8px;align-items:center}.row-full[data-v-2c87dff1]{grid-column:1 / -1}.k[data-v-2c87dff1]{color:#506173;font-weight:600}.photo[data-v-2c87dff1]{max-width:220px;border-radius:10px;border:1px solid #ccd8e5}.form[data-v-2c87dff1],.learning-form[data-v-2c87dff1]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}.field[data-v-2c87dff1]{display:grid;gap:6px}.learning-form textarea[data-v-2c87dff1]{font-family:JetBrains Mono,Menlo,Consolas,monospace}.field[data-v-2c87dff1]:last-of-type,.form .primary[data-v-2c87dff1],.learning-form .primary[data-v-2c87dff1]{grid-column:1 / -1}input[data-v-2c87dff1],select[data-v-2c87dff1],textarea[data-v-2c87dff1]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.primary[data-v-2c87dff1]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.sub[data-v-2c87dff1]{border:1px solid #c7d8ea;border-radius:10px;padding:10px 14px;background:#f2f7fc;color:#1f4f7c}.artifact-current[data-v-2c87dff1]{display:grid;gap:10px;border:1px solid #d8e5f2;border-radius:10px;background:#f8fbff;padding:10px}.artifact-chips[data-v-2c87dff1]{display:flex;flex-wrap:wrap;gap:8px}.chip[data-v-2c87dff1]{display:inline-flex;align-items:center;gap:8px;border:1px solid #ccd8e5;border-radius:999px;background:#fff;padding:4px 10px}.chip-del[data-v-2c87dff1]{border:none;background:transparent;color:#c62828;text-decoration:underline;cursor:pointer;padding:0}.records[data-v-2c87dff1]{margin-top:14px;display:grid;gap:12px;min-width:0}.portrait-actions[data-v-2c87dff1]{margin:8px 0 10px;display:flex;flex-wrap:wrap;gap:8px}.style-workshop[data-v-2c87dff1]{margin:8px 0 12px;border:1px solid #d9e7f5;background:linear-gradient(180deg,#f4f9ff,#eef6ff);border-radius:12px;padding:10px}.style-title[data-v-2c87dff1]{font-weight:700;color:#1f4f7c;margin-bottom:8px}.style-grid[data-v-2c87dff1]{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.style-card[data-v-2c87dff1]{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-2c87dff1]{font-size:12px;color:#4a5565}.style-card.active[data-v-2c87dff1]{border-color:#1f4f7c;box-shadow:0 0 0 2px #d5e5f6 inset}.portrait-card[data-v-2c87dff1]{display:grid;grid-template-columns:280px 1fr;gap:14px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:12px}.portrait-visual[data-v-2c87dff1]{display:grid;gap:10px}.avatar[data-v-2c87dff1],.real-photo[data-v-2c87dff1]{width:100%;border:1px solid #ccd8e5;border-radius:10px;background:#fff}.portrait-main[data-v-2c87dff1]{display:grid;gap:10px}.persona[data-v-2c87dff1]{margin:0;color:#1d4ed8;font-weight:700}.summary[data-v-2c87dff1]{margin:0;line-height:1.6}.portrait-stats[data-v-2c87dff1]{display:flex;flex-wrap:wrap;gap:8px}.portrait-stats span[data-v-2c87dff1]{background:#fff;border:1px solid #d8e5f2;border-radius:999px;padding:4px 10px}.portrait-tags[data-v-2c87dff1]{display:flex;flex-wrap:wrap;gap:8px}.tag[data-v-2c87dff1]{background:#e8f3ff;color:#1e4c7c;border-radius:999px;padding:4px 10px;font-size:13px}.portrait-topics[data-v-2c87dff1]{color:#334155}.motto[data-v-2c87dff1]{margin:0;padding:10px 12px;border-left:4px solid #60a5fa;background:#eef6ff;color:#1e3a8a;border-radius:6px}.portrait-achievements[data-v-2c87dff1]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.achievement-item[data-v-2c87dff1]{display:grid;gap:2px;border:1px solid #d8e5f2;border-radius:8px;background:#fff;padding:8px}.timeline-box[data-v-2c87dff1]{margin-top:6px}.timeline-box h5[data-v-2c87dff1]{margin:0 0 8px;font-size:15px}.timeline[data-v-2c87dff1]{display:grid;gap:8px}.timeline-item[data-v-2c87dff1]{display:grid;grid-template-columns:16px 1fr;gap:10px;position:relative}.dot[data-v-2c87dff1]{width:10px;height:10px;border-radius:999px;background:#2563eb;margin-top:8px;margin-left:1px}.line[data-v-2c87dff1]{position:absolute;left:5px;top:18px;bottom:-8px;width:2px;background:#bfdbfe}.timeline-content[data-v-2c87dff1]{border:1px solid #dbe7f5;border-radius:8px;background:#fff;padding:8px}.t-head[data-v-2c87dff1]{display:flex;justify-content:space-between;gap:8px}.t-meta[data-v-2c87dff1]{margin-top:4px;display:flex;gap:10px;color:#334155;font-size:13px}.t-keys[data-v-2c87dff1]{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px}.record-card[data-v-2c87dff1]{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-2c87dff1]{display:flex;justify-content:space-between;gap:8px;min-width:0}.record-actions[data-v-2c87dff1]{margin-top:6px;display:flex;gap:10px}.link-btn[data-v-2c87dff1]{border:none;background:transparent;color:#1f4f7c;text-decoration:underline;padding:0;cursor:pointer}.link-btn.danger[data-v-2c87dff1]{color:#c62828}.reflection[data-v-2c87dff1]{white-space:pre-wrap;overflow-wrap:anywhere}.code[data-v-2c87dff1]{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-2c87dff1] .kw{color:#ffd166;font-weight:600}.code[data-v-2c87dff1] .str{color:#8ee6a0}.code[data-v-2c87dff1] .cm{color:#86a4be;font-style:italic}.artifact-img[data-v-2c87dff1]{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-2c87dff1]{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.artifact-item[data-v-2c87dff1]{border:1px solid #d8e5f2;border-radius:8px;padding:8px;background:#fff}.success[data-v-2c87dff1]{color:#2e7d32}.upload-tip[data-v-2c87dff1]{color:#1f4f7c}.error[data-v-2c87dff1]{color:#c62828}.tip[data-v-2c87dff1]{color:#5f6368}@media(max-width:900px){.portrait-card[data-v-2c87dff1],.portrait-achievements[data-v-2c87dff1],.form[data-v-2c87dff1],.learning-form[data-v-2c87dff1]{grid-template-columns:1fr}}.panel[data-v-d753f6bf]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.form[data-v-d753f6bf]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-d753f6bf]{display:grid;gap:6px}.row-full[data-v-d753f6bf]{grid-column:1 / -1}input[data-v-d753f6bf],select[data-v-d753f6bf]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.club-grid[data-v-d753f6bf]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:10px 0 12px}.club-option[data-v-d753f6bf]{display:flex;align-items:center;gap:8px;border:1px solid #d8e5f2;border-radius:10px;padding:10px;background:#fff}.import-actions[data-v-d753f6bf]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.sub[data-v-d753f6bf]{border:1px solid #ccd8e5;border-radius:8px;background:#f7fbff;padding:8px 12px;cursor:pointer}.primary[data-v-d753f6bf]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.tip[data-v-d753f6bf]{color:#5f6368}.error-list[data-v-d753f6bf]{color:#c62828;margin:10px 0 0;padding-left:18px}.success[data-v-d753f6bf]{color:#2e7d32}.error[data-v-d753f6bf]{color:#c62828}@media(max-width:900px){.form[data-v-d753f6bf]{grid-template-columns:1fr}}.panel[data-v-82646e4f]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.form[data-v-82646e4f]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-82646e4f]{display:grid;gap:6px}.row-full[data-v-82646e4f]{grid-column:1 / -1}input[data-v-82646e4f],select[data-v-82646e4f],textarea[data-v-82646e4f]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.picker-grid[data-v-82646e4f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}.picker-item[data-v-82646e4f]{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #d8e5f2;border-radius:10px;padding:8px 10px}.password-row[data-v-82646e4f]{display:flex;gap:8px;align-items:center}.password-row input[data-v-82646e4f]{flex:1}.primary[data-v-82646e4f]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.sub[data-v-82646e4f]{border:1px solid #ccd8e5;border-radius:10px;padding:10px 14px;background:#fff;color:#1f4f7c}.mini[data-v-82646e4f]{padding:8px 12px;white-space:nowrap}.table-wrap[data-v-82646e4f]{margin-top:12px;overflow-x:auto}table[data-v-82646e4f]{width:100%;border-collapse:collapse;min-width:780px}th[data-v-82646e4f],td[data-v-82646e4f]{border-bottom:1px solid #e1e9f2;text-align:left;padding:10px;vertical-align:top}.ops[data-v-82646e4f]{white-space:nowrap}.link[data-v-82646e4f],.danger-link[data-v-82646e4f]{border:none;background:transparent;cursor:pointer;padding:0;margin-right:10px}.link[data-v-82646e4f]{color:#1f4f7c;text-decoration:underline}.danger-link[data-v-82646e4f]{color:#c62828;text-decoration:underline}.search-row[data-v-82646e4f]{display:flex;gap:10px;margin-bottom:10px}.search-row input[data-v-82646e4f]{max-width:280px}.student-match-list[data-v-82646e4f]{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 12px}.match-item[data-v-82646e4f]{border:1px solid #ccd8e5;border-radius:10px;background:#fff;color:#1f4f7c;padding:8px 12px;cursor:pointer}.tip[data-v-82646e4f]{color:#5f6368}.import-actions[data-v-82646e4f]{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.error-list[data-v-82646e4f]{color:#c62828;margin:10px 0 0;padding-left:18px}.success[data-v-82646e4f]{color:#2e7d32}.error[data-v-82646e4f]{color:#c62828}@media(max-width:900px){.form[data-v-82646e4f]{grid-template-columns:1fr}.search-row[data-v-82646e4f]{flex-direction:column}}.panel[data-v-d562171c]{margin:14px 0 18px;background:#f8fbff;border:1px solid #d8e5f2;border-radius:12px;padding:14px}.stats[data-v-d562171c]{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat[data-v-d562171c]{border:1px solid #d8e5f2;border-radius:10px;background:#fff;padding:10px;text-align:center}.label[data-v-d562171c]{color:#5a6d80}.value[data-v-d562171c]{font-size:22px;font-weight:700;color:#1f4f7c}.desc[data-v-d562171c]{color:#35485a}.form[data-v-d562171c]{margin-top:10px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}.field[data-v-d562171c]{display:grid;gap:6px}.row-full[data-v-d562171c]{grid-column:1 / -1}input[data-v-d562171c],select[data-v-d562171c],textarea[data-v-d562171c]{width:100%;padding:10px;border:1px solid #ccd8e5;border-radius:10px}.primary[data-v-d562171c]{border:none;border-radius:10px;padding:10px 14px;background:#1f4f7c;color:#fff}.group[data-v-d562171c]{border:1px solid #d8e5f2;border-radius:10px;background:#fff;padding:10px;margin-bottom:10px}.group ul[data-v-d562171c]{margin:0;padding-left:18px}.name-link[data-v-d562171c]{border:none;background:transparent;color:#1f4f7c;text-decoration:underline;cursor:pointer;padding:0}.modal-mask[data-v-d562171c]{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-d562171c]{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-d562171c]{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-d562171c]{border:1px solid #ccd8e5;border-radius:8px;background:#f7fbff;padding:8px 12px;cursor:pointer}.learning-box[data-v-d562171c]{margin-top:14px;border-top:1px solid #e4ebf3;padding-top:12px}.record-card[data-v-d562171c]{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-d562171c]{display:flex;justify-content:space-between;gap:8px;min-width:0}.reflection[data-v-d562171c]{white-space:pre-wrap;overflow-wrap:anywhere}.code[data-v-d562171c]{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-d562171c] .kw{color:#ffd166;font-weight:600}.code[data-v-d562171c] .str{color:#8ee6a0}.code[data-v-d562171c] .cm{color:#86a4be;font-style:italic}.artifact-img[data-v-d562171c]{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-d562171c]{margin-top:8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.artifact-item[data-v-d562171c]{border:1px solid #d8e5f2;border-radius:8px;padding:8px;background:#fff}.tip[data-v-d562171c]{color:#5f6368}.success[data-v-d562171c]{color:#2e7d32}.error[data-v-d562171c]{color:#c62828}@media(max-width:900px){.stats[data-v-d562171c],.form[data-v-d562171c]{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}}
