/* CRM – csak kiegészítések a CMS Bootstrap-designjához (saját arculat NINCS). */
.crm-timeline { list-style: none; padding-left: 0; margin: 0; }
.crm-timeline li { position: relative; padding: 0 0 1rem 1.75rem; border-left: 2px solid #dee2e6; margin-left: .5rem; }
.crm-timeline li::before { content: ''; position: absolute; left: -7px; top: .3rem; width: 12px; height: 12px; border-radius: 50%; background: var(--bs-primary, #0d6efd); }
.crm-timeline li:last-child { border-left-color: transparent; }
.crm-thumb { width: 120px; height: 120px; object-fit: cover; border-radius: .375rem; }
.crm-thumb-wrap { position: relative; display: inline-block; }
.crm-thumb-wrap .crm-thumb-del { position: absolute; top: 4px; right: 4px; }
.crm-upload-progress { height: 4px; }
.crm-sig-pad { width: 100%; height: 220px; border: 2px dashed #adb5bd; border-radius: .375rem; background: #fff; touch-action: none; }
.crm-slot-btn { min-width: 9rem; }
.crm-tetel-table input.form-control, .crm-tetel-table select.form-select { min-width: 5rem; }
.crm-nowrap { white-space: nowrap; }
.crm-color-dot { display: inline-block; width: .85rem; height: .85rem; border-radius: 50%; vertical-align: middle; }
@media (max-width: 767.98px) {
    .crm-tetel-table thead { display: none; }
    .crm-tetel-table tr { display: block; border-bottom: 1px solid #dee2e6; padding: .5rem 0; }
    .crm-tetel-table td { display: block; border: 0; padding: .25rem 0; }
}
/* Igényfelmérő: preferált napok választója */
.crm-naptar-racs { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.crm-naptar-fej { text-align: center; font-size: .75rem; font-weight: 600; color: #6c757d; padding-bottom: 2px; }
.crm-naptar-racs .crm-nap { width: 100%; padding: .3rem 0; text-align: center; }
.crm-nap-tiltott { display: block; color: #adb5bd; background: #f8f9fa; border-radius: .25rem; font-size: .875rem; cursor: not-allowed; }
.crm-naptar-racs .btn-check:disabled + .crm-nap { opacity: .35; }
/* Igényfelmérő lépéssor mobilon: csak a sorszámok, az aktív lépés a címével */
@media (max-width: 767.98px) {
    #igLepesek { flex-wrap: wrap !important; overflow: visible !important; }
    #igLepesek .nav-link:not(.active) .crm-lepes-cimke { display: none; }
    #igLepesek .nav-link { padding: .4rem .6rem; }
}

/* ---------- Admin keret: oldalsáv (asztali) + alsó sáv (mobil) – a CMS fejléce alatt ---------- */
.crm-admin-keret { display: flex; align-items: stretch; }
.crm-oldalsav { width: 250px; flex-shrink: 0; background: #fff; border-right: 1px solid #dee2e6; }
.crm-oldalsav-belso { position: sticky; top: 0; max-height: 100vh; overflow-y: auto; padding: 1rem .75rem 1rem; }
.crm-oldalsav-fej { padding: .25rem .75rem .75rem; margin-bottom: .75rem; border-bottom: 1px solid #dee2e6; font-size: 1.1rem; }
.crm-oldalsav-cim { padding: .75rem .75rem .25rem; font-size: .7rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #6c757d; }
.crm-oldalsav .nav-link, .crm-mobil-menu .nav-link { display: flex; align-items: center; gap: .65rem; padding: .35rem .75rem; font-size: .925rem; }
.crm-oldalsav .nav-link:not(.active), .crm-mobil-menu .nav-link:not(.active) { color: #495057; }
.crm-oldalsav .nav-link:not(.active):hover, .crm-mobil-menu .nav-link:not(.active):hover { background: #f1f3f5; }
.crm-oldalsav .nav-link i, .crm-mobil-menu .nav-link i { width: 1.25rem; text-align: center; }
.crm-fo { flex: 1 1 auto; min-width: 0; }
/* A CMS custom.css csak a main > .container.mt-5 elemet igazítja – a keretben itt adjuk meg a margót */
.crm-fo > .container { width: 100% !important; max-width: 100% !important; padding-left: 1.5rem !important; padding-right: 1.5rem !important; }
.crm-fo > .container > .container { width: 100% !important; max-width: 100% !important; padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 991.98px) {
    .crm-fo > .container { padding-left: 1rem !important; padding-right: 1rem !important; }
}
.crm-also-hely { height: 4.5rem; }
.crm-also-sav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; display: flex; justify-content: space-around;
    background: #fff; border-top: 1px solid #dee2e6; padding: .35rem 0 calc(.35rem + env(safe-area-inset-bottom)); box-shadow: 0 -2px 8px rgba(0, 0, 0, .05); }
.crm-also-sav a { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: .7rem; color: #6c757d; text-decoration: none; }
.crm-also-sav a i { font-size: 1.1rem; }
.crm-also-sav a.active { color: var(--bs-primary, #0d6efd); font-weight: 600; }
.crm-also-jelveny { position: absolute; top: -6px; right: -12px; min-width: 1.1rem; padding: 0 .25rem; border-radius: 1rem; background: #dc3545; color: #fff; font-size: .6rem; line-height: 1.1rem; text-align: center; }
.crm-fab { position: fixed; right: 1rem; bottom: 8.5rem; z-index: 1031; }
.crm-fab-napiterv { position: fixed; right: 1rem; bottom: 4.75rem; z-index: 1031; width: 3.25rem; height: 3.25rem; font-size: 1.2rem; display: flex; align-items: center; justify-content: center; }
.crm-fab > .btn { width: 3.25rem; height: 3.25rem; font-size: 1.25rem; }
/* Áttekintő: kompakt gyorsmenü-rács és listák */
.crm-gyors-racs { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5rem; }
.crm-gyors-racs .btn { display: flex; flex-direction: column; align-items: center; gap: .3rem; padding: .75rem .25rem; font-size: .8rem; }
.crm-gyors-racs .btn i { font-size: 1.15rem; }
/* Mobil térközök: a CMS custom.css 576 px alatt MINDEN .row gutterét és a .col-12 paddingját nullázza
   (a kezdőlap moduljai miatt) – a CRM oldalain (admin keret, portál, ajánlatkérő, tokenes oldalak)
   visszaállítjuk a Bootstrap-térközöket, különben a kártyák és a mezők összeérnek. */
@media (max-width: 576px) {
    .crm-fo .row, .crm-oldal .row { --bs-gutter-x: 1rem; margin-left: calc(-.5 * var(--bs-gutter-x)) !important; margin-right: calc(-.5 * var(--bs-gutter-x)) !important; }
    .crm-fo .row.g-0, .crm-oldal .row.g-0, .crm-fo .row.gx-0, .crm-oldal .row.gx-0 { --bs-gutter-x: 0; }
    .crm-fo .row.g-1, .crm-oldal .row.g-1 { --bs-gutter-x: .25rem; }
    .crm-fo .row.g-2, .crm-oldal .row.g-2 { --bs-gutter-x: .5rem; }
    .crm-fo .row.g-3, .crm-oldal .row.g-3 { --bs-gutter-x: 1rem; }
    .crm-fo .row.g-4, .crm-oldal .row.g-4 { --bs-gutter-x: 1.5rem; }
    .crm-fo .row > *, .crm-oldal .row > * { padding-left: calc(.5 * var(--bs-gutter-x)) !important; padding-right: calc(.5 * var(--bs-gutter-x)) !important; }
    .crm-fo .card-body, .crm-oldal .card-body { padding: .85rem; }
}
.crm-lista-sor { display: flex; justify-content: space-between; align-items: center; gap: .75rem; }
.crm-lista-sor > div, .crm-lista-sor > span:first-child { min-width: 0; }

/* Vízszintesen görgethető fül- / menüsor látható görgetősáv nélkül (az overflow-auto a fülek 1 px-es
   kilógása miatt függőleges fel-le nyilakat rajzolt) */
.crm-vgorget { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; }
.crm-vgorget::-webkit-scrollbar { display: none; }

/* ---------- 1.16.0: a CMS 2.22.0 admin keretében (bal menü a CMS-é) – nincs saját oldalsáv és alsó sáv; a margót a keret adja ---------- */
.crm-keretben { display: block; }
.crm-keretben .crm-fo > .container { padding-left: 0 !important; padding-right: 0 !important; }
.crm-fab.crm-fab-keretben { bottom: 5.25rem; }
.crm-fab-napiterv.crm-fab-keretben { bottom: 1.25rem; }
.crm-fab-keretben .ik, .crm-fab-napiterv.crm-fab-keretben .ik { width: 1.35rem; height: 1.35rem; }
.crm-gyors-racs .btn .ik { width: 1.3rem; height: 1.3rem; }
.crm-keretben .crm-gyors-racs .btn > .ik.me-1, .crm-keretben .crm-gyors-racs .btn > .ik.me-2 { display: inline-block; }

/* ---------- 1.16.0: saját SVG-diagramok (crm-diagram.js, a Chart.js helyett) ---------- */
.crm-diagram { position: relative; }
.crm-diagram-rajz { position: relative; width: 100%; }
.crm-diagram-rajz svg { display: block; overflow: visible; font-family: inherit; }
.crm-diagram-jelm { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .25rem 1rem; margin-bottom: .5rem; font-size: .8rem; color: #52514e; }
.crm-diagram-jelm i, .crm-diagram-fank-jelm i, .crm-diagram-sugo i { display: inline-block; width: 12px; height: 12px; margin-right: .4rem; border-radius: 3px; vertical-align: -1px; }
.crm-diagram-fank { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; gap: 1rem; }
.crm-diagram-fank-jelm { list-style: none; margin: 0; padding: 0; font-size: .85rem; }
.crm-diagram-fank-jelm li { display: flex; align-items: center; gap: .35rem; padding: .25rem 0; }
.crm-diagram-fank-jelm li span { flex: 1 1 auto; min-width: 0; }
.crm-diagram-fank-jelm li small { color: #6c757d; min-width: 2.5rem; text-align: right; }
@media (max-width: 575.98px) { .crm-diagram-fank { grid-template-columns: minmax(0, 1fr); } }
.crm-diagram-tabla { grid-column: 1 / -1; }
.crm-diagram-sugo { position: absolute; z-index: 1080; display: none; max-width: 280px; padding: .5rem .65rem; border-radius: 8px; background: #1c2530; color: #fff;
    font-size: .8rem; line-height: 1.45; pointer-events: none; box-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .2); }
.crm-diagram-sugo .text-muted { color: #c3ccd6 !important; }
.crm-diagram-sugo i { width: 10px; height: 10px; }
@media print { .crm-diagram-sugo { display: none !important; } }

/* ---------- 1.16.0: saját naptárnézet (crm-naptar-nezet.js, a FullCalendar helyett) ---------- */
.crm-nt { --crm-nt-keret: #e2e5e9; --crm-nt-halvany: #6c757d; position: relative; font-size: .875rem; }
.crm-nt.crm-nt-tolt .crm-nt-test { opacity: .6; transition: opacity .2s; }
.crm-nt-fej { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem; margin-bottom: .75rem; }
.crm-nt-fej > div { display: flex; align-items: center; gap: .5rem; }
.crm-nt-fej .btn-group > .btn { min-width: 36px; }
.crm-nt-cim { margin: 0; font-size: 1.15rem; font-weight: 650; text-transform: capitalize; }
.crm-nt-fej .btn.active { background: var(--wn-kek-h, #e6eef8); border-color: var(--wn-kek-k, #c9d9ee); color: var(--wn-kek-sz, #163a66); }
@media (max-width: 767.98px) { .crm-nt-fej { flex-wrap: nowrap; } .crm-nt-cim { font-size: 1rem; text-align: center; } }

/* idősávos nézet */
.crm-nt-ido { border: 1px solid var(--crm-nt-keret); border-radius: 8px; overflow: hidden; }
.crm-nt-ido-fej, .crm-nt-ido-test { display: grid; grid-template-columns: 3.25rem repeat(var(--crm-nt-napok), minmax(0, 1fr)); }
.crm-nt-ido-fej { position: sticky; top: 0; z-index: 4; background: #fafbfc; border-bottom: 1px solid var(--crm-nt-keret); }
.crm-nt-napfej { padding: .45rem .25rem; text-align: center; font-weight: 600; font-size: .8rem; color: #3b444d; border-left: 1px solid var(--crm-nt-keret); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.crm-nt-napfej.crm-nt-ma { color: var(--wn-elso, #1f4f8a); }
.crm-nt-tengely { position: relative; }
.crm-nt-ora { position: absolute; right: .35rem; transform: translateY(-50%); font-size: .7rem; color: var(--crm-nt-halvany); }
.crm-nt-ora:first-child { transform: none; }
.crm-nt-oszlop { position: relative; border-left: 1px solid var(--crm-nt-keret); touch-action: pan-y; }
.crm-nt-oszlop.crm-nt-ma { background: rgba(255, 220, 40, .07); }
.crm-nt-vonal { position: absolute; left: 0; right: 0; border-top: 1px dotted #eef0f2; pointer-events: none; }
.crm-nt-vonal-ora { border-top: 1px solid #e9ecef; }
.crm-nt-zart-ido { position: absolute; left: 0; right: 0; background: rgba(110, 120, 130, .07); pointer-events: none; }
.crm-nt-hatter { position: absolute; inset: 0; opacity: .28; pointer-events: none; }
.crm-nt-hatter span { position: absolute; top: .25rem; left: .25rem; right: .25rem; font-size: .7rem; font-weight: 600; color: #1c2024; }
.crm-nt-esemeny { position: absolute; z-index: 2; overflow: hidden; padding: .1rem .3rem; border: 1px solid; border-radius: 5px; font-size: .75rem; line-height: 1.25;
    cursor: pointer; box-shadow: 0 0 0 1px #fff; user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.crm-nt-esemeny:focus-visible { outline: 3px solid rgba(31, 79, 138, .5); outline-offset: 1px; }
.crm-nt-esemeny-ido { font-weight: 600; white-space: nowrap; }
.crm-nt-esemeny-cim { overflow: hidden; }
.crm-nt-meretezo { position: absolute; left: 0; right: 0; bottom: 0; height: 10px; cursor: ns-resize; }
.crm-nt-meretezo::after { content: ""; position: absolute; left: 50%; bottom: 3px; width: 18px; margin-left: -9px; border-top: 2px solid rgba(255, 255, 255, .7); border-radius: 2px; }
.crm-nt-huzott { z-index: 6; opacity: .85; box-shadow: 0 6px 18px rgba(20, 24, 28, .25); }
.crm-nt-huzas, .crm-nt-huzas * { cursor: grabbing !important; user-select: none !important; }
.crm-nt-kijeloles { position: absolute; left: 2px; right: 2px; z-index: 3; padding: .1rem .3rem; border-radius: 5px; background: rgba(31, 79, 138, .18);
    border: 1px dashed var(--wn-elso, #1f4f8a); color: var(--wn-elso, #1f4f8a); font-size: .72rem; font-weight: 600; pointer-events: none; }
.crm-nt-most { position: absolute; left: 0; right: 0; z-index: 5; border-top: 2px solid #d0392b; pointer-events: none; }
.crm-nt-most::before { content: ""; position: absolute; left: -5px; top: -6px; width: 10px; height: 10px; border-radius: 50%; background: #d0392b; }

/* hónap */
.crm-nt-honap { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--crm-nt-keret); border-radius: 8px; overflow: hidden; }
.crm-nt-honap-fej { padding: .4rem; text-align: center; font-size: .78rem; font-weight: 600; color: #3b444d; background: #fafbfc; border-bottom: 1px solid var(--crm-nt-keret); }
.crm-nt-nap { min-height: 6.5rem; padding: .2rem; border-right: 1px solid #eef0f2; border-bottom: 1px solid #eef0f2; cursor: pointer; min-width: 0; touch-action: pan-y; }
.crm-nt-nap:nth-child(7n) { border-right: 0; }
.crm-nt-mas-honap { background-color: #fafbfc; }
.crm-nt-mas-honap .crm-nt-nap-szam { color: #a3acb5; }
.crm-nt-nap.crm-nt-ma .crm-nt-nap-szam { background: var(--wn-elso, #1f4f8a); color: #fff; }
.crm-nt-nap.crm-nt-cel { outline: 2px dashed var(--wn-elso, #1f4f8a); outline-offset: -2px; background: #f3f7fc; }
.crm-nt-nap-szam { display: inline-flex; align-items: center; justify-content: center; min-width: 1.6rem; height: 1.6rem; margin-bottom: .1rem; padding: 0 .3rem;
    border: 0; border-radius: 999px; background: none; font-size: .78rem; font-weight: 600; color: #3b444d; }
.crm-nt-honap-esemeny { display: flex; align-items: center; gap: .25rem; padding: .05rem .2rem; border-radius: 4px; font-size: .74rem; white-space: nowrap; overflow: hidden; cursor: pointer; user-select: none; -webkit-touch-callout: none; }
.crm-nt-honap-esemeny:hover { background: #f1f3f5; }
.crm-nt-honap-ido { font-weight: 600; flex: 0 0 auto; }
.crm-nt-honap-cim { overflow: hidden; text-overflow: ellipsis; }
.crm-nt-pont { flex: 0 0 auto; width: 8px; height: 8px; border-radius: 50%; }
.crm-nt-tobb { border: 0; background: none; padding: .05rem .2rem; font-size: .72rem; font-weight: 600; color: var(--wn-elso, #1f4f8a); }
@media (max-width: 767.98px) {
    .crm-nt-nap { min-height: 4.5rem; }
    .crm-nt-honap-ido { display: none; }
}

/* lista */
.crm-nt-lista { border: 1px solid var(--crm-nt-keret); border-radius: 8px; overflow: hidden; }
.crm-nt-lista-nap { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem .75rem; background: #fafbfc; border-top: 1px solid var(--crm-nt-keret); font-size: .82rem; text-transform: capitalize; }
.crm-nt-lista-nap:first-child { border-top: 0; }
.crm-nt-lista-sor { display: flex; align-items: center; gap: .65rem; padding: .55rem .75rem; border-top: 1px solid #eef0f2; cursor: pointer; }
.crm-nt-lista-sor:hover { background: #f8f9fb; }
.crm-nt-lista-ido { flex: 0 0 6.5rem; color: #3b444d; white-space: nowrap; }
.crm-nt-lista-cim { min-width: 0; }
.crm-nt-ures { padding: 2rem 1rem; text-align: center; color: var(--crm-nt-halvany); }

/* ---------- 1.17.0: finomítások a CMS admin keretében (body.wn-admin) – telefonon kompakt fejléc, 2 oszlopos összesítő, látható
   lenyitó gombok (a wn-admin a színes kártyafejlécet fehérre teszi, a btn-outline-light ezen eltűnt), nem törő sorszámok ---------- */
.wn-admin .crm-admin-keret .card-header .btn-outline-light { color: var(--wn-szoveg, #1c2024); background: #fff; border-color: var(--wn-masod-keret, #c9ced4); }
.wn-admin .crm-admin-keret .card-header .btn-outline-light:hover,
.wn-admin .crm-admin-keret .card-header .btn-outline-light:focus-visible { background: var(--wn-szurke-h, #eef0f2); color: var(--wn-szoveg, #1c2024); }
.wn-admin .crm-admin-keret table code, .wn-admin .crm-admin-keret .table .badge { white-space: nowrap; }
.wn-admin .crm-admin-keret .crm-search-form input[type="date"] { min-width: 9.5rem; }
.wn-admin .crm-admin-keret .crm-search-form .col-lg-1 { min-width: 8rem; }
@media (max-width: 767.98px) {
    .wn-admin .crm-admin-keret .crm-fejlec-gombok { flex-direction: row !important; }
    .wn-admin .crm-admin-keret .crm-fejlec-gombok > .btn:not(.d-none), .wn-admin .crm-admin-keret .crm-fejlec-gombok > .dropdown:not(.d-none) { flex: 1 1 auto; }
    .wn-admin .crm-admin-keret .crm-stat-sor { row-gap: .75rem; }
    .wn-admin .crm-admin-keret .crm-stat-sor > [class*="col-md-"] { flex: 0 0 50%; max-width: 50%; }
    .wn-admin .crm-admin-keret .crm-stat-sor .card { height: 100%; margin-bottom: 0 !important; }
    .wn-admin .crm-admin-keret .crm-stat-sor .card-body { padding: .7rem .5rem; }
}
