/* auth.css — surface-specific layout for signin + register.
 * Pairs with ava-canonical.css (loaded first). The canonical owns component
 * shape (cards, buttons, inputs, labels, pills, modal); this file owns
 * page-level layout — where things sit, how they're arranged for the auth
 * surface specifically.
 *
 * TS-IMPL-AVA-CANONICAL-COMPONENTS-V1-01 §1.2
 * Down from ~470 lines to ~180 — component shapes moved to canonical Layer 2.
 */

body.auth {
    margin: 0;
    font-family: var(--ava-font-family);
    font-size: var(--ava-fs-body);
    line-height: var(--ava-lh-normal);
    color: var(--ava-ink);
    background-color: var(--ava-white);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

/* ---------- Page-level layout ---------- */

.auth-container {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--ava-space-lg);
}

/* Wide variant — register form is wider than signin */
.auth-card--wide {
    max-width: 725px;
}

/* ---------- Auth header (logo + title + subtitle) ---------- */

.auth-header {
    text-align: center;
    margin-bottom: var(--ava-space-xl);
}

.auth-logo {
    width: 100px;
    height: 100px;
    margin: 0 auto var(--ava-space-md);
    border-radius: var(--ava-radius-pill);
    overflow: hidden;
    border: 2px solid var(--ava-green);
}

.auth-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.auth-title {
    font-size: var(--ava-fs-h1);
    font-weight: var(--ava-fw-bold);
    color: var(--ava-green);
    margin: 0;
}

.auth-subtitle {
    font-size: var(--ava-fs-body);
    color: var(--ava-gray);
    margin-top: var(--ava-space-sm);
    line-height: var(--ava-lh-normal);
}

/* ---------- Auth form layout ---------- */

.auth-form {
    display: flex;
    flex-direction: column;
    gap: var(--ava-space-md);
}

/* WhatsApp number input — country-code prefix + tel input on one row */
.whatsapp-input {
    position: relative;
}

.whatsapp-prefix {
    position: absolute;
    left: var(--ava-space-md);
    top: 50%;
    transform: translateY(-50%);
    color: var(--ava-gray);
    font-size: var(--ava-fs-body);
    pointer-events: none;
}

.whatsapp-input .ava-input {
    padding-left: 36px;
}

/* Signin WhatsApp row: country-code <select> + local number on ONE line.
   Scoped modifier (used only on the signin page) so the shared
   .whatsapp-input — which the register pages use for their absolute
   "+" overlay + 36px text inset — is left untouched. */
.whatsapp-input--row {
    display: flex;
    align-items: stretch;       /* select + input share height/alignment */
    gap: var(--ava-space-sm);
}
.whatsapp-input--row .ava-input {
    padding-left: var(--ava-space-md);  /* reset the overlay's 36px inset */
}
.whatsapp-input--row select.ava-input {
    flex: 0 0 auto;
    width: auto;                /* size to content: "+386 Slovenija" shows fully */
    max-width: none;            /* drop the 110px cap that truncated to "+386 S…" */
}
.whatsapp-input--row input.ava-input {
    flex: 1 1 auto;
    min-width: 0;               /* number field takes the rest, may shrink on mobile */
}

/* Two-column row inside the auth form (register: password + confirm) */
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--ava-space-md);
}

/* Helper text under inputs */
.help-text {
    font-size: var(--ava-fs-small);
    color: var(--ava-gray);
    margin-top: var(--ava-space-sm);
}

/* Password requirements panel — small advisory inside the form */
.password-requirements {
    background: var(--ava-white);
    border: 1px solid var(--ava-rule);
    border-radius: var(--ava-radius-sm);
    padding: var(--ava-space-md);
    margin-top: var(--ava-space-sm);
    font-size: var(--ava-fs-small);
    color: var(--ava-ink);
}

.password-requirements ul {
    list-style: none;
    margin: var(--ava-space-sm) 0 0;
    padding: 0;
}

.password-requirements li {
    padding: 2px 0 2px 16px;
    position: relative;
}

.password-requirements li::before {
    content: "·";
    position: absolute;
    left: 4px;
    color: var(--ava-green);
}

