:root{--color-primary: #6911D5;--color-primary-hover: #5A0EB8;--color-primary-light: #EDE5F9;--color-primary-dark: #4A0B9A;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success: #059669;--color-success-light: #d1fae5;--color-error: #dc2626;--color-error-light: #fee2e2;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-info: #6911D5;--color-info-light: #EDE5F9;--font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--card-max-width: 420px;--card-max-width-wide: 560px;--border-radius: .5rem;--border-radius-sm: .375rem;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--transition-fast: .15s ease;--transition-normal: .2s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--color-gray-800);background-color:var(--color-gray-50);min-height:100vh}.app-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.auth-card{width:100%;max-width:var(--card-max-width);background:#fff;border-radius:var(--border-radius);box-shadow:var(--shadow-lg);padding:var(--spacing-xl);border:1px solid var(--color-gray-200)}.auth-card-wide{max-width:var(--card-max-width-wide)}.auth-header{text-align:center;margin-bottom:var(--spacing-lg)}.auth-logo-image{width:64px;height:64px;margin-bottom:var(--spacing-sm)}.auth-logo{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-primary);letter-spacing:-.025em;margin-bottom:var(--spacing-xs)}.auth-subtitle{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-top:var(--spacing-xs)}.auth-description{font-size:var(--font-size-sm);color:var(--color-gray-600);text-align:center;margin-bottom:var(--spacing-lg);line-height:1.5}.auth-client-info{text-align:center;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-gray-50);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-gray-600);border:1px solid var(--color-gray-200)}.auth-client-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background:linear-gradient(135deg,var(--color-gray-50) 0%,#ffffff 100%);border:1px solid var(--color-gray-200);border-radius:var(--border-radius);margin-bottom:var(--spacing-lg)}.auth-client-card-logo{flex-shrink:0}.auth-client-logo-img{width:44px;height:44px;border-radius:10px;border:2px solid var(--color-gray-200);object-fit:contain;padding:4px;background:#fff}.auth-client-logo-fallback{width:44px;height:44px;border-radius:10px;background:var(--color-gray-200);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-500)}.auth-client-card-body{display:flex;flex-direction:column;min-width:0}.auth-client-card-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gray-400);font-weight:500;line-height:1;margin-bottom:2px}.auth-client-card-name{font-size:var(--font-size-base);font-weight:700;color:var(--color-gray-800);line-height:1.3}.auth-client-card-desc{font-size:var(--font-size-xs);color:var(--color-gray-500);line-height:1.3}.auth-error{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-error-light);color:var(--color-error);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);border:1px solid #fecaca;line-height:1.5}.auth-success{padding:var(--spacing-md);background-color:var(--color-success-light);color:var(--color-success);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);border:1px solid #a7f3d0;line-height:1.6}.auth-success p+p{margin-top:var(--spacing-sm)}.auth-info{padding:var(--spacing-md);background-color:var(--color-info-light);color:var(--color-info);border-radius:var(--border-radius-sm);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm);border:1px solid #93c5fd;line-height:1.6}.auth-loading{text-align:center;color:var(--color-gray-500);padding:var(--spacing-xl);font-size:var(--font-size-sm)}.auth-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700)}.form-group input[type=text],.form-group input[type=email],.form-group input[type=password],.form-group input[type=number]{width:100%;padding:.625rem .75rem;border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-size:var(--font-size-base);font-family:var(--font-family);color:var(--color-gray-800);background-color:#fff;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none}.form-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-group input:disabled{background-color:var(--color-gray-100);cursor:not-allowed;opacity:.7}.form-group input::placeholder{color:var(--color-gray-400)}.field-error{font-size:var(--font-size-xs);color:var(--color-error);margin-top:2px}.device-code-input{text-align:center;font-size:var(--font-size-xl)!important;letter-spacing:.15em;text-transform:uppercase;font-weight:600}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;border:1px solid transparent;border-radius:var(--border-radius-sm);font-size:var(--font-size-base);font-weight:500;font-family:var(--font-family);cursor:pointer;transition:all var(--transition-fast);text-decoration:none;line-height:1.5}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-dark)}.btn-secondary{background-color:#fff;color:var(--color-gray-700);border-color:var(--color-gray-300)}.btn-secondary:hover:not(:disabled){background-color:var(--color-gray-50);border-color:var(--color-gray-400)}.btn-link{background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;padding:var(--spacing-xs) 0;text-decoration:underline}.btn-link:hover:not(:disabled){color:var(--color-primary-hover)}.btn-full{width:100%}.auth-links{text-align:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-gray-200)}.auth-link{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-sm);transition:color var(--transition-fast)}.auth-link:hover{color:var(--color-primary-hover);text-decoration:underline}.auth-link-separator{color:var(--color-gray-300);margin:0 var(--spacing-sm)}.mfa-options{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-200)}.mfa-setup-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.mfa-setup-step{padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-gray-200)}.mfa-setup-step:last-child{border-bottom:none;padding-bottom:0}.mfa-setup-step h3{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-800);margin-bottom:var(--spacing-sm)}.mfa-setup-step p{font-size:var(--font-size-sm);color:var(--color-gray-600);margin-bottom:var(--spacing-md)}.mfa-qr-container{display:flex;justify-content:center;margin:var(--spacing-md) 0}.mfa-qr-code{border:4px solid white;box-shadow:var(--shadow-md);border-radius:var(--border-radius-sm)}.mfa-manual-key{text-align:center;margin-top:var(--spacing-md)}.mfa-manual-key p{margin-bottom:var(--spacing-sm)}.mfa-key-display{display:inline-block;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-gray-100);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-family:Courier New,monospace;font-size:var(--font-size-sm);font-weight:600;letter-spacing:.05em;word-break:break-all;color:var(--color-gray-800)}.mfa-recovery-warning{padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-warning-light);color:var(--color-warning);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);border:1px solid #fcd34d;line-height:1.5;font-weight:500}.mfa-recovery-codes{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.mfa-recovery-code{display:block;text-align:center;padding:var(--spacing-sm);background-color:var(--color-gray-100);border:1px solid var(--color-gray-300);border-radius:var(--border-radius-sm);font-family:Courier New,monospace;font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-800)}.mfa-checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray-700);cursor:pointer}.mfa-checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary)}.consent-client{text-align:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--color-gray-50);border-radius:var(--border-radius-sm);border:1px solid var(--color-gray-200)}.consent-client p{font-size:var(--font-size-sm);color:var(--color-gray-600)}.consent-scopes{margin-bottom:var(--spacing-lg)}.consent-scopes h3{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-700);margin-bottom:var(--spacing-md)}.consent-scope-list{list-style:none;display:flex;flex-direction:column;gap:var(--spacing-sm)}.consent-scope-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-gray-50);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);color:var(--color-gray-700);border:1px solid var(--color-gray-200)}.consent-scope-icon{color:var(--color-success);font-weight:700;font-size:var(--font-size-base);flex-shrink:0}.consent-actions{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-top:var(--spacing-lg)}.auth-legal{text-align:center;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-gray-200, #e5e7eb);display:flex;justify-content:center;align-items:center;gap:.5rem}.auth-legal-link{color:var(--color-gray-400, #9ca3af);font-size:var(--font-size-xs, .75rem);text-decoration:none;transition:color .15s ease}.auth-legal-link:hover{color:var(--color-primary, #6911D5);text-decoration:underline}.landing-page{width:100%;max-width:520px;display:flex;flex-direction:column;gap:var(--spacing-xl)}.landing-header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.landing-logo{width:64px;height:64px;margin-bottom:var(--spacing-sm)}.landing-title{font-size:2rem;font-weight:800;color:var(--color-primary);letter-spacing:-.03em}.landing-tagline{font-size:var(--font-size-sm);color:var(--color-gray-500);font-weight:500;letter-spacing:.02em}.landing-message{background-color:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius);padding:var(--spacing-xl);text-align:center;box-shadow:var(--shadow-md)}.landing-message-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background-color:var(--color-info-light);color:var(--color-primary);font-size:1.5rem;font-weight:700;font-style:italic;font-family:Georgia,serif;margin-bottom:var(--spacing-md)}.landing-message-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-900);margin-bottom:var(--spacing-md)}.landing-message-text{font-size:var(--font-size-sm);color:var(--color-gray-600);line-height:1.7;margin-bottom:var(--spacing-sm)}.landing-message-text:last-child{margin-bottom:0}.landing-apps{background-color:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius);padding:var(--spacing-xl);box-shadow:var(--shadow-md)}.landing-apps-title{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-lg)}.landing-app-grid{display:flex;flex-direction:column;gap:var(--spacing-md)}.landing-app-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);border:1px solid var(--color-gray-200);border-radius:var(--border-radius-sm);text-decoration:none;transition:all var(--transition-fast);background-color:var(--color-gray-50)}.landing-app-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);background-color:#fff;transform:translateY(-1px)}.landing-app-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--border-radius-sm);color:#fff;font-size:var(--font-size-xl);font-weight:700;flex-shrink:0}.landing-app-info{display:flex;flex-direction:column;gap:2px}.landing-app-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-gray-900)}.landing-app-desc{font-size:var(--font-size-xs);color:var(--color-gray-500)}.landing-footer{text-align:center;display:flex;flex-direction:column;gap:var(--spacing-sm)}.landing-footer p{font-size:var(--font-size-xs);color:var(--color-gray-400)}.landing-footer-links{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm)}.landing-footer-links a{font-size:var(--font-size-xs);color:var(--color-gray-400);text-decoration:none;transition:color var(--transition-fast)}.landing-footer-links a:hover{color:var(--color-primary);text-decoration:underline}.landing-footer-links span{color:var(--color-gray-300);font-size:var(--font-size-xs)}.legal-page{width:100%;max-width:820px;display:flex;flex-direction:column;gap:var(--spacing-lg);padding:var(--spacing-xl) 0}.legal-header{display:flex;justify-content:center;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-gray-200)}.legal-header-brand{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;transition:opacity var(--transition-fast)}.legal-header-brand:hover{opacity:.8}.legal-logo{width:40px;height:40px}.legal-brand-name{font-size:var(--font-size-xl);font-weight:700;color:var(--color-primary);letter-spacing:-.025em}.legal-title-section{text-align:center;padding:var(--spacing-md) 0}.legal-title{font-size:2rem;font-weight:800;color:var(--color-gray-900);letter-spacing:-.03em;margin-bottom:var(--spacing-sm)}.legal-effective-date,.legal-last-updated{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-top:var(--spacing-xs)}.legal-content{background-color:#fff;border:1px solid var(--color-gray-200);border-radius:var(--border-radius);padding:var(--spacing-2xl);box-shadow:var(--shadow-md);line-height:1.8}.legal-section{padding-bottom:var(--spacing-xl);margin-bottom:var(--spacing-xl);border-bottom:1px solid var(--color-gray-100)}.legal-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.legal-section h2{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-900);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary-light)}.legal-section h3{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-800);margin-top:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.legal-section p{font-size:var(--font-size-base);color:var(--color-gray-700);margin-bottom:var(--spacing-md);line-height:1.8}.legal-section p:last-child{margin-bottom:0}.legal-section ul{list-style:disc;padding-left:var(--spacing-xl);margin-bottom:var(--spacing-md)}.legal-section ul li{font-size:var(--font-size-base);color:var(--color-gray-700);margin-bottom:var(--spacing-sm);line-height:1.7}.legal-section a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}.legal-section a:hover{color:var(--color-primary-hover);text-decoration:underline}.legal-contact-list{list-style:none;padding-left:0}.legal-contact-list li{padding:var(--spacing-xs) 0}.legal-table{width:100%;border-collapse:collapse;margin:var(--spacing-md) 0;font-size:var(--font-size-sm)}.legal-table th{background-color:var(--color-gray-50);font-weight:600;color:var(--color-gray-700);text-align:left;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-gray-200)}.legal-table td{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-gray-200);color:var(--color-gray-700)}.legal-table code{background-color:var(--color-gray-100);padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:var(--font-size-xs)}.legal-footer{text-align:center;display:flex;flex-direction:column;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-200)}.legal-footer p{font-size:var(--font-size-xs);color:var(--color-gray-400)}.legal-footer-links{display:flex;justify-content:center;align-items:center;gap:var(--spacing-sm)}.legal-footer-link{font-size:var(--font-size-xs);color:var(--color-gray-400);text-decoration:none;transition:color var(--transition-fast)}.legal-footer-link:hover{color:var(--color-primary);text-decoration:underline}.legal-footer-separator{color:var(--color-gray-300);font-size:var(--font-size-xs)}@media(max-width:480px){.app-container{padding:var(--spacing-md);justify-content:flex-start;padding-top:var(--spacing-xl)}.auth-card{padding:var(--spacing-lg);box-shadow:var(--shadow-md)}.auth-logo{font-size:var(--font-size-xl)}.mfa-recovery-codes{grid-template-columns:1fr}.legal-content{padding:var(--spacing-lg)}.legal-title{font-size:var(--font-size-xl)}.legal-section h2{font-size:var(--font-size-lg)}.legal-section h3{font-size:var(--font-size-base)}.legal-table{font-size:var(--font-size-xs)}.legal-table th,.legal-table td{padding:var(--spacing-xs) var(--spacing-sm)}}@media(max-width:360px){.auth-card,.legal-content{padding:var(--spacing-md)}}
