﻿/* Worklines module form polish: shared WebForms and DevExpress form-control alignment. */
.dxeTextBoxSys.form-control,
.dxeButtonEditSys.form-control,
table.form-control.dxeTextBoxSys,
table.form-control.dxeButtonEditSys {
  width: 100% !important;
  /* ✅ 2026-08-12: a magasság a falcon-overrides.css --wl-dx-control-h
     változójából jön (fallback a korábbi 34px), hogy a globális és a
     lapszintű szabály ne tudjon elcsúszni egymástól. */
  height: var(--wl-dx-control-h, 34px) !important;
  min-height: var(--wl-dx-control-h, 34px) !important;
  max-height: var(--wl-dx-control-h, 34px) !important;
  padding: 0 !important;
  color: var(--falcon-gray-900);
  background-color: var(--falcon-emphasis-bg);
  border: 1px solid var(--falcon-border-color);
  border-radius: var(--falcon-border-radius);
  box-shadow: var(--falcon-box-shadow-inset);
  border-collapse: separate !important;
  overflow: hidden;
}

.dxeTextBoxSys.form-control:focus-within,
.dxeButtonEditSys.form-control:focus-within,
table.form-control.dxeTextBoxSys:focus-within,
table.form-control.dxeButtonEditSys:focus-within {
  border-color: #9ec2f3;
  box-shadow: var(--falcon-box-shadow-inset), 0 0 0 .2rem rgba(var(--falcon-primary-rgb), .18);
}

.form-control .dxeEditArea,
.form-control input[type="text"],
.form-control input[type="password"] {
  height: var(--wl-dx-control-inner-h, 32px) !important;
  min-height: var(--wl-dx-control-inner-h, 32px) !important;
  max-height: var(--wl-dx-control-inner-h, 32px) !important;
  padding: 0 .625rem !important;
  color: var(--falcon-gray-900);
  font-family: var(--falcon-body-font-family);
  font-size: .875rem;
  line-height: var(--wl-dx-control-inner-h, 32px) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  vertical-align: middle !important;
}

.form-control td,
.form-control .dxeButton,
.form-control .dxeButtonEditButton,
.form-control .dxeButtonEditButtonHover,
.form-control .dxeButtonEditButtonPressed,
.form-control .dxeSpinIncButton,
.form-control .dxeSpinDecButton {
  height: var(--wl-dx-control-inner-h, 32px) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border: 0 !important;
  background: transparent !important;
  vertical-align: middle !important;
}

/* ⚠️ 2026-08-12: az ASPxGridView SZŰRŐSOR formázása KI LETT VÉVE innen, hogy a
   DevExpress téma eredeti megjelenése látszódjon (l. falcon-overrides.css
   ugyanilyen megjegyzését).

   Külön tanulság erről a blokkról: HOLT KÓD volt. Csak a szuffix nélküli
   .dxgvFilterRow-t célozta, a DevExpress viszont a témaszuffixált nevet
   rendereli (_Moderno a globális témából, vagy _MetropolisBlue, ha a grid
   saját Theme attribútumot kapott) — így ezek a szabályok soha nem
   illeszkedtek egyetlen elemre sem. */

.dxeMemoSys.form-control,
.dxucControl.form-control,
.form-control.dxucControl {
  width: 100% !important;
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  color: var(--falcon-gray-900);
  background-color: var(--falcon-emphasis-bg);
  border: 1px solid var(--falcon-border-color);
  border-radius: var(--falcon-border-radius);
  box-shadow: var(--falcon-box-shadow-inset);
}

.dxeMemoSys.form-control .dxeEditArea,
.form-control textarea {
  height: auto !important;
  min-height: 4.5rem;
  padding: .375rem .625rem !important;
  line-height: 1.5 !important;
  resize: vertical;
}

.dxucControl.form-control,
.form-control.dxucControl {
  padding: .375rem .75rem !important;
}

