/* Ortak giriş / kayıt / şifre kartı — landing ile aynı navy+krem */

.auth-page {
    font-family: 'Outfit', system-ui, sans-serif;
}
.auth-page *,
.auth-page *::before,
.auth-page *::after {
    box-sizing: border-box;
}

.auth-card,
.auth-page .login-box,
.auth-page .card {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 400px;
    background: #fff;
    border: 1px solid var(--auth-border, rgba(28, 52, 76, 0.1));
    border-radius: 20px;
    padding: 32px 28px 26px;
    box-shadow: 0 18px 48px rgba(28, 52, 76, 0.08);
}

.auth-card-wide { max-width: 460px; }

.auth-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    margin: 0 0 22px;
}

.auth-brand-lockup {
    display: block;
    width: min(260px, 82%);
    margin: 0 auto;
    line-height: 0;
    text-decoration: none;
    background: transparent;
}

.auth-brand-lockup img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0 auto;
    border: 0;
    border-radius: 0;
    background: transparent;
    object-fit: contain;
}

.auth-brand-kicker {
    margin: 12px 0 0;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
}

.auth-card .logo,
.auth-page .login-logo {
    text-align: center;
    margin-bottom: 20px;
}

.auth-card .logo .auth-brand,
.auth-page .login-logo .auth-brand {
    margin-bottom: 0;
}

.auth-card .logo-img,
.auth-page .brand-logo-login {
    width: min(200px, 100%);
    height: auto;
    display: block;
    margin: 0 auto 8px;
}

.auth-card h2,
.auth-page .login-logo h1 {
    font-size: 20px;
    font-weight: 700;
    color: #1c344c;
    letter-spacing: -0.02em;
    margin: 0 0 6px;
    text-align: center;
}

.auth-card .sub,
.auth-page .login-logo p {
    font-size: 13px;
    color: #475569;
    margin: 0;
}

.auth-field {
    margin-bottom: 14px;
}
.auth-field:last-of-type {
    margin-bottom: 18px;
}

.auth-card label,
.auth-page .form-group label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    color: #1c344c;
    margin-bottom: 6px;
    letter-spacing: .01em;
}

.auth-card input:not([type="hidden"]):not([type="checkbox"]),
.auth-card select,
.auth-page .form-control {
    display: block;
    width: 100%;
    height: 44px;
    min-height: 44px;
    max-height: 44px;
    padding: 10px 14px;
    border: 1.5px solid #e4dfd6;
    border-radius: 10px;
    font-size: 15px;
    line-height: 1.25;
    font-family: inherit;
    background: #faf9f7;
    transition: border-color .15s, box-shadow .15s, background .15s;
}

.auth-card input:not([type="hidden"]):-webkit-autofill,
.auth-page .form-control:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 44px #faf9f7 inset;
    box-shadow: 0 0 0 44px #faf9f7 inset;
}

.auth-card input:focus,
.auth-card select:focus,
.auth-page .form-control:focus {
    outline: none;
    border-color: #1c344c;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(28, 52, 76, 0.08);
}

.auth-card .btn-primary,
.auth-page .btn-primary,
.auth-card button[type="submit"] {
    width: 100%;
    justify-content: center;
    padding: 12px 16px;
    border-radius: 10px;
    font-weight: 600;
}

.auth-ok {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    padding: 16px;
    border-radius: 12px;
    text-align: center;
    color: #166534;
}

.auth-ok p { margin: 0 0 6px; }
.auth-links {
    margin-top: 18px;
    text-align: center;
    font-size: 13px;
}
.auth-links a { color: #1c344c; font-weight: 600; text-decoration: none; }
.auth-links a:hover { text-decoration: underline; }

.auth-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #1c344c;
    background: #f5f3ef;
    border: 1px solid rgba(28, 52, 76, 0.1);
    border-radius: 999px;
    padding: 4px 10px;
    margin-bottom: 14px;
}

