.profile-modal[data-v-88b087fb]{width:min(440px,94vw);display:grid;gap:.85rem}.head[data-v-88b087fb]{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.head h3[data-v-88b087fb]{margin:0}.avatar-row[data-v-88b087fb]{display:flex;gap:.85rem;align-items:center}.preview[data-v-88b087fb]{width:64px;height:64px;border:1px solid var(--line);background:#0f6e561a;color:var(--accent);display:grid;place-items:center;font-size:1.4rem;font-weight:700;overflow:hidden;flex-shrink:0}.preview img[data-v-88b087fb]{width:100%;height:100%;object-fit:cover}.avatar-actions[data-v-88b087fb]{display:flex;flex-wrap:wrap;gap:.45rem}.file-btn[data-v-88b087fb]{display:inline-grid;place-items:center;cursor:pointer}.pwd-block[data-v-88b087fb]{display:grid;gap:.65rem;padding-top:.35rem;border-top:1px solid var(--line)}.pwd-block h4[data-v-88b087fb]{margin:0;font-size:.95rem}.actions[data-v-88b087fb]{display:flex;gap:.5rem;padding-top:.25rem}.err[data-v-88b087fb]{margin:0;color:var(--bad);font-size:.9rem}.ok[data-v-88b087fb]{margin:0;color:var(--accent);font-size:.9rem}.topbar[data-v-b542a872]{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem var(--page-pad);border-bottom:1px solid var(--line);background:#fffaf4b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0;z-index:30}.brand-btn[data-v-b542a872]{display:flex;align-items:baseline;gap:.55rem;border:0;background:transparent;cursor:pointer;padding:0}.brand[data-v-b542a872]{margin:0;font-size:1.45rem;font-weight:750;color:var(--accent);letter-spacing:-.03em}.brand-sub[data-v-b542a872]{color:var(--muted);font-size:.9rem}.top-actions[data-v-b542a872]{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;justify-content:flex-end}.entry-pair[data-v-b542a872]{display:inline-flex;border:1px solid var(--line);background:#ffffffa6;padding:2px}.entry[data-v-b542a872]{height:2.05rem;padding:0 .85rem;display:inline-grid;place-items:center;color:var(--muted);font-size:.9rem}.entry[data-v-b542a872]:hover{color:var(--ink);background:#0f6e560f}.entry.active[data-v-b542a872]{background:#0f6e5624;color:var(--accent);font-weight:650}.user-chip[data-v-b542a872]{display:flex;align-items:center;gap:.45rem;padding:.15rem .45rem .15rem .15rem;border:1px solid transparent;background:transparent;cursor:pointer;text-align:left}.user-chip[data-v-b542a872]:hover{border-color:var(--line);background:#0f6e560f}.avatar[data-v-b542a872]{width:32px;height:32px;border:1px solid var(--line);background:#0f6e561f;color:var(--accent);display:grid;place-items:center;font-size:.82rem;font-weight:650;overflow:hidden;flex-shrink:0}.avatar img[data-v-b542a872]{width:100%;height:100%;object-fit:cover}.user-meta[data-v-b542a872]{display:grid;gap:.05rem;line-height:1.15}.user-name[data-v-b542a872]{font-size:.9rem;color:var(--ink)}.user-role[data-v-b542a872]{font-size:.75rem;color:var(--muted)}@media (max-width: 640px){.user-meta[data-v-b542a872]{display:none}}.admin-root[data-v-420f0894]{min-height:100vh;display:grid;grid-template-rows:auto 1fr}.admin-shell[data-v-420f0894]{width:100%;max-width:none;box-sizing:border-box;margin:0;padding:var(--page-pad);display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);gap:1rem;align-items:stretch;min-height:0}.sidebar[data-v-420f0894]{width:var(--sidebar-w);min-width:var(--sidebar-w);max-width:var(--sidebar-w);display:flex;flex-direction:column;padding:1.1rem .9rem;position:sticky;top:calc(3.2rem + var(--page-pad));align-self:start;height:calc(100vh - 3.2rem - 2 * var(--page-pad));max-height:calc(100vh - 3.2rem - 2 * var(--page-pad));box-sizing:border-box}.side-brand[data-v-420f0894]{padding:.1rem .45rem .85rem;border-bottom:1px solid var(--line);margin-bottom:.75rem}.side-title[data-v-420f0894]{margin:0;font-size:.95rem;font-weight:650;color:var(--muted)}.nav[data-v-420f0894]{display:grid;gap:.25rem;flex:1;overflow:auto;align-content:start}.nav-item[data-v-420f0894]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.65rem .7rem;color:var(--ink);border:1px solid transparent;background:transparent;text-align:left;cursor:pointer}.nav-item[data-v-420f0894]:hover{background:#0f6e5614}.nav-item.active[data-v-420f0894]{background:#0f6e561f;border-color:#0f6e5647;color:var(--accent);font-weight:650}.nav-item.sub[data-v-420f0894]{padding-left:1.35rem;font-size:.92rem}.caret[data-v-420f0894]{width:7px;height:7px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(-45deg);transition:transform .15s ease,border-color .15s ease;flex-shrink:0}.nav-group-title.open .caret[data-v-420f0894]{transform:rotate(45deg);border-color:var(--accent)}.nav-group-title.active .caret[data-v-420f0894]{border-color:var(--accent)}.nav-sub[data-v-420f0894]{display:grid;gap:.15rem;margin-top:.1rem}.main[data-v-420f0894]{min-width:0;width:100%}@media (max-width: 900px){.admin-shell[data-v-420f0894]{grid-template-columns:1fr}.sidebar[data-v-420f0894]{width:100%;min-width:0;max-width:none;position:static;height:auto;max-height:none}}.app-shell[data-v-6b37c355]{height:100vh;min-height:100vh;display:grid;grid-template-rows:auto 1fr;overflow:hidden}.app-main[data-v-6b37c355]{min-height:0;overflow:auto;padding:var(--page-pad);width:100%;max-width:none;margin:0;box-sizing:border-box;display:flex;flex-direction:column}:root{--ink: #1c2430;--muted: #5b6777;--paper: rgba(255, 250, 244, .88);--line: rgba(28, 36, 48, .12);--accent: #0f6e56;--accent-2: #c45c26;--ok: #0f6e56;--warn: #9a6b00;--bad: #a33b2d;--shadow: 0 18px 50px rgba(28, 36, 48, .12);--font-display: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-body: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "Cascadia Code", "Consolas", "Microsoft YaHei", monospace;--radius: 2px;--sidebar-w: 220px;--tree-w: 440px;--page-pad: 1rem}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:#d9e2ea}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}.bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(1200px 600px at 10% -10%,#f7e7d3 0%,transparent 55%),radial-gradient(900px 500px at 90% 0%,#cfe7df 0%,transparent 50%),linear-gradient(160deg,#e8eef4,#d5dde7 45%,#c9d5c8)}.bg:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(28,36,48,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(28,36,48,.04) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(rgba(0,0,0,.35),transparent 80%);mask-image:linear-gradient(rgba(0,0,0,.35),transparent 80%)}.panel{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);padding:1.1rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{margin:0;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:760;letter-spacing:-.04em;line-height:.95;color:var(--accent)}.sub{margin:0;color:var(--muted);line-height:1.55}.hint{margin:.8rem 0 0;color:var(--muted);font-size:.88rem}.btn{height:2.6rem;padding:0 1.1rem;border:0;background:var(--accent);color:#fff;cursor:pointer}.btn:hover{filter:brightness(1.05)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{height:2.1rem;padding:0 .75rem;background:transparent;color:var(--ink);border:1px solid var(--line);cursor:pointer}.btn-ghost:hover,.btn-ghost.active{background:#0f6e561f;border-color:#0f6e5659;color:var(--accent)}.btn-danger{background:var(--bad)}.field{display:grid;gap:.35rem;font-size:.92rem;color:var(--muted)}.field input,.field select,.field textarea{height:2.6rem;padding:0 .75rem;border:1px solid var(--line);background:#fff;color:var(--ink)}.field textarea{height:auto;min-height:6rem;padding:.65rem .75rem;resize:vertical}.table-wrap{overflow:auto;border:1px solid var(--line);background:#ffffff8c}table.data{width:100%;border-collapse:collapse;font-size:.92rem}table.data th,table.data td{border-bottom:1px solid rgba(28,36,48,.1);padding:.7rem .75rem;text-align:left;vertical-align:middle}table.data th{background:#0f6e5614;font-weight:650;color:var(--ink);white-space:nowrap}table.data tr:last-child td{border-bottom:0}.tag{display:inline-block;padding:.15rem .45rem;border:1px solid var(--line);background:#ffffffb3;font-size:.8rem}.tag.ok{color:var(--ok);border-color:#0f6e5640;background:#0f6e5614}.tag.warn{color:var(--warn);border-color:#9a6b0040;background:#9a6b0014}.tag.bad{color:var(--bad);border-color:#a33b2d40;background:#a33b2d14}.status-banner{display:inline-block;margin-top:.75rem;padding:.45rem .75rem;border:1px solid var(--line);background:#ffffff8c;font-size:.92rem}.status-banner.bad{color:var(--bad)}.status-banner.ok{color:var(--ok);border-color:#0f6e5640}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.page-head h1{margin:0;font-size:1.25rem;font-weight:650;letter-spacing:-.02em}.page-title-row{display:flex;align-items:center;gap:.55rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.empty{padding:2rem 1rem;text-align:center;color:var(--muted)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c243059;display:grid;place-items:center;z-index:50;padding:1rem}.modal{width:min(560px,100%);background:#fffaf4;border:1px solid var(--line);box-shadow:var(--shadow);padding:1.2rem}.modal h3{margin:0 0 1rem;font-size:1.05rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.1rem}.form-grid{display:grid;gap:.85rem}.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.45rem}.perm-item{display:flex;align-items:center;gap:.4rem;padding:.45rem .55rem;border:1px solid var(--line);background:#ffffffa6;font-size:.88rem;color:var(--ink);cursor:pointer}.perm-item input{accent-color:var(--accent)}
