/* Gabinet — arkusz stylów. Paleta i typografia wg brandbooka (sekcja 3.2 / 3.3). */
:root{
  --zielen:#2D4A32;
  --szalwia:#8A9A7B;
  --papier:#F6F5EF;
  --zloto:#C9A86A;
  --grafit:#2B2B28;
  --linia:#DEDBCE;
  --biel:#FFFFFF;
  --blad:#8E3B2F;
  --serif:"Cormorant Garamond",Lora,Georgia,"Times New Roman",serif;
  --sans:"Source Sans 3",Lato,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --r:10px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--papier);color:var(--grafit);
  font-family:var(--sans);font-size:16px;line-height:1.6;
}
h1,h2,h3{font-family:var(--serif);color:var(--zielen);font-weight:600;line-height:1.25;margin:0 0 .4em}
h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.15rem}
a{color:var(--zielen);text-decoration-color:var(--zloto);text-underline-offset:3px}
a:hover{color:var(--zloto)}

/* ---------- pasek górny ---------- */
.pasek{
  display:flex;align-items:center;gap:1.2rem;flex-wrap:wrap;
  padding:.7rem 1.2rem;background:var(--zielen);color:var(--papier);
  position:sticky;top:0;z-index:20;
  padding-top:calc(.7rem + env(safe-area-inset-top));
}
.marka{display:flex;align-items:center;gap:.7rem;text-decoration:none;color:var(--papier);line-height:1.1}
.marka .znak{display:block;height:40px;width:auto;flex:none}
.marka-tekst{display:flex;flex-direction:column}
.marka-nazwa{font-family:var(--serif);font-size:1.15rem}
.marka-pod{font-size:.62rem;letter-spacing:.34em;text-transform:uppercase;color:var(--szalwia)}
@media(max-width:640px){.marka-tekst{display:none}}
.nawigacja{display:flex;gap:.35rem;flex-wrap:wrap}
.nawigacja a{
  color:var(--papier);text-decoration:none;padding:.4rem .8rem;border-radius:99px;
  font-size:.95rem;border:1px solid transparent
}
.nawigacja a:hover{border-color:var(--szalwia);color:var(--papier)}
.nawigacja a.akt{background:var(--papier);color:var(--zielen)}
.szukajka{margin-left:auto}
.szukajka input{
  border:1px solid var(--szalwia);background:rgba(255,255,255,.08);color:var(--papier);
  border-radius:99px;padding:.4rem .9rem;min-width:200px;font-family:inherit
}
.szukajka input::placeholder{color:rgba(246,245,239,.6)}
.konto{display:flex;gap:.8rem;align-items:center}
.konto a{color:var(--szalwia);text-decoration:none;font-size:.9rem}
.konto a:hover{color:var(--zloto)}

/* ---------- układ ---------- */
.tresc{max-width:1000px;margin:0 auto;padding:1.8rem 1.2rem 4rem}
.tresc.szeroka{max-width:1400px}
.stopka{text-align:center;color:var(--szalwia);font-size:.78rem;padding:1.5rem 1rem 2.5rem}
.naglowek-strony{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem}
.naglowek-strony .akcje{margin-left:auto;display:flex;gap:.5rem;flex-wrap:wrap}
.podtytul{color:var(--szalwia);font-size:.9rem;margin:-.2em 0 0}

/* ---------- karty ---------- */
.karta{
  background:var(--biel);border:1px solid var(--linia);border-radius:var(--r);
  padding:1.3rem 1.4rem;margin-bottom:1.2rem
}
.karta > h2:first-child,.karta > h3:first-child{margin-top:0}
.karta-naglowek{display:flex;align-items:center;gap:.8rem;margin-bottom:.9rem;flex-wrap:wrap}
.karta-naglowek h2,.karta-naglowek h3{margin:0}
.karta-naglowek .akcje{margin-left:auto;display:flex;gap:.4rem}

