/* Jednotný "corporate" dizajn pre oficiálne dokumenty appky (VOP, faktúra,
   formulár výberu služieb) — zdieľané naprieč /legal aj /web mountmi
   (rovnaká FastAPI appka, jeden origin). Brand farby zhodné s web/style.css
   (teal/navy), nech dokumenty vyzerajú ako súčasť tej istej appky, nie
   samostatný nesúrodý štýl. Vhodné na tlač (@media print, A4).

   **DÔLEŽITÉ (2026-08-24, zistené pri ladení tabuliek):** `fitz.Story`
   (core/legal_renderer.py PDF export) NEPODPORUJE CSS custom properties
   (`var(--x)`) VÔBEC — kontrolný test potvrdil, že s `var()` sa
   border/background jednoducho nevykreslia (žiadna chyba, ticho nič),
   zatiaľ čo identické pravidlá s doslovnou hex hodnotou fungujú správne.
   Tento súbor preto používa VŠADE doslovné hex hodnoty, nie `var()` —
   platí to pre CELÝ súbor (nielen tabuľky), keďže sa zdieľa medzi
   obrazovkovým HTML náhľadom (skutočný prehliadač, var() by tam
   fungovalo) AJ PDF exportom (Story, nefunguje). Farebná paleta nižšie
   v komentári je len referencia pre budúce úpravy, nie živé CSS
   premenné:
     teal #22a08a · navy #1a1a2e · ink #2a2a3a · sub #5a5a6a
     bg #f7faf9 · surface #ffffff · line #dbe8e4 · line-soft #eef6f4
     warn-bg #fff6e6 · warn-fg #a35b00
     table-border #c3d9d3 · table-zebra #eef6f4 · table-header #dcefeb */

* { box-sizing: border-box; }

body {
  margin: 0;
  background: #f7faf9;
  color: #2a2a3a;
  font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height: 1.55;
  font-size: 15px;
}

.sd-doc-page {
  max-width: 820px;
  margin: 0 auto;
  padding: 48px 56px 80px;
  background: #ffffff;
  min-height: 100vh;
  overflow-wrap: break-word;
}
/* Onboarding modal (2026-08-24, nápad používateľa) — VOP/DPA sekcie
   odlíšené farebne na CELEJ ploche dokumentu (`web/app.js`
   buildTosModalContent() nastaví triedu na <body> cez core/legal_
   renderer.py render_legal_markdown() embed_bg_class parameter, len
   keď je stránka v <iframe> onboarding modalu — pozri "embed=1" query
   parameter). Trieda na <body>, nie inline <style> — appka má CSP
   style-src 'self' (bez unsafe-inline), ktoré by inline blok ticho
   zahodilo. */
