/*
 * Shared control type scale — one size for default, focus, and autofill.
 * 1rem (16px) avoids iOS focus-zoom and beats theme 14px / Bootstrap input-group-lg 1.25rem.
 * Cache bump: 2026-09-18c — autofill white + square inner radii; fonts must not jump on first tap.
 */
:root {
    --form-control-font-size: 1rem;
    --form-control-line-height: 1.5;
    --form-control-font-weight: 400;
    --form-label-font-weight: 600;
    --form-label-color: #111827;
    --form-field-icon-color: var(--action-button-text);
    --form-control-color: #111827;
    --form-radius: 0.75rem;
    --form-line: #e5e7eb;
    --form-focus: #2563eb;
    --info-background: #fff9f3;
    --info-border: #f5dcc8;
    --info-text: #775f4e;
    --info-accent: #e87522;
    --action-button-text: #212529;
    --info-title: var(--action-button-text);
}

/* Tüm standart form etiketleri tek tipte tutulur. */
.form-label {
    color: var(--form-label-color);
    font-family: var(--font-body, 'Poppins', sans-serif);
    font-weight: var(--form-label-font-weight);
}

.input-group,
.phone-field {
    --form-radius: 0.75rem;
    --form-line: #e5e7eb;
    --form-focus: #2563eb;
}

/* Base typography: text, textarea, select, date, addons — same unfocused and focused.
   !important beats Bootstrap .input-group-lg (1.25rem) and any late theme rules. */
.form-control,
.form-select,
.input-group-text,
.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text,
.input-group-lg > .form-control,
.input-group-lg > .form-select,
.input-group-lg > .input-group-text,
.input-group-lg > button,
.phone-field > .phone-field__input,
.phone-field > .country-combo__toggle,
.phone-field .country-combo__dial,
.dash-form .form-control,
.dash-form .form-select,
.dash-form .input-group-text,
.auth-container .form-control,
.auth-container .form-select,
.auth-container .input-group-text,
.auth-container .phone-field > .country-combo__toggle,
.auth-container .phone-field .country-combo__dial,
input.form-control[type="date"],
input.form-control[type="datetime-local"],
input.form-control[type="month"],
input.form-control[type="time"],
input.form-control[type="week"],
select.form-select {
    font-family: var(--font-body, "Poppins", sans-serif) !important;
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    line-height: var(--form-control-line-height) !important;
    letter-spacing: 0 !important;
}

.form-control,
.form-select,
.input-group > .form-control,
.input-group > .form-select,
.input-group-lg > .form-control,
.input-group-lg > .form-select,
.phone-field > .phone-field__input,
.phone-field > .country-combo__toggle,
.phone-field .country-combo__dial,
input.form-control[type="date"],
input.form-control[type="datetime-local"],
input.form-control[type="month"],
input.form-control[type="time"],
input.form-control[type="week"],
select.form-select {
    color: var(--form-control-color);
}

/* Tema metin alanlarını 55px kullanır; seçim alanları da aynı ölçüde kalır. */
.form-select:not(.form-select-sm) {
    height: 55px;
    min-height: 55px;
}

.form-control:is(:focus, :focus-visible, :autofill, :-webkit-autofill),
.form-select:is(:focus, :focus-visible),
.input-group > .form-control:is(:focus, :focus-visible, :autofill, :-webkit-autofill),
.input-group > .form-select:is(:focus, :focus-visible),
.input-group-lg > .form-control:is(:focus, :focus-visible, :autofill, :-webkit-autofill),
.input-group-lg > .form-select:is(:focus, :focus-visible),
.phone-field > .phone-field__input:is(:focus, :focus-visible, :autofill, :-webkit-autofill),
.auth-container .form-control:is(:focus, :focus-visible, :autofill, :-webkit-autofill),
.dash-form .form-control:is(:focus, :focus-visible, :autofill, :-webkit-autofill),
input.form-control[type="date"]:is(:focus, :focus-visible),
input.form-control[type="datetime-local"]:is(:focus, :focus-visible),
input.form-control[type="month"]:is(:focus, :focus-visible),
input.form-control[type="time"]:is(:focus, :focus-visible),
input.form-control[type="week"]:is(:focus, :focus-visible),
select.form-select:is(:focus, :focus-visible) {
    font-family: var(--font-body, "Poppins", sans-serif) !important;
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    line-height: var(--form-control-line-height) !important;
    letter-spacing: 0 !important;
    color: var(--form-control-color) !important;
}

