/* MARKETING OS · F2 csomag (Hozzáférések, Beszélgetések, Modulok, Napló, alvó modulok) stílusa. A prototípus tokenjeit használja. */
.side .nav[hidden] { display: none !important; }
.side .nav .cnt[hidden] { display: none; }

/* közös */
.mos-pill.info { background: var(--info-bg); color: var(--info); }
.mos-pill.zz { background: var(--sleep-bg); color: var(--sleep); }
.mos-pill.mute { background: var(--surface-3); color: var(--muted); }
.mos-pill.hum { background: var(--surface-3); color: var(--text-2); }
.mos-pill.rule { background: color-mix(in srgb, var(--info) 14%, transparent); color: var(--info); }
.f2-tabs { display: flex; gap: 4px; border-bottom: 1px solid var(--border); margin: 4px 0 14px; flex-wrap: wrap; }
.f2-tabs [role="button"] { padding: 8px 12px; font-size: 15px; font-weight: 600; color: var(--text-2); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.f2-tabs [role="button"].on { color: var(--mk-deep, var(--text)); border-bottom-color: var(--mk-g2, var(--primary)); }
.f2-tabs [role="button"]:hover:not(.on) { color: var(--text); }
.f2-tabs .f2-n { margin-left: 4px; font-size: 12px; color: var(--muted); font-weight: 600; }
.f2-sec { margin: 18px 0 8px; display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.f2-sec h4 { margin: 0; font-size: 17px; }
.f2-sub { color: var(--muted); font-size: 14px; }
.f2-grid2 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.f2-stack { display: grid; gap: 12px; }
.f2-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.f2-grow { flex: 1 1 auto; min-width: 0; }
.f2-xs { font-size: 13px; color: var(--muted); }
.f2-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; word-break: break-all; }
.f2-note { font-size: 13px; color: var(--text-2); }
.f2-amber { color: var(--warn); font-weight: 600; }
.f2-bad { color: var(--bad); }
.f2-ok { color: var(--ok); }
.f2-btnrow { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.f2-link { color: var(--mk-g2, var(--primary)); cursor: pointer; font-weight: 600; }
.f2-link:hover { text-decoration: underline; }
.f2-chips { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.f2-chips .chip { cursor: pointer; }
.f2-chips .chip[data-off="1"] { opacity: .5; }
.f2-search, .f2-in { font: inherit; font-size: 15px; padding: 5px 10px; height: 32px; border: 1px solid var(--border-strong, var(--border)); border-radius: 8px; background: var(--surface); color: var(--text); min-width: 0; }
textarea.f2-in { height: auto; min-height: 70px; padding: 8px 10px; resize: vertical; width: 100%; box-sizing: border-box; }
.f2-search { min-width: 220px; }
.f2-lbl { display: grid; gap: 3px; font-size: 12px; letter-spacing: .4px; text-transform: uppercase; color: var(--muted); font-weight: 600; }
.f2-lbl > .f2-in, .f2-lbl > select { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--text); font-size: 15px; }
.f2-tbl { width: 100%; border-collapse: collapse; font-size: 15px; }
.f2-tbl th { text-align: left; font-size: 12px; letter-spacing: .5px; text-transform: uppercase; color: var(--muted); font-weight: 600; padding: 8px 10px; background: var(--surface-2); border-bottom: 1px solid var(--border); white-space: nowrap; }
.f2-tbl td { padding: 9px 10px; border-bottom: 1px solid var(--border); vertical-align: top; }
.f2-tbl tr:last-child td { border-bottom: 0; }
.f2-tbl tr.sel td { background: var(--primary-subtle); }
.f2-tbl tr[data-act] { cursor: pointer; }
.f2-tbl td small { display: block; color: var(--muted); font-size: 13px; }
.f2-tbl-wrap { overflow-x: auto; }
.f2-tbl-wrap.f2-noclip { overflow: visible; }
@media (max-width: 900px) { .f2-tbl-wrap.f2-noclip { overflow-x: auto; min-height: 220px; } }
.btn.f2-danger { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 40%, var(--border)); }
.btn.f2-off { opacity: .45; pointer-events: none; }
.f2-banner { padding: 10px 12px; border-radius: 10px; border: 1px solid var(--border); font-size: 15px; display: flex; gap: 10px; align-items: flex-start; }
.f2-banner.ok { background: var(--ok-bg); color: var(--ok); border-color: color-mix(in srgb, var(--ok) 35%, transparent); }
.f2-banner.bad { background: var(--bad-bg); color: var(--bad); border-color: color-mix(in srgb, var(--bad) 35%, transparent); }
.f2-banner.warn { background: var(--warn-bg); color: var(--warn); border-color: color-mix(in srgb, var(--warn) 35%, transparent); }
.f2-banner.info { background: var(--info-bg); color: var(--info); border-color: color-mix(in srgb, var(--info) 35%, transparent); }
.f2-kv { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 4px 12px; font-size: 15px; margin: 0; }
.f2-kv dt { color: var(--muted); font-size: 13px; padding-top: 2px; }
.f2-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.f2-list { margin: 0; padding-left: 18px; display: grid; gap: 3px; }
.f2-list.no { list-style: none; padding: 0; }

/* szerepkör- és jogtábla */
.f2-rt { width: 100%; border-collapse: collapse; font-size: 15px; }
.f2-rt th, .f2-rt td { padding: 6px 8px; border-bottom: 1px solid var(--border); text-align: center; vertical-align: middle; }
.f2-rt th:first-child, .f2-rt td:first-child { text-align: left; }
.f2-rt th { font-size: 12px; letter-spacing: .4px; text-transform: uppercase; color: var(--muted); }
.f2-rt td.lv { width: 92px; }
.f2-lvl { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--border-strong, var(--border)); background: var(--surface); color: var(--muted); font-size: 14px; cursor: pointer; }
.f2-lvl.on { background: var(--ok-bg); color: var(--ok); border-color: var(--ok); font-weight: 700; }
.f2-lvl.pend { background: var(--warn-bg); color: var(--warn); border-color: var(--warn); }
.f2-lvl.blk { background: var(--surface-3); color: var(--muted); border-style: dashed; cursor: not-allowed; opacity: .6; }
.f2-lvl.ro { cursor: default; }
.f2-why { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; text-align: left; }
.f2-rolegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }

