@import '_content/BlazorDateRangePicker/BlazorDateRangePicker.iitr8bszy4.bundle.scp.css';

/* /Components/Appointments/ActivitiesWeekly.razor.rz.scp.css */
.tooltip-container[b-2j0se6abxu] {
    position: relative;
}

.tooltip-text[b-2j0se6abxu] {
    visibility: hidden;
    position: absolute;
    background-color: #555;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 5px;
    z-index: 100;
    opacity: 0;
    transition: opacity 0.3s;
}

.tooltip-container:hover .tooltip-text[b-2j0se6abxu] {
    visibility: visible;
    opacity: 1;
}

/* Sötét témán a szürke buborék helyett kiemelt felület + keret. */
@media (prefers-color-scheme: dark) {
    .tooltip-text[b-2j0se6abxu] {
        background-color: var(--color-bg-elevated);
        color: var(--color-text-primary);
        border: 0.0625rem solid var(--color-border-hover);
    }
}
/* /Components/Appointments/Appointments.razor.rz.scp.css */
.overlay[b-3zz9ikc1nb] {
    position: fixed;
    background-color: var(--color-bg-elevated);
    border: 1px solid var(--color-border-primary);
    border-radius: 5px;
    padding: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    display: none;
}

.activities-wrapper[b-3zz9ikc1nb] {
    overflow: auto;
    max-height: calc(100vh - 1.1rem);
    contain: inline-size;
}

.filters[b-3zz9ikc1nb] {
    position: sticky;
    left: 0;
    z-index: 4;
}

.activities-wrapper[b-3zz9ikc1nb]  thead th {
    position: sticky;
    top: 0;
    z-index: 2;
}

.activities-wrapper[b-3zz9ikc1nb]  thead th:first-child {
    left: 0;
    z-index: 3;
}

.activities-wrapper[b-3zz9ikc1nb]  tbody th:first-child {
    position: sticky;
    left: 0;
    z-index: 1;
    background-color: var(--color-bg-primary);
}

.activities-wrapper[b-3zz9ikc1nb]  tbody tr.table-info th:first-child {
    background-color: var(--bs-table-bg, #cff4fc);
}

ul[b-3zz9ikc1nb] {
    list-style-type: none; /* Removes bullets */
    padding: 0; /* Removes default left padding */
    margin: 0; /* Removes default margins */
}

li[b-3zz9ikc1nb] {
    margin: 5px 0; /* Optional: Add spacing between list items */
}
/* /Components/Assets/AssetEditor.razor.rz.scp.css */
.input-group[b-purwxjxdh4] {
    position: relative;
}

.floating-list[b-purwxjxdh4] {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--color-bg-elevated);
    border: 1px solid var(--color-border-primary);
    border-top: none;
    z-index: 1000;
}

.vertical-header[b-purwxjxdh4] {
    writing-mode: vertical-rl; /* Vertical text (right to left) */
    transform: rotate(180deg); /* Flip text upside-down */
    white-space: nowrap; /* Prevent wrapping */
    text-align: center;
    font-weight: bold;
    background-color: var(--color-bg-tertiary);
    padding: 10px;
    min-width: 40px; /* Adjust as needed */
    border: 1px solid var(--color-border-primary);
}
/* /Components/Axapta/AxaptaList.razor.rz.scp.css */
/* A lista 11 oszlopa együtt szélesebb, mint egy átlagos ablak. Ha a táblázat
   min-content szélessége nagyobb a viewportnál, az a LAPOT tolja szét (kilógó
   navigáció, teljes ablakos vízszintes gördítősáv) — lásd frontend-design §4.

   Megoldás gördítődoboz nélkül: a hosszú SZÖVEGES oszlopok rugalmasak. A
   `max-width: 0` az automatikus táblaelrendezésben azt jelenti, hogy az oszlopnak
   nincs saját minimális igénye: a böngésző a fix szélességű oszlopok (dátum, összeg)
   után MARADÓ helyet osztja szét köztük. Széles ablakon így a teljes cégnév kilátszik,
   és a rendszer CSAK AKKOR vág le (…), ha tényleg nem fér ki. */
.ax-table[b-0ar7e5allg] {
    width: 100%;
    table-layout: auto;
}

.ax-table[b-0ar7e5allg]  td.ax-flex {
    max-width: 0;      /* rugalmas oszlop: a maradék helyet kapja, nem tolja szét a lapot */
    min-width: 5rem;   /* de teljesen ne tűnjön el */
}

/* A cégnév-oszlop kapja a maradék hely nagyobb részét (ez a leghosszabb tartalom). */
.ax-table[b-0ar7e5allg]  td.ax-name {
    min-width: 10rem;
}

/* A levágott szöveg teljes tartalma tooltipben (title) elérhető marad. */
.ax-table[b-0ar7e5allg]  .ax-trunc {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Az AM-gombsor 6+ hosszú magyar nevet tartalmaz: a btn-group alapból nem tördel,
   így kilógna a képernyőről. Tördeljen, mint a többi eszköztár-elem (§5). */
.ax-am-filter[b-0ar7e5allg]  .btn-group {
    flex-wrap: wrap;
}
/* /Components/BusinessTrip/BtDocViewer.razor.rz.scp.css */
/* Document preview resize — same contract as BtDomesticEditor.razor.css /
   wwwroot/js/documentResizer.js. The row is the full-width ratio basis; the
   wrap is the resized element; the handle is a grab strip on the right edge.
   The rgba() values are the sanctioned theme-agnostic transparency layered
   over the themed background (frontend-design.md §1). */

.doc-resize-wrap[b-mt0wzm158c] {
    position: relative;
    /* Hug the content by default so the handle sits at the document's
       natural right edge. JS sets an explicit px width only for ratios
       below 1; full size falls back to this shrink-to-fit. Capped at the
       row width so oversized images/PDFs don't overflow. */
    display: inline-block;
    max-width: 100%;
}

.doc-resize-handle[b-mt0wzm158c] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 0.55rem;
    cursor: ew-resize;
    background: rgba(0, 0, 0, 0.06);
    border-left: 1px solid rgba(0, 0, 0, 0.15);
    touch-action: none; /* let pointer events drive the drag, not scrolling */
}

.doc-resize-handle:hover[b-mt0wzm158c] {
    background: rgba(13, 110, 253, 0.25); /* Bootstrap primary tint */
}
/* /Components/BusinessTrip/BtDomesticEditor.razor.rz.scp.css */
/* Document preview resize — see wwwroot/js/documentResizer.js.
   The row is the full-width ratio basis; the wrap is the resized element
   (its inline width is the stored DisplayWidthRatio as a percentage); the
   handle is a grab strip on the right edge. */

.doc-resize-wrap[b-6abg7jtdxf] {
    position: relative;
    /* Hug the content by default so the handle sits at the document's
       natural right edge. JS sets an explicit px width only for ratios
       below 1; full size falls back to this shrink-to-fit. Capped at the
       row width so oversized images/PDFs don't overflow. */
    display: inline-block;
    max-width: 100%;
}

.doc-resize-handle[b-6abg7jtdxf] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 0.55rem;
    cursor: ew-resize;
    background: rgba(0, 0, 0, 0.06);
    border-left: 1px solid rgba(0, 0, 0, 0.15);
    touch-action: none; /* let pointer events drive the drag, not scrolling */
}

.doc-resize-handle:hover[b-6abg7jtdxf] {
    background: rgba(13, 110, 253, 0.25); /* Bootstrap primary tint */
}
/* /Components/BusinessTrip/BtDomesticPrintView.razor.rz.scp.css */
/* Kiküldetési rendelvény belföldi — printable layout.
   Matches specs/kikuld/Kikuldetesi_rendelveny_belfold_ISO_2026.xlsx
   field-for-field. Screen preview uses the same layout as print so
   what the finance user sees on screen is what they get on paper. */

.rendelveny[b-fqughc1uq6] {
    font-family: "Arial", "Helvetica", sans-serif;
    font-size: 0.7rem;
    color: #000;
    max-width: 19cm;
    margin: 0 auto;
}

.rendelveny .title[b-fqughc1uq6] {
    text-align: center;
    margin-bottom: 0.5rem;
}

.rendelveny .title-main[b-fqughc1uq6] {
    font-size: 1.1rem;
    font-weight: bold;
}

.rendelveny .title-sub[b-fqughc1uq6] {
    font-size: 0.75rem;
    font-style: italic;
}

.rendelveny .title-period[b-fqughc1uq6] {
    font-size: 0.85rem;
    font-weight: bold;
    margin-top: 0.25rem;
}

.rendelveny table[b-fqughc1uq6] {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0.4rem;
}

.rendelveny th[b-fqughc1uq6],
.rendelveny td[b-fqughc1uq6] {
    border: 1px solid #000;
    padding: 0.15rem 0.3rem;
    vertical-align: top;
}

.rendelveny th[b-fqughc1uq6] {
    font-weight: bold;
    background: #f0f0f0;
    text-align: left;
}

.rendelveny .header-table td.label[b-fqughc1uq6],
.rendelveny .vehicle-table td.label[b-fqughc1uq6],
.rendelveny .finance-table td.label[b-fqughc1uq6] {
    font-weight: normal;
    color: #333;
    width: 12%;
    white-space: nowrap;
}

.rendelveny .header-table td.value[b-fqughc1uq6],
.rendelveny .vehicle-table td.value[b-fqughc1uq6],
.rendelveny .finance-table td.value[b-fqughc1uq6] {
    font-weight: bold;
    background: #fff8c8;
}

.rendelveny .finance-table td.value.empty[b-fqughc1uq6] {
    background: #fff8c8;
    min-width: 4rem;
    /* Deliberately empty — matches the scanned reality where finance
       never fills these in post-print. See note in the razor file. */
}

.rendelveny .vehicle-table td.label[b-fqughc1uq6] {
    width: auto;
    white-space: nowrap;
}

/* Trip lines table — the dense grid that dominates the page */
.rendelveny .lines-table[b-fqughc1uq6] {
    font-size: 0.65rem;
}

.rendelveny .lines-table th[b-fqughc1uq6] {
    text-align: center;
    font-weight: bold;
    vertical-align: middle;
    background: #e8e8e8;
}

