*{box-sizing:border-box;margin:0;padding:0}body{color:#333;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:inherit;text-decoration:none}input,button,select,textarea{font-family:inherit}.admin-layout{height:100vh;display:flex}.sidebar{color:#fff;background:#1a1a2e;flex-direction:column;flex-shrink:0;width:240px;display:flex}.logo{border-bottom:1px solid rgba(255,255,255,.1);padding:20px;font-size:18px;font-weight:700}nav{flex:1;padding:12px 0;overflow-y:auto}.nav-item{color:#aaa;cursor:pointer;padding:12px 20px;font-size:14px;text-decoration:none;transition:all .2s;display:block}.nav-item:hover,.nav-item.router-link-active{color:#fff;background:rgba(255,255,255,.08)}.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.user-name{color:#aaa;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.logout-btn{color:#aaa;cursor:pointer;background:0 0;border:1px solid rgba(255,255,255,.2);border-radius:4px;flex-shrink:0;padding:4px 12px;font-size:12px}.logout-btn:hover{color:#fff;border-color:rgba(255,255,255,.4)}.main-content{background:#f0f2f5;flex:1;overflow-y:auto}.content-header{background:#fff;border-bottom:1px solid #e8e8e8;padding:16px 24px}.content-header h2{color:#333;font-size:18px}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;padding:24px;display:grid}.stat-card{background:#fff;border-radius:12px;align-items:center;gap:16px;padding:20px;display:flex;box-shadow:0 1px 3px rgba(0,0,0,.06)}.stat-icon{font-size:36px}.stat-info{flex-direction:column;display:flex}.stat-num{color:#1a1a2e;font-size:28px;font-weight:700}.stat-label{color:#888;font-size:13px}@media (max-width:768px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.quick-actions{padding:0 24px 24px}.quick-actions h3{color:#333;margin-bottom:12px;font-size:16px}.actions-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.action-card{text-align:center;color:#333;cursor:pointer;background:#fff;border-radius:10px;padding:20px;font-size:14px;transition:all .2s;display:block;box-shadow:0 1px 3px rgba(0,0,0,.06)}.action-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.1)}.data-table{border-collapse:collapse;background:#fff;border-radius:8px;width:100%;overflow:hidden}.data-table th{color:#666;text-align:left;background:#f8f9fa;border-bottom:1px solid #e8e8e8;padding:12px 16px;font-size:13px;font-weight:600}.data-table td{border-bottom:1px solid #f0f0f0;padding:12px 16px;font-size:14px}.data-table tr:hover td{background:#f8f9ff}.data-table tr:last-child td{border-bottom:none}.toolbar{gap:12px;padding:16px 0;display:flex}.search-input{border:1px solid #d9d9d9;border-radius:6px;outline:none;width:280px;padding:8px 16px;font-size:14px;transition:border-color .2s}.search-input:focus{border-color:#1a73e8}.btn,button.btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:4px;padding:8px 16px;font-size:14px;transition:all .2s;display:inline-flex}.btn-primary{color:#fff;background:#1a73e8}.btn-primary:hover{background:#1557b0}.btn-danger{color:#fff;background:#e53935}.btn-danger:hover{background:#c62828}.btn-success{color:#fff;background:#43a047}.btn-success:hover{background:#2e7d32}.btn-sm{padding:4px 10px;font-size:12px}.btn-block{justify-content:center;width:100%}.btn[disabled]{opacity:.6;cursor:not-allowed}.input{border:1px solid #d9d9d9;border-radius:8px;outline:none;width:100%;margin-bottom:12px;padding:10px 14px;font-size:14px}.input:focus{border-color:#1a73e8;box-shadow:0 0 0 2px rgba(26,115,232,.1)}.status-badge{border-radius:10px;padding:2px 8px;font-size:12px;display:inline-block}.status-badge.online{color:#2e7d32;background:#e8f5e9}.status-badge.offline{color:#999;background:#f5f5f5}.status-badge.banned{color:#c62828;background:#ffebee}.section{padding:24px}.section h3{color:#333;margin-bottom:16px;font-size:16px}.service-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.service-card{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px rgba(0,0,0,.06)}.service-card.up{border-left:3px solid #43a047}.service-card.down{border-left:3px solid #e53935}.service-name{color:#333;margin-bottom:4px;font-size:14px;font-weight:600}.service-status{color:#43a047;font-size:13px}.service-card.down .service-status{color:#e53935}.service-detail{color:#888;margin-top:4px;font-size:12px}.info-table{background:#fff;border-radius:8px;width:100%;overflow:hidden}.info-table td{border-bottom:1px solid #f0f0f0;padding:10px 16px;font-size:14px}.info-table td:first-child{color:#888;width:160px;font-weight:500}.modal-overlay{z-index:1000;background:rgba(0,0,0,.5);justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal-card{background:#fff;border-radius:12px;width:440px;max-width:90vw;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.modal-card h3{margin-bottom:16px;font-size:18px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.pagination{justify-content:center;align-items:center;gap:8px;padding:16px 0;display:flex}.page-btn{cursor:pointer;background:#fff;border:1px solid #d9d9d9;border-radius:4px;padding:6px 12px;font-size:13px}.page-btn:hover{color:#1a73e8;border-color:#1a73e8}.page-btn.active{color:#fff;background:#1a73e8;border-color:#1a73e8}.page-btn[disabled]{opacity:.5;cursor:not-allowed}.page-info{color:#888;font-size:13px}.hint{color:#888;padding:16px 24px;font-size:14px}.dev-note{color:#1565c0;background:#e3f2fd;border-radius:8px;margin:16px 24px;padding:12px 16px;font-size:13px}.alert{border-radius:6px;margin-bottom:12px;padding:10px 16px;font-size:14px}.alert-success{color:#2e7d32;background:#e8f5e9}.alert-error{color:#c62828;background:#ffebee}.alert-info{color:#1565c0;background:#e3f2fd}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#999}.empty-state{text-align:center;color:#999;padding:60px 20px}.empty-state .icon{margin-bottom:12px;font-size:48px}.empty-state p{font-size:14px}.loading{text-align:center;color:#888;padding:40px;font-size:14px}
