:root{--bg-base:#0e1116;--bg-elevated:#1c1f28;--bg-field:#151921;--accent-primary:#2563eb;--accent-primary-hover:#3b82f6;--accent-secondary:#6b7280;--border-subtle:#ffffff1a;--text-main:#f3f4f6;--text-muted:#9ca3af;--error-color:#ef4444;--success-color:#10b981;--shell-max:800px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-base);background-image:linear-gradient(180deg, #12161e 0%, var(--bg-base) 45%, #0a0c10 100%), radial-gradient(ellipse 80% 50% at 10% 0%, #2563eb14, transparent 55%);color:var(--text-main);justify-content:center;align-items:center;min-height:100vh;padding:24px;font-family:Outfit,Plus Jakarta Sans,sans-serif;display:flex;position:relative;overflow-x:hidden}.container{width:100%;max-width:var(--shell-max);z-index:10;flex-direction:column;align-items:stretch;display:flex;position:relative}.header{text-align:left;width:100%;margin-bottom:28px;animation:.6s ease-out fadeInDown}.brand-lockup{align-items:center;gap:14px;margin-bottom:10px;display:inline-flex}.brand-lockup img{width:40px;height:40px;display:block}.header h1{letter-spacing:-.04em;color:var(--text-main);margin:0;font-family:Outfit,sans-serif;font-size:clamp(2.5rem,6vw,3.75rem);font-weight:700}.header p{color:var(--text-muted);max-width:36rem;font-size:1.125rem;font-weight:400}.glass-card,.portal-panel{background:var(--bg-elevated);border:1px solid var(--border-subtle);width:100%;box-shadow:none;border-radius:4px;animation:.45s ease-out scaleIn;position:relative;overflow:hidden}.auth-panel{padding:0}.chooser-panel{padding:36px}.auth-split{grid-template-columns:minmax(220px,.95fr) minmax(280px,1.15fr);align-items:stretch;min-height:440px;display:grid}.auth-welcome{background:var(--bg-field);border-right:1px solid var(--border-subtle);flex-direction:column;justify-content:center;gap:12px;padding:40px 36px;display:flex;position:relative;overflow:hidden}.auth-welcome-grid{opacity:.22;pointer-events:none;background-image:radial-gradient(circle,#f3f4f68c 1.5px,#0000 1.6px);background-position:12px 12px;background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(160deg,#000000d9,#0000 72%);mask-image:linear-gradient(160deg,#000000d9,#0000 72%)}.auth-welcome-grid:before{content:"";background:var(--accent-primary);width:72px;height:72px;position:absolute;top:0;left:0}.auth-welcome-grid:after{content:"";background:var(--accent-primary);width:4px;position:absolute;top:0;bottom:0;left:0}.auth-welcome-mark{width:64px;height:64px;margin-bottom:4px;animation:.7s ease-out fadeIn;position:relative}.auth-welcome-title{letter-spacing:-.03em;color:var(--text-main);font-size:1.5rem;font-weight:700;position:relative}.auth-welcome-copy{color:var(--text-muted);max-width:15.5rem;font-size:.975rem;line-height:1.55;position:relative}.auth-main{padding:36px 32px}.auth-tabs{border-bottom:1px solid var(--border-subtle);gap:16px;margin-bottom:28px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:10px 4px 14px;font-family:inherit;font-size:1rem;font-weight:600;transition:color .2s;position:relative}.tab-btn:hover,.tab-btn.active{color:var(--text-main)}.tab-btn.active:after{content:"";background:var(--accent-primary);width:100%;height:2px;position:absolute;bottom:-1px;left:0}.form-group{text-align:left;margin-bottom:20px}.form-label{color:var(--text-muted);letter-spacing:.02em;margin-bottom:8px;font-size:.875rem;font-weight:500;display:block}.input-wrapper{align-items:center;display:flex;position:relative}.input-field{background:var(--bg-field);border:1px solid var(--border-subtle);width:100%;color:var(--text-main);border-radius:4px;padding:14px 16px;font-family:inherit;font-size:1rem;transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--accent-primary);background:var(--bg-field);outline:none;box-shadow:0 0 0 2px #2563eb40}.btn{cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px;font-family:inherit;font-size:1rem;font-weight:600;transition:background .2s,border-color .2s,color .2s;display:flex}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:var(--accent-primary-hover)}.btn-outline{border:1px solid var(--border-subtle);color:var(--text-muted);background:0 0}.btn-outline:hover{color:var(--text-main);background:#ffffff0a;border-color:#ffffff2e}.btn:disabled{opacity:.5;cursor:not-allowed}.divider-container{color:var(--text-muted);align-items:center;margin:24px 0;font-size:.85rem;font-weight:500;display:flex}.divider-line{background:var(--border-subtle);flex:1;height:1px}.divider-text{letter-spacing:.05em;padding:0 12px}.alert{text-align:left;border-radius:4px;align-items:flex-start;gap:10px;margin-bottom:20px;padding:14px 16px;font-size:.925rem;font-weight:500;animation:.3s slideInUp;display:flex}.alert-error{color:#fca5a5;background:#ef44441a;border:1px solid #ef444440}.alert-success{color:#a7f3d0;background:#10b9811a;border:1px solid #10b98140}.apps-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:4px;display:grid}.apps-grid.apps-grid--with-platform{grid-template-columns:repeat(3,minmax(0,1fr))}.app-card--platform{border-color:#2563eb47}.app-card{background:var(--bg-field);border:1px solid var(--border-subtle);color:inherit;border-radius:4px;flex-direction:column;padding:28px;text-decoration:none;transition:border-color .2s,background .2s;display:flex;position:relative}.app-card:hover{background:#181c26;border-color:#2563eb73}.app-icon{justify-content:center;align-items:center;width:100%;height:120px;margin-bottom:20px;display:flex}.app-icon svg,.app-icon img{object-fit:contain;width:min(100%,168px);height:110px;display:block}.app-card h2{color:var(--text-main);letter-spacing:-.02em;margin-bottom:10px;font-size:1.4rem;font-weight:700}.app-card p{color:var(--text-muted);flex-grow:1;margin-bottom:24px;line-height:1.6}.app-open{text-align:center;pointer-events:none;align-self:stretch}.user-profile-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding-bottom:24px;display:flex}.user-info{flex:1;align-items:center;gap:14px;min-width:0;display:flex}.user-details{min-width:0}.user-avatar{background:var(--accent-primary);color:#fff;border:1px solid #ffffff1f;border-radius:4px;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.2rem;font-weight:700;display:flex;overflow:hidden}.user-avatar img{object-fit:cover;width:100%;height:100%}.user-details h3{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:1.1rem;font-weight:600;overflow:hidden}.user-details p{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.btn-signout{white-space:nowrap;width:auto;min-width:max-content;color:var(--text-main);background:0 0;border:none;flex-shrink:0;padding:6px 0;font-size:.875rem;font-weight:500}.btn-signout:hover{color:var(--accent-primary-hover);background:0 0;border:none}.spinner{border:2px solid #2563eb26;border-top-color:var(--accent-primary);border-radius:50%;width:36px;height:36px;margin:0 auto 16px;animation:.8s linear infinite spin}.dev-auth-title{color:var(--text-muted);text-align:center;margin-bottom:16px;font-size:.95rem}.dev-users-list{flex-direction:column;gap:8px;display:flex}.dev-user-btn{background:var(--bg-field);border:1px solid var(--border-subtle);color:var(--text-main);cursor:pointer;text-align:left;border-radius:4px;justify-content:space-between;align-items:center;padding:12px 16px;font-family:inherit;transition:border-color .2s,background .2s;display:flex}.dev-user-btn:hover{background:#181c26;border-color:#2563eb59}.dev-user-email{font-size:.9rem;font-weight:600}.dev-user-role{color:var(--text-muted);background:#ffffff0f;border-radius:2px;padding:2px 8px;font-size:.75rem;font-weight:500}.helper-links{justify-content:space-between;margin-top:16px;font-size:.875rem;display:flex}.helper-link{color:var(--accent-primary);cursor:pointer;background:0 0;border:none;font-family:inherit;text-decoration:none;transition:color .2s}.helper-link:hover{color:var(--accent-primary-hover);text-decoration:underline}.footer{text-align:left;width:100%;color:var(--text-muted);margin-top:28px;font-size:.875rem;animation:.8s ease-out fadeIn}.footer p{margin-bottom:6px}.google-icon-svg{width:18px;height:18px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hidden{display:none!important}@media (width<=768px){.header h1{font-size:2.25rem}.header{text-align:center}.header p{margin:0 auto}.brand-lockup{justify-content:center;width:100%}.auth-split{grid-template-columns:1fr;min-height:0}.auth-welcome{border-right:none;border-bottom:1px solid var(--border-subtle);justify-content:flex-start;gap:6px;padding:22px 20px 20px}.auth-welcome-mark{display:none}.auth-welcome-grid:before{width:40px;height:40px}.auth-welcome-title{font-size:1.15rem}.auth-welcome-copy{max-width:none;font-size:.9rem}.auth-main{padding:28px 20px}.chooser-panel{padding:24px 16px}.apps-grid,.apps-grid.apps-grid--with-platform{grid-template-columns:1fr}.user-profile-header{flex-wrap:wrap;align-items:flex-start;gap:10px 16px}.btn-signout{margin-left:auto}.footer{text-align:center}}@media (width<=420px){.user-profile-header{flex-direction:column;align-items:stretch}.btn-signout{align-self:flex-end;margin-left:0;padding:4px 0}}.chorus-loading{box-sizing:border-box;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex}.chorus-loading--viewport{width:100%;min-height:100dvh}.chorus-loading--fill{flex:1;width:100%;height:100%;min-height:200px}.chorus-loading__spinner{border:2px solid #2563eb26;border-top-color:#2563eb;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite chorus-loading-spin}.chorus-loading__spinner--large{border-width:3px;width:48px;height:48px}.chorus-loading__message{color:#9ca3af;margin:0;font-family:Plus Jakarta Sans,Outfit,system-ui,sans-serif;font-size:.9375rem;font-weight:500;line-height:1.4}@keyframes chorus-loading-spin{to{transform:rotate(360deg)}}
