/* =========================================================
   App forms
   Единый стиль полей, select, label
   ========================================================= */

:root {
    --app-control-bg: #ffffff;
    --app-control-text: var(--app-text, #162033);
    --app-control-muted: var(--app-muted, #68736d);
    --app-control-border: var(--app-border, #dfe5e1);

    --app-control-focus: var(--app-primary, #0f9360);
    --app-control-focus-shadow: rgba(15, 147, 96, 0.14);

    --app-control-height: 50px;
    --app-control-radius: 16px;
}

/* =========================================================
   Labels
   ========================================================= */

.app-label,
.finance-main label,
.transaction-desktop-label,
.transaction-mobile-label,
.account-field label {
    display: block;
    margin-bottom: 8px;

    color: var(--app-control-muted);
    font-size: 13px;
    line-height: 1;
    font-weight: 850;
}

/* =========================================================
   Inputs / selects
   ========================================================= */

.form-control,
.form-select,
.app-control,
.transaction-desktop-control,
.transaction-mobile-account-select,
.transaction-mobile-date-input,
.transaction-mobile-note-input,
.account-field .form-control,
.account-field .form-select,
.statistics-desktop-date-input,
.statistics-mobile-date-input {
    min-height: var(--app-control-height);
    border-radius: var(--app-control-radius);
    border: 1px solid var(--app-control-border);
    background-color: var(--app-control-bg);

    color: var(--app-control-text);
    font-size: 16px;
    line-height: 1.2;
    font-weight: 500;

    box-shadow: none;
}

.form-control:focus,
.form-select:focus,
.app-control:focus,
.transaction-desktop-control:focus,
.transaction-mobile-account-select:focus,
.transaction-mobile-date-input:focus,
.transaction-mobile-note-input:focus,
.account-field .form-control:focus,
.account-field .form-select:focus,
.statistics-desktop-date-input:focus,
.statistics-mobile-date-input:focus {
    border-color: var(--app-control-focus);
    box-shadow: 0 0 0 4px var(--app-control-focus-shadow);
}

/* Placeholder */

.form-control::placeholder,
.app-control::placeholder {
    color: #7a8580;
    opacity: 0.9;
}

/* Disabled */

.form-control:disabled,
.form-select:disabled,
.app-control:disabled {
    background-color: #f4f8f5;
    color: #8a958f;
    cursor: not-allowed;
}

/* =========================================================
   Select arrow
   ========================================================= */

.form-select,
.app-select,
.transaction-desktop-control,
.transaction-mobile-account-select,
.account-field .form-select {
    cursor: pointer;
}

/* =========================================================
   Input groups / field blocks
   ========================================================= */

.app-field {
    width: 100%;
    min-width: 0;
}

.app-field-row {
    display: flex;
    align-items: end;
    gap: 14px;
}

.app-field-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

/* =========================================================
   Finance filters compatibility
   ========================================================= */

.transaction-filter-grid .form-control,
.transaction-filter-grid .form-select,
#bulk-category-select {
    min-height: 44px;
    border-radius: 999px;
    font-size: 15px;
    font-weight: 650;
}

/* =========================================================
   iPhone zoom fix
   На iOS input меньше 16px вызывает увеличение страницы
   ========================================================= */

@media (max-width: 991.98px) {
    input,
    select,
    textarea,
    .form-control,
    .form-select,
    .app-control {
        font-size: 16px !important;
    }

    :root {
        --app-control-height: 44px;
        --app-control-radius: 14px;
    }

    .app-field-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}