/**
 * Campos e rótulos GESTH — visual mais moderno em todo o sistema.
 * Inclui floating label (rótulo sobe ao focar/preencher).
 * Carregar após o tema / gesth-buttons.css
 */
:root {
    --gesth-field-radius: 8px;
    --gesth-field-height: 40px;
    --gesth-field-border: #D0DAD2;
    --gesth-field-border-focus: #053F08;
    --gesth-field-bg: #ffffff;
    --gesth-field-bg-hover: #f7faf7;
    --gesth-label: #053F08;
    --gesth-label-muted: #5a6b5c;
    --gesth-placeholder: #8a9a8c;
    --gesth-field-ring: rgba(5, 63, 8, 0.14);

    --field-border-radius: var(--gesth-field-radius);
    --field-height: var(--gesth-field-height);
    --field-border-color: var(--gesth-field-border);
    --field-focus-border-color: var(--gesth-field-border-focus);
    --field-placeholder-color: var(--gesth-placeholder);
    --field-padding-horizontal: 14px;
}

/* ---- Rótulos (padrão, não flutuante) ---- */
/* Exclui label.btn (Sim/Não do TRadioGroup em modo botão) */
.tformrow label:not(.btn),
.tformrow .tlabel,
.fb-inline-field-container > label:not(.btn),
.fb-inline-field-container .tlabel,
label.tlabel,
.panel-body .tlabel,
.card-body .tlabel {
    display: block;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.015em;
    text-transform: none;
    color: var(--gesth-label) !important;
    margin-bottom: 0.45rem;
    line-height: 1.35;
    opacity: 1;
}

@media (min-width: 576px) {
    .col-form-label.control-label,
    .control-label.col-form-label {
        font-size: 0.8125rem !important;
        font-weight: 600 !important;
        letter-spacing: 0.02em;
        text-transform: none;
        color: var(--gesth-label) !important;
        padding-top: calc(var(--gesth-field-height) / 2 - 0.6em);
    }
}

/* ---- Floating label (apenas texto/textarea; selects ficam com rótulo acima) ---- */
/*
 * Reserva a mesma altura do rótulo “normal” para o input alinhar
 * com selects na mesma linha (ex.: Tipo de logradouro | Logradouro).
 */
:root {
    --gesth-label-slot: 1.55rem;
}

.fb-field-container.gesth-float {
    position: relative;
    margin-top: 0 !important;
    padding-top: var(--gesth-label-slot) !important;
}

/* Remove underline do Adianti que atravessa o rótulo */
.gesth-float .form-line:after,
.gesth-float.form-line:after,
.gesth-float > .gesth-float-control:after {
    display: none !important;
    content: none !important;
}

.gesth-float > .gesth-float-label-wrap {
    position: absolute !important;
    left: 0.65rem;
    /* centro do input (abaixo do espaço reservado do rótulo) */
    top: calc(var(--gesth-label-slot) + var(--gesth-field-height) / 2);
    transform: translateY(-50%);
    z-index: 3;
    width: auto !important;
    max-width: calc(100% - 1.5rem);
    margin: 0 !important;
    padding: 0 !important;
    pointer-events: none;
    display: block !important;
    transition: top 0.16s ease, transform 0.16s ease;
}

.gesth-float > .gesth-float-label-wrap label,
.gesth-float > .gesth-float-label-wrap .tlabel {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 0.35rem !important;
    font-size: 0.9375rem !important;
    font-weight: 500 !important;
    letter-spacing: 0.01em;
    color: var(--gesth-placeholder) !important;
    background: transparent;
    line-height: 1.2 !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    transition: font-size 0.16s ease, color 0.16s ease, background-color 0.16s ease;
}

.gesth-float.is-active > .gesth-float-label-wrap,
.gesth-float:focus-within > .gesth-float-label-wrap {
    /* borda superior do input */
    top: var(--gesth-label-slot);
    transform: translateY(-50%);
}

