/* =========================================== LOGIN_SIGNUP.CSS — Styles for login & signup Global styles (reset, variables, body, nav, typography) are in stylesheet_global.css =========================================== */ .container-login { background-color: var(--butter-light); border: 1.5px solid var(--olive-light); border-radius: var(--radius-lg); padding: var(--space-40) var(--space-80) var(--space-80) var(--space-80); } .container-registration { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-64); background-color: var(--butter-light); border: 1.5px solid var(--olive-light); border-radius: var(--radius-lg); overflow: hidden; } .text-section { padding: var(--space-40) var(--space-80) var(--space-80) var(--space-80); } /* --- Image section --- */ .image-section { height: 100%; display: flex; } .image-section img { width: 100%; height: 100%; object-fit: cover; display: block; } .form-group.has-error { margin-bottom: 0; } input[type="text"], input[type="email"], input[type="password"] { font-size: 1.125rem; font-family: var(--font-main); width: 100%; padding: var(--space-8) var(--space-16); border: 1.5px solid var(--olive-light); border-radius: var(--radius-md); background: transparent; transition: border-color 0.3s ease; } input:focus { outline: none; border: 2px solid var(--olive); } /* --- Info box --- */ .info-box { background-color: var(--olive-light); padding: var(--space-16); margin-bottom: var(--space-40); border-radius: var(--radius-md); font-size: 1rem; color: var(--black); line-height: 1.4; } /* --- Hints & errors --- */ .error-message--field-callout { display: none; margin-top: 0.65rem; margin-left: auto; } .form-group.has-error input { border-color: var(--error); box-shadow: var(--shadow-error); } .form-group.has-error .error-message--field-callout { display: block; } */ /* --- Modal / Popup --- */ .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); animation: fadeIn 0.3s ease; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .modal.show { display: flex; justify-content: center; align-items: center; } @keyframes slideIn { from { transform: translateY(-50px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } .close-btn { position: absolute; right: 0; top: 0; font-size: 28px; color: var(--black); background: none; border: none; cursor: pointer; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; } .modal-footer { display: flex; gap: var(--space-2); justify-content: center; } .btn-primary { padding: var(--space-2) var(--space-32); background-color: var(--olive); color: var(--white); border: none; border-radius: var(--radius-pill); font-size: 1rem; font-weight: 700; font-family: var(--font-main); cursor: pointer; transition: background-color 0.3s ease; } .btn-primary:hover { background-color: var(--olive-dark); } /* --- Footer --- */ .footer { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: var(--space-16) var(--space-32); border: none; margin-top: 40px; } .footer_link { color: var(--black); text-decoration: underline; font-size: 0.8rem; font-weight: 400; } /* Left aligned */ .footer-left { justify-self: start; } /* Center aligned */ .footer-center { justify-self: center; } /* Right aligned */ .footer-right { justify-self: end; display: flex; gap: var(--space-24); } /* --- Responsive --- */ @media (max-width: 768px) { .container { flex-direction: column; } .image-section { min-height: 300px; } .error-message--field-callout { margin-top: var(--space-1); max-width: 100%; white-space: normal; } .error-message--field-callout::after { display: none; } } /* --- Snackbar --- */ .snackbar { position: fixed; bottom: 30px; left: 50%; transform: translateX(-50%) translateY(100px); background: var(--olive); color: var(--white); padding: var(--space-16) var(--space-40); border-radius: var(--radius-pill); font-size: 1rem; font-weight: 600; font-family: var(--font-main); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2); opacity: 0; transition: transform 0.4s ease, opacity 0.4s ease; z-index: 9999; pointer-events: none; } .snackbar--visible { transform: translateX(-50%) translateY(0); opacity: 1; }