/* COLORWAY: TEAL — DEFAULT (smaragdova, atmosfericky dark teal). */
:root{
  --bg:#0B2E29; --bg-top:#123F39; --bg-bot:#071F1C;
  --glow:#1B5850;                 /* radialny glow vpravo hore */
  --grid:rgba(122,234,208,.16);   /* bodova constellation mriezka (SVG kruhy, rohovy akcent) */
  --panel:#0F3A34;
  --accent:#19D8AD; --accent-2:#12A78A; --accent-soft:#79EBD1;
  --soft:#9DC7C0;                 /* svetla druha linka displeja */
  --ink:#FFFFFF; --ink-2:#EAF4F1; --muted:#92B4AE; --faint:#688C86;
  --hair:#234641;                 /* vlasova linka */
  --bracket:#42675F;              /* rohove krizikove znacky */
  --arc:#2C7266;                  /* signature obluk */
  --on-accent:#04140F;
  --paper:#FFFFFF; --paper-ink:#10231F; --paper-muted:#5B7168; --paper-hair:#E2ECE8; --paper-tint:#F2F8F5;
  --accent-ink:#12A177;
}

/* ============================================================
   SPACE Solutions — dizajnovy system „Orbit" (core v3)
   Premiovy klientsky PDF system. Renderuje sa cez Chrome
   headless (build.py) -> plne moderne CSS: atmosfericky
   gradient, jemna mriezka, dvojtonovy displej titulok.
   Farby su v tokens-*.css (teal = default, space = navy).
   ============================================================ */
