*{box-sizing:border-box;margin:0}body{font-family:Microsoft YaHei,system-ui,sans-serif;background:#f4f6f8;color:#1c2430}.app{min-height:100vh}.topbar{display:flex;align-items:center;gap:24px;background:#162235;color:#fff;padding:0 20px;height:48px}.brand{font-weight:700;letter-spacing:1px}.topbar nav{display:flex;gap:4px;flex:1}.topbar nav a{color:#b8c2cc;text-decoration:none;padding:6px 14px;border-radius:4px;font-size:14px}.topbar nav a.active{background:#2a3b52;color:#fff}.topbar .ghost{background:transparent;color:#b8c2cc;border:1px solid #3a4b62;padding:4px 12px;border-radius:4px;cursor:pointer}main{max-width:1080px;margin:24px auto;padding:0 16px}section{display:flex;flex-direction:column;gap:12px}table{width:100%;border-collapse:collapse;background:#fff;font-size:14px;border-top:2px solid #162235;border-bottom:2px solid #162235}th{text-align:left;background:#eef1f4;padding:8px 12px;font-weight:600}td{padding:8px 12px;border-bottom:1px solid #e4e8ec}.empty{text-align:center;color:#8a94a0;padding:24px!important}.toolbar{display:flex;gap:8px;align-items:center}input,select,textarea{padding:7px 10px;border:1px solid #c8cdd2;border-radius:4px;font-size:14px;font-family:inherit}button{padding:7px 16px;background:#162235;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}button:hover{background:#2a3b52}.panel{background:#fff;padding:16px;border:1px solid #e4e8ec;border-radius:6px;display:flex;flex-direction:column;gap:10px;max-width:640px}.panel h3{font-size:15px}.panel label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#4a5560}.err{color:#b3261e;font-size:13px}.ok{color:#1b6b3a;font-size:13px}.mono{font-family:Consolas,monospace}.small{font-size:12px;color:#6a7480}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#b0b8c0;margin-right:6px}.dot.online{background:#1b8a4a}.login-wrap{display:flex;justify-content:center;padding-top:10vh}.login-card{background:#fff;padding:28px;border-radius:8px;border:1px solid #e4e8ec;display:flex;flex-direction:column;gap:12px;width:360px}.login-card h2{font-size:18px;text-align:center}.login-card label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#4a5560}.login-card button{margin-top:8px}.btn-sm{display:inline-block;padding:3px 10px;border:1px solid #2f6feb;border-radius:4px;color:#2f6feb;font-size:13px;text-decoration:none}.btn-sm:hover{background:#2f6feb;color:#fff}.danger{background:#d64545;color:#fff}.muted{color:#6b7681;font-size:13px}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.toolbar strong{font-size:15px}.cert-card{border:1px solid #e4e8ec;border-radius:6px;background:#f8fafb;padding:12px;display:flex;flex-direction:column;gap:8px}.cert-card.off{background:#f4f6f8}.cert-head{display:flex;align-items:center;gap:8px}.cert-domain{font-size:16px;font-weight:600}.badge{display:inline-block;padding:2px 10px;border-radius:10px;font-size:12px;color:#fff;background:#8a94a0}.badge.good{background:#1b8a4a}.badge.warn{background:#b7791f}.badge.bad{background:#b3261e}.badge.off{background:#8a94a0}.progress{height:6px;background:#e4e8ec;border-radius:3px;overflow:hidden}.progress-bar{height:100%;background:#1b8a4a;border-radius:3px}.progress-bar.warn{background:#b7791f}.job-banner{background:#eef4fb;border:1px solid #c7dbf5;color:#1d4e89;padding:8px 12px;border-radius:4px;font-size:13px}.check{flex-direction:row!important;align-items:center;gap:8px!important}.check input{width:auto}.hints summary{cursor:pointer}.hints ul{margin:6px 0 0 18px;display:flex;flex-direction:column;gap:4px}.hints code{background:#eef1f4;padding:1px 5px;border-radius:3px}.panel button:disabled{background:#8a94a0;cursor:not-allowed}.topbar .ghost:hover{background:#2a3b52}
