*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;display:flex;align-items:center;justify-content:center}.container{width:100%;max-width:400px;padding:0 20px}.auth-card{background:#fff;border-radius:12px;padding:40px;box-shadow:0 20px 60px #0000004d}.auth-header{text-align:center;margin-bottom:30px}.auth-header h1{font-size:28px;color:#333;margin-bottom:8px}.auth-header p{color:#666;font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.form-control{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:all .3s ease}.form-control:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-control.error{border-color:#ef4444}.error-message{color:#ef4444;font-size:12px;margin-top:6px;display:block}.btn{width:100%;padding:14px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.auth-footer{text-align:center;margin-top:24px;color:#666;font-size:14px}.auth-footer a{color:#667eea;text-decoration:none;font-weight:600}.auth-footer a:hover{text-decoration:underline}.forgot-password-link{text-align:right;margin-top:6px}.forgot-password-link a{font-size:13px;color:#667eea;text-decoration:none}.forgot-password-link a:hover{text-decoration:underline}.alert{padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:14px}.alert-error{background:#fee;color:#c00;border:1px solid #fcc}.alert-success{background:#efe;color:#0a0;border:1px solid #cfc}.dashboard{background:#fff;border-radius:12px;padding:40px;box-shadow:0 20px 60px #0000004d;text-align:center}.dashboard h1{color:#333;margin-bottom:20px}.user-info{background:#f8f9fa;border-radius:8px;padding:20px;margin:20px 0;text-align:left}.user-info p{margin:10px 0;color:#555}.user-info strong{color:#333}.btn-secondary{background:#6c757d;color:#fff;margin-top:20px}.btn-secondary:hover:not(:disabled){background:#5a6268}.auth-container{width:100%;max-width:440px;padding:0 20px}.loading{display:inline-block;width:15px;height:15px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:6px}@keyframes spin{to{transform:rotate(360deg)}}.btn-outline{background:transparent;border:2px solid #667eea;color:#667eea}.btn-outline:hover:not(:disabled){background:#667eea14}.auth-logo{font-size:40px;display:block;margin-bottom:12px;line-height:1}.error-text{color:#ef4444;font-size:12px;margin-top:6px;display:block}.password-wrapper{position:relative}.password-wrapper .form-control{padding-right:46px}.pw-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#999;padding:4px;font-size:15px;line-height:1;transition:color .2s;-webkit-user-select:none;user-select:none}.pw-toggle:hover{color:#667eea}.admin-section{margin-top:28px;padding-top:24px;border-top:2px solid #e9ecef;text-align:center}.admin-section h3{margin-bottom:16px}.admin-section-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.admin-section-actions .btn{width:auto;padding:12px 28px}.link-btn{background:none;border:none;color:#667eea;font-size:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:none}.link-btn:hover{text-decoration:underline}.btn-outline{background:transparent;color:#667eea;border:2px solid #667eea;margin-top:20px}.btn-outline:hover:not(:disabled){background:#667eea;color:#fff}.loading{display:inline-block;width:16px;height:16px;border:2px solid #ffffff;border-radius:50%;border-top-color:transparent;animation:spinner .6s linear infinite;margin-right:8px}@keyframes spinner{to{transform:rotate(360deg)}}
