:root {
    --cfm-font: system-ui;
    --cfm-font-mono: ui-monospace, "Cascadia Mono", Consolas, monospace;

    --cfm-ink: #2B2116;
    --cfm-ink-soft: #5A4A38;
    --cfm-cream: #F9F3EA;
    --cfm-dark: #3A3937;
    /* GOLD gyűjtősor kontraszt próba (2026-10-07): csak a #9A9A9A gyűjtősor szövege. Vissza: ez a sor #3A3937. */
    --cfm-collector-text: #32312F;
    /* ROBI052: a főtábla számainak mélyebb tintája. */
    --cfm-ink-strong: #1E1C19;
    --cfm-sand: #F0E6DF;
    --cfm-gold: #EAD4A2;
    --cfm-gold-deep: #D5AC4F;
    --cfm-line: #C5AB85;
    --cfm-burgundy: #8E1202;
    --cfm-burgundy-dark: #6C0E02;

    --cfm-r-sm: 6px;
    --cfm-r-btn: 8px;
    --cfm-r-md: var(--cfm-r-btn);
    --cfm-r-lg: 12px;
    --cfm-r-pill: 999px;
    --cfm-r-icon: 50%;

    --cfm-shadow-sm: 0 1px 3px rgba(43, 33, 22, 0.28);
    --cfm-shadow-md: 0 2px 6px rgba(43, 33, 22, 0.22);
    --cfm-shadow-lg: 0 8px 24px rgba(43, 33, 22, 0.28);

    /* HARD RULE CFM-QA-20261005-032: 7cea0aa4 fólia. Robi engedélye nélkül ne cseréld none-ra vagy másik gradiensre. */
    --cfm-foil: repeating-linear-gradient(90deg, #d5ac4fff 0%, #d5ac4fff 6%, #fff59fff 8%, #fff59fff 9%, #d5ad50ff 13%, #b38836ff 17%, #b38836ff 22%, #b38836ff 24%, #d3ab50ff 28%, #d3ab50ff 29%, #f3d075ff 38%, #f3d075ff 47%, #fff49fff 49%, #b1863aff 53%, #b1863aff 57%, #b1863aff 60%, #d4ab52ff 67%, #f3d076ff 75%, #f3d076ff 76%, #f3d076ff 79%, #fff8bbff 87%, #d1ab63ff 95%, #d1ab63ff 100%);

    /* Érintési célpont és a közte hagyott hézag (CFM-QA-20261002-025). */
    --cfm-touch: 44px;
    --cfm-touch-gap: 8px;
}
/* --- Auth (login + jelszó-visszaállítás) --- */
body.cfm-auth {
    --cfm-burgundy: #8e1202;
    --cfm-gold: #ead4a2;
    --cfm-cream: #F9F3EA;
    --cfm-header: #3a3937;
    font-family: var(--cfm-font);
    min-height: 100vh;
}

body.cfm-auth .cfm-auth-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    box-sizing: border-box;
}

body.cfm-auth .cfm-auth-card {
    width: 100%;
    max-width: 420px;
    background-color: var(--cfm-cream);
    border-radius: var(--cfm-r-lg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
    overflow: hidden;
}

/* CFM-QA-20261007-062: a burgundi logó feketén 2,2:1, krémen 8,5:1. Csak a meglévő palettaszín. */
body.cfm-auth .cfm-auth-header {
    background-color: var(--cfm-cream);
    padding: 18px 20px 14px;
    text-align: center;
    border-bottom: 3px solid #d5ac4f;
}

body.cfm-auth .cfm-auth-logo {
    display: block;
    margin: 0 auto;
    max-width: min(320px, 100%);
    height: auto;
    max-height: 88px;
    object-fit: contain;
}

body.cfm-auth .cfm-auth-body {
    padding: 22px 28px 28px;
}

body.cfm-auth .cfm-auth-brand-title {
    margin: 0;
    text-align: center;
    font-family: var(--cfm-font);
    font-size: 1.55rem;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: #111;
}

body.cfm-auth .cfm-auth-separator {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 4px 0 14px;
}

body.cfm-auth .cfm-auth-separator-line {
    flex: 1;
    height: 1px;
    background-color: #111;
}

body.cfm-auth .cfm-auth-separator-text {
    font-family: var(--cfm-font);
    font-size: 1.05rem;
    font-weight: 400;
    font-style: italic;
}

body.cfm-auth .cfm-auth-heading {
    margin: 0 0 18px;
    text-align: center;
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--cfm-burgundy);
}

body.cfm-auth .cfm-auth-intro {
    margin: 0 0 16px;
    font-size: 0.98rem;
    font-weight: 500;
    line-height: 1.45;
    color: #333;
}

body.cfm-auth .cfm-auth-field {
    margin-bottom: 16px;
}

body.cfm-auth .cfm-auth-label,
body.cfm-auth label {
    display: block;
    margin-bottom: 6px;
    font-size: 1rem;
    font-weight: 700;
    color: #222;
}

