/* Klientska zona - mobil (2026-10-28).
   Rucne pisany doplnok k skompilovanemu app.css (nepotrebuje gulp/node). Nacitava sa
   v layouts/app.blade.php PO app.css. Vsetko je vo vnutri @media, desktop sa nemeni.
   Hranice: <=991.98px = mobil a tablet (tam sa boky menu skryva za hamburger),
   <=575.98px = uzky telefon. */

/* ---------- vyber firmy: na mobile ho horna lista nema kde ukazat (d-none d-lg-inline-block),
   preto vlastny pas pod listou (layouts/app.blade.php, .mobile-company-bar) ---------- */
.mobile-company-bar { display: none; }

@media (max-width: 991.98px) {
  .mobile-company-bar { display: block; margin: 12px 0 0; }
  .mobile-company-bar .company-switcher .dropdown { width: 100%; margin: 0; background: #fff; border: 1px solid #e3e6ea; border-radius: .4rem; }
  .mobile-company-bar .company-switcher .nav-link { padding: 12px 14px; line-height: 1.3; }
  .mobile-company-bar .company-switcher .pro-user-name { display: flex; align-items: center; justify-content: space-between; width: 100%; margin: 0 !important; white-space: normal; text-align: left; }
  .mobile-company-bar .company-switcher .dropdown-menu { width: 100%; max-height: 60vh; overflow-y: auto; }
  .mobile-company-bar .company-switcher .dropdown-item { padding: 10px 14px; white-space: normal; }

  /* horna lista: logo bez sivej plochy, nic nepretlaca, ikony na palec */
  body[data-topbar-color=light] .logo-box, .logo-box { width: auto; background: transparent; border-right: 0; padding: 0 6px; }
  .navbar-custom .topnav-menu > li > .nav-link, .navbar-custom .button-menu-mobile { min-width: 44px; height: 70px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  /* otvorene bocne menu: obsah za nim stmavnut, klik vedla menu ho zavrie (tema to robi klikom na obsah) */
  body.sidebar-enable .content-page::before { content: ""; position: fixed; inset: 70px 0 0 0; background: rgba(33, 37, 41, .35); z-index: 99; }
  /* menu nad stmavenim (2026-11-02): tema ma na mobile .left-side-menu z-index 10 !important,
     stmavenie (99) ho prekrylo - menu bolo cele sive a tuk zavrel menu namiesto prepnutia agendy */
  body.sidebar-enable .left-side-menu { z-index: 100 !important; }
  .navbar-custom .topnav-menu .nav-link { padding-left: 8px; padding-right: 8px; }

  /* obsah */
  .card { margin-bottom: 12px; }
  .card-body { padding: 14px; }
  .footer { left: 0; padding: 14px 12px; }

  /* nadpis stranky + filtre: pod sebou na celu sirku (inline width:230px/170px/280px z blade sa prebije) */
  .page-title-box { display: block; padding: 14px 27px 6px; }
  .page-title-box .page-title { margin: 0 0 12px; font-size: 18px; line-height: 1.3; white-space: normal; }
  .page-title-box > .d-flex { display: flex; flex-direction: column; align-items: stretch !important; gap: 8px !important; width: 100%; }
  .page-title-box .file-search, .page-title-box .accounting-year-filter { display: block !important; width: 100%; margin: 0 !important; }
  .page-title-box > .d-flex > div[style*="width"] { width: 100% !important; margin: 0 !important; }
  .page-title-box .form-control, .page-title-box .form-select { min-height: 44px; }
  .page-title-box .btn { min-height: 44px; }

  /* formulare a tlacidla: klikacia plocha aspon 44 px */
  .form-control, .form-select { min-height: 44px; }
  textarea.form-control { min-height: 96px; }
  .btn:not(.btn-sm):not(.btn-icon) { min-height: 44px; }
  .btn-sm { min-height: 38px; padding-left: .85rem; padding-right: .85rem; }
  .form-check-input { width: 1.25em; height: 1.25em; }
  .dropdown-item { padding-top: 10px; padding-bottom: 10px; }

  /* tabulky s vlastnym vodorovnym posuvnikom (DataTables scrollX, .table-responsive):
     tahaju sa k okrajom karty a mozno sa posuvat prstom plynulo */
  .dataTables_scrollBody, .table-responsive { -webkit-overflow-scrolling: touch; }
  .dataTables_wrapper .row > div[class*="col-"] { width: 100%; }
  .dataTables_wrapper .dataTables_length, .dataTables_wrapper .dataTables_filter { float: none; text-align: left; margin-bottom: 8px; }
  .dataTables_wrapper .dataTables_info, .dataTables_wrapper .dataTables_paginate { float: none; text-align: center; padding-top: 8px; }
  .dataTables_wrapper .dataTables_paginate .pagination { justify-content: center; flex-wrap: wrap; }
  .dataTables_wrapper .page-link { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
  .table > :not(caption) > * > * { padding: .65rem .6rem; }
  /* filtrovy riadok v hlavicke tabuliek: uzsie polia, nech sa nepozera na 170px select */
  tr.filters th > div[style*="width"] { width: 150px !important; }
  tr.filters .form-control { min-width: 120px; }

  /* okna (modaly): cez celu obrazovku, telo sa posuva, hlavicka/pata ostavaju */
  .modal-dialog { margin: 0; max-width: 100%; min-height: 100%; }
  .modal-dialog:not(.modal-dialog-centered) { align-items: stretch; }
  .modal-content { border-radius: 0; min-height: 100vh; min-height: 100dvh; }
  .modal-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .modal-footer { position: sticky; bottom: 0; background: #fff; flex-wrap: wrap; gap: 8px; }
  .modal-footer .btn { flex: 1 1 auto; }

  /* e-Faktury: priestor pre palec; prepinac (pilulky) je uz posuvny v nav.blade.php */
  .efaktury-nav .nav-link { min-height: 44px; display: inline-flex; align-items: center; }
  /* karty e-faktur su v efaktury/partials/nav.blade.php */
  #sepa-iban { min-width: 0 !important; width: 100%; }
  #sepa-form .btn-outline-primary { width: 100%; }
}

@media (max-width: 575.98px) {
  /* karty so sumami na nastenke a pod. nemaju byt tesne */
  h3 { font-size: 20px; }
  /* prihlasenie a ine strany bez bocneho menu */
  .authentication-bg .card { margin-left: 0; margin-right: 0; }
}

/* ---------- Zoznamy (DataTables) ako karty - telefon ----------
   Bunky maju data-role z assets/js/mobile.js podla nazvu stlpca:
   party = partner/nazov, amount = ciastka, num = cislo dokladu, date / due = datumy,
   topay = k likvidacii, desc = popis, act = akcie. Karta:
     Partner ..................... Ciastka
     FP2026001 · 12. 10. 2026      K uhrade (cervena)
     Splatnost 26. 10. 2026 (po splatnosti cervena)
     Popis (sivy, 2 riadky)
   Filtre v hlavicke tabulky sa na telefone skryju - ostava hladanie a vyber nad tabulkou. */
@media (max-width: 767.98px) {
  .m-cards-wrap .dataTables_scrollHead, table.m-cards > thead { display: none !important; }
  .m-cards-wrap .dataTables_scrollBody { overflow: visible !important; height: auto !important; max-height: none !important; border: 0 !important; }
  .m-cards-wrap .dataTables_scroll { overflow: visible; }
  table.m-cards { width: 100% !important; margin: 0 !important; border-collapse: separate; }
  table.m-cards, table.m-cards > tbody { display: block; }
  .card-body:has(table.m-cards) { padding: 6px 12px 12px; }
  table.m-cards > tbody > tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; row-gap: 2px;
    grid-template-areas: "party amount" "num topay" "due due" "desc desc" "account account" "note note" "company company" "act act";
    padding: 12px 2px; border-bottom: 1px solid #eef0f3; background: transparent !important;
  }
  table.m-cards > tbody > tr:last-child { border-bottom: 0; }
  table.m-cards > tbody > tr > td {
    display: block; padding: 0 !important; border: 0 !important; text-align: left !important;
    white-space: normal !important; width: auto !important; min-width: 0; background: transparent !important; box-shadow: none !important;
  }
  table.m-cards > tbody > tr > td:empty, table.m-cards > tbody > tr > td[data-empty] { display: none; }
  table.m-cards td[data-role="party"] { grid-area: party; font-weight: 600; color: #343a40; font-size: 15px; line-height: 1.3; overflow-wrap: anywhere; }
  table.m-cards td[data-role="party"] .text-muted { display: none; } /* ICO partnera - na karte navyse */
  table.m-cards td[data-role="amount"] { grid-area: amount; text-align: right !important; font-weight: 700; font-size: 15px; white-space: nowrap !important; font-variant-numeric: tabular-nums; color: #343a40; }
  table.m-cards td[data-role="num"] { grid-area: num; font-size: 13px; color: #6c757d; display: flex; align-items: center; gap: 6px; }
  table.m-cards td[data-role="num"] b, table.m-cards td[data-role="num"] strong { font-weight: 500; }
  table.m-cards td[data-role="date"] { grid-area: num; justify-self: end; font-size: 13px; color: #6c757d; display: none; }
  table.m-cards td[data-role="topay"] { grid-area: topay; text-align: right !important; font-size: 13px; font-variant-numeric: tabular-nums; }
  table.m-cards td[data-role="topay"]::before { content: "K úhrade "; color: #98a6ad; }
  table.m-cards td[data-role="topay"][data-zero] { font-size: 0; }
  table.m-cards td[data-role="topay"][data-zero]::before { content: "Uhradené"; font-size: 12px; font-weight: 600; color: #0f9d6b; }
  .m-cards-wrap .datatable-tooltip { display: none !important; } /* jednorazova napoveda k filtrom stlpcov - na karte nie su */
  table.m-cards td[data-role="due"] { grid-area: due; font-size: 13px; color: #6c757d; display: flex; flex-wrap: wrap; gap: 0 6px; }
  table.m-cards td[data-role="due"]::before { content: "Splatnosť"; color: #98a6ad; }
  table.m-cards td[data-role="due"] div { display: inline; }
  table.m-cards td[data-role="desc"] { grid-area: desc; font-size: 13px; color: #6c757d; margin-top: 2px; overflow-wrap: anywhere; }
  table.m-cards td[data-role="desc"] .badge { margin-top: 4px; }
  table.m-cards td[data-role="note"] { grid-area: note; font-size: 12.5px; color: #98a6ad; }
  table.m-cards td[data-role="account"] { grid-area: account; font-size: 12.5px; color: #98a6ad; overflow-wrap: anywhere; }
  table.m-cards td[data-role="size"] { grid-area: topay; text-align: right !important; font-size: 13px; color: #98a6ad; }
  table.m-cards td[data-role="company"] { grid-area: company; font-size: 12.5px; }
  table.m-cards td:is([data-role="amount"], [data-role="topay"], [data-role="size"]) { justify-self: end; }
  table.m-cards td[data-role="act"] { grid-area: act; display: flex; justify-content: flex-end; gap: 6px; margin-top: 6px; }
  table.m-cards td[data-role="act"]:not(:has(*)) { display: none; }
  table.m-cards td[data-role="other"] { grid-column: 1 / -1; font-size: 13px; color: #6c757d; }
  /* bez stlpca Splatnost (Banka, Pokladna, Platby, Dokumenty): datum vpravo pod sumou */
  table.m-cards tr:not(:has(td[data-role="due"])) td[data-role="date"] { display: block; grid-area: topay; text-align: right !important; }
  /* Dokumenty: nazov suboru vlavo hore, datum pridania pod nim */
  table.m-cards tr:not(:has(td[data-role="amount"])) td[data-role="date"] { grid-area: num; justify-self: start; text-align: left !important; }
  /* bez partnera (Nesparovane platby): cislo pohybu je nadpis karty */
  table.m-cards tr:not(:has(td[data-role="party"]:not([data-empty]))) td[data-role="num"] { grid-area: party; color: #343a40; font-weight: 600; font-size: 15px; }
  table.m-cards td :is(h5, h4) { font-size: inherit; margin: 0; }
  /* prazdny zoznam */
  table.m-cards td.dataTables_empty { grid-column: 1 / -1; text-align: center !important; color: #98a6ad; padding: 24px 0 !important; }

  /* hladanie + vyber obdobia nad zoznamom: roky v jednom posuvnom riadku */
  .accounting-year-filter form { display: flex !important; flex-wrap: nowrap !important; gap: 6px; overflow-x: auto; scrollbar-width: none; }
  .accounting-year-filter form::-webkit-scrollbar { display: none; }
  .accounting-year-filter .btn { margin: 0 !important; flex: 1 0 auto; min-height: 38px; }
  .dashboard .accounting-year-filter form, .dashboard form:has(> button[name="accounting_year"]) { display: flex !important; flex-wrap: nowrap !important; gap: 6px; }
  form:has(> button[name="accounting_year"]) > .btn { margin: 0 !important; flex: 1 0 auto; min-height: 38px; }
}

/* ---------- Detail e-faktury - telefon ---------- */
@media (max-width: 991.98px) {
  .efaktury-summary .efaktury-summary-party { font-size: 17px; font-weight: 700; color: #343a40; line-height: 1.3; overflow-wrap: anywhere; }
  .efaktury-summary .efaktury-summary-amount { font-size: 20px; font-weight: 700; color: #343a40; font-variant-numeric: tabular-nums; }
  .efaktury-summary .min-w-0 { min-width: 0; }
  /* udaje na prevod: cely riadok je velky a citatelny, Kopirovat ako tlacidlo vpravo */
  #pay-copy > div { padding: 10px 0 !important; }
  #pay-copy .fw-semibold { font-size: 15px; font-variant-numeric: tabular-nums; }
  #pay-copy .efaktury-copy { min-height: 38px; flex: 0 0 auto; }
  /* Platba: QR vlastnej obrazovky telefonom nenaskenujes - udaje na prevod su prve, QR pod nimi
     (na zaplatenie z ineho zariadenia), bez prepinania zaloziek. */
  .efaktury-pay .nav-tabs { display: none; }
  .efaktury-pay .tab-content { display: flex; flex-direction: column; gap: 14px; padding-top: 8px !important; }
  .efaktury-pay .tab-content > .tab-pane { display: block !important; opacity: 1 !important; }
  .efaktury-pay #pay-copy { order: -1; }
  .efaktury-pay #qr-pbs { display: flex !important; padding-top: 12px; border-top: 1px dashed #e3e6ea; }
  .efaktury-pay #qr-pbs svg { max-width: 150px; }
  .efaktury-pay #qr-pbs::before { content: "Platba z iného zariadenia"; font-size: 12px; font-weight: 600; color: #98a6ad; text-transform: uppercase; letter-spacing: .04em; }
  /* zelena temy (#43d39e) s bielym textom je malo citatelna - platobne tlacidla tmavsie */
  .efaktury-pay .btn-success, .efaktury-paybar .btn-success { background-color: #0f9d6b; border-color: #0f9d6b; color: #fff; }
  .efaktury-pay .btn-outline-success { color: #0f9d6b; border-color: #0f9d6b; }
  /* pevna lista s platbou dole; obsah dostane miesto, aby ho lista neprekryla */
  .efaktury-paybar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: #fff;
    border-top: 1px solid #e3e6ea; box-shadow: 0 -4px 16px rgba(0, 0, 0, .06);
  }
  .efaktury-paybar .btn { min-height: 46px; padding-left: 20px; padding-right: 20px; font-weight: 600; }
  body:has(.efaktury-paybar) .content-page { padding-bottom: calc(150px + env(safe-area-inset-bottom)); }
  body:has(.efaktury-paybar) .footer { bottom: calc(70px + env(safe-area-inset-bottom)); }
}

/* Po kliku v menu sa nacitava dalsia stranka - dalsie kliky ignoruje assets/js/nav-guard.js (2026-10-30). */
html.is-navigating, html.is-navigating a { cursor: progress; }
html.is-navigating :is(#side-menu, .section-tabs, .efaktury-nav, .fakt-actions) { opacity: .6; }

/* Odfotiť doklad v okne Nahratie suboru (assets/js/fotenie.js, 2026-10-31) - tlacidlo ma len mobil (d-lg-none). */
.upload-photo-btn { min-height: 50px; margin-bottom: 12px; font-size: 16px; font-weight: 600; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.upload-photo-btn .uil { font-size: 20px; }
