:root{
 --bg:#f7f2ec;--surface:#fffdf9;--surface2:#f1e7dc;--text:#33241d;--muted:#7b6a61;
 --line:#e4d5c7;--accent:#c7773d;--accent2:#e3a45f;--accent-soft:#f5e1cf;--gold:#c99747;
 --danger:#b34d4d;--success:#4f7f61;--warning:#a86f24;--shadow:0 12px 34px rgba(84,52,34,.10);
 --sidebar:#2d201b;--sidebar-text:#f6eee6;--sidebar-muted:#bdaea2;--radius:18px;
}
html[data-theme="dark"]{
 --bg:#171310;--surface:#211a16;--surface2:#2b211c;--text:#f1e8df;--muted:#b9a99e;
 --line:#403127;--accent:#e19151;--accent2:#f0b36e;--accent-soft:#3a271d;--gold:#d7ac5c;
 --danger:#df7272;--success:#76ad89;--warning:#e0a456;--shadow:0 14px 36px rgba(0,0,0,.30);
 --sidebar:#100d0b;--sidebar-text:#f7eee6;--sidebar-muted:#aa9b91;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:none}.app-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--sidebar),#211711);color:var(--sidebar-text);display:flex;flex-direction:column;padding:18px 14px;z-index:50;box-shadow:10px 0 30px rgba(45,25,15,.08)}
.brand{display:flex;align-items:center;gap:12px;color:var(--sidebar-text);padding:7px 8px 20px}.brand img{width:54px;height:54px;object-fit:contain;border-radius:16px;background:#fff;padding:3px;box-shadow:0 5px 18px rgba(0,0,0,.2)}.brand strong{display:block;font-size:1.15rem;letter-spacing:.02em}.brand small{display:block;color:#e3b078;margin-top:3px}.nav{display:flex;flex-direction:column;gap:4px;overflow:auto;padding-right:3px}.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:12px;color:var(--sidebar-muted);font-weight:600;transition:.16s}.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.nav-link.active{color:#fff;background:linear-gradient(100deg,rgba(212,128,65,.30),rgba(209,155,78,.13));box-shadow:inset 3px 0 var(--accent2)}.nav-icon{width:23px;text-align:center;font-size:1.15rem;color:#e5ae70}.nav-sep{height:1px;background:rgba(255,255,255,.09);margin:8px 5px}.sidebar-foot{margin-top:auto;padding:14px 9px 3px;display:flex;justify-content:space-between;color:#95867b;font-size:.75rem}
.main-wrap{min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{min-height:78px;display:flex;align-items:center;gap:16px;padding:13px clamp(16px,2.5vw,34px);background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:30;backdrop-filter:blur(14px)}.page-heading{min-width:0;margin-right:auto}.page-heading h1{font-size:clamp(1.25rem,2vw,1.7rem);margin:0;line-height:1.15}.page-heading span{color:var(--muted);font-size:.82rem}.top-actions{display:flex;align-items:center;gap:10px}.icon-btn{border:1px solid var(--line);background:var(--surface);color:var(--text);width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:1.15rem}.icon-btn:hover{border-color:var(--accent);color:var(--accent)}.menu-toggle{display:none}.user-chip{display:flex;align-items:center;gap:9px;padding:4px 9px 4px 4px;border-radius:14px;background:var(--surface2)}.avatar{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--gold));color:white;font-weight:800}.user-meta strong,.user-meta small{display:block}.user-meta strong{font-size:.83rem}.user-meta small{font-size:.7rem;color:var(--muted)}
.content{width:min(1540px,100%);margin:0 auto;padding:clamp(18px,3vw,36px);flex:1}.footer{display:flex;justify-content:space-between;gap:16px;padding:17px clamp(20px,3vw,36px);color:var(--muted);font-size:.78rem;border-top:1px solid var(--line)}
.grid{display:grid;gap:18px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;min-width:0}.card h2,.card h3{margin:0 0 14px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.card-head h2,.card-head h3{margin:0}.stat-card{position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;width:88px;height:88px;border-radius:50%;right:-22px;top:-28px;background:var(--accent-soft)}.stat-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}.stat-value{font-size:clamp(1.55rem,3vw,2.2rem);font-weight:800;margin:8px 0 3px}.stat-note{color:var(--muted);font-size:.8rem}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:24px;align-items:center;padding:26px;background:linear-gradient(120deg,var(--surface),var(--accent-soft));border-radius:24px;border:1px solid var(--line);box-shadow:var(--shadow);margin-bottom:22px}.hero h2{font-size:clamp(1.55rem,3.3vw,2.65rem);margin:0 0 9px;line-height:1.05}.hero p{color:var(--muted);font-size:1rem;max-width:700px}.hero img{width:100%;max-height:190px;object-fit:contain;border-radius:16px}.quick-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.btn{appearance:none;border:1px solid transparent;border-radius:11px;padding:10px 15px;font:inherit;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:.15s;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--accent),#b86632);color:#fff}.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-secondary{background:var(--surface2);color:var(--text);border-color:var(--line)}.btn-secondary:hover{border-color:var(--accent)}.btn-danger{background:var(--danger);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-ghost{background:transparent;color:var(--text);border-color:var(--line)}.btn-sm{padding:7px 10px;font-size:.82rem;border-radius:9px}.btn-block{width:100%}
.toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.toolbar-group{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.search{min-width:min(100%,280px)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-group{min-width:0}.form-group.full{grid-column:1/-1}.form-group label{display:block;font-size:.78rem;font-weight:800;color:var(--muted);margin:0 0 6px}.input,.select,.textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);padding:10px 12px;font:inherit;outline:none}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent)}.textarea{min-height:120px;resize:vertical}.help{color:var(--muted);font-size:.76rem;margin-top:5px}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:17px;height:17px;accent-color:var(--accent)}.form-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:14px}.table{width:100%;border-collapse:collapse;min-width:760px;background:var(--surface)}.table th,.table td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--line);font-size:.84rem;vertical-align:middle}.table th{position:sticky;top:0;background:var(--surface2);color:var(--muted);font-size:.73rem;text-transform:uppercase;letter-spacing:.04em;z-index:1}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 40%,var(--surface))}.actions{display:flex;gap:6px;justify-content:flex-end}.nowrap{white-space:nowrap}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:800;background:var(--surface2);border:1px solid var(--line)}.badge-success{color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--surface))}.badge-danger{color:var(--danger);background:color-mix(in srgb,var(--danger) 10%,var(--surface))}.badge-warning{color:var(--warning);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}.badge-accent{color:var(--accent);background:var(--accent-soft)}
.alert{position:relative;border-radius:12px;padding:12px 42px 12px 14px;margin:0 0 18px;border:1px solid var(--line);background:var(--surface)}.alert-success{border-color:color-mix(in srgb,var(--success) 50%,var(--line));background:color-mix(in srgb,var(--success) 8%,var(--surface))}.alert-danger{border-color:color-mix(in srgb,var(--danger) 50%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.alert-warning{border-color:color-mix(in srgb,var(--warning) 50%,var(--line));background:color-mix(in srgb,var(--warning) 8%,var(--surface))}.alert-close{position:absolute;right:8px;top:5px;border:0;background:transparent;color:inherit;font-size:1.4rem;cursor:pointer}.empty{padding:32px;text-align:center;color:var(--muted)}
.login-body{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 10% 10%,#f0c896 0,transparent 32%),radial-gradient(circle at 90% 80%,#bd6b3d 0,transparent 28%),#2b1c15}.login-card{width:min(980px,100%);display:grid;grid-template-columns:1.15fr .85fr;background:#fffdf9;border-radius:28px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.3)}.login-brand{background:#fbf3eb;padding:36px;display:flex;flex-direction:column;justify-content:center}.login-brand img{width:100%;max-height:320px;object-fit:contain}.login-brand p{color:#7f6657;text-align:center;margin-top:14px}.login-panel{padding:clamp(28px,5vw,52px);display:flex;flex-direction:column;justify-content:center;color:#33241d}.login-panel h1{margin:0 0 7px}.login-panel>p{color:#7b6a61;margin:0 0 26px}.login-panel .input{background:#fff;border-color:#dfd0c2;color:#33241d}.login-panel .form-group{margin-bottom:14px}.login-panel .help{color:#7b6a61}.login-panel .alert{color:#33241d}
.timeline{display:grid;gap:10px}.timeline-item{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.timeline-time{font-weight:800;color:var(--accent)}.timeline-main strong{display:block}.timeline-main small{color:var(--muted)}
.kpi-row{display:flex;gap:9px;flex-wrap:wrap}.kpi{padding:9px 11px;border-radius:10px;background:var(--surface2);font-size:.8rem}.kpi strong{display:block;font-size:1rem;color:var(--accent)}.logo-about{display:grid;grid-template-columns:1fr 180px;gap:24px;align-items:center}.logo-about .clinic-logo{width:100%;max-height:270px;object-fit:contain}.eneral-box{text-align:center;padding:14px;border-left:1px solid var(--line)}.eneral-box img{max-width:130px;max-height:170px;object-fit:contain}.eneral-box small{display:block;color:var(--muted);margin-top:8px}.code-box{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:var(--surface2);border:1px dashed var(--accent);padding:12px;border-radius:10px}.recovery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.recovery-code{font-family:monospace;font-weight:800;padding:8px;background:var(--surface2);border-radius:8px;text-align:center}
.pagination{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:16px}.pagination a,.pagination span{min-width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.pagination .current{background:var(--accent);color:#fff;border-color:var(--accent)}
.sidebar-backdrop{display:none}
@media(max-width:1100px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr}.hero img{max-height:150px}.user-meta{display:none}}
@media(max-width:860px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(82vw,280px);transform:translateX(-102%);transition:transform .2s ease}.sidebar.open{transform:translateX(0)}.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:45}.menu-toggle{display:grid;place-items:center}.topbar{padding:11px 14px}.content{padding:16px}.footer{padding:14px 16px}.top-actions .btn{display:none}.form-grid,.form-grid.cols-3{grid-template-columns:1fr}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.login-card{grid-template-columns:1fr;max-width:560px}.login-brand{padding:20px}.login-brand img{max-height:180px}.logo-about{grid-template-columns:1fr}.eneral-box{border-left:0;border-top:1px solid var(--line)}.timeline-item{grid-template-columns:62px 1fr}.timeline-item>.badge{grid-column:2}.toolbar{align-items:stretch}.toolbar-group{width:100%}.toolbar-group>.form-group,.toolbar-group>.search{flex:1 1 160px}}
@media(max-width:520px){.page-heading span{display:none}.user-chip{display:none}.top-actions{gap:6px}.content{padding:12px}.card{padding:15px;border-radius:15px}.hero{padding:17px}.hero p{font-size:.9rem}.quick-actions .btn{flex:1 1 100%}.form-actions .btn{flex:1 1 140px}.table{min-width:680px}.footer{display:block;text-align:center}.footer span{display:block;margin:3px}.recovery-grid{grid-template-columns:1fr}.login-panel{padding:28px 20px}}
@media print{.sidebar,.topbar,.footer,.no-print,.sidebar-backdrop{display:none!important}.app-shell{display:block}.content{padding:0;max-width:none}.card{box-shadow:none;border:0}.table-wrap{overflow:visible;border:0}.table{min-width:0}body{background:#fff;color:#000}}


/* eGabinet 1.1 - rejestracja online i terminarz */
.btn-lg{padding:13px 20px;font-size:1rem;border-radius:13px}

.public-body{min-height:100vh;background:linear-gradient(180deg,#fffaf4 0,#f8efe5 60%,#f4e7d8 100%);color:#33241d}
.public-topbar{width:min(1180px,calc(100% - 32px));margin:0 auto;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.public-brand{display:flex;align-items:center;gap:11px;color:#33241d}.public-brand img{width:52px;height:52px;object-fit:contain;border-radius:15px;background:#fff;padding:3px;box-shadow:0 8px 24px rgba(84,52,34,.12)}.public-brand strong,.public-brand small{display:block}.public-brand strong{font-size:1.1rem}.public-brand small{font-size:.76rem;color:#8c6f5d;margin-top:2px}
.public-main{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:24px 0 64px}.public-hero{min-height:560px;display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}.public-hero-copy h1{font-size:clamp(2.5rem,6vw,5rem);line-height:.96;margin:10px 0 18px;color:#3b261d}.public-hero-copy p{font-size:1.08rem;line-height:1.7;color:#795d4c;max-width:650px}.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.13em;font-size:.74rem;font-weight:900;color:#b46c3a}.public-actions{display:flex;gap:11px;flex-wrap:wrap;margin:26px 0 22px}.public-trust{display:flex;gap:14px;flex-wrap:wrap;color:#806554;font-size:.82rem}.public-trust span{padding:8px 10px;background:rgba(255,255,255,.62);border:1px solid #ead7c5;border-radius:999px}.public-hero-logo img{width:100%;max-height:500px;object-fit:contain;filter:drop-shadow(0 24px 36px rgba(92,55,29,.16))}
.public-section{padding:40px 0}.section-heading{text-align:center;max-width:700px;margin:0 auto 24px}.section-heading h2{font-size:clamp(1.8rem,4vw,2.7rem);margin:8px 0}.public-step{background:rgba(255,253,249,.86)}.public-step h3{margin:12px 0 8px}.public-step p{color:#7b6558;line-height:1.6}.step-no{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#f4dfc9;color:#ad6938;font-weight:900}
.public-footer{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:22px 0 28px;border-top:1px solid #e8d8c8;display:flex;justify-content:space-between;color:#866d5e;font-size:.8rem}

.public-booking-main{max-width:none}.booking-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:22px 0 26px}.booking-header h1{font-size:clamp(2rem,5vw,3.5rem);margin:7px 0 9px}.booking-header p{color:#7b6558;line-height:1.6;max-width:680px}.booking-header img{width:100px;height:100px;object-fit:contain}.booking-picker .form-actions{margin-top:14px}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}.slot-choice input{position:absolute;opacity:0;pointer-events:none}.slot-choice span{display:grid;place-items:center;padding:12px 10px;border:1px solid #dfc9b8;border-radius:12px;background:#fffaf5;color:#4a3328;font-weight:800;cursor:pointer;transition:.15s}.slot-choice input:checked+span{background:linear-gradient(135deg,#c7773d,#b86632);border-color:#b86632;color:#fff;box-shadow:0 8px 22px rgba(184,102,50,.24)}.slot-choice span:hover{border-color:#c7773d;transform:translateY(-1px)}.booking-contact{margin-top:26px;padding-top:22px;border-top:1px solid #ead9ca}.booking-contact h3{font-size:1.3rem;margin:0 0 16px}.privacy-check{margin-top:16px;align-items:flex-start;line-height:1.5;color:#6f584a}.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.booking-success{text-align:center;max-width:720px;margin:70px auto;padding:46px}.booking-success h1{font-size:clamp(2rem,5vw,3.2rem);margin:12px 0}.booking-success p{color:#7a6253;line-height:1.7}.success-icon{width:72px;height:72px;border-radius:24px;display:grid;place-items:center;background:#e4f2e8;color:#4f7f61;font-size:2.2rem;font-weight:900;margin:0 auto 14px}

.schedule-table{margin-top:22px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.schedule-row{display:grid;grid-template-columns:1.35fr .7fr 1fr 1fr;gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid var(--line)}.schedule-row:last-child{border-bottom:0}.schedule-head{background:var(--surface2);color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800}.schedule-disabled{background:color-mix(in srgb,var(--surface2) 65%,var(--surface));color:var(--muted)}

.booking-admin-grid{grid-template-columns:minmax(300px,.85fr) minmax(0,1.4fr)}.booking-request-list{display:grid;gap:8px}.booking-request-item{display:grid;grid-template-columns:58px 1fr auto;gap:12px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}.booking-request-item:hover,.booking-request-item.active{border-color:var(--accent);background:var(--accent-soft)}.booking-request-date{text-align:center}.booking-request-date strong,.booking-request-date span{display:block}.booking-request-date strong{color:var(--accent);font-size:1rem}.booking-request-date span{font-size:.78rem;color:var(--muted)}.booking-request-main strong,.booking-request-main small{display:block}.booking-request-main small{color:var(--muted);margin-top:3px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.detail-grid .full{grid-column:1/-1}.booking-note{margin-top:6px;padding:12px;border-radius:11px;background:var(--surface2);line-height:1.6}.decision-box{margin-top:22px;border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--surface2)}.decision-box p{margin:5px 0 0;color:var(--muted);font-size:.82rem}.decision-box .form-actions{margin:0;padding:0;border:0}

.calendar-toolbar .badge{margin-left:4px;background:rgba(255,255,255,.2)}.calendar-period{font-size:1.05rem;min-width:160px}.calendar-month{padding:0;overflow:hidden}.calendar-weekdays{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));background:var(--surface2);border-bottom:1px solid var(--line)}.calendar-weekdays div{padding:11px 10px;text-align:center;color:var(--muted);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-right:1px solid var(--line)}.calendar-weekdays div:last-child{border-right:0}.calendar-month-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.calendar-day{min-height:180px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}.calendar-day:nth-child(6n){border-right:0}.calendar-day.outside{background:color-mix(in srgb,var(--surface2) 45%,var(--surface));opacity:.72}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--accent)}.calendar-day-head{display:flex;justify-content:space-between;align-items:center;color:var(--text);padding:3px 3px 8px}.calendar-day-head strong{font-size:1.1rem}.calendar-day-head span{font-size:.66rem;color:var(--muted)}.calendar-events{display:grid;gap:5px}.calendar-event{display:grid;grid-template-columns:auto 1fr;gap:6px 8px;padding:6px 7px;border-radius:8px;border-left:3px solid var(--accent);background:var(--accent-soft);color:var(--text);font-size:.72rem;min-width:0}.calendar-event>span{font-weight:900;color:var(--accent)}.calendar-event strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event small{grid-column:2;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-pending{border-left-color:var(--warning)!important;background:color-mix(in srgb,var(--warning) 12%,var(--surface))!important}.event-block{border-left-color:#7c6f68!important;background:color-mix(in srgb,#7c6f68 10%,var(--surface))!important}.event-done{border-left-color:var(--success)!important;background:color-mix(in srgb,var(--success) 10%,var(--surface))!important}.event-cancelled{opacity:.58;text-decoration:line-through}
.calendar-week{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.calendar-week-day.today{box-shadow:0 0 0 2px var(--accent),var(--shadow)}.calendar-list{display:grid;gap:8px}.calendar-list-item{display:grid;grid-template-columns:62px 1fr;gap:10px;padding:10px;border:1px solid var(--line);border-radius:11px;background:var(--surface2);color:var(--text)}.calendar-list-time{font-weight:900;color:var(--accent)}.calendar-list-time small,.calendar-list-item>div:last-child small{display:block;color:var(--muted);font-size:.7rem;margin-top:2px}.empty.compact{padding:18px}.calendar-day-layout{grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr)}.day-timeline{display:grid;gap:9px}.day-event{display:grid;grid-template-columns:72px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:var(--surface2)}.day-event-time{font-weight:900;color:var(--accent)}.day-event-time small,.day-event-main small{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}.day-event-main strong{display:block}

@media(max-width:1100px){.public-hero{grid-template-columns:1fr;min-height:0;padding:36px 0}.public-hero-logo{order:-1}.public-hero-logo img{max-height:280px}.booking-admin-grid,.calendar-day-layout{grid-template-columns:1fr}.calendar-week{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){.calendar-month{overflow:auto}.calendar-weekdays,.calendar-month-grid{min-width:900px}.calendar-week{grid-template-columns:1fr}.schedule-row{grid-template-columns:1fr 1fr}.schedule-head{display:none}.schedule-row strong{grid-column:1/-1}.public-topbar{min-height:68px}.public-main{padding-top:10px}.booking-header img{width:72px;height:72px}}
@media(max-width:620px){.public-topbar{width:min(100% - 22px,1180px)}.public-main,.public-footer{width:min(100% - 22px,1180px)}.public-brand small{display:none}.public-hero-copy h1{font-size:2.65rem}.public-actions .btn{width:100%}.public-footer{display:block;text-align:center}.public-footer span{display:block;margin:4px}.booking-header{align-items:flex-start}.booking-header img{display:none}.slot-grid{grid-template-columns:repeat(3,1fr)}.detail-grid{grid-template-columns:1fr}.detail-grid .full{grid-column:auto}.decision-box{align-items:stretch;flex-direction:column}.booking-request-item{grid-template-columns:52px 1fr}.booking-request-item>.badge{grid-column:2;justify-self:start}.schedule-row{grid-template-columns:1fr}.schedule-row strong{grid-column:auto}.calendar-toolbar{display:block}.calendar-toolbar .toolbar-group{margin-bottom:9px}.day-event{grid-template-columns:60px 1fr}.day-event>form,.day-event>span:last-child{grid-column:2}.slot-grid{gap:8px}}


/* ==========================================================
   MFA / TOTP - lokalny kod QR
   ========================================================== */

.mfa-setup-grid {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 28px;
    align-items: start;
    margin: 20px 0 24px;
}

.mfa-qr-section {
    min-width: 0;
}

.mfa-qr-box {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 248px;
    min-height: 248px;

    padding: 14px;
    margin-top: 8px;

    background: #fff;

    border:
        1px solid
        rgba(0, 0, 0, 0.12);

    border-radius: 14px;
}

#mfa-qrcode {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 220px;
    min-height: 220px;
}

#mfa-qrcode img,
#mfa-qrcode canvas {
    display: block;

    width: 220px !important;
    height: 220px !important;

    max-width: 100%;
}

.mfa-manual-section {
    min-width: 0;
}

.mfa-manual-section .code-box {
    margin-top: 8px;

    word-break: break-all;
    overflow-wrap: anywhere;
}

.mfa-uri-details {
    margin-top: 18px;
}

.mfa-uri-details summary {
    cursor: pointer;
}

@media (max-width: 760px) {

    .mfa-setup-grid {
        grid-template-columns: 1fr;
    }

    .mfa-qr-section {
        text-align: center;
    }

    .mfa-qr-box {
        margin-left: auto;
        margin-right: auto;
    }
}

/* ==========================================================
   MFA QR - dopasowanie rozmiaru
   ========================================================== */

.mfa-qr-box {
    width: 230px;
    min-width: 230px;
    height: 230px;
    min-height: 230px;
    padding: 15px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

#mfa-qrcode {
    width: 198px;
    height: 198px;
    min-width: 198px;
    min-height: 198px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#mfa-qrcode img,
#mfa-qrcode canvas {
    display: block;
    width: 198px !important;
    height: 198px !important;
    max-width: 198px !important;
    max-height: 198px !important;
}

@media (max-width: 760px) {
    .mfa-qr-box {
        margin-left: auto;
        margin-right: auto;
    }
}

/* ==========================================================
   MFA QR - finalne dopracowanie
   ========================================================== */

#mfa-qrcode {
    width: 190px;
    height: 190px;
    min-width: 190px;
    min-height: 190px;
}

#mfa-qrcode img,
#mfa-qrcode canvas {
    width: 190px !important;
    height: 190px !important;
    max-width: 190px !important;
    max-height: 190px !important;
}

.mfa-manual-section .code-box {
    font-size: 13px;
    line-height: 1.5;
    word-break: normal;
    overflow-wrap: anywhere;
}

.mfa-setup-grid {
    grid-template-columns: 250px minmax(270px, 1fr);
}

@media (max-width: 760px) {
    .mfa-setup-grid {
        grid-template-columns: 1fr;
    }
}


/* ==========================================================
   PUBLIC SITE - HOME + BOOKING 2026-09-03
   ========================================================== */

/* Wszystkie publiczne podstrony mają tę samą szerokość */
.public-booking-main {
    max-width: none;
}

.section-heading p {
    color: #7b6558;
    line-height: 1.7;
    margin: 10px auto 0;
    max-width: 720px;
}

.public-specialties,
.public-service-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.public-specialty,
.public-service-card {
    height: 100%;
}

.public-specialty-icon {
    width: 46px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    background: #f4dfc9;
    color: #ad6938;
    font-weight: 900;
    margin-bottom: 14px;
}

.public-specialty p,
.public-info-card p {
    color: #7b6558;
    line-height: 1.65;
}

.public-service-type {
    color: #b46c3a;
    text-transform: uppercase;
    letter-spacing: .09em;
    font-weight: 900;
    font-size: .7rem;
    margin-bottom: 8px;
}

.public-service-card h3 {
    min-height: 2.7em;
}

.public-service-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 18px 0 14px;
    padding-top: 14px;
    border-top: 1px solid #ead9ca;
    color: #806554;
}

.public-service-meta strong {
    color: #3b261d;
}

.public-service-link {
    font-weight: 800;
}

.public-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.public-info-card h3 {
    font-size: 1.35rem;
    margin-top: 10px;
}

.public-hours {
    display: grid;
    gap: 0;
    margin-top: 10px;
}

.public-hours > div {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 0;
    border-bottom: 1px solid #ead9ca;
}

.public-hours > div:last-child {
    border-bottom: 0;
}

.public-hours span {
    color: #7b6558;
}

.public-bottom-cta {
    display: flex;
    justify-content: center;
    margin-top: 26px;
}

.public-booking-info {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 20px;
}

.booking-info-item {
    padding: 16px 18px;
    border: 1px solid #e5d3c2;
    border-radius: 14px;
    background: rgba(255,253,249,.78);
}

.booking-info-item strong,
.booking-info-item > span:last-child,
.booking-info-item a {
    display: block;
}

.booking-info-item strong {
    margin: 7px 0 5px;
}

.booking-info-item > span:last-child {
    color: #7b6558;
    font-size: .82rem;
}

.booking-info-item a {
    margin-top: 5px;
    font-size: .82rem;
    font-weight: 800;
}

.booking-picker-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}


@media(max-width:900px) {
    .public-specialties,
    .public-service-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .booking-picker-grid {
        grid-template-columns: 1fr;
    }
}


@media(max-width:700px) {
    .public-specialties,
    .public-service-grid,
    .public-contact-grid,
    .public-booking-info {
        grid-template-columns: 1fr;
    }

    .public-service-card h3 {
        min-height: 0;
    }
}


/* ==========================================================
   PUBLIC UI V3 - HOME / BOOKING / FOOTER
   ========================================================== */

:root {
    --public-width: 1180px;
}


/* Jedna szerokość dla wszystkich stron publicznych */

.public-topbar,
.public-main {
    width: min(
        var(--public-width),
        calc(100% - 32px)
    ) !important;

    max-width: var(--public-width) !important;

    margin-left: auto !important;
    margin-right: auto !important;
}

.public-booking-main {
    width: min(
        var(--public-width),
        calc(100% - 32px)
    ) !important;

    max-width: var(--public-width) !important;
}

.public-booking-main > section,
.booking-picker {
    width: 100%;
    max-width: none;
}


/* ----------------------------------------------------------
   CTA na dole
   ---------------------------------------------------------- */

.public-bottom-cta {
    display: flex;
    justify-content: center;

    margin-top: 44px;
    padding-top: 8px;
}


/* ----------------------------------------------------------
   Lokalna mapa
   ---------------------------------------------------------- */

.public-map-card {
    display: grid;

    grid-template-columns:
        minmax(0, 1.65fr)
        minmax(280px, .55fr);

    border: 1px solid #e4d5c7;
    border-radius: 22px;

    overflow: hidden;

    background: #fffdf9;

    box-shadow:
        0 12px 34px
        rgba(84,52,34,.10);
}


.public-map-visual {
    min-height: 390px;

    background:
        #f0e8dc;

    overflow: hidden;
}


.public-map-image {
    display: block;

    width: 100%;
    height: 100%;

    min-height: 390px;

    object-fit: cover;
}


.public-map-details {
    display: flex;
    flex-direction: column;

    justify-content: center;

    padding: 34px;
}


.public-map-details h3 {
    margin:
        10px 0
        8px;

    font-size:
        clamp(
            1.3rem,
            2vw,
            1.8rem
        );
}


.public-map-details p {
    color: #7b6558;

    line-height: 1.65;
}


.map-note {
    margin-top: 24px;

    padding-top: 18px;

    border-top:
        1px solid
        #ead9ca;

    font-size: .8rem;
}


/* Lokalny schemat zastępczy */

.public-map-placeholder {
    position: relative;

    width: 100%;
    min-height: 390px;

    overflow: hidden;

    background:
        linear-gradient(
            135deg,
            #eee5d8,
            #f8f2e9
        );
}


.public-map-placeholder::before,
.public-map-placeholder::after {
    content: "";

    position: absolute;

    background:
        rgba(
            255,
            255,
            255,
            .72
        );
}


.public-map-placeholder::before {
    width: 120%;
    height: 58px;

    left: -10%;
    top: 52%;

    transform:
        rotate(-8deg);

    box-shadow:
        0 0 0 1px
        #ded2c4;
}


.public-map-placeholder::after {
    width: 48px;
    height: 130%;

    left: 28%;
    top: -15%;

    transform:
        rotate(14deg);

    box-shadow:
        0 0 0 1px
        #ded2c4;
}


.map-road-main {
    position: absolute;

    left: 43%;
    top: 45%;

    z-index: 2;

    color: #8a7466;

    font-size: .75rem;

    font-weight: 700;

    transform:
        rotate(-8deg);
}


.map-pin {
    position: absolute;

    left: 54%;
    top: 47%;

    z-index: 5;

    width: 42px;
    height: 42px;

    display: grid;
    place-items: center;

    border-radius:
        50% 50% 50% 0;

    transform:
        rotate(-45deg);

    background:
        #c7773d;

    color: #fff;

    box-shadow:
        0 8px 24px
        rgba(
            84,
            52,
            34,
            .28
        );
}


.map-pin span {
    transform:
        rotate(45deg);
}


.map-place-card {
    position: absolute;

    left: calc(54% + 35px);
    top: calc(47% - 18px);

    z-index: 6;

    padding:
        11px
        14px;

    border-radius:
        12px;

    background:
        rgba(
            255,
            253,
            249,
            .96
        );

    border:
        1px solid
        #dec9b8;

    box-shadow:
        0 8px 24px
        rgba(
            84,
            52,
            34,
            .12
        );
}


.map-place-card strong,
.map-place-card span {
    display: block;
}


.map-place-card strong {
    color: #3b261d;

    margin-bottom: 3px;
}


.map-place-card span {
    color: #806554;

    font-size: .76rem;

    line-height: 1.35;
}


/* ----------------------------------------------------------
   Profesjonalna stopka
   ---------------------------------------------------------- */

.public-footer-pro {
    width: 100% !important;

    max-width: none !important;

    margin: 40px 0 0 !important;

    padding: 0 !important;

    display: block !important;

    border: 0 !important;

    background:
        linear-gradient(
            135deg,
            #2d201b,
            #211711
        );

    color: #f6eee6;
}


.public-footer-inner {
    width: min(
        var(--public-width),
        calc(100% - 32px)
    );

    margin: 0 auto;

    padding:
        42px 0
        34px;

    display: grid;

    grid-template-columns:
        1.25fr
        1fr
        1.25fr
        1fr;

    gap: 42px;
}


.public-footer-brand-head {
    display: flex;
    align-items: center;

    gap: 12px;
}


.public-footer-brand-head img {
    width: 48px;
    height: 48px;

    object-fit: contain;

    padding: 3px;

    border-radius: 13px;

    background: #fff;
}


.public-footer-brand-head strong,
.public-footer-brand-head span {
    display: block;
}


.public-footer-brand-head strong {
    font-size: 1.05rem;
}


.public-footer-brand-head span {
    color: #d9b18d;

    font-size: .76rem;

    margin-top: 2px;
}


.public-footer-brand p {
    max-width: 280px;

    color: #bdaea2;

    line-height: 1.65;

    font-size: .82rem;

    margin-top: 16px;
}


.public-footer-column h3 {
    margin:
        0 0
        14px;

    color: #fff;

    font-size: .82rem;

    text-transform: uppercase;

    letter-spacing: .08em;
}


.public-footer-column p {
    color: #c9b9ad;

    line-height: 1.6;

    font-size: .82rem;
}


.public-footer-column strong {
    color: #f6eee6;
}


.footer-hours {
    display: grid;

    gap: 7px;
}


.footer-hours > div {
    display: flex;

    justify-content: space-between;

    gap: 14px;

    font-size: .76rem;
}


.footer-hours span {
    color: #bdaea2;
}


.footer-hours strong {
    color: #f1d2b2;

    white-space: nowrap;
}


.public-footer-bottom {
    border-top:
        1px solid
        rgba(
            255,
            255,
            255,
            .09
        );
}


.public-footer-bottom > div {
    width: min(
        var(--public-width),
        calc(100% - 32px)
    );

    margin: 0 auto;

    padding:
        16px 0
        20px;

    display: flex;

    justify-content: space-between;

    gap: 20px;

    color: #998a80;

    font-size: .72rem;
}


/* ----------------------------------------------------------
   Responsive
   ---------------------------------------------------------- */

@media(max-width:900px) {

    .public-map-card {
        grid-template-columns: 1fr;
    }

    .public-map-visual,
    .public-map-image,
    .public-map-placeholder {
        min-height: 320px;
    }

    .public-footer-inner {
        grid-template-columns:
            repeat(
                2,
                minmax(0,1fr)
            );
    }
}


@media(max-width:620px) {

    .public-topbar,
    .public-main {
        width:
            calc(100% - 22px)
            !important;
    }

    .public-booking-main {
        width:
            calc(100% - 22px)
            !important;
    }

    .public-footer-inner,
    .public-footer-bottom > div {
        width:
            calc(100% - 32px);
    }

    .public-footer-inner {
        grid-template-columns:
            1fr;

        gap: 28px;
    }

    .public-footer-bottom > div {
        display: block;

        text-align: center;
    }

    .public-footer-bottom span {
        display: block;

        margin: 4px 0;
    }

    .public-bottom-cta {
        margin-top: 36px;
    }

    .public-bottom-cta .btn {
        width: 100%;
    }

    .map-place-card {
        left: 40%;
    }
}


/* ==========================================================
   PUBLIC UI V4 - FINAL WIDTH
   ========================================================== */

body.public-body .public-topbar,
body.public-body main.public-main,
body.public-body main.public-main.public-booking-main {
    width: min(1180px, calc(100% - 32px)) !important;
    max-width: 1180px !important;
    min-width: 0 !important;

    margin-left: auto !important;
    margin-right: auto !important;
}


body.public-body main.public-main.public-booking-main > section,
body.public-body main.public-main.public-booking-main > .card,
body.public-body main.public-main.public-booking-main .booking-picker {
    width: 100% !important;
    max-width: none !important;
}


/* Booking header również na pełną szerokość */

body.public-body .public-booking-main .booking-header {
    width: 100% !important;
    max-width: none !important;
}


/* ==========================================================
   GOOGLE MAPS
   ========================================================== */

.public-google-map-card {
    display: grid;

    grid-template-columns:
        minmax(0, 1.75fr)
        minmax(280px, .55fr);

    overflow: hidden;

    border:
        1px solid
        #e4d5c7;

    border-radius: 22px;

    background: #fffdf9;

    box-shadow:
        0 12px 34px
        rgba(84,52,34,.10);
}


.public-google-map {
    min-height: 410px;
}


.public-google-map iframe {
    display: block;

    width: 100%;
    height: 100%;

    min-height: 410px;

    border: 0;
}


.public-map-details {
    display: flex;
    flex-direction: column;

    justify-content: center;

    padding: 38px;
}


.public-map-details h3 {
    margin:
        10px 0
        4px;

    font-size:
        clamp(
            1.6rem,
            2.8vw,
            2.2rem
        );
}


.public-map-address {
    margin:
        0 0
        18px;

    font-size: 1.05rem;

    line-height: 1.55;

    color: #795d4c;
}


.public-map-details .btn {
    align-self: flex-start;

    margin-top: 16px;
}


/* ==========================================================
   PROFESSIONAL FOOTER
   ========================================================== */

.public-site-footer {
    width: 100%;

    margin-top: 64px;

    background:
        linear-gradient(
            135deg,
            #30211b,
            #201611
        );

    color: #f7efe7;
}


.public-site-footer-inner {
    width:
        min(
            1180px,
            calc(100% - 32px)
        );

    margin:
        0 auto;

    padding:
        48px 0
        40px;

    display: grid;

    grid-template-columns:
        1.25fr
        .85fr
        1.25fr
        .9fr;

    gap: 46px;
}


.footer-brand-title {
    display: flex;

    align-items: center;

    gap: 12px;
}


.footer-brand-title img {
    width: 50px;
    height: 50px;

    padding: 3px;

    object-fit: contain;

    border-radius: 14px;

    background: #fff;
}


.footer-brand-title strong,
.footer-brand-title span {
    display: block;
}


.footer-brand-title strong {
    font-size: 1.1rem;
}


.footer-brand-title span {
    margin-top: 2px;

    color: #d9b18d;

    font-size: .76rem;
}


.footer-brand > p {
    max-width: 290px;

    margin-top: 17px;

    color: #bfaea2;

    font-size: .84rem;

    line-height: 1.7;
}


.footer-column h3 {
    margin:
        0 0
        17px;

    color: #f9e8da;

    font-size: .76rem;

    text-transform: uppercase;

    letter-spacing: .11em;
}


.footer-column p {
    margin:
        0 0
        14px;

    color: #cbb9ac;

    font-size: .84rem;

    line-height: 1.65;
}


.footer-column strong {
    color: #fff4e9;
}


.footer-hours {
    display: grid;

    gap: 8px;
}


.footer-hours > div {
    display: flex;

    justify-content: space-between;

    gap: 16px;

    padding-bottom: 7px;

    border-bottom:
        1px solid
        rgba(255,255,255,.07);

    font-size: .78rem;
}


.footer-hours span {
    color: #bba99c;
}


.footer-hours strong {
    color: #f2d2b3;

    white-space: nowrap;
}


.public-site-footer-bottom {
    border-top:
        1px solid
        rgba(255,255,255,.09);
}


.public-site-footer-bottom > div {
    width:
        min(
            1180px,
            calc(100% - 32px)
        );

    margin:
        0 auto;

    padding:
        17px 0
        20px;

    display: flex;

    justify-content: space-between;

    gap: 20px;

    color: #9f8e82;

    font-size: .73rem;
}


/* Większa przestrzeń przed dolnym CTA */

.public-booking-steps .public-bottom-cta {
    margin-top: 52px !important;
}


/* RESPONSIVE */

@media (max-width: 900px) {

    .public-google-map-card {
        grid-template-columns: 1fr;
    }

    .public-google-map,
    .public-google-map iframe {
        min-height: 340px;
    }

    .public-site-footer-inner {
        grid-template-columns:
            repeat(2, minmax(0,1fr));
    }
}


@media (max-width: 620px) {

    body.public-body .public-topbar,
    body.public-body main.public-main,
    body.public-body main.public-main.public-booking-main {
        width:
            calc(100% - 22px)
            !important;
    }

    .public-site-footer-inner {
        grid-template-columns: 1fr;

        gap: 30px;
    }

    .public-site-footer-inner,
    .public-site-footer-bottom > div {
        width:
            calc(100% - 32px);
    }

    .public-site-footer-bottom > div {
        display: block;

        text-align: center;
    }

    .public-site-footer-bottom span {
        display: block;

        margin: 4px 0;
    }

    .public-map-details {
        padding: 26px;
    }
}

/* Footer - linki kontaktowe */
.public-site-footer .footer-column a {
    color: inherit;
    text-decoration: none;
}

.public-site-footer .footer-column a:hover {
    text-decoration: underline;
}

/* Dwa działania przy wyborze terminu */
.booking-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
}

@media (max-width: 620px) {
    .booking-actions .btn {
        width: 100%;
    }
}


/* ==========================================================
   SCROLL TO TOP - GLOBAL
   ========================================================== */

.scroll-top-btn {

    position: fixed;

    right: 24px;
    bottom: 24px;

    width: 52px;
    height: 52px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background:
        var(--primary, #c76d32);

    color: #fff;

    cursor: pointer;

    font-size: 27px;
    font-weight: 700;
    line-height: 1;

    box-shadow:
        0 8px 24px rgba(0, 0, 0, 0.18);

    opacity: 0;

    transform:
        translateY(16px)
        scale(0.90);

    pointer-events: none;

    transition:
        opacity .25s ease,
        transform .25s ease,
        box-shadow .2s ease,
        filter .2s ease;

    z-index: 99999;
}


.scroll-top-btn.is-visible {

    opacity: 1;

    transform:
        translateY(0)
        scale(1);

    pointer-events: auto;
}


.scroll-top-btn:hover {

    filter: brightness(1.08);

    box-shadow:
        0 12px 30px rgba(0, 0, 0, 0.24);
}


.scroll-top-btn:active {

    transform:
        translateY(2px)
        scale(.96);
}


.scroll-top-arrow {

    display: block;

    transform: translateY(-1px);
}


.scroll-top-btn.is-visible
.scroll-top-arrow {

    animation:
        scrollTopFloat
        1.55s
        ease-in-out
        infinite;
}


@keyframes scrollTopFloat {

    0%,
    100% {
        transform: translateY(1px);
    }

    50% {
        transform: translateY(-5px);
    }

}


@media (max-width: 700px) {

    .scroll-top-btn {

        right: 16px;
        bottom: 16px;

        width: 48px;
        height: 48px;

        font-size: 24px;
    }

}


@media (prefers-reduced-motion: reduce) {

    .scroll-top-btn,
    .scroll-top-arrow {

        animation: none !important;

        transition-duration: .01ms !important;
    }

}


/* ==========================================================
   PUBLIC WEBSITE V6
   MENU / MATERIALS / FAQ / MOBILE ACTIONS
   ========================================================== */


/* ----------------------------------------------------------
   MENU
   ---------------------------------------------------------- */

.public-topbar {
    position: relative;
    z-index: 100;
}

.public-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
}

.public-nav > a:not(.btn) {
    display: inline-flex;
    align-items: center;

    min-height: 38px;

    padding: 8px 11px;

    border-radius: 10px;

    color: #62493c;
    text-decoration: none;

    font-size: .82rem;
    font-weight: 750;

    transition:
        background .18s ease,
        color .18s ease;
}

.public-nav > a:not(.btn):hover {
    background: #f5e9dc;
    color: #a95e2d;
}

.public-nav-cta {
    margin-left: 5px;
}


/* ----------------------------------------------------------
   MATERIAL NA STRONIE GŁÓWNEJ
   ---------------------------------------------------------- */

.public-material-feature {
    display: grid;

    grid-template-columns:
        minmax(0, 1.35fr)
        minmax(320px, .65fr);

    overflow: hidden;

    border:
        1px solid #e4d5c7;

    border-radius: 22px;

    background: #fffdf9;

    box-shadow:
        0 12px 34px
        rgba(84,52,34,.10);
}

.public-material-preview {
    min-height: 400px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 22px;

    background:
        linear-gradient(
            135deg,
            #f7efe4,
            #f0e7da
        );
}

.public-material-preview img {
    display: block;

    width: 100%;
    height: auto;

    max-height: 520px;

    object-fit: contain;

    border-radius: 12px;

    box-shadow:
        0 12px 28px
        rgba(62,38,25,.14);
}

.public-material-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 38px;
}

.public-material-copy h3 {
    margin:
        10px 0
        13px;

    font-size:
        clamp(1.7rem, 2.8vw, 2.35rem);
}

.public-material-copy p {
    color: #765d4f;
    line-height: 1.7;
}

.public-material-format {
    margin-top: 8px;

    font-size: .82rem;
    font-weight: 750;

    color: #a35d31 !important;
}

.public-material-actions {
    display: flex;
    flex-wrap: wrap;

    gap: 10px;

    margin-top: 22px;
}


/* ----------------------------------------------------------
   MATERIAŁY - PODSTRONA
   ---------------------------------------------------------- */

.public-materials-page {
    padding-bottom: 40px;
}

.materials-hero {
    padding:
        60px 0
        36px;

    text-align: center;
}

.materials-hero h1 {
    margin:
        8px 0
        12px;

    font-size:
        clamp(2.7rem, 6vw, 4.6rem);
}

.materials-hero p {
    max-width: 720px;

    margin:
        0 auto;

    color: #795f50;

    line-height: 1.7;
}

.calendar-download-card {
    display: grid;

    grid-template-columns:
        minmax(0, 1.55fr)
        minmax(320px, .65fr);

    padding: 0;

    overflow: hidden;
}

.calendar-download-preview {
    min-height: 500px;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 24px;

    background:
        linear-gradient(
            145deg,
            #f4ebde,
            #fbf7f1
        );
}

.calendar-download-preview img {
    display: block;

    width: 100%;
    height: auto;

    border-radius: 10px;

    box-shadow:
        0 14px 36px
        rgba(52,34,24,.16);
}

.calendar-download-content {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 38px;
}

.calendar-download-content h2 {
    margin:
        10px 0
        14px;

    font-size:
        clamp(1.7rem, 3vw, 2.5rem);
}

.calendar-download-content p {
    color: #755d4e;

    line-height: 1.7;
}

.calendar-specs {
    display: flex;
    flex-wrap: wrap;

    gap: 7px;

    margin-top: 18px;
}

.calendar-specs span {
    padding:
        6px
        10px;

    border:
        1px solid #e2d1c1;

    border-radius: 999px;

    background: #fbf4ec;

    color: #755343;

    font-size: .73rem;
    font-weight: 800;
}

.materials-note {
    margin-top: 20px;

    font-size: .76rem;
}

.materials-next {
    padding-bottom: 0;
}

.calendar-file-missing {
    padding: 40px;

    color: #795f50;

    text-align: center;
}


/* ----------------------------------------------------------
   FAQ
   ---------------------------------------------------------- */

.public-faq {
    max-width: 920px;

    margin:
        28px auto
        0;

    display: grid;

    gap: 10px;
}

.public-faq details {
    border:
        1px solid #e4d4c5;

    border-radius: 14px;

    background: #fffdf9;

    overflow: hidden;
}

.public-faq summary {
    padding:
        17px
        20px;

    cursor: pointer;

    color: #3b281e;

    font-weight: 850;

    list-style: none;
}

.public-faq summary::-webkit-details-marker {
    display: none;
}

.public-faq summary::after {
    content: "+";

    float: right;

    color: #bf6d35;

    font-size: 1.2rem;
}

.public-faq details[open] summary::after {
    content: "−";
}

.public-faq details p {
    margin: 0;

    padding:
        0
        20px
        18px;

    color: #785f50;

    line-height: 1.7;
}

.public-faq-link {
    display: inline-block;

    margin:
        0
        20px
        20px;

    color: #b96631;

    font-weight: 850;

    text-decoration: none;
}


/* ----------------------------------------------------------
   MOBILE QUICK ACTIONS
   ---------------------------------------------------------- */

.public-mobile-actions {
    display: none;
}


/* ----------------------------------------------------------
   RESPONSIVE
   ---------------------------------------------------------- */

@media (max-width: 950px) {

    .public-topbar {
        align-items: flex-start;
    }

    .public-nav {
        flex-wrap: wrap;
    }

    .public-material-feature,
    .calendar-download-card {
        grid-template-columns: 1fr;
    }

    .public-material-preview {
        min-height: 0;
    }

    .calendar-download-preview {
        min-height: 0;
    }
}


@media (max-width: 760px) {

    .public-body {
        padding-bottom: 74px;
    }

    .public-topbar {
        display: block;
    }

    .public-brand {
        margin-bottom: 12px;
    }

    .public-nav {
        justify-content: flex-start;

        overflow-x: auto;

        flex-wrap: nowrap;

        padding-bottom: 4px;

        scrollbar-width: none;
    }

    .public-nav::-webkit-scrollbar {
        display: none;
    }

    .public-nav > a {
        white-space: nowrap;
    }

    .public-material-copy,
    .calendar-download-content {
        padding: 25px;
    }


    .public-mobile-actions {
        position: fixed;

        left: 10px;
        right: 10px;
        bottom: 10px;

        z-index: 99990;

        display: grid;

        grid-template-columns:
            .8fr
            .9fr
            1.25fr;

        gap: 5px;

        padding: 5px;

        border:
            1px solid
            rgba(105,69,48,.16);

        border-radius: 17px;

        background:
            rgba(255,253,249,.96);

        box-shadow:
            0 12px 34px
            rgba(45,28,18,.20);

        backdrop-filter: blur(12px);
    }


    .mobile-action {
        min-width: 0;

        display: flex;

        align-items: center;
        justify-content: center;

        gap: 5px;

        padding:
            10px
            7px;

        border-radius: 12px;

        color: #50382c;

        text-decoration: none;

        font-size: .71rem;
    }

    .mobile-action span {
        font-size: .9rem;
    }

    .mobile-action-primary {
        background:
            linear-gradient(
                135deg,
                #ca7539,
                #b96530
            );

        color: #fff;

        box-shadow:
            0 6px 16px
            rgba(185,101,48,.25);
    }


    .scroll-top-btn {
        bottom: 88px !important;
    }
}


/* ==========================================================
   MATERIALS - poprawka nagłówka kalendarza
   ========================================================== */

.calendar-download-card {
    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(360px, .8fr);
}

.calendar-download-content {
    min-width: 0;
}

.calendar-main-title {
    margin:
        10px 0
        6px !important;

    font-size:
        clamp(
            1.8rem,
            2.4vw,
            2.45rem
        ) !important;

    line-height: 1.08;

    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
}

.calendar-subtitle {
    margin-bottom: 18px;

    color: #b96934;

    font-size:
        clamp(
            1rem,
            1.5vw,
            1.2rem
        );

    font-weight: 800;

    line-height: 1.35;
}

@media (max-width: 950px) {

    .calendar-download-card {
        grid-template-columns: 1fr;
    }

    .calendar-main-title {
        font-size:
            clamp(
                1.8rem,
                5vw,
                2.4rem
            ) !important;
    }
}


/* ==========================================================
   MATERIALS - większy podgląd kalendarza
   ========================================================== */

@media (min-width: 951px) {

    .calendar-download-card {
        grid-template-columns:
            minmax(0, 1.65fr)
            minmax(330px, .70fr);
    }

    .calendar-download-preview {
        padding: 18px;
    }

    .calendar-download-content {
        padding:
            34px
            30px;
    }

    .calendar-download-preview img {
        width: 100%;
        max-width: none;
    }
}


/* ==========================================================
   PUBLIC HOME V7
   PROFESSIONAL CLINIC HOMEPAGE
   2026-09-04
   ========================================================== */


/* ----------------------------------------------------------
   HERO
   ---------------------------------------------------------- */

.home-hero {
    position: relative;
}

.home-hero-lead {
    max-width: 620px;
    font-size: 1.04rem;
    line-height: 1.75;
}

.home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.home-hero-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 22px;
}

.home-hero-meta span {
    padding: 7px 12px;
    border: 1px solid #ead7c6;
    border-radius: 999px;
    background: rgba(255, 253, 249, .72);
    color: #765a4b;
    font-size: .75rem;
    font-weight: 750;
}


/* ----------------------------------------------------------
   O GABINECIE
   ---------------------------------------------------------- */

.home-intro-card {
    display: grid;
    grid-template-columns:
        minmax(0, 1.15fr)
        minmax(330px, .85fr);

    overflow: hidden;

    border: 1px solid #e5d4c4;
    border-radius: 24px;

    background:
        linear-gradient(
            135deg,
            #fffdf9 0%,
            #fff9f2 55%,
            #f6e8da 100%
        );

    box-shadow:
        0 14px 40px
        rgba(72, 43, 28, .08);
}

.home-intro-copy {
    padding:
        clamp(34px, 5vw, 62px);
}

.home-intro-copy h2 {
    max-width: 660px;

    margin:
        10px 0
        20px;

    font-size:
        clamp(
            2rem,
            4vw,
            3.15rem
        );

    line-height: 1.06;
}

.home-intro-copy p {
    max-width: 650px;

    color: #765e50;

    font-size: .98rem;
    line-height: 1.8;
}

.home-intro-points {
    display: grid;
    align-content: center;

    gap: 12px;

    padding:
        34px;

    background:
        rgba(
            255,
            255,
            255,
            .34
        );
}

.home-intro-point {
    padding:
        19px
        20px;

    border:
        1px solid
        rgba(
            185,
            112,
            61,
            .17
        );

    border-radius: 17px;

    background:
        rgba(
            255,
            253,
            249,
            .78
        );
}

.home-intro-point strong {
    display: block;

    margin-bottom: 5px;

    color: #c16e36;

    font-size: .72rem;
    letter-spacing: .12em;
}

.home-intro-point span {
    display: block;

    color: #3b271e;

    font-size: 1rem;
    font-weight: 850;
}

.home-intro-point small {
    display: block;

    margin-top: 6px;

    color: #806758;

    font-size: .78rem;
    line-height: 1.55;
}


/* ----------------------------------------------------------
   JAK MOŻEMY POMÓC
   ---------------------------------------------------------- */

.home-support-grid {
    display: grid;

    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );

    gap: 16px;
}

.home-support-card {
    position: relative;

    min-height: 310px;

    padding:
        26px
        24px;

    overflow: hidden;

    border-color: #e5d5c6;

    transition:
        transform .2s ease,
        box-shadow .2s ease,
        border-color .2s ease;
}

.home-support-card::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    height: 4px;

    background:
        linear-gradient(
            90deg,
            #d18a51,
            #b96834
        );

    opacity: .72;
}

.home-support-card:hover {
    transform:
        translateY(-3px);

    border-color: #d7b99f;

    box-shadow:
        0 16px 35px
        rgba(76, 45, 29, .09);
}

.home-support-icon {
    width: 50px;
    height: 50px;

    display: grid;

    place-items: center;

    margin-bottom: 22px;

    border-radius: 16px;

    background:
        linear-gradient(
            135deg,
            #f6e4d1,
            #f1d8c0
        );

    color: #ad6432;

    font-size: 1.05rem;
    font-weight: 900;
}

.home-support-type {
    display: block;

    margin-bottom: 8px;

    color: #bc6b36;

    font-size: .68rem;
    font-weight: 900;

    text-transform: uppercase;
    letter-spacing: .11em;
}

.home-support-card h3 {
    margin:
        0 0
        12px;

    font-size: 1.25rem;
}

.home-support-card p {
    margin: 0;

    color: #786052;

    line-height: 1.7;
}


/* ----------------------------------------------------------
   KIEDY WARTO SIĘ ZGŁOSIĆ
   ---------------------------------------------------------- */

.home-when-section {
    position: relative;
}

.home-audience-grid {
    display: grid;

    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );

    gap: 18px;
}

