* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background: linear-gradient(135deg, #0a1628 0%, #1a2744 100%); min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.login-card { background: white; border-radius: 16px; padding: 40px; width: 420px; box-shadow: 0 20px 60px rgba(0,0,0,0.3); }
.login-card h2 { font-size: 24px; color: #1a1a1a; margin-bottom: 8px; }
.login-card .subtitle { font-size: 14px; color: #888; margin-bottom: 28px; }
.form-group { margin-bottom: 20px; }
.form-group label { display: block; font-size: 13px; color: #555; margin-bottom: 6px; font-weight: 500; }
.form-group input { width: 100%; padding: 12px 14px; border: 1px solid #ddd; border-radius: 8px; font-size: 14px; transition: border 0.2s; outline: none; }
.form-group input:focus { border-color: #0066ff; box-shadow: 0 0 0 3px rgba(0,102,255,0.1); }
.btn-login { width: 100%; padding: 14px; background: linear-gradient(135deg, #0057b8, #0066ff); color: white; border: none; border-radius: 8px; font-size: 16px; font-weight: 600; cursor: pointer; transition: transform 0.1s; }
.btn-login:hover { transform: translateY(-1px); }
.btn-login:active { transform: translateY(0); }
.btn-login:disabled { background: #ccc; cursor: not-allowed; transform: none; }
.register-link { text-align: center; margin-top: 20px; font-size: 13px; color: #888; }
.register-link a { color: #0066ff; text-decoration: none; font-weight: 500; }
.register-link a:hover { text-decoration: underline; }
.msg { padding: 10px 14px; border-radius: 8px; font-size: 13px; margin-bottom: 16px; display: none; }
.msg-error { background: #fff2f0; color: #cf1322; border: 1px solid #ffa39e; }
.msg-success { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
.logo-text { text-align: center; margin-bottom: 24px; }
.logo-text span { font-size: 28px; font-weight: 700; background: linear-gradient(135deg, #0057b8, #0066ff); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.role-select { display: none; margin-top: 20px; }
.role-select h3 { font-size: 16px; color: #333; margin-bottom: 12px; }
.role-options { display: flex; flex-direction: column; gap: 10px; }
.role-option { padding: 14px 18px; border: 2px solid #e8e8e8; border-radius: 10px; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; gap: 12px; }
.role-option:hover { border-color: #0066ff; background: #f0f5ff; }
.role-option .role-icon { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 18px; color: white; font-weight: 700; }
.role-option .role-info .role-name { font-size: 15px; font-weight: 600; color: #333; }
.role-option .role-info .role-desc { font-size: 12px; color: #999; margin-top: 2px; }
.role-admin .role-icon { background: #e53935; }
.role-agent .role-icon { background: #1e88e5; }
.role-merchant .role-icon { background: #43a047; }
.role-supplier .role-icon { background: #fb8c00; }
