/* Vygenerováno z archivního index.html skriptem tools/extract_original.py – needitovat ručně. */
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: Arial, sans-serif; font-size: 9.5pt; background: #e8e8e8; color: #111; }

/* TOOLBAR */
.toolbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 999;
  background: #72bf44; color: white;
  display: flex; align-items: center; gap: 12px; padding: 8px 20px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
.toolbar button {
  background: white; color: #72bf44; border: none; border-radius: 4px;
  padding: 6px 18px; font-size: 10pt; font-weight: bold; cursor: pointer;
  font-family: Arial;
}
.toolbar button:hover { background: #d4f0b8; }
.toolbar span { font-size: 9.5pt; opacity: 0.85; }
.toolbar .logo-text { font-size: 12pt; font-weight: bold; margin-right: 12px; }

/* PAGE */
.page {
  background: white;
  max-width: 820px;
  margin: 60px auto 30px;
  padding: 32px 40px;
  box-shadow: 0 2px 16px rgba(0,0,0,0.18);
}

/* PAGE BREAK between smlouva and priloha */
.page-break {
  max-width: 820px;
  margin: 0 auto;
  background: #c0392b;
  color: white;
  text-align: center;
  font-size: 9pt;
  padding: 5px;
  letter-spacing: 1px;
}

/* HEADER */
.header {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 14px; border-bottom: 2.5px solid #72bf44; padding-bottom: 10px;
}
.header img { max-height: 68px; }

/* TITLE */
.smlouva-title {
  text-align: center; font-size: 11.5pt; font-weight: bold;
  margin-bottom: 5px; text-transform: uppercase; line-height: 1.4;
}
.smlouva-subtitle {
  text-align: center; font-size: 8.5pt; margin-bottom: 14px; color: #444; line-height: 1.6;
}
.cislo-input {
  border: none; border-bottom: 2px solid #72bf44;
  font-size: 11.5pt; font-weight: bold; text-align: center;
  width: 80px; outline: none; background: transparent; color: #72bf44;
}

/* SECTION TITLES */
.sec { font-weight: bold; font-size: 10pt; margin: 13px 0 5px; text-transform: uppercase; border-bottom: 1px solid #bbb; padding-bottom: 2px; color: #72bf44; }
.subsec { font-weight: bold; font-size: 9.5pt; margin-bottom: 4px; }

/* PROVIDER BOX */
.provider-box {
  background: #f0fae8; border-left: 4px solid #72bf44;
  padding: 7px 12px; margin: 6px 0 8px; font-size: 8.5pt; line-height: 1.6;
}

/* FORM FIELDS */
.row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.row label { font-size: 8.5pt; color: #333; white-space: nowrap; min-width: 145px; }
.fi {
  border: none; border-bottom: 1.5px solid #777;
  padding: 2px 4px; font-size: 9pt; font-family: Arial;
  flex: 1; min-width: 100px; max-width: 100%;
  outline: none; background: transparent; color: #000;
}
.fi:focus { border-bottom-color: #72bf44; background: #f0fae8; }
.fi-sm { flex: 0 0 auto; width: 100px; }
.fi-md { flex: 0 0 auto; width: 160px; }
.fi-lg { flex: 0 0 auto; width: 220px; }

/* CHECKBOXES */
.cbrow { display: flex; gap: 14px; align-items: center; margin-bottom: 5px; flex-wrap: wrap; }
.cbrow .lbl { font-size: 8.5pt; font-weight: bold; margin-right: 4px; }
.cbrow label { font-size: 8.5pt; display: flex; align-items: center; gap: 4px; cursor: pointer; }
input[type=checkbox] { width: 13px; height: 13px; cursor: pointer; accent-color: #72bf44; }

/* PRICE BOX */
.price-box {
  border: 1px solid #b8e49a; border-radius: 4px;
  padding: 8px 12px; margin: 6px 0; background: #f8fdf4;
}
.prow { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; flex-wrap: wrap; }
.prow label { font-size: 8.5pt; min-width: 210px; }
.prow input {
  border: none; border-bottom: 1.5px solid #777;
  padding: 2px 4px; font-size: 9pt; font-family: Arial;
  width: 130px; outline: none; background: transparent;
}
.prow input:focus { border-bottom-color: #72bf44; background: #f0fae8; }
.prow .unit { font-size: 8.5pt; color: #444; }

/* TARIF BOX */
.tarif-box {
  border: 1.5px solid #72bf44; border-radius: 4px;
  padding: 8px 12px; margin: 5px 0; background: #f0fae8;
}

/* BODY TEXT */
.p { font-size: 8pt; color: #222; line-height: 1.55; margin-bottom: 5px; text-align: justify; }
.p b { color: #000; }

/* LONG LEGAL SECTIONS */
.legal { font-size: 7.8pt; color: #333; line-height: 1.55; margin-bottom: 3px; text-align: justify; }
.legal b { color: #000; }

/* DEVICES TABLE */
.dev-table { width: 100%; border-collapse: collapse; font-size: 8pt; margin: 5px 0; }
.dev-table th { background: #72bf44; color: white; padding: 4px 8px; text-align: left; font-size: 8pt; font-weight: bold; }
.dev-table td { border: 1px solid #ccc; padding: 6px 5px; }
.dev-table td input { border: none; width: 100%; outline: none; background: transparent; font-size: 8pt; font-family: Arial; padding: 2px; }
.dev-table td input:focus { background: #f0fae8; }

/* SIGNATURE */
.sig-area { display: flex; justify-content: space-between; margin-top: 18px; gap: 30px; }
.sig-block { flex: 1; }
.sig-block .sig-label { font-size: 8.5pt; font-weight: bold; margin-bottom: 4px; }
.sig-line { border-bottom: 1.5px solid #333; height: 48px; margin-bottom: 4px; }
.sig-cap { font-size: 7.5pt; color: #666; text-align: center; }

/* DATE */
.date-row { display: flex; align-items: center; gap: 8px; margin: 10px 0; }
.date-row label { font-size: 9pt; font-weight: bold; }
.date-row input {
  border: none; border-bottom: 1.5px solid #777;
  padding: 2px 6px; font-size: 9pt; font-family: Arial;
  width: 130px; outline: none; background: transparent;
}
.date-row input:focus { border-bottom-color: #72bf44; background: #f0fae8; }

hr.div { border: none; border-top: 1px solid #ddd; margin: 10px 0; }

/* ===================== PŘÍLOHA – TABULKA RYCHLOSTÍ ===================== */
.priloha-title {
  text-align: center; font-size: 11pt; font-weight: bold;
  text-decoration: underline; margin-bottom: 4px; text-transform: uppercase;
}
.priloha-sub {
  text-align: center; font-size: 8.5pt; margin-bottom: 12px; color: #444;
}
.speed-intro { font-size: 8pt; line-height: 1.6; margin-bottom: 10px; color: #222; }
.speed-def { font-size: 8pt; line-height: 1.6; margin-bottom: 4px; color: #222; }
.speed-def b { color: #72bf44; }

.speed-table { width: 100%; border-collapse: collapse; font-size: 8pt; margin: 8px 0 14px; }
.speed-table th {
  background: #72bf44; color: white;
  padding: 5px 6px; text-align: center;
  font-size: 7.5pt; line-height: 1.3; border: 1px solid #72bf44;
}
.speed-table th.sub { background: #5aa832; }
.speed-table td {
  border: 1px solid #bbb; padding: 4px 6px;
  text-align: center; font-size: 8pt;
}
.speed-table tr:nth-child(even) td { background: #f4faf0; }
.speed-table td.type-cell { font-weight: bold; background: #d6eaf8; text-align: left; }
.speed-table td.tarif-cell { font-weight: bold; }

/* PRINT */
@media print {
  body { background: white; font-size: 8pt; }
  .toolbar { display: none !important; }
  #notif-banner { display: none !important; }

  @page { size: A4; margin: 10mm 12mm; }

  .page { box-shadow: none; margin: 0; padding: 0; width: auto; max-width: 100%; }

  /* Příloha = nová stránka */
  .page-break {
    display: block; page-break-before: always;
    background: none !important; color: transparent;
    height: 0; padding: 0; margin: 0; border: none;
  }

  /* Zachovat bloky pohromade */
  .legal { page-break-inside: avoid; }
  .p { page-break-inside: avoid; }
  .price-box { page-break-inside: avoid; }
  .tarif-box { page-break-inside: avoid; }
  .sig-area { page-break-inside: avoid; }
  .dev-table { page-break-inside: avoid; }
  .provider-box { page-break-inside: avoid; }
  .row { page-break-inside: avoid; }
  .sec { page-break-after: avoid; }
  textarea { border: 0.4pt solid #aaa !important; background: white !important;
    font-size: 8pt !important; padding: 2pt 4pt !important; resize: none !important; }

  /* ── Pole jako tenké buňky při tisku ── */
  .fi, .prow input, .cislo-input, .date-row input, #variabilni-symbol {
    height: 18pt !important;
    font-size: 8pt !important;
    padding: 3pt 3pt !important;
    border: 0.4pt solid #aaa !important;
    border-radius: 1pt !important;
    background: white !important;
    box-shadow: none !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Podpisové linky */
  .sig-line { border-bottom: 0.4pt solid #555 !important; height: 28pt !important; }

  /* Tabulka zařízení */
  .dev-table td { border: 0.4pt solid #ccc !important; padding: 5pt 4pt !important; }
  .dev-table td input { font-size: 7.5pt !important; }

  /* Hlavička a nadpisy sekcí */
  .header { border-bottom: 1pt solid #72bf44 !important; padding-bottom: 4pt !important; margin-bottom: 6pt !important; }
  .header img { max-height: 45pt !important; }
  .sec { border-bottom: 0.4pt solid #bbb !important; font-size: 9pt !important; margin: 6pt 0 3pt !important; }

  /* Číslo smlouvy */
  .cislo-input { border: 0.4pt solid #72bf44 !important; font-size: 10pt !important; font-weight: bold !important; }

  /* Řádky formuláře těsněji */
  .row { margin-bottom: 2pt !important; }
  .row label { font-size: 8pt !important; }
  .cbrow { margin-bottom: 2pt !important; font-size: 8pt !important; }
  .prow { margin-bottom: 2pt !important; }
  .prow label { font-size: 8pt !important; }

  /* Provider box */
  .provider-box { padding: 4pt 8pt !important; font-size: 7.5pt !important; border-left: 2pt solid #72bf44 !important; }

  /* Tarif box */
  .tarif-box { padding: 4pt 8pt !important; border: 0.4pt solid #72bf44 !important; }

  /* Price box */
  .price-box { padding: 4pt 8pt !important; border: 0.4pt solid #b8e49a !important; }

  /* Texty */
  .p { font-size: 7.5pt !important; margin-bottom: 2pt !important; }
  .legal { font-size: 7pt !important; margin-bottom: 2pt !important; }
  .subsec { font-size: 8.5pt !important; margin-bottom: 2pt !important; }
}

/* ===== BUŇKOVÝ STYL POLÍ (jako Excel) ===== */
.fi {
  border: 1px solid #bbb !important;
  border-radius: 2px;
  background: #fafafa !important;
  padding: 5px 6px !important;
  height: 30px;
}
.fi:focus {
  border-color: #72bf44 !important;
  background: #f0fae8 !important;
}
.prow input {
  border: 1px solid #bbb !important;
  border-radius: 2px;
  background: #fafafa !important;
  padding: 5px 6px !important;
  height: 30px;
}
.prow input:focus {
  border-color: #72bf44 !important;
  background: #f0fae8 !important;
}
.cislo-input {
  border: 1px solid #72bf44 !important;
  border-radius: 2px;
  background: #f0fae8 !important;
  padding: 3px 8px !important;
}
.date-row input {
  border: 1px solid #bbb !important;
  border-radius: 2px;
  background: #fafafa !important;
  padding: 5px 6px !important;
  height: 30px;
}
.date-row input:focus {
  border-color: #72bf44 !important;
  background: #f0fae8 !important;
}
#variabilni-symbol {
  border: 1px solid #72bf44 !important;
  border-radius: 2px;
}
.dev-table td input {
  background: #fafafa !important;
}

/* Při tisku - zachovat buňky, jen tenčí rámeček */



/* ===== PODPISOVÉ POLE ===== */
.sig-canvas-wrap { position: relative; width: 100%; }
.sig-canvas {
  border: 1.5px solid #bbb;
  border-radius: 3px;
  background: #fafafa;
  cursor: crosshair;
  touch-action: none;
  display: block;
  width: 100%;
  height: 80px;
}
.sig-clear {
  position: absolute; top: 4px; right: 4px;
  background: #e74c3c; color: white; border: none;
  border-radius: 3px; font-size: 7.5pt; padding: 2px 7px;
  cursor: pointer; font-family: Arial;
}
.sig-razitko-wrap { position: relative; width: 100%; height: 80px; border: 1.5px solid #bbb; border-radius: 3px; background: #fafafa; display: flex; align-items: center; justify-content: center; }
.sig-razitko-wrap img { max-height: 74px; max-width: 100%; object-fit: contain; }
.sig-razitko-placeholder { font-size: 8pt; color: #aaa; text-align: center; }
@media print {
  .sig-canvas { border: 0.4pt solid #aaa !important; background: white !important; height: 60px !important; }
  .sig-clear { display: none !important; }
  .sig-razitko-wrap { border: 0.4pt solid #aaa !important; background: white !important; height: 60px !important; }
}