body.sd-embed-vop .sd-doc-page { background: #d3efe6; }
body.sd-embed-dpa .sd-doc-page { background: #c3d3f4; }
/* DPA tabuľky (sub-spracovatelia, prenosy do tretích krajín) — nepárne
   riadky mali predtým priehľadné pozadie (presvitalo cez ne modré
   pozadie stránky vyššie, tabuľka splývala s okolím) — vlastné biele/
   svetlomodré riadky, aby tabuľka pôsobila ako zreteľne oddelená
   "kartička" na farebnom pozadí, nie stránka len s teal akcentmi. */
body.sd-embed-dpa table.sd-doc-table { background: #ffffff; }
/* Nepárne riadky potrebujú VLASTNÉ biele pozadie (báza nižšie ich
   necháva priehľadné) — inak by cez ne presvitalo modré pozadie
   stránky. Párne (zebra, sivá #dcdde2) sa už zhoduje so základným
   pravidlom nižšie — netreba duplicitný override. */
body.sd-embed-dpa table.sd-doc-table tbody tr:nth-child(odd) { background: #ffffff; }
body.sd-embed-dpa table.sd-doc-table th { background: #9fb7e8; }

.sd-doc-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 3px solid #22a08a;
  padding-bottom: 18px;
  margin-bottom: 32px;
}
.sd-doc-header img { height: 34px; width: auto; display: block; }
.sd-doc-header .sd-doc-kind {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #22a08a;
  text-align: right;
}

.sd-doc-title {
  font-size: 1.7rem;
  font-weight: 700;
  color: #1a1a2e;
  margin: 0 0 6px;
}
.sd-doc-subtitle {
  font-size: 0.9rem;
  color: #5a5a6a;
  margin: 0 0 28px;
}

/* Neutrálna informačná poznámka (blockquote v .md, 2026-09-20) — sivý
   rámček s teal ľavým okrajom, bežná váha písma; nie oranžové varovanie. */
.sd-doc-note {
  background: #f4f6f8;
  color: #3a3f4a;
  border: 1px solid #dfe3e8;
  border-left: 3px solid #22a08a;
  border-radius: 6px;
  padding: 10px 14px;
  font-size: 0.85rem;
  margin-bottom: 24px;
}
.sd-draft-banner {
  background: #fff6e6;
  color: #a35b00;
  border: 1px solid #e6cf9f;
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 0.85rem;
  font-weight: 600;
  margin-bottom: 28px;
}
/* Keď banner nasleduje priamo za nadpisom (legal/dpa.html), o kúsok
   bližšie k nemu — pôvodne inline <style> v dpa.html, presunuté sem
   2026-08-15 (CSP style-src 'self' inline bloky blokuje). */
.sd-doc-title + .sd-draft-banner { margin-top: -6px; }

h2 {
  font-size: 1.05rem;
  color: #1a1a2e;
  margin: 30px 0 10px;
  padding-top: 4px;
  border-top: 1px solid #dbe8e4;
}
h2:first-of-type { border-top: none; }
h3 { font-size: 0.95rem; color: #1a1a2e; margin: 18px 0 8px; }
p { margin: 0 0 10px; }
strong { color: #1a1a2e; }
code { background: #eef6f4; border-radius: 4px; padding: 1px 5px; font-size: 0.88em; }
ul, ol { margin: 0 0 10px; padding-left: 1.4em; }
li { margin-bottom: 4px; }
hr { border: none; border-top: 1px solid #dbe8e4; margin: 20px 0; }

table.sd-doc-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  margin: 12px 0 18px;
  /* Rovnaká veľkosť ako prevažujúci text dokumentu (2026-08-24, nápad
     používateľa) — predtým 0.92rem/0.8pt (PDF), tabuľky boli citeľne
     menšie než okolitý text. Žiadny vlastný font-size = zdedí z body. */
  border: 1px solid #c3d9d3;
}
table.sd-doc-table th, table.sd-doc-table td {
  text-align: left;
  padding: 8px 12px;
  border-bottom: 1px solid #c3d9d3;
  border-right: 1px solid #c3d9d3;
  overflow-wrap: anywhere;
}
table.sd-doc-table th:last-child, table.sd-doc-table td:last-child { border-right: none; }
/* Pruhovanie riadkov (zebra) + stĺpcové orámovanie vyššie — čitateľnosť
   pri dlhších tabuľkách (napr. zoznam sub-spracovateľov v DPA). Sivá
   (nie svetlotealová #eef6f4 ako predtým) — zjednotená naprieč VŠETKÝMI
   kontextami (obrazovka, tlač, PDF export), nie len onboarding modal.
   #dcdde2 (predošlý pokus) bolo príliš blízko bielej — rozdiel voči
   bielej bol iba ~35/255, na niektorých displejoch/podmienkach prakticky
   nepostrehnuteľný (nahlásené používateľom). Výrazne tmavšia sivá, aby
   bol rozdiel nespochybniteľný nezávisle od displeja. */
table.sd-doc-table tbody tr:nth-child(even) { background: #b8bac4; }
table.sd-doc-table th {
  background: #dcefeb;
  color: #1a1a2e;
  font-weight: 600;
}
table.sd-doc-table td.sd-num { text-align: right; font-variant-numeric: tabular-nums; }
/* Objednávka/faktúra — strany a poznámky (2026-09-18): pôvodne inline
   `style=""` atribúty v core/contract_renderer.py + invoice_renderer.py,
   ktoré CSP `style-src 'self'` ticho zahodí (Poskytovateľ/Odberateľ sa
   tak vykresľovali pod sebou namiesto dvoch stĺpcov, poznámka v plnej
   veľkosti) — rovnaká trieda chyby ako .sd-print-btn svg vyššie. */
.sd-doc-parties { display: flex; gap: 40px; margin-bottom: 24px; }
.sd-doc-party { flex: 1; }
.sd-doc-party h2 { margin-top: 0; }
.sd-doc-note { font-size: 0.85rem; color: var(--sd-sub); }
.sd-doc-muted { color: var(--sd-sub); }
/* Rozpis objednávky po položkách cenníka (2026-09-18) */
table.sd-doc-table th.sd-num { text-align: right; }
table.sd-doc-table tr.sd-doc-group td {
  background: #f3f7f6;
  font-weight: 700;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--sd-sub);
}
table.sd-doc-table tr.sd-subtotal td { font-weight: 600; background: #fafcfb; }
table.sd-doc-table-order th:first-child, table.sd-doc-table-order td:first-child { width: 48%; }
.sd-order-future {
  margin: 18px 0;
  padding: 14px 18px;
  border: 1.5px solid #22a08a55;
  border-left: 5px solid #22a08a;
  border-radius: 8px;
  background: #f3faf8;
}
.sd-order-future h2 { margin: 0 0 6px; font-size: 1rem; }
.sd-order-future p { margin: 4px 0; }
/* Faktúra — blok "Kredit na spracovanie dokumentov" (2026-09-18) */
.sd-invoice-credit {
  margin: 18px 0;
  padding: 14px 18px;
  border: 1.5px solid #22a08a55;
  border-left: 5px solid #22a08a;
  border-radius: 8px;
  background: #f3faf8;
}
.sd-invoice-credit h2 { margin: 0 0 6px; font-size: 1rem; }
.sd-invoice-credit p { margin: 4px 0; }
table.sd-doc-table tr.sd-total td { font-weight: 700; color: #1a1a2e; border-top: 2px solid #1a1a2e; }

.sd-invoice-pay-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  background: #22a08a;
  color: #fff;
  border-radius: 10px;
  padding: 18px 22px;
  margin: 20px 0;
}
.sd-invoice-pay-banner .sd-pay-col label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.8;
  margin-bottom: 2px;
}
.sd-invoice-pay-banner .sd-pay-col p {
  margin: 0 0 10px;
  font-size: 0.92rem;
  font-variant-numeric: tabular-nums;
}
.sd-invoice-pay-banner .sd-pay-amount {
  font-size: 1.5rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
/* Viac QR kódov vedľa seba (PAY by square + SPAYD/EPC podľa krajiny platiteľa). */
.sd-invoice-pay-banner .sd-pay-qrs { display: flex; gap: 10px; flex-shrink: 0; }
.sd-invoice-pay-banner .sd-pay-qr {
  background: #fff;
  border-radius: 8px;
  padding: 8px;
  text-align: center;
  flex-shrink: 0;
}
.sd-invoice-pay-banner .sd-pay-qr img { width: 120px; height: 120px; display: block; }
.sd-invoice-pay-banner .sd-pay-qr span {
  display: block;
  color: #1a1a2e;
  font-size: 0.66rem;
  font-weight: 700;
  margin-top: 4px;
}

.sd-doc-footer {
  margin-top: 48px;
  padding-top: 16px;
  border-top: 1px solid #dbe8e4;
  font-size: 0.78rem;
  color: #5a5a6a;
}

.sd-doc-footer-logo {
  height: 16px;
  width: auto;
  vertical-align: middle;
  margin-right: 4px;
}

.sd-print-actions {
  position: fixed;
  top: 12px;
  right: 12px;
  display: flex;
  gap: 5px;
  z-index: 10;
}
/* Prepínač jazyka VOP/DPA/Cenníka (2026-10-08) — SK záväzné, ostatné informatívne preklady. */
.sd-lang-switch {
  display: flex;
  align-items: center;
  gap: 2px;
  margin-right: 6px;
  background: #fff;
  border: 1px solid #dbe8e4;
  border-radius: 6px;
  padding: 2px;
}
.sd-lang-switch a {
  color: #22a08a;
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 600;
  padding: 4px 7px;
  border-radius: 4px;
}
.sd-lang-switch a.sd-lang-active { background: #22a08a; color: #fff; }
.sd-print-btn {
  background: #22a08a;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 5px 9px;
  font-size: 0.72rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(26, 26, 46, 0.2);
}
.sd-print-btn:hover { background: #1a7a68; }
/* Veľkosť ikony v tlačidle — pôvodne inline `style="width:1em…"` na
   <svg>, ktoré CSP `style-src 'self'` (bez unsafe-inline) ticho zahodí,
   takže ikona sa vykreslila v plnej šírke a tlačidlo narástlo na
   ~60×112 px štvorec (nájdené 2026-09-18, rovnaká trieda chyby ako
   onclick/inline <style> z 2026-08-14). */
.sd-print-btn svg {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  margin-right: 4px;
}
.sd-print-btn-outline {
  background: #fff;
  color: #22a08a;
  border: 1.5px solid #22a08a;
  box-shadow: 0 2px 8px rgba(26, 26, 46, 0.1);
}
.sd-print-btn-outline:hover { background: #eef6f4; }

/* Navigačná päta stránky (odkazy na VOP/Ochranu osobných údajov/Cookies)
   — NIE súčasť právneho dokumentu samotného, na rozdiel od .sd-doc-footer
   vyššie (ktorý JE súčasť tlačeného obsahu). Preto mimo <article>,
   konzistentná so web/style.css .sd-footer, no vlastný scope tu (legal/
   stránky nelinkujú web/style.css, len tento súbor). Skrytá pri tlači,
   rovnako ako .sd-print-actions — nepatrí do vytlačeného dokumentu. */
.sd-site-footer {
  text-align: center;
  padding: 24px 20px;
  border-top: 1px solid #dbe8e4;
  font-size: 0.78rem;
  color: #5a5a6a;
}
.sd-site-footer a { color: #22a08a; text-decoration: none; }
.sd-site-footer-logo { height: 14px; width: auto; vertical-align: middle; margin-right: 2px; }
/* Odkazy v tele dokumentu (VOP 6.3 → cenník, cookies → DPA/VOP) boli v
   default prehliadačovej modrej/fialovej (nájdené 2026-09-20) — teal ako
   päta a zvyšok appky. */
.sd-doc-page a { color: #22a08a; }
/* Trieda ZDIEĽANÁ s web/style.css (nie sd-site-footer-*) — cookie-consent.js
   wireFooterCookieButtons() hľadá presne .sd-footer-cookies-btn, musí sedieť
   naprieč OBOMA stylesheetmi (web/style.css aj tento súbor). */
.sd-footer-cookies-btn {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: #22a08a;
  cursor: pointer;
}

/* Dvojjazyčné doklady (i18n celok 8): druhý jazyk pod slovenským textom. */
.sd-doc-alt { display: block; color: #6b7280; font-style: italic; }
/* Stav dokladu (Uhradená, dátum úhrady…) len na obrazovke, nie v tlači/PDF
   (rozhodnutie používateľa 2026-10-04); neutrálny text len v tlači. */
.sd-print-only { display: none; }

@media print {
  .sd-screen-only { display: none !important; }
  .sd-print-only { display: block; }
  body { background: #fff; }
  .sd-doc-page { max-width: none; padding: 0; box-shadow: none; }
  .sd-print-actions { display: none; }
  .sd-site-footer { display: none; }
  h2 { break-after: avoid; }
  table.sd-doc-table { break-inside: avoid; }
  .sd-invoice-pay-banner {
    break-inside: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
  .sd-invoice-credit {
    break-inside: avoid;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}

@page {
  size: A4;
  margin: 18mm 16mm;
}
