/* Wspólne style panelu Active-Fizjo */
:root { --granat:#1b1f4b; --fiolet:#6b4fbb; --tlo:#f4f5fa; --linia:#e4e6f0; }
* { box-sizing:border-box; }
body { margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; background:var(--tlo); color:#1c2030; }

/* Nagłówek + nawigacja */
header.top { background:var(--granat); color:#fff; padding:0 20px; display:flex; align-items:center; gap:22px; height:56px; }
header.top .logo { width:24px; height:24px; border-radius:6px; background:linear-gradient(135deg,#6b4fbb,#4a8de0); }
header.top .marka { font-size:15px; font-weight:700; }
header.top nav { display:flex; gap:4px; margin-left:8px; }
header.top nav a { color:#c9cce0; text-decoration:none; font-size:14px; font-weight:600; padding:8px 14px; border-radius:8px; }
header.top nav a:hover { background:rgba(255,255,255,.08); color:#fff; }
header.top nav a.aktywny { background:var(--fiolet); color:#fff; }
header.top .spacer { margin-left:auto; }

/* Przyciski */
.btn { border:0; border-radius:8px; padding:9px 14px; font-size:14px; cursor:pointer; font-weight:600; }
.btn-primary { background:var(--fiolet); color:#fff; } .btn-primary:hover { background:#5a3fa8; }
.btn-ghost { background:transparent; color:#4a5069; }
.btn-mini { padding:5px 10px; font-size:12px; }

/* Układ */
.wrap { display:flex; gap:16px; padding:16px; align-items:flex-start; }
.panel { background:#fff; border:1px solid var(--linia); border-radius:12px; padding:14px 16px; }
.filtry { width:230px; flex:0 0 auto; }
.filtry h2 { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:#7a8098; margin:0 0 10px; }
.filtry label { display:flex; align-items:center; gap:9px; padding:6px 4px; font-size:14px; cursor:pointer; border-radius:8px; }
.filtry label:hover { background:var(--tlo); }
.kropka { width:10px; height:10px; border-radius:50%; flex:0 0 auto; }
.cal { flex:1 1 auto; min-width:0; }
.podpowiedz { font-size:12px; color:#8890a5; margin-top:12px; line-height:1.5; }

/* FullCalendar */
#kalendarz { --fc-border-color:var(--linia); --fc-today-bg-color:#f0edfb; font-size:13px; }
.fc .fc-toolbar-title { font-size:18px; color:var(--granat); }
.fc .fc-button-primary { background:var(--fiolet); border-color:var(--fiolet); }
.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active { background:var(--granat); border-color:var(--granat); }
.fc-event { cursor:pointer; }
.fc .ev { line-height:1.25; overflow:hidden; padding:1px 2px; }
.fc .ev-czas { font-size:10px; opacity:.85; }
.fc .ev-tyt { font-weight:600; font-size:11px; white-space:normal; }
.fc .ev-ter { font-size:10px; opacity:.95; font-style:italic; margin-top:1px; }
#kalendarz.bez-terapeuty .ev-ter { display:none; }

/* Modal (ogólny) */
.maska { position:fixed; inset:0; background:rgba(20,22,45,.45); display:none; align-items:center; justify-content:center; z-index:50; }
.maska.on { display:flex; }
.modal { background:#fff; border-radius:14px; padding:22px; width:380px; max-width:92vw; box-shadow:0 20px 60px rgba(0,0,0,.25); max-height:88vh; overflow:auto; }
.modal h3 { margin:0 0 16px; color:var(--granat); font-size:17px; }
.pole { margin-bottom:12px; }
.pole label { display:block; font-size:12px; color:#6b7288; margin-bottom:4px; font-weight:600; }
.pole input, .pole select, .pole textarea { width:100%; padding:9px 10px; border:1px solid var(--linia); border-radius:8px; font-size:14px; background:#fff; font-family:inherit; }
.pole.dwa { display:flex; gap:10px; } .pole.dwa > div { flex:1; }
.pole input[type=checkbox], .pole input[type=radio] { width:auto; flex:0 0 auto; }
.akcje { display:flex; gap:8px; justify-content:flex-end; margin-top:8px; }
.komunikat { font-size:13px; color:#c0392b; min-height:16px; margin-top:2px; }

/* Formularz „Nowa wizyta" — STAŁY rozmiar (nie skacze), dwie kolumny, przewijanie w środku */
.wizyta-modal { width:600px; height:600px; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; }
.wizyta-modal > h3, .wizyta-modal > .komunikat, .wizyta-modal > .akcje { flex:0 0 auto; }
.wizyta-cols { display:flex; gap:18px; align-items:flex-start; flex:1 1 auto; overflow:auto; }
.wizyta-cols .col-l { flex:1 1 0; min-width:0; }
.wizyta-cols .col-r { flex:0 0 250px; }
#f_sloty { max-height:150px; overflow:auto; }
@media (max-width:640px){
  .wizyta-cols { flex-direction:column; gap:0; }
  .wizyta-cols .col-r { flex:none; width:100%; }
}

/* Karta klienta */
.klient-modal { width:460px; }
.klient-naglowek { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.klient-awatar { width:44px; height:44px; border-radius:50%; background:var(--fiolet); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:16px; flex:0 0 auto; }
.klient-naglowek .imie { font-size:18px; font-weight:700; color:var(--granat); }
.kontakt { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.chip { background:var(--tlo); border:1px solid var(--linia); border-radius:20px; padding:5px 12px; font-size:13px; color:#3a4059; }
.sekcja-tyt { font-size:12px; text-transform:uppercase; letter-spacing:.04em; color:#7a8098; margin:16px 0 8px; }
.wiz { display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid var(--linia); font-size:13px; }
.wiz:last-child { border-bottom:0; }
.wiz .data { width:120px; color:#3a4059; flex:0 0 auto; }
.wiz .usl { flex:1 1 auto; }
.wiz .cena { color:#6b7288; }
.badge { font-size:11px; padding:2px 8px; border-radius:12px; font-weight:600; }
.badge.akceptacja { background:#e5f6ec; color:#1c8a4c; }
.badge.anulowana { background:#fdeaea; color:#c0392b; }
.badge.nieobecnosc { background:#fff3e0; color:#b26a00; }
.pusto { color:#9aa1b5; font-size:13px; padding:6px 0; }

/* Lista klientów */
.szukajka { display:flex; gap:10px; margin-bottom:14px; }
.szukajka input { flex:1; padding:10px 12px; border:1px solid var(--linia); border-radius:9px; font-size:14px; }
table.klienci { width:100%; border-collapse:collapse; font-size:14px; }
table.klienci th { text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:.03em; color:#8890a5; padding:8px 10px; border-bottom:2px solid var(--linia); }
table.klienci td { padding:10px; border-bottom:1px solid var(--linia); }
table.klienci tr { cursor:pointer; }
table.klienci tbody tr:hover { background:var(--tlo); }
.link { color:var(--fiolet); font-weight:600; }

/* Akcje kontaktu (zadzwoń / napisz / kopiuj) */
.kontakt-row { display:flex; gap:6px; align-items:center; }
.kontakt-row input { flex:1; min-width:0; }
.btn-akcja { border:1px solid var(--linia); background:#fff; color:var(--fiolet); border-radius:8px; padding:8px 10px; font-size:13px; cursor:pointer; white-space:nowrap; font-weight:600; text-decoration:none; display:inline-block; }
.btn-akcja.wyl { color:#b8bdcc; pointer-events:none; }

/* Autouzupełnianie klienta */
.ac-lista { position:absolute; left:0; right:0; top:100%; margin-top:4px; background:#fff; border:1px solid var(--linia); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.12); z-index:20; max-height:230px; overflow:auto; display:none; }
.ac-lista.on { display:block; }
.ac-item { padding:9px 12px; cursor:pointer; font-size:14px; }
.ac-item:hover { background:var(--tlo); }
.ac-item small { color:#8890a5; margin-left:6px; }
.ac-nowy { color:var(--fiolet); font-weight:600; border-top:1px solid var(--linia); }

/* Przyciski statusu wizyty */
.status-btny { display:flex; gap:6px; flex-wrap:wrap; }
.stbtn { padding:7px 12px; border:1px solid var(--linia); border-radius:8px; background:#fff; cursor:pointer; font-size:13px; }
.stbtn:hover { background:var(--tlo); }
.stbtn.on { background:var(--fiolet); color:#fff; border-color:var(--fiolet); font-weight:600; }

/* Wolne godziny (sloty) */
.sloty { display:flex; flex-wrap:wrap; gap:6px; }
.slot { padding:6px 10px; border:1px solid var(--linia); border-radius:8px; cursor:pointer; font-size:13px; background:#fff; }
.slot:hover { background:var(--tlo); }
.slot.wybrany { background:var(--fiolet); color:#fff; border-color:var(--fiolet); font-weight:600; }
.sloty-info { font-size:12px; color:#8890a5; }

/* Mini-kalendarz wyboru daty */
.kal { user-select:none; }
.kal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.kal-head b { color:var(--granat); font-size:14px; text-transform:capitalize; }
.kal-nav { background:var(--tlo); border:1px solid var(--linia); border-radius:6px; width:30px; height:30px; cursor:pointer; font-size:16px; color:var(--granat); }
.kal-nav:hover { background:#e9e6f6; }
.kal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.kal-grid .dow { text-align:center; font-size:11px; color:#8890a5; padding:3px 0; font-weight:600; }
.kal-grid .day { text-align:center; padding:8px 0; border-radius:8px; cursor:pointer; font-size:13px; }
.kal-grid .day:hover { background:var(--tlo); }
.kal-grid .day.pusty { visibility:hidden; cursor:default; }
.kal-grid .day.wybrany { background:var(--fiolet); color:#fff; font-weight:700; }
.kal-grid .day.dzis { box-shadow:inset 0 0 0 1px var(--fiolet); }
.pole input.godzina-input { width:110px; text-align:center; font-size:16px; letter-spacing:1px; font-weight:700;
  background:var(--fiolet); color:#fff; border-color:var(--fiolet); }
.godzina-input::placeholder { color:rgba(255,255,255,.65); }

/* Numer telefonu: prefiks + cyfry */
.tel-combo { display:flex; gap:6px; align-items:center; flex:1; min-width:0; }
.tel-prefix { flex:0 0 auto; width:120px; padding:9px 6px; border:1px solid var(--linia); border-radius:8px; font-size:14px; background:#fff; }
/* przebij .pole select/input { width:100% } — inaczej prefiks zabiera całą szerokość */
.pole select.tel-prefix, .kontakt-row select.tel-prefix { width:120px; flex:0 0 auto; }
.tel-combo input, .kontakt-row #k_telefon { flex:1 1 auto; min-width:0; width:auto; }
.btn-akcja:hover { background:var(--tlo); }
.btn-akcja:disabled { color:#b8bdcc; cursor:default; }