.rendelveny .lines-table .col-num[b-fqughc1uq6]       { width: 1.5rem; text-align: center; }
.rendelveny .lines-table .col-date[b-fqughc1uq6]      { width: 3.5rem; white-space: nowrap; }
.rendelveny .lines-table .col-mode[b-fqughc1uq6]      { width: 4.5rem; }
.rendelveny .lines-table .col-km[b-fqughc1uq6]        { width: 2.5rem; }
.rendelveny .lines-table .col-price[b-fqughc1uq6]     { width: 3rem; }
.rendelveny .lines-table .col-fuel[b-fqughc1uq6]      { width: 3.5rem; }
.rendelveny .lines-table .col-wear[b-fqughc1uq6]      { width: 3rem; }
.rendelveny .lines-table .col-food[b-fqughc1uq6]      { width: 3.5rem; }

.rendelveny .text-end[b-fqughc1uq6] { text-align: right; }

.rendelveny .lines-table tfoot .totals td[b-fqughc1uq6] {
    background: #e0e0e0;
    font-weight: bold;
}

/* Receipts table — independent invoice-backed expenses. Sits between
   the trip lines table and the grand total. Hidden entirely when the
   trip has no receipts. */
.rendelveny .receipts-table[b-fqughc1uq6] {
    font-size: 0.65rem;
}

.rendelveny .receipts-table th[b-fqughc1uq6] {
    text-align: center;
    font-weight: bold;
    vertical-align: middle;
    background: #e8e8e8;
}

.rendelveny .receipts-table .col-date[b-fqughc1uq6]  { width: 6rem; white-space: nowrap; }
.rendelveny .receipts-table .col-other[b-fqughc1uq6] { width: 4rem; }

.rendelveny .receipts-table tfoot .totals td[b-fqughc1uq6] {
    background: #e0e0e0;
    font-weight: bold;
}

/* Grand total table — single-row summary line below everything else. */
.rendelveny .grand-total-table[b-fqughc1uq6] {
    margin-bottom: 0.5rem;
}

.rendelveny .grand-total-table tfoot .grand-total td[b-fqughc1uq6] {
    background: #e0e0e0;
    font-weight: bold;
    padding: 0.3rem 0.3rem;
}

/* Jóváhagyási tábla — ki, mikor (óra:perc) hagyta jóvá az egyes szinteket */
.rendelveny .approval-table[b-fqughc1uq6] {
    margin-top: 0.5rem;
}

.rendelveny .approval-table th[b-fqughc1uq6] {
    background: #e8e8e8;
}

.rendelveny .approval-table .col-step[b-fqughc1uq6] { width: 30%; }
.rendelveny .approval-table .col-when[b-fqughc1uq6] { width: 28%; white-space: nowrap; }

.rendelveny .casco[b-fqughc1uq6] {
    margin-top: 0.6rem;
    font-size: 0.7rem;
}

.rendelveny .casco-option[b-fqughc1uq6] {
    display: inline-block;
    border: 1px solid #000;
    padding: 0.05rem 0.6rem;
    margin-left: 0.35rem;
    background: #fff8c8;
}

.rendelveny .casco-option.checked[b-fqughc1uq6] {
    background: #ffe066;
    font-weight: bold;
}

