:root{--brand:#1d4ed8;--brand-dark:#1e3a8a;--accent:#f97316;--ink:#1e293b;--muted:#64748b;--line:#e2e8f0;--bg:#f8fafc}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif}a{color:inherit;text-decoration:none}.header{border-bottom:1px solid var(--line);z-index:10;background:#fff;position:sticky;top:0}.header-inner{align-items:center;gap:24px;max-width:1080px;height:56px;margin:0 auto;padding:0 20px;display:flex}.brand{color:var(--brand);align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.brand small{color:var(--muted);font-size:12px;font-weight:400}.nav{flex-wrap:wrap;gap:18px;font-size:14px;display:flex}.nav a{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;padding:4px 2px}.nav a.on,.nav a:hover{color:var(--brand);border-bottom-color:var(--brand)}.spacer{flex:1}.logout-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:5px 12px;font-size:13px}.logout-btn:hover{border-color:var(--brand);color:var(--brand)}.main{max-width:1080px;margin:0 auto;padding:28px 20px 60px}.page-title{margin-bottom:6px;font-size:22px;font-weight:700}.page-title:after{content:"";background:var(--accent);border-radius:2px;width:36px;height:3px;margin-top:6px;display:block}.page-sub{color:var(--muted);margin-bottom:24px;font-size:14px}.card{border:1px solid var(--line);background:#fff;border-radius:10px;margin-bottom:16px;padding:18px 20px;overflow-x:auto}.card h3{margin-bottom:10px;font-size:15px}.grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.stat-num{color:var(--brand);font-size:30px;font-weight:700}.stat-label{color:var(--muted);font-size:13px}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--muted);border-bottom:2px solid var(--line);white-space:nowrap;padding:8px 10px;font-size:13px;font-weight:600}td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}.badge{white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:12px;display:inline-block}.s-done{color:#15803d;background:#dcfce7}.s-run{color:#1d4ed8;background:#dbeafe}.s-hold{color:#b45309;background:#fef3c7}.s-fail{color:#b91c1c;background:#fee2e2}.s-wait{color:#475569;background:#f1f5f9}.s-na{color:#94a3b8;background:#f1f5f9}.s-demo{color:#c2410c;background:#fff7ed}.s-real{color:#1d4ed8;background:#eff6ff}.demo-note{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin-bottom:20px;padding:10px 14px;font-size:13px}.sim-note{color:#075985;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;margin-top:16px;padding:10px 14px;font-size:13px}.footer{border-top:1px solid var(--line);background:#fff;margin-top:40px}.footer-inner{max-width:1080px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:8px;margin:0 auto;padding:18px 20px;font-size:12px;display:flex}.login-wrap{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-box{border:1px solid var(--line);background:#fff;border-radius:12px;width:360px;padding:32px}.login-box h1{color:var(--brand);margin-bottom:4px;font-size:18px}.login-box p{color:var(--muted);margin-bottom:20px;font-size:13px}.login-box input{border:1px solid var(--line);border-radius:8px;width:100%;margin-bottom:14px;padding:10px 12px;font-size:14px}.login-box button{background:var(--brand);color:#fff;cursor:pointer;border:none;border-radius:8px;width:100%;padding:10px;font-size:15px}.login-err{color:#b91c1c;margin-bottom:12px;font-size:13px}.muted{color:var(--muted);font-size:13px}.edit-btn{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:13px}.editor-inline select,.editor-inline input{border:1px solid var(--line);border-radius:6px;max-width:220px;padding:4px 6px;font-size:13px}.editor-inline textarea{border:1px solid var(--line);border-radius:6px;width:100%;padding:4px 6px;font-size:13px}.editor-inline select:focus,.editor-inline input:focus{outline:2px solid var(--brand);outline-offset:-1px}.filter-bar{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.filter-bar a{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:4px 14px;font-size:13px}.filter-bar a.on{background:var(--brand);color:#fff;border-color:var(--brand)}@media (max-width:640px){.header-inner{flex-wrap:wrap;gap:8px;height:auto;padding:10px 14px}.nav{gap:10px;font-size:13px}.main{padding:20px 14px 50px}.card{padding:12px 10px}td,th{padding:7px 6px;font-size:13px}}