.gesth-float.is-active > .gesth-float-label-wrap label,
.gesth-float.is-active > .gesth-float-label-wrap .tlabel,
.gesth-float:focus-within > .gesth-float-label-wrap label,
.gesth-float:focus-within > .gesth-float-label-wrap .tlabel {
    font-size: 0.6875rem !important;
    font-weight: 600 !important;
    color: var(--gesth-label) !important;
    background: var(--gesth-field-bg) !important;
}

.gesth-float.is-focused.is-active > .gesth-float-label-wrap label,
.gesth-float.is-focused.is-active > .gesth-float-label-wrap .tlabel {
    color: var(--gesth-field-border-focus) !important;
}

.gesth-float:has(textarea) {
    padding-top: var(--gesth-label-slot) !important;
}
.gesth-float:has(textarea) > .gesth-float-label-wrap {
    top: calc(var(--gesth-label-slot) + 1.1rem);
}
.gesth-float:has(textarea).is-active > .gesth-float-label-wrap,
.gesth-float:has(textarea):focus-within > .gesth-float-label-wrap {
    top: var(--gesth-label-slot);
}

.gesth-float > .gesth-float-control {
    width: 100% !important;
    margin: 0 !important;
}

.gesth-float:not(.is-active) input::placeholder,
.gesth-float:not(.is-active) textarea::placeholder {
    color: transparent !important;
}

.gesth-float.is-active input::placeholder,
.gesth-float.is-active textarea::placeholder {
    color: var(--gesth-placeholder) !important;
    opacity: 0.85;
}

/* Combos / selects / datas: rótulo sempre acima, sem float */
.fb-field-container:has(select) > .fb-inline-field-container:has(label) .tlabel,
.fb-field-container:has(.select2-container) > .fb-inline-field-container:has(label) .tlabel,
.fb-field-container:has(.input-group) > .fb-inline-field-container:has(label) .tlabel {
    position: static !important;
    transform: none !important;
    background: transparent !important;
    font-size: 0.8125rem !important;
    font-weight: 600 !important;
    color: var(--gesth-label) !important;
    margin-bottom: 0.45rem !important;
    padding: 0 !important;
}

/* Recorrente / grupos de botão alinhados à altura do campo */
.tformrow .btn-group,
.tformrow .tradiogroup,
.tformrow [widget="tradiogroup"] {
    min-height: var(--gesth-field-height);
    display: inline-flex;
    align-items: center;
}

.tformrow .btn-group > .btn,
.tformrow .tradiogroup .btn,
.tformrow [widget="tradiogroup"] .btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    height: var(--gesth-field-height);
    min-height: var(--gesth-field-height);
    margin-bottom: 0 !important;
    padding: 0 0.875rem !important;
    line-height: 1 !important;
    font-size: 0.9375rem !important;
    font-weight: 500 !important;
    box-sizing: border-box;
}

/* ---- Campos de texto / combo / select ---- */
.form-control,
.tfield,
.tcombo,
.tselect,
.tselect_disabled,
.inplace_field,
textarea.tfield,
textarea.form-control {
    min-height: var(--gesth-field-height) !important;
    height: auto;
    border-radius: var(--gesth-field-radius) !important;
    border: 1px solid var(--gesth-field-border) !important;
    background-color: var(--gesth-field-bg) !important;
    color: #0a1f0b !important;
    padding: 0.5rem 0.875rem !important;
    font-size: 0.9375rem !important;
    line-height: 1.4 !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
    box-shadow: none !important;
}

/* SQL Panel: editor legível (evita texto branco em fundo branco do tema) */
textarea.tfield.sqlpanel-query,
textarea.sqlpanel-query {
    font-family: Consolas, "Andale Mono", "DejaVu Sans Mono", Monaco, monospace !important;
    font-size: 0.875rem !important;
    line-height: 1.45 !important;
    min-height: 200px !important;
    height: 200px !important;
    resize: vertical;
    background-color: #1e1e1e !important;
    color: #e8e8e8 !important;
    border-color: #3a3a3a !important;
    caret-color: #e8e8e8;
}
textarea.tfield.sqlpanel-query:focus,
textarea.sqlpanel-query:focus {
    background-color: #1e1e1e !important;
    color: #e8e8e8 !important;
    border-color: #053F08 !important;
    box-shadow: 0 0 0 3px var(--gesth-field-ring) !important;
}
.gesth-float:has(textarea.sqlpanel-query).is-active > .gesth-float-label-wrap label,
.gesth-float:has(textarea.sqlpanel-query):focus-within > .gesth-float-label-wrap label {
    background: #1e1e1e !important;
    color: #a8d5aa !important;
}

