:root{--bg:#f9fafb;--bg-card:#fff;--bg-input:#f3f4f6;--text:#111827;--text-secondary:#374151;--text-muted:#6b7280;--border:#e5e7eb;--border-hover:#d1d5db;--primary-500:#3b82f6;--primary-600:#2563eb;--magenta-500:#d946ef;--magenta-600:#c026d3;--error:#ef4444;--success:#22c55e}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}a{color:var(--primary-600);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:2rem}.card{background:var(--bg-card);border-radius:16px;padding:2rem;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.input-group{margin-bottom:1.5rem}.input-group label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.input-group input{border:1px solid var(--border);background:var(--bg-card);width:100%;color:var(--text);border-radius:12px;outline:none;padding:.875rem 1rem;font-size:1rem;transition:all .2s}.input-group input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f626}.input-group input::placeholder{color:var(--text-muted)}.btn{cursor:pointer;border:none;border-radius:9999px;justify-content:center;align-items:center;padding:.875rem 1.75rem;font-size:1rem;font-weight:500;transition:all .3s;display:inline-flex}.btn-primary{background:linear-gradient(135deg,var(--primary-600),var(--magenta-600));color:#fff;box-shadow:0 4px 14px #6366f140}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-500),var(--magenta-500));transform:translateY(-1px);box-shadow:0 6px 20px #6366f159}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-input);border-color:var(--border-hover)}.btn-full{width:100%}.error-message{color:var(--error);text-align:center;margin-top:.5rem;font-size:.875rem}.success-message{color:var(--success);margin-top:.5rem;font-size:.875rem}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.mb-8{margin-bottom:2rem}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;margin-top:2rem;display:grid}.project-card{background:var(--bg-card);cursor:pointer;color:inherit;border-radius:16px;text-decoration:none;transition:all .3s;overflow:hidden;box-shadow:0 1px 3px #0000001a,0 1px 2px #0000000f}.project-card:hover{text-decoration:none;transform:translateY(-6px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.project-image{object-fit:cover;background:linear-gradient(135deg,var(--primary-600),var(--magenta-600));width:100%;height:180px}.project-content{padding:1.5rem}.project-title{color:var(--text);margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.project-description{color:var(--text-muted);font-size:.875rem;line-height:1.6}.header{background:var(--bg-card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex}.header-title{background:linear-gradient(135deg,var(--primary-600),var(--magenta-600));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:700}.header-user{align-items:center;gap:1rem;display:flex}.header-email{color:var(--text-muted);font-size:.875rem}.login-container{background:linear-gradient(135deg,#f0f9ff 0%,#fdf4ff 100%);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.login-card{width:100%;max-width:420px}.login-logo{text-align:center;margin-bottom:2rem}.login-logo h1{background:linear-gradient(135deg,var(--primary-600),var(--magenta-600));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.75rem;font-weight:700}.login-logo p{color:var(--text-muted);margin-top:.5rem}.code-input{justify-content:center;gap:.5rem;margin:1.5rem 0;display:flex}.code-input input{text-align:center;border:1px solid var(--border);background:var(--bg-card);width:50px;height:60px;color:var(--text);border-radius:12px;outline:none;font-size:1.5rem;font-weight:600;transition:all .2s}.code-input input:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #3b82f626}.qr-container{flex-direction:column;align-items:center;margin:1.5rem 0;display:flex}.qr-code{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 1px 3px #0000001a}.secret-key{background:var(--bg-input);word-break:break-all;text-align:center;color:var(--text-muted);border-radius:8px;margin-top:1rem;padding:.75rem 1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.8rem}.spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.page-title{color:var(--text);margin-bottom:.5rem;font-size:2rem;font-weight:700}.page-subtitle{color:var(--text-muted);font-size:1rem}@media (max-width:640px){.container{padding:1rem}.card{border-radius:12px;padding:1.5rem}.header{flex-wrap:wrap;gap:.75rem;padding:.75rem 1rem}.header-title{font-size:1.1rem}.header-user{gap:.5rem}.header-email{display:none}.btn{padding:.75rem 1.25rem;font-size:.875rem}.btn-secondary{padding:.625rem 1rem}.projects-grid{grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}.project-card:hover{transform:none}.project-image{height:160px}.project-content{padding:1rem}.project-title{font-size:1.1rem}.login-container{padding:1rem;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.login-card{padding:1.5rem}.login-logo h1{font-size:1.5rem}.login-logo{margin-bottom:1.5rem}.input-group{margin-bottom:1rem}.input-group input{padding:.75rem;font-size:16px}.code-input{gap:.375rem}.code-input input{border-radius:10px;width:42px;height:52px;font-size:1.25rem}.qr-code img{width:180px;height:180px}.secret-key{padding:.5rem .75rem;font-size:.7rem}h2{font-size:1.25rem}.page-title{font-size:1.5rem}}@media (max-width:360px){.code-input input{width:38px;height:48px;font-size:1.1rem}.login-card{padding:1.25rem}.btn{padding:.625rem 1rem}}@supports (padding:env(safe-area-inset-bottom)){.header,.container{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}}
