.login-page[data-v-e24ec2c5]{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,rgba(242,92,84,.22),transparent 40%),linear-gradient(160deg,#f7f4f1,#efeae4 50%,#f5f1ed)}.panel[data-v-e24ec2c5]{width:min(420px,100%);background:#fff;border-radius:22px;padding:32px 28px;box-shadow:0 20px 50px #281e141a}.brand[data-v-e24ec2c5]{text-align:center;margin-bottom:28px}.logo[data-v-e24ec2c5]{width:56px;height:56px;margin:0 auto 14px;border-radius:14px;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700}h1[data-v-e24ec2c5]{margin:0 0 8px;font-size:26px}.brand p[data-v-e24ec2c5]{margin:0;color:var(--muted);font-size:14px}.field[data-v-e24ec2c5]{margin-bottom:14px}.full[data-v-e24ec2c5]{width:100%;margin-top:8px}.error[data-v-e24ec2c5]{color:#c2413b;font-size:13px;margin:0 0 8px}.layout[data-v-961cc0a1]{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar[data-v-961cc0a1]{background:var(--sidebar);color:#fff;padding:22px 16px;display:flex;flex-direction:column;gap:28px}.brand[data-v-961cc0a1]{display:flex;gap:12px;align-items:center;padding:0 8px}.logo[data-v-961cc0a1]{width:42px;height:42px;border-radius:10px;background:var(--brand);display:grid;place-items:center;font-size:13px;font-weight:700}.brand strong[data-v-961cc0a1]{display:block;font-size:16px}.brand p[data-v-961cc0a1]{margin:2px 0 0;color:#ffffff8c;font-size:12px}.nav-item[data-v-961cc0a1]{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px;color:#ffffffb8;margin-bottom:6px}.nav-item[data-v-961cc0a1]:hover{background:#ffffff0f;color:#fff}.nav-item.active[data-v-961cc0a1]{background:#f25c542e;color:#fff;box-shadow:inset 3px 0 0 var(--brand)}.main[data-v-961cc0a1]{min-width:0}.topbar[data-v-961cc0a1]{display:flex;justify-content:space-between;align-items:center;padding:22px 28px 10px}.topbar h1[data-v-961cc0a1]{margin:0;font-size:24px}.topbar p[data-v-961cc0a1]{margin:4px 0 0;color:var(--muted);font-size:13px}.user[data-v-961cc0a1]{display:flex;align-items:center;gap:12px;color:var(--muted)}.content[data-v-961cc0a1]{padding:10px 28px 28px}@media(max-width:900px){.layout[data-v-961cc0a1]{grid-template-columns:1fr}.sidebar[data-v-961cc0a1]{display:none}}.stats[data-v-76173c55]{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stat p[data-v-76173c55]{margin:0;color:var(--muted);font-size:13px}.stat strong[data-v-76173c55]{display:block;margin-top:10px;font-size:32px;letter-spacing:-.5px}.banners[data-v-76173c55]{display:grid;gap:12px}.banner-item[data-v-76173c55]{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;padding:14px 16px;border-radius:12px;background:linear-gradient(90deg,#fff5f4,#fff);border:1px solid #f6d7d4}.banner-item span[data-v-76173c55]{color:var(--brand);font-size:13px;font-weight:600}.banner-item strong[data-v-76173c55]{font-size:14px;font-weight:500}@media(max-width:900px){.stats[data-v-76173c55]{grid-template-columns:1fr 1fr}}.sub[data-v-758d039b]{margin:2px 0 0;color:var(--muted);font-size:12px}.mono[data-v-758d039b]{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;word-break:break-all;max-width:220px}.ops[data-v-758d039b]{display:flex;gap:8px}.error[data-v-758d039b]{color:#c2413b;font-size:13px}.muted[data-v-758d039b]{color:var(--muted);font-size:13px;white-space:nowrap}.ops[data-v-bdc84ab0]{display:flex;gap:8px}.swatch[data-v-bdc84ab0]{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:middle;margin-right:6px;border:1px solid rgba(0,0,0,.08)}.grid[data-v-b7359ca3]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.topic[data-v-b7359ca3]{border-radius:14px;overflow:hidden;color:#fff;min-height:220px;display:flex;flex-direction:column;position:relative}.quote[data-v-b7359ca3]{padding:18px;font-size:18px;font-weight:600;line-height:1.45;flex:1}.footer[data-v-b7359ca3]{padding:12px 16px;font-size:13px}.actions[data-v-b7359ca3]{position:absolute;right:10px;top:10px;display:flex;gap:6px}.ops[data-v-8529b6f2]{display:flex;gap:8px}.title-cell[data-v-8529b6f2]{display:flex;align-items:center;gap:8px}.dot[data-v-8529b6f2]{width:12px;height:12px;border-radius:50%;display:inline-block}.preview[data-v-e01b8e4c]{margin-top:10px;background:linear-gradient(90deg,#f56b63,#ee5a52);color:#fff;border-radius:10px;padding:12px 14px;font-size:14px}.msg[data-v-e01b8e4c]{margin-top:14px;color:var(--ok);font-size:13px}.ops[data-v-3c716ebb]{display:flex;gap:8px}.name-cell[data-v-3c716ebb]{display:flex;align-items:center;gap:10px}.name-cell p[data-v-3c716ebb]{margin:2px 0 0;color:var(--muted);font-size:12px}.swatch[data-v-3c716ebb]{width:28px;height:28px;border-radius:8px;flex-shrink:0;border:1px solid rgba(0,0,0,.06)}.ops[data-v-0e7e1200]{display:flex;gap:8px}.swatch[data-v-0e7e1200]{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:middle;margin-right:6px;border:1px solid rgba(0,0,0,.08)}.msg[data-v-0e7e1200]{margin-top:12px;color:var(--ok);font-size:13px}.preview-row[data-v-54575708]{display:flex;gap:8px;padding:18px 12px;margin-bottom:18px;background:#fafafa;border:1px solid var(--line);border-radius:14px}.preview-item[data-v-54575708]{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;color:#333}.icon-box[data-v-54575708]{width:36px;height:36px;position:relative;display:grid;place-items:center;font-size:22px}.dot[data-v-54575708]{position:absolute;top:-2px;right:-2px;width:7px;height:7px;border-radius:50%;background:#ff3b30;border:1px solid #fff}.badge-pill[data-v-54575708]{position:absolute;top:-10px;right:-28px;background:#ff3b30;color:#fff;font-size:9px;font-style:normal;padding:1px 4px;border-radius:4px;white-space:nowrap}.ops[data-v-54575708]{display:flex;gap:8px}.error[data-v-54575708]{color:#c2413b;font-size:13px}:root{--bg: #f3f1ef;--panel: #ffffff;--text: #1c1c1c;--muted: #8a8a8a;--line: #ebe7e2;--brand: #f25c54;--brand-dark: #e14a42;--dark: #2c2c2c;--ok: #2f9e6c;--sidebar: #1f1f1f;--radius: 14px;--shadow: 0 10px 30px rgba(28, 28, 28, .06);font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.btn{border:none;border-radius:999px;padding:10px 18px;background:var(--dark);color:#fff;transition:.15s ease}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--brand)}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--line)}.btn.danger{background:#c2413b}.btn.sm{padding:7px 14px;font-size:13px}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:#f2a39f;box-shadow:0 0 0 3px #f25c541f}.textarea{min-height:90px;resize:vertical}.card{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:middle}.table th{color:var(--muted);font-weight:500;font-size:13px}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:12px;background:#f0f0f0}.badge.on{background:#e8f7ef;color:var(--ok)}.badge.off{background:#f6eaea;color:#b42318}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1 / -1}.field label{display:block;margin-bottom:6px;font-size:13px;color:var(--muted)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#14141473;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{width:min(560px,100%);background:#fff;border-radius:18px;padding:22px;box-shadow:0 20px 60px #0003}.modal h3{margin:0 0 16px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.page-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.page-hd h2{margin:0;font-size:22px}.page-hd p{margin:4px 0 0;color:var(--muted);font-size:13px}.empty{padding:40px 0;text-align:center;color:var(--muted)}
