@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;0,700;1,600;1,700&display=swap');
:root{--ink:#292522;--muted:#827b75;--line:#e9e3dc;--paper:#fff;--bg:#f7f5f2;--accent:#b65e68;--accent-dark:#984650;--soft:#f8ecec;--green:#4d8b68;--shadow:0 16px 50px #49372a0d}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"DM Sans",Arial,sans-serif}.topbar{height:68px;padding:0 max(24px,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#ffffffd9}.brand{text-decoration:none;color:var(--accent);font-family:"Playfair Display",serif;font-size:24px;font-weight:700}.brand span{color:var(--ink);font-size:17px;margin-left:7px}.admin-link{color:var(--muted);font-size:13px;text-decoration:none}.admin-link:hover{color:var(--accent)}.wrap,.admin-wrap{max-width:1000px;margin:0 auto;padding:44px 22px 20px}.hero{text-align:center;padding:12px 0 30px}.hero h1{font:700 clamp(34px,5vw,52px)/1.1 "Playfair Display",serif;margin:10px 0}.hero h1 em{color:var(--accent)}.hero p{margin:8px 0}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:var(--accent)}.muted{color:var(--muted);font-size:14px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:28px;margin-bottom:22px;box-shadow:var(--shadow)}.section-heading{display:flex;align-items:center;gap:14px;margin:4px 0 20px}.section-heading:not(:first-child){margin-top:34px}.step{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-size:12px;font-weight:700}.section-heading h2{font:600 20px "Playfair Display",serif;margin:0}.section-heading p{font-size:12px;color:var(--muted);margin:3px 0 0}.profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.profile-card{border:1px solid var(--line);border-radius:13px;padding:14px;text-align:left;background:white;cursor:pointer;transition:.15s}.profile-card:hover,.profile-card.selected{border-color:var(--accent);background:#fffafb;box-shadow:0 0 0 2px #b65e6815}.profile-card img{width:100%;height:110px;object-fit:cover;border-radius:8px;background:var(--bg);margin-bottom:10px}.profile-card strong{display:block}.profile-card small{display:block;color:var(--muted);margin-top:4px}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:18px;margin:12px 0 18px;flex-wrap:wrap}.calendar-toolbar h3{font:600 18px "Playfair Display",serif;min-width:160px;text-align:center;margin:0}.icon-btn{border:1px solid var(--line);background:white;width:34px;height:34px;border-radius:50%;font-size:23px;color:var(--ink);cursor:pointer}.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.weekday{text-align:center;color:var(--muted);font-size:11px;padding:7px 0}.day{border:1px solid var(--line);background:white;border-radius:10px;min-height:74px;padding:9px;text-align:left;cursor:pointer;position:relative;color:var(--ink)}.day:disabled{cursor:default;opacity:.45}.day.available:after{content:"";width:6px;height:6px;background:var(--green);border-radius:50%;position:absolute;bottom:9px;left:10px}.day.busy{background:#faf8f6;color:#aaa}.day.selected{border:2px solid var(--accent);background:var(--soft)}.day.today .day-num{color:var(--accent);font-weight:700}.day-num{font-size:13px}.legend{display:flex;gap:18px;flex-wrap:wrap;margin:15px 0;color:var(--muted);font-size:11px}.legend span{display:flex;align-items:center;gap:6px}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot.available{background:var(--green)}.dot.busy{background:#aaa}.dot.selected{background:var(--accent)}.time-panel{border:1px solid var(--line);border-radius:12px;padding:18px;margin-top:18px;background:#fdfcfb}.time-panel h3{font:600 16px "Playfair Display",serif;margin:0 0 14px}.time-slots{display:flex;gap:8px;flex-wrap:wrap}.time-slot{border:1px solid var(--line);background:white;border-radius:8px;padding:9px 14px;cursor:pointer}.time-slot.selected{background:var(--accent);border-color:var(--accent);color:white}.time-slot:disabled{opacity:.35;cursor:not-allowed;text-decoration:line-through}label{display:block;font-size:12px;font-weight:600;color:#5e5751}input,textarea,select{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:9px;padding:12px 13px;font:400 14px "DM Sans",sans-serif;color:var(--ink);background:white;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b65e6812}textarea{resize:vertical}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.full{grid-column:1/-1}.primary,.secondary{border:0;border-radius:9px;padding:12px 18px;font:600 13px "DM Sans",sans-serif;cursor:pointer}.primary{background:var(--accent);color:white}.primary:hover{background:var(--accent-dark)}.secondary{background:var(--soft);color:var(--accent)}.wide{width:100%;margin-top:20px}.status{font-size:12px;color:var(--accent);min-height:16px}.hidden{display:none!important}footer{text-align:center;color:#aaa;font:italic 13px "Playfair Display",serif;padding:25px}.compact{padding-bottom:12px}.login-panel{max-width:420px;margin:0 auto 25px}.admin-wrap{max-width:1180px}.admin-actions{display:flex;justify-content:flex-end;margin-bottom:12px}.admin-toolbar{justify-content:flex-start}.view-switch{margin-left:auto;display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.view-switch button{border:0;background:white;padding:8px 12px;font-size:11px;cursor:pointer}.view-switch button.active{background:var(--soft);color:var(--accent)}.filter-label{max-width:260px;margin-bottom:15px}.admin-calendar .day{min-height:105px;overflow:hidden}.day-events{display:block;margin-top:6px;font-size:10px;line-height:1.4;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.event-list{margin-top:18px;display:grid;gap:8px}.event-item,.manage-item{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.event-item small,.manage-item small{display:block;color:var(--muted);margin-top:4px}.danger{border:1px solid #efd3d3;background:#fff8f8;color:#a13e48;border-radius:7px;padding:7px 10px;cursor:pointer;font-size:11px}.admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-columns .panel{margin:0}.stack{display:grid;gap:13px}.manage-list{display:grid;gap:8px;margin-top:16px}.subheading{font:600 15px "Playfair Display",serif;margin:24px 0 10px}.filter-label select{max-width:100%}
@media(max-width:650px){.wrap,.admin-wrap{padding:25px 13px}.panel{padding:18px}.form-grid,.admin-columns{grid-template-columns:1fr}.full{grid-column:auto}.day{min-height:54px;padding:7px}.admin-calendar .day{min-height:80px}.day-events{font-size:9px}.weekday{font-size:9px}.calendar{gap:4px}.topbar{padding:0 15px}.hero{padding-top:5px}.view-switch{width:100%;margin:8px 0 0}.view-switch button{flex:1}}

/* Tygodniowy grafik administratora */
.schedule-days{display:grid;gap:12px;margin:18px 0}
.schedule-day{border:1px solid #e6dfe2;border-radius:12px;padding:14px}
.schedule-day-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.schedule-ranges{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.schedule-range{display:flex;flex-wrap:wrap;align-items:end;gap:8px;background:#faf6f7;border-radius:10px;padding:10px}
.schedule-range label{font-size:13px;min-width:95px}
.schedule-range select{display:block;width:100%;margin-top:4px}
@media(max-width:520px){.schedule-day-head{align-items:start;flex-direction:column}.schedule-range{width:100%}}