/* ---------- Terms checkbox row ---------- */

.terms-checkbox-container {
    display: flex;
    align-items: flex-start;
    gap: var(--ava-space-sm);
    font-size: var(--ava-fs-small);
    line-height: var(--ava-lh-normal);
    cursor: pointer;
    color: var(--ava-ink);
}

.terms-checkbox-container input[type="checkbox"] {
    margin-top: 2px;
    transform: scale(1.15);
    accent-color: var(--ava-green);
}

.terms-checkbox-container a {
    color: var(--ava-green);
    text-decoration: underline;
    font-weight: var(--ava-fw-medium);
}

/* ---------- Error / success messages ---------- */

.auth-message {
    padding: var(--ava-space-md);
    border: 1px solid var(--ava-rule);
    border-radius: var(--ava-radius-sm);
    margin-bottom: var(--ava-space-md);
    font-size: var(--ava-fs-body);
}

.auth-message--error {
    background: var(--ava-white);
    color: var(--ava-green-hover);
}

.auth-message--success {
    background: var(--ava-green);
    color: var(--ava-white);
    text-align: center;
}

/* ---------- Auth links footer ---------- */

.auth-links {
    text-align: center;
    margin-top: var(--ava-space-lg);
    padding-top: var(--ava-space-lg);
    border-top: 1px solid var(--ava-rule);
    color: var(--ava-gray);
    font-size: var(--ava-fs-small);
}

.auth-links p {
    margin: 0 0 var(--ava-space-sm);
}

.auth-links a,
.auth-link {
    color: var(--ava-green);
    text-decoration: none;
    font-weight: var(--ava-fw-medium);
}

.auth-links a:hover,
.auth-link:hover {
    text-decoration: underline;
}

/* signin: forgot-password link inline with label row */
.label-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--ava-space-sm);
}

.label-row .ava-label {
    margin-bottom: 0;
}

.label-row a {
    color: var(--ava-green);
    text-decoration: none;
    font-size: var(--ava-fs-small);
    font-weight: var(--ava-fw-medium);
}

/* Password show/hide toggle — sits under the password input */
.password-toggle {
    display: block;
    text-align: center;
    margin-top: var(--ava-space-sm);
    color: var(--ava-gray);
    font-size: var(--ava-fs-small);
    text-decoration: none;
    background: none;
    border: none;
    cursor: pointer;
    width: 100%;
}

.password-toggle:hover {
    color: var(--ava-ink);
}

/* ---------- Back link (register top-left) ---------- */

/* Positioned absolute on desktop; the inner element uses
 * .ava-button.ava-button--outline.ava-button--sm canonical classes. */
.back-link-wrap {
    position: absolute;
    top: var(--ava-space-md);
    left: var(--ava-space-md);
    z-index: 10;
}

/* ---------- Language switcher (top-right) ---------- */

/* Positioned absolute; the inner pills use canonical .ava-pill.ava-pill--interactive */
.language-switcher {
    position: absolute;
    top: var(--ava-space-md);
    right: var(--ava-space-md);
    display: flex;
    gap: 4px;
    z-index: 10;
}

/* ---------- Help modal content layout ---------- */

/* The modal shell uses canonical .ava-modal-overlay + .ava-modal.
 * Only auth-specific content layout lives here. */
.help-modal-textarea {
    width: 100%;
    height: 120px;
    margin: var(--ava-space-sm) 0;
    padding: var(--ava-space-sm);
    border: 1px solid var(--ava-rule);
    border-radius: var(--ava-radius-sm);
    font-family: inherit;
    font-size: var(--ava-fs-body);
    color: var(--ava-ink);
    resize: vertical;
}

.help-modal-hint {
    font-size: var(--ava-fs-small);
    color: var(--ava-gray);
    margin: var(--ava-space-sm) 0;
}

/* ---------- Responsive ---------- */

@media (max-width: 768px) {
    .form-row {
        grid-template-columns: 1fr;
    }
    .auth-title {
        font-size: var(--ava-fs-h2);
    }
    .back-link-wrap {
        position: static;
        display: block;
        margin-bottom: var(--ava-space-md);
    }
}