.auth-otp {
    letter-spacing: 0.35em;
    text-align: center;
    font-size: 22px;
    font-weight: 600;
}

/* ==========================================================================
   Rol temaları (2026-10): personel girişi = yeşil, yönetici girişi = koyu lacivert + amber
   body.auth-role-staff  → portal/login.php
   body.auth-role-admin  → login.php
   ========================================================================== */

.auth-role-staff,
.auth-role-admin {
    --role-accent: #059669;
    --role-accent-dark: #047857;
    --role-accent-soft: #d1fae5;
    --role-accent-ring: rgba(5, 150, 105, 0.18);
}

.auth-role-admin {
    --role-accent: #d97706;
    --role-accent-dark: #b45309;
    --role-accent-soft: #fef3c7;
    --role-accent-ring: rgba(217, 119, 6, 0.2);
}

/* Rol etiketi: düz yazı yerine renkli rozet */
.auth-role-staff .auth-brand-kicker,
.auth-role-admin .auth-brand-kicker {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    padding: 5px 12px;
    border-radius: 999px;
    background: var(--role-accent-soft);
    color: var(--role-accent-dark);
    font-weight: 700;
}

.auth-role-staff .auth-brand-kicker::before,
.auth-role-admin .auth-brand-kicker::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--role-accent);
}

/* Kartın üstünde rol rengi şerit */
.auth-role-staff .portal-login-card,
.auth-role-admin .auth-card {
    border-top: 4px solid var(--role-accent);
}

/* ---------- Personel: açık yeşil zemin, yeşil buton ---------- */
body.auth-role-staff,
body.portal-login-page.auth-role-staff {
    background: #eef7f2;
}

.auth-role-staff .auth-bg-gradient {
    background:
        radial-gradient(ellipse 70% 55% at 10% 10%, rgba(5, 150, 105, 0.12) 0%, transparent 55%),
        radial-gradient(ellipse 60% 50% at 90% 90%, rgba(5, 150, 105, 0.08) 0%, transparent 50%),
        linear-gradient(165deg, #e3f2ea 0%, #f4faf6 50%, #eef7f2 100%);
}

.auth-role-staff .auth-bg-grid {
    background-image:
        linear-gradient(rgba(4, 120, 87, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(4, 120, 87, 0.05) 1px, transparent 1px);
}

.auth-role-staff .portal-login-submit {
    background: linear-gradient(135deg, var(--role-accent), var(--role-accent-dark));
    box-shadow: 0 8px 24px rgba(5, 150, 105, 0.35);
}

.auth-role-staff .portal-login-submit:hover {
    box-shadow: 0 10px 28px rgba(5, 150, 105, 0.45);
}

.auth-role-staff .portal-login-input-wrap input:focus {
    border-color: var(--role-accent);
    box-shadow: 0 0 0 4px var(--role-accent-ring);
}

.auth-role-staff .portal-login-remember input:checked {
    background: var(--role-accent);
    border-color: var(--role-accent);
}

.auth-role-staff .portal-pick-avatar {
    background: var(--role-accent);
}

/* ---------- Yönetici: koyu lacivert zemin, amber vurgu ---------- */
body.auth-role-admin {
    background: #0f2133;
}

.auth-role-admin .auth-bg-gradient {
    background:
        radial-gradient(ellipse 70% 55% at 12% 10%, rgba(217, 119, 6, 0.16) 0%, transparent 55%),
        radial-gradient(ellipse 60% 50% at 90% 92%, rgba(59, 130, 246, 0.12) 0%, transparent 50%),
        linear-gradient(165deg, #1c344c 0%, #152a3d 50%, #0f2133 100%);
}

.auth-role-admin .auth-bg-grid {
    opacity: 0.5;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
}

.auth-role-admin .auth-card {
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

.auth-role-admin .auth-card input:focus {
    border-color: var(--role-accent);
    box-shadow: 0 0 0 4px var(--role-accent-ring);
}

.auth-role-admin .auth-card .forgot a {
    color: var(--role-accent-dark);
}