/* ---------- przyciski ---------- */
.btn{
  display:inline-block;border:1px solid var(--zielen);background:var(--zielen);color:var(--papier);
  padding:.5rem 1.1rem;border-radius:99px;font-family:inherit;font-size:.95rem;
  cursor:pointer;text-decoration:none;line-height:1.4;-webkit-appearance:none
}
.btn:hover{background:#253d2a;color:var(--papier)}
.btn.duchowy{background:transparent;color:var(--zielen)}
.btn.duchowy:hover{background:rgba(138,154,123,.15);color:var(--zielen)}
.btn.zloty{background:var(--zloto);border-color:var(--zloto);color:#2B2B28}
.btn.czerwony{background:transparent;border-color:var(--blad);color:var(--blad)}
.btn.czerwony:hover{background:var(--blad);color:#fff}
.btn.maly{padding:.3rem .8rem;font-size:.85rem}

/* ---------- formularze ---------- */
label{display:block;font-size:.82rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--szalwia);margin-bottom:.25rem}
input[type=text],input[type=password],input[type=date],input[type=search],
input[type=email],input[type=tel],select,textarea{
  width:100%;padding:.55rem .75rem;border:1px solid var(--linia);border-radius:8px;
  background:var(--biel);font-family:inherit;font-size:1rem;color:var(--grafit)
}
textarea{min-height:5.5rem;resize:vertical;line-height:1.55}
input:focus,select:focus,textarea:focus{outline:2px solid var(--szalwia);outline-offset:1px;border-color:var(--szalwia)}
.pole{margin-bottom:1rem}
.pola-2{display:grid;grid-template-columns:1fr 1fr;gap:0 1rem}
.pola-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 1rem}
.pola-4{display:grid;grid-template-columns:repeat(4,1fr);gap:0 1rem}
@media(max-width:760px){.pola-2,.pola-3,.pola-4{grid-template-columns:1fr}}
.wskazowka{font-size:.8rem;color:var(--szalwia);margin-top:.25rem;text-transform:none;letter-spacing:0}
.pasek-zapisu{
  position:sticky;bottom:0;background:var(--papier);border-top:1px solid var(--linia);
  padding:.9rem 0;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
  padding-bottom:calc(.9rem + env(safe-area-inset-bottom))
}

/* ---------- komunikaty ---------- */
.flash{border-radius:8px;padding:.7rem 1rem;margin-bottom:1rem;border:1px solid}
.flash.ok{background:rgba(138,154,123,.16);border-color:var(--szalwia);color:var(--zielen)}
.flash.blad{background:rgba(142,59,47,.1);border-color:var(--blad);color:var(--blad)}

/* ---------- tabele ---------- */
table.tab{width:100%;border-collapse:collapse;background:var(--biel)}
table.tab th{
  text-align:left;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--szalwia);border-bottom:1px solid var(--linia);padding:.6rem .7rem;font-weight:600
}
table.tab td{padding:.65rem .7rem;border-bottom:1px solid var(--linia);vertical-align:top}
table.tab tr:last-child td{border-bottom:none}
table.tab tbody tr:hover{background:rgba(138,154,123,.07)}
.opakowanie-tabeli{border:1px solid var(--linia);border-radius:var(--r);overflow:hidden}

/* ---------- plakietki ---------- */
.plakietka{
  display:inline-block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;
  padding:.15rem .6rem;border-radius:99px;border:1px solid var(--szalwia);color:var(--zielen);
  background:rgba(138,154,123,.12);white-space:nowrap
}
.plakietka.zloto{border-color:var(--zloto);background:rgba(201,168,106,.18)}
.plakietka.szara{border-color:var(--linia);color:var(--szalwia);background:transparent}

