*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px}.container{background:#fff;border-radius:10px;box-shadow:0 10px 40px #0003;padding:40px;max-width:500px;width:100%}h1{color:#333;margin-bottom:10px;text-align:center}.subtitle{color:#666;text-align:center;margin-bottom:30px;font-size:14px}.status{padding:15px;border-radius:5px;margin-bottom:20px;text-align:center;font-weight:500}.status[data-authed=false]{background:#fff3cd;color:#856404;border:1px solid #ffeeba}.status[data-authed=true]{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.status[data-error=true]{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.status[data-loading=true]{background:#d1ecf1;color:#0c5460;border:1px solid #bee5eb}.user-info{background:#f8f9fa;border-radius:5px;padding:20px;margin-bottom:20px}.user-info h2{color:#333;margin-bottom:15px;font-size:18px}.info-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #dee2e6}.info-row:last-child{border-bottom:none}.info-label{color:#666;font-weight:500}.info-value{color:#333;font-weight:600}.role-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.role-badge.student{background:#007bff;color:#fff}.role-badge.pooler{background:#28a745;color:#fff}button{width:100%;padding:15px;border:none;border-radius:5px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-login{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-login:hover{transform:translateY(-2px);box-shadow:0 5px 20px #667eea66}.btn-logout{background:#dc3545;color:#fff}.btn-logout:hover{background:#c82333;transform:translateY(-2px);box-shadow:0 5px 20px #dc354566}button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.loading-spinner{display:inline-block;width:16px;height:16px;border:3px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin 1s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.footer{text-align:center;margin-top:20px;color:#666;font-size:12px}.error-details{margin-top:10px;font-size:12px;color:#721c24;background:#dc35451a;padding:10px;border-radius:4px;word-break:break-word}
