:root { font-family: "Microsoft YaHei", "PingFang SC", Arial, sans-serif; color: #171717; background: #f5f5f3; font-synthesis: none; }
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: #f5f5f3; }
button, .file-button { font: inherit; cursor: pointer; border: 1px solid #d8d8d5; background: #fff; color: #202020; border-radius: 5px; padding: 9px 11px; transition: border-color .15s, background .15s; }
button:hover, .file-button:hover { border-color: #222; }
button.primary { background: #171717; color: #fff; border-color: #171717; }
.app-header { height: 62px; display: flex; justify-content: space-between; align-items: center; padding: 0 20px; border-bottom: 1px solid #dededb; background: #fff; position: sticky; top: 0; z-index: 3; }
.app-header > div:first-child { display: flex; align-items: center; gap: 9px; }.brand-mark { display: grid; place-items: center; width: 26px; height: 26px; border: 1px solid #222; font-weight: 700; }.app-header small { color: #777; margin-left: 5px; }.header-actions { display: flex; gap: 8px; }
.workspace { display: grid; grid-template-columns: 220px minmax(330px, .82fr) minmax(480px, 1.18fr); min-height: calc(100vh - 62px); }
.sidebar, .editor-panel, .preview-panel { min-width: 0; }.sidebar { padding: 20px 14px; background: #fafaf9; border-right: 1px solid #dededb; }.sidebar button, .file-button { display: block; width: 100%; text-align: left; margin-top: 8px; }.sidebar-title { text-transform: uppercase; letter-spacing: .08em; font-size: 11px; color: #737373; font-weight: 700; }.sidebar hr { border: 0; border-top: 1px solid #e0e0dd; margin: 22px 0; }.template-choice { display: flex !important; flex-direction: column; gap: 3px; }.template-choice span { font-size: 12px; color: #747474; }.template-choice.selected { border-color: #181818; background: #efefed; }.sidebar nav { display: grid; gap: 12px; margin-top: 13px; }.sidebar a { color: #444; font-size: 13px; text-decoration: none; }.local-note { color: #777; font-size: 12px; line-height: 1.5; margin-top: 30px; }
.editor-panel { display: flex; flex-direction: column; background: #fff; border-right: 1px solid #dededb; }.panel-title { height: 50px; padding: 0 16px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid #e5e5e2; font-size: 13px; font-weight: 700; }.panel-title span:last-child { color: #777; font-size: 12px; font-weight: 400; }.status-dot::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 6px; background: #333; border-radius: 50%; }
#editor { flex: 1; width: 100%; min-height: 560px; border: 0; resize: none; padding: 20px; font: 13px/1.7 "SFMono-Regular", Consolas, monospace; color: #252525; outline: 0; background: #fff; }.editor-help { border-top: 1px solid #e5e5e2; padding: 13px 16px; font-size: 12px; color: #666; display: flex; flex-wrap: wrap; gap: 7px; }.editor-help b { width: 100%; color: #333; }.editor-help code { background: #f3f3f1; padding: 2px 4px; }.parse-error { margin: 0 16px 12px; padding: 10px; background: #fff; border: 1px solid #999; font-size: 12px; color: #333; }
.preview-panel { background: #f5f5f3; }.preview-canvas { padding: 30px; min-height: calc(100vh - 112px); overflow: auto; }.resume-paper { width: min(100%, 794px); min-height: 1123px; margin: 0 auto; padding: 66px 70px 58px; background: #fff; color: #1b1b1b; font-family: Arial, "Microsoft YaHei", sans-serif; font-size: 12px; line-height: 1.65; position: relative; overflow: hidden; }.resume-header { border-bottom: 1px solid #202020; padding-bottom: 14px; margin-bottom: 20px; }.resume-header h1 { margin: 0 0 8px; font-size: 30px; letter-spacing: .04em; line-height: 1.1; }.resume-header p { margin: 0; color: #4f4f4f; }.dot { padding: 0 7px; color: #999; }.resume-section { margin: 0 0 19px; break-inside: avoid; }.resume-section h3 { font-size: 13px; letter-spacing: .08em; margin: 0 0 10px; padding-bottom: 5px; border-bottom: 1px solid #c9c9c5; }.resume-section p { margin: 0; white-space: break-spaces; }.resume-item { margin: 0 0 12px; break-inside: avoid; }.resume-item h4 { margin: 0 0 4px; font-size: 12px; }.resume-item ul { margin: 4px 0 0; padding-left: 16px; }.resume-item li { margin-bottom: 2px; }.resume-paper a { color: inherit; text-decoration: underline; text-decoration-color: #aaa; }.empty-section { color: #898989; }.resume-paper footer { position: absolute; bottom: 26px; left: 70px; right: 70px; border-top: 1px solid #ddd; padding-top: 7px; color: #777; font-size: 10px; }.page-number::after { content: "1"; }
.table-wrap { overflow: hidden; margin: 8px 0 12px; border: 1px solid #cfcfcb; break-inside: avoid; }.resume-paper table { width: 100%; border-collapse: collapse; font-size: 11px; }.resume-paper th, .resume-paper td { padding: 6px 8px; text-align: left; vertical-align: top; border-right: 1px solid #d8d8d5; border-bottom: 1px solid #d8d8d5; }.resume-paper th:last-child, .resume-paper td:last-child { border-right: 0; }.resume-paper tr:last-child td { border-bottom: 0; }.resume-paper th { background: #f1f1ef; font-weight: 700; }.resume-paper .align-center { text-align: center; }.resume-paper .align-right { text-align: right; }.resume-rule { border: 0; border-top: 1px solid #d8d8d5; margin: 14px 0; }
.dated-line { display: flex; align-items: baseline; gap: 16px; width: 100%; margin-top: 3px; }.dated-title { min-width: 0; }.dated-date { margin-left: auto; flex: none; white-space: nowrap; text-align: right; }.resume-paper p.dated-detail { margin: 2px 0 7px; }
.two-column { display: grid; grid-template-columns: 31% 1fr; gap: 28px; }.two-column aside { border-right: 1px solid #d1d1ce; padding-right: 22px; }.compact-paper { padding-left: 58px; padding-right: 58px; }.compact-paper footer { left: 58px; right: 58px; }.modern-paper { padding-top: 80px; }.modern-paper .resume-header { border-bottom: 0; }.modern-paper .resume-section h3 { border-bottom: 0; padding-bottom: 0; font-size: 12px; }.modern-paper .resume-section { margin-bottom: 25px; }
dialog { width: min(800px, 92vw); border: 1px solid #aaa; padding: 0; background: #fff; color: #222; } dialog form { padding: 22px; } dialog h2 { margin: 0 0 8px; } dialog p { color: #666; font-size: 13px; } #import-text { display: block; width: 100%; height: 330px; margin: 16px 0; border: 1px solid #ccc; padding: 12px; resize: vertical; font: 13px/1.6 Consolas, monospace; } dialog menu { padding: 0; margin: 0; display: flex; justify-content: flex-end; gap: 8px; }
@media (max-width: 1080px) { .workspace { grid-template-columns: 190px 1fr; }.preview-panel { grid-column: 1 / -1; border-top: 1px solid #dededb; }.preview-canvas { min-height: auto; }.resume-paper { max-width: 794px; } }
@media (max-width: 700px) { .app-header { padding: 0 12px; }.app-header small, .header-actions button:first-child { display: none; }.workspace { display: block; }.sidebar { border-right: 0; border-bottom: 1px solid #dededb; }.sidebar > button, .sidebar .file-button, .sidebar hr, .sidebar nav, .local-note { display: none; }.templates { display: flex; gap: 7px; }.template-choice { flex: 1; margin: 9px 0 0 !important; padding: 8px; }.editor-panel { height: 55vh; border-right: 0; }.preview-canvas { padding: 15px 0; }.resume-paper { width: 100%; min-height: auto; padding: 42px 28px 58px; }.resume-paper footer { left: 28px; right: 28px; }.two-column { grid-template-columns: 1fr; gap: 0; }.two-column aside { border-right: 0; padding-right: 0; } }
.resume-paper strong { font-weight: 700; }
.resume-paper em { font-style: italic; }
.resume-paper s { color: #777; }
.resume-paper code { padding: 1px 3px; border: 1px solid #d8d8d5; font: 10px/1.4 Consolas, monospace; white-space: nowrap; }.markdown-spaces, .markdown-tab { white-space: pre; }

.resume-header { display: flex; align-items: flex-start; gap: 18px; }
.resume-header .header-text { flex: 1; min-width: 0; }
.resume-photo { width: 1px; height: 1px; object-fit: cover; border: 1px solid #e2e2df; flex: none; }
.resume-document { display: grid; gap: 28px; }.resume-page { height: 1123px; min-height: 1123px; display: flex; flex-direction: column; }.resume-page .page-body { flex: 1; min-height: 0; overflow: hidden; }.resume-page .resume-section:last-child { margin-bottom: 0; }
.page-number::after { content: none; }.resume-page footer { position: static; flex: none; margin-top: 12px; }

@media print { @page { size: A4; margin: 0; } body { background: #fff; }.app-header, .sidebar, .editor-panel, .preview-panel > .panel-title { display: none !important; }.workspace, .preview-panel { display: block; min-height: 0; }.preview-canvas { padding: 0; overflow: visible; }.resume-document { display: block; }.resume-page { width: 210mm; height: 297mm; min-height: 297mm; margin: 0; padding: 17mm 18mm; break-after: page; page-break-after: always; }.resume-page:last-child { break-after: auto; page-break-after: auto; }.resume-page .page-body { overflow: hidden; } }
