body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:#f3f7f8;color:#15222b}
.container{max-width:1050px;margin:0 auto;padding:24px}
.hero,.card{background:#fff;border:1px solid #d8dee4;border-radius:18px;padding:22px;margin-bottom:18px}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.btn,button.btn{border:1px solid #243b73;background:#fff;color:#243b73;border-radius:10px;padding:10px 14px;text-decoration:none;font-weight:700;cursor:pointer}
.btn.primary{background:#243b73;color:#fff}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-grid input{width:100%;box-sizing:border-box;margin-top:6px;padding:11px;border:1px solid #cfd8dc;border-radius:10px;font-size:16px}
.wide{grid-column:1/-1}
.preview-wrap{background:#e5e7eb;padding:18px;overflow:auto}

.doc-page{
  width:210mm;
  margin:0 auto;
  background:#fff;
  color:#000;
  padding:15mm 17mm;
  box-sizing:border-box;
  font-family:"Times New Roman",Georgia,serif;
  font-size:12pt;
  line-height:1.35;
  height:auto;
  min-height:auto;
}
.doc-page h1{text-align:center;font-size:18pt;margin:0 0 14mm}
.top-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:10mm 16mm;align-items:end;margin-bottom:14mm}
.field{text-align:center;border-bottom:1px solid #000;padding-bottom:2mm;min-height:7mm;font-weight:700}
.declaration{margin:14mm 0;text-align:justify}
.name-block{text-align:center;width:68%;margin:14mm auto}
.line{border-bottom:1px solid #000;height:0;margin:1mm 0}
.doc-page small{font-size:9.5pt;color:#333}
.two-fields{display:grid;grid-template-columns:1fr 1.9fr;gap:18mm;margin:14mm 0;text-align:center}
.bottom-row{display:grid;grid-template-columns:1fr 1fr;gap:18mm;align-items:end;margin-top:16mm;position:static}
.place{display:grid;grid-template-columns:auto 35mm auto 45mm;gap:4mm;align-items:end;text-align:center}
.place strong{border-bottom:1px solid #000;padding-bottom:1.5mm;white-space:nowrap;font-size:11pt}
.signature{text-align:center;position:static}
.signature .line{border-bottom:1px solid #000;margin-bottom:2mm}
.no-print{}

@media print{
  body{background:#fff}
  .no-print,.hero,.actions,.toolbar,.buttons,nav{display:none!important}
  .container{max-width:none;padding:0}
  .preview-wrap{padding:0;background:#fff;overflow:visible}
  .doc-page{width:auto;margin:0;box-shadow:none}
  @page{size:A4;margin:10mm}
}

/* podpis o kousek níž */
.signature{
    padding-top:12mm !important;
}

/* delší linka */
.signature .line{
    width:90% !important;
    margin:0 auto 3mm auto !important;
}

/* srovnani celeho spodniho radku */
.bottom-row {
  align-items: end !important;
}

.bottom-row .signature {
  padding-top: 0 !important;
  align-self: end !important;
}

.bottom-row .signature .line {
  margin-top: 0 !important;
  margin-bottom: 4mm !important;
}

.bottom-row .signature small {
  display: block !important;
  padding-top: 0 !important;
}

/* datum a misto podpisu na jeden radek */
.place strong {
  white-space: nowrap !important;
}

/* finalni zarovnani podpisu */
.bottom-row{
  grid-template-columns: 1.35fr 1fr !important;
  gap: 18mm !important;
  align-items: end !important;
}

.bottom-row .signature{
  padding-top: 0 !important;
  transform: translateY(-7mm) !important;
}

.bottom-row .signature .line{
  width: 85% !important;
  margin: 0 auto 3mm auto !important;
}

.bottom-row .signature small{
  display: block !important;
  text-align: center !important;
}

/* podpis zarovnat stejne jako ostatni pole */
.bottom-row{
    align-items:end !important;
}

.bottom-row .signature{
    transform:none !important;
    padding-top:0 !important;
    margin-top:0 !important;
    align-self:end !important;
}

.bottom-row .signature .line{
    width:100% !important;
    margin:0 !important;
    border-bottom:1px solid #000 !important;
}

.bottom-row .signature small{
    display:block !important;
    margin-top:2mm !important;
    text-align:center !important;
}

.signature{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    gap:8px !important;
    align-items:end !important;
}

.signature span{
    white-space:nowrap !important;
}

.signature .line{
    width:100% !important;
    margin:0 !important;
}

/* spodni radek */
.place strong{
    border-bottom:none !important;
    padding-bottom:0 !important;
}

.bottom-row{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    align-items:end !important;
}

.signature{
    display:flex !important;
    align-items:flex-end !important;
    gap:10px !important;
    transform:none !important;
}

.signature .line{
    flex:1 !important;
    margin:0 !important;
    width:auto !important;
}

.signature small,
.signature span{
    order:-1 !important;
    white-space:nowrap !important;
    margin:0 !important;
}

/* zarovnani spodniho radku doleva a bliz k sobe */
.bottom-row {
  grid-template-columns: 1.25fr 1fr !important;
  gap: 10mm !important;
  align-items: end !important;
}

.place {
  display: flex !important;
  justify-content: flex-start !important;
  align-items: baseline !important;
  gap: 3mm !important;
  text-align: left !important;
}

.place span,
.place strong {
  display: inline !important;
  text-align: left !important;
  white-space: nowrap !important;
  border-bottom: none !important;
  padding: 0 !important;
  font-size: 11pt !important;
}

.signature {
  justify-content: flex-start !important;
}

/* mobilni formular */
@media (max-width: 760px) {
  body {
    overflow-x: hidden !important;
  }

  .container {
    padding: 12px !important;
    max-width: 100% !important;
  }

  .hero,
  .card {
    padding: 16px !important;
    border-radius: 14px !important;
  }

  .brand {
    display: block !important;
  }

  .brand img {
    max-width: 180px !important;
    height: auto !important;
    margin-bottom: 14px !important;
  }

  h1 {
    font-size: 32px !important;
    line-height: 1.05 !important;
    word-break: normal !important;
  }

  .brand p,
  .hero p {
    font-size: 17px !important;
    line-height: 1.35 !important;
  }

  .form-grid {
    display: block !important;
  }

  .form-grid label {
    display: block !important;
    margin-bottom: 16px !important;
    font-size: 19px !important;
    line-height: 1.2 !important;
  }

  .form-grid input {
    width: 100% !important;
    font-size: 18px !important;
    padding: 13px !important;
  }

  .actions {
    display: block !important;
  }

  .btn,
  button.btn {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-bottom: 10px !important;
    text-align: center !important;
  }

  .preview-wrap {
    padding: 8px !important;
    overflow-x: auto !important;
  }

  .doc-page {
    transform: scale(.48) !important;
    transform-origin: top left !important;
    margin-bottom: -150mm !important;
  }
}
