:root { --ink:#101828; --muted:#667085; --line:#d0d5dd; --paper:#fff; --bg:#f5f7f8; --teal:#087f7a; --teal2:#6ed8c8; --red:#b42318; --gold:#f5cf66; font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif; color:var(--ink); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; min-width:340px; background:var(--bg); } button,input { font:inherit; } a { color:inherit; }
.admin-header { position:sticky; top:0; z-index:20; height:72px; display:flex; align-items:center; gap:36px; padding:0 clamp(20px,4vw,64px); border-bottom:1px solid #e1e5e9; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); }
.admin-logo { display:flex; align-items:center; gap:11px; text-decoration:none; }.admin-logo>span,.admin-mark { width:40px;height:40px;display:grid;place-items:center;border-radius:10px;background:var(--teal);color:#fff;font:900 24px Georgia,serif; }.admin-logo b,.admin-logo small { display:block; }.admin-logo b { font-size:14px; }.admin-logo small { margin-top:3px;color:var(--teal);font:800 8px Consolas,monospace;letter-spacing:.14em; }
.admin-header nav { display:flex; gap:24px; margin-right:auto; }.admin-header nav a { color:var(--muted);font-size:12px;font-weight:800;text-decoration:none; }.admin-header nav a:hover { color:var(--teal); }.admin-user { display:flex;align-items:center;gap:12px;font-size:12px;font-weight:800; }.admin-user form { margin:0; }.admin-user button,.table-action { border:1px solid var(--line);border-radius:7px;background:#fff;padding:7px 11px;color:var(--ink);font-size:11px;font-weight:800;cursor:pointer; }.admin-user button:hover,.table-action:hover { border-color:var(--teal);color:var(--teal); }
.dashboard { width:min(1500px,calc(100% - 40px));margin:0 auto;padding:42px 0 70px; }.page-title { display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:25px; }.admin-kicker { margin:0 0 8px;color:var(--teal);font:900 10px Consolas,monospace;letter-spacing:.16em; }.page-title h1 { margin:0 0 8px;font-size:34px; }.page-title p:last-child,.muted { margin:0;color:var(--muted);font-size:13px; }.live { display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #a6e0d8;border-radius:999px;background:#edfcf8;color:#087f5b;font-size:11px;font-weight:800; }.live i { width:7px;height:7px;border-radius:50%;background:#12b76a;box-shadow:0 0 0 4px rgba(18,183,106,.13); }
.notice { display:none;margin:0 0 18px;padding:12px 14px;border:1px solid #e5b8b3;border-radius:8px;background:#fff1f0;color:var(--red);font-size:12px;font-weight:800; }.notice:not(:empty) { display:block; }
.stats { display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px; }.stats article,.panel,.generated { border:1px solid #e1e5e9;border-radius:13px;background:var(--paper);box-shadow:0 2px 5px rgba(16,24,40,.04); }.stats article { position:relative;padding:20px;overflow:hidden; }.stats article::after { content:"";position:absolute;right:-22px;bottom:-30px;width:85px;height:85px;border:16px solid #d6f5ef;border-radius:50%; }.stats span,.stats small,.stats b { position:relative;z-index:1;display:block; }.stats span { color:var(--muted);font-size:11px;font-weight:700; }.stats b { margin:11px 0 7px;font:900 31px Consolas,monospace; }.stats small { color:var(--teal);font-size:10px; }
.split-grid { display:grid;grid-template-columns:minmax(360px,.75fr) minmax(620px,1.25fr);gap:20px;margin-bottom:20px; }.panel { min-width:0;padding:22px;scroll-margin-top:90px; }.panel-head { display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px; }.panel-head h2 { margin:0;font-size:18px; }.panel-head>p { margin:4px 0 0;color:var(--muted);font-size:11px; }.pill { padding:5px 8px;border-radius:999px;background:#ecfdf3;color:#087f5b;font-size:9px;font-weight:900; }
.form-grid { display:grid;grid-template-columns:1fr 1fr;gap:13px; }.code-form label { color:var(--muted);font-size:10px;font-weight:800; }.code-form input,.login-card input { width:100%;height:42px;margin-top:6px;padding:0 11px;border:1px solid var(--line);border-radius:7px;outline:none; }.code-form input:focus,.login-card input:focus { border-color:var(--teal);box-shadow:0 0 0 3px rgba(8,127,122,.12); }.admin-primary { min-height:44px;display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:18px;padding:0 15px;border:0;border-radius:8px;background:var(--teal);color:#fff;font-weight:900;cursor:pointer; }.admin-primary:hover { background:#076b67; }.form-note { margin:11px 0 0;color:var(--muted);font-size:9px;line-height:1.5; }
.table-wrap { overflow:auto; }.table-wrap.compact { max-height:345px; } table { width:100%;border-collapse:collapse;white-space:nowrap;font-size:11px; } th { padding:10px 9px;border-bottom:1px solid #e4e7ec;color:var(--muted);font-size:9px;text-align:left;text-transform:uppercase; } td { padding:12px 9px;border-bottom:1px solid #f0f1f3;vertical-align:middle; } td strong,td small { display:block; } td small { margin-top:3px;color:var(--muted);font-size:9px; } td code { color:var(--teal);font-weight:900; }.status { display:inline-block;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:900; }.status.on { background:#ecfdf3;color:#087f5b; }.status.off { background:#f2f4f7;color:#667085; }.empty { padding:30px;text-align:center;color:var(--muted); }
.generated { margin-bottom:20px;padding:20px 22px;border-color:#7bd8c9;background:#ecfdf9; }.generated h2 { margin:0 0 5px;font-size:16px; }.generated p { margin:0 0 14px;color:var(--muted);font-size:11px; }.generated ul { display:flex;flex-wrap:wrap;gap:9px;margin:0;padding:0;list-style:none; }.generated li { padding:9px 12px;border:1px dashed var(--teal);border-radius:7px;background:#fff; }.generated code { color:var(--ink);font-weight:900;letter-spacing:.06em; }
.admin-footer { padding:22px;text-align:center;color:#98a2b3;font-size:10px; }
.login-body { min-height:100vh;background:var(--ink); }.admin-login { min-height:100vh;display:grid;grid-template-columns:1fr 1fr; }.login-brand { position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,8vw,130px);overflow:hidden;background:var(--ink);color:#fff; }.login-brand::after { content:"";position:absolute;right:-200px;bottom:-250px;width:520px;height:520px;border:90px solid rgba(110,216,200,.15);border-radius:50%; }.login-brand .admin-mark { margin-bottom:38px;background:var(--teal2);color:var(--ink); }.login-brand .admin-kicker { color:var(--teal2); }.login-brand h1 { position:relative;z-index:1;margin:0 0 20px;font-size:clamp(35px,4.5vw,65px);line-height:1.12; }.login-brand>p:last-child { position:relative;z-index:1;max-width:470px;margin:0;color:#98a2b3;line-height:1.8; }.login-card { align-self:center;width:min(410px,calc(100% - 50px));margin:40px auto;padding:36px;border-radius:15px;background:#fff; }.login-card h2 { margin:0 0 8px;font-size:27px; }.login-card form { display:flex;flex-direction:column; }.login-card label { margin:17px 0 0;font-size:11px;font-weight:800; }.login-card .admin-primary { min-height:50px;margin-top:24px; }.security-line { margin:22px 0 0;padding-top:16px;border-top:1px solid #e4e7ec;color:#98a2b3;font-size:9px;text-align:center; }
@media (max-width:1050px) { .admin-header nav { display:none; }.split-grid { grid-template-columns:1fr; }.stats { grid-template-columns:1fr 1fr; } }
@media (max-width:760px) { .admin-header { height:auto;min-height:68px;padding:10px 16px;gap:15px; }.admin-logo b { display:none; }.admin-user { margin-left:auto; }.dashboard { width:min(100% - 24px,700px);padding-top:28px; }.page-title { align-items:flex-start; }.live { display:none; }.stats { grid-template-columns:1fr 1fr;gap:10px; }.panel { padding:16px; }.admin-login { grid-template-columns:1fr; }.login-brand { min-height:300px;padding:40px 28px; }.login-brand .admin-mark { margin-bottom:25px; }.login-brand h1 { font-size:38px; }.login-card { margin:0 auto 50px; } }
@media (max-width:480px) { .stats { grid-template-columns:1fr; }.form-grid { grid-template-columns:1fr; }.admin-user>span { display:none; }.page-title h1 { font-size:28px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