/* Print-only rules: hide the toolbar and tighten page margins */
@media print {
    @page {
        size: A4;
        margin: 10mm;
    }

    .no-print[b-fqughc1uq6] {
        display: none !important;
    }

    .rendelveny[b-fqughc1uq6] {
        max-width: none;
    }

    .rendelveny .header-table td.value[b-fqughc1uq6],
    .rendelveny .vehicle-table td.value[b-fqughc1uq6],
    .rendelveny .finance-table td.value[b-fqughc1uq6],
    .rendelveny .casco-option[b-fqughc1uq6] {
        /* Keep the yellow highlight on paper so the original template's
           "CSAK A SÁRGA SZÍNŰ MEZŐKET KELL TÖLTENI" visual cue is preserved. */
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
/* /Components/CcEngPlanActual/CcEngPlanActual.razor.rz.scp.css */
.budget-warning[b-znrgo2um3o] {
    color: #e67300 !important;
}

/* Sötét témán világosított narancs, különben elveszik a sötét háttéren. */
@media (prefers-color-scheme: dark) {
    .budget-warning[b-znrgo2um3o] {
        color: #f2a45c !important;
    }
}

[b-znrgo2um3o] td.text-end,
[b-znrgo2um3o] th.text-end {
    white-space: nowrap;
}

.pm-cell[b-znrgo2um3o] {
    position: relative;
    min-width: 12rem;
}

.overlay[b-znrgo2um3o] {
    position: absolute;
    background-color: var(--color-bg-elevated);
    border: 1px solid var(--color-border-primary);
    border-radius: 5px;
    padding: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    display: none;
}

.overlay[b-znrgo2um3o]  th {
    position: static;
}

.comment-cell[b-znrgo2um3o] {
    max-width: 20rem;
    white-space: nowrap;
    position: relative;
}

.comment-text[b-znrgo2um3o] {
    display: inline-block;
    max-width: calc(100% - 2rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
    cursor: default;
}

.comment-add-btn[b-znrgo2um3o] {
    padding: 0 0.35rem;
    line-height: 1.2;
    font-size: 1rem;
    vertical-align: middle;
    margin-left: 0.25rem;
}

.comment-overlay[b-znrgo2um3o] {
    max-width: 40rem;
    max-height: 25rem;
    overflow-y: auto;
}
/* /Components/CcEngPlanActual/CcEngPlanActualEmployee.razor.rz.scp.css */
.budget-warning[b-imn6vrmjj6] {
    color: #e67300 !important;
}

/* Sötét témán világosított narancs, különben elveszik a sötét háttéren. */
@media (prefers-color-scheme: dark) {
    .budget-warning[b-imn6vrmjj6] {
        color: #f2a45c !important;
    }
}

.overlay[b-imn6vrmjj6] {
    position: absolute;
    background-color: var(--color-bg-elevated);
    border: 1px solid var(--color-border-primary);
    border-radius: 5px;
    padding: 10px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    display: none;
}

.overlay[b-imn6vrmjj6]  th {
    position: static;
}

.comment-cell[b-imn6vrmjj6] {
    max-width: 20rem;
    white-space: nowrap;
    position: relative;
}

.comment-text[b-imn6vrmjj6] {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    vertical-align: middle;
    cursor: default;
}

.comment-overlay[b-imn6vrmjj6] {
    max-width: 40rem;
    max-height: 25rem;
    overflow-y: auto;
}
/* /Components/Coverage/OssCoverage.razor.rz.scp.css */
/* OSS lefedettség idővonal — tiszta HTML/CSS, JS/mérés nélkül (lásd hub-conventions.md →
   „Responsive Width"); a ProjectTrackerGantt mintáját követi. A magasságok/bal-szélesség a
   komponens által a konténerre kiírt --oc-* custom propertykből jönnek (egyetlen forrás: a
   C# RowH/AxisH/LeftW konstansok).

   Vízszintes: a tengelysáv szélessége max(maradék-hely, --oc-track-min). Kizoomolva kitölt,
   rázoomolva túlnyúlik → vízszintes görgetés. Függőleges: a Gantt SAJÁT magán görget
   (flex:0 1 auto; min-height:0; overflow:auto), így csak egy függőleges görgősáv van. */

.oc-coverage-page[b-g66oquu884] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 1.5rem);
}

.oc-legend[b-g66oquu884] {
    flex-wrap: wrap;
}

.oc-swatch[b-g66oquu884] {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 0.2rem;
    vertical-align: middle;
    box-shadow: inset 0 0 0 0.0313rem rgba(0, 0, 0, 0.12);
}

/* Státusz-színek (sáv + jelmagyarázat). Telített szemantikus színek — mindkét
   témán olvashatók, ezért nem token-pár. A color a nyitott végű sáv nyilának
   kell (currentColor). */
.oc-ok[b-g66oquu884] {
    background-color: #198754;
    color: #198754;
}

.oc-warn[b-g66oquu884] {
    background-color: #fd7e14;
    color: #fd7e14;
}

.oc-expired[b-g66oquu884] {
    background-color: #dc3545;
    color: #dc3545;
}

/* A halvány csík áttetsző piros (nem pasztell-rózsaszín), így sötét témán is ül. */
.oc-swatch-none[b-g66oquu884] {
    background-image: repeating-linear-gradient(45deg, #dc3545 0, #dc3545 0.18rem, rgba(220, 53, 69, 0.18) 0.18rem, rgba(220, 53, 69, 0.18) 0.36rem);
}

.oc-gantt[b-g66oquu884] {
    flex: 0 1 auto;
    min-height: 0;
    overflow: auto;
    border: 0.0625rem solid var(--color-border-primary);
    border-radius: 0.375rem;
}

.oc-gantt-inner[b-g66oquu884] {
    display: flex;
    width: max(100%, calc(var(--oc-left-w) + var(--oc-track-min)));
}

/* Bal sor-fejléc: vízszintes görgetésnél a helyén marad. */
.oc-gantt-left[b-g66oquu884] {
    position: sticky;
    left: 0;
    z-index: 2;
    flex: 0 0 var(--oc-left-w);
    min-width: 0;
    background-color: var(--color-bg-primary);
    border-right: 0.0625rem solid var(--color-border-hover);
}

.oc-gantt-left-head[b-g66oquu884] {
    position: sticky;
    top: 0;
    z-index: 3;
    height: var(--oc-axis-h);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    padding: 0 0.5rem;
    font-weight: 600;
    background-color: var(--color-bg-secondary);
    border-bottom: 0.0625rem solid var(--color-border-hover);
}

.oc-left-row[b-g66oquu884] {
    height: var(--oc-row-h);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0 0.5rem;
    overflow: hidden;
    white-space: nowrap;
}

.oc-group[b-g66oquu884] {
    background-color: var(--color-bg-tertiary);
}

.oc-left-proj[b-g66oquu884] {
    flex: 0 1 auto;
    max-width: 7rem;
}

/* Tengelysáv: kitölti a bal-fejléc utáni maradék helyet az inner-en belül. */
.oc-gantt-track[b-g66oquu884] {
    position: relative;
    flex: 1 1 auto;
}

.oc-gantt-axis[b-g66oquu884] {
    position: sticky;
    top: 0;
    z-index: 1;
    height: var(--oc-axis-h);
    border-bottom: 0.0625rem solid var(--color-border-hover);
    background-color: var(--color-bg-secondary);
}

.oc-axis-label[b-g66oquu884] {
    position: absolute;
    bottom: 0.3rem;
    transform: translateX(0.15rem);
    font-size: 0.72rem;
    color: var(--color-text-tertiary);
    white-space: nowrap;
}

.oc-axis-today[b-g66oquu884] {
    position: absolute;
    top: 0.2rem;
    transform: translateX(0.15rem);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-danger);
    white-space: nowrap;
}

.oc-gantt-body[b-g66oquu884] {
    position: relative;
}

.oc-gantt-grid[b-g66oquu884] {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.oc-grid-line[b-g66oquu884] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0.0625rem;
    background-color: var(--color-border-primary);
}

.oc-today-line[b-g66oquu884] {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 3;
    border-left: 0.0938rem dashed var(--color-danger);
    pointer-events: none;
}

.oc-trow[b-g66oquu884] {
    position: relative;
    z-index: 1;
    height: var(--oc-row-h);
}

.oc-trow.oc-group[b-g66oquu884] {
    background-color: var(--color-bg-tertiary);
}

/* Áttetsző, hogy a rácsvonalak átlátsszanak; a primary tokenből keverve
   mindkét témán illeszkedik. */
.oc-trow:not(.oc-group):hover[b-g66oquu884] {
    background-color: color-mix(in srgb, var(--color-primary) 8%, transparent);
}

/* Lefedettségi sáv: CoverageStart→CoverageEnd. left/width %-ban (a tengelysávhoz képest). */
.oc-bar[b-g66oquu884] {
    position: absolute;
    top: 0.42rem;
    height: calc(var(--oc-row-h) - 0.84rem);
    min-width: 0.4rem;
    border-radius: 0.22rem;
    box-shadow: inset 0 0 0 0.0313rem rgba(0, 0, 0, 0.12);
}

/* Nyitott vég (nincs CoverageEnd): a sáv az ablak végéig nyúlik, nyíllal jelezve. */
.oc-bar.oc-open[b-g66oquu884] {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.oc-bar.oc-open[b-g66oquu884]::after {
    content: "";
    position: absolute;
    left: 100%;
    top: 0;
    border-top: calc((var(--oc-row-h) - 0.84rem) / 2) solid transparent;
    border-bottom: calc((var(--oc-row-h) - 0.84rem) / 2) solid transparent;
    border-left: 0.5rem solid currentColor;
    color: inherit;
}

/* Nincs élő SO / nincs lefedettségi ablak: csíkozott piros sáv a teljes szélességben. */
.oc-bar.oc-none[b-g66oquu884] {
    left: 0;
    right: 0;
    background-image: repeating-linear-gradient(45deg, rgba(220, 53, 69, 0.45) 0, rgba(220, 53, 69, 0.45) 0.25rem, rgba(220, 53, 69, 0.12) 0.25rem, rgba(220, 53, 69, 0.12) 0.5rem);
    box-shadow: none;
}
/* /Components/CustomerSatisfaction/CustomerSatisfaction.razor.rz.scp.css */
.cover[b-utf6msqgyu] {
    position: relative;
    width: 100%;
    min-height: 320px;
    background: #f5f7fa;
    display: flex;
    align-items: flex-end;
    justify-content: flex-start;
    overflow: hidden;
}

.cover__headline[b-utf6msqgyu] {
    padding: 60px 0 30px 0;
    z-index: 2;
}

.cover__title[b-utf6msqgyu] {
    font-size: 2.5rem;
    font-weight: 700;
    color: #003366;
    border-bottom: 4px solid #00b5e2;
    display: inline-block;
    padding-bottom: 10px;
    margin-bottom: 0;
}

.cover__image[b-utf6msqgyu] {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 50vw;
    max-width: 650px;
    z-index: 1;
}

    .cover__image img[b-utf6msqgyu] {
        width: 100%;
        height: auto;
        display: block;
    }

.page-wrapper[b-utf6msqgyu] {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
    width: 100%;
    position: relative;
    z-index: 2;
}

.page-wrapper--medium[b-utf6msqgyu] {
    max-width: 700px;
}

.contact[b-utf6msqgyu] {
    background: #f5f7fa;
    padding: 40px 0;
}

.contact__box[b-utf6msqgyu] {
    background: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.07);
    padding: 40px 32px;
    margin: 0 auto;
}

.contact__form-wrapper[b-utf6msqgyu] {
    width: 100%;
}

.contact__title[b-utf6msqgyu] {
    font-size: 1.4rem;
    font-weight: 600;
    color: #003366;
    margin-bottom: 18px;
}

.form[b-utf6msqgyu] {
    margin-top: 24px;
}

.form__items[b-utf6msqgyu] {
    margin-bottom: 24px;
}

.form__item[b-utf6msqgyu] {
    margin-bottom: 18px;
}

.form__label[b-utf6msqgyu] {
    font-weight: 600;
    margin-bottom: 6px;
    display: block;
}

.form__label--required[b-utf6msqgyu]:after {
    content: "*";
    color: #e2001a;
    margin-left: 4px;
}

.form__control[b-utf6msqgyu] {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #d6dbe1;
    border-radius: 6px;
    font-size: 1rem;
    background: #f5f7fa;
    margin-top: 2px;
}

.form__control--textarea[b-utf6msqgyu] {
    min-height: 100px;
    resize: vertical;
}

.button[b-utf6msqgyu] {
    background: #005baa;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 0.7rem 2rem;
    font-weight: 600;
    font-size: 1.1rem;
    cursor: pointer;
    transition: background 0.2s;
}

    .button:disabled[b-utf6msqgyu] {
        background: #b0c4d8;
        cursor: not-allowed;
    }

.text-success[b-utf6msqgyu] {
    color: #1a7f37;
    font-weight: 600;
    font-size: 1.1rem;
}

.form__cb-label[b-utf6msqgyu] {
    font-weight: 400;
    font-size: 1rem;
    color: #333;
}

.form-check-input[type="checkbox"][b-utf6msqgyu] {
    accent-color: #005baa;
}

.form__item--disclaimer[b-utf6msqgyu] {
    margin-top: 30px;
    font-size: 0.95rem;
    color: #555;
}

.plain-text a[b-utf6msqgyu] {
    color: #005baa;
    text-decoration: underline;
}

/* ----------------------------------
   General Table Styling
   ---------------------------------- */

.survey-matrix[b-utf6msqgyu] {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 12px;
    overflow: hidden; /* Clips content to rounded corners */
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,91,170,0.04);
    border: 1px solid #d6dbe1;
}

    /* Matrix table headers and cells */
    .survey-matrix th[b-utf6msqgyu],
    .survey-matrix td[b-utf6msqgyu] {
        border: 1px solid #d6dbe1;
        border-top: none;
        border-left: none;
        padding: 12px 8px;
        text-align: center;
        background: #fff;
        font-size: 1rem;
    }

    .survey-matrix th[b-utf6msqgyu] {
        background: #f5f7fa;
        color: #003366;
        font-weight: 600;
    }

    .survey-matrix .matrix-question[b-utf6msqgyu] {
        text-align: left;
        background: #f5f7fa;
        color: #003366;
        font-weight: 500;
    }

    /* Remove double/thick borders on outer edges */
    .survey-matrix tr:first-child th[b-utf6msqgyu] {
        border-top: none;
    }

    .survey-matrix tr th:first-child[b-utf6msqgyu],
    .survey-matrix tr td:first-child[b-utf6msqgyu] {
        border-left: none;
    }

    /* Rounded corners on outermost cells */
    .survey-matrix tr:first-child th:first-child[b-utf6msqgyu] {
        border-top-left-radius: 12px;
    }

    .survey-matrix tr:first-child th:last-child[b-utf6msqgyu] {
        border-top-right-radius: 12px;
    }

    .survey-matrix tr:last-child td:first-child[b-utf6msqgyu] {
        border-bottom-left-radius: 12px;
    }

    .survey-matrix tr:last-child td:last-child[b-utf6msqgyu] {
        border-bottom-right-radius: 12px;
    }

    /* Remove inner border at the bottom of last row */
    .survey-matrix tr:last-child td[b-utf6msqgyu] {
        border-bottom: none;
    }
    /* Remove inner border at the right edge of last column */
    .survey-matrix tr th:last-child[b-utf6msqgyu],
    .survey-matrix tr td:last-child[b-utf6msqgyu] {
        border-right: none;
    }

    /* Matrix form elements */
    .survey-matrix input[type="radio"][b-utf6msqgyu] {
        accent-color: #005baa;
        width: 18px;
        height: 18px;
    }

@media (max-width: 767px) {
    .cover__title[b-utf6msqgyu] {
        font-size: 1.6rem;
    }

    .cover__image[b-utf6msqgyu] {
        width: 100vw;
        max-width: 100vw;
    }

    .contact__box[b-utf6msqgyu] {
        padding: 24px 8px;
    }

    .survey-matrix th[b-utf6msqgyu], .survey-matrix td[b-utf6msqgyu] {
        padding: 8px 2px;
        font-size: 0.95rem;
    }
}
/* /Components/CustomerSatisfaction/CustomerSatisfactionEditor.razor.rz.scp.css */
.input-group[b-eavtwvue2x] {
    position: relative;
}

.floating-list[b-eavtwvue2x] {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--color-bg-elevated);
    border: 1px solid var(--color-border-primary);
    border-top: none;
    z-index: 1000;
}

.vertical-header[b-eavtwvue2x] {
    writing-mode: vertical-rl; /* Vertical text (right to left) */
    transform: rotate(180deg); /* Flip text upside-down */
    white-space: nowrap; /* Prevent wrapping */
    text-align: center;
    font-weight: bold;
    background-color: var(--color-bg-tertiary);
    padding: 10px;
    min-width: 40px; /* Adjust as needed */
    border: 1px solid var(--color-border-primary);
}

/* .copy-to-clipboard globálisan az app.css-ben él. */
/* /Components/Fleet/FleetMileageMatrix.razor.rz.scp.css */
/* Two-axis component (wide + tall): bound to the viewport so both scrollbars
   stay on-screen and the page itself does not scroll. See hub-conventions.
   max-height (not height): when the table fits, the box shrinks to content —
   no reserved blank area under the table; a taller table scrolls internally. */
.fleet-matrix-page[b-0xjxdhjymc] {
    display: flex;
    flex-direction: column;
    /* Embedded under the FleetAdmin view-toggle bar → leave room for it. */
    max-height: calc(100dvh - 8rem);
}

.fleet-matrix-toolbar[b-0xjxdhjymc] {
    flex: 0 0 auto;
    margin-bottom: 0.5rem;
}

.fleet-matrix-scroll[b-0xjxdhjymc] {
    flex: 0 1 auto;
    min-height: 0;
    overflow: auto;
    /* Without this the table's min-content width propagates THROUGH the
       overflow:auto up to main (flex item, min-width:auto), and the PAGE
       scrolls horizontally instead of this wrapper. */
    contain: inline-size;
}