body.cfm-auth label.required:after {
    content: " *";
    color: var(--cfm-burgundy);
    font-weight: 700;
}

body.cfm-auth .cfm-auth-input,
body.cfm-auth .form-control {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 46px;
    padding: 10px 12px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
    color: #111;
    background-color: #fff8ee;
    border: 1px solid #c5ab85;
    border-radius: var(--cfm-r-md);
}

body.cfm-auth .cfm-auth-input:focus,
body.cfm-auth .form-control:focus {
    outline: none;
    border-color: var(--cfm-burgundy);
    box-shadow: 0 0 0 3px rgba(142, 18, 2, 0.18);
    background-color: #fff;
}

body.cfm-auth .cfm-auth-link,
body.cfm-auth a.cfm-auth-link {
    display: inline-block;
    margin-top: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--cfm-burgundy) !important;
    text-decoration: none;
}

body.cfm-auth .cfm-auth-link:hover,
body.cfm-auth a.cfm-auth-link:hover {
    text-decoration: underline;
    color: #6c0e02 !important;
}

body.cfm-auth .cfm-auth-remember {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.cfm-auth .cfm-auth-remember label {
    margin: 0;
    font-weight: 600;
}

body.cfm-auth .cfm-auth-submit,
body.cfm-auth button.cfm-auth-submit {
    display: block;
    width: 100%;
    margin-top: 8px;
    min-height: 48px;
    padding: 12px 16px;
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--cfm-cream);
    background-color: var(--cfm-burgundy);
    border: 0;
    border-radius: var(--cfm-r-md);
    cursor: pointer;
}

body.cfm-auth .cfm-auth-submit:hover,
body.cfm-auth button.cfm-auth-submit:hover {
    filter: brightness(0.92);
}

body.cfm-auth .cfm-auth-submit:disabled,
body.cfm-auth button.cfm-auth-submit:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    filter: none;
}

body.cfm-auth .cfm-auth-alert,
body.cfm-auth .alert-danger {
    margin-bottom: 16px;
    padding: 10px 12px;
    font-size: 0.95rem;
    font-weight: 600;
    color: #6c0e02;
    background-color: #fdecea;
    border: 1px solid #e3b6b0;
    border-radius: var(--cfm-r-md);
}

body.cfm-auth .cfm-auth-success {
    margin: 0 0 16px;
    padding: 12px 14px;
    font-size: 0.95rem;
    font-weight: 600;
    line-height: 1.45;
    color: #24452f;
    background-color: #eef4e6;
    border: 1px solid #c3d6b0;
    border-left: 4px solid #d5ac4f;
    border-radius: var(--cfm-r-md);
}

body.cfm-auth .cfm-auth-hint {
    margin: -4px 0 14px;
    font-size: 0.85rem;
    font-weight: 500;
    color: #6b665a;
}

body.cfm-auth a.cfm-auth-link.cfm-auth-link-inline {
    display: inline;
    margin: 0;
}

body.cfm-auth a.cfm-auth-submit.cfm-auth-submit-link {
    color: var(--cfm-cream) !important;
    box-sizing: border-box;
    text-align: center;
    text-decoration: none;
    line-height: 24px;
    margin-bottom: 14px;
}

body.cfm-auth .invalid-feedback,
body.cfm-auth .form-error-message {
    font-weight: 600;
}

@media (max-width: 480px) {
    body.cfm-auth .cfm-auth-body {
        padding: 18px 18px 22px;
    }

    body.cfm-auth .cfm-auth-heading {
        font-size: 1.2rem;
    }
}

.cfm-password-field {
    position: relative;
    display: block;
}

.cfm-password-field > input,
.cfm-password-field > .cfm-auth-input,
.cfm-password-field > .cfm-profile-input,
.cfm-password-field > .form-control {
    padding-right: 44px;
    width: 100%;
    box-sizing: border-box;
}

.cfm-eye-btn {
    position: absolute;
    right: 8px;
    top: 36px;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    z-index: 1;
}
.cfm-eye-btn:hover {
    background: rgba(0, 0, 0, 0.06);
}
.cfm-eye-btn:active {
    background: rgba(0, 0, 0, 0.1);
}
.cfm-eye-svg {
    width: 18px;
    height: 18px;
    fill: rgba(0, 0, 0, 0.66);
    display: none;
}
.cfm-eye-icon[data-state="hidden"] .cfm-eye-on {
    display: inline;
}
.cfm-eye-icon[data-state="shown"] .cfm-eye-off {
    display: inline;
}

.cfm-password-field .cfm-eye-btn {
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
}

.cfm-eye-btn[aria-pressed="true"] .cfm-eye-svg {
    fill: #8E1202;
}
.form-control.cfm-auth-input { display:block; width:100%; padding:.55rem .75rem; font-size:1rem; border:1px solid var(--cfm-line); border-radius:var(--cfm-r-btn); background:#fff; color:var(--cfm-ink); box-sizing:border-box; }
.form-control.cfm-auth-input:focus { outline:2px solid var(--cfm-gold-deep); outline-offset:1px; }