.home-audience-card {
    padding:
        clamp(
            26px,
            4vw,
            38px
        );

    border:
        1px solid
        #e4d3c3;

    border-radius: 22px;

    background:
        linear-gradient(
            145deg,
            #fffdf9,
            #fbf5ee
        );

    box-shadow:
        0 10px 30px
        rgba(66, 40, 26, .055);
}

.home-audience-head {
    display: flex;

    align-items: center;

    gap: 16px;

    margin-bottom: 24px;
}

.home-audience-symbol {
    flex:
        0 0
        auto;

    width: 54px;
    height: 54px;

    display: grid;
    place-items: center;

    border-radius: 17px;

    background: #f3dfcc;

    color: #ad6737;

    font-weight: 900;
}

.home-audience-head h3 {
    margin:
        5px 0
        0;

    font-size:
        clamp(
            1.25rem,
            2vw,
            1.55rem
        );
}

.home-audience-card ul {
    margin: 0;

    padding: 0;

    list-style: none;

    display: grid;

    gap: 0;
}

.home-audience-card li {
    position: relative;

    padding:
        13px
        0
        13px
        28px;

    border-bottom:
        1px solid
        #eee0d4;

    color: #71594b;

    line-height: 1.6;
}

.home-audience-card li:last-child {
    border-bottom: 0;
}

