/* Vzhled dokumentů A4 – převzato z nabídek Flowgrid. */
.doc{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.55;font-size:11pt;}
.doc *{box-sizing:border-box;}
:root{
    --ink:#1F293A;--ink-soft:#3a4457;--accent:#1D4ED8;--accent-soft:#eaf0fe;
    --muted:#6b7484;--line:#e4e8ee;--fill:#c4ccd7;--bg-soft:#f5f7fa;--paper:#ffffff;
  }

  .page{width:210mm;height:297mm;background:var(--paper);margin:24px auto;position:relative;display:flex;flex-direction:column;box-shadow:0 8px 30px rgba(31,41,58,.16);overflow:hidden;}
  .content{flex:1 1 auto;padding:18mm 18mm 6mm 18mm;}

  .foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6mm 18mm 9mm 18mm;border-top:1px solid var(--line);font-size:8pt;color:var(--muted);letter-spacing:.01em;}
  .foot .fl{display:flex;align-items:center;gap:9px;}
  .foot .mark{width:17px;height:17px;flex:0 0 auto;}
  .foot .ftxt{display:flex;flex-direction:column;gap:1px;line-height:1.35;}
  .foot .l2{color:var(--muted);}
  .foot b{color:var(--ink-soft);font-weight:600;}
  .foot .fr{text-align:right;white-space:nowrap;align-self:flex-end;}

  h1,h2,h3,h4{margin:0;line-height:1.2;}
  .eyebrow{font-size:9pt;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
  .doctitle{font-size:29pt;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin-bottom:12px;}
  .divider{height:3px;width:54px;background:var(--accent);border-radius:2px;margin:0 0 22px;}

  .sh{display:flex;align-items:baseline;gap:8px;font-size:13pt;font-weight:700;color:var(--ink);letter-spacing:-.01em;border-bottom:1px solid var(--line);padding-bottom:7px;margin:0 0 14px;}
  .sh .num{color:var(--accent);font-weight:700;}
  .section{margin-bottom:24px;}
  .section.last{margin-bottom:0;}
  .sub-h{font-size:8.5pt;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:700;margin:0 0 8px;}

  .brandline{display:flex;align-items:center;gap:10px;margin-bottom:44px;}
  .brandline .mark{width:26px;height:26px;}
  .brandline .name{font-weight:700;font-size:13pt;letter-spacing:.02em;color:var(--ink);}
  .brandline .name span{color:var(--accent);}

  /* fillable fields */
  .fgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px 24px;}
  .f{display:flex;flex-direction:column;}
  .f.full{grid-column:1 / -1;}
  .f label{font-size:8pt;text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:600;margin-bottom:5px;}
  .f .val{border-bottom:1px solid var(--fill);min-height:26px;padding:3px 2px 4px;font-size:11pt;color:var(--ink);font-weight:500;}
  .inl{display:inline-block;border-bottom:1px solid var(--fill);min-width:110px;height:15px;vertical-align:bottom;margin:0 3px;}

  /* smluvní strany */
  .parties{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .party{background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:14px 18px;}
  .party .role{font-size:8pt;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:700;margin-bottom:8px;}
  .party .row{display:flex;flex-direction:column;margin-bottom:7px;}
  .party .row:last-child{margin-bottom:0;}
  .party .row label{font-size:7.5pt;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;}
  .party .row .v{font-size:9.5pt;font-weight:500;color:var(--ink);min-height:16px;border-bottom:1px dashed var(--fill);padding-bottom:2px;line-height:1.4;}
  .party .row .v.filled{border-bottom:none;}

  /* shrnutí */
  .kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;}
  .kpi{border:1px solid var(--line);border-radius:12px;padding:12px 14px;}
  .kpi.hl{background:var(--ink);border-color:var(--ink);}
  .kpi label{display:block;font-size:7.5pt;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;margin-bottom:4px;}
  .kpi .k{font-size:15pt;font-weight:800;letter-spacing:-.01em;color:var(--ink);}
  .kpi.hl label{color:#aab4c5;}
  .kpi.hl .k{color:#fff;}

  .lead{font-size:10.5pt;color:var(--ink-soft);margin:0 0 10px;line-height:1.6;}
  .lead:last-child{margin-bottom:0;}

  /* dvousloupcové bloky */
  .cols{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  .card{background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;padding:14px 16px;}
  .card p{font-size:9.5pt;color:var(--ink-soft);margin:0;line-height:1.55;}

  /* seznamy */
  .checks{list-style:none;margin:0;padding:0;}
  .checks li{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);align-items:flex-start;}
  .checks li:last-child{border-bottom:none;}
  .checks .ic{flex:0 0 auto;width:20px;height:20px;border-radius:6px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:10pt;margin-top:1px;}
  .checks .ic.x{background:#f1f3f6;color:var(--muted);}
  .checks .tx{font-size:10pt;color:var(--ink-soft);}
  .checks .tx strong{color:var(--ink);font-weight:700;}
  .checks.two{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;}
  .checks.two li:last-child{border-bottom:1px solid var(--line);}

  /* technické řešení */
  .tech{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .tech .t{border:1px solid var(--line);border-radius:10px;padding:10px 14px;}
  .tech .t h4{font-size:9.5pt;font-weight:700;margin:0 0 3px;color:var(--ink);}
  .tech .t p{font-size:9pt;color:var(--ink-soft);margin:0;line-height:1.5;}

  /* cenové tabulky */
  table.price{width:100%;border-collapse:collapse;}
  table.price th{background:var(--ink);color:#fff;font-size:8pt;text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:9px 12px;text-align:left;}
  table.price th:first-child{border-radius:8px 0 0 0;width:7%;text-align:center;}
  table.price th:last-child{border-radius:0 8px 0 0;text-align:right;width:20%;}
  table.price th.qty{text-align:center;width:14%;}
  table.price td{border-bottom:1px solid var(--line);padding:6px 12px;font-size:10pt;vertical-align:top;}
  table.price td:first-child{text-align:center;color:var(--muted);font-weight:600;}
  table.price td.qty{text-align:center;color:var(--ink-soft);white-space:nowrap;}
  table.price td.amt{text-align:right;font-weight:600;white-space:nowrap;}
  table.price .it{font-weight:600;color:var(--ink);}
  table.price .ds{font-size:9pt;color:var(--muted);margin-top:2px;line-height:1.45;}
  table.price tr.total td{border-bottom:none;background:var(--accent-soft);font-weight:700;font-size:11pt;padding:12px;}
  table.price tr.total td:first-child{border-radius:0 0 0 8px;}
  table.price tr.total td:last-child{border-radius:0 0 8px 0;color:var(--accent);font-size:13pt;font-weight:800;}
  table.price.opt th{background:var(--bg-soft);color:var(--ink-soft);}
  .vat{font-size:8.5pt;color:var(--muted);margin-top:7px;text-align:right;}

  /* SLA */
  table.sla{width:100%;border-collapse:collapse;margin-top:6px;}
  table.sla th{background:var(--bg-soft);color:var(--ink-soft);font-size:8pt;text-transform:uppercase;letter-spacing:.07em;font-weight:600;padding:7px 12px;text-align:left;border:1px solid var(--line);}
  table.sla td{border:1px solid var(--line);padding:7px 12px;font-size:9.5pt;color:var(--ink-soft);}
  table.sla td:first-child{font-weight:600;color:var(--ink);}

  /* harmonogram / kroky */
  .steps{list-style:none;margin:0;padding:0;}
  .steps li{display:grid;grid-template-columns:26px 1fr auto;gap:12px;align-items:start;padding:10px 0;border-bottom:1px solid var(--line);}
  .steps li:last-child{border-bottom:none;}
  .steps .n{width:22px;height:22px;border-radius:6px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:10pt;}
  .steps h4{font-size:10.5pt;font-weight:700;margin:1px 0 2px;}
  .steps p{font-size:9.5pt;color:var(--ink-soft);margin:0;}
  .steps .t{font-size:9.5pt;font-weight:600;color:var(--ink-soft);white-space:nowrap;padding-top:2px;}

  /* reference */
  .refs{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .ref{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:0 10px 10px 0;padding:10px 14px;}
  .ref h4{font-size:10pt;font-weight:700;margin:0 0 2px;}
  .ref p{font-size:9pt;color:var(--ink-soft);margin:0;}

  .suppnote{background:var(--accent-soft);border:1px solid #d3e0fc;border-left:4px solid var(--accent);border-radius:0 12px 12px 0;padding:14px 20px;}
  .suppnote p{font-size:10pt;color:var(--ink-soft);margin:0;line-height:1.6;}
  .suppnote strong{color:var(--ink);font-weight:700;}

  .signs{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:10px;}
  .sign .role{font-size:8.5pt;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:600;}
  .sign .who{font-weight:700;font-size:11pt;margin-top:5px;color:var(--ink);min-height:16px;}
  .sign .sub{font-size:9pt;color:var(--ink-soft);min-height:14px;}
  .sign .dm{margin-top:28px;font-size:9pt;color:var(--ink-soft);}
  .sign .sigline{margin-top:64px;border-top:1px solid var(--ink);padding-top:7px;font-size:8pt;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;}

  .note{background:var(--bg-soft);border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:11px 16px;font-size:9pt;color:var(--ink-soft);line-height:1.55;}


  .ph{background:#fff3c4;color:#7a5b00;padding:0 5px;border-radius:4px;font-weight:600;}
  .stages{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .stage{border:1px solid var(--line);border-radius:12px;padding:16px 18px;}
  .stage.hl{border-color:var(--accent);box-shadow:inset 0 3px 0 var(--accent);}
  .stage .tag{display:inline-block;font-size:7.5pt;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--accent);background:var(--accent-soft);border-radius:999px;padding:3px 10px;margin-bottom:8px;}
  .stage h3{font-size:13pt;font-weight:800;margin:0 0 6px;}
  .stage p{font-size:9.5pt;color:var(--ink-soft);margin:0 0 10px;line-height:1.55;}
  .stage .pr{border-top:1px solid var(--line);padding-top:10px;display:flex;justify-content:space-between;align-items:baseline;font-size:9pt;color:var(--muted);}
  .stage .pr b{font-size:12pt;color:var(--ink);}
  .choice{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin:4px 0 18px;}
  .choice .ck{display:flex;gap:10px;align-items:center;font-size:10.5pt;font-weight:600;}
  .choice .box{width:18px;height:18px;border:1.5px solid var(--ink-soft);border-radius:4px;}

  .comp{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;margin:8px 0 2px 4px;padding:0;list-style:none;}
  .checks .comp li{display:block;border:none;padding:1px 0 1px 13px;font-size:9.5pt;color:var(--ink-soft);position:relative;}
  .checks .comp li:last-child{border:none;}
  .checks .comp li:before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--accent);}

  .et{border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:14px;}
  .et-h{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;}
  .et-h h3{font-size:12pt;font-weight:800;margin:0;}
  .et-h h3 span{color:var(--accent);margin-right:6px;}
  .et-h .p{font-size:9.5pt;color:var(--muted);white-space:nowrap;}
  .et-h .p b{color:var(--ink);font-size:11pt;}
  .et p.d{font-size:9.5pt;color:var(--ink-soft);margin:0 0 8px;line-height:1.55;}
  .et .g{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
  .et .g div{background:var(--bg-soft);border-radius:8px;padding:9px 12px;}
  .et .g h5{font-size:7.5pt;text-transform:uppercase;letter-spacing:.11em;color:var(--accent);margin:0 0 4px;font-weight:700;}
  .et .g h5.r{color:#b4541a;}
  .et .g ul{margin:0;padding-left:15px;}
  .et .g li{font-size:8.8pt;color:var(--ink-soft);line-height:1.5;}
  .choice{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px;margin:4px 0 18px;}
  .choice .ck{display:flex;gap:10px;align-items:center;font-size:10pt;font-weight:600;}
  .choice .box{width:17px;height:17px;border:1.5px solid var(--ink-soft);border-radius:4px;flex:0 0 auto;}

/* ---------- doplňky pro aplikaci ---------- */
.content > .section:last-child{margin-bottom:0;}
.content{overflow:hidden;}
.fgrid.two{grid-template-columns:1fr 1fr;}
.f .val.empty{color:transparent;}

/* předávací protokol */
.ck{display:flex;gap:12px;align-items:flex-start;padding:8px 0;}
.ck .box{width:18px;height:18px;border:1.5px solid var(--ink-soft);border-radius:4px;flex:0 0 auto;margin-top:1px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:11pt;line-height:1;color:var(--accent);}
.ck .ct{font-size:10.5pt;font-weight:600;color:var(--ink);}
.ck .cs{font-size:9pt;color:var(--muted);font-weight:400;margin-top:1px;}
.vhead{font-size:9pt;color:var(--muted);margin:16px 0 8px;}
table.vyhrady{width:100%;border-collapse:collapse;}
table.vyhrady th{background:var(--bg-soft);color:var(--ink-soft);font-size:8pt;text-transform:uppercase;letter-spacing:.07em;font-weight:600;padding:7px 12px;text-align:left;border:1px solid var(--line);}
table.vyhrady th:first-child{width:12%;text-align:center;}
table.vyhrady td{border:1px solid var(--line);height:32px;padding:6px 12px;font-size:10pt;}
table.vyhrady td:first-child{text-align:center;color:var(--muted);}
.checks.nums .ic{background:transparent;color:var(--muted);width:auto;min-width:16px;font-weight:700;font-size:11pt;}
.checks.compact{display:grid;grid-template-columns:1fr 1fr;column-gap:24px;}
.checks.compact li{padding:7px 0;gap:10px;align-items:center;}
.checks.compact li:last-child{border-bottom:1px solid var(--line);}
.checks.compact .ic{width:18px;height:18px;font-size:9pt;border-radius:5px;margin-top:0;}
.checks.compact .tx{font-size:9.5pt;font-weight:600;color:var(--ink);line-height:1.35;}

/* smlouva */
.art p{font-size:10pt;color:var(--ink-soft);margin:0 0 8px;line-height:1.6;text-align:justify;}
.art ol{margin:0;padding-left:20px;}
.art ol li{font-size:10pt;color:var(--ink-soft);line-height:1.6;margin-bottom:5px;text-align:justify;}
.art ul{margin:4px 0 6px;padding-left:18px;}
.art ul li{margin-bottom:2px;}

@media print{
  .doc .page{margin:0 !important;box-shadow:none !important;break-after:page;}
  .doc .page:last-child{break-after:auto;}
  .doc *{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}