/* A Falcon téma .form-select-sm szabálya (theme.css) nem ad meg min-height-et, ellentétben a
   .form-control-sm-mel — ez okozta, hogy egy soron belül a combobox (select) alacsonyabb/magasabb
   volt, mint a szöveges és dátum mezők. Egységesítjük a SZÖVEGES mezők magasságát.
   ⚠️ A <select> elemeket ez a szabály SZÁNDÉKOSAN NEM érinti — l. a lentebbi
   "SELECT — natív méretezés" blokk magyarázatát. */
/* ✅ 2026-08-12: a képlet térköz-tagja 0.5rem-ről 0.375rem-re javítva.
   A 0.375rem = 2 × 0.1875rem, azaz PONTOSAN a theme.css .form-select-sm
   felső+alsó paddingja — így a szöveges mező és a legördülő számított
   magassága egyezik (1.5 × 0.875rem + 0.375rem + 2px keret = 29px).
   A 0.5rem miatt a szöveges mező 2px-szel magasabb volt a selectnél. */
.form-control-sm:not(textarea):not(select) {
  height: calc(1.5em + 0.375rem + calc(var(--falcon-border-width) * 2));
  min-height: calc(1.5em + 0.375rem + calc(var(--falcon-border-width) * 2));
}

/* =============================================================================
   SELECT — A FIX MAGASSÁG SEMLEGESÍTÉSE (2026-08)
   =============================================================================
   HIBA: a legördülők szövegének alja levágódott (pl. "— válasszon csoportot —"
   a GroupMemberAdmin.aspx-en, "— válasszon usert —" a GroupAdmin.aspx-en).

   HOGYAN HATÁROLTUK BE: a sys_AuditLog.aspx PONTOSAN ugyanazt a vezérlőt és
   ugyanazokat az osztályokat használja (asp:DropDownList +
   "form-select form-select-sm"), és ott a legördülők HIBÁTLANOK. Az egyetlen
   érdemi különbség: a sys_AuditLog.aspx NEM tölti be ezt a fájlt
   (module-forms.css), a GroupAdmin.aspx / GroupMemberAdmin.aspx viszont igen.
   Vagyis a hibát kizárólag az ebben a fájlban lévő, .form-select-sm-re is
   érvényes FIX magasság okozta: a magasság 0.375rem ÖSSZES függőleges
   paddinggal számolt, miközben a falcon-overrides.css 0.45rem-et ad fent ÉS
   lent — a hiányzó pixelek levágták a betűk alját.

   MEGOLDÁS: ez a fájl NEM méretezi a natív <select>-eket. A fenti magasság-
   szabályból kizártuk őket (:not(select)), és az alábbi blokk semlegesíti
   mindazt, amit korábban rájuk kényszerített. Így a legördülők ugyanazt a
   stílust kapják, mint a bizonyítottan jó sys_AuditLog.aspx-en: a méretezést
   a Bootstrap + falcon-overrides.css végzi. SZÁNDÉKOSAN nem írunk elő új
   paddingot sem, hogy a megjelenés a működő lapokkal azonos legyen.
   ⚠️ NE adj vissza ide fix `height` vagy `line-height` értéket <select>-re!
   (A `min-height` MÁS eset — l. a lenti 2026-08-12-i megjegyzést.)
   ============================================================================= */
/* ✅ 2026-08-12: a `min-height: 0 !important` KI LETT VÉVE innen.
   OK: a szöveges mező és a legördülő magasságát egy közös alapra hoztuk
   (falcon-overrides.css → `--wl-input-h-sm`, 29px = az input MÉRT magassága),
   ezt viszont ez a sor lenullázta volna, és a két fájl csak specifikussági
   versenyben tudott volna dönteni — ami néma és törékeny.

   Miért biztonságos elhagyni: a `min-height` csak NÖVELHETI a boxot, tehát a
   fent leírt szövegvágást SOHA nem tudja előidézni — azt a fix `height` +
   `line-height` okozta, és azok itt továbbra is semlegesítve vannak
   (`height: auto`, `line-height: normal`). A `min-height: 0` tehát eleve
   szükségtelen védelem volt. */
select.form-select,
select.form-select-sm,
select.form-control,
select.form-control-sm {
  height: auto !important;
  max-height: none !important;
  line-height: normal !important;
}

