/* PoOperaci.cz — demo prototyp
   Klidná, důvěryhodná zdravotní estetika: teplý papír, hluboká zeleň, serif nadpisy. */

@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=Instrument+Sans:wght@400;500;600&display=swap&subset=latin-ext');

:root {
  --paper: oklch(0.975 0.008 85);
  --paper-deep: oklch(0.945 0.012 85);
  --ink: oklch(0.28 0.02 170);
  --ink-soft: oklch(0.45 0.02 170);
  --pine: oklch(0.42 0.08 172);
  --pine-deep: oklch(0.34 0.07 172);
  --pine-tint: oklch(0.93 0.025 172);
  --amber-tint: oklch(0.95 0.04 85);
  --line: oklch(0.88 0.015 120);
  --danger: oklch(0.55 0.15 25);
  --radius: 10px;
  --serif: "Source Serif 4", Georgia, serif;
  --sans: "Instrument Sans", -apple-system, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { -webkit-text-size-adjust: 100%; }

body {
  font-family: var(--sans);
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
}

h1, h2, h3 { font-family: var(--serif); line-height: 1.2; color: var(--ink); }

a { color: var(--pine); }

.wrap { max-width: 40rem; margin-inline: auto; padding-inline: clamp(1.25rem, 5vw, 2rem); }
.wrap--wide { max-width: 64rem; }

/* ————— hlavička ————— */
.topbar {
  display: flex; align-items: center; justify-content: space-between;
  padding-block: 1.1rem;
}
.brand {
  font-family: var(--serif); font-weight: 700; font-size: 1.25rem;
  color: var(--ink); text-decoration: none; letter-spacing: -0.01em;
}
.brand .tld { color: var(--pine); }
.topbar__note { font-size: 0.8rem; color: var(--ink-soft); }

.demo-ribbon {
  background: var(--ink); color: oklch(0.95 0.01 85);
  font-size: 0.78rem; text-align: center; padding: 0.4rem 1rem;
  letter-spacing: 0.02em;
}

/* ————— tlačítka ————— */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  font: 600 1rem var(--sans);
  padding: 0.85rem 1.6rem; border-radius: 999px;
  border: 1px solid transparent; cursor: pointer; text-decoration: none;
  transition: background 0.18s ease, transform 0.12s ease;
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--pine); color: oklch(0.98 0.005 85); }
.btn--primary:hover { background: var(--pine-deep); }
.btn--ghost { background: transparent; color: var(--pine); border-color: oklch(0.78 0.04 172); }
.btn--ghost:hover { background: var(--pine-tint); }
.btn--big { font-size: 1.1rem; padding: 1rem 2.1rem; }

/* ————— landing ————— */
.hero { padding-block: clamp(2.5rem, 9vw, 5.5rem) clamp(2rem, 6vw, 3.5rem); }
.hero h1 {
  font-size: clamp(2rem, 6.5vw, 3.1rem); font-weight: 600; letter-spacing: -0.015em;
  max-width: 17ch; margin-bottom: 1.1rem;
}
.hero p.lead { font-size: clamp(1.1rem, 3vw, 1.25rem); color: var(--ink-soft); max-width: 34rem; margin-bottom: 2rem; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.8rem; align-items: center; }
.hero__hint { font-size: 0.85rem; color: var(--ink-soft); }

.section { padding-block: clamp(2rem, 6vw, 3.5rem); }
.section--tinted { background: var(--paper-deep); }
.section h2 { font-size: clamp(1.4rem, 4vw, 1.8rem); font-weight: 600; margin-bottom: 1.4rem; }

.steps { list-style: none; counter-reset: krok; display: grid; gap: 1.1rem; }
.steps li {
  counter-increment: krok;
  display: grid; grid-template-columns: 2.4rem 1fr; gap: 0.9rem; align-items: baseline;
}
.steps li::before {
  content: counter(krok);
  font: 600 1rem var(--serif);
  width: 2.1rem; height: 2.1rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--pine-tint); color: var(--pine-deep);
}
.steps b { font-weight: 600; }
.steps span { display: block; color: var(--ink-soft); font-size: 0.95rem; }

footer.site { padding-block: 2.5rem; font-size: 0.85rem; color: var(--ink-soft); }
footer.site a { color: var(--ink-soft); }

/* ————— formulář / wizard ————— */
.wizard { padding-block: 1.5rem 4rem; }
.progress { display: flex; align-items: center; gap: 0.4rem; margin-block: 1.2rem 2rem; }
.progress i {
  flex: 1; height: 4px; border-radius: 2px; background: var(--line);
  transition: background 0.25s ease;
}
.progress i.done { background: var(--pine); }
.progress-label { font-size: 0.82rem; color: var(--ink-soft); margin-bottom: 0.3rem; }

