/* vetmax.sk — jeden štýl pre statické stránky, rezerváciu aj administráciu.
   Písmo Plus Jakarta Sans (SIL OFL 1.1, Google Fonts / Fontsource 5.3.0) je uložené v /fonts,
   rozdelené na latinku a strednú Európu. Žiadne inline štýly (CSP ich nepovolí). */

@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/fonts/jakarta-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  src: url("/fonts/jakarta-latin-ext.woff2") format("woff2");
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  --zelena: #10726b;          /* farba VETMAX */
  --zelena-tmava: #0b4f4a;
  --zelena-svetla: #e6f4f2;   /* mätová */
  --zelena-stredna: #c4e4df;
  --zlta: #ffd400;
  --zlta-tmava: #f2c200;
  --zlta-svetla: #fff7cc;
  --text: #1f2a2a;
  --tlmene: #56605f;
  --ciara: #dbe5e3;
  --pozadie: #fff;
  --pozadie-2: #f2f4f4;
  --cervena: #b3261e;
  --cervena-svetla: #fdeceb;
  --tien: 0 1px 2px rgba(16, 60, 56, .06), 0 6px 20px rgba(16, 60, 56, .07);
  --tien-velky: 0 2px 4px rgba(16, 60, 56, .06), 0 14px 40px rgba(16, 60, 56, .12);
  --zaobl: 16px;
  --sirka: 1160px;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--text);
  background: var(--pozadie);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--zelena); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--zelena-tmava); }