/* Başlıkla eşleşen alan simgeleri tüm standart formlarda aynı yapıdan gelir. */
.form-field-icon-wrap {
    display: block;
    position: relative;
}

.form-field-icon {
    color: var(--form-field-icon-color);
    left: 1rem;
    pointer-events: none;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 2;
}

.form-field-icon-control {
    padding-left: 2.8rem !important;
}

.form-field-icon-wrap.is-textarea > .form-field-icon {
    top: 1.1rem;
    transform: none;
}

/* Mevcut giriş grubu ikonları da alan ikonlarıyla aynı rengi kullanır. */
.input-group > .input-group-text:not(.clear-field-btn) > i,
.input-group > button.input-group-text:not(.clear-field-btn) > i {
    color: var(--form-field-icon-color) !important;
}
.form-control:is(:focus, :focus-visible),
.form-select:is(:focus, :focus-visible) {
    border-color: var(--form-focus) !important;
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--form-focus) 15%, transparent) !important;
}

.alert-info,
.alert-primary {
    --bs-alert-bg: var(--info-background);
    --bs-alert-border-color: var(--info-border);
    --bs-alert-color: var(--info-text);
    --bs-alert-link-color: var(--info-text);
}

.alert-info :is(.alert-heading, strong:first-child),
.alert-primary :is(.alert-heading, strong:first-child),
.dash-page-intro .card-title {
    color: var(--info-title) !important;
}

.btn-primary,
.btn-outline-primary,
.btn-success,
.btn-warning,
.btn-outline-warning,
.contact-submit,
.about-hero-button,
.career-mail-button,
.help-mail-button,
.default-home-cta,
.admin-audit-submit,
.admin-financial-filter-submit,
.admin-btn-primary,
.company-profile-dialog__share {
    background: var(--info-background) !important;
    background-image: none !important;
    border: 1px solid var(--info-border) !important;
    box-shadow: 0 5px 12px rgba(232, 117, 34, .12) !important;
    color: var(--action-button-text) !important;
}

.btn-primary:hover,
.btn-primary:focus-visible,
.btn-outline-primary:hover,
.btn-outline-primary:focus-visible,
.btn-success:hover,
.btn-success:focus-visible,
.btn-warning:hover,
.btn-warning:focus-visible,
.btn-outline-warning:hover,
.btn-outline-warning:focus-visible,
.contact-submit:hover,
.contact-submit:focus-visible,
.about-hero-button:hover,
.about-hero-button:focus-visible,
.career-mail-button:hover,
.career-mail-button:focus-visible,
.help-mail-button:hover,
.help-mail-button:focus-visible,
.default-home-cta:hover,
.default-home-cta:focus-visible,
.admin-audit-submit:hover,
.admin-audit-submit:focus-visible,
.admin-financial-filter-submit:hover,
.admin-financial-filter-submit:focus-visible,
.admin-btn-primary:hover,
.admin-btn-primary:focus-visible,
.company-profile-dialog__share:hover,
.company-profile-dialog__share:focus-visible {
    background: #fff1e8 !important;
    border-color: #efb080 !important;
    box-shadow: 0 7px 16px rgba(232, 117, 34, .18) !important;
    color: var(--action-button-text) !important;
}

.btn-primary::before { content: none !important; }