/* Time axis pinned to the top; row-header (plate) column pinned to the left.
   Backgrounds come from Bootstrap's --bs-table-bg chain, so the thead's
   table-dark class and the light/dark theme remap both apply — sticky cells
   just need the value repeated to stay opaque while scrolling. */
.fleet-matrix thead th[b-0xjxdhjymc] {
    position: sticky;
    top: 0;
    z-index: 2;
    background-color: var(--bs-table-bg);
}

.fleet-matrix .col-plate[b-0xjxdhjymc] {
    position: sticky;
    left: 0;
    z-index: 1;
    background-color: var(--bs-table-bg);
    white-space: nowrap;
}

.fleet-matrix thead .col-plate[b-0xjxdhjymc] {
    z-index: 3;
}

.fleet-matrix .col-model[b-0xjxdhjymc],
.fleet-matrix .col-driver[b-0xjxdhjymc] {
    white-space: nowrap;
}

.fleet-matrix .col-month[b-0xjxdhjymc] {
    white-space: nowrap;
    min-width: 4.5rem;
}

.fleet-matrix .col-allowed[b-0xjxdhjymc],
.fleet-matrix .col-avg[b-0xjxdhjymc] {
    white-space: nowrap;
    min-width: 5rem;
}

.fleet-gap[b-0xjxdhjymc] {
    background-color: var(--bs-warning-bg-subtle);
}

/* Average monthly run over the allowed frame — flag it. */
.fleet-over[b-0xjxdhjymc] {
    color: var(--bs-danger);
    font-weight: 600;
}

/* Whole-cell links: Rendszám/Típus → autó adatlap, Használó → havi km.
   The hover token is opaque in both themes, so the sticky plate cell stays
   covered while scrolled. Declared after the .col-plate rule on purpose —
   the tie-break lets the hover background win on the sticky column too. */
.fleet-cell-link[b-0xjxdhjymc] {
    cursor: pointer;
}

.fleet-cell-link:hover[b-0xjxdhjymc] {
    background-color: var(--color-hover-bg);
}

/* Decorative in-cell link icons: muted until the cell is hovered. */
.fleet-cell-icon[b-0xjxdhjymc] {
    margin-left: 0.375rem;
    opacity: 0.45;
}

.fleet-cell-link:hover .fleet-cell-icon[b-0xjxdhjymc] {
    opacity: 1;
}
/* /Components/Fleet/FleetTripLog.razor.rz.scp.css */
/* The trip log has more columns than a phone is wide. Scroll it horizontally
   INSIDE the card instead of letting the table's intrinsic min-content width
   propagate up to main and push the whole page sideways. `contain: inline-size`
   is mandatory for a <table> wrapper — see frontend-design §4. One-axis: the
   page keeps owning vertical scroll, this wrapper only scrolls horizontally. */
.fleet-trip-scroll[b-jmkrt3q6t2] {
    overflow-x: auto;
    contain: inline-size;
}

.fleet-trip-table[b-jmkrt3q6t2] {
    font-size: 0.875rem;
}

.fleet-trip-table .fleet-trip-actions[b-jmkrt3q6t2] {
    width: 1%;
    white-space: nowrap;
}

/* Cél/Ügyfél: account rows show the (possibly long) account name — cap it. */
.fleet-trip-table .fleet-trip-purpose[b-jmkrt3q6t2] {
    max-width: 16rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Proposed (not yet confirmed) rows stand out so the driver knows to review them. */
.fleet-trip-proposed[b-jmkrt3q6t2] {
    background-color: var(--bs-warning-bg-subtle);
}

.fleet-trip-edit[b-jmkrt3q6t2] {
    background-color: var(--bs-tertiary-bg);
}

/* Adaptív szerkesztő-elrendezés: a mezők a KONTÉNER szélességéhez igazodnak
   (nem a képernyő breakpointjaihoz — a szerkesztő egy kártyában ül, ami sokkal
   keskenyebb lehet a viewportnál), és igény szerint sorokba tördelődnek. A
   Honnan–Hova pár és a Kezdő/Záró/Táv hármas egy-egy csoportként együtt marad. */
.fte-grid[b-jmkrt3q6t2],
.fte-pair[b-jmkrt3q6t2],
.fte-km[b-jmkrt3q6t2] {
    display: flex;
    gap: 0.5rem;
    align-items: end;
}

.fte-grid[b-jmkrt3q6t2] {
    flex-wrap: wrap;
}

/* Egyszerű mezők: nőnek a hely kitöltésére, ~11rem az alap, min-width:0 engedi
   a zsugorodást a tartalom alá, hogy sose lógjon ki. */
.fte-grid > .fte-field[b-jmkrt3q6t2] {
    flex: 1 1 11rem;
    min-width: 0;
}

/* A csoportok szélesebb alapmérettel egészben tördelődnek (nem törik szét a
   párokat), belül a mezők egyenlő arányban osztoznak és együtt zsugorodnak. */
.fte-grid > .fte-pair[b-jmkrt3q6t2] {
    flex: 2 1 18rem;
}

.fte-grid > .fte-km[b-jmkrt3q6t2] {
    flex: 2 1 16rem;
}

.fte-pair > .fte-field[b-jmkrt3q6t2],
.fte-km > .fte-field[b-jmkrt3q6t2] {
    flex: 1 1 0;
    min-width: 0;
}
/* /Components/Fleet/FleetVehicleMileage.razor.rz.scp.css */
.fleet-km-input[b-dnu9fogpmj] {
    max-width: 10rem;
}

/* Scroll the history table horizontally inside the card on narrow screens
   rather than letting its width push the page sideways. `contain: inline-size`
   is mandatory for a <table> wrapper — see frontend-design §4. */
.fleet-history-scroll[b-dnu9fogpmj] {
    overflow-x: auto;
    contain: inline-size;
}

/* History panel stays compact; numeric columns never wrap. */
.fleet-history-table[b-dnu9fogpmj] {
    max-width: 32rem;
}

.fleet-history-table td[b-dnu9fogpmj],
.fleet-history-table th[b-dnu9fogpmj] {
    white-space: nowrap;
}

.fleet-history summary[b-dnu9fogpmj] {
    cursor: pointer;
}
/* /Components/Layout/EmptyLayout.razor.rz.scp.css */
.page[b-8je3ymmpuw] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-8je3ymmpuw] {
    flex: 1;
}

.top-row[b-8je3ymmpuw] {
    background-color: var(--color-bg-primary);
    border-bottom: 0.0625rem solid var(--color-border-primary);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-8je3ymmpuw]  a, .top-row[b-8je3ymmpuw]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

    .top-row[b-8je3ymmpuw]  a:hover, .top-row[b-8je3ymmpuw]  .btn-link:hover {
        text-decoration: underline;
    }

    .top-row[b-8je3ymmpuw]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-8je3ymmpuw] {
        justify-content: space-between;
    }

    .top-row[b-8je3ymmpuw]  a, .top-row[b-8je3ymmpuw]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-8je3ymmpuw] {
        flex-direction: row;
    }

    .top-row[b-8je3ymmpuw] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-8je3ymmpuw]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-8je3ymmpuw], article[b-8je3ymmpuw] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-8je3ymmpuw] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-8je3ymmpuw] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-irubuhy8o4] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-irubuhy8o4] {
    flex: 1;
}

.sidebar[b-irubuhy8o4] {
    background-color: var(--color-bg-secondary);
    border-right: 1px solid var(--color-border-primary);
}

.top-row[b-irubuhy8o4] {
    background-color: var(--color-bg-primary);
    border-bottom: 1px solid var(--color-border-primary);
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-irubuhy8o4]  a, .top-row[b-irubuhy8o4]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
        color: var(--color-text-secondary);
    }

    .top-row[b-irubuhy8o4]  a:hover, .top-row[b-irubuhy8o4]  .btn-link:hover {
        text-decoration: underline;
        color: var(--color-text-primary);
    }

    .top-row[b-irubuhy8o4]  a:first-child {
        overflow: hidden;
        text-overflow: ellipsis;
    }

@media (max-width: 640.98px) {
    .top-row[b-irubuhy8o4] {
        justify-content: space-between;
    }

    .top-row[b-irubuhy8o4]  a, .top-row[b-irubuhy8o4]  .btn-link {
        margin-left: 0;
    }
}

