vbb / static /login.css
PratyanshSrivastava's picture
Upload 2212 files
d7ef89d verified
Raw
History Blame Contribute Delete
5.87 kB
/* RESET / BASE */
*,
*::before,
*::after {
box-sizing: border-box;
}
html, body {
margin: 0;
padding: 0;
}
body {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
color: #111;
background-color: #050505;
}
/* LAYOUT SHELL */
.page-shell {
min-height: 100vh;
display: grid;
grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
background: radial-gradient(circle at top left, #1c1c1c 0, #050505 50%, #000 100%);
color: #fff;
}
/* BRAND SIDE */
.brand-side {
display: flex;
align-items: center;
justify-content: center;
padding: 40px;
}
.brand-inner {
max-width: 420px;
}
.brand-mark {
width: 52px;
height: 52px;
border-radius: 50%;
border: 1px solid #fff;
display: flex;
align-items: center;
justify-content: center;
font-weight: 600;
font-size: 18px;
margin-bottom: 16px;
}
.brand-title {
font-size: 32px;
letter-spacing: 0.06em;
text-transform: uppercase;
margin-bottom: 10px;
}
.brand-subtitle {
color: #c4c4c4;
font-size: 15px;
max-width: 280px;
}
/* AUTH SIDE */
.auth-side {
display: flex;
align-items: center;
justify-content: center;
padding: 24px;
}
.auth-card {
width: 100%;
max-width: 420px;
background: #ffffff;
color: #111;
border-radius: 24px;
padding: 28px 26px 26px;
box-shadow:
0 26px 60px rgba(0, 0, 0, 0.5),
0 0 0 1px rgba(0, 0, 0, 0.08);
}
.auth-header {
margin-bottom: 20px;
}
.auth-title {
font-size: 24px;
margin: 0 0 4px;
}
.auth-caption {
margin: 0;
font-size: 14px;
color: #555;
}
/* ALERT */
.alert {
margin-bottom: 18px;
padding: 10px 12px;
border-radius: 10px;
background: #fdf2f2;
color: #b91c1c;
border: 1px solid #fecaca;
font-size: 13px;
}
/* ROLE TABS */
.role-tabs {
position: relative;
display: grid;
grid-template-columns: repeat(3, 1fr);
border-radius: 999px;
padding: 3px;
background: #f3f3f3;
margin-bottom: 22px;
}
.role-input {
display: none;
}
.role-tab {
position: relative;
z-index: 1;
cursor: pointer;
text-align: center;
padding: 8px 0;
font-size: 13px;
text-transform: uppercase;
letter-spacing: 0.08em;
color: #555;
user-select: none;
transition: color 0.2s ease-out;
}
.role-label {
display: inline-block;
}
.role-active-indicator {
position: absolute;
top: 3px;
bottom: 3px;
width: calc(33.333% - 4px);
border-radius: 999px;
background: #111;
transition: transform 0.25s ease-out;
}
/* TAB LOGIC */
#tab-student:checked ~ .role-tab[for="tab-student"],
#tab-teacher:checked ~ .role-tab[for="tab-teacher"],
#tab-admin:checked ~ .role-tab[for="tab-admin"] {
color: #fff;
}
#tab-student:checked ~ .role-active-indicator {
transform: translateX(0%);
}
#tab-teacher:checked ~ .role-active-indicator {
transform: translateX(100%);
}
#tab-admin:checked ~ .role-active-indicator {
transform: translateX(200%);
}
/* FORM FIELDS */
.auth-form {
display: flex;
flex-direction: column;
}
.field-group {
margin-bottom: 16px;
}
.field-label {
display: block;
font-size: 13px;
font-weight: 500;
margin-bottom: 6px;
color: #333;
}
.field-input {
width: 100%;
border-radius: 12px;
border: 1px solid #d4d4d4;
padding: 11px 13px;
font-size: 15px;
background: #f9fafb;
transition: border-color 0.18s ease-out, box-shadow 0.18s ease-out, background 0.18s ease-out;
}
.field-input:focus {
outline: none;
border-color: #111;
background: #fff;
box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.08);
}
.field-row {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 18px;
gap: 12px;
}
.checkbox {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 13px;
color: #444;
cursor: pointer;
}
.checkbox input {
width: 14px;
height: 14px;
}
/* BUTTON */
.btn-primary {
border: none;
border-radius: 999px;
padding: 11px 16px;
background: #111;
color: #fff;
font-weight: 600;
font-size: 15px;
cursor: pointer;
width: 100%;
margin-bottom: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 6px;
transition: background 0.18s ease-out, transform 0.1s ease-out, box-shadow 0.18s ease-out;
}
.btn-primary:hover {
background: #222;
transform: translateY(-1px);
box-shadow: 0 14px 30px rgba(0, 0, 0, 0.4);
}
.btn-primary:active {
transform: translateY(0);
box-shadow: none;
}
/* LINKS / TEXT */
.link-muted {
font-size: 13px;
color: #666;
text-decoration: none;
border-bottom: 1px solid transparent;
padding-bottom: 1px;
transition: color 0.15s ease-out, border-color 0.15s ease-out;
}
.link-muted:hover {
color: #111;
border-color: #111;
}
.legal-text {
font-size: 11px;
color: #777;
margin: 0;
text-align: center;
}
/* RESPONSIVE */
@media (max-width: 900px) {
.page-shell {
grid-template-columns: 1fr;
padding: 16px;
}
.brand-side {
display: none;
}
.auth-side {
padding: 0;
}
.auth-card {
max-width: 480px;
margin: 0 auto;
}
}
@media (max-width: 480px) {
.auth-card {
border-radius: 18px;
padding: 22px 18px 18px;
}
.auth-title {
font-size: 21px;
}
}