input.tfield,
input.form-control,
select.tcombo,
select.tselect {
    height: var(--gesth-field-height) !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.form-control:hover,
.tfield:hover,
.tcombo:hover {
    border-color: #b5c4b8 !important;
    background-color: var(--gesth-field-bg-hover) !important;
}

.form-control:focus,
.tfield:focus,
.tcombo:focus,
.tselect:focus,
textarea.tfield:focus,
textarea.form-control:focus {
    border-color: var(--gesth-field-border-focus) !important;
    background-color: #fff !important;
    box-shadow: 0 0 0 3px var(--gesth-field-ring) !important;
    outline: none !important;
}

.tfield::placeholder,
.form-control::placeholder {
    color: var(--gesth-placeholder) !important;
    font-style: normal !important;
    opacity: 1;
}

.tfield_disabled,
.tcombo_disabled,
.tselect_disabled,
.form-control:disabled,
.form-control[readonly] {
    background-color: #f0f3f0 !important;
    border-color: #dfe5e0 !important;
    color: #6a7a6c !important;
    opacity: 1 !important;
}

.select2-container--default .select2-selection--single {
    height: var(--gesth-field-height) !important;
    border-radius: var(--gesth-field-radius) !important;
    border: 1px solid var(--gesth-field-border) !important;
    background: var(--gesth-field-bg) !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: var(--gesth-field-height) !important;
    padding-left: 0.875rem !important;
    color: #0a1f0b !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: var(--gesth-field-height) !important;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--gesth-field-border-focus) !important;
    box-shadow: 0 0 0 3px var(--gesth-field-ring) !important;
}

.input-group .form-control,
.input-group .tfield,
span.tdate-group-addon,
.input-group-addon {
    border-radius: var(--gesth-field-radius) !important;
}
.input-group .form-control:first-child,
.input-group .tfield:first-child {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.input-group .tdate-group-addon,
.input-group .input-group-addon {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-color: var(--gesth-field-border) !important;
    background: #f4f7f4 !important;
    color: var(--gesth-label) !important;
}

.tformrow {
    margin-bottom: 1rem;
}
.fb-inline-field-container {
    margin-bottom: 0.15rem;
}
.gesth-float > .fb-inline-field-container {
    margin-bottom: 0;
}

.panel-title,
.card-title {
    letter-spacing: 0.01em;
}

/* Login: ícone à esquerda não pode cobrir Usuário/Senha */
.container-login .login-content [page-name="LoginForm"] .tfield,
.container-login .login-content [page-name="LoginForm"] input.tfield,
.container-login .login-content [page-name="LoginForm"] input.form-control,
.container-login .login-content [page-name="LoginForm"] .tcombo,
div[page-name="LoginForm"] .tfield,
div[page-name="LoginForm"] input.tfield,
div[page-name="LoginClienteForm"] .tfield {
    padding-left: 2.5rem !important;
}

/* ---- Calendário TDate / TDateTime (bootstrap-datepicker) ---- */
.tdate-group {
    display: flex !important;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    border: 1px solid var(--gesth-field-border);
    border-radius: var(--gesth-field-radius) !important;
    background: var(--gesth-field-bg);
    overflow: visible;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.tdate-group:hover {
    background: var(--gesth-field-bg-hover);
}
.tdate-group:focus-within {
    border-color: var(--gesth-field-border-focus) !important;
    box-shadow: 0 0 0 3px var(--gesth-field-ring);
}
.tdate-group .tfield,
.tdate-group .tfield_disabled,
.tdate-group input {
    flex: 1 1 auto;
    width: 100% !important;
    min-width: 0;
    height: var(--gesth-field-height) !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    background: transparent !important;
}
.tdate-group span.tdate-group-addon,
.tdate-group .tdate-group-addon,
.tdate-group .add-on,
.tdate-group .btn.tdate-group-addon,
.tdate-group .btn.btn-default.tdate-group-addon {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px !important;
    min-width: 42px;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-left: 1px solid var(--gesth-field-border) !important;
    border-radius: 0 !important;
    background: #eef5ef !important;
    color: var(--gesth-label) !important;
    box-shadow: none !important;
    cursor: pointer;
}
.tdate-group span.tdate-group-addon:hover,
.tdate-group .btn.tdate-group-addon:hover {
    background: #dceade !important;
    color: #032a05 !important;
}
.tdate-group span.tdate-group-addon i {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1rem;
}

/* Popup: card + cabeçalho verde (bem diferente do antigo cinza) */
.datepicker.dropdown-menu,
.datetimepicker.dropdown-menu {
    z-index: 2100 !important;
    min-width: 292px !important;
    padding: 0 !important;
    margin-top: 8px !important;
    border: 0 !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: 0 16px 40px rgba(5, 63, 8, 0.18), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
    color: #1a2e1b !important;
    font-size: 0.875rem !important;
    line-height: 1.35 !important;
    overflow: hidden;
}

.datepicker.dropdown-menu .datepicker-days,
.datepicker.dropdown-menu .datepicker-months,
.datepicker.dropdown-menu .datepicker-years,
.datepicker.dropdown-menu .datepicker-decades,
.datepicker.dropdown-menu .datepicker-centuries,
.datetimepicker.dropdown-menu .datetimepicker-days,
.datetimepicker.dropdown-menu .datetimepicker-months,
.datetimepicker.dropdown-menu .datetimepicker-years,
.datetimepicker.dropdown-menu .datetimepicker-hours,
.datetimepicker.dropdown-menu .datetimepicker-minutes,
.datetimepicker.dropdown-menu .datetimepicker-seconds {
    padding: 0 10px 10px;
}

.datepicker table,
.datetimepicker table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 3px;
    margin: 0;
}

.datepicker th,
.datepicker td,
.datetimepicker th,
.datetimepicker td {
    border: 0 !important;
    text-align: center;
    vertical-align: middle;
}

/* Cabeçalho do mês */
.datepicker .datepicker-days thead tr:first-child th,
.datepicker .datepicker-months thead tr:first-child th,
.datepicker .datepicker-years thead tr:first-child th,
.datetimepicker .datetimepicker-days thead tr:first-child th,
.datetimepicker .datetimepicker-months thead tr:first-child th,
.datetimepicker .datetimepicker-years thead tr:first-child th {
    background: #053F08 !important;
    color: #fff !important;
    border-radius: 0 !important;
    padding: 12px 6px !important;
}
.datepicker .datepicker-switch,
.datepicker .prev,
.datepicker .next,
.datetimepicker .datepicker-switch,
.datetimepicker .prev,
.datetimepicker .next {
    background: #053F08 !important;
    color: #fff !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
}
.datepicker .datepicker-switch:hover,
.datepicker .prev:hover,
.datepicker .next:hover,
.datetimepicker .datepicker-switch:hover,
.datetimepicker .prev:hover,
.datetimepicker .next:hover {
    background: #0a5a10 !important;
    color: #fff !important;
}

.datepicker .dow,
.datetimepicker .dow {
    color: var(--gesth-label-muted) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 10px 0 4px !important;
    background: transparent !important;
}

/* Grade de dias — células visíveis (como o antigo), porém modernas */
.datepicker table tr td.day,
.datetimepicker table tr td.day {
    width: 34px !important;
    height: 34px !important;
    line-height: 34px !important;
    padding: 0 !important;
    border-radius: 8px !important;
    background: #f3f7f3 !important;
    color: #1a2e1b !important;
    font-weight: 500 !important;
    border: 0 !important;
}
.datepicker table tr td.day:hover,
.datetimepicker table tr td.day:hover,
.datepicker table tr td.day.focused,
.datetimepicker table tr td.day.focused {
    background: #d7e8d9 !important;
    color: #032a05 !important;
}
.datepicker table tr td.old,
.datepicker table tr td.new,
.datetimepicker table tr td.old,
.datetimepicker table tr td.new {
    color: #9aab9c !important;
    background: #fafbfa !important;
    font-weight: 400 !important;
}
.datepicker table tr td.today,
.datetimepicker table tr td.today,
.datepicker table tr td.today:hover,
.datetimepicker table tr td.today:hover {
    background: #fff !important;
    color: #053F08 !important;
    font-weight: 700 !important;
    box-shadow: inset 0 0 0 2px #053F08 !important;
}
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.disabled,
.datepicker table tr td.active.disabled:hover,
.datepicker table tr td.active.today,
.datepicker table tr td span.active,
.datetimepicker table tr td.active,
.datetimepicker table tr td.active:hover,
.datetimepicker table tr td.active.today,
.datetimepicker table tr td span.active {
    background: #053F08 !important;
    background-image: none !important;
    color: #fff !important;
    font-weight: 700 !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
.datepicker table tr td.disabled,
.datepicker table tr td.disabled:hover,
.datetimepicker table tr td.disabled {
    color: #c5d0c6 !important;
    background: #f7f8f7 !important;
    cursor: default;
    opacity: 0.55;
}

.datepicker-months span.month,
.datepicker-years span.year,
.datepicker-decades span.decade,
.datepicker-centuries span.century,
.datetimepicker-months span.month,
.datetimepicker-years span.year {
    display: inline-block;
    width: 54px;
    height: 40px;
    line-height: 40px;
    margin: 2px;
    border-radius: 8px !important;
    background: #f3f7f3 !important;
    color: #1a2e1b !important;
}
.datepicker-months span.month:hover,
.datepicker-years span.year:hover,
.datetimepicker-months span.month:hover,
.datetimepicker-years span.year:hover {
    background: #d7e8d9 !important;
}
.datepicker-months span.month.active,
.datepicker-years span.year.active,
.datepicker table tr td span.active,
.datetimepicker-months span.month.active,
.datetimepicker-years span.year.active {
    background: #053F08 !important;
    color: #fff !important;
    text-shadow: none !important;
}

.datepicker tfoot th.today,
.datepicker tfoot th.clear,
.datetimepicker tfoot th.today,
.datetimepicker tfoot th.clear {
    background: #053F08 !important;
    color: #fff !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    padding: 10px !important;
    margin-top: 2px;
}
.datepicker tfoot th.today:hover,
.datepicker tfoot th.clear:hover,
.datetimepicker tfoot th.today:hover,
.datetimepicker tfoot th.clear:hover {
    background: #0a5a10 !important;
    color: #fff !important;
}

.datetimepicker .datetimepicker-hours span.hour,
.datetimepicker .datetimepicker-minutes span.minute,
.datetimepicker .datetimepicker-seconds span.second {
    display: inline-block;
    width: 48px;
    height: 36px;
    line-height: 36px;
    margin: 2px;
    border-radius: 8px !important;
    background: #f3f7f3 !important;
    color: #1a2e1b !important;
}
.datetimepicker .datetimepicker-hours span.hour:hover,
.datetimepicker .datetimepicker-minutes span.minute:hover,
.datetimepicker .datetimepicker-seconds span.second:hover {
    background: #d7e8d9 !important;
}
.datetimepicker .datetimepicker-hours span.hour.active,
.datetimepicker .datetimepicker-minutes span.minute.active,
.datetimepicker .datetimepicker-seconds span.second.active {
    background: #053F08 !important;
    color: #fff !important;
    text-shadow: none !important;
}

.datepicker-days .cw {
    background: transparent !important;
    color: #a3b3a5 !important;
    font-size: 0.7rem;
}