@media (min-width: 641px) {
    .page[b-irubuhy8o4] {
        flex-direction: row;
    }

    .sidebar[b-irubuhy8o4] {
        /*width: 250px;*/
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-irubuhy8o4] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .top-row.auth[b-irubuhy8o4]  a:first-child {
        flex: 1;
        text-align: right;
        width: 0;
    }

    .top-row[b-irubuhy8o4], article[b-irubuhy8o4] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

#blazor-error-ui[b-irubuhy8o4] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-irubuhy8o4] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Layout/NavMenu.razor.rz.scp.css */
.bi[b-5n6njcy01a] {
    width: 1.125rem;
    height: 1.125rem;
    flex-shrink: 0;
}

.navbar-toggler[b-5n6njcy01a] {
    appearance: none;
    cursor: pointer;
    width: 2.5rem;
    height: 2rem;
    flex-shrink: 0;
    /* Flex child of .top-row — vertical centering is handled by the parent's
       align-items: center. margin-left: auto pushes it to the right edge. */
    margin-left: auto;
    color: var(--color-text-secondary);
    border: 1px solid var(--color-border-primary);
    border-radius: 6px;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2851, 51, 51, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.25rem var(--color-bg-primary);
    transition: background-color 0.15s ease-in-out;
}

    .navbar-toggler:checked[b-5n6njcy01a] {
        background-color: var(--color-hover-bg);
    }

@media (prefers-color-scheme: dark) {
    .navbar-toggler[b-5n6njcy01a] {
        background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28208, 208, 208, 0.75%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") no-repeat center/1.5rem var(--color-bg-primary);
    }
}

.navbar-toggler-collapse[b-5n6njcy01a] {
    display: none;
    appearance: none;
    cursor: pointer;
    width: 2rem;
    height: 2rem;
    flex-shrink: 0;
    /* Flex child of .top-row — see .navbar-toggler above. */
    margin-left: auto;
    border: 1px solid var(--color-border-primary);
    border-radius: 6px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M15 19l-7-7 7-7' stroke='rgba(51, 51, 51, 0.75)' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/1.25rem var(--color-bg-primary);
    transition: all 0.15s ease-in-out;
}

    .navbar-toggler-collapse:checked[b-5n6njcy01a] {
        transform: rotate(180deg);
    }

@media (prefers-color-scheme: dark) {
    .navbar-toggler-collapse[b-5n6njcy01a] {
        background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath d='M15 19l-7-7 7-7' stroke='rgba(208, 208, 208, 0.75)' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center/1.5rem var(--color-bg-primary);
    }
}

.top-row[b-5n6njcy01a] {
    height: 2.75rem;
    background-color: var(--color-bg-secondary);
    border-bottom: 1px solid var(--color-border-primary);
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0 0.5rem;
}

.navbar-brand[b-5n6njcy01a] {
    font-size: 1.125rem;
    font-weight: 600;
    color: var(--color-text-primary);
    flex-shrink: 0;
}

/* Nav filter textbox — fills the gap between the Hub brand and the collapse
   chevron. Magnifier icon sits on the left when empty; clear button sits on
   the right when text is present. The two never overlap.

   Critical: the flex basis is 0 and min-width is 0 so the filter can shrink
   all the way down. The input itself has size="1" in the markup, which is
   what actually prevents its ~10em default intrinsic width from inflating
   the sidebar's max-content. With those in place, the sidebar shrink-wraps
   to the widest nav item, and this flex:1 1 0 rule grows the search box to
   fill whatever width is left over. */
.nav-filter[b-5n6njcy01a] {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    align-items: center;
}

.nav-filter-input[b-5n6njcy01a] {
    width: 100%;
    min-width: 0;
    height: 1.875rem;
    /* Left padding reserves space for the magnifier icon; it shrinks back
       to the normal 0.5rem when the user starts typing, handled below via
       :has(). */
    padding: 0 0.5rem 0 1.875rem;
    font-size: 0.8125rem;
    background-color: var(--color-bg-primary);
    color: var(--color-text-primary);
    border: 1px solid var(--color-border-primary);
    border-radius: 6px;
    transition: padding 0.15s ease-in-out;
}

/* When the input has content, the clear (×) button is rendered. Use :has()
   to detect it and rebalance the input's padding: reclaim the magnifier's
   reserved space on the left, and reserve space on the right so long typed
   text doesn't slide under the clear button. No helper class, no placeholder
   hack — the DOM state is the single source of truth. */
.nav-filter:has(.nav-filter-clear) .nav-filter-input[b-5n6njcy01a] {
    padding-left: 0.5rem;
    padding-right: 1.75rem;
}

    .nav-filter-input:focus[b-5n6njcy01a] {
        border-color: var(--color-border-hover);
        box-shadow: none;
        outline: none;
        background-color: var(--color-bg-primary);
        color: var(--color-text-primary);
    }

.nav-filter-icon[b-5n6njcy01a] {
    width: 0.875rem;
    height: 0.875rem;
    fill: currentColor;
    flex-shrink: 0;
}

.nav-filter-search[b-5n6njcy01a] {
    position: absolute;
    left: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--color-text-secondary);
    pointer-events: none;
    opacity: 0.7;
}

.nav-filter-clear[b-5n6njcy01a] {
    position: absolute;
    right: 0.25rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.375rem;
    height: 1.375rem;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 4px;
    color: var(--color-text-secondary);
    cursor: pointer;
    transition: background-color 0.15s ease-in-out;
}

    .nav-filter-clear:hover[b-5n6njcy01a] {
        background-color: var(--color-hover-bg);
        color: var(--color-text-primary);
    }

    .nav-filter-clear:focus[b-5n6njcy01a] {
        outline: none;
        background-color: var(--color-hover-bg);
    }


.nav-link-text[b-5n6njcy01a] {
    padding-left: 0.625rem;
    display: block;
    font-size: 0.875rem;
}

.nav-item[b-5n6njcy01a] {
    font-size: 0.875rem;
    padding-bottom: 0.125rem;
}

    .nav-item:first-of-type[b-5n6njcy01a] {
        padding-top: 0rem;
    }

    .nav-item:last-of-type[b-5n6njcy01a] {
        padding-bottom: 0rem;
    }

    .nav-item[b-5n6njcy01a]  .nav-link {
        color: var(--color-text-secondary);
        background: none;
        border: none;
        border-radius: 6px;
        height: 2rem;
        display: flex;
        align-items: center;
        line-height: 2rem;
        width: 100%;
        white-space: nowrap;
        padding: 0 0.5rem;
        transition: all 0.15s ease-in-out;
        font-weight: 500;
    }

    .nav-item[b-5n6njcy01a]  a.active {
        background-color: var(--color-active-bg);
        color: var(--color-text-primary);
    }

    .nav-item[b-5n6njcy01a]  .nav-link:hover {
        background-color: var(--color-hover-bg);
        color: var(--color-text-primary);
    }

    .nav-item[b-5n6njcy01a]  .btn-link {
        text-decoration: none;
        color: var(--color-text-secondary);
    }

.nav-scrollable[b-5n6njcy01a] {
    display: none;
    /* Horizontal padding matches .top-row (0.5rem) for a consistent inner
       gutter from sidebar top to bottom. */
    padding: 0.375rem 0.5rem;
}

body:has(.navbar-toggler:checked) .nav-scrollable[b-5n6njcy01a] {
    display: block;
}

.nav-submenu[b-5n6njcy01a] {
    padding-left: 0.25rem;
}

    .nav-submenu .nav-item[b-5n6njcy01a] {
        padding-bottom: 0.0625rem;
    }

    .nav-submenu .nav-item[b-5n6njcy01a]  .nav-link {
        height: 1.875rem;
        font-size: 0.8125rem;
        padding-left: 2rem;
    }

.nav-chevron[b-5n6njcy01a] {
    margin-left: auto;
    flex-shrink: 0;
}

/* Workflow attention badge — shown next to nav items that have pending items
   requiring the current user's action (e.g. Kiküldetés jóváhagyás).
   margin-left is a concrete gap, not auto: the sidebar shrink-wraps to the
   widest nav item, so there is no leftover space for an auto margin to
   consume and the badge would otherwise sit flush against the label text. */
.nav-item[b-5n6njcy01a]  .workflow-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    padding: 0 0.375rem;
    margin-left: 0.5rem;
    background-color: #dc3545;
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
    border-radius: 0.625rem;
    box-shadow: 0 0 0 0.125rem rgba(220, 53, 69, 0.25);
    flex-shrink: 0;
}

@media (min-width: 641px) {
    .navbar-toggler-collapse[b-5n6njcy01a] {
        display: block;
    }

    body:has(.navbar-toggler-collapse:checked) .nav-scrollable .nav-link-text[b-5n6njcy01a] {
        display: none;
    }

    body:has(.navbar-toggler-collapse:checked) .nav-scrollable .nav-chevron[b-5n6njcy01a] {
        display: none;
    }

    body:has(.navbar-toggler-collapse:checked) .nav-scrollable[b-5n6njcy01a] {
        padding: 0.375rem 0.5rem;
    }

    body:has(.navbar-toggler-collapse:checked) .nav-scrollable .nav-item[b-5n6njcy01a]  .nav-link {
        padding: 0 0.375rem;
        justify-content: center;
        position: relative; /* anchor for badge dot */
    }

    /* In collapsed sidebar: badge shrinks to a small dot floating at
       the top-right of the icon, since there's no room for a counted pill. */
    body:has(.navbar-toggler-collapse:checked) .nav-scrollable .nav-item[b-5n6njcy01a]  .workflow-badge {
        position: absolute;
        top: 0.1875rem;
        right: 0.1875rem;
        min-width: 0.625rem;
        width: 0.625rem;
        height: 0.625rem;
        padding: 0;
        margin-left: 0;
        font-size: 0;
        color: transparent;
        border-radius: 50%;
        overflow: hidden;
    }

    body:has(.navbar-toggler-collapse:checked) .navbar-brand[b-5n6njcy01a] {
        display: none;
    }

    /* Hide the filter textbox entirely when the sidebar is collapsed — there
       is no room for it in the narrow icon-only strip. */
    body:has(.navbar-toggler-collapse:checked) .nav-filter[b-5n6njcy01a] {
        display: none;
    }

    body:has(.navbar-toggler-collapse:checked) .top-row[b-5n6njcy01a] {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
    }

    .navbar-toggler[b-5n6njcy01a] {
        display: none;
    }

    .nav-scrollable[b-5n6njcy01a] {
        /* Never collapse the sidebar for wide screens */
        display: block;
        /* Allow sidebar to scroll for tall menus */
        height: calc(100vh - 2.75rem);
        overflow-y: auto;
        padding: 0.375rem 0.5rem;
    }

    /* Custom scrollbar styling for webkit browsers */
    .nav-scrollable[b-5n6njcy01a]::-webkit-scrollbar {
        width: 6px;
    }

    .nav-scrollable[b-5n6njcy01a]::-webkit-scrollbar-track {
        background: transparent;
    }

    .nav-scrollable[b-5n6njcy01a]::-webkit-scrollbar-thumb {
        background: var(--color-border-secondary);
        border-radius: 3px;
    }

    .nav-scrollable[b-5n6njcy01a]::-webkit-scrollbar-thumb:hover {
        background: var(--color-border-hover);
    }
}
/* /Components/Layout/WhistleblowerLayout.razor.rz.scp.css */
#blazor-error-ui[b-7md52qdpf5] {
    background: lightyellow;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

    #blazor-error-ui .dismiss[b-7md52qdpf5] {
        cursor: pointer;
        position: absolute;
        right: 0.75rem;
        top: 0.5rem;
    }
/* /Components/Phones/PhnDeviceCreditEditor.razor.rz.scp.css */
.input-group[b-169oh49q7q] {
    max-width: 600px;
}
/* /Components/Phones/PhnSubscriptionEditor.razor.rz.scp.css */
.input-group[b-xb9ct3lyld] {
    position: relative;
}

/* /Components/ProjectSheet/PsAccountingView.razor.rz.scp.css */
.detail-row[b-w9zue4sdnq] {
    border-bottom: 0.0625rem solid var(--color-border-primary);
    font-size: small;
}

.project-sheet h3[b-w9zue4sdnq] {
    color: var(--color-text-primary);
    font-weight: 600;
    font-size: small;
}
/* /Components/ProjectSheet/PsEditor.razor.rz.scp.css */
.input-group[b-abv1a2x0io] {
    position: relative;
}

.floating-list[b-abv1a2x0io] {
    position: absolute;
    top: 100%;
    left: 0;
    background-color: var(--color-bg-elevated);
    border: 1px solid var(--color-border-primary);
    border-top: none;
    z-index: 1000;
}