/* varázsló */
.f2-steps { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 14px; padding: 0; list-style: none; }
.f2-steps li { display: flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--border); font-size: 14px; color: var(--muted); }
.f2-steps li b { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--surface-3); font-size: 12px; }
.f2-steps li.on { color: var(--mk-deep, var(--text)); border-color: var(--mk-g2, var(--primary)); background: var(--mk-subtle, var(--primary-subtle)); font-weight: 600; }
.f2-steps li.done b { background: var(--ok-bg); color: var(--ok); }
.f2-choice { display: grid; gap: 8px; }
.f2-opt { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; cursor: pointer; }
.f2-opt:has(input:checked) { border-color: var(--mk-g2, var(--primary)); background: var(--mk-subtle, var(--primary-subtle)); }
.f2-opt input { margin-top: 3px; }
.f2-opt b { display: block; }
.f2-code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 30px; letter-spacing: 3px; font-weight: 700; padding: 14px 18px; border: 2px dashed var(--warn); border-radius: 12px; background: var(--warn-bg); text-align: center; user-select: all; }
.f2-pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 8px; padding: 10px; overflow: auto; white-space: pre-wrap; word-break: break-all; margin: 0; max-height: 220px; }

/* beszélgetések */
.f2-chat { display: grid; grid-template-columns: 300px minmax(0, 1fr) 270px; gap: 14px; align-items: start; }
.f2-pane { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; min-width: 0; display: flex; flex-direction: column; }
.f2-pane-h { padding: 10px 12px; border-bottom: 1px solid var(--border); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.f2-pane-h b { font-size: 16px; }
.f2-pane-b { padding: 10px 12px; }
.f2-convs { display: grid; max-height: 62vh; overflow: auto; }
.f2-conv { padding: 9px 12px; border-bottom: 1px solid var(--border); cursor: pointer; display: grid; gap: 3px; }
.f2-conv:hover { background: var(--surface-2); }
.f2-conv.sel { background: var(--primary-subtle); }
.f2-conv .t { display: flex; gap: 6px; align-items: center; font-weight: 600; min-width: 0; }
.f2-conv .t span.ti { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1 1 auto; }
.f2-conv .s { font-size: 13px; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.f2-unread { background: var(--mk-g2, var(--primary)); color: #fff; border-radius: 999px; font-size: 12px; font-weight: 700; padding: 0 7px; min-width: 18px; text-align: center; line-height: 18px; }
.mos-pill.k-hh { background: var(--info-bg); color: var(--info); }
.mos-pill.k-aa { background: color-mix(in srgb, #7c3aed 14%, transparent); color: #7c3aed; }
.mos-pill.k-ha { background: var(--ok-bg); color: var(--ok); }
.mos-pill.k-mx { background: var(--warn-bg); color: var(--warn); }
.f2-thread { display: grid; gap: 10px; padding: 12px; max-height: 56vh; overflow: auto; }
.f2-msg { display: grid; gap: 4px; padding: 8px 12px; border-radius: 12px; border: 1px solid var(--border); background: var(--surface); max-width: 88%; justify-self: start; }
.f2-msg.mine { justify-self: end; background: var(--mk-subtle, var(--primary-subtle)); }
.f2-msg.agent { border-left: 3px solid #7c3aed; }
.f2-msg.system { justify-self: center; background: transparent; border: 0; color: var(--muted); font-size: 13px; text-align: center; max-width: 100%; }
.f2-msg-h { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; font-size: 14px; }
.f2-msg-h b { font-size: 15px; }
.f2-msg-b { white-space: pre-wrap; overflow-wrap: anywhere; }
.f2-msg-m { display: flex; gap: 8px; flex-wrap: wrap; font-size: 12.5px; color: var(--muted); }
.f2-tool { border: 1px solid var(--border-strong, var(--border)); border-radius: 8px; padding: 8px 10px; background: var(--surface-2); display: grid; gap: 2px; font-size: 14px; }
.f2-tool b { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13.5px; }
.f2-composer { padding: 10px 12px; border-top: 1px solid var(--border); display: grid; gap: 8px; }
.f2-hit { padding: 8px 12px; border-bottom: 1px solid var(--border); cursor: pointer; }
.f2-hit:hover { background: var(--surface-2); }
.f2-part { display: flex; gap: 6px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--border); flex-wrap: wrap; }
.f2-part:last-child { border-bottom: 0; }
.f2-part .n { flex: 1 1 auto; min-width: 0; }
.f2-x { cursor: pointer; color: var(--muted); font-size: 18px; line-height: 1; padding: 0 4px; }
.f2-x:hover { color: var(--bad); }

/* modulok */
.f2-seg { display: inline-flex; border: 1px solid var(--border); border-radius: 8px; padding: 2px; gap: 2px; background: var(--surface); }
.f2-seg [role="button"] { font-size: 13.5px; font-weight: 600; padding: 3px 9px; border-radius: 5px; color: var(--text-2); cursor: pointer; }
.f2-seg [role="button"].on.s-active { background: var(--ok-bg); color: var(--ok); }
.f2-seg [role="button"].on.s-sleeping { background: var(--sleep-bg); color: var(--sleep); }
.f2-seg [role="button"].on.s-off { background: var(--surface-3); color: var(--muted); }
.f2-seg [role="button"]:hover:not(.on) { background: var(--surface-2); }
.f2-seg.lock { opacity: .55; pointer-events: none; }
.f2-core { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.f2-core > div { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; display: grid; gap: 3px; background: var(--surface); }
.f2-core b { display: flex; gap: 6px; align-items: center; }
.f2-core svg, .f2-lock { width: 14px; height: 14px; color: var(--muted); flex: 0 0 auto; }
.f2-menuwrap { position: relative; display: inline-block; }
.f2-menu { position: absolute; right: 0; top: 30px; z-index: 30; min-width: 200px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; box-shadow: var(--shadow, 0 10px 30px rgba(0,0,0,.2)); padding: 4px; display: none; }
.f2-menu.open { display: grid; }
.f2-menu [role="button"] { padding: 7px 10px; border-radius: 6px; cursor: pointer; font-size: 14.5px; }
.f2-menu [role="button"]:hover { background: var(--surface-2); }
.f2-menu [role="button"].dis { opacity: .45; pointer-events: none; }
.f2-ghost { display: grid; gap: 4px; }
.f2-ghost > div { padding: 6px 10px; border-radius: 8px; border: 1px solid var(--border); font-size: 14.5px; }
.f2-ghost > div.gone { text-decoration: line-through; color: var(--muted); border-style: dashed; background: var(--sleep-bg); }
.f2-keep { display: grid; gap: 4px; font-size: 14.5px; }
.f2-keep span::before { content: '✓ '; color: var(--ok); font-weight: 700; }

/* napló */
.f2-lay { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 14px; align-items: start; }
.f2-flt { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; padding: 12px 14px; }
.f2-ds { padding: 10px 14px; border-bottom: 1px solid var(--border); display: grid; gap: 6px; }
.f2-ds:last-child { border-bottom: 0; }
.f2-dh { font-size: 12px; letter-spacing: .5px; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.f2-chain { display: flex; gap: 6px; align-items: stretch; flex-wrap: wrap; }
.f2-blk { border: 1px solid var(--border); border-radius: 8px; padding: 6px 8px; font-size: 13px; display: grid; gap: 1px; min-width: 120px; }
.f2-blk.sel { border-color: var(--mk-g2, var(--primary)); background: var(--mk-subtle, var(--primary-subtle)); }
.f2-blk b { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12.5px; }
.f2-kill { display: grid; gap: 10px; }
.f2-ke { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; display: grid; gap: 6px; }
.f2-fate { display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; font-size: 14.5px; }

@media (max-width: 1100px) { .f2-chat { grid-template-columns: 260px minmax(0, 1fr); } .f2-chat > .f2-side { grid-column: 1 / -1; } }
@media (max-width: 900px) {
  .f2-grid2, .f2-lay { grid-template-columns: 1fr; }
  .f2-chat { grid-template-columns: 1fr; }
  .f2-convs { max-height: 240px; }
  .f2-kv { grid-template-columns: 1fr; }
  .f2-code { font-size: 22px; letter-spacing: 1px; }
}

/* Napló › Teljes napló laptopon (VIZ-B): a lista + a 320 px-es részlet-panel mellett a táblázat (805 px) a 605 px-es keretből kilógott, a „Miért” oszlop levágódott.
   Rögzített elrendezés: minden oszlop kap saját arányt (a „Miért” is), a cellák törnek (azonosítók, műveletnevek), így semmi sem lóg ki és nem szorul 1-2 betűre. */
@media (min-width: 1101px) and (max-width: 1366px) {
  [data-testid="audit-table"] { table-layout: fixed; width: 100%; }
  [data-testid="audit-table"] th, [data-testid="audit-table"] td { padding-left: 8px; padding-right: 8px; overflow-wrap: anywhere; }
  [data-testid="audit-table"] th:nth-child(1) { width: 15%; }
  [data-testid="audit-table"] th:nth-child(2) { width: 15%; }
  [data-testid="audit-table"] th:nth-child(3) { width: 19%; }
  [data-testid="audit-table"] th:nth-child(4) { width: 18%; }
  [data-testid="audit-table"] th:nth-child(5) { width: 17%; }
  [data-testid="audit-table"] th:nth-child(6) { width: 16%; }
}

/* Hozzáférések › Felhasználók laptopon és kis asztalin (VIZ-B): 11 oszlop, a fejléc egy sorban, a gombok egy 146 px-es oszlopban egymás alatt -> 1351 px a 998-1158 px-es keretben,
   a Munkamenetek / Ügynökei / művelet oszlop levágódott. A fejléc törik, a cellák szűkebbek, a gombsor két soros és nem nyúlik 160 px-esre. */
@media (min-width: 1101px) and (max-width: 1500px) {
  [data-testid="users-table"] { font-size: 14px; }
  [data-testid="users-table"] th { white-space: normal; hyphens: auto; overflow-wrap: break-word; letter-spacing: .1px; padding: 8px 5px; }
  [data-testid="users-table"] td { padding: 8px 5px; overflow-wrap: break-word; hyphens: auto; }
  [data-testid="users-table"] td small { font-size: 12.5px; }
  [data-testid="users-table"] .f2-btnrow { flex-direction: column; align-items: stretch; gap: 4px; min-width: 104px; }
  [data-testid="users-table"] .f2-btnrow .btn { justify-content: center; text-align: center; white-space: nowrap; }
}

/* Integrációk tableten (VIZ-B): az alkalmazás-táblák 840 px-esek voltak a 776 px-es keretben, a gombok félbevágva („Beállítá…”, „Cs…”). A fejléc törik, a cellák szűkebbek,
   a gombok egy keskeny oszlopban, az „Irány” nem törik betűnként. A [data-group] táblák 840 px-es minimumát a live-z2-rest.css oldja. */
@media (min-width: 768px) and (max-width: 1100px) {
  .view[data-route="integraciok"] .f2-tbl th { white-space: normal; padding: 8px 7px; }
  .view[data-route="integraciok"] .f2-tbl td { padding: 9px 7px; overflow-wrap: break-word; }
  .view[data-route="integraciok"] .f2-tbl td:nth-child(2) { white-space: nowrap; }
  .view[data-route="integraciok"] .f2-btnrow { flex-direction: column; align-items: stretch; gap: 4px; min-width: 96px; }
  .view[data-route="integraciok"] .f2-btnrow .btn { justify-content: center; white-space: nowrap; }
}