.home-audience-card li::before {
    content: "✓";

    position: absolute;

    left: 0;
    top: 13px;

    color: #c46f37;

    font-weight: 900;
}


/* ----------------------------------------------------------
   PIERWSZA WIZYTA
   ---------------------------------------------------------- */

.home-process-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 18px;
}

.home-process-card {
    position: relative;

    min-height: 230px;

    padding:
        30px
        26px;

    border:
        1px solid
        #e4d4c5;

    border-radius: 20px;

    background: #fffdf9;
}

.home-process-number {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    min-width: 46px;
    height: 38px;

    margin-bottom: 23px;

    border-radius: 12px;

    background: #f5e1cd;

    color: #b86632;

    font-size: .8rem;
    font-weight: 900;
}

.home-process-card h3 {
    margin:
        0 0
        12px;

    font-size: 1.2rem;
}

.home-process-card p {
    margin: 0;

    color: #796052;

    line-height: 1.7;
}

.home-process-actions {
    display: flex;

    justify-content: center;
    flex-wrap: wrap;

    gap: 12px;

    margin-top: 38px;
}


/* ----------------------------------------------------------
   KONTAKT
   ---------------------------------------------------------- */

.home-contact-list {
    display: grid;

    gap: 8px;

    width: 100%;

    margin:
        18px 0
        4px;
}