.vertical-header[b-abv1a2x0io] {
    writing-mode: vertical-rl; /* Vertical text (right to left) */
    transform: rotate(180deg); /* Flip text upside-down */
    white-space: nowrap; /* Prevent wrapping */
    text-align: center;
    font-weight: bold;
    background-color: var(--color-bg-tertiary);
    padding: 10px;
    min-width: 40px; /* Adjust as needed */
    border: 1px solid var(--color-border-primary);
}
/* /Components/ProjectSheet/PsEmployeeTable.razor.rz.scp.css */
/* /Components/ProjectSheet/PsEmployeeView.razor.rz.scp.css */
.detail-row[b-mdhme4zhev] {
    padding: 0.5rem 0;
    border-bottom: 0.0625rem solid var(--color-border-primary);
}

.project-sheet h3[b-mdhme4zhev] {
    color: var(--color-text-primary);
    font-weight: 600;
}
/* /Components/ProjectSheet/PsInvAccomodationRateSelector.razor.rz.scp.css */
/* Description field - grows to fill space, with minimum width */
.input-group input[type="text"][b-si1ex6pb0d] {
    flex: 1 1 auto;
    min-width: 12rem;
}

/* Number field - fixed target, can shrink if needed */
.input-group input[type="number"][b-si1ex6pb0d] {
    flex: 0 1 auto;
    width: 8rem;
    min-width: 6rem;
}

/* Unit selector - fixed target, can shrink if needed */
.input-group select[b-si1ex6pb0d] {
    flex: 0 1 auto;
    width: 8rem;
    min-width: 7rem;
}
/* /Components/ProjectSheet/PsInvRateSelector.razor.rz.scp.css */
/* Product selector (child component) - auto-size to content */
.input-group[b-zfu00z60kt]  select:first-of-type {
    flex: 0 0 auto;
    width: auto;
}

/* Description field - grows to fill space, with minimum width */
.input-group input[type="text"][b-zfu00z60kt] {
    flex: 1 1 auto;
    min-width: 12rem;
}

/* Number field - fixed target, can shrink if needed */
.input-group input[type="number"][b-zfu00z60kt] {
    flex: 0 1 auto;
    width: 8rem;
    min-width: 6rem;
}

/* Unit selector (last dropdown) - fixed target, can shrink if needed */
.input-group select:last-of-type[b-zfu00z60kt] {
    flex: 0 1 auto;
    width: 8rem;
    min-width: 7rem;
}
/* /Components/ProjectSheet/PsInvTravelRateSelector.razor.rz.scp.css */
/* Description field - grows to fill space, with minimum width */
.input-group input[type="text"][b-q9mt7j1j6i] {
    flex: 1 1 auto;
    min-width: 12rem;
}

/* Number field - fixed target, can shrink if needed */
.input-group input[type="number"][b-q9mt7j1j6i] {
    flex: 0 1 auto;
    width: 8rem;
    min-width: 6rem;
}

/* Unit selector - fixed target, can shrink if needed */
.input-group select[b-q9mt7j1j6i] {
    flex: 0 1 auto;
    width: 8rem;
    min-width: 7rem;
}
/* /Components/ProjectSheet/PsList.razor.rz.scp.css */
/* /Components/ProjectSheet/PsServiceAgentTable.razor.rz.scp.css */
/* /Components/ProjectSheet/PsServiceAgentView.razor.rz.scp.css */
.detail-row[b-45sztnw2u5] {
    padding: 0.5rem 0;
    border-bottom: 0.0625rem solid var(--color-border-primary);
}

.project-sheet h3[b-45sztnw2u5] {
    color: var(--color-text-primary);
    font-weight: 600;
}
/* /Components/ProjectSheet/PsTeamLeadTable.razor.rz.scp.css */
/* /Components/ProjectSheet/PsTeamLeadView.razor.rz.scp.css */
.detail-row[b-qk5xhaaj0i] {
    padding: 0.5rem 0;
    border-bottom: 0.0625rem solid var(--color-border-primary);
}

.project-sheet h3[b-qk5xhaaj0i] {
    color: var(--color-text-primary);
    font-weight: 600;
}
/* /Components/ProjectTracker/ProjectTrackerBoard.razor.rz.scp.css */
.pt-board[b-lr7e1ok0mu] {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    align-items: flex-start;
}

.pt-col[b-lr7e1ok0mu] {
    flex: 0 0 16rem;
    background-color: var(--color-bg-secondary);
    border-radius: 0.5rem;
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - 10rem);
}

.pt-col-header[b-lr7e1ok0mu] {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border-bottom: 0.0625rem solid var(--color-border-primary);
}

.pt-col-body[b-lr7e1ok0mu] {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 0.5rem;
    min-height: 3rem;
}

.pt-card[b-lr7e1ok0mu] {
    background-color: var(--color-bg-elevated);
    border: 0.0625rem solid var(--color-border-primary);
    border-radius: 0.375rem;
    padding: 0.5rem;
    margin-bottom: 0.5rem;
    cursor: pointer;
    box-shadow: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.08);
}

.pt-card:hover[b-lr7e1ok0mu] {
    border-color: var(--color-border-hover);
}

.pt-card-labels[b-lr7e1ok0mu] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    margin-bottom: 0.35rem;
}

.pt-label-bar[b-lr7e1ok0mu] {
    height: 0.35rem;
    width: 2rem;
    border-radius: 0.2rem;
}

.pt-card-title[b-lr7e1ok0mu] {
    font-weight: 500;
    margin-bottom: 0.4rem;
    word-break: break-word;
}

.pt-card-meta[b-lr7e1ok0mu] {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.15rem;
}

.pt-done-btn[b-lr7e1ok0mu] {
    border: none;
    background: transparent;
    color: var(--color-text-muted);
    padding: 0;
    margin-right: 0.25rem;
    line-height: 1;
}

.pt-done-btn.done[b-lr7e1ok0mu] {
    color: var(--color-success);
}

.pt-due[b-lr7e1ok0mu] {
    font-size: 0.75rem;
    background-color: var(--color-bg-tertiary);
    border-radius: 0.25rem;
    padding: 0 0.3rem;
    white-space: nowrap;
}

.pt-due.overdue[b-lr7e1ok0mu] {
    background-color: var(--color-danger-bg);
    color: var(--color-danger);
    font-weight: 600;
}

.pt-avatar[b-lr7e1ok0mu] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background-color: var(--btn-secondary-bg);
    color: #fff; /* mindkét téma szürkéjén olvasható — téma-független párosítás */
    font-size: 0.7rem;
    font-weight: 600;
}

.pt-col-empty[b-lr7e1ok0mu] {
    border: 0.0938rem dashed var(--color-border-hover);
    border-radius: 0.375rem;
    padding: 0.75rem;
    text-align: center;
}
/* /Components/ProjectTracker/ProjectTrackerGantt.razor.rz.scp.css */
/* Reszponzív Gantt — tiszta HTML/CSS, JS/mérés nélkül (lásd hub-conventions.md →
   „Responsive Width"). A magasságok/bal-szélesség a komponens által a konténerre kiírt
   --pt-* custom propertykből jönnek (egyetlen forrás: a C# RowH/AxisH/LeftW konstansok).

   Vízszintes elrendezés: a tengelysáv (.pt-gantt-track) szélessége
   max(maradék-hely, --pt-track-min). Kizoomolva (kis sűrűség) a flex-grow kitölti a
   maradék helyet → a sávok %-pozíciója a látható szélességet tölti; rázoomolva a
   min-width túlnyúlik → a .pt-gantt vízszintesen görgethető. A böngésző ablak-/oldalsáv-/
   zoom-változásra magától újrarendez.

   Függőleges görgetés: NINCS saját max-height/overflow-y — a tartalom teljes magasságú,
   és az OLDAL görget függőlegesen. Így csak EGY függőleges görgősáv van (nem kettő). */

/* A teljes nézet egy függőleges flex-oszlop, ami kitölti a látható magasságot (az
   article 1.1rem felső paddingja alatt). A toolbar a saját — tetszőlegesen tördelt —
   magasságát kapja; a Gantt a maradékot, és SAJÁT magán görget (mindkét tengely).
   Így a Gantt görgősávjai a nézeten belül vannak (nem a hajtás alatt), és nincs
   második függőleges görgősáv az oldalon. A toolbar tördelése azért is működik, mert
   az oszlop az article (nézet)szélességéhez igazodik, nem a Gantt tartalmához. */
.pt-gantt-page[b-jzvlu9mlia] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 1.5rem);
}

.pt-gantt[b-jzvlu9mlia] {
    /* flex-grow 0: ha a tartalom elfér, a Gantt a TARTALOM magasságát kapja (nincs üres,
       keretes doboz a nagy ablak alján). flex-shrink 1 + min-height 0: ha a tartalom
       magasabb a maradék helynél, a Gantt összehúzódik a nézethez és BELÜL görget — így a
       görgősávjai a nézeten belül maradnak, és az oldal nem görget kétszer. */
    flex: 0 1 auto;
    min-height: 0;
    overflow: auto;
    border: 0.0625rem solid var(--color-border-primary);
    border-radius: 0.375rem;
}

.pt-gantt-undated[b-jzvlu9mlia] {
    flex: 0 0 auto;
}

/* A teljes tartalom szélessége = max(látható szélesség, bal-fejléc + tengely-min).
   Kizoomolva 100% (kitölt); rázoomolva a fix rem-szélesség → a .pt-gantt görget.
   Az explicit max()/calc() megbízhatóbb, mint a flex max-content + min-width trükk. */
.pt-gantt-inner[b-jzvlu9mlia] {
    display: flex;
    width: max(100%, calc(var(--pt-left-w) + var(--pt-track-min)));
}

/* Bal sor-fejléc: vízszintes görgetésnél a helyén marad. */
.pt-gantt-left[b-jzvlu9mlia] {
    position: sticky;
    left: 0;
    z-index: 2;
    flex: 0 0 var(--pt-left-w);
    min-width: 0;   /* különben a hosszú címek a 22rem fölé tágítanák */
    background-color: var(--color-bg-primary);
    border-right: 0.0625rem solid var(--color-border-hover);
}

.pt-gantt-left-head[b-jzvlu9mlia] {
    position: sticky;
    top: 0;
    z-index: 3;   /* sarok: a bal oszlop (sticky-left) + a fejléc (sticky-top) együtt */
    height: var(--pt-axis-h);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    padding: 0 0.5rem;
    font-weight: 600;
    background-color: var(--color-bg-secondary);
    border-bottom: 0.0625rem solid var(--color-border-hover);
}

.pt-gantt-left-row[b-jzvlu9mlia] {
    height: var(--pt-row-h);
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0 0.5rem;
    overflow: hidden;
    white-space: nowrap;
}