/* Contracts modul — "Megtekintés" (szem-ikon) link a PDF dokumentumok mellett
   (ContractAdmin.aspx, ContractView.aspx). L. ContractDocPreviewHelper.vb. */
.contract-doc-preview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  margin-left: .25rem;
  border-radius: .375rem;
  color: var(--falcon-gray-700);
  text-decoration: none;
  background: var(--falcon-gray-100);
  border: 1px solid var(--falcon-border-color);
  font-size: .75rem;
  vertical-align: middle;
}

.contract-doc-preview:hover {
  color: var(--falcon-gray-900);
  background: var(--falcon-gray-200);
}

/* Megjegyzés: a GLightbox modal PDF-iframe méretezését a contract-doc-preview.js
   most közvetlenül inline style-lal + width/height attribútummal oldja meg (a
   GLightbox wrapper-lánca miatt a %-os/CSS-osztály alapú méretezés nem volt
   megbízható) — ezért itt nincs külön .contract-doc-preview-frame szabály. */

.module-check,
.module-check table,
.module-check td {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.module-check {
  display: inline-block;
  min-height: 2rem;
  color: var(--falcon-gray-800);
  font-family: var(--falcon-body-font-family);
  font-size: .875rem;
  line-height: 1.25;
}

.module-check td {
  padding: 0 .25rem 0 0 !important;
  vertical-align: middle !important;
}

.module-check input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  margin: 0 .375rem 0 0;
  vertical-align: middle;
  accent-color: var(--falcon-primary);
  outline: 0 !important;
  box-shadow: none !important;
}

.module-check label {
  margin: 0;
  color: var(--falcon-gray-800);
  font-weight: 400;
  line-height: 1.25;
  vertical-align: middle;
}

span.form-check-input {
  width: auto;
  height: auto;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

span.form-check-input input[type="checkbox"],
span.form-check-input input[type="radio"] {
  width: 1rem;
  height: 1rem;
  margin: 0 .375rem 0 0;
  vertical-align: middle;
  accent-color: var(--falcon-primary);
}

.location-settings-page .settings-check-native {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 2.65rem;
  padding: .55rem .75rem;
  color: var(--falcon-gray-800);
  cursor: pointer;
  user-select: none;
  background: var(--falcon-emphasis-bg);
  border: 1px solid var(--falcon-border-color);
  border-radius: .5rem;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.location-settings-page .settings-check-native:hover {
  border-color: var(--falcon-primary);
  box-shadow: 0 0 0 .15rem rgba(44, 123, 229, .08);
}

.location-settings-page .settings-check-input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.location-settings-page .settings-check-toggle {
  position: relative;
  flex: 0 0 auto;
  width: 2.35rem;
  height: 1.25rem;
  margin-right: .65rem;
  background: var(--falcon-gray-300);
  border: 1px solid var(--falcon-gray-400);
  border-radius: 999px;
  transition: background-color .16s ease, border-color .16s ease;
}

.location-settings-page .settings-check-toggle::after {
  position: absolute;
  top: 50%;
  left: .17rem;
  width: .86rem;
  height: .86rem;
  content: "";
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .25);
  transform: translateY(-50%);
  transition: left .16s ease;
}

.location-settings-page .settings-check-input:checked + .settings-check-toggle {
  background: var(--falcon-primary);
  border-color: var(--falcon-primary);
}

.location-settings-page .settings-check-input:checked + .settings-check-toggle::after {
  left: calc(100% - 1.03rem);
}

.location-settings-page .settings-check-input:focus-visible + .settings-check-toggle {
  box-shadow: 0 0 0 .2rem rgba(44, 123, 229, .2);
}

.location-settings-page .settings-check-text {
  color: var(--falcon-gray-800);
  font-weight: 600;
  line-height: 1.3;
}

.location-settings-page .settings-check-help {
  margin: .4rem 0 0 .75rem;
  color: var(--falcon-gray-600);
  font-size: .8125rem;
  line-height: 1.35;
}