/* ---------- kalendarz tygodnia ---------- */
.tydzien{display:grid;grid-template-columns:repeat(5,1fr);gap:.8rem}
@media(max-width:900px){.tydzien{grid-template-columns:1fr}}
.dzien{background:var(--biel);border:1px solid var(--linia);border-radius:var(--r);overflow:hidden}
.dzien h3{
  margin:0;padding:.6rem .8rem;background:rgba(138,154,123,.16);font-size:1rem;
  display:flex;justify-content:space-between;align-items:baseline;gap:.5rem
}
.dzien h3 small{font-family:var(--sans);font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--szalwia)}
.slot{display:flex;gap:.6rem;padding:.5rem .8rem;border-top:1px solid var(--linia);font-size:.92rem;align-items:baseline}
.slot .godz{font-variant-numeric:tabular-nums;color:var(--szalwia);min-width:3.2rem;font-size:.85rem}
.slot .kto{flex:1}
.slot.pusty .kto{color:#B9B6AA;font-style:italic}
.slot.zebranie{background:rgba(201,168,106,.12)}

/* ---------- podgląd pacjenta ---------- */
.definicje{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:.15rem 1.2rem}
.definicje dt{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--szalwia);padding-top:.45rem}
.definicje dd{margin:0;padding:.35rem 0;border-bottom:1px solid var(--linia)}
.definicje dd:last-child{border-bottom:none}
@media(max-width:700px){.definicje{grid-template-columns:1fr}.definicje dd{padding-bottom:.7rem}}
.pusto{color:#B9B6AA;font-style:italic}
.miniatury{display:flex;gap:.8rem;flex-wrap:wrap}
.miniatura{display:block;width:220px;border:1px solid var(--linia);border-radius:8px;
  overflow:hidden;background:var(--biel);text-decoration:none;color:var(--grafit)}
.miniatura img{display:block;width:100%;height:150px;object-fit:contain;background:#fff}
.miniatura span{display:block;padding:.4rem .6rem;font-size:.85rem;border-top:1px solid var(--linia)}
.lista-sesji{list-style:none;margin:0;padding:0}
.lista-sesji li{border-bottom:1px solid var(--linia);padding:.7rem 0;display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap}
.lista-sesji li:last-child{border-bottom:none}
.lista-sesji .nr{font-family:var(--serif);font-size:1.1rem;color:var(--zielen);min-width:3rem}
.lista-sesji .temat{flex:1;min-width:200px}

/* ---------- logowanie ---------- */
body.goly{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.2rem}
.panel-logowania{background:var(--biel);border:1px solid var(--linia);border-radius:var(--r);
  padding:2.2rem;max-width:380px;width:100%}
.panel-logowania .znak-duzy{display:block;height:80px;width:auto;margin:0 auto 1.1rem}
.panel-logowania h1{font-size:1.5rem;margin-bottom:.2em;text-align:center}
.panel-logowania .haslo-marki{text-align:center}
.panel-logowania .haslo-marki{font-family:var(--serif);font-style:italic;color:var(--szalwia);margin:0 0 1.6rem}

/* ---------- edytor genogramu ---------- */
.geno-uklad{display:flex;flex-direction:column;gap:.8rem}
.geno-narzedzia{
  display:flex;gap:.4rem;flex-wrap:wrap;align-items:center;background:var(--biel);
  border:1px solid var(--linia);border-radius:var(--r);padding:.6rem .7rem;
  position:sticky;top:60px;z-index:10
}
.geno-narzedzia .grupa{display:flex;gap:.25rem;align-items:center;padding-right:.5rem;
  border-right:1px solid var(--linia);margin-right:.25rem}
.geno-narzedzia .grupa:last-child{border-right:none}
.nrz{
  border:1px solid var(--linia);background:var(--biel);border-radius:8px;min-width:42px;height:40px;
  padding:0 .55rem;cursor:pointer;font-size:1.05rem;font-family:inherit;color:var(--grafit);
  display:inline-flex;align-items:center;justify-content:center;gap:.3rem;touch-action:manipulation
}
.nrz:hover{border-color:var(--szalwia)}
.nrz.akt{background:var(--zielen);color:var(--papier);border-color:var(--zielen)}
.nrz.maly{font-size:.85rem;height:34px;min-width:34px}
.geno-etykieta{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--szalwia);margin-right:.3rem}
.geno-plotno{
  background:var(--biel);border:1px solid var(--linia);border-radius:var(--r);
  overflow:auto;-webkit-overflow-scrolling:touch;position:relative
}
#plotno{display:block;touch-action:none;cursor:crosshair;background:#fff}
.geno-status{font-size:.82rem;color:var(--szalwia)}
