:root{--bg:#f6f4f0;--bg-deep:#efebe4;--surface:#fff;--surface-soft:#fbf9f6;--surface-sink:#f3f0ea;--ink:#211f1c;--ink-2:#625d55;--ink-3:#948e84;--ink-inverse:#fbfaf8;--line:#e8e3da;--line-strong:#d9d2c6;--accent:#2f6b5e;--accent-ink:#1f4a40;--accent-soft:#e6efeb;--accent-line:#c3d8d1;--warn:#a9673a;--warn-soft:#f8ede3;--danger:#a8423a;--danger-soft:#f8e8e6;--ok:#4a7c3f;--ok-soft:#ecf3e7;--r-lg:20px;--r-md:13px;--r-sm:9px;--r-pill:999px;--shadow-sm:0 1px 2px #211f1c0d;--shadow-md:0 2px 4px #211f1c0a, 0 14px 34px -10px #211f1c1f;--shadow-lg:0 24px 64px -18px #211f1c38;--font:"PingFang SC", "HarmonyOS Sans SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", "Noto Sans SC", "Source Han Sans SC", "WenQuanYi Micro Hei", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", "JetBrains Mono", "Consolas", "Liberation Mono", monospace;--sidebar-w:248px;--content-max:1160px;--ease:cubic-bezier(.32, .72, 0, 1)}*,:after,:before{box-sizing:border-box}#__nuxt,body,html{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px;line-height:1.7}blockquote,body,dd,dl,figure,h1,h2,h3,h4,ol,p,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;padding:0}img,svg{max-width:100%;display:block}::selection{background:var(--accent-soft);color:var(--accent-ink)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--bg);border-radius:var(--r-pill)}::-webkit-scrollbar-track{background:0 0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card--pad{padding:22px 24px}.muted{color:var(--ink-3)}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-size:12.5px}.stack{flex-direction:column;gap:18px}.row,.stack{display:flex}.row{align-items:center;gap:10px}.spacer{flex:1}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.badge,.btn,.sr-only{white-space:nowrap}.btn{border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--surface);height:36px;color:var(--ink);transition:background .16s var(--ease),border-color .16s var(--ease),color .16s var(--ease),transform .16s var(--ease);justify-content:center;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--surface-soft);border-color:var(--ink-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;pointer-events:none}.btn svg{width:16px;height:16px}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--ink-inverse)}.btn--primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}.btn--ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--surface-sink);color:var(--ink);border-color:#0000}.btn--danger{color:var(--danger);border-color:var(--danger-soft);background:var(--danger-soft)}.btn--danger:hover{color:var(--danger);background:#f4dcd9;border-color:#eecfcb}.btn--sm{border-radius:7px;height:30px;padding:0 10px;font-size:12.5px}.btn--icon{width:34px;height:34px;color:var(--ink-3);background:0 0;border-color:#0000;padding:0}.btn--icon:hover{background:var(--surface-sink);color:var(--ink);border-color:#0000}.field{flex-direction:column;gap:7px;display:flex}.field__label{color:var(--ink-2);letter-spacing:.01em;font-size:12.5px;font-weight:500}.field__hint{color:var(--ink-3);font-size:12px;line-height:1.6}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);width:100%;transition:border-color .16s var(--ease),box-shadow .16s var(--ease);appearance:none;padding:9px 12px;font-size:13.5px;line-height:1.6}.input::-moz-placeholder{color:var(--ink-3)}.select::-moz-placeholder{color:var(--ink-3)}.textarea::-moz-placeholder{color:var(--ink-3)}.input::placeholder,.select::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-sink);color:var(--ink-3)}.textarea{resize:vertical;min-height:120px}.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23948e84' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.badge{border-radius:var(--r-pill);letter-spacing:.01em;background:var(--surface-sink);height:23px;color:var(--ink-2);align-items:center;gap:5px;padding:0 9px;font-size:11.5px;font-weight:500;display:inline-flex}.badge--public{background:var(--ok-soft);color:var(--ok)}.badge--private{background:var(--warn-soft);color:var(--warn)}.badge--login{background:var(--accent-soft);color:var(--accent-ink)}.empty{text-align:center;color:var(--ink-3);flex-direction:column;align-items:center;gap:12px;padding:64px 24px;display:flex}.empty strong{color:var(--ink-2);font-size:14px;font-weight:500}.empty p{max-width:320px;font-size:13px;line-height:1.7}.skeleton{background:linear-gradient(90deg,var(--surface-sink) 25%,#f8f5f0 37%,var(--surface-sink) 63%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.4s infinite skeleton}@keyframes skeleton{0%{background-position:100%}to{background-position:0}}.page-enter-active,.page-leave-active{transition:opacity .18s var(--ease),transform .18s var(--ease)}.page-enter-from{opacity:0;transform:translateY(6px)}.page-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important}}.toasts[data-v-b4266161]{z-index:90;pointer-events:none;flex-direction:column;position:fixed;bottom:22px;right:22px}.toast[data-v-b4266161],.toasts[data-v-b4266161]{gap:9px;display:flex}.toast[data-v-b4266161]{border:1px solid var(--line);background:var(--surface);max-width:340px;box-shadow:var(--shadow-md);color:var(--ink);text-align:left;pointer-events:auto;cursor:pointer;border-radius:12px;align-items:center;padding:10px 14px;font-size:12.5px}.toast span[data-v-b4266161]{line-height:1.6}.toast--success svg[data-v-b4266161]{color:var(--ok)}.toast--error[data-v-b4266161]{background:#fdf6f5;border-color:#eecfcb}.toast--error svg[data-v-b4266161]{color:var(--danger)}.toast--info svg[data-v-b4266161]{color:var(--accent)}.toast-enter-active[data-v-b4266161],.toast-leave-active[data-v-b4266161]{transition:opacity .22s var(--ease),transform .22s var(--ease)}.toast-enter-from[data-v-b4266161]{opacity:0;transform:translateY(10px)scale(.98)}.toast-leave-to[data-v-b4266161]{opacity:0;transform:translate(12px)}
