*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;font-size:1rem;line-height:1.6;color:#1b1f29;background:#f9fbff;-webkit-font-smoothing:antialiased}button{cursor:pointer;font:inherit}input{font:inherit}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}code{font-family:monospace;background:#f0f1f5;padding:.15em .35em;border-radius:4px;font-size:.85em}.container{width:100%;max-width:960px;margin:0 auto;padding:0 1.5rem}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1b1f29,#141720);padding:2rem 1.5rem}.auth-card{width:100%;max-width:420px;background:#fff;border-radius:16px;padding:2.5rem 2rem;box-shadow:0 8px 32px #0000001f}.auth-card h1{font-size:1.5rem;font-weight:700;color:#1b1f29;margin-bottom:.25rem}.auth-subtitle{font-size:.875rem;color:#4b4f58;margin-bottom:1.5rem}.auth-error{background:#cf2e2e0f;color:#cf2e2e;padding:.65rem .85rem;border-radius:8px;font-size:.8125rem;margin-bottom:1rem;border:1px solid rgba(207,46,46,.15)}.auth-form{display:flex;flex-direction:column;gap:.35rem}.auth-form label{font-size:.75rem;font-weight:600;color:#4b4f58;text-transform:uppercase;letter-spacing:.04em;margin-top:.5rem}.auth-form input{padding:.65rem .85rem;border:1.5px solid #e0e3eb;border-radius:8px;font-size:.9375rem;transition:border-color .15s ease}.auth-form input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb1a}.auth-form button{margin-top:1rem;padding:.75rem;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:600;font-size:.9375rem;transition:background .15s ease}.auth-form button:hover:not(:disabled){background:#103eb2}.auth-form button:disabled{opacity:.5;cursor:not-allowed}.auth-switch{text-align:center;margin-top:1.25rem;font-size:.8125rem;color:#4b4f58}.dash-header{background:linear-gradient(135deg,#1b1f29,#141720);color:#fff;padding:1.5rem 0}.dash-header .container{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.dash-header h1{font-size:clamp(1.25rem,3vw,1.75rem);font-weight:700}.dash-user{display:flex;align-items:center;gap:1rem}.dash-greeting{font-size:.875rem;color:#ffffffb3}.logout-btn{padding:.4rem .85rem;background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.25);border-radius:8px;font-size:.8125rem;font-weight:500;transition:all .15s ease}.logout-btn:hover{border-color:#fff9;background:#ffffff14}.dash-main{padding:2rem 1.5rem;display:flex;flex-direction:column;gap:1.25rem}.dash-card{background:#fff;border:1px solid #e0e3eb;border-radius:12px;padding:1.5rem}.dash-card h2{font-size:1rem;font-weight:700;margin-bottom:.75rem;color:#1b1f29}.dash-details{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1rem;font-size:.875rem}.dash-details dt{font-weight:600;color:#4b4f58}.dash-details dd{color:#1b1f29;word-break:break-all}.mono{font-family:monospace;font-size:.8125rem;color:#4b4f58}.security-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.security-list li{display:flex;align-items:center;gap:.6rem;font-size:.8125rem;color:#4b4f58}.indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.indicator.success{background:#00d084}.dash-footer{text-align:center;padding:1.5rem 0;margin-top:2rem;border-top:1px solid #e0e3eb;color:#4b4f58;font-size:.8125rem}.oauth-buttons{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.oauth-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;padding:.65rem 1rem;border-radius:8px;font-size:.875rem;font-weight:500;text-decoration:none;border:1.5px solid #e0e3eb;background:#fff;color:#1b1f29;transition:all .15s ease}.oauth-btn:hover{border-color:#2563eb;background:#f5f8ff;text-decoration:none}.oauth-github{background:#1b1f29;color:#fff;border-color:#1b1f29}.oauth-github:hover{background:#2d3748;border-color:#2d3748}.auth-divider{display:flex;align-items:center;gap:.75rem;color:#9ca3af;font-size:.75rem;margin:.75rem 0 .25rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#e0e3eb}