.home-contact-list a {
    display: block;

    padding:
        12px
        14px;

    border:
        1px solid
        #ead8c8;

    border-radius: 12px;

    background: #fffaf5;

    color: inherit;

    text-decoration: none;

    transition:
        background .18s ease,
        border-color .18s ease;
}

.home-contact-list a:hover {
    background: #f8ede2;
    border-color: #dcbda4;
}

.home-contact-list small,
.home-contact-list strong {
    display: block;
}

.home-contact-list small {
    margin-bottom: 3px;

    color: #947766;

    font-size: .7rem;
}

.home-contact-list strong {
    overflow-wrap: anywhere;

    color: #3e291f;

    font-size: .88rem;
}


/* ----------------------------------------------------------
   KOŃCOWE CTA
   ---------------------------------------------------------- */

.home-final-section {
    padding-bottom: 0;
}

.home-final-cta {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 34px;

    padding:
        clamp(
            34px,
            5vw,
            54px
        );

    border:
        1px solid
        #dfc9b5;

    border-radius: 24px;

    background:
        linear-gradient(
            135deg,
            #f7e6d4,
            #fffaf4 55%,
            #f1d6bc
        );

    box-shadow:
        0 14px 36px
        rgba(80, 47, 29, .08);
}

.home-final-cta h2 {
    margin:
        8px 0
        10px;

    font-size:
        clamp(
            2rem,
            4vw,
            3rem
        );
}

