Spaces:
Running
Running
| /* ββ RESET & BASE βββββββββββββββββββββββββββββββββββββββ */ | |
| *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } | |
| html { height: 100%; } | |
| body { | |
| font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; | |
| background: #edf0f7; | |
| min-height: 100vh; | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: center; | |
| padding: 40px 24px; | |
| } | |
| /* ββ AUTH WRAPPER βββββββββββββββββββββββββββββββββββββββ */ | |
| .auth-wrapper { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 48px; | |
| width: 100%; | |
| max-width: 1020px; | |
| margin: 0 auto; | |
| } | |
| /* ββ LEFT PANEL βββββββββββββββββββββββββββββββββββββββββ */ | |
| .auth-left { | |
| flex: 1; | |
| min-width: 0; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 24px; | |
| } | |
| .brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .brand-logo { | |
| font-size: 28px; | |
| font-weight: 900; | |
| color: #e85d04; | |
| letter-spacing: -1px; | |
| line-height: 1; | |
| } | |
| .brand-tagline { | |
| font-size: 15px; | |
| color: #5a6172; | |
| line-height: 1.6; | |
| max-width: 380px; | |
| } | |
| /* Campus image card */ | |
| .campus-img-card { | |
| border-radius: 16px; | |
| overflow: hidden; | |
| box-shadow: 0 8px 32px rgba(0,0,0,0.12); | |
| aspect-ratio: 16/9; | |
| max-height: 280px; | |
| background: #dde3ef; | |
| } | |
| .campus-img-card img { | |
| width: 100%; | |
| height: 100%; | |
| object-fit: cover; | |
| display: block; | |
| } | |
| /* ββ RIGHT PANEL ββββββββββββββββββββββββββββββββββββββββ */ | |
| .auth-right { | |
| width: 420px; | |
| min-width: 380px; | |
| flex-shrink: 0; | |
| } | |
| .auth-card { | |
| background: #fff; | |
| border-radius: 18px; | |
| box-shadow: 0 4px 24px rgba(0,0,0,0.09); | |
| padding: 40px 40px 32px; | |
| } | |
| /* ββ CARD HEADER ββββββββββββββββββββββββββββββββββββββββ */ | |
| .auth-card h2 { | |
| font-size: 22px; | |
| font-weight: 700; | |
| color: #1a1d23; | |
| margin-bottom: 4px; | |
| } | |
| .auth-card .subtitle { | |
| font-size: 13.5px; | |
| color: #8a8d91; | |
| margin-bottom: 24px; | |
| } | |
| /* ββ FORM GROUPS ββββββββββββββββββββββββββββββββββββββββ */ | |
| .form-group { margin-bottom: 16px; } | |
| .form-group label { | |
| display: block; | |
| font-size: 13px; | |
| font-weight: 600; | |
| color: #444; | |
| margin-bottom: 6px; | |
| } | |
| .input-wrapper { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .input-wrapper i { | |
| position: absolute; | |
| left: 13px; | |
| color: #b0b5bf; | |
| font-size: 14px; | |
| pointer-events: none; | |
| } | |
| .input-wrapper input, | |
| .input-wrapper select { | |
| width: 100%; | |
| padding: 11px 14px 11px 38px; | |
| border: 1.5px solid #e4e6ea; | |
| border-radius: 10px; | |
| font-size: 14px; | |
| color: #1a1d23; | |
| background: #fafbfc; | |
| outline: none; | |
| transition: border-color 0.18s, box-shadow 0.18s; | |
| font-family: inherit; | |
| } | |
| .input-wrapper input:focus, | |
| .input-wrapper select:focus { | |
| border-color: #e85d04; | |
| background: #fff; | |
| box-shadow: 0 0 0 3px rgba(232,93,4,0.09); | |
| } | |
| .input-wrapper input::placeholder { color: #c0c4cc; } | |
| .input-wrapper .toggle-password { | |
| position: absolute; | |
| right: 13px; | |
| color: #b0b5bf; | |
| cursor: pointer; | |
| font-size: 14px; | |
| pointer-events: all; | |
| transition: color 0.15s; | |
| } | |
| .input-wrapper .toggle-password:hover { color: #555; } | |
| /* ββ TWO COLUMN ROW βββββββββββββββββββββββββββββββββββββ */ | |
| .form-row { | |
| display: grid; | |
| grid-template-columns: 1fr 1fr; | |
| gap: 12px; | |
| } | |
| /* ββ HINT TEXT ββββββββββββββββββββββββββββββββββββββββββ */ | |
| .hint { font-size: 11.5px; color: #aaa; margin-top: 4px; } | |
| /* ββ FORGOT / REMEMBER ROW ββββββββββββββββββββββββββββββ */ | |
| .form-meta-row { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| margin-bottom: 20px; | |
| } | |
| .checkbox-inline { | |
| display: flex; | |
| align-items: center; | |
| gap: 7px; | |
| font-size: 13px; | |
| color: #555; | |
| cursor: pointer; | |
| } | |
| .checkbox-inline input[type="checkbox"] { | |
| width: 15px; height: 15px; | |
| accent-color: #e85d04; | |
| cursor: pointer; | |
| } | |
| .forgot-link { | |
| font-size: 13px; | |
| font-weight: 600; | |
| color: #e85d04; | |
| text-decoration: none; | |
| } | |
| .forgot-link:hover { text-decoration: underline; } | |
| /* ββ CHECKBOX GROUP (register) ββββββββββββββββββββββββββ */ | |
| .checkbox-group { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 9px; | |
| margin: 4px 0 18px; | |
| } | |
| .checkbox-group input[type="checkbox"] { | |
| width: 15px; height: 15px; | |
| accent-color: #e85d04; | |
| flex-shrink: 0; | |
| margin-top: 2px; | |
| cursor: pointer; | |
| } | |
| .checkbox-group label { | |
| font-size: 13px; | |
| color: #555; | |
| cursor: pointer; | |
| line-height: 1.5; | |
| font-weight: 400; | |
| } | |
| .checkbox-group a { color: #e85d04; text-decoration: none; font-weight: 600; } | |
| .checkbox-group a:hover { text-decoration: underline; } | |
| /* ββ PRIMARY BUTTON βββββββββββββββββββββββββββββββββββββ */ | |
| .btn-primary { | |
| width: 100%; | |
| padding: 12px; | |
| background: #e85d04; | |
| color: #fff; | |
| border: none; | |
| border-radius: 10px; | |
| font-size: 15px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| transition: background 0.18s, transform 0.1s; | |
| letter-spacing: 0.2px; | |
| } | |
| .btn-primary:hover { background: #c94e00; } | |
| .btn-primary:active { transform: scale(0.99); } | |
| .btn-primary:disabled { background: #f4b28c; cursor: not-allowed; } | |
| /* ββ SECONDARY BUTTON (Create Account) βββββββββββββββββ */ | |
| .btn-secondary { | |
| width: 100%; | |
| padding: 11px; | |
| background: transparent; | |
| color: #1a1d23; | |
| border: 1.5px solid #dde0e6; | |
| border-radius: 10px; | |
| font-size: 14px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| transition: border-color 0.15s, background 0.15s; | |
| margin-top: 10px; | |
| } | |
| .btn-secondary:hover { | |
| border-color: #e85d04; | |
| color: #e85d04; | |
| background: #fff6f2; | |
| } | |
| /* ββ SOCIAL LOGIN BUTTONS βββββββββββββββββββββββββββββββ */ | |
| .social-login-group { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 10px; | |
| margin-bottom: 16px; | |
| } | |
| .social-btn { | |
| width: 100%; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 10px; | |
| padding: 11px 16px; | |
| border-radius: 10px; | |
| font-size: 14px; | |
| font-weight: 600; | |
| cursor: pointer; | |
| border: 1.5px solid #e4e6ea; | |
| background: #fff; | |
| color: #1a1d23; | |
| transition: background 0.15s, border-color 0.15s, box-shadow 0.15s; | |
| font-family: inherit; | |
| letter-spacing: 0.1px; | |
| } | |
| .social-btn:hover { | |
| box-shadow: 0 2px 8px rgba(0,0,0,0.09); | |
| } | |
| .social-btn.google:hover { border-color: #EA4335; background: #fef9f9; } | |
| .social-btn.naver:hover { border-color: #03C75A; background: #f2fdf6; } | |
| .social-btn.kakao:hover { border-color: #e6cf00; background: #fffef0; } | |
| /* ββ DIVIDER ββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .divider { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| margin: 20px 0 16px; | |
| } | |
| .divider::before, | |
| .divider::after { | |
| content: ''; | |
| flex: 1; | |
| height: 1px; | |
| background: #eee; | |
| } | |
| .divider span { | |
| font-size: 11.5px; | |
| color: #bbb; | |
| font-weight: 500; | |
| white-space: nowrap; | |
| letter-spacing: 0.5px; | |
| } | |
| /* ββ CARD FOOTER LINKS ββββββββββββββββββββββββββββββββββ */ | |
| .card-footer-links { | |
| text-align: center; | |
| margin-top: 20px; | |
| padding-top: 16px; | |
| border-top: 1px solid #f0f2f5; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 6px; | |
| flex-wrap: wrap; | |
| } | |
| .card-footer-links a { | |
| font-size: 12px; | |
| color: #8a8d91; | |
| text-decoration: none; | |
| transition: color 0.15s; | |
| } | |
| .card-footer-links a:hover { color: #e85d04; } | |
| .card-footer-links .dot { | |
| width: 3px; height: 3px; | |
| border-radius: 50%; | |
| background: #ccc; | |
| display: inline-block; | |
| } | |
| /* ββ NEW TO COMMUNITY TEXT ββββββββββββββββββββββββββββββ */ | |
| .new-to-community { | |
| text-align: center; | |
| font-size: 13px; | |
| color: #8a8d91; | |
| margin-top: 16px; | |
| } | |
| /* ββ AUTH SWITCH LINK βββββββββββββββββββββββββββββββββββ */ | |
| .auth-switch { | |
| text-align: center; | |
| margin-top: 16px; | |
| font-size: 13.5px; | |
| color: #777; | |
| } | |
| .auth-switch a { | |
| color: #e85d04; | |
| font-weight: 600; | |
| text-decoration: none; | |
| } | |
| .auth-switch a:hover { text-decoration: underline; } | |
| /* ββ ALERT MESSAGES βββββββββββββββββββββββββββββββββββββ */ | |
| .alert { | |
| padding: 11px 14px; | |
| border-radius: 9px; | |
| font-size: 13px; | |
| margin-bottom: 16px; | |
| display: none; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .alert.show { display: flex; } | |
| .alert-error { | |
| background: #fef2f2; | |
| border: 1px solid #fecaca; | |
| color: #dc2626; | |
| } | |
| .alert-success { | |
| background: #f0fdf4; | |
| border: 1px solid #bbf7d0; | |
| color: #166534; | |
| } | |
| /* ββ SPINNER ββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .spinner { | |
| width: 16px; height: 16px; | |
| border: 2px solid rgba(255,255,255,0.4); | |
| border-top-color: #fff; | |
| border-radius: 50%; | |
| animation: spin 0.7s linear infinite; | |
| } | |
| @keyframes spin { to { transform: rotate(360deg); } } | |
| /* ββ RESPONSIVE βββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 820px) { | |
| .auth-wrapper { flex-direction: column; gap: 28px; } | |
| .auth-left { align-items: center; text-align: center; } | |
| .brand-tagline { max-width: 100%; } | |
| .auth-right { width: 100%; min-width: unset; } | |
| } | |
| @media (max-width: 480px) { | |
| body { padding: 16px 12px; } | |
| .auth-card { padding: 28px 20px 22px; } | |
| .form-row { grid-template-columns: 1fr; } | |
| } |