.nav[data-v-a0924064]{z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#faf9f6e0;position:sticky;top:0}.nav-inner[data-v-a0924064]{max-width:var(--max-w);height:var(--nav-h);align-items:center;gap:24px;margin:0 auto;padding:0 24px;display:flex}.brand[data-v-a0924064]{align-items:center;gap:10px;display:flex}.brand-mark[data-v-a0924064]{background:var(--accent);border-radius:3px;width:10px;height:10px}.brand-name[data-v-a0924064]{font-size:1.25rem;font-weight:700}.nav-links[data-v-a0924064]{flex:1;gap:4px;display:flex}.nav-link[data-v-a0924064]{color:var(--ink-2);border-radius:8px;padding:7px 12px;font-size:.95rem;transition:color .15s,background .15s}.nav-link[data-v-a0924064]:hover{color:var(--ink);background:#0000000a}.nav-link.active[data-v-a0924064]{color:var(--accent);font-weight:600}.nav-search[data-v-a0924064]{background:var(--surface);border:1px solid var(--line-2);width:190px;color:var(--ink-3);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;display:flex}.nav-search input[data-v-a0924064]{width:100%;font-family:var(--font);color:var(--ink);background:0 0;border:none;outline:none;font-size:.88rem}.nav-actions[data-v-a0924064]{align-items:center;gap:10px;display:flex}.user-menu-wrap[data-v-a0924064]{position:relative}.user-chip[data-v-a0924064]{color:var(--ink-2);cursor:pointer;background:0 0;border:none;border-radius:999px;align-items:center;gap:8px;padding:5px 10px;font-size:.9rem;transition:background .15s,color .15s;display:flex}.user-chip[data-v-a0924064]:hover{color:var(--ink);background:#0000000a}.caret[data-v-a0924064]{transition:transform .15s}.caret.up[data-v-a0924064]{transform:rotate(180deg)}.avatar-sm[data-v-a0924064]{background:var(--accent-dim);width:28px;height:28px;color:var(--accent);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.user-name[data-v-a0924064]{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.user-menu[data-v-a0924064]{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);min-width:168px;box-shadow:var(--shadow-md);z-index:60;padding:6px;position:absolute;top:calc(100% + 10px);right:0}.um-item[data-v-a0924064]{color:var(--ink);border-radius:8px;padding:9px 12px;font-size:.9rem;display:block}.um-item[data-v-a0924064]:hover{background:var(--accent-dim);color:var(--accent)}.um-logout[data-v-a0924064]{border-top:1px solid var(--line);color:var(--ink-2);margin-top:4px;padding-top:11px}.um-logout[data-v-a0924064]:hover{color:var(--danger)}.menu-btn[data-v-a0924064]{cursor:pointer;color:var(--ink);background:0 0;border:none;border-radius:8px;padding:4px 8px;font-size:1.5rem;display:none}.menu-btn[data-v-a0924064]:hover{background:#0000000a}.mobile-menu[data-v-a0924064]{border-bottom:1px solid var(--line);background:var(--bg);flex-direction:column;gap:4px;padding:10px 16px 16px;display:flex}.mobile-menu a[data-v-a0924064]{color:var(--ink-2);border-radius:8px;padding:10px 12px}.mobile-menu a[data-v-a0924064]:hover{color:var(--ink);background:#0000000a}@media (width<=900px){.nav-links[data-v-a0924064],.nav-search[data-v-a0924064]{display:none}.menu-btn[data-v-a0924064]{display:block}.nav-actions[data-v-a0924064]{margin-left:auto}}@media (width<=560px){.user-name[data-v-a0924064]{display:none}.nav-inner[data-v-a0924064]{gap:12px;padding:0 16px}}.brand[data-v-11a33eb5]{align-items:center;gap:10px;display:flex}.brand-mark[data-v-11a33eb5]{background:var(--accent);border-radius:3px;width:10px;height:10px}.brand-name[data-v-11a33eb5]{font-size:1.2rem;font-weight:700}.app[data-v-0b7f2824]{flex-direction:column;min-height:100vh;display:flex}.main[data-v-0b7f2824]{flex:1}.page-enter-active[data-v-0b7f2824]{transition:opacity .2s,transform .2s}.page-leave-active[data-v-0b7f2824]{transition:opacity .12s}.page-enter-from[data-v-0b7f2824]{opacity:0;transform:translateY(8px)}.page-leave-to[data-v-0b7f2824]{opacity:0}:root{--bg:#faf9f6;--surface:#fff;--ink:#232019;--ink-2:#5c574f;--ink-3:#928b80;--line:#e8e5df;--line-2:#d9d5cc;--accent:#b03a30;--accent-hi:#c94a3e;--accent-dim:#b03a300f;--danger:#b03a30;--ok:#2e7d4f;--ok-dim:#2e7d4f14;--warn:#a06d1c;--warn-dim:#a06d1c14;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 16px #0000000f, 0 1px 3px #0000000a;--r:12px;--r-sm:8px;--font:"PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", "Cascadia Mono", Consolas, monospace;--max-w:1200px;--nav-h:64px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased}body{font-family:var(--font);color:var(--ink);background:var(--bg);font-size:16px;line-height:1.8}::selection{background:var(--accent);color:#fff}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line-2);border:3px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit;text-decoration:none}button{font-family:inherit}img{max-width:100%;display:block}.mono{font-family:var(--font-mono)}.muted{color:var(--ink-3)}.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}.container-narrow{max-width:760px;margin:0 auto;padding:0 24px}.btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:8px 20px;font-size:.92rem;font-weight:600;transition:background .15s,color .15s,border-color .15s,opacity .15s;display:inline-flex}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hi)}.btn-ghost{color:var(--ink-2);border-color:var(--line-2);background:0 0}.btn-ghost:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.btn-danger{color:var(--danger);background:0 0;border-color:#b03a3066}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn-sm{border-radius:8px;min-height:32px;padding:4px 14px;font-size:.85rem}.btn:disabled{opacity:.5;cursor:not-allowed}.field{margin-bottom:16px}.field label{color:var(--ink-2);margin-bottom:6px;font-size:.88rem;font-weight:600;display:block}.field label .req{color:var(--accent)}.input,.select,.textarea{width:100%;font-family:var(--font);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:10px;padding:10px 14px;font-size:.95rem}.select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--ink-3) 50%), linear-gradient(135deg, var(--ink-3) 50%, transparent 50%);background-position:calc(100% - 18px),calc(100% - 13px);background-repeat:no-repeat;background-size:5px 5px;padding-right:34px}.textarea{resize:vertical;min-height:120px;line-height:1.7}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:none}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.check{color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;font-size:.92rem;display:inline-flex}.check input{width:17px;height:17px;accent-color:var(--accent);cursor:pointer}.tag{color:var(--ink-2);background:var(--bg);border:1px solid var(--line-2);border-radius:999px;padding:2px 12px;font-size:.82rem;transition:color .15s,border-color .15s;display:inline-block}.tag:hover{color:var(--accent);border-color:var(--accent)}.pill{border-radius:999px;padding:2px 11px;font-size:.78rem;font-weight:600;display:inline-block}.pill-cat{color:var(--accent);background:var(--accent-dim)}.pill-pin{color:var(--warn);background:var(--warn-dim)}.pill-ann{color:var(--accent);background:var(--accent-dim);border:1px solid #b03a304d}.pill-ok{color:var(--ok);background:var(--ok-dim)}.pill-muted{color:var(--ink-3);background:#0000000a}.msg{border-radius:var(--r-sm);margin-top:12px;padding:10px 14px;font-size:.9rem}.msg-ok{background:var(--ok-dim);color:var(--ok)}.msg-err{background:var(--accent-dim);color:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:24px 26px;transition:box-shadow .2s,border-color .2s,transform .2s}.card:hover{box-shadow:var(--shadow-md);border-color:var(--line-2);transform:translateY(-1px)}.card-meta{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:12px;font-size:.84rem;display:flex}.card-meta .dot{background:var(--line-2);border-radius:50%;width:3px;height:3px}.card-title{margin-top:10px;font-size:1.28rem;font-weight:700;line-height:1.5}.card-title a:hover{color:var(--accent)}.card-excerpt{color:var(--ink-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:.97rem;display:-webkit-box;overflow:hidden}.card-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;display:flex}.card-tags{flex-wrap:wrap;gap:8px;display:flex}.card-read{color:var(--accent);white-space:nowrap;font-size:.88rem;font-weight:600}.card-read:hover{text-decoration:underline}.featured{position:relative;overflow:hidden}.featured:before{content:"";background:var(--accent);height:3px;position:absolute;top:0;left:0;right:0}.featured .card-title{font-size:1.5rem}.empty{text-align:center;color:var(--ink-3);padding:64px 0}.empty .btn{margin-top:14px}.loading{text-align:center;color:var(--ink-3);padding:48px 0}.pagination{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:30px;display:flex}.pg-btn{min-width:40px;height:40px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line-2);cursor:pointer;border-radius:10px;place-items:center;font-size:.92rem;transition:color .15s,border-color .15s,background .15s;display:grid}.pg-btn:hover:not(:disabled):not(.active){color:var(--accent);border-color:var(--accent)}.pg-btn.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.pg-btn:disabled{opacity:.35;cursor:not-allowed}.widget{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:18px 20px}.widget h3{border-bottom:1px solid var(--line);margin-bottom:10px;padding-bottom:10px;font-size:.98rem;font-weight:700}.wd-item{color:var(--ink-2);border-radius:8px;padding:7px 4px;font-size:.92rem;transition:color .15s,background .15s;display:block}.wd-item:hover{color:var(--accent);background:var(--accent-dim)}.wd-item .cnt{color:var(--ink-3);float:right;font-size:.78rem}.wd-link{color:var(--ink);border-bottom:1px solid var(--line);padding:7px 2px;font-size:.9rem;font-weight:500;line-height:1.5;transition:color .15s;display:block}.wd-link:last-child{border-bottom:none}.wd-link:hover{color:var(--accent)}.wd-link .views{color:var(--ink-3);font-size:.76rem;font-weight:400;display:block}.wd-tags{flex-wrap:wrap;gap:8px;display:flex}.content{color:var(--ink);word-wrap:break-word;font-size:1.02rem;line-height:2}.content p{margin:0 0 1.3em}.content h1,.content h2{border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--nav-h) + 20px);margin:2.2em 0 .9em;padding-bottom:.5em;font-size:1.35rem;font-weight:700;line-height:1.5}.content h3,.content h4{scroll-margin-top:calc(var(--nav-h) + 20px);margin:1.8em 0 .7em;font-size:1.15rem;font-weight:700}.content ul,.content ol{margin:0 0 1.3em;padding-left:1.6em}.content li{margin-bottom:.4em}.content li::marker{color:var(--accent)}.content strong{font-weight:700}.content a{color:var(--accent);font-weight:500}.content a:hover{text-decoration:underline}.content blockquote{border-left:3px solid var(--accent);background:var(--accent-dim);color:var(--ink-2);margin:1.6em 0;padding:14px 20px;font-size:.98em}.content code{font-family:var(--font-mono);color:var(--accent);background:#0000000d;border-radius:6px;padding:2px 7px;font-size:.88em}.content pre{color:#e9e4da;border-radius:var(--r);font-family:var(--font-mono);background:#232019;margin:1.6em 0;padding:20px 22px;font-size:.88rem;line-height:1.8;overflow-x:auto}.content pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.content img{border-radius:var(--r);max-width:100%;margin:1.6em auto;display:block}.content table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:.95em}.content th,.content td{border:1px solid var(--line-2);text-align:left;padding:10px 14px}.content th{background:var(--bg);font-weight:700}.content hr{border:none;border-top:1px solid var(--line);margin:2.4em 0}.comment-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);margin-bottom:22px;padding:22px 24px}.cf-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.cf-actions{justify-content:flex-end;align-items:center;gap:12px;margin-top:14px;display:flex}.comment{border-bottom:1px solid var(--line);gap:14px;padding:18px 4px;display:flex}.comment:last-child{border-bottom:none}.avatar{background:var(--accent-dim);width:38px;height:38px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:.92rem;font-weight:700;display:grid}.c-main{flex:1;min-width:0}.c-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.c-name{font-size:.95rem;font-weight:700}.c-time{color:var(--ink-3);font-size:.8rem}.c-body{color:var(--ink-2);word-break:break-word;white-space:pre-wrap;margin-top:4px;font-size:.95rem}.c-reply{color:var(--ink-3);cursor:pointer;background:0 0;border:none;margin-top:6px;padding:0;font-size:.82rem;display:inline-block}.c-reply:hover{color:var(--accent)}.reply-inline{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);margin-top:10px;padding:12px 14px}.reply-inline .field{margin-bottom:10px}.reply-actions{justify-content:flex-end;gap:10px;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px 22px;display:flex}.panel-head h2{font-size:1.1rem;font-weight:700}.panel-body{padding:20px 22px}.admin-table{border-collapse:collapse;width:100%;font-size:.92rem}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px}.admin-table th{color:var(--ink-3);background:var(--bg);font-size:.82rem;font-weight:600}.admin-table tr:last-child td{border-bottom:none}.admin-table .ops{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.op-link{color:var(--ink-2);cursor:pointer;background:0 0;border:none;padding:0;font-size:.88rem}.op-link:hover{color:var(--accent)}.op-link.danger{color:var(--danger)}.op-link.danger:hover{text-decoration:underline}.status-dot{border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}.status-dot.published{background:var(--ok)}.status-dot.private{background:var(--accent)}.status-dot.draft{background:var(--ink-3)}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.filter-btn{color:var(--ink-2);background:var(--surface);border:1px solid var(--line-2);cursor:pointer;border-radius:999px;padding:6px 16px;font-size:.9rem;transition:color .15s,border-color .15s,background .15s}.filter-btn:hover{color:var(--accent);border-color:var(--accent)}.filter-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.foot{border-top:1px solid var(--line);background:var(--surface);margin-top:20px}.foot-inner{max-width:var(--max-w);grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;margin:0 auto;padding:36px 24px 20px;display:grid}.foot-brand p{color:var(--ink-3);max-width:260px;margin-top:8px;font-size:.88rem}.foot-col h4{margin-bottom:10px;font-size:.92rem;font-weight:700}.foot-col a{color:var(--ink-2);padding:3px 0;font-size:.88rem;transition:color .15s;display:block}.foot-col a:hover{color:var(--accent)}.foot-bottom{max-width:var(--max-w);border-top:1px solid var(--line);color:var(--ink-3);flex-wrap:wrap;justify-content:space-between;gap:12px;margin:0 auto;padding:18px 24px 26px;font-size:.82rem;display:flex}@media (width<=980px){.foot-inner{grid-template-columns:1fr 1fr}}@media (width<=760px){.container,.container-narrow{padding:0 16px}.card{padding:20px}.cf-row{grid-template-columns:1fr}.comment-form{padding:18px 16px}.foot-inner{grid-template-columns:1fr 1fr;padding:30px 16px 16px}.panel-body{padding:16px}.admin-table{display:block;overflow-x:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