.home-final-cta p {
    max-width: 590px;

    margin: 0;

    color: #765c4c;

    line-height: 1.7;
}

.home-final-actions {
    flex:
        0 0
        auto;

    display: flex;

    flex-wrap: wrap;

    gap: 10px;
}


/* ----------------------------------------------------------
   WIĘCEJ PRZESTRZENI MIĘDZY SEKCJAMI
   ---------------------------------------------------------- */

body.public-body
.public-main
> .public-section {
    margin-top:
        clamp(
            72px,
            8vw,
            104px
        );
}

body.public-body
.public-main
> .public-hero
+ .public-section {
    margin-top:
        clamp(
            54px,
            6vw,
            78px
        );
}


/* ----------------------------------------------------------
   RESPONSIVE
   ---------------------------------------------------------- */

@media (max-width: 1000px) {

    .home-support-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .home-intro-card {
        grid-template-columns:
            1fr;
    }

    .home-intro-points {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

}


@media (max-width: 760px) {

    .home-audience-grid,
    .home-process-grid {
        grid-template-columns:
            1fr;
    }

    .home-intro-points {
        grid-template-columns:
            1fr;
    }

    .home-final-cta {
        display: block;
    }

    .home-final-actions {
        margin-top: 26px;
    }

    .home-final-actions .btn {
        width: 100%;
    }

}


@media (max-width: 620px) {

    .home-support-grid {
        grid-template-columns:
            1fr;
    }

    .home-support-card {
        min-height: 0;
    }

    .home-hero-actions {
        display: grid;

        grid-template-columns:
            1fr;
    }

    .home-hero-actions .btn,
    .home-process-actions .btn {
        width: 100%;
    }

    .home-process-actions {
        display: grid;

        grid-template-columns:
            1fr;
    }

    .home-intro-copy,
    .home-intro-points {
        padding: 25px;
    }

}


/* ==========================================================
   MAPA - szerszy panel danych kontaktowych
   ========================================================== */

@media (min-width: 901px) {

    .public-google-map-card {
        grid-template-columns:
            minmax(0, 1.55fr)
            minmax(330px, .70fr);
    }

    .public-map-details {
        padding:
            34px
            32px;
    }

    .public-map-details h3 {
        white-space: nowrap;
    }

    .home-contact-list strong {
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: normal;
        font-size: .84rem;
    }

}


/* ==========================================================
   MAPA - FINALNE PROPORCJE
   ========================================================== */

@media (min-width: 901px) {

    .public-google-map-card {
        grid-template-columns:
            minmax(0, 1.72fr)
            minmax(305px, .58fr);
    }

    .public-google-map,
    .public-google-map iframe {
        min-height: 460px;
        height: 460px;
    }

    .public-map-details {
        padding:
            28px
            26px;

        justify-content: center;
    }

    .public-map-details h3 {
        margin-top: 8px;
        margin-bottom: 4px;

        white-space: nowrap;
    }

    .public-map-address {
        margin-bottom: 12px;
    }

    .home-contact-list {
        margin:
            12px 0
            4px;

        gap: 7px;
    }

    .home-contact-list a {
        padding:
            11px
            13px;
    }

    .home-contact-list strong {
        font-size: .82rem;
        white-space: nowrap;
        overflow-wrap: normal;
        word-break: normal;
    }

    .public-map-details > .btn {
        margin-top: 14px;
    }

}


/* ==========================================================
   HOME - mniejsze odstępy między sekcjami
   ========================================================== */

body.public-body
.public-main
> .public-section {
    margin-top:
        clamp(
            36px,
            4vw,
            52px
        ) !important;
}

body.public-body
.public-main
> .public-hero
+ .public-section {
    margin-top:
        clamp(
            30px,
            3vw,
            42px
        ) !important;
}

@media (max-width: 760px) {

    body.public-body
    .public-main
    > .public-section {
        margin-top:
            30px
            !important;
    }

    body.public-body
    .public-main
    > .public-hero
    + .public-section {
        margin-top:
            24px
            !important;
    }

}


/* ==========================================================
   HOME - mniejszy odstęp pod HERO
   ========================================================== */

body.public-body .home-hero {
    min-height: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 20px !important;
}

body.public-body
.public-main
> .home-hero
+ .public-section {
    margin-top: 18px !important;
}


@media (max-width: 760px) {

    body.public-body .home-hero {
        padding-bottom: 12px !important;
    }

    body.public-body
    .public-main
    > .home-hero
    + .public-section {
        margin-top: 14px !important;
    }

}
