:root,html[data-theme=light]{--color-bg: #ffffff;--color-bg-elev: #f8fafc;--color-bg-muted: #f1f5f9;--color-border: #e2e8f0;--color-border-subtle: #f1f5f9;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-invert: #ffffff;--color-primary: #0EA5E9;--color-primary-hover: #0284C7;--color-primary-active: #0369A1;--color-primary-soft: rgba(14, 165, 233, .12);--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #6366f1;--shadow-card: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .08);--shadow-modal: 0 10px 15px -3px rgba(15, 23, 42, .1), 0 4px 6px -4px rgba(15, 23, 42, .08);--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 20px;--font-sans: Inter, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", Consolas, monospace;--nav-height: 88px;--footer-height: 72px;--sidebar-width: 280px;--transition-fast: .15s ease;--transition-med: .3s ease}html[data-theme=dark]{--color-bg: #0f172a;--color-bg-elev: #1e293b;--color-bg-muted: #334155;--color-border: #334155;--color-border-subtle: #1e293b;--color-text: #f1f5f9;--color-text-muted: #94a3b8;--color-text-invert: #0f172a;--color-primary: #38BDF8;--color-primary-hover: #0EA5E9;--color-primary-active: #0284C7;--color-primary-soft: rgba(56, 189, 248, .14);--color-success: #34d399;--color-warning: #fbbf24;--color-danger: #f87171;--color-info: #818cf8;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .5);--shadow-modal: 0 20px 25px -5px rgba(0, 0, 0, .55), 0 8px 10px -6px rgba(0, 0, 0, .45)}html[data-theme=tech-blue]{--color-bg: #0B1120;--color-bg-elev: #111a30;--color-bg-muted: #1a2544;--color-border: #1e3058;--color-border-subtle: #162342;--color-text: #ffffff;--color-text-muted: #93a8d4;--color-text-invert: #0B1120;--color-primary: #60A5FA;--color-primary-hover: #3B82F6;--color-primary-active: #2563EB;--color-primary-soft: rgba(96, 165, 250, .15);--color-success: #4ade80;--color-warning: #facc15;--color-danger: #fb7185;--color-info: #a78bfa;--shadow-card: 0 1px 2px rgba(96, 165, 250, .08), 0 2px 8px rgba(0, 0, 0, .5);--shadow-modal: 0 25px 50px -12px rgba(0, 0, 0, .7), 0 0 0 1px rgba(96, 165, 250, .12)}html[data-theme=forest]{--color-bg: #0D1F17;--color-bg-elev: #152e24;--color-bg-muted: #1e3f32;--color-border: #264e3d;--color-border-subtle: #1a3a2c;--color-text: #ecfdf5;--color-text-muted: #86b69f;--color-text-invert: #052e16;--color-primary: #10B981;--color-primary-hover: #059669;--color-primary-active: #047857;--color-primary-soft: rgba(16, 185, 129, .14);--color-success: #34d399;--color-warning: #fbbf24;--color-danger: #f87171;--color-info: #67e8f9;--shadow-card: 0 1px 2px rgba(16, 185, 129, .06), 0 2px 6px rgba(0, 0, 0, .45);--shadow-modal: 0 25px 50px -12px rgba(0, 0, 0, .7), 0 0 0 1px rgba(16, 185, 129, .1)}html[data-theme=warm-orange]{--color-bg: #241612;--color-bg-elev: #2f1f1a;--color-bg-muted: #3e2b24;--color-border: #52392f;--color-border-subtle: #3a2720;--color-text: #fff7ed;--color-text-muted: #c9a48f;--color-text-invert: #2b1409;--color-primary: #F97316;--color-primary-hover: #EA580C;--color-primary-active: #C2410C;--color-primary-soft: rgba(249, 115, 22, .15);--color-success: #4ade80;--color-warning: #fcd34d;--color-danger: #fb7185;--color-info: #93c5fd;--shadow-card: 0 1px 2px rgba(249, 115, 22, .06), 0 2px 6px rgba(0, 0, 0, .45);--shadow-modal: 0 25px 50px -12px rgba(0, 0, 0, .7), 0 0 0 1px rgba(249, 115, 22, .1)}*,*:before,*:after{box-sizing:border-box}:root{--bp-xl: 1440px;--bp-lg: 1200px;--bp-md: 1024px;--bp-sm: 768px;--bp-xs: 560px}html,body{margin:0;padding:0;min-height:100vh;min-height:100dvh;overflow-x:hidden;font-family:var(--font-sans);font-size:16px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit;text-decoration:underline;text-decoration-color:var(--color-border);text-underline-offset:3px;transition:color var(--transition-fast),text-decoration-color var(--transition-fast)}a:hover{color:var(--color-primary);text-decoration-color:var(--color-primary)}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}code,kbd,samp,pre,.url-field,.mono-text{font-family:var(--font-mono);font-size:.92em}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;outline:none}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-muted);border-radius:999px}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px;transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) var(--color-bg-muted)}::selection{background:var(--color-primary-soft);color:var(--color-text)}@media print{@page{size:A4;margin:12mm}html,body{background:#fff!important;color:#000!important;font-size:12pt;line-height:1.5;-webkit-print-color-adjust:exact;print-color-adjust:exact}header.navbar,footer.footer,.no-print,.app-sider,.resume-toolbar{display:none!important}.resume-page{width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;box-shadow:none!important;background:#fff!important;color:#000!important}*,*:before,*:after{box-shadow:none!important;text-shadow:none!important;background-image:none!important}a{text-decoration:none!important;color:#000!important}h1,h2,h3,h4,h5,h6,.resume-section,.resume-block{page-break-after:avoid;break-after:avoid-page}.resume-page,.resume-content{page-break-inside:auto;break-inside:auto}}.menu-item-btn[data-v-a6e95bfb]:hover{background:var(--color-bg-muted)}@media (max-width: 1200px){.navbar-inner[data-v-a6e95bfb]{gap:16px!important}}@media (max-width: 1024px){.navbar-search[data-v-a6e95bfb]{display:none!important}.navbar-actions[data-v-a6e95bfb]{margin-left:auto!important}}@media (max-width: 768px){.brand-subtitle[data-v-a6e95bfb]{display:none!important}.navbar-inner[data-v-a6e95bfb]{gap:8px!important;padding:0 14px!important}}@media (max-width: 640px){.nav-label[data-v-a6e95bfb]{display:none!important}.navbar-nav[data-v-a6e95bfb]{gap:0!important}.navbar-nav[data-v-a6e95bfb] :is(a,button){padding:8px 10px!important}}.group-sidebar[data-v-0ac5b7e9]{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);position:sticky;top:calc(var(--nav-height) + 16px)}.group-item[data-v-0ac5b7e9]:hover,.icon-btn[data-v-0ac5b7e9]:hover{background:var(--color-bg-muted)}.create-btn[data-v-0ac5b7e9]:hover{background:var(--color-primary);color:#fff}@media (max-width: 820px){.group-sidebar[data-v-0ac5b7e9]{width:100%;flex:1 1 auto;position:static}}.nav-card[data-v-1d5ba9cb]:hover{transform:translateY(-2px);box-shadow:var(--shadow-modal);border-color:color-mix(in srgb,var(--color-primary) 50%,var(--color-border))}.nav-card-locked[data-v-1d5ba9cb]{filter:saturate(.6)}.hover-icon-btn[data-v-1d5ba9cb]{background:var(--color-bg-muted);color:var(--color-text-muted);border-radius:6px;width:26px;height:26px;display:inline-grid;place-items:center;transition:all var(--transition-fast)}.hover-icon-btn[data-v-1d5ba9cb]:hover{background:var(--color-primary-soft);color:var(--color-primary)}.ml-2[data-v-5a08bdc7]{margin-left:8px}@media (max-width: 820px){.homenav-layout[data-v-5a08bdc7]{flex-direction:column}}.memo-card[data-v-c68f8757]:hover{transform:translateY(-2px);box-shadow:var(--shadow-modal);border-color:color-mix(in srgb,var(--color-primary) 40%,var(--color-border))}.tag-pill[data-v-c68f8757]{padding:1px 8px;border-radius:999px;font-size:11px;border:1px solid;font-weight:500}.tag-cloud button[data-v-2ce87add]:hover{transform:translateY(-1px);filter:brightness(1.05)}.memo-editor[data-v-e1adf517]{width:420px;flex:0 0 420px;position:sticky;top:calc(var(--nav-height) + 16px);max-height:calc(100vh - var(--nav-height) - 40px);max-height:calc(100dvh - var(--nav-height) - 40px);overflow:auto}@media (max-width: 1280px){.memo-editor[data-v-e1adf517]{width:360px;flex:0 0 360px}}@media (max-width: 1080px){.memo-layout[data-v-e1adf517]{flex-direction:column}.memo-editor[data-v-e1adf517]{width:100%;flex:1 1 auto;position:static;max-height:none;overflow:visible}}.blog-card[data-v-98c888b5]:hover{transform:translateY(-2px);box-shadow:var(--shadow-modal)}.hot-item[data-v-b094fe8b]:hover{background:var(--color-bg-muted)}.blog-layout[data-v-b094fe8b]{grid-template-columns:260px 1fr 280px}@media (max-width: 1100px){.blog-layout[data-v-b094fe8b]{grid-template-columns:240px 1fr}.blog-right[data-v-b094fe8b]{display:none}}@media (max-width: 820px){.blog-layout[data-v-b094fe8b]{grid-template-columns:1fr}.blog-left[data-v-b094fe8b]{position:static}}.comment-pending[data-v-c002ec60]{opacity:.72}.nav-btn[data-v-c002ec60]:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card)}.add-btn[data-v-b5ce16fa]:hover{background:var(--color-primary-soft);color:var(--color-primary);border-color:var(--color-primary)}.fade-enter-active[data-v-b5ce16fa],.fade-leave-active[data-v-b5ce16fa]{transition:opacity .2s}.fade-enter-from[data-v-b5ce16fa],.fade-leave-to[data-v-b5ce16fa]{opacity:0;transform:translateY(-3px)}.row-has-warning[data-v-b5ce16fa]{border-color:color-mix(in srgb,var(--color-danger) 50%,var(--color-border))}.resume-layout[data-v-b5ce16fa]{grid-template-columns:minmax(0,1.1fr) minmax(480px,.9fr)}.resume-preview[data-v-b5ce16fa]{min-height:900px}.resume-grid-2[data-v-b5ce16fa]{grid-template-columns:1fr 1fr}.resume-grid-3[data-v-b5ce16fa]{grid-template-columns:1fr 1fr 1fr}@media (max-width: 1100px){.resume-layout[data-v-b5ce16fa]{grid-template-columns:1fr}.resume-preview[data-v-b5ce16fa]{min-height:auto}}@media (max-width: 640px){.resume-grid-2[data-v-b5ce16fa],.resume-grid-3[data-v-b5ce16fa]{grid-template-columns:1fr}}.row-hover[data-v-ea0d3d25]:hover{background:color-mix(in srgb,var(--color-primary) 5%,transparent)}.row-btn[data-v-ea0d3d25]{padding:5px 7px;border-radius:6px;display:inline-grid;place-items:center;transition:background var(--transition-fast)}.row-btn[data-v-ea0d3d25]:hover{background:var(--color-bg-muted)}.theme-option[data-v-c8990385]{display:inline-flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);border:1px solid var(--color-border);color:var(--color-text);transition:all var(--transition-fast);font-size:13px;text-align:left;width:100%}.theme-option[data-v-c8990385]:hover{border-color:var(--color-primary);transform:translate(1px)}.swatch[data-v-c8990385]{width:20px;height:20px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;flex:0 0 20px}.text-col[data-v-c8990385]{flex:1;display:inline-flex;flex-direction:column;line-height:1.3}.label[data-v-c8990385]{font-weight:600}.desc[data-v-c8990385]{font-size:11px;color:var(--color-text-muted)}.danger-btn[data-v-124481f3]:hover{filter:brightness(1.03)}.profile-layout[data-v-124481f3]{grid-template-columns:minmax(0,1fr) 340px}.form-grid-2[data-v-124481f3]{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 900px){.profile-layout[data-v-124481f3]{grid-template-columns:1fr}}@media (max-width: 640px){.form-grid-2[data-v-124481f3]{grid-template-columns:1fr}}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;-webkit-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#29d;border-left-color:#29d;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .spinner,.nprogress-custom-parent #nprogress .bar{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
