.uploader[data-v-4ae174cf]{display:grid;gap:10px}.drop[data-v-4ae174cf]{position:relative;border:2px dashed var(--line);border-radius:10px;min-height:160px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:#fafbfd;transition:.15s;overflow:hidden}.drop[data-v-4ae174cf]:hover{border-color:var(--brand)}.drop.over[data-v-4ae174cf]{border-color:var(--brand);background:#4c56af0f}.drop.busy[data-v-4ae174cf]{cursor:wait}.drop.has[data-v-4ae174cf]{padding:0}.thumb[data-v-4ae174cf]{width:100%;max-height:240px;object-fit:cover;display:block}.placeholder[data-v-4ae174cf]{display:flex;flex-direction:column;align-items:center;gap:6px;color:#888;padding:20px}.lbl[data-v-4ae174cf]{font-weight:600;color:#333}.hint[data-v-4ae174cf]{font-size:12px}.mask[data-v-4ae174cf]{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#fff}.bar[data-v-4ae174cf]{width:60%;height:6px;background:#ffffff40;border-radius:999px;overflow:hidden}.fill[data-v-4ae174cf]{height:100%;background:var(--brand);transition:width .15s}.pct[data-v-4ae174cf]{font-weight:600;font-size:14px}.err[data-v-4ae174cf]{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fdecec;color:#b22;padding:8px 12px;border-radius:8px;font-size:13px}.ops[data-v-4ae174cf]{display:flex;gap:8px}.btn[data-v-4ae174cf]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:13px}.btn[data-v-4ae174cf]:hover:not(:disabled){background:#f4f4fa}.btn[data-v-4ae174cf]:disabled{opacity:.5;cursor:not-allowed}.btn.danger[data-v-4ae174cf]{color:#b22;border-color:#f0c0c0}.btn.danger[data-v-4ae174cf]:hover:not(:disabled){background:#fdecec}.btn.small[data-v-4ae174cf]{padding:5px 10px;font-size:12px}.shell[data-v-399ebacc]{display:grid;grid-template-columns:235px 1fr;min-height:100vh}aside[data-v-399ebacc]{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:18px 13px;display:flex;flex-direction:column}.logo[data-v-399ebacc]{height:52px;display:flex;align-items:center;gap:10px;padding:0 10px;font-weight:700}.logo b[data-v-399ebacc]{display:grid;place-items:center;width:30px;height:30px;background:var(--brand);color:#fff;border-radius:8px}.logo button[data-v-399ebacc]{display:none;border:0;background:none;margin-left:auto}nav[data-v-399ebacc]{display:grid;gap:4px;margin-top:15px}nav a[data-v-399ebacc]{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:8px;color:#62697b;font-size:14px;text-decoration:none}nav a[data-v-399ebacc]:hover,nav a.router-link-exact-active[data-v-399ebacc]{background:#f0f0ff;color:var(--brand);font-weight:600}.logout[data-v-399ebacc]{margin-top:auto;display:flex;gap:10px;align-items:center;border:0;background:none;padding:11px;color:var(--muted);cursor:pointer}section[data-v-399ebacc]{min-width:0}header[data-v-399ebacc]{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:flex-end;padding:0 28px}header>button[data-v-399ebacc]{display:none;border:0;background:none}header .user[data-v-399ebacc]{position:relative;display:flex;align-items:center;gap:12px;font-size:13px}header .user span[data-v-399ebacc]{color:var(--muted)}.avatar[data-v-399ebacc]{width:34px;height:34px;border-radius:50%;background:#f0f0ff;display:grid;place-items:center;border:1px solid var(--line);cursor:pointer;padding:0;overflow:hidden}.avatar img[data-v-399ebacc]{width:100%;height:100%;object-fit:cover}.avatar[data-v-399ebacc]:hover{border-color:var(--brand)}.menu[data-v-399ebacc]{position:absolute;top:44px;right:0;min-width:180px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 30px #1e235a1f;padding:6px;z-index:30}.menu button[data-v-399ebacc]{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;background:none;border-radius:6px;font:inherit;font-size:13px;text-align:left;color:var(--ink);cursor:pointer}.menu button[data-v-399ebacc]:hover{background:var(--surface)}.menu button.danger[data-v-399ebacc]{color:var(--danger)}.menu button.danger[data-v-399ebacc]:hover{background:#fdecec}.modal-bg[data-v-399ebacc]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:grid;place-items:center;z-index:50}.modal[data-v-399ebacc]{background:#fff;border-radius:12px;padding:24px;width:min(440px,90vw);display:grid;gap:14px}.modal h3[data-v-399ebacc]{margin:0;font-size:18px}.modal .btn[data-v-399ebacc]{justify-self:end;padding:8px 18px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}@media(max-width:850px){.shell[data-v-399ebacc]{grid-template-columns:1fr}aside[data-v-399ebacc]{display:none;position:fixed;z-index:30;width:235px}aside.open[data-v-399ebacc]{display:flex}.logo button[data-v-399ebacc]{display:block}header[data-v-399ebacc]{justify-content:space-between}header>button[data-v-399ebacc]{display:block}}:root{font-family:Inter,Noto Sans SC,sans-serif;color:#202536;background:#f6f7fb;--brand:#5b5bd6;--ink:#202536;--muted:#73798c;--line:#e6e8ef;--danger:#c63e49}*{box-sizing:border-box}body{margin:0}a{text-decoration:none;color:inherit}button,input,textarea,select{font:inherit}.page{padding:30px}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-head h1{margin:0 0 7px;font-size:28px}.page-head p{margin:0;color:var(--muted)}.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px}.btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 13px;cursor:pointer;font-weight:600;font-size:13px}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.danger{color:var(--danger)}.btn+.btn{margin-left:6px}.table{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:13px}table{width:100%;border-collapse:collapse;min-width:850px}th,td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;font-size:13px}th{background:#fafafd;color:var(--muted)}tr:last-child td{border:0}.badge{padding:5px 8px;background:#f0f0ff;color:var(--brand);border-radius:99px;font-size:12px}.alert{padding:11px 13px;background:#fff0f0;color:var(--danger);border-radius:8px;margin-bottom:16px}.empty{padding:50px;text-align:center;color:var(--muted)}.field{display:grid;gap:7px;margin-bottom:15px}.field input,.field textarea,.field select{border:1px solid var(--line);border-radius:8px;padding:10px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#15182a66;display:grid;place-items:center;z-index:50}.modal{width:min(500px,calc(100% - 30px));background:#fff;border-radius:14px;padding:24px}.modal h3{margin-top:0}