*{box-sizing:border-box;margin:0;padding:0;}
html,body{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
body{font-family:'Inter','Segoe UI','Helvetica Neue','DejaVu Sans',Arial,sans-serif;
  color:var(--muted);font-size:10pt;line-height:1.62;
  -webkit-font-smoothing:antialiased;}

/* ---- STRANA ---- */
.sheet{position:relative;width:210mm;height:297mm;overflow:hidden;
  background:var(--bg);page-break-after:always;}
.sheet:last-child{page-break-after:auto;}

/* atmosfericky gradient (diagonalny glow z pravého horného rohu) */
.sheet::before{content:"";position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(115% 80% at 82% 4%, var(--glow) 0%, transparent 46%),
    linear-gradient(158deg, var(--bg-top) 0%, var(--bg) 52%, var(--bg-bot) 100%);}
/* signature: bodková „constellation" mriezka — VEKTOR (SVG kruhy = ostré aj v PDF).
   SVG vrstvu .dots vkladá build.py do každej tmavej .sheet; vignette maska tu. */
/* dots ako atmosférický akcent v hornom-pravom rohu (pri glow/orbite),
   plynulo miznú pred obsahovou zónou -> nerušia text ani tabuľky */
.sheet .dots{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;
  -webkit-mask-image:radial-gradient(95% 82% at 88% 2%, #000 0%, #000 20%, transparent 62%);
          mask-image:radial-gradient(95% 82% at 88% 2%, #000 0%, #000 20%, transparent 62%);}
.sheet .dots circle{fill:var(--grid)}

.pad{position:absolute;inset:0;z-index:2;padding:24mm 22mm 20mm 22mm;}

/* ---- ORBITALNY OBLUK (signature SPACE, len na cover/zaver) ---- */
.arcwrap{position:absolute;z-index:1;top:-14mm;right:-30mm;width:170mm;height:170mm;pointer-events:none;overflow:visible;}
.arcwrap svg{width:100%;height:100%;overflow:visible;}

/* ---- ROHOVE ZNAČKY: krížikové (registračné) namiesto L-konzol ---- */
.bracket{position:absolute;z-index:3;width:13px;height:13px;}
.bracket::before,.bracket::after{content:"";position:absolute;background:var(--bracket);}
.bracket::before{left:0;right:0;top:50%;height:1px;margin-top:-0.5px;}
.bracket::after{top:0;bottom:0;left:50%;width:1px;margin-left:-0.5px;}
.bracket.tl{top:12mm;left:12mm;}
.bracket.tr{top:12mm;right:12mm;}
.bracket.bl{bottom:12mm;left:12mm;}
.bracket.br{bottom:12mm;right:12mm;}

/* ---- HLAVICKA / PATICKA ---- */
.runhead{position:absolute;z-index:3;top:12.5mm;left:22mm;right:22mm;display:flex;justify-content:space-between;
  align-items:flex-start;font-size:7.5pt;letter-spacing:2.6px;color:var(--faint);text-transform:uppercase;}
.runhead .logo{font-weight:700;color:var(--ink);letter-spacing:3px;}
.runhead .logo span{color:var(--accent);}
.runhead .readout{text-align:right;line-height:1.85;font-size:7pt;letter-spacing:2.2px;}
.runfoot{position:absolute;z-index:3;bottom:12.5mm;left:22mm;right:22mm;display:flex;justify-content:space-between;
  align-items:flex-end;font-size:7pt;letter-spacing:2.6px;color:var(--faint);text-transform:uppercase;}
.runfoot .pg{color:var(--muted);letter-spacing:1px;font-size:8.5pt;}

/* ---- LABEL ---- */
.label{font-size:8pt;font-weight:600;letter-spacing:4px;text-transform:uppercase;color:var(--accent);}
.label.soft{color:var(--faint);}
/* marker: kosoštvorcový „node" namiesto pomlčky (— ) — signature SPACE */
.dash{font-size:0;line-height:0;letter-spacing:0;margin-right:12px;white-space:nowrap;}
.dash::before{content:"";display:inline-block;width:5px;height:5px;background:var(--accent);transform:rotate(45deg);vertical-align:middle;}

/* ---- DISPLEJ TITULOK ---- */
.display{font-weight:800;letter-spacing:-1.6px;line-height:1.0;}
.display .w{color:var(--ink);font-weight:800;}
.display .s{color:var(--soft);font-weight:300;letter-spacing:-1.2px;}
.display.xl{font-size:53pt;}
.display.lg{font-size:38pt;}
.display.md{font-size:27pt;letter-spacing:-.9px;}
.display.sm{font-size:20pt;letter-spacing:-.5px;}
.hl{color:var(--accent);}
.dim{color:var(--faint);}

/* ---- linky ---- */
.rule{width:72px;height:0;border-top:2px solid var(--accent);margin:24px 0;}
.hairrule{height:1px;background:var(--hair);margin:22px 0;border:none;}

/* ---- TEXT ---- */
p{margin-bottom:10px;color:var(--muted);}
p.lead{color:var(--ink-2);font-size:12.5pt;line-height:1.58;font-weight:400;}
strong{color:var(--ink);font-weight:700;}
em{color:var(--soft);font-style:italic;}
.tag{color:var(--soft);font-style:italic;font-size:12.5pt;line-height:1.5;font-weight:300;}

/* ---- PRODUKT / SLUZBA — hlavicka strany ---- */
.prodhead{display:flex;justify-content:space-between;align-items:baseline;gap:20px;}
.prodhead .r{font-size:11pt;color:var(--faint);text-align:right;}
.prodtitle{font-size:37pt;font-weight:800;letter-spacing:-1.4px;line-height:1;color:var(--ink);margin-top:6px;}
.prodtitle .hl{color:var(--accent);}

/* ---- 3 STLPCE ---- */
.cols{display:flex;gap:30px;margin-top:8px;}
.cols .col{flex:1;position:relative;padding-top:18px;}
.cols .col::before{content:"";position:absolute;top:0;left:0;width:28px;height:2px;background:var(--accent);}
.col .n{font-size:8pt;font-weight:600;letter-spacing:3px;color:var(--accent);text-transform:uppercase;margin-bottom:11px;}
.col h3{font-size:14pt;color:var(--ink);margin-bottom:8px;font-weight:700;letter-spacing:-.3px;}
.col p{font-size:9pt;}

/* ---- META RIADKY (2x2, s vrchnou vlasovou linkou ako v referencii) ---- */
.metagrid{display:flex;flex-wrap:wrap;gap:0 40px;margin-top:6px;}
.metagrid .m{flex:1 1 42%;min-width:200px;padding:16px 0 4px 0;border-top:1px solid var(--hair);margin-top:14px;}
.metagrid .k{font-size:8pt;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;}
.metagrid .k .dash{margin-right:9px;}
.metagrid .v{font-size:9.5pt;color:var(--muted);line-height:1.55;}
.metagrid .v b{color:var(--ink);font-weight:700;}

/* ---- TARIFY (tier tabulka, bodkovane) ---- */
.tiers{width:100%;border-collapse:collapse;margin-top:10px;}
.tiers td{padding:14px 2px;border-bottom:1px dotted var(--hair);font-size:9.5pt;vertical-align:baseline;}
.tiers tr:first-child td{border-top:1px solid var(--hair);}
.tiers td.name{color:var(--ink);font-weight:700;width:24%;letter-spacing:-.2px;}
.tiers td.desc{color:var(--muted);}
.tiers td.desc b{color:var(--accent);font-weight:700;}

/* ---- FAZY (nazov + zeleny rozsah + popis) ---- */
.phases{width:100%;border-collapse:collapse;margin-top:10px;}
.phases td{padding:13px 2px;border-bottom:1px dotted var(--hair);font-size:9.5pt;vertical-align:baseline;}
.phases tr:first-child td{border-top:1px solid var(--hair);}
.phases td.ph{color:var(--ink);font-weight:700;width:26%;}
.phases td.dt{color:var(--muted);}
.phases td.dt b{color:var(--accent);font-weight:700;}

/* ---- POLOZKY (cenova ponuka) ---- */
.items{width:100%;border-collapse:collapse;font-size:9.5pt;margin-top:8px;}
.items th{text-align:left;font-size:7.5pt;font-weight:600;letter-spacing:2.4px;text-transform:uppercase;
  color:var(--faint);padding:0 4px 10px 4px;border-bottom:1px solid var(--accent);}
.items th.r,.items td.r{text-align:right;white-space:nowrap;}
.items td{padding:12px 4px;border-bottom:1px dotted var(--hair);color:var(--muted);vertical-align:top;}
.items td .nm{color:var(--ink);font-weight:600;}
.items td.price{color:var(--ink);font-weight:700;}
.total{display:flex;justify-content:space-between;align-items:center;margin-top:18px;
  padding:18px 20px;background:var(--panel);border-left:2px solid var(--accent);}
.total .k{font-size:8pt;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent);}
.total .v{font-size:24pt;font-weight:800;color:var(--ink);letter-spacing:-.7px;}

/* ---- KARTY (lava zelena linka) ---- */
.cards{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;}
.cards .card{flex:1 1 44%;background:var(--panel);border:1px solid var(--hair);border-left:2px solid var(--accent);
  padding:15px 18px;position:relative;}
.cards .card h4{color:var(--ink);font-size:10.5pt;margin-bottom:6px;font-weight:700;letter-spacing:-.2px;}
.cards .card p{font-size:8.8pt;margin:0;}

/* ---- CTA / callout ---- */
.callout{margin-top:22px;background:var(--panel);border:1px solid var(--hair);border-left:2px solid var(--accent);padding:20px 22px;}
.callout .k{font-size:8pt;font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent);}
.callout .quote{display:block;margin-top:12px;padding:14px 18px;font-weight:700;
  color:var(--on-accent);background:var(--accent);letter-spacing:-.2px;}
.callout p{color:var(--muted);margin-top:10px;}

/* ---- pill ---- */
.pill{display:inline-block;border:1px solid var(--accent);color:var(--accent);
  font-size:8pt;font-weight:600;letter-spacing:3px;text-transform:uppercase;padding:7px 16px;}

/* ---- PRAVIDLA (velke zelene cislo) ---- */
.rulerow{display:flex;gap:30px;align-items:flex-start;padding:22px 0;border-top:1px solid var(--hair);}
.rulerow:last-child{border-bottom:1px solid var(--hair);}
.rulerow .big{font-size:34pt;font-weight:800;line-height:.9;min-width:72px;color:var(--accent);letter-spacing:-1px;}
.rulerow h3{font-size:15pt;color:var(--ink);margin-bottom:8px;font-weight:700;letter-spacing:-.3px;}
.rulerow p{font-size:9pt;}

/* ===================================================== SVETLA STRANA — zmluvy */
.paper{background:var(--paper);color:var(--paper-ink);}
.paper::before,.paper::after{display:none;}
.paper .band{position:relative;overflow:hidden;color:var(--ink);background:var(--bg);
  height:58mm;padding:14mm 22mm 12mm 22mm;display:flex;flex-direction:column;justify-content:flex-end;}
.paper .band::before{content:"";position:absolute;inset:0;z-index:0;
  background:radial-gradient(130% 180% at 82% -30%, var(--glow) 0%, transparent 58%),
             linear-gradient(120deg, var(--bg-top), var(--bg));}
.paper .band>*{position:relative;z-index:2;}
.paper .band .logo{position:absolute;top:13mm;left:22mm;font-size:10pt;font-weight:700;letter-spacing:3px;text-transform:uppercase;}
.paper .band .logo span{color:var(--accent);}
.paper .band h1{font-size:19pt;font-weight:800;margin:0 0 4px 0;letter-spacing:-.4px;}
.paper .band .lawref{font-size:8.5pt;color:var(--soft);font-style:italic;}
.paper .body{padding:11mm 22mm 16mm 22mm;font-family:Georgia,'DejaVu Serif',serif;font-size:9.8pt;line-height:1.64;}
.paper .body p{color:var(--paper-ink);text-align:justify;}
.paper h2.leg{font-family:'Inter','Segoe UI','DejaVu Sans',Arial,sans-serif;font-size:9pt;font-weight:800;
  letter-spacing:1.4px;text-transform:uppercase;color:var(--paper-ink);border-bottom:2px solid var(--paper-ink);
  padding-bottom:6px;margin:20px 0 10px 0;}
.paper h2.leg .n{color:var(--accent-ink);margin-right:9px;}
.paper ol.clauses{padding-left:18px;}
.paper ol.clauses li{margin-bottom:7px;text-align:justify;}
.paper .parties{display:flex;gap:10px;margin:10px 0 14px 0;font-family:'Inter','Segoe UI','DejaVu Sans',Arial,sans-serif;}
.paper .parties .pty{flex:1;background:var(--paper-tint);padding:13px 15px;font-size:8.8pt;color:var(--paper-muted);border:1px solid var(--paper-hair);border-left:2px solid var(--accent-ink);}
.paper .parties .who{font-size:7.5pt;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--accent-ink);margin-bottom:6px;}
.paper .parties .name{font-weight:800;font-size:10pt;color:var(--paper-ink);}
.paper .annex{margin-top:16px;background:var(--paper-tint);padding:12px 15px;
  font-family:'Inter','Segoe UI','DejaVu Sans',Arial,sans-serif;font-size:9pt;color:var(--paper-muted);border:1px solid var(--paper-hair);}
.paper .annex .t{font-weight:800;font-size:7.5pt;letter-spacing:1.8px;text-transform:uppercase;color:var(--accent-ink);margin-right:7px;}
.paper .sign{display:flex;gap:32px;margin-top:44px;font-family:'Inter','Segoe UI','DejaVu Sans',Arial,sans-serif;}
.paper .sign .s{flex:1;font-size:9pt;}
.paper .sign .place{color:var(--paper-muted);font-size:8.5pt;margin-bottom:36px;}
.paper .sign .line{border-top:1.5px solid var(--paper-ink);padding-top:7px;font-weight:700;color:var(--paper-ink);}
.paper .sign .role{color:var(--paper-muted);font-size:8pt;font-weight:400;}
.paper .legalnote{margin-top:24px;padding:11px 15px;background:#FFF6E8;
  border-left:3px solid #E2A13D;font-family:'Inter','Segoe UI','DejaVu Sans',Arial,sans-serif;font-size:7.8pt;color:#7A5A1E;}
.paper .runfoot{color:var(--paper-muted);}