.step { display: none; }
.step.active { display: block; animation: rise 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
@keyframes rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

.step h2 { font-size: 1.55rem; font-weight: 600; margin-bottom: 0.4rem; }
.step > p.help { color: var(--ink-soft); font-size: 0.95rem; margin-bottom: 1.6rem; }

.field { margin-bottom: 1.3rem; }
.field label { display: block; font-weight: 600; font-size: 0.95rem; margin-bottom: 0.4rem; }
.field .opt { font-weight: 400; color: var(--ink-soft); }
.field input[type="text"], .field input[type="tel"], .field input[type="email"],
.field input[type="date"], .field textarea {
  width: 100%; font: 400 1.05rem var(--sans); color: var(--ink);
  padding: 0.8rem 0.95rem; border: 1px solid var(--line); border-radius: var(--radius);
  background: oklch(0.99 0.003 85);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.field textarea { min-height: 6.5rem; resize: vertical; }
.field input:focus, .field textarea:focus {
  outline: none; border-color: var(--pine);
  box-shadow: 0 0 0 3px oklch(0.9 0.04 172 / 0.5);
}
.field .err { display: none; color: var(--danger); font-size: 0.85rem; margin-top: 0.3rem; }
.field.invalid input, .field.invalid textarea { border-color: var(--danger); }
.field.invalid .err { display: block; }

.choice { display: grid; gap: 0.6rem; }
.choice label {
  display: flex; align-items: center; gap: 0.7rem;
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 0.85rem 1rem; cursor: pointer; font-weight: 500;
  background: oklch(0.99 0.003 85);
  transition: border-color 0.15s ease, background 0.15s ease;
}
.choice input { accent-color: var(--pine); width: 1.15rem; height: 1.15rem; }
.choice label:has(input:checked) { border-color: var(--pine); background: var(--pine-tint); }

/* fake upload */
.upload {
  display: block;
  border: 1.5px dashed oklch(0.78 0.04 172); border-radius: var(--radius);
  padding: 1.3rem; text-align: center; cursor: pointer;
  color: var(--pine-deep); background: oklch(0.98 0.008 150);
  transition: background 0.15s ease;
}
.upload:hover { background: var(--pine-tint); }
.upload b { display: block; font-weight: 600; }
.upload small { color: var(--ink-soft); }
.upload input { display: none; }
.files { list-style: none; margin-top: 0.7rem; display: grid; gap: 0.45rem; }
.files li {
  display: flex; align-items: center; gap: 0.6rem;
  font-size: 0.92rem; padding: 0.55rem 0.8rem;
  background: var(--pine-tint); border-radius: 8px; color: var(--pine-deep);
}
.files li::before { content: "✓"; font-weight: 700; }
.files li button {
  margin-left: auto; border: 0; background: none; cursor: pointer;
  color: var(--ink-soft); font-size: 1rem; line-height: 1; padding: 0.2rem;
}

.gdpr {
  display: flex; gap: 0.7rem; align-items: flex-start;
  font-size: 0.92rem; color: var(--ink-soft);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1rem; background: oklch(0.99 0.003 85);
}
.gdpr input { accent-color: var(--pine); width: 1.15rem; height: 1.15rem; flex-shrink: 0; margin-top: 0.2rem; }

.summary { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; margin-bottom: 1.4rem; }
.summary dl { display: grid; grid-template-columns: auto 1fr; }
.summary dt, .summary dd { padding: 0.55rem 0.9rem; font-size: 0.92rem; border-top: 1px solid var(--line); }
.summary dt { color: var(--ink-soft); white-space: nowrap; }
.summary dt:first-of-type, .summary dd:first-of-type { border-top: 0; }
.summary dd { font-weight: 500; }

.wizard-nav { display: flex; justify-content: space-between; gap: 0.8rem; margin-top: 2rem; }
.wizard-nav .btn--primary { margin-left: auto; }

/* ————— potvrzení ————— */
.confirm { text-align: left; padding-block: 3rem 2rem; }
.confirm .mark {
  width: 3.4rem; height: 3.4rem; border-radius: 50%;
  display: grid; place-items: center; margin-bottom: 1.3rem;
  background: var(--pine); color: white; font-size: 1.5rem;
}
.confirm h2 { font-size: 1.8rem; margin-bottom: 0.8rem; }
.confirm p { color: var(--ink-soft); max-width: 32rem; }
.confirm p + p { margin-top: 0.7rem; }

.email-preview { margin-block: 2.5rem; }
.email-preview > small {
  display: block; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-soft); margin-bottom: 0.7rem; font-weight: 600;
}
.email-card {
  border: 1px solid var(--line); border-radius: var(--radius);
  background: oklch(0.995 0.002 85); overflow: hidden;
  box-shadow: 0 1px 3px oklch(0.3 0.02 170 / 0.06);
}
.email-card__head { padding: 0.9rem 1.2rem; border-bottom: 1px solid var(--line); font-size: 0.88rem; }
.email-card__head div { display: flex; gap: 0.5rem; }
.email-card__head span:first-child { color: var(--ink-soft); min-width: 4.5rem; flex-shrink: 0; }
.email-card__body { padding: 1.2rem; font-size: 0.95rem; }
.email-card__body p + p { margin-top: 0.7rem; }

/* ————— admin ————— */
.admin-login { max-width: 22rem; margin: 12vh auto 0; padding-inline: 1.25rem; }
.admin-login h1 { font-size: 1.5rem; margin-bottom: 0.4rem; }
.admin-login p { font-size: 0.9rem; color: var(--ink-soft); margin-bottom: 1.4rem; }

.admin-head { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 0.5rem; padding-block: 1.8rem 1.2rem; }
.admin-head h1 { font-size: 1.6rem; }
.admin-head .count { font-size: 0.88rem; color: var(--ink-soft); }

.badge {
  display: inline-block; font-size: 0.76rem; font-weight: 600;
  padding: 0.22rem 0.7rem; border-radius: 999px; white-space: nowrap;
}
.badge--nove { background: var(--amber-tint); color: oklch(0.5 0.11 70); }
.badge--kontaktovat { background: oklch(0.93 0.05 250); color: oklch(0.42 0.1 255); }
.badge--domluvena { background: var(--pine-tint); color: var(--pine-deep); }
.badge--vyrizeno { background: oklch(0.93 0.01 120); color: var(--ink-soft); }

.req-table { width: 100%; border-collapse: collapse; font-size: 0.93rem; }
.req-table th {
  text-align: left; font-size: 0.76rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--ink-soft); font-weight: 600; padding: 0.6rem 0.8rem;
  border-bottom: 1px solid var(--line);
}
.req-table td { padding: 0.85rem 0.8rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.req-table tr[data-id] { cursor: pointer; transition: background 0.12s ease; }
.req-table tr[data-id]:hover { background: var(--pine-tint); }
.req-table .name { font-weight: 600; }
.req-table .muted { color: var(--ink-soft); }
.table-scroll { overflow-x: auto; }

.new-flag {
  font-size: 0.72rem; font-weight: 600; color: var(--pine-deep);
  background: var(--pine-tint); border-radius: 4px; padding: 0.1rem 0.4rem; margin-left: 0.4rem;
}

/* detail žádosti */
.detail { padding-block: 1.5rem 4rem; }
.detail .back { font-size: 0.9rem; text-decoration: none; color: var(--ink-soft); }
.detail header { display: flex; align-items: center; gap: 0.8rem; flex-wrap: wrap; margin-block: 1rem 1.8rem; }
.detail header h1 { font-size: 1.7rem; }
.detail-grid { display: grid; gap: 2rem; }
@media (min-width: 52rem) { .detail-grid { grid-template-columns: 1.4fr 1fr; align-items: start; } }

.kv { display: grid; grid-template-columns: auto 1fr; font-size: 0.95rem; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.kv dt, .kv dd { padding: 0.6rem 0.95rem; border-top: 1px solid var(--line); }
.kv dt { color: var(--ink-soft); white-space: nowrap; }
.kv dt:first-of-type, .kv dd:first-of-type { border-top: 0; }

.qa-block { margin-top: 1.6rem; }
.qa-block h3 { font-size: 1.02rem; margin-bottom: 0.35rem; }
.qa-block p { color: var(--ink-soft); font-size: 0.97rem; }
.qa-block + .qa-block { margin-top: 1.2rem; }

.attach { list-style: none; display: grid; gap: 0.5rem; margin-top: 0.5rem; }
.attach a {
  display: flex; align-items: center; gap: 0.6rem;
  font-size: 0.92rem; padding: 0.6rem 0.85rem;
  border: 1px solid var(--line); border-radius: 8px; text-decoration: none;
  color: var(--pine-deep); background: oklch(0.99 0.003 85);
}
.attach a:hover { background: var(--pine-tint); }
.attach .kind { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.05em; background: var(--pine-tint); border-radius: 4px; padding: 0.15rem 0.4rem; }

.actions-card {
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.3rem; background: var(--paper-deep);
}
.actions-card h3 { font-size: 1.02rem; margin-bottom: 0.9rem; }
.actions-card .btn { width: 100%; margin-bottom: 0.6rem; }
.actions-card small { color: var(--ink-soft); font-size: 0.8rem; }

.toast {
  position: fixed; left: 50%; bottom: 1.5rem;
  transform: translateX(-50%) translateY(calc(100% + 2.5rem));
  background: var(--ink); color: oklch(0.96 0.01 85);
  padding: 0.75rem 1.4rem; border-radius: 999px; font-size: 0.9rem;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1); z-index: 50;
}
.toast.show { transform: translateX(-50%) translateY(0); }

@media (max-width: 40rem) {
  .req-table .hide-sm { display: none; }
}