.pt-gantt-left-row:not(.pt-group)[b-jzvlu9mlia] {
    cursor: pointer;
}

.pt-gantt-left-row:not(.pt-group):hover[b-jzvlu9mlia] {
    background-color: var(--color-hover-bg);
}

.pt-group[b-jzvlu9mlia] {
    background-color: var(--color-bg-tertiary);
}

/* Tervezés alatt álló (In Planning) SAP-projekt sárgás kiemelése. Féligátlátszó amber,
   hogy világos és sötét témán is olvasható maradjon. A magasabb specificitás (két/három
   osztály) felülírja a .pt-group / .pt-trow.pt-group hátterét. */
.pt-group.pt-planning[b-jzvlu9mlia],
.pt-trow.pt-group.pt-planning[b-jzvlu9mlia] {
    background-color: rgba(240, 190, 30, 0.22);
}

/* Felelős-csoportosításnál a projektkód kap sárgás pirulát (a sor nem projekt-csoport). */
.pt-gantt-resp.pt-planning[b-jzvlu9mlia] {
    background-color: rgba(240, 190, 30, 0.30);
    border-radius: 0.2rem;
    padding: 0 0.3rem;
    color: var(--color-text-secondary) !important;
}

.pt-gantt-resp[b-jzvlu9mlia] {
    flex: 0 1 auto;
    max-width: 8rem;
}

/* Tengelysáv: kitölti a bal-fejléc utáni maradék helyet az inner-en belül. */
.pt-gantt-track[b-jzvlu9mlia] {
    position: relative;
    flex: 1 1 auto;
}

.pt-gantt-axis[b-jzvlu9mlia] {
    position: sticky;
    top: 0;
    z-index: 1;   /* az idő-tengely függőleges görgetésnél a tetején marad */
    height: var(--pt-axis-h);
    border-bottom: 0.0625rem solid var(--color-border-hover);
    background-color: var(--color-bg-secondary);
}

.pt-axis-label[b-jzvlu9mlia] {
    position: absolute;
    bottom: 0.3rem;
    transform: translateX(0.15rem);
    font-size: 0.72rem;
    color: var(--color-text-tertiary);
    white-space: nowrap;
}

.pt-axis-label.major[b-jzvlu9mlia] {
    color: var(--color-text-secondary);
}

.pt-axis-today[b-jzvlu9mlia] {
    position: absolute;
    top: 0.2rem;
    transform: translateX(0.15rem);
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--color-danger);
    white-space: nowrap;
}

.pt-gantt-body[b-jzvlu9mlia] {
    position: relative;
}

/* Rácsvonalak rétege a sorok mögött. */
.pt-gantt-grid[b-jzvlu9mlia] {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
}

.pt-grid-line[b-jzvlu9mlia] {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 0.0625rem;
    background-color: var(--color-border-primary);
}

.pt-grid-line.major[b-jzvlu9mlia] {
    background-color: var(--color-border-hover);
}

.pt-today-line[b-jzvlu9mlia] {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 3;
    border-left: 0.0938rem dashed var(--color-danger);
    pointer-events: none;
}

/* Egy feladat-/projektsor a tengelysávban. */
.pt-trow[b-jzvlu9mlia] {
    position: relative;
    z-index: 1;
    height: var(--pt-row-h);
}

.pt-trow.pt-group[b-jzvlu9mlia] {
    background-color: var(--color-bg-tertiary);
    display: flex;
    align-items: center;
}

/* Vevő neve a projekt-csoportsor tengelysáv-oldalán — így a bal oszlopnak csak a
   kód + projektnév marad. Sticky: vízszintes görgetésnél a bal oszlop széle után
   „ragad", végig olvasható; a csoportsorba sáv sosem kerül, nem takar semmit. */
.pt-group-account[b-jzvlu9mlia] {
    position: sticky;
    left: calc(var(--pt-left-w) + 0.75rem);
    max-width: 26rem;
    font-size: 0.8rem;
    color: var(--color-text-tertiary);
}

.pt-trow:not(.pt-group)[b-jzvlu9mlia] {
    cursor: pointer;
}

.pt-trow:not(.pt-group):hover[b-jzvlu9mlia] {
    background-color: var(--color-hover-bg);
}

/* Sáv: kezdés→határidő. left/width %-ban (a tengelysávhoz képest). */
.pt-bar[b-jzvlu9mlia] {
    position: absolute;
    top: 0.42rem;
    height: calc(var(--pt-row-h) - 0.84rem);
    min-width: 0.4rem;
    border-radius: 0.22rem;
    box-shadow: inset 0 0 0 0.0313rem rgba(0, 0, 0, 0.08);
}

/* Csak-kezdés: rövid nyitott jelölő nyíllal. */
.pt-bar.pt-open[b-jzvlu9mlia] {
    width: 3rem;
    opacity: 0.55;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.pt-bar.pt-open[b-jzvlu9mlia]::after {
    content: "";
    position: absolute;
    left: 100%;
    top: 0;
    border-top: calc((var(--pt-row-h) - 0.84rem) / 2) solid transparent;
    border-bottom: calc((var(--pt-row-h) - 0.84rem) / 2) solid transparent;
    border-left: 0.5rem solid currentColor;
    color: inherit;
}

/* Mérföldkő: csak-határidő → rombusz a határidő napján. */
.pt-milestone[b-jzvlu9mlia] {
    position: absolute;
    top: 50%;
    width: 0.8rem;
    height: 0.8rem;
    margin-left: -0.4rem;
    transform: translateY(-50%) rotate(45deg);
    border-radius: 0.1rem;
}
/* /Components/ProjectTracker/ProjectTrackerLoad.razor.rz.scp.css */
/* Napi terhelés-hőtérkép — sorok: felelősök, oszlopok: napok. A nézet egy függőleges
   flex-oszlop, ami a látható magasságot tölti; a rács SAJÁT magán görget mindkét tengelyen
   (sticky fejléc + sticky első oszlop), így nincs második görgősáv az oldalon. Lásd
   hub-conventions.md → „Responsive Width" és blazor-components.md → sticky table. */
.pt-load-page[b-53h1hgmcow] {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - 1.5rem);
}

.pt-load-grid-wrap[b-53h1hgmcow] {
    flex: 0 1 auto;
    min-height: 0;
    overflow: auto;
    /* Nélküle a táblázat min-content szélessége az overflow:auto-n ÁT felfelé
       terjed (a main flex-item min-width:auto), és az OLDAL görget vízszintesen
       (az oldalsáv kicsúszik) a rács helyett. */
    contain: inline-size;
    border: 0.0625rem solid var(--color-border-primary);
    border-radius: 0.375rem;
}

.pt-load-note[b-53h1hgmcow] {
    flex: 0 0 auto;
}

.pt-load-grid[b-53h1hgmcow] {
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.8rem;
}

.pt-load-grid th[b-53h1hgmcow],
.pt-load-grid td[b-53h1hgmcow] {
    border-right: 0.0625rem solid var(--color-border-primary);
    border-bottom: 0.0625rem solid var(--color-border-primary);
    text-align: center;
    padding: 0.12rem 0.25rem;
    box-sizing: border-box;
    white-space: nowrap;
}

/* Fejléc (hónap + nap sorok) függőleges görgetésnél a tetején marad. */
.pt-load-grid thead th[b-53h1hgmcow] {
    position: sticky;
    z-index: 2;
    background-color: var(--color-bg-secondary);
}

.pt-load-grid thead tr:first-child th[b-53h1hgmcow] {
    top: 0;
    height: 1.4rem;
}

.pt-load-grid thead tr:nth-child(2) th[b-53h1hgmcow] {
    top: 1.4rem;
}

.pt-load-grid thead th.pt-load-month[b-53h1hgmcow] {
    font-weight: 600;
    border-left: 0.0625rem solid var(--color-border-hover);
}

.pt-load-grid thead th.pt-load-day[b-53h1hgmcow] {
    min-width: 2rem;
    color: var(--color-text-tertiary);
    font-weight: 500;
}

.pt-load-grid thead th.pt-load-day.wk[b-53h1hgmcow] {
    background-color: var(--color-bg-tertiary);
}

/* Bal felső sarok: vízszintes ÉS függőleges görgetésnél is a helyén marad (legfelül). */
.pt-load-grid thead th.pt-load-corner[b-53h1hgmcow] {
    left: 0;
    top: 0;
    z-index: 5;
    min-width: 12rem;
    text-align: left;
    padding-left: 0.5rem;
    background-color: var(--color-bg-secondary);
    border-right: 0.0625rem solid var(--color-border-hover);
}

/* Sor-fejléc (felelős neve): vízszintes görgetésnél a helyén marad. */
.pt-load-grid tbody th.pt-load-rowhead[b-53h1hgmcow] {
    position: sticky;
    left: 0;
    z-index: 1;
    min-width: 12rem;
    max-width: 12rem;
    text-align: left;
    padding: 0.12rem 0.5rem;
    background-color: var(--color-bg-primary);
    border-right: 0.0625rem solid var(--color-border-hover);
    overflow: hidden;
}

.pt-load-name[b-53h1hgmcow] {
    display: inline-block;
    max-width: 7.5rem;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Kibontó nyíl a felelős-sor fejlécében (részletezés). */
.pt-load-expand[b-53h1hgmcow] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    height: 1.1rem;
    padding: 0;
    margin-right: 0.15rem;
    vertical-align: middle;
    border: none;
    background: transparent;
    color: var(--color-text-tertiary);
    cursor: pointer;
}

.pt-load-expand:hover[b-53h1hgmcow] {
    color: var(--color-text-primary);
}

.pt-load-expand-placeholder[b-53h1hgmcow] {
    display: inline-block;
    width: 1.25rem;
    vertical-align: middle;
}

/* Feladatonkénti részletező sor: behúzott, halványabb, kapacitás-színezés nélkül. */
.pt-load-detail-head[b-53h1hgmcow] {
    padding-left: 1.6rem;
    font-size: 0.74rem;
    font-weight: 400;
}

.pt-load-detail-title[b-53h1hgmcow] {
    display: inline-block;
    max-width: 7rem;
    vertical-align: middle;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--color-text-secondary);
}

.pt-load-detail-proj[b-53h1hgmcow] {
    margin-left: 0.35rem;
    font-size: 0.68rem;
}

.pt-load-cell.pt-load-detail-cell[b-53h1hgmcow] {
    color: var(--color-text-secondary);
    background-color: var(--color-bg-secondary);
    font-size: 0.72rem;
}

.pt-load-cell.pt-load-detail-cell.wk[b-53h1hgmcow] {
    background-color: var(--color-bg-tertiary);
}