/* Uygulamadaki işlem düğmeleri ortak turuncu geçişi ve beyaz metni kullanır. */
.btn:not(.btn-close):not(.btn-link),
.btn:not(.btn-close):not(.btn-link):hover,
.btn:not(.btn-close):not(.btn-link):focus-visible {
    background: linear-gradient(135deg, #d96715, #e87522) !important;
    border-color: #e87522 !important;
    color: #fff !important;
}

.header-action-buttons .btn i {
    color: inherit !important;
}

/* Hesap durumu formu genel yumuşak bilgi paletini kullanır. */
.profile-status__intro {
    border: 1px solid var(--info-border) !important;
    background: var(--info-background);
}

.profile-status__title,
.profile-status__notice-title {
    color: var(--info-title) !important;
}

.profile-status__current {
    display: grid;
    gap: .2rem;
    min-width: 9rem;
    padding: .65rem .9rem;
    border: 1px solid var(--info-border);
    border-radius: .75rem;
    background: #fff;
    color: var(--info-text);
    font-size: .8rem;
}

.profile-status__current strong {
    font-size: 1rem;
}

.profile-status__current.is-active strong { color: #167448; }
.profile-status__current.is-passive strong { color: #9b630e; }

.profile-status__notice {
    border: 1px solid var(--info-border) !important;
    background: var(--info-background);
    color: var(--info-text);
}

.profile-status__notice-icon {
    color: var(--form-field-icon-color);
}

.profile-status__form-icon {
    color: var(--info-accent);
}

.feedback__notice {
    border: 1px solid var(--info-border) !important;
    background: var(--info-background);
    color: var(--info-text);
}

.feedback__notice-title { color: var(--info-title) !important; }
.feedback__notice-icon,
.feedback__form-icon { color: var(--info-accent); }

/*
 * Chrome autofill paints a blue/yellow inset with its own radius + metrics.
 * That made the phone segment look like a nested pill and mismatched +90 until
 * any page tap reflowed fonts. Force white fill, square corners, shared type.
 */
.form-control:-webkit-autofill,
.form-control:-webkit-autofill:hover,
.form-control:-webkit-autofill:focus,
.form-control:-webkit-autofill:active,
.input-group > .form-control:-webkit-autofill,
.input-group > .form-control:-webkit-autofill:hover,
.input-group > .form-control:-webkit-autofill:focus,
.input-group > .form-control:-webkit-autofill:active,
.phone-field > .phone-field__input:-webkit-autofill,
.phone-field > .phone-field__input:-webkit-autofill:hover,
.phone-field > .phone-field__input:-webkit-autofill:focus,
.phone-field > .phone-field__input:-webkit-autofill:active {
    font-family: var(--font-body, "Poppins", sans-serif) !important;
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    line-height: var(--form-control-line-height) !important;
    letter-spacing: 0 !important;
    -webkit-text-fill-color: var(--form-control-color) !important;
    color: var(--form-control-color) !important;
    caret-color: var(--form-control-color);
    border-radius: 0 !important;
    border: 0 !important;
    /* Paint over Chrome’s autofill tint; keep corners square so no nested pill */
    background-color: transparent !important;
    background-image: none !important;
    -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
    box-shadow: 0 0 0 1000px #fff inset !important;
    transition: background-color 99999s ease-out 0s, background-image 99999s ease-out 0s;
}

/* Theme sets height/line-height 55px on .form-control — keep group controls readable */
.input-group > .form-control,
.input-group > .form-select,
.phone-field > .phone-field__input {
    height: auto;
    line-height: var(--form-control-line-height);
    padding-top: 0;
    padding-bottom: 0;
}

.form-control::placeholder,
.form-select::placeholder,
.phone-field > .phone-field__input::placeholder {
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    line-height: var(--form-control-line-height) !important;
    letter-spacing: 0 !important;
}

.input-group {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    overflow: hidden;
    background: #fff;
    border: 1px solid var(--form-line);
    border-radius: var(--form-radius);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, outline-color 0.2s ease;
}

.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text,
.input-group > button {
    border: 0 !important;
    box-shadow: none !important;
    /* Transparent so the group’s white is the only fill — no nested colored pill */
    background-color: transparent !important;
    /* Middle pieces stay square; first/last get outer radius only */
    border-radius: 0 !important;
}

.input-group > :first-child {
    border-radius: var(--form-radius) 0 0 var(--form-radius) !important;
}

.input-group > :last-child {
    border-radius: 0 var(--form-radius) var(--form-radius) 0 !important;
}

.input-group-lg {
    min-height: 52px;
}

.input-group-lg > .form-control,
.input-group-lg > .form-select,
.input-group-lg > .input-group-text,
.input-group-lg > button {
    height: 52px;
    min-height: 52px;
}

.input-group-lg > textarea.form-control {
    height: auto !important;
    min-height: 96px;
    padding-top: 12px;
    padding-bottom: 12px;
    line-height: 1.45;
}

.input-group:focus-within {
    border-color: var(--form-focus);
    box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--form-focus) 15%, transparent);
}

.input-group > .form-control:is(:focus, :focus-visible, :visited),
.phone-field .phone-field__input:is(:focus, :focus-visible, :visited) {
    border-color: transparent !important;
    background-color: transparent !important;
    outline: none;
    box-shadow: none !important;
    color: var(--form-control-color) !important;
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    line-height: var(--form-control-line-height) !important;
}

.input-group.phone-field {
    overflow: visible;
    flex-wrap: nowrap !important;
}

.phone-field {
    position: relative;
}

.phone-field > .country-combo__toggle {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    width: auto !important;
    min-width: 7.25rem !important;
    max-width: none !important;
    height: 52px;
    display: inline-flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 0 12px !important;
    color: var(--form-control-color) !important;
    font-weight: var(--form-control-font-weight) !important;
    font-size: var(--form-control-font-size) !important;
    line-height: var(--form-control-line-height) !important;
    white-space: nowrap;
    border: 0 !important;
    background: transparent !important;
    box-shadow: inset -1px 0 0 var(--form-line);
    appearance: none;
    z-index: 2;
    border-radius: var(--form-radius) 0 0 var(--form-radius) !important;
}

.phone-field > .country-combo__toggle:hover {
    background: transparent !important;
}

.phone-field .country-flag {
    width: 22px;
    height: 15px;
    flex: 0 0 22px;
    display: inline-flex;
    border-radius: 3px;
    overflow: hidden;
    box-shadow: 0 0 0 1px rgba(17, 24, 39, 0.08);
}

.phone-field .country-flag svg {
    width: 100%;
    height: 100%;
    display: block;
}

.phone-field .country-combo__dial {
    flex: 0 0 auto;
    color: var(--form-control-color) !important;
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    line-height: var(--form-control-line-height) !important;
    letter-spacing: 0 !important;
}

.phone-field .country-combo__chevron {
    font-size: 0.65rem;
    color: #6b7280;
    transition: transform 0.15s ease-out;
}

.phone-field.is-open .country-combo__chevron {
    transform: rotate(180deg);
}

.phone-field > .country-combo__list {
    position: absolute;
    top: calc(100% + 6px);
    left: 0;
    z-index: 40;
    display: none;
    min-width: 220px;
    margin: 0;
    padding: 6px;
    list-style: none;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.85rem;
    box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
}

.phone-field.is-open > .country-combo__list,
.phone-field > .country-combo__list:not([hidden]) {
    display: block;
}

.phone-field .country-combo__option {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    border-radius: 0.65rem;
    cursor: pointer;
}

.phone-field .country-combo__option:hover,
.phone-field .country-combo__option.is-selected {
    background: #f3f6fb;
}

.phone-field .country-combo__meta {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
}

.phone-field .country-combo__iso {
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: #111827;
}

.phone-field .country-combo__name {
    font-size: 0.75rem;
    color: #6b7280;
}

.phone-field .country-combo__code {
    font-size: 0.85rem;
    font-weight: 600;
    color: #374151;
}

.input-group > .form-control,
.input-group > .form-select {
    min-width: 0;
}

/* Native date/file controls need visible overflow for pickers; keep shared focus ring */
.input-group:has(input[type="date"]),
.input-group:has(input[type="file"]),
.input-group:has(select.form-select) {
    overflow: visible;
}

.input-group > input[type="file"].form-control {
    padding-top: 0.65rem;
    padding-bottom: 0.65rem;
    font-size: var(--form-control-font-size);
    line-height: var(--form-control-line-height);
}

.input-group > input[type="file"].form-control::file-selector-button {
    margin-inline-end: 0.75rem;
    padding: 0.35rem 0.85rem;
    border: 0;
    border-radius: 0.5rem;
    background: #f1f5f9;
    color: #334155;
    font-weight: 600;
    font-size: 0.85rem;
}

.phone-field > .phone-field__input {
    width: 0 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    height: 52px;
    border: 0 !important;
    /* Clear × is last — input stays square on both sides (no nested pill) */
    border-radius: 0 !important;
    background-color: transparent !important;
    background-image: none !important;
    align-self: stretch;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Auth card: one typeface (site body font) — avoid Fira heading vs Poppins body clash */
.auth-container,
.auth-container .card,
.auth-container :is(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6),
.auth-container .form-label,
.auth-container .form-control,
.auth-container .form-select,
.auth-container .form-check-label,
.auth-container .btn,
.auth-container a,
.auth-container p,
.auth-container .alert,
.auth-container .input-group-text {
    font-family: var(--font-body, "Poppins", sans-serif);
}

.auth-container .card-header > a {
    display: flex;
    justify-content: center;
    width: 100%;
}

.auth-container .card-header picture,
.auth-container .card-header .brand-logo {
    width: 48% !important;
    max-width: 200px !important;
    min-width: 148px;
    height: auto !important;
    margin-inline: auto;
    display: block !important;
    line-height: 0;
}

.auth-container .card-header img {
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    object-fit: contain;
    display: block;
}

.auth-container .card-header :is(h4, .h4) {
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.3;
    color: #111827;
}

.auth-container .card-header p {
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.45;
}

.auth-container .form-label {
    font-size: 0.95rem;
    font-weight: var(--form-label-font-weight);
    letter-spacing: 0;
}

.auth-container .form-control,
.auth-container .form-select,
.auth-container .phone-field > .country-combo__toggle,
.auth-container .phone-field .country-combo__dial {
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    letter-spacing: 0 !important;
    line-height: var(--form-control-line-height) !important;
    color: var(--form-control-color) !important;
}

.auth-container .input-group-text {
    font-size: var(--form-control-font-size) !important;
    font-weight: var(--form-control-font-weight) !important;
    line-height: var(--form-control-line-height) !important;
    letter-spacing: 0 !important;
}

.auth-container .form-check-label {
    font-size: 0.95rem;
    font-weight: 400;
    letter-spacing: 0;
}

.auth-container .btn {
    letter-spacing: 0;
    text-transform: none;
    font-weight: 600;
}

.auth-container a {
    letter-spacing: 0;
}

.input-group > .clear-field-btn {
    flex: 0 0 44px;
    width: 44px;
    min-width: 44px;
    max-width: 44px;
    justify-content: center;
    color: #94a3b8;
    font-size: 1rem;
    font-weight: 400;
    cursor: pointer;
}

.input-group > .clear-field-btn:hover {
    color: #b91c1c;
    background: #f8fafc !important;
}

.input-group > textarea.form-control + .clear-field-btn {
    align-items: flex-start;
    height: auto !important;
    max-width: none;
    min-height: 96px;
    padding-top: 14px;
}