h1, h2, h3 { line-height: 1.2; margin: 1.6em 0 .6em; font-weight: 700; letter-spacing: -.02em; }
h1 { font-size: clamp(2rem, 4.6vw, 3.1rem); margin-top: .4em; }
h2 { font-size: clamp(1.45rem, 2.6vw, 1.9rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
strong { font-weight: 600; }

.ik { width: 1.1em; height: 1.1em; fill: currentColor; stroke: none; vertical-align: -.17em; flex: none; overflow: visible; }  /* Chrome inak ikonku v krúžku s paddingom oreže (chýbalo ucho, nos) */
.ik.velka { width: 1.8rem; height: 1.8rem; }

.obal { max-width: var(--sirka); margin: 0 auto; padding: 0 20px; }
.uzke { max-width: 780px; }
.drobne { font-size: .9rem; color: var(--tlmene); }
.velke { font-size: 1.3rem; }
.skryte { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
main { padding-bottom: 4rem; }
.sekcia { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.sekcia-mata { background: var(--zelena-svetla); }
.nadpis-nad { text-transform: uppercase; letter-spacing: .14em; font-size: .85rem; font-weight: 600; color: var(--zelena); margin: 0 0 .4rem; }
.uvodny { font-size: 1.2rem; color: #2c3a39; }
.text-stranka { padding-top: 2rem; }

:focus-visible { outline: 3px solid var(--zelena); outline-offset: 3px; border-radius: 4px; }

/* ------------------------------------------------------------ tlačidlá */
.tlacidlo {
  display: inline-flex; align-items: center; gap: .55rem;
  background: var(--zlta); color: var(--text); text-decoration: none;
  font: inherit; font-weight: 600; font-size: 1.05rem; line-height: 1.2;
  padding: .85rem 1.5rem; border-radius: 999px; border: 2px solid var(--zlta); cursor: pointer;
  box-shadow: 0 2px 0 rgba(0,0,0,.06);
  transition: background .15s, transform .15s, box-shadow .15s;
}
.tlacidlo:hover { background: var(--zlta-tmava); border-color: var(--zlta-tmava); color: var(--text); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(242, 194, 0, .35); }
.tlacidlo-male { padding: .55rem 1.1rem; font-size: 1rem; }
.tlacidlo-obrys { background: #fff; border-color: var(--zelena); color: var(--zelena-tmava); }
.tlacidlo-obrys:hover { background: var(--zelena-svetla); border-color: var(--zelena); color: var(--zelena-tmava); box-shadow: none; }
.tlacidlo-tmave { background: var(--zelena); border-color: var(--zelena); color: #fff; }
.tlacidlo-tmave:hover { background: var(--zelena-tmava); border-color: var(--zelena-tmava); color: #fff; box-shadow: 0 6px 16px rgba(11, 79, 74, .3); }
.tlacidlo-cervene { background: var(--cervena); border-color: var(--cervena); color: #fff; }
.tlacidlo-cervene:hover { background: #8c1d17; border-color: #8c1d17; color: #fff; box-shadow: none; }
.tlacidla { display: flex; flex-wrap: wrap; gap: .8rem; }
.odkaz-sipka { display: inline-flex; align-items: center; gap: .45rem; font-weight: 600; }

/* ------------------------------------------------------------ hlavička */
.hlavicka { background: rgba(255,255,255,.97); border-bottom: 1px solid var(--ciara); position: sticky; top: 0; z-index: 5; }
.hlavicka .obal { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; padding-top: 10px; padding-bottom: 10px; }
.znacka { display: flex; align-items: center; gap: .8rem; text-decoration: none; color: var(--text); }
.znacka img { height: 56px; width: auto; }
.znacka span { font-size: .85rem; line-height: 1.15; text-transform: uppercase; letter-spacing: .12em; color: var(--tlmene); font-weight: 500; }
.menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem 1.6rem; }
.menu a:not(.tlacidlo) { text-decoration: none; color: var(--text); font-weight: 500; padding: .3rem 0; border-bottom: 2px solid transparent; }
.menu a:not(.tlacidlo):hover, .menu a[aria-current="page"]:not(.tlacidlo) { border-bottom-color: var(--zlta); color: var(--text); }
.menu a.menu-tel { display: inline-flex; align-items: center; gap: .4rem; color: var(--zelena); font-weight: 600; white-space: nowrap; }
.menu-prepinac, .menu-tlacidlo { display: none; }

@media (max-width: 900px) {
  .menu-tlacidlo { display: flex; align-items: center; gap: .6rem; cursor: pointer; font-weight: 600; padding: .5rem .2rem; }
  .menu-tlacidlo span, .menu-tlacidlo span::before, .menu-tlacidlo span::after {
    display: block; width: 22px; height: 2px; background: var(--text); position: relative; content: ""; border-radius: 2px;
  }
  .menu-tlacidlo span::before { position: absolute; top: -7px; }
  .menu-tlacidlo span::after { position: absolute; top: 7px; }
  .menu { display: none; width: 100%; }
  .menu-prepinac:checked ~ .menu { display: block; }
  .menu ul { flex-direction: column; align-items: stretch; gap: 0; padding: .5rem 0 1rem; }
  .menu a:not(.tlacidlo) { display: flex; padding: .7rem 0; font-size: 1.15rem; border-bottom: 1px solid var(--ciara); }
  .menu .tlacidlo { margin-top: 1rem; justify-content: center; width: 100%; }
  .menu-prepinac { display: block; position: absolute; opacity: 0; width: 1px; height: 1px; }
  .menu-prepinac:focus-visible + .menu-tlacidlo { outline: 3px solid var(--zelena); outline-offset: 4px; }
  .znacka img { height: 46px; }
}

/* ------------------------------------------------------------ úvod */
.hrdina { position: relative; background: #fff; overflow: hidden; }
.hrdina-text { position: relative; z-index: 1; padding-top: 3rem; text-align: center; }
.hrdina h1 { font-weight: 800; max-width: 16em; margin: 0 auto .6rem; color: var(--zelena-tmava); }
.hrdina h1 .riadok-2 { display: block; }
main.bez-spodku { padding-bottom: 0; }   /* úvod končí mätovým pásom tímu, biely okraj pred pätou netreba */
.hrdina-pod { font-size: 1.25rem; color: var(--tlmene); max-width: 36em; margin: 0 auto 1.4rem; }
.hrdina .tlacidla { justify-content: center; }
.hrdina-foto { width: 100%; max-width: 1600px; margin: -2.5rem auto 0; }
@media (min-width: 1000px) {
  /* horná tretina fotky je biela — text sa na ňu položí */
  .hrdina-foto { margin-top: -5.5rem; }   /* nová fotka (10/2026) má menej bieleho miesta navrchu */
}

.pas-vyhody { background: var(--zelena); color: #fff; }
.vyhody { list-style: none; margin: 0 auto; padding-top: 1.6rem; padding-bottom: 1.6rem; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.vyhody li { display: grid; grid-template-columns: auto 1fr; column-gap: .9rem; align-items: center; }
.vyhody .ik { grid-column: 1; grid-row: 1 / span 2; width: 2.8rem; height: 2.8rem; padding: .65rem; border-radius: 50%; background: rgba(255,255,255,.14); color: var(--zlta); }
.vyhody strong { grid-column: 2; line-height: 1.25; align-self: end; }
.vyhody .bez-popisu strong { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.vyhody span { grid-column: 2; font-size: .95rem; line-height: 1.3; opacity: .85; align-self: start; margin-top: .1rem; }
@media (max-width: 900px) { .vyhody { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .vyhody { grid-template-columns: 1fr; } }

.dvojica { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1rem 3.5rem; align-items: start; }
.dvojica > section > h2:first-child { margin-top: 0; }
@media (max-width: 860px) { .dvojica { grid-template-columns: 1fr; } }

.ukony { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.ukony li { display: inline-flex; align-items: center; gap: .5rem; padding: .45rem .9rem; border-radius: 999px; background: var(--zelena-svetla); color: var(--zelena-tmava); font-weight: 500; font-size: 1rem; }

.karta { background: #fff; border: 1px solid var(--ciara); border-radius: var(--zaobl); padding: 1.4rem 1.6rem; box-shadow: var(--tien); margin-bottom: 1.4rem; }
.karta > h2:first-child { margin-top: 0; font-size: 1.35rem; display: flex; align-items: center; gap: .6rem; }
.karta > h2 .ik { color: var(--zelena); }
.rez-bok .karta > h2 .ik, .rez-bok .info .ik { color: var(--tlmene); }
.karta-zlta { background: var(--zlta-svetla); border-color: #f5e48a; }
.karta-zlta > h2 .ik { color: var(--zelena-tmava); }

.hodiny { border-collapse: collapse; width: 100%; }
.hodiny th, .hodiny td { text-align: left; padding: .5rem 0; border-bottom: 1px solid var(--ciara); }
.hodiny tr:last-child th, .hodiny tr:last-child td { border-bottom: 0; }
.hodiny th { font-weight: 500; text-transform: capitalize; }
.hodiny td { text-align: right; font-variant-numeric: tabular-nums; font-weight: 500; }

.hodiny .dnes th, .hodiny .dnes td { font-weight: 700; }
.hodiny .dnes th::after { content: " · dnes"; font-weight: 500; color: var(--tlmene); font-size: .85em; }
.zmeny-hodin { margin-top: 1.2rem; padding: .9rem 1rem; background: var(--zlta-svetla); border-left: 4px solid var(--zlta-tmava); }
.zmeny-hodin h3 { margin: 0 0 .5rem; font-size: 1rem; display: flex; align-items: center; gap: .45rem; }
.zmeny-hodin ul { list-style: none; margin: 0; padding: 0; }
.zmeny-hodin li { padding: .25rem 0; font-size: .98rem; }
.zmeny-hodin .stitok { background: var(--zlta); color: var(--text); }
.pata .zmena-pata { color: var(--zlta); font-weight: 600; }
.tim-sekcia { display: grid; grid-template-columns: minmax(220px, 1fr) 2.6fr; gap: 2rem 3rem; align-items: start; }
.tim-uvod h2 { margin-top: 0; }
.tim-uvod .tlacidlo { margin-top: .4rem; }
.tim-uvod .tlacidlo .ik { width: .9em; height: .9em; }
.tim { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.6rem 1.2rem; }
.tim a { display: block; text-decoration: none; color: var(--text); }
.tim img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; margin-bottom: .7rem; transition: filter .2s; filter: saturate(.9); }
.tim a:hover img { filter: saturate(1.1) brightness(1.03); }
.tim strong { display: block; font-size: 1.02rem; line-height: 1.3; }
.tim a:hover strong { text-decoration: underline; text-decoration-color: var(--zlta-tmava); text-decoration-thickness: 2px; text-underline-offset: .2em; }
.tim span { display: block; font-size: .9rem; color: var(--tlmene); line-height: 1.4; margin-top: .2rem; }
@media (max-width: 900px) { .tim-sekcia { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .tim { grid-template-columns: 1fr 1fr; gap: 1.3rem .9rem; } }

/* ------------------------------------------------------------ podstránky */
.uvod-stranky { background: var(--zelena-svetla); padding: 2.5rem 0 2rem; margin-bottom: 1rem; }
.uvod-stranky h1 { color: var(--zelena-tmava); margin-bottom: .5em; }
h1 .pod { display: block; font-size: .5em; font-weight: 500; color: var(--tlmene); letter-spacing: 0; }
.sirka { margin: 2.5rem 0; }
.sirka img { border-radius: var(--zaobl); }

.osoba { display: grid; grid-template-columns: 260px 1fr; gap: 2.2rem; margin: 2rem 0; padding: 1.8rem; background: #fff; border: 1px solid var(--ciara); border-radius: var(--zaobl); box-shadow: var(--tien); scroll-margin-top: 100px; }
.osoba img { border-radius: 12px; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 20%; }
.osoba h3 { margin-top: 0; font-size: 1.5rem; color: var(--zelena-tmava); }
.podnadpis { color: var(--tlmene); margin-top: -.3rem; font-size: 1rem; }
@media (max-width: 680px) { .osoba { grid-template-columns: 1fr; padding: 1.2rem; } .osoba img { max-width: 280px; } }

.kontakty { list-style: none; padding: 0; margin: 0 0 2rem; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.kontakty .karta { margin: 0; }
.kontakty .ik.velka { color: var(--zelena); background: var(--zelena-svetla); border-radius: 50%; padding: .55rem; width: 3rem; height: 3rem; }
.kontakty h2 { font-size: .9rem; text-transform: uppercase; letter-spacing: .1em; color: var(--tlmene); margin: .8rem 0 .3rem; }
.kontakty p { margin: 0 0 .4rem; }
@media (max-width: 760px) { .kontakty { grid-template-columns: 1fr; } }

/* galéria so zväčšením cez :target (bez JavaScriptu) */
.galeria { list-style: none; padding: 0; margin: 1.5rem 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.galeria figure { margin: 0; }
.galeria img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; transition: transform .2s, box-shadow .2s; }
.galeria a:hover img { transform: translateY(-2px); box-shadow: var(--tien-velky); }
.galeria figcaption { font-size: .9rem; color: var(--tlmene); padding-top: .35rem; }
.lupa { display: none; position: fixed; inset: 0; z-index: 20; background: rgba(8, 20, 19, .95); align-items: center; justify-content: center; }
.lupa:target { display: flex; }
.lupa img { max-width: 92vw; max-height: 88vh; width: auto; height: auto; position: relative; z-index: 1; border-radius: 8px; }
.lupa .zavriet { position: absolute; inset: 0; }
.lupa .x, .lupa .sipka { position: absolute; z-index: 2; color: #fff; display: flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 50%; background: rgba(255,255,255,.14); }
.lupa .x:hover, .lupa .sipka:hover { background: var(--zlta); color: var(--text); }
.lupa .x .ik, .lupa .sipka .ik { width: 1.3rem; height: 1.3rem; }
.lupa .x { top: 1rem; right: 1rem; }
.lupa .vlavo { left: 1rem; top: 50%; transform: translateY(-50%); }
.lupa .vpravo { right: 1rem; top: 50%; transform: translateY(-50%); }

/* ------------------------------------------------------------ služby */
.ukony a { display: inline-flex; align-items: center; gap: .5rem; color: inherit; text-decoration: none; }
.ukony li:has(a):hover { background: var(--zelena-stredna); }
.obsah-sluzieb { margin-top: 1.4rem; }
.obsah-sluzieb li { background: #fff; }
.sluzba-popis { display: grid; grid-template-columns: auto 1fr; gap: 0 1.3rem; padding: 1.6rem 0; border-bottom: 1px solid var(--ciara); scroll-margin-top: 90px; }
.sluzba-popis:first-child { padding-top: 0; }
.sluzba-popis .ik.velka { width: 3.2rem; height: 3.2rem; padding: .75rem; border-radius: 50%; background: var(--pozadie-2); color: #3d4847; }
.sluzba-popis h2 { margin: .4rem 0 .5rem; font-size: 1.45rem; }
.sluzba-popis p:last-child { margin-bottom: 0; }
.sekcia .karta-zlta { margin-top: 2.5rem; }
.otazky { margin: 0; }
.otazky dt { font-weight: 600; font-size: 1.12rem; margin-top: 1.2rem; }
.otazky dd { margin: .3rem 0 0; color: #2c3a39; }

/* ------------------------------------------------------------ päta */
.pata { background: var(--zelena-tmava); color: #e3efed; padding: 3rem 0 0; }
.pata a { color: #fff; }
.pata .obal { display: grid; grid-template-columns: 1.3fr 1.2fr 1fr 1fr; gap: 2rem; }
.pata h2 { font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; color: var(--zlta); margin: 0 0 .9rem; }
.pata p { margin: 0 0 .6rem; display: flex; gap: .6rem; align-items: flex-start; }
.pata .ik { color: var(--zlta); margin-top: .3em; }
.pata .siete { gap: .5rem; margin-top: 1rem; }
.pata .siete a { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: rgba(255,255,255,.12); }
.pata .siete a:hover { background: var(--zlta); }
.pata .siete a:hover .ik { color: var(--text); }
.pata .siete .ik { margin: 0; width: 1.15rem; height: 1.15rem; }
.pata-znacka img { height: 70px; width: auto; margin-bottom: 1rem; }
.pata-znacka p { display: block; opacity: .85; }
.pata .tlacidlo { color: var(--text); }
.pata .tlacidlo .ik { color: currentColor; margin-top: 0; }
.pata .obal.pata-spodok { display: block; margin-top: 2rem; padding-top: 1rem; padding-bottom: 1rem; border-top: 1px solid rgba(255,255,255,.12); font-size: .9rem; }
.pata-spodok p { display: block; opacity: .8; margin: 0; }
@media (max-width: 900px) { .pata .obal { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pata .obal { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------ rezervácia */
.rez-hlava { background: var(--zelena-svetla); padding: 2rem 0 1.6rem; }
.rez-hlava h1 { margin: 0 0 1.2rem; color: var(--zelena-tmava); font-size: clamp(1.8rem, 4vw, 2.6rem); }
.kroky { list-style: none; padding: 0; margin: 0; display: flex; gap: .5rem; counter-reset: krok; }
.kroky li { flex: 1; counter-increment: krok; display: flex; align-items: center; gap: .6rem; color: var(--tlmene); font-weight: 500; position: relative; white-space: nowrap; }
.kroky li::before {
  content: counter(krok); flex: none; display: flex; align-items: center; justify-content: center;
  width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #fff; border: 2px solid var(--zelena-stredna); font-weight: 600; color: var(--tlmene); font-size: 1rem;
}
.kroky li::after { content: ""; flex: 1; height: 2px; background: var(--zelena-stredna); margin: 0 .3rem; }
.kroky li:last-child { flex: 0 1 auto; }
.kroky li:last-child::after { display: none; }
.kroky .hotovy::before { content: "✓"; background: var(--zelena); border-color: var(--zelena); color: #fff; }
.kroky .hotovy::after { background: var(--zelena); }
.kroky .aktivny { color: var(--text); font-weight: 600; }
.kroky .aktivny::before { background: var(--zlta); border-color: var(--zlta); color: var(--text); }
.kroky a { color: inherit; text-decoration: none; }
.kroky a:hover { text-decoration: underline; }
@media (max-width: 600px) { .kroky li { font-size: 0; } .kroky li.aktivny { font-size: .95rem; } }

.rez-telo { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 2.5rem; align-items: start; padding-top: 2rem; }
.rez-telo > div > h2:first-child { margin-top: 0; }
.rez-bok { position: sticky; top: 100px; }
.rez-bok .karta { padding: 1.2rem 1.3rem; }
.rez-bok .karta > h2:first-child { font-size: 1.1rem; }
@media (max-width: 900px) { .rez-bok.krok-1 { display: none; } }
@media (max-width: 900px) { .rez-telo { grid-template-columns: 1fr; gap: 1.5rem; padding-top: 1.2rem; } .rez-bok { position: static; order: -1; } .rez-bok .karta { margin: 0; } }
/* informačné rámčeky: na počítači v bočnom paneli, na mobile pod obsahom kroku */
.len-mobil { display: none; }
@media (max-width: 900px) { .len-mobil { display: block; margin-top: 2rem; } .len-pocitac { display: none; } }
body:not(.admin-telo) .info.dolezite { background: var(--zlta-svetla); border-left-color: var(--zlta-tmava); }
.info.dolezite .ik { color: var(--text); }

.suhrn-zoznam { list-style: none; padding: 0; margin: 0; }
.suhrn-zoznam li { display: grid; grid-template-columns: 2.4rem 1fr; gap: 0 .7rem; align-items: center; padding: .55rem 0; border-bottom: 1px dashed var(--ciara); }
.suhrn-zoznam li:last-child { border-bottom: 0; }
.suhrn-zoznam .ik { width: 2.4rem; height: 2.4rem; padding: .55rem; border-radius: 50%; background: var(--pozadie-2); color: #3d4847; grid-row: span 2; }
.suhrn-zoznam small, .suhrn-zoznam strong { grid-column: 2; }
.suhrn-zoznam small { color: var(--tlmene); font-size: .85rem; line-height: 1.1; }
.suhrn-zoznam strong { line-height: 1.25; }
.suhrn-zoznam .prazdne strong { color: #8d9796; font-weight: 500; }
.suhrn-zoznam .prazdne .ik { background: var(--pozadie-2); color: #a2abaa; }
.suhrn-zoznam li { grid-template-columns: 2.4rem 1fr auto; }
.suhrn-zoznam a { font-size: .9rem; grid-column: 3; grid-row: 1 / span 2; }

.info, .oznam, .chyba, .ok { padding: .9rem 1.1rem; border-radius: 12px; margin: 0 0 1.2rem; display: flex; gap: .7rem; align-items: flex-start; }
.info .ik, .oznam .ik, .chyba .ik, .ok .ik { margin-top: .25em; }
.info p, .oznam p, .ok p { margin: 0; }
.info { background: var(--pozadie-2); border: 1px solid var(--ciara); font-size: 1rem; }
.info .ik { color: var(--zelena); }
.oznam { background: var(--zlta-svetla); border: 1px solid #f5e48a; }
.chyba { background: var(--cervena-svetla); color: #6d1009; border: 1px solid #f3c1bd; }
.chyba .ik { color: var(--cervena); }
.chyba p { margin: .1rem 0; }
.ok { background: var(--zelena-svetla); color: var(--zelena-tmava); border: 1px solid var(--zelena-stredna); }
.ok .ik { color: var(--zelena); }

.skupina-nadpis { display: flex; align-items: center; gap: .5rem; font-size: .85rem; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; margin: 1.8rem 0 .7rem; color: var(--tlmene); }
.skupina-nadpis:first-of-type { margin-top: .3rem; }
.skupina-nadpis .ik { width: 1rem; height: 1rem; color: #8d9796; }
.sluzby { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .8rem; }
.sluzby a {
  display: flex; align-items: center; gap: .9rem;
  padding: .9rem 1.1rem; border: 1.5px solid var(--ciara); border-radius: 14px; text-decoration: none; color: var(--text);
  background: #fff; transition: border-color .15s, box-shadow .15s; height: 100%;
}
.sluzby a:hover, .sluzby a:focus-visible { border-color: var(--zelena); box-shadow: var(--tien); color: var(--text); }
.sluzby .zviera { flex: none; width: 2.8rem; height: 2.8rem; padding: .65rem; border-radius: 50%; background: var(--pozadie-2); color: #3d4847; transition: background .15s, fill .15s; }
.sluzby a:hover .zviera { background: var(--zelena-svetla); color: var(--zelena); }
.sluzby strong { font-size: 1.06rem; font-weight: 500; line-height: 1.3; }
.sluzby li.dlha { grid-column: 1 / -1; }

.mesiace { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 1.5rem; }
.kalendar { border-collapse: separate; border-spacing: 5px; width: 100%; background: #fff; border: 1px solid var(--ciara); border-radius: var(--zaobl); padding: .6rem; box-shadow: var(--tien); }
.kalendar caption { text-align: left; font-weight: 600; font-size: 1.2rem; padding: 0 .3rem .6rem; text-transform: capitalize; }
.kalendar th { font-size: .8rem; color: var(--tlmene); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; padding-bottom: .2rem; }
.kalendar td { text-align: center; padding: 0; width: 14.28%; }
.kalendar a, .kalendar .plno { display: flex; flex-direction: column; align-items: center; justify-content: center; aspect-ratio: 1; border-radius: 10px; line-height: 1.05; min-height: 2.5rem; }
.kalendar a { background: #fff; color: var(--text); text-decoration: none; font-weight: 600; font-size: 1.1rem; border: 1.5px solid var(--ciara); transition: background .12s, border-color .12s; }
.kalendar a small { font-size: .62rem; font-weight: 500; color: var(--tlmene); margin-top: .1rem; }
.kalendar a:hover, .kalendar a:focus-visible { background: var(--zlta); border-color: var(--zlta-tmava); color: var(--text); }
.kalendar a:hover small { color: var(--text); }
.kalendar .plno { color: #b0b8b7; font-size: 1rem; font-weight: 400; }
.kalendar .dnes { box-shadow: inset 0 0 0 2px var(--text); }
.legenda { display: flex; flex-wrap: wrap; gap: 1.2rem; font-size: .9rem; color: var(--tlmene); margin-top: 1rem; }
.legenda span { display: inline-flex; align-items: center; gap: .4rem; }
.legenda span::before { content: ""; width: 1rem; height: 1rem; border-radius: 4px; background: #fff; border: 1.5px solid var(--ciara); }
.legenda .l-plno::before { background: none; border: 0; content: "12"; width: auto; height: auto; color: #b0b8b7; font-size: .85rem; }

.formular fieldset { border: 0; padding: 0; margin: 0 0 1.8rem; min-width: 0; }
.formular fieldset.karta { padding: 1.8rem 2rem 1.6rem; }
.formular fieldset.karta > h2 { margin: 0 0 1.2rem; font-size: 1.35rem; }
@media (max-width: 600px) { .formular fieldset.karta { padding: 1.3rem 1.2rem 1.2rem; } }
.formular legend { font-weight: 600; font-size: 1.35rem; margin-bottom: .8rem; padding: 0; }
.formular label { display: block; font-weight: 500; margin-bottom: .3rem; }
.formular p { margin: 0 0 1rem; }
.polia { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; }
.polia .siroke { grid-column: 1 / -1; }
@media (max-width: 600px) { .polia { grid-template-columns: 1fr; } }
input[type=text], input[type=tel], input[type=email], input[type=password], input[type=search],
input[type=date], input[type=time], input[type=number], select, textarea {
  font: inherit; font-size: 1.05rem; width: 100%; padding: .7rem .9rem; border: 1.5px solid #b8c6c4; border-radius: 10px; background: #fff; color: var(--text);
  transition: border-color .15s, box-shadow .15s;
}
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--zelena); box-shadow: 0 0 0 4px rgba(16, 114, 107, .15); }
textarea { resize: vertical; }
/* kontrola počas vypĺňania — robí ju prehliadač sám, bez JavaScriptu (:user-invalid sa ukáže až po opustení poľa) */
.rada { display: none; font-size: .9rem; color: var(--cervena); margin-top: .3rem; }
input:user-invalid { border-color: var(--cervena); background: #fffafa; }
input:user-invalid:focus { box-shadow: 0 0 0 4px rgba(179, 38, 30, .12); }
input:user-invalid + .rada { display: block; }

.casy-skupina { margin-bottom: 1.1rem; }
.casy-skupina h3 { font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; color: var(--tlmene); margin: 0 0 .5rem; display: flex; align-items: center; gap: .4rem; }
.casy { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.2rem, 1fr)); gap: .5rem; }
.casy input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.casy label {
  display: block; margin: 0; padding: .6rem 0; text-align: center; cursor: pointer; font-variant-numeric: tabular-nums;
  border: 1.5px solid var(--ciara); border-radius: 10px; color: var(--text); font-weight: 500; background: #fff;
  transition: background .12s, border-color .12s;
}
.casy label:hover { border-color: #9fb3b0; background: var(--pozadie-2); }
.casy input:checked + label { background: var(--zlta); border-color: var(--zlta-tmava); color: var(--text); font-weight: 600; box-shadow: 0 4px 12px rgba(242, 194, 0, .35); }
.casy input:focus-visible + label { outline: 3px solid var(--zelena); outline-offset: 2px; }
.odoslat { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.4rem; margin-top: .6rem; padding-top: 1.2rem; border-top: 1px solid var(--ciara); }
.odoslat .drobne { margin: 0; flex: 1 1 16rem; }
.odoslat .tlacidlo { font-size: 1.15rem; padding: 1rem 2rem; }

.hotovo { text-align: center; padding-top: 2.5rem; }
.hotovo .znak { width: 5rem; height: 5rem; padding: 1.2rem; border-radius: 50%; background: var(--zelena); color: #fff; margin: 0 auto 1.4rem; display: block; box-shadow: 0 0 0 10px var(--zelena-svetla); }
.hotovo h1 { color: var(--zelena-tmava); margin-bottom: .3em; }
.hotovo .karta { text-align: left; max-width: 560px; margin: 1.6rem auto; }
.hotovo .termin-velky { font-size: 1.6rem; font-weight: 600; color: var(--zelena-tmava); margin: 0; }
.do-kalendara { max-width: 560px; margin: 0 auto 1.6rem; }
.do-kalendara h2 { font-size: 1.1rem; margin: 0 0 .8rem; }
.do-kalendara .tlacidla { justify-content: center; }
.do-kalendara .tlacidlo { font-size: .98rem; padding: .7rem 1.2rem; }
.hotovo .drobne, .hotovo .uzky-text { max-width: 560px; margin-left: auto; margin-right: auto; }

/* ------------------------------------------------------------ administrácia */
.admin-telo { background: #f1f3f3; }
.admin-hlavicka { position: static; }
.admin-hlavicka .obal { max-width: none; }
.admin-hlavicka .znacka img { height: 42px; }
.admin-web { font-size: .95rem; }
.admin-rozlozenie { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 1.8rem; max-width: 1440px; margin: 0 auto; padding: 1.5rem 20px 4rem; align-items: start; }
.admin-rozlozenie.bez-menu { display: block; }
.admin-menu { position: sticky; top: 1rem; background: #fff; border-radius: var(--zaobl); padding: .6rem; box-shadow: var(--tien); }
.admin-menu ul { list-style: none; margin: 0; padding: 0; }
.admin-menu a, .admin-menu button {
  display: flex; align-items: center; gap: .7rem; width: 100%; padding: .65rem .8rem; border-radius: 10px;
  text-decoration: none; color: var(--text); font: inherit; font-size: 1rem; font-weight: 500; border: 0; background: none; cursor: pointer; text-align: left;
}
.admin-menu .ik { color: var(--tlmene); width: 1.15rem; height: 1.15rem; }
.admin-menu a:hover, .admin-menu button:hover { background: var(--pozadie-2); color: var(--text); }
.admin-menu a[aria-current="page"] { background: var(--pozadie-2); color: var(--text); font-weight: 600; box-shadow: inset 3px 0 0 var(--zlta-tmava); }
.admin-menu a[aria-current="page"] .ik { color: var(--text); }
.admin-menu form { display: block; border-top: 1px solid var(--ciara); margin-top: .4rem; padding-top: .4rem; }
.admin-menu .kto { font-size: .8rem; color: var(--tlmene); padding: .2rem .8rem 0; margin: 0; }
@media (max-width: 860px) {
  .admin-rozlozenie { grid-template-columns: 1fr; padding-top: 1rem; gap: 1rem; }
  .admin-menu { position: static; padding: .4rem; }
  .admin-menu ul { display: flex; flex-wrap: wrap; gap: .2rem; }
  .admin-menu a { padding: .5rem .7rem; font-size: .95rem; width: auto; }
  .admin-menu form { display: flex; align-items: center; justify-content: space-between; }
  .admin-menu form button { width: auto; }
}
.admin-obsah { min-width: 0; }
.admin-obsah h1 { font-size: clamp(1.6rem, 3vw, 2.1rem); margin: 0 0 1rem; }
.admin-obsah h2 { font-size: 1.3rem; margin: 1.4rem 0 .8rem; }
.admin-obsah .karta { margin-bottom: 1.2rem; }
.admin-obsah .karta > h2:first-child { font-size: 1.2rem; }
.admin-obsah form { display: inline; }
.admin-obsah form.formular { display: block; }
.admin-obsah form.mriezka { display: grid; }
.admin-obsah form.riadok { display: flex; }
.prihlasenie { max-width: 440px; margin: 3rem auto; }
.mriezka { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 0 1.2rem; align-items: end; }
.mriezka .siroke { grid-column: 1 / -1; }
.zaskrtnutie { display: flex; align-items: center; gap: .6rem; }
.formular .zaskrtnutie label { margin: 0; font-weight: 400; }
.zaskrtnutie input { width: 1.25rem; height: 1.25rem; accent-color: var(--zelena); flex: none; }
.riadok { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin: 0; }
.riadok label { font-weight: 500; }
.riadok input { width: auto; }

button {
  font: inherit; font-size: .95rem; font-weight: 500; padding: .45rem .9rem; border-radius: 8px; border: 1.5px solid #b8c6c4;
  background: #fff; color: var(--text); cursor: pointer; display: inline-flex; align-items: center; gap: .4rem; line-height: 1.2;
}
button:hover { border-color: #9fb3b0; color: var(--text); background: var(--pozadie-2); }
button .ik { width: 1em; height: 1em; }
.male-tl { display: inline-flex; align-items: center; gap: .35rem; font-size: .9rem; font-weight: 500; padding: .35rem .7rem; border-radius: 8px; border: 1.5px solid var(--ciara); text-decoration: none; color: var(--text); background: #fff; line-height: 1.2; }
.male-tl:hover { background: var(--pozadie-2); border-color: #9fb3b0; color: var(--text); }
.male-tl .ik { width: .95em; height: .95em; }
.male-tl.cervene { color: var(--cervena); border-color: #f0c8c5; }
.male-tl.cervene:hover { background: var(--cervena-svetla); border-color: var(--cervena); color: var(--cervena); }
.admin-obsah .tlacidlo { padding: .65rem 1.3rem; font-size: 1rem; }

/* prehľad dňa */
.den-hlavicka { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.den-hlavicka h1 { margin: 0; }
.den-hlavicka h1 small { display: block; font-size: .5em; color: var(--tlmene); font-weight: 500; text-transform: capitalize; }
.listovanie { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0; }
.listovanie > a { display: inline-flex; align-items: center; justify-content: center; min-width: 2.6rem; height: 2.6rem; padding: 0 .9rem; border-radius: 10px; background: #fff; border: 1.5px solid var(--ciara); text-decoration: none; color: var(--text); font-weight: 500; }
.listovanie > a:hover { border-color: #9fb3b0; }
.listovanie input[type=date] { width: auto; padding: .5rem .7rem; }
.tyzden { list-style: none; padding: 0; margin: 0 0 1.2rem; display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }
.tyzden a { display: block; text-align: center; padding: .5rem .2rem; background: #fff; border: 1.5px solid var(--ciara); border-radius: 12px; text-decoration: none; color: var(--tlmene); font-size: .85rem; line-height: 1.3; }
.tyzden a b { display: block; font-size: 1.05rem; color: var(--text); font-weight: 600; }
.tyzden a span { display: inline-block; margin-top: .2rem; min-width: 1.7rem; padding: 0 .4rem; border-radius: 999px; background: var(--pozadie-2); color: var(--text); font-weight: 600; font-size: .85rem; }
.tyzden a span.nula { background: transparent; color: #a2abaa; }
.tyzden a:hover { border-color: #9fb3b0; }
.tyzden a[aria-current] { background: var(--text); border-color: var(--text); color: #cfd6d5; }
.tyzden a[aria-current] b { color: #fff; }
.tyzden a[aria-current] span { background: var(--zlta); color: var(--text); }
.tyzden .dnes-den b::after { content: " •"; color: var(--zlta-tmava); }
@media (max-width: 560px) { .tyzden { gap: 3px; } .tyzden a { font-size: .7rem; padding: .35rem 0; } .tyzden a b { font-size: .9rem; } }

.statistika { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 1rem; padding: 0; list-style: none; align-items: center; }
.statistika li { display: inline-flex; align-items: center; gap: .45rem; background: #fff; border-radius: 999px; padding: .35rem .9rem; font-size: .95rem; box-shadow: var(--tien); }
.statistika b { font-size: 1.1rem; }
.statistika .ik { color: var(--tlmene); }
.statistika .prepinac { margin-left: auto; box-shadow: none; background: none; padding: 0; gap: .3rem; }
.prepinac a { padding: .35rem .8rem; border-radius: 999px; text-decoration: none; color: var(--tlmene); font-size: .9rem; border: 1.5px solid var(--ciara); background: #fff; }
.prepinac a[aria-current] { background: var(--text); border-color: var(--text); color: #fff; }

.os { list-style: none; margin: 0; padding: .4rem 0; background: #fff; border-radius: var(--zaobl); box-shadow: var(--tien); }
.os li { display: grid; grid-template-columns: 5.2rem minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding: .3rem 1rem; border-top: 1px solid #edf2f1; min-height: 2.4rem; }
.os li:first-child { border-top: 0; }
.os .hodina { border-top: 2px solid var(--ciara); }
.os .cas { font-variant-numeric: tabular-nums; color: var(--tlmene); font-size: .95rem; }
.os .hodina .cas { color: var(--text); font-weight: 600; }
.os .akcie { display: flex; gap: .4rem; justify-content: flex-end; flex-wrap: wrap; }
.os .volne .stav { color: #8d9796; font-size: .9rem; }
.os .volne .akcie { opacity: .55; transition: opacity .12s; }
.os .volne:hover { background: var(--pozadie-2); }
.os .volne:hover .akcie, .os .volne .akcie:focus-within { opacity: 1; }
.os .blokovane { background: repeating-linear-gradient(-45deg, #f7f8f8, #f7f8f8 7px, #eff1f1 7px, #eff1f1 14px); }
.os .blokovane .stav { color: var(--tlmene); font-size: .9rem; display: flex; align-items: center; gap: .4rem; }
.os .pokracuje { min-height: 1.8rem; background: #fbfdfc; }
.os .pokracuje .stav { color: var(--tlmene); font-size: .85rem; border-left: 4px solid var(--ciara); padding-left: .7rem; margin-left: .1rem; }
.os .obsadene { padding-top: .5rem; padding-bottom: .5rem; grid-template-columns: 5.2rem minmax(0, 1fr); }
.os .prazdny { display: block; padding: 2rem 1rem; text-align: center; color: var(--tlmene); }
.udalost { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .1rem 1rem; align-items: start; background: #fff; border: 1px solid var(--ciara); border-left: 4px solid #b8c4c2; border-radius: 10px; padding: .7rem 1rem; box-shadow: 0 1px 2px rgba(16, 60, 56, .05); }
.udalost.z-ambulancie { border-left-color: var(--zlta-tmava); }
.udalost.mimo { border-left-color: var(--cervena); }
.udalost .zviera { width: 2.6rem; height: 2.6rem; padding: .55rem; border-radius: 50%; background: var(--pozadie-2); color: #3d4847; grid-row: span 3; }
.udalost .meno, .udalost .sluzba-nazov, .udalost .detaily { grid-column: 2; }
.udalost .meno { font-weight: 600; font-size: 1.1rem; line-height: 1.25; }
.udalost .sluzba-nazov { color: #2c3a39; font-size: .98rem; }
.udalost .detaily { font-size: .85rem; color: var(--tlmene); }
.udalost .poznamka { display: block; margin-top: .3rem; background: var(--pozadie-2); border-radius: 6px; padding: .3rem .6rem; font-size: .95rem; }
.udalost .kontakt { grid-column: 3; grid-row: 1 / span 3; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; font-size: .95rem; text-align: right; }
.udalost .kontakt a { white-space: nowrap; }
.udalost .tel { display: inline-flex; align-items: center; gap: .35rem; font-weight: 600; background: var(--pozadie-2); color: var(--text); padding: .25rem .7rem; border-radius: 999px; text-decoration: none; }
.udalost .tel .ik { color: var(--tlmene); }
.udalost .kontakt a:not(.tel):not(.male-tl) { color: var(--tlmene); }
.udalost .poznamka.interna { background: var(--zlta-svetla); border: 1px dashed #e8cf5a; }
.udalost .poznamka.interna .ik { color: var(--tlmene); margin-right: .35rem; }
.akcie-karty { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }
.stitok { display: inline-block; font-size: .75rem; font-weight: 600; padding: .05rem .5rem; border-radius: 999px; background: #fff; color: var(--tlmene); vertical-align: .1em; }
.stitok.cerveny { background: var(--cervena); color: #fff; }
@media (max-width: 700px) {
  .os li, .os .obsadene { grid-template-columns: 3.4rem minmax(0, 1fr); padding: .35rem .6rem; }
  .os .akcie { grid-column: 2; justify-content: flex-start; }
  .os .volne .akcie { opacity: 1; }
  .os .volne, .os .blokovane { grid-template-columns: 3.4rem minmax(0, 1fr) auto; }
  .os .volne .akcie, .os .blokovane .akcie { grid-column: 3; }
  .udalost { grid-template-columns: auto minmax(0, 1fr); }
  .udalost .kontakt { grid-row: auto; grid-column: 1 / -1; align-items: flex-start; text-align: left; flex-direction: row; flex-wrap: wrap; margin-top: .4rem; }
}

.panel { border: 1.5px solid #9fb3b0; scroll-margin-top: 1rem; }
.panel > h2:first-child .ik { color: var(--tlmene); }
.admin-obsah .karta > h2 .ik { color: var(--tlmene); }

.zoznam { border-collapse: collapse; width: 100%; background: #fff; border-radius: var(--zaobl); overflow: hidden; box-shadow: var(--tien); margin: 0 0 1.2rem; }
.zoznam th, .zoznam td { text-align: left; vertical-align: middle; padding: .65rem .9rem; border-bottom: 1px solid #edf2f1; }
.zoznam tbody tr:last-child td, .zoznam tbody tr:last-child th { border-bottom: 0; }
.zoznam thead th { background: var(--pozadie-2); font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--tlmene); font-weight: 600; }
.zoznam .akcie { text-align: right; white-space: nowrap; }
.zoznam tbody tr:hover { background: #fafcfc; }
.zrusena td { color: #8a8a8a; }
.zrusena td:first-child a { text-decoration: line-through; }
.rozvrh input[type=time] { width: 8.5rem; }
.rozvrh input[type=checkbox] { width: 1.25rem; height: 1.25rem; accent-color: var(--zelena); }
.rozvrh th[scope=row] { text-transform: capitalize; font-weight: 600; }
.posuvne { overflow-x: auto; }

.admin-obsah form.sluzba { display: grid; grid-template-columns: auto minmax(0, 2fr) minmax(0, 1.2fr) minmax(0, 1.3fr) 4.8rem 4.8rem auto auto; gap: .3rem 1rem; align-items: end; background: #fff; border-radius: 14px; padding: .9rem 1rem; margin-bottom: .7rem; box-shadow: var(--tien); }
.admin-obsah form.sluzba p { margin: 0; }
.admin-obsah form.sluzba label { font-size: .8rem; color: var(--tlmene); margin-bottom: .15rem; }
.admin-obsah form.sluzba .zaskrtnutie label { font-size: .9rem; color: var(--text); }
.admin-obsah form.sluzba .zviera { width: 2.6rem; height: 2.6rem; padding: .55rem; border-radius: 50%; background: var(--pozadie-2); color: #3d4847; align-self: center; }
.admin-obsah form.sluzba.skryta { opacity: .6; }
@media (max-width: 1150px) { .admin-obsah form.sluzba { grid-template-columns: 1fr 1fr; } .admin-obsah form.sluzba .siroke { grid-column: 1 / -1; } .admin-obsah form.sluzba .zviera { display: none; } }

.vynimky-dna { list-style: none; padding: 0; margin: 0 0 1rem; }
.vynimky-dna li { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; padding: .5rem 0; border-bottom: 1px solid #edf2f1; }
.zrusene { list-style: none; padding: 0; margin: 0; }
.zrusene li { padding: .4rem 0; border-bottom: 1px solid #edf2f1; color: var(--tlmene); }
.zrusene li:last-child { border-bottom: 0; }

.os .obsadene { align-items: start; }
.os .obsadene > .cas { padding-top: .85rem; }
/* karta rezervácie v prehľade dňa — rozloženie (meno ↔ kontakt, služba ↔ tlačidlá, poznámky na celú šírku) */
.udalost {
  grid-template-columns: 2.6rem minmax(0, 1fr) auto; column-gap: 1rem; row-gap: .1rem; align-items: center;
  grid-template-areas: "ikona meno kontakt" "ikona sluzba akcie" "ikona detaily akcie" ". poznamky poznamky";
}
.udalost .zviera { grid-area: ikona; align-self: start; }
.udalost .meno { grid-area: meno; }
.udalost .sluzba-nazov { grid-area: sluzba; }
.udalost .detaily { grid-area: detaily; }
.udalost .kontakt { grid-area: kontakt; flex-direction: row; align-items: center; justify-content: flex-end; gap: .9rem; }
.udalost .akcie-karty { grid-area: akcie; align-self: center; justify-content: flex-end; }
.udalost .poznamky { grid-area: poznamky; display: flex; flex-direction: column; gap: .35rem; margin-top: .6rem; }
.udalost .poznamky .poznamka { margin: 0; }
@media (max-width: 700px) {
  .udalost { grid-template-columns: 2.6rem minmax(0, 1fr);
    grid-template-areas: "ikona meno" "ikona sluzba" "ikona detaily" "poznamky poznamky" "kontakt kontakt" "akcie akcie"; }
  .udalost .kontakt, .udalost .akcie-karty { justify-content: flex-start; flex-wrap: wrap; margin-top: .5rem; }
}

/* ------------------------------------------------------------ verejná časť: plochý vzhľad
   Bez rámikov a zaoblení — plochy odlišuje svetlosivé pozadie. Oblé ostávajú len tlačidlá,
   okrúhle fotky tímu a krúžky ikoniek. */
body:not(.admin-telo) { --plocha: #f2f4f4; --plocha-2: #e7ebea; }
body:not(.admin-telo) :is(.karta, .osoba, .kalendar, .info, .oznam, .chyba, .ok, .sluzby a, .casy label,
  .kalendar a, .kalendar .plno, .ukony li, .galeria img, .sirka img, .osoba img, .lupa img, .udalost,
  input, select, textarea, .legenda span::before) { border-radius: 0; }
body:not(.admin-telo) :is(.karta, .osoba, .kalendar, .galeria a:hover img) { box-shadow: none; }

body:not(.admin-telo) .karta { border: 0; background: var(--plocha); }
body:not(.admin-telo) .karta-zlta { background: var(--zlta-svetla); }
body:not(.admin-telo) .osoba { border: 0; background: var(--plocha); }
body:not(.admin-telo) .hodiny th, body:not(.admin-telo) .hodiny td { border-bottom-color: #dde2e1; }

body:not(.admin-telo) .ukony li { background: var(--plocha); color: var(--text); }
body:not(.admin-telo) .ukony .ik { color: var(--tlmene); }
body:not(.admin-telo) .ukony li:has(a):hover { background: var(--zlta-svetla); }
body:not(.admin-telo) .obsah-sluzieb li { background: #fff; }

body:not(.admin-telo) .info, body:not(.admin-telo) .oznam, body:not(.admin-telo) .chyba, body:not(.admin-telo) .ok { border: 0; border-left: 4px solid; }
body:not(.admin-telo) .info { background: var(--plocha); border-left-color: #b9c3c2; }
body:not(.admin-telo) .oznam { border-left-color: var(--zlta-tmava); }
body:not(.admin-telo) .chyba { border-left-color: var(--cervena); }
body:not(.admin-telo) .ok { border-left-color: var(--zlta-tmava); background: var(--plocha); color: var(--text); }

/* rezervácia */
body:not(.admin-telo) .sluzby a { border: 0; background: var(--plocha); }
body:not(.admin-telo) .sluzby a:hover, body:not(.admin-telo) .sluzby a:focus-visible { background: var(--zlta-svetla); box-shadow: none; transform: none; }
body:not(.admin-telo) .sluzby .zviera { background: #fff; }
body:not(.admin-telo) .sluzby a:hover .zviera { background: var(--zlta); color: var(--text); }
body:not(.admin-telo) .kalendar { border: 0; background: none; padding: 0; border-spacing: 4px; }
body:not(.admin-telo) .kalendar a { border: 0; background: var(--plocha); }
body:not(.admin-telo) .kalendar a:hover, body:not(.admin-telo) .kalendar a:focus-visible { background: var(--zlta); }
body:not(.admin-telo) .kalendar .plno { background: none; }
body:not(.admin-telo) .kalendar .dnes { box-shadow: inset 0 -3px 0 var(--text); }
body:not(.admin-telo) .legenda span::before { border: 0; background: var(--plocha); }
body:not(.admin-telo) .casy label { border: 0; background: var(--plocha); }
body:not(.admin-telo) .casy label:hover { background: var(--plocha-2); }
body:not(.admin-telo) .casy input:checked + label { background: var(--zlta); box-shadow: none; }
body:not(.admin-telo) .suhrn-zoznam li { border-bottom: 1px solid #dde2e1; }
body:not(.admin-telo) .suhrn-zoznam .ik { background: #fff; }
body:not(.admin-telo) .sluzba-popis .ik.velka { background: var(--plocha); }
body:not(.admin-telo) .odoslat { border-top-color: #dde2e1; }

/* polia: biele na sivej ploche, len spodná čiara */
body:not(.admin-telo) :is(input[type=text], input[type=tel], input[type=email], input[type=password], input[type=search],
  input[type=date], input[type=time], input[type=number], select, textarea) {
  border: 0; border-bottom: 2px solid #8f9b9a; background: #fff;
}
body:not(.admin-telo) :is(input, select, textarea):focus { border-bottom-color: var(--text); box-shadow: none; }
body:not(.admin-telo) input:user-invalid { border-bottom-color: var(--cervena); background: #fff6f5; }

/* ------------------------------------------------------------ administrácia: plochý, hranatý vzhľad
   (len admin — verejná časť ostáva zaoblená). Svetlosivé plochy, tmavá a žltá na zvýraznenie, bez tieňov. */
.admin-telo { --text: #111; --a-tmava: #111; --a-plocha: #dcdee0; --a-plocha-2: #edeef0; --a-ciara: #c3c6c9; --tlmene: #45484c; background: #e3e4e6; color: var(--text); }
.admin-telo *, .admin-telo *::before, .admin-telo *::after { border-radius: 0 !important; }
.admin-telo .karta, .admin-telo .os, .admin-telo .zoznam, .admin-telo .admin-menu, .admin-telo .statistika li,
.admin-telo .udalost, .admin-telo form.sluzba, .admin-telo .tlacidlo, .admin-telo .panel { box-shadow: none; }
.admin-telo .karta { border: 0; }
.admin-telo .panel { border: 0; border-top: 4px solid var(--zlta); }
.admin-telo .info, .admin-telo .ok, .admin-telo .chyba { border: 0; border-left: 4px solid; }
.admin-telo .info { background: #fff; border-left-color: #71767a; }
.admin-telo .karta .info { background: var(--a-plocha-2); }
.admin-telo .ok { background: #fff; border-left-color: var(--zlta); color: var(--text); }
.admin-telo .ok .ik { color: var(--a-tmava); }
.admin-telo .chyba { border-left-color: var(--cervena); }
.admin-telo .info .ik { color: var(--tlmene); }
.admin-telo input[type=checkbox] { accent-color: var(--a-tmava); }
.admin-telo .admin-menu form button { background: none; }
.admin-telo .admin-menu form button:hover { background: var(--a-plocha); color: var(--text); }

/* menu */
.admin-telo .admin-menu { padding: 0; }
.admin-telo .admin-menu a, .admin-telo .admin-menu button { padding: .75rem 1rem; }
.admin-telo .admin-menu a:hover, .admin-telo .admin-menu button:hover { background: var(--a-plocha); }
.admin-telo .admin-menu a[aria-current="page"] { background: var(--a-tmava); color: #fff; box-shadow: none; }
.admin-telo .admin-menu a[aria-current="page"] .ik { color: var(--zlta); }
.admin-telo .admin-menu form { margin: 0; padding: .3rem 0; border-top: 1px solid var(--a-ciara); }

/* polia a tlačidlá */
.admin-telo input[type=text], .admin-telo input[type=tel], .admin-telo input[type=email], .admin-telo input[type=password],
.admin-telo input[type=search], .admin-telo input[type=date], .admin-telo input[type=time], .admin-telo input[type=number],
.admin-telo select, .admin-telo textarea { border: 1px solid #71767a; background: #fff; padding: .6rem .75rem; }
.admin-telo input:focus, .admin-telo select:focus, .admin-telo textarea:focus { border-color: var(--a-tmava); box-shadow: inset 0 0 0 1px var(--a-tmava); background: #fff; }
.admin-telo button, .admin-telo .male-tl { border: 0; background: var(--a-plocha); color: var(--text); font-weight: 500; }
.admin-telo button:hover, .admin-telo .male-tl:hover { background: var(--a-tmava); color: #fff; }
.admin-telo .male-tl.cervene { background: #f6e3e1; color: var(--cervena); }
.admin-telo .male-tl.cervene:hover { background: var(--cervena); color: #fff; }
.admin-telo .tlacidlo { border: 0; background: var(--zlta); color: var(--text); transform: none; }
.admin-telo .tlacidlo:hover { background: var(--a-tmava); color: #fff; transform: none; box-shadow: none; }
.admin-telo .tlacidlo-cervene { background: var(--cervena); color: #fff; }

/* prehľad dňa */
.admin-telo .listovanie > a { border: 0; background: #fff; }
.admin-telo .listovanie button { background: #fff; }
.admin-telo .listovanie button:hover { background: var(--a-tmava); color: #fff; }
.admin-telo .listovanie > a:hover { background: var(--a-tmava); color: #fff; }
.admin-telo .tyzden { gap: 2px; }
.admin-telo .tyzden a { border: 0; background: #fff; color: var(--tlmene); }
.admin-telo .tyzden a:hover { background: var(--a-plocha-2); }
.admin-telo .tyzden a span { background: var(--a-plocha); color: var(--text); }
.admin-telo .tyzden a span.nula { background: transparent; color: #686c70; }
.admin-telo .tyzden a[aria-current] span { background: var(--zlta); }
.admin-telo .tyzden a[aria-current] { background: var(--a-tmava); color: #fff; }
.admin-telo .statistika li { background: #fff; }
.admin-telo .statistika .prepinac { background: none; gap: 0; }
.admin-telo .prepinac a { border: 0; background: #fff; color: var(--text); }
.admin-telo .prepinac a[aria-current] { background: var(--a-tmava); color: #fff; }
.admin-telo .os { padding: 0; }
.admin-telo .os li { border-top-color: #eef0f0; }
.admin-telo .os .hodina { border-top: 1px solid #bdc0c3; }
.admin-telo .os .volne .stav { color: #686c70; }
.admin-telo .os .volne:hover { background: var(--a-plocha-2); }
.admin-telo .udalost { border: 0; border-left: 3px solid #bdc0c3; background: #f8f8f9; padding: .8rem 1.1rem; }
.admin-telo .udalost.z-ambulancie { border-left-color: var(--zlta-tmava); }
.admin-telo .udalost.mimo { border-left-color: var(--cervena); }
.admin-telo .udalost .zviera { background: #ededef; }
.admin-telo form.sluzba .zviera { background: #fff; }
.admin-telo .udalost .poznamka { background: #eff0f1; }
.admin-telo .udalost .tel { background: #ededef; }
.admin-telo .udalost .poznamka.interna { background: var(--zlta-svetla); border: 0; border-left: 3px solid var(--zlta-tmava); }
.admin-telo .stitok { background: var(--a-plocha); }
.admin-telo .stitok.cerveny { background: var(--cervena); }

/* pacient neprišiel */
.admin-telo .udalost.neprisiel { border-left-color: var(--cervena); background: #fbf3f2; }
.admin-telo .udalost.neprisiel .meno { text-decoration: line-through; text-decoration-color: rgba(179, 38, 30, .5); }
.admin-telo .udalost.neprisiel .meno .stitok { text-decoration: none; }
.admin-telo .stitok.varovanie { background: #fdf0c4; color: #6b4e00; display: inline-flex; align-items: center; gap: .3rem; }
.admin-telo .stitok.varovanie .ik { width: .9em; height: .9em; }
.admin-telo .zoznam .neprisiel td { background: #fbf3f2; }
.admin-telo .akcie-karty form { display: inline; }

/* tlačidlo a vedľa neho odkaz („zapísať  zrušiť“, „uložiť  späť“) — nech nie sú nalepené */
.admin-obsah p:has(> .tlacidlo, > button) { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; }
.admin-obsah :is(.tlacidlo, button) + a { margin-left: 1.4rem; }
.admin-obsah p:has(> .tlacidlo, > button) > :is(.tlacidlo, button) + a { margin-left: 0; }

/* zabezpečenie */
.admin-telo .postup { padding-left: 1.3rem; }
.admin-telo .postup li { margin-bottom: .7rem; }
.admin-telo .kluc { display: inline-block; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.25rem; letter-spacing: .08em; background: var(--a-plocha-2); padding: .4rem .8rem; margin: .4rem 0; user-select: all; }
.admin-telo .zalozne-kody { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); gap: .4rem; }
.admin-telo .zalozne-kody li { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.1rem; background: var(--a-plocha-2); padding: .4rem .6rem; text-align: center; user-select: all; }
.admin-telo .zalohy { list-style: none; padding: 0; margin: 0 0 1rem; }
.admin-telo .zalohy li { padding: .35rem 0; border-bottom: 1px solid #eef0f0; }
.admin-telo .zalohy a { display: inline-flex; align-items: center; gap: .4rem; }
.admin-telo .zoznam .vyrazne td { background: #fdf3d6; }
.admin-telo form.riadok.inline { display: inline-flex; }
.admin-telo form.riadok.inline input { width: 9rem; padding: .35rem .5rem; }
.admin-telo .prihlasenie h1 .ik { width: .8em; height: .8em; }

/* tabuľky a služby */
.admin-telo .zoznam thead th { background: var(--a-tmava); color: #fff; }
.admin-telo .zoznam th, .admin-telo .zoznam td { border-bottom-color: #eef0f0; }
.admin-telo form.sluzba { border: 0; }

@media print {
  .hlavicka, .admin-menu, .tyzden, .listovanie, .statistika, .pata, .akcie, .pod-tabulkou, .panel, .ok, .chyba { display: none !important; }
  .admin-rozlozenie { display: block; padding: 0; }
  .os .volne, .os .blokovane { display: none; }
  .os, .udalost { box-shadow: none; }
  body, .admin-telo { background: #fff; font-size: 11pt; }
}
