*{box-sizing:border-box}html,body{margin:0;padding:0}body{color:#243044;-webkit-font-smoothing:antialiased;background:#eef1f7;font-family:PingFang SC,Microsoft YaHei,Hiragino Sans GB,Helvetica Neue,Arial,sans-serif}.svg-sprite{width:0;height:0;position:absolute;overflow:hidden}.icon{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;flex:none;width:1em;height:1em}.app{--accent:#4f46e5;--accent-deep:#312e81;--accent-soft:#eef2ff;--accent-ink:#3730a3;--font-scale:1;min-height:100vh;padding-bottom:48px}.toolbar{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border-bottom:1px solid #e5e9f2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 24px;display:flex;position:sticky;top:0;box-shadow:0 2px 14px #1e2d500f}.tb-brand{align-items:center;gap:10px;display:flex}.tb-logo{background:var(--accent);color:#fff;border-radius:10px;place-items:center;width:34px;height:34px;font-size:17px;display:grid}.tb-brand-text{flex-direction:column;line-height:1.25;display:flex}.tb-brand-text strong{color:#1e293b;font-size:14px}.tb-brand-text small{color:#94a3b8;font-size:11px}.tb-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.tb-btn,.tb-group{color:#475569;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:6px;height:34px;padding:0 11px;font-family:inherit;font-size:12.5px;transition:all .18s;display:inline-flex}.tb-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.tb-btn .icon{font-size:14px}.tb-btn.primary{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.tb-btn.active{color:#15803d;background:#f0fdf4;border-color:#16a34a}.tb-btn.accent-btn{background:var(--accent);border-color:var(--accent);color:#fff}.tb-btn.accent-btn:hover{filter:brightness(1.1);background:var(--accent);color:#fff}.tb-label{color:#94a3b8;display:inline-flex}.tb-label .icon{font-size:15px}.tb-select{color:#475569;cursor:pointer;background:0 0;border:0;outline:none;font-family:inherit;font-size:12.5px}.stepper{padding:0 4px}.stepper-val{text-align:center;color:#64748b;min-width:36px;font-size:12px}.tb-icon-btn{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:24px;height:26px;display:grid}.tb-icon-btn:hover{background:var(--accent-soft);color:var(--accent)}.edit-hint{border:1px dashed var(--accent);background:var(--accent-soft);max-width:210mm;color:var(--accent-ink);border-radius:10px;align-items:center;gap:8px;margin:16px auto -4px;padding:10px 14px;font-size:12.5px;line-height:1.6;display:flex}.edit-hint .icon{font-size:15px}.toast{z-index:50;color:#fff;background:#1e293b;border-radius:10px;padding:10px 18px;font-size:13px;position:fixed;bottom:24px;right:24px;box-shadow:0 10px 30px #0f172a40}.fade-enter-active,.fade-leave-active{transition:opacity .25s,transform .25s}.fade-enter-from,.fade-leave-to{opacity:0;transform:translateY(8px)}.paper-wrap{justify-content:center;padding:28px 20px 0;display:flex}.page{width:210mm;min-height:297mm;font-size:calc(12.9px * var(--font-scale));background:linear-gradient(90deg, var(--accent-deep) 0 66mm, #fff 66mm 100%);-webkit-print-color-adjust:exact;print-color-adjust:exact;grid-template-columns:66mm 1fr;line-height:1.5;display:grid;position:relative;overflow:hidden;box-shadow:0 18px 55px #1926462e}.sidebar{color:#eef1ff;padding:10mm 7mm 6mm;font-size:.93em}.avatar-box{text-align:center;margin-bottom:6mm}.avatar{color:#fff;letter-spacing:2px;background:#ffffff1f;border:2px solid #ffffff8c;border-radius:50%;place-items:center;width:30mm;height:30mm;margin:0 auto;font-size:2.1em;font-weight:600;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.avatar-ops{justify-content:center;gap:6px;margin-top:8px;display:flex}.side-tagline{color:#ffffffc7;margin-top:3mm;font-size:.86em;line-height:1.6}.side-section{margin-bottom:5mm}.side-head{border-bottom:1px solid #ffffff38;align-items:center;gap:8px;margin-bottom:3mm;padding-bottom:2mm;display:flex}.side-head .icon{opacity:.85;font-size:1.05em}.side-head h2{letter-spacing:.12em;color:#fff;margin:0;font-size:1.02em;font-weight:600}.side-title-input{font-size:1.02em;font-weight:600}.contact-list{margin:0;padding:0;list-style:none}.contact-list li{flex-wrap:wrap;align-items:flex-start;gap:9px;margin-bottom:2.4mm;display:flex}.c-icon{background:#ffffff21;border-radius:5px;flex:none;place-items:center;width:20px;height:20px;margin-top:2px;font-size:.82em;display:grid}.c-body{flex:1;min-width:0}.c-body small{letter-spacing:.06em;color:#ffffff8c;font-size:.76em;display:block}.c-value{word-break:break-word;color:#fff;font-size:.88em;display:block}.skill{margin-bottom:2.8mm}.skill-top{align-items:center;gap:6px;margin-bottom:4px;display:flex}.skill-name{flex:1;min-width:0;font-size:.88em}.skill-pct{opacity:.65;font-size:.76em}.skill-track{background:#ffffff2e;border-radius:4px;height:4px;overflow:hidden}.skill-fill{opacity:.92;background:#fff;border-radius:4px;height:100%;transition:width .3s}.skill-range{accent-color:#fff;width:100%;height:12px;margin-top:5px}.side-tags{flex-wrap:wrap;gap:5px;margin-top:5mm;display:flex}.side-tag{color:#ffffffe6;border:1px solid #ffffff4d;border-radius:20px;padding:2px 8px;font-size:.76em}.lang-row{align-items:center;gap:6px;margin-bottom:2.5mm;display:flex}.lang-line{flex:1;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.lang-line strong{font-size:.9em;font-weight:500}.lang-line span{color:#ffffffa6;font-size:.78em}.main{min-width:0;padding:9mm 10mm 5mm}.main-head{margin-bottom:4.5mm}.name-line h1{letter-spacing:.06em;color:#1a2436;margin:0;font-size:2.55em;font-weight:700;line-height:1.15}.role-line{letter-spacing:.1em;color:var(--accent-ink);align-items:center;gap:8px;margin-top:2mm;font-size:1.05em;display:flex}.role-dot{background:var(--accent);border-radius:50%;flex:none;width:6px;height:6px}.head-rule{background:linear-gradient(90deg, var(--accent) 0 18%, #e8ecf5 18% 100%);border-radius:3px;height:3px;margin-top:3mm}.main-section{margin-bottom:4mm}.sec-head{align-items:center;gap:8px;margin-bottom:2.5mm;display:flex}.sec-icon{background:var(--accent-soft);width:24px;height:24px;color:var(--accent);border-radius:7px;flex:none;place-items:center;font-size:.95em;display:grid}.sec-head h2{letter-spacing:.08em;color:#1f2a3d;white-space:nowrap;margin:0;font-size:1.12em;font-weight:700}.sec-line{background:#e5eaf3;flex:1;height:1px;margin-left:4px}.summary{text-align:justify;color:#4a5568;margin:0;font-size:.96em;line-height:1.7}.entry{border-left:2px solid #e9edf6;margin-bottom:3mm;padding-left:3.5mm}.entry.compact{margin-bottom:2.5mm}.entry-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.entry-left{flex:1;min-width:0}.entry h3{color:#22304a;margin:0;font-size:1.06em;font-weight:700}.entry-sub{color:var(--accent-ink);margin-top:1px;font-size:.88em}.entry-right{text-align:right;flex:none;max-width:42%}.period{color:#5a6880;white-space:nowrap;font-size:.84em;font-weight:600}.place{color:#94a3b8;font-size:.8em}.entry-desc{color:#52607a;margin:1.5mm 0 0;font-size:.9em}.bullet-list{color:#4a5568;margin:1.5mm 0 0;padding-left:1.15em;font-size:.92em}.bullet-list li{margin-bottom:.7mm;line-height:1.55}.bullet-list li::marker{color:var(--accent)}.tag-row{flex-wrap:wrap;gap:5px;margin:1.5mm 0 .5mm;display:flex}.tag{background:var(--accent-soft);color:var(--accent-ink);border-radius:4px;padding:1px 8px;font-size:.78em}.award-row{border-bottom:1px dashed #e9edf5;align-items:center;gap:10px;padding:1.5mm 0;display:flex}.award-year{letter-spacing:.04em;color:var(--accent);flex:none;min-width:34px;font-size:.8em;font-weight:700}.award-body{flex-wrap:wrap;flex:1;align-items:baseline;gap:10px;display:flex}.award-body strong{color:#2d3a50;font-size:.95em}.award-org{color:#94a3b8;font-size:.82em}.page-footer{text-align:center;color:#a3aec0;letter-spacing:.05em;border-top:1px solid #e9edf5;margin-top:4mm;padding-top:2mm;font-size:.78em}.edit-input,.edit-area,.mini-select,.mini-btn,.add-btn,.del-entry,.row-del{font-family:inherit}.edit-input,.edit-area{border:1px dashed var(--accent);background:var(--accent-soft);color:#26324a;width:100%;font-size:inherit;border-radius:5px;outline:none;padding:3px 7px;line-height:1.55;transition:border-color .15s,box-shadow .15s}.edit-input:focus,.edit-area:focus{border-style:solid;box-shadow:0 0 0 3px #4f46e51f}.edit-area{resize:vertical;min-height:2.4em}.edit-input::placeholder,.edit-area::placeholder{color:#a5afc4}.edit-input.light,.mini-select.light{color:#fff;background:#ffffff1a;border-color:#ffffff73}.edit-input.light::placeholder{color:#ffffff80}.edit-input.light:focus{border-style:solid;box-shadow:0 0 0 3px #ffffff1f}.edit-input.name-input{letter-spacing:.06em;font-size:2.55em;font-weight:700}.edit-input.role-input{font-size:1.05em}.edit-input.sec-input{max-width:130px;font-size:1.12em;font-weight:700}.edit-input.input-strong{font-size:1.06em;font-weight:700}.edit-input.right{text-align:right}.edit-input.small{font-size:.82em}.edit-input.footer-input{text-align:center}.skill-name.edit-input{min-width:0}.mini-btn,.add-btn,.del-entry{color:#64748b;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #dbe2ee;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:.76em;display:inline-flex}.mini-btn:hover,.add-btn:hover{border-color:var(--accent);color:var(--accent)}.add-btn{margin-top:2mm}.add-btn.light{color:#fff;background:#ffffff1f;border-color:#fff6}.add-btn.light:hover{color:#fff;background:#ffffff38}.del-entry{color:#dc2626;border-color:#fecaca;margin-top:2.5mm}.del-entry:hover{color:#fff;background:#dc2626;border-color:#dc2626}.row-del{width:20px;height:20px;color:inherit;opacity:.55;cursor:pointer;background:0 0;border:0;border-radius:5px;flex:none;place-items:center;padding:0;display:inline-grid}.row-del:hover{opacity:1;color:#fca5a5;background:#dc262626}.row-del .icon{font-size:12px}.mini-select{border-radius:4px;outline:none;width:62px;padding:1px 2px;font-size:.72em}.mini-select option{color:#243044}.list-editor{margin-top:1.5mm}.avatar-ops .mini-btn{font-size:.74em}@media screen and (width<=900px){.toolbar{padding:10px 14px}.tb-actions{gap:6px}.tb-btn{padding:0 8px}.paper-wrap{padding:18px 12px 0}.page{width:100%;min-height:0;font-size:calc(14px * var(--font-scale));background:#fff;grid-template-columns:1fr}.sidebar{background:var(--accent-deep);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;padding:24px 22px;display:grid}.avatar-box{grid-column:1/-1;margin-bottom:0}.side-section{margin-bottom:0}.avatar{width:88px;height:88px;font-size:28px}.main{padding:26px 22px}.edit-hint{margin:14px 12px 0}}@media screen and (width<=560px){.tb-brand-text small,.tb-btn span{display:none}.tb-btn{padding:0 10px}.tb-btn.accent-btn span{display:inline}}@page{size:A4;margin:0}@media print{html,body{background:#fff}.app{padding:0}.no-print,.toolbar,.edit-hint,.toast{display:none!important}.paper-wrap{padding:0;display:block}.page{width:210mm;min-height:297mm;box-shadow:none;border-radius:0;grid-template-columns:66mm 1fr;margin:0;display:grid;overflow:visible}.sidebar{background:0 0}.entry,.main-section,.side-section{break-inside:avoid;page-break-inside:avoid}h1,h2,h3{break-after:avoid;page-break-after:avoid}}