.pt-load-total[b-53h1hgmcow] {
    margin-left: 0.4rem;
    font-size: 0.72rem;
}

/* Cellák — a háttérszín a kihasználtság (load/kapacitás) szintje. Féligátlátszó színek,
   hogy világos és sötét témán is olvashatók maradjanak. */
.pt-load-cell[b-53h1hgmcow] {
    min-width: 2rem;
    color: var(--color-text-primary);
}

.pt-load-cell.lvl-off[b-53h1hgmcow] {
    background-color: var(--color-bg-tertiary);
    color: var(--color-text-tertiary);
}

/* Távollét (szabadság stb.) — kékes árnyalat, hogy elváljon az ünnep/hétvége szürkéjétől. */
.pt-load-cell.lvl-abs[b-53h1hgmcow] {
    background-color: rgba(91, 108, 220, 0.25);
    color: var(--color-text-tertiary);
}

.pt-load-cell.lvl-ok[b-53h1hgmcow] {
    background-color: rgba(46, 158, 91, 0.30);
}

.pt-load-cell.lvl-warn[b-53h1hgmcow] {
    background-color: rgba(240, 180, 0, 0.40);
}

.pt-load-cell.lvl-over[b-53h1hgmcow] {
    background-color: rgba(217, 52, 43, 0.42);
    font-weight: 600;
}

/* Jelmagyarázat színminták. */
.pt-load-swatch[b-53h1hgmcow] {
    display: inline-block;
    width: 0.8rem;
    height: 0.8rem;
    border-radius: 0.15rem;
    vertical-align: middle;
    border: 0.0625rem solid var(--color-border-primary);
}

.pt-load-swatch.lvl-ok[b-53h1hgmcow] {
    background-color: rgba(46, 158, 91, 0.30);
}

.pt-load-swatch.lvl-warn[b-53h1hgmcow] {
    background-color: rgba(240, 180, 0, 0.40);
}

.pt-load-swatch.lvl-over[b-53h1hgmcow] {
    background-color: rgba(217, 52, 43, 0.42);
}

.pt-load-swatch.lvl-abs[b-53h1hgmcow] {
    background-color: rgba(91, 108, 220, 0.25);
}

.pt-load-swatch.lvl-off[b-53h1hgmcow] {
    background-color: var(--color-bg-tertiary);
}
/* /Components/ProjectTracker/ProjectTrackerProjects.razor.rz.scp.css */
.pt-project[b-k2tehi409e] {
    border: 0.0625rem solid var(--color-border-primary);
    border-radius: 0.375rem;
}

.pt-project-header[b-k2tehi409e] {
    padding: 0.5rem 0.75rem;
    cursor: pointer;
    background-color: var(--color-bg-secondary);
    border-radius: 0.375rem;
}

.pt-project-header:hover[b-k2tehi409e] {
    background-color: var(--color-bg-tertiary);
}

.pt-project-body[b-k2tehi409e] {
    padding: 0.5rem 0.75rem;
}

.pt-bucket-title[b-k2tehi409e] {
    font-weight: 600;
    margin-bottom: 0.25rem;
}
/* /Components/ProjectTracker/ProjectTrackerTask.razor.rz.scp.css */
.pt-label-chip[b-6en0ttg0l5] {
    display: inline-flex;
    align-items: center;
    font-size: 0.8rem;
    font-weight: 500;
}

.pt-label-chip .btn-close[b-6en0ttg0l5] {
    font-size: 0.55rem;
    padding: 0;
    margin-left: 0.25rem;
}

.pt-comments li[b-6en0ttg0l5] {
    border-left: 0.2rem solid var(--color-border-primary);
    padding-left: 0.5rem;
}
/* /Components/ProjectTracker/PtCommentNode.razor.rz.scp.css */
/* Hozzászólás-fa csomópont: a válaszok behúzva, halvány bal szegéllyel jelennek meg. */
.pt-comment[b-0gjdzeky8z] {
    margin-bottom: 0.5rem;
}

.pt-comment-text[b-0gjdzeky8z] {
    white-space: pre-wrap;
    word-break: break-word;
}

.pt-comment-reply[b-0gjdzeky8z] {
    text-decoration: none;
    color: var(--color-text-tertiary);
}

.pt-comment-reply:hover[b-0gjdzeky8z] {
    color: var(--color-primary);
    text-decoration: underline;
}

.pt-comment-children[b-0gjdzeky8z] {
    margin: 0.35rem 0 0 0.75rem;
    padding-left: 0.75rem;
    border-left: 0.125rem solid var(--color-border-primary);
}
/* /Components/Sales/SlsPath.razor.rz.scp.css */
.sls-path[b-jxs1ghox3w] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.15rem;
}

.sls-path-step[b-jxs1ghox3w] {
    border: none;
    padding: 0.35rem 1.1rem 0.35rem 1.35rem;
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--color-text-secondary);
    background-color: var(--color-bg-tertiary);
    clip-path: polygon(0 0, calc(100% - 0.75rem) 0, 100% 50%, calc(100% - 0.75rem) 100%, 0 100%, 0.75rem 50%);
    cursor: pointer;
    white-space: nowrap;
}

.sls-path-step:first-child[b-jxs1ghox3w] {
    clip-path: polygon(0 0, calc(100% - 0.75rem) 0, 100% 50%, calc(100% - 0.75rem) 100%, 0 100%);
    padding-left: 1rem;
}

.sls-path-step.done[b-jxs1ghox3w] {
    background-color: var(--color-success-bg);
    color: var(--color-success);
}

.sls-path-step.current[b-jxs1ghox3w] {
    background-color: var(--color-primary);
    color: #fff; /* primary gomb-szín mindkét témában sötét — téma-független párosítás */
    cursor: default;
}

.sls-path-step.future:hover:not(:disabled)[b-jxs1ghox3w] {
    background-color: var(--color-hover-bg);
    color: var(--color-text-primary);
}

.sls-path-step:disabled[b-jxs1ghox3w] {
    cursor: default;
    opacity: 1;
}
/* /Components/Sales/SlsPipelineBoard.razor.rz.scp.css */
.sls-board[b-t4owx3oczk] {
    display: flex;
    gap: 0.75rem;
    overflow-x: auto;
    padding-bottom: 0.5rem;
    align-items: flex-start;
}

.sls-col[b-t4owx3oczk] {
    flex: 0 0 16rem;
    background-color: var(--color-bg-secondary);
    border-radius: 0.5rem;
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - 14rem);
}

.sls-col-terminal[b-t4owx3oczk] {
    flex: 0 0 11rem;
    border: 0.0938rem dashed var(--color-border-hover);
    background-color: transparent;
}

.sls-col-header[b-t4owx3oczk] {
    display: flex;
    align-items: center;
    padding: 0.5rem 0.75rem;
    border-bottom: 0.0625rem solid var(--color-border-primary);
}

.sls-col-body[b-t4owx3oczk] {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 0.5rem;
    min-height: 3rem;
}

.sls-card[b-t4owx3oczk] {
    background-color: var(--color-bg-elevated);
    border: 0.0625rem solid var(--color-border-primary);
    border-radius: 0.375rem;
    padding: 0.5rem;
    margin-bottom: 0.5rem;
    cursor: pointer;
    box-shadow: 0 0.0625rem 0.125rem rgba(0, 0, 0, 0.08);
}

.sls-card:hover[b-t4owx3oczk] {
    border-color: var(--color-border-hover);
}

.sls-card-title[b-t4owx3oczk] {
    font-weight: 500;
    margin-bottom: 0.15rem;
    word-break: break-word;
}

.sls-avatar[b-t4owx3oczk] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    background-color: var(--btn-secondary-bg);
    color: #fff; /* mindkét téma szürkéjén olvasható — téma-független párosítás */
    font-size: 0.7rem;
    font-weight: 600;
}

.sls-age-dot[b-t4owx3oczk] {
    display: inline-block;
    width: 0.6rem;
    height: 0.6rem;
    border-radius: 50%;
}

.sls-age-green[b-t4owx3oczk] { background-color: var(--color-success); }
.sls-age-amber[b-t4owx3oczk] { background-color: var(--color-warning); }
.sls-age-red[b-t4owx3oczk] { background-color: var(--color-danger); }

.sls-col-empty[b-t4owx3oczk] {
    border: 0.0938rem dashed var(--color-border-hover);
    border-radius: 0.375rem;
    padding: 0.75rem;
    text-align: center;
}
/* /Components/Signature/SignaturePad.razor.rz.scp.css */
.signature-pad-container[b-ol76g6wdt4] {
    max-width: 40rem;
}

.signature-canvas[b-ol76g6wdt4] {
    width: 100%;
    height: 12.5rem;
    border: 1px solid black;
    border-radius: var(--bs-border-radius);
    background: var(--color-bg-primary);
    cursor: crosshair;
    touch-action: none;
}

.signature-toolbar[b-ol76g6wdt4] {
    display: flex;
    gap: 0.5rem;
    margin-top: 0.5rem;
}
/* /Components/Signature/SignatureView.razor.rz.scp.css */
.signature-view[b-y8gdlcauxg] {
    width: 12rem;
    height: auto;
    border: 1px solid var(--bs-border-color);
    border-radius: var(--bs-border-radius);
    background: var(--color-bg-primary, #fff);
}
/* /Components/Sorting/SortableHeader.razor.rz.scp.css */
th.sortable-header[b-v9lckljvhj] {
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
}

[b-v9lckljvhj] .sort-icon {
    margin-left: 0.25rem;
    vertical-align: middle;
}

[b-v9lckljvhj] .sort-icon-inactive {
    opacity: 0.4;
}
/* /Components/TimesheetCheck/TimesheetMonthlyTable.razor.rz.scp.css */
.nonworkday[b-xvdxo47o0v] {
    --bs-table-bg: #e2f2eb;
    --bs-table-border-color: #bbd3c8;
    --bs-table-striped-bg: #d2e5dc;
    --bs-table-active-bg: #cee4da;
    --bs-table-hover-bg: #c1d6ccaa;
    color: var(--bs-table-color);
    border-color: var(--bs-table-border-color);
}

@media (prefers-color-scheme: dark) {
    .nonworkday[b-xvdxo47o0v] {
        --bs-table-bg: #1e3a2a;
        --bs-table-border-color: #2d4a3a;
        --bs-table-striped-bg: #243d2d;
        --bs-table-active-bg: #2a4533;
        --bs-table-hover-bg: #3a5443aa;
        --bs-table-color: #e7e0d8;
    }
}
