:root{--bg: #0A0F0C;--surface: #121814;--surface-raised: #171E19;--border: rgba(255, 255, 255, .09);--border-hair: rgba(255, 255, 255, .14);--border-focus: rgba(16, 185, 129, .6);--green: #10B981;--green-dark: #0DA271;--green-text: #34D399;--green-glow: rgba(16, 185, 129, .14);--green-subtle: rgba(16, 185, 129, .1);--text: #E6E9E6;--text-heading: #F5F7F5;--text-secondary: #8A928C;--text-dim: #5A625C;--error: #F87171;--error-bg: rgba(239, 68, 68, .12);--approve: #10B981;--approve-bg: rgba(16, 185, 129, .1);--approve-border: rgba(16, 185, 129, .24);--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;font-family:var(--font-sans);font-size:15px;line-height:1.6;font-weight:400;color:var(--text);background-color:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;background-color:var(--bg)}#root{max-width:none;padding:0;text-align:left}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;background-color:var(--bg);background-image:radial-gradient(circle at 50% -10%,rgba(16,185,129,.1) 0%,transparent 55%)}.auth-card{width:100%;max-width:408px;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:2.75rem;position:relative;animation:cardIn .55s cubic-bezier(.16,1,.3,1) both;box-shadow:0 0 0 1px #ffffff08 inset,0 24px 56px #0000008c}@keyframes cardIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.brand-lockup{display:flex;align-items:center;gap:.625rem;margin-bottom:2.25rem}.brand-icon{width:34px;height:34px;background:var(--green-glow);border:1px solid rgba(16,185,129,.24);border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.brand-name{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--text-secondary)}.auth-title{font-family:var(--font-sans);font-size:1.75rem;font-weight:800;line-height:1.15;color:var(--text-heading);letter-spacing:-.03em;margin-bottom:.375rem}.auth-subtitle{font-size:.875rem;font-weight:400;color:var(--text-secondary);margin-bottom:2rem}.auth-form{display:flex;flex-direction:column;gap:1.125rem}.field{display:flex;flex-direction:column;gap:.4rem}.field-label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}.field-input{background:var(--surface-raised);border:1px solid var(--border-hair);border-radius:8px;padding:.8125rem 1rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:400;color:var(--text);outline:none;transition:border-color .2s,box-shadow .2s;width:100%;appearance:none}.field-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #10b9811a}.field-input::placeholder{color:var(--text-dim)}.error-msg{background:var(--error-bg);border:1px solid rgba(239,68,68,.2);border-radius:8px;padding:.75rem 1rem;font-size:.875rem;color:var(--error);line-height:1.5}.btn-primary{background:var(--green);color:#04140d;border:none;border-radius:8px;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:700;letter-spacing:.01em;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s;width:100%;margin-top:.375rem;box-shadow:0 8px 20px #10b98133}.btn-primary:hover:not(:disabled){background:var(--green-dark);transform:translateY(-1px);box-shadow:0 12px 20px #10b9813d}.btn-primary:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.loading-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--bg)}.spinner{width:28px;height:28px;border:2px solid rgba(16,185,129,.18);border-top-color:var(--green);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.consent-card{max-width:460px}.client-block{display:flex;align-items:center;gap:1rem;padding:1.125rem 1.25rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:14px;margin-bottom:1.75rem}.client-avatar{width:46px;height:46px;background:var(--green-subtle);border:1px solid rgba(16,185,129,.16);border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.25rem}.client-name{font-family:var(--font-sans);font-size:1.0625rem;font-weight:700;color:var(--text-heading);margin-bottom:.2rem;line-height:1.2}.client-uri{font-size:.72rem;color:var(--text-secondary);font-family:SF Mono,Fira Code,Cascadia Code,monospace;word-break:break-all;line-height:1.4}.scopes-label{font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:.625rem}.scope-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.scope-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;background:var(--approve-bg);border:1px solid var(--approve-border);border-radius:8px;font-size:.875rem;color:var(--text)}.scope-check{color:var(--approve);font-size:.875rem;flex-shrink:0;line-height:1}.consent-actions{display:flex;flex-direction:column;gap:.625rem}.btn-approve{background:var(--approve);color:#04140d;border:none;border-radius:8px;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:700;cursor:pointer;transition:background .15s,transform .15s,box-shadow .15s;width:100%;box-shadow:0 8px 20px #10b98133}.btn-approve:hover{background:var(--green-dark);transform:translateY(-1px);box-shadow:0 12px 20px #10b9813d}.btn-approve:active{transform:translateY(0);box-shadow:none}.btn-deny{background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:8px;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s;width:100%}.btn-deny:hover:not(:disabled){color:var(--error);border-color:#ef44444d}.btn-approve:disabled,.btn-deny:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary,.btn-approve,.btn-deny{display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-spinner{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
