*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#667eea,#764ba2);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;min-height:100vh;padding:20px}.container{margin:0 auto;max-width:1200px}header{color:#fff;margin-bottom:40px;padding:20px;text-align:center}header h1{font-size:2.5rem;margin-bottom:10px;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:1.1rem;opacity:.9}.loading-screen{align-items:center;color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:60vh}.spinner{animation:spin 1s linear infinite;border:4px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:50px;margin-bottom:20px;width:50px}.spinner-small{animation:spin .8s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;display:inline-block;height:16px;margin-right:8px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.login-container{align-items:center;display:flex;justify-content:center;min-height:60vh}.login-box{background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2);max-width:450px;padding:40px;width:100%}.login-box h2{color:#333;margin-bottom:10px}.login-box p{color:#666;line-height:1.6;margin-bottom:25px}.btn-google{align-items:center;background:#fff;border:1px solid #dadce0;border-radius:6px;color:#3c4043;cursor:pointer;display:flex;font-size:16px;font-weight:500;gap:12px;justify-content:center;margin-bottom:20px;padding:12px 24px;transition:all .2s;width:100%}.btn-google:hover:not(:disabled){box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.btn-google:disabled{cursor:not-allowed;opacity:.6}.info-box{background:#f8f9fa;border-left:4px solid #667eea;border-radius:6px;color:#666;font-size:14px;padding:15px}.divider{margin:20px 0;position:relative;text-align:center}.divider:before{background:#e5e7eb;content:"";height:1px;left:0;position:absolute;right:0;top:50%}.divider span{background:#fff;color:#9ca3af;display:inline-block;font-size:12px;font-weight:600;letter-spacing:.5px;padding:0 15px;position:relative;text-transform:uppercase}.password-form,.password-form .form-group{margin-bottom:20px}.password-form .form-group:last-child{margin-bottom:25px}.password-form label{color:#374151;display:block;font-size:14px;font-weight:500;margin-bottom:6px}.password-form .input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.password-form .input:focus{border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1);outline:none}.password-form .input:disabled{background:#f3f4f6;cursor:not-allowed}.btn-link{background:none;border:none;color:#667eea;cursor:pointer;font-size:14px;padding:8px 0;text-align:center;transition:color .2s;width:100%}.btn-link:hover:not(:disabled){color:#5568d3;text-decoration:underline}.btn-link:disabled{cursor:not-allowed;opacity:.6}.dashboard{background:#fff;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.2);padding:30px}.user-info{align-items:center;border-bottom:1px solid #eee;display:flex;gap:15px;margin-bottom:30px;padding-bottom:20px}.user-email{color:#333;flex:1;font-weight:500}.badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.admin-badge{background:#10b981;color:#fff}.user-badge{background:#6b7280;color:#fff}.btn-logout{background:#ef4444;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.btn-logout:hover{background:#dc2626}.card{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:25px;padding:25px}.card h2{color:#111827;font-size:1.5rem}.card h2,.card p{margin-bottom:15px}.card p{color:#6b7280;line-height:1.6}.stats-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.stat-item{background:#fff;border:2px solid #e5e7eb;border-radius:8px;padding:20px;text-align:center}.stat-item.success{background:#ecfdf5;border-color:#10b981}.stat-item.warning{background:#fffbeb;border-color:#f59e0b}.stat-value{color:#111827;font-size:2.5rem;font-weight:700;margin-bottom:5px}.stat-label{color:#6b7280;font-size:.9rem;letter-spacing:.5px;text-transform:uppercase}.sample-record{background:#fff;border-radius:6px;font-size:14px;line-height:1.8;margin-bottom:15px;padding:15px}.sample-record strong{color:#111827;display:block;margin-bottom:8px}.sample-record div{color:#6b7280}.form-group{margin-bottom:20px}.form-group label{color:#374151;display:block;font-weight:500;margin-bottom:8px}.form-group small{color:#6b7280;display:block;font-size:13px;margin-top:5px}.input{border:1px solid #d1d5db;border-radius:6px;font-size:14px;padding:10px 12px;transition:border-color .2s;width:100%}.input:focus{border-color:#667eea;box-shadow:0 0 0 3px rgba(102,126,234,.1);outline:none}.checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:8px}.checkbox-group input[type=checkbox]{cursor:pointer;height:18px;width:18px}.btn{border:none;border-radius:6px;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;padding:12px 24px;transition:all .2s}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover:not(:disabled){background:#5568d3;box-shadow:0 4px 12px rgba(102,126,234,.4);transform:translateY(-1px)}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.migration-result{background:#fff;border:2px solid #e5e7eb;border-radius:8px;margin-top:20px;padding:20px}.migration-result h3{color:#111827;margin-bottom:15px}.result-grid{display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:15px}.result-grid div{background:#f9fafb;border-radius:6px;padding:10px}.success-text{color:#10b981;font-weight:600}.error-text{color:#ef4444;font-weight:600}.error-details{background:#fef2f2;border-left:4px solid #ef4444;border-radius:6px;margin-top:15px;padding:15px}.error-details ul{margin-top:10px;padding-left:20px}.error-details li{color:#991b1b;font-size:13px;margin-bottom:5px}.error-message{background:#fef2f2;border-left:4px solid #ef4444;border-radius:6px;color:#991b1b;margin-bottom:20px;padding:15px}.success-message{background:#ecfdf5;border-left:4px solid #10b981;border-radius:6px;color:#065f46;margin-top:15px;padding:15px}.loading{color:#6b7280;font-style:italic}.log-container{background:#1f2937;border-radius:6px;font-family:Monaco,Courier New,monospace;font-size:13px;margin-bottom:15px;max-height:400px;overflow-y:auto;padding:15px}.log-entry{border-bottom:1px solid #374151;display:flex;gap:15px;padding:8px 0}.log-entry:last-child{border-bottom:none}.log-time{color:#9ca3af;min-width:80px}.log-message{color:#e5e7eb;flex:1}.log-entry.error .log-message{color:#fca5a5}.log-entry.success .log-message{color:#6ee7b7}.log-entry.warning .log-message{color:#fcd34d}@media (max-width:768px){body{padding:10px}header h1{font-size:2rem}.dashboard,.login-box{padding:20px}.stats-grid{grid-template-columns:1fr}.user-info{flex-wrap:wrap}.result-grid{grid-template-columns:1fr}}