/* WORKVEO – grafik zmian: podgląd ułożonego grafiku i zasady grafiku (v1.103.0, static/js/grafik_auto.js).
   Kolory zmian (.shc-*) i kratki grafiku (.sh-*) są w style.css. */
.sh-card.pv .sh-c{cursor:default}
.sh-c.new::before{content:"";position:absolute;top:6px;left:11px;width:9px;height:9px;border-radius:50%;background:var(--sc,var(--accent));box-shadow:0 0 0 2px var(--card)}
.ga-pv{margin:14px 0;padding:14px 16px;border:2px solid var(--accent);border-radius:var(--radius);background:var(--accent-soft)}
.ga-pv-h b{display:block;font-size:16px;margin-bottom:2px}
.ga-miss{margin-top:12px;padding:10px 14px;border-radius:8px;background:var(--warn-soft);color:var(--ink)}
.ga-miss ul{margin:6px 0;padding-left:20px} .ga-miss li{margin:2px 0}
.ga-miss details{margin:6px 0} .ga-miss summary{cursor:pointer;font-weight:600;color:var(--blue);min-height:32px;display:flex;align-items:center}
.ga-ok{margin-top:10px;color:var(--ok);font-weight:600}
.ga-rep{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:15px;cursor:pointer}
.ga-rep input{width:20px;height:20px;flex:none;margin:0}
.ga-pv-b{margin-top:12px;gap:8px;flex-wrap:wrap}
/* zasady grafiku */
.ga-back{display:inline-block;margin-bottom:8px;font-weight:600;text-decoration:none}
.ga-needs{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.ga-need{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.ga-need .sh-dot{align-self:center}
.ga-need input[type=time]{width:120px} .ga-num input{width:92px}
.ga-del{margin-left:auto}
.ga-add{display:flex;flex-wrap:wrap;gap:8px}
.ga-empty{padding:6px 0}
.ga-emp{padding:16px 0;border-top:1px solid var(--line2)} .ga-emp:first-child{border-top:0}
.ga-eh{display:flex;justify-content:space-between;align-items:center;gap:10px 16px;flex-wrap:wrap}
.ga-en b{display:block;font-size:16px} .ga-en small{color:var(--ink2);font-size:13px}
.ga-seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.ga-seg button{min-height:42px;padding:8px 14px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.ga-seg button:first-child{border-left:0}
.ga-seg button[aria-pressed="true"]{background:var(--accent);color:var(--primary-ink,#fff);font-weight:600}
.ga-eb{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.ga-f{display:flex;flex-direction:column;gap:6px}
.ga-l{font-size:13px;font-weight:600;color:var(--ink2)}
.ga-row{display:flex;flex-wrap:wrap;gap:10px 14px} .ga-row label.f{min-width:150px}
.ga-chips{display:flex;flex-wrap:wrap;gap:6px}
.ga-chip{min-height:40px;min-width:46px;padding:6px 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink2);font:inherit;font-size:14px;font-variant-numeric:tabular-nums;cursor:pointer}
.ga-chip[aria-pressed="true"]{border-color:var(--sc,var(--ink));background:var(--sc-bg,var(--ink));color:var(--sc-ink,var(--card));font-weight:600}
.ga-bar{display:flex;gap:8px;padding:12px 0}
@media(min-width:761px){.ga-bar{position:sticky;bottom:0;z-index:5;background:linear-gradient(transparent,var(--bg) 35%);padding-top:22px}}
@media(max-width:700px){.ga-seg{display:flex;width:100%}.ga-seg button{flex:1;padding:8px 6px}.ga-need input[type=time]{width:110px}.ga-del{margin-left:0}}
/* polecenie AI nad grafikiem i podgląd zmian z polecenia (v1.152.0, static/js/grafik_polecenia.js) */
.sc-bar{margin:14px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.sc-bar.off{display:flex;align-items:center;gap:10px}
.sc-l{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:600}
.sc-ic{display:inline-grid;place-items:center;color:var(--accent)}
.sc-ic .nav-ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}
.sc-row{display:flex;gap:8px;align-items:stretch}
.sc-row textarea{flex:1;min-width:0;min-height:46px;font-size:16px;line-height:1.35;resize:vertical}
.sc-row .tok-wrap{display:flex}
.sc-mic{flex:none;width:46px;min-height:46px;padding:0;display:grid;place-items:center}
.sc-mic .nav-ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.sc-mic.on{border-color:var(--bad);background:var(--bad-soft);color:var(--bad);animation:co-pulse 1.4s ease-in-out infinite}
.sc-h{margin-top:8px}
.sc-said{font-style:italic;color:var(--ink2);overflow-wrap:anywhere}
.sc-sum{margin:10px 0 0;font-size:15px}
.sc-rem{margin:10px 0 0}
.sc-ch{margin-top:12px} .sc-ch ul{margin:6px 0;padding-left:20px} .sc-ch li{margin:2px 0;font-variant-numeric:tabular-nums}
.sc-ch details{margin:6px 0} .sc-ch summary{cursor:pointer;font-weight:600;color:var(--blue);min-height:32px;display:flex;align-items:center}
.sc-none{margin-top:10px;font-weight:600}
.sh-c.gone{border:1.5px dashed var(--bad);background:var(--bad-soft)}
.sh-c.gone s{color:var(--bad);font-size:13px;font-variant-numeric:tabular-nums}
.sh-c.gone s:first-child{font-size:15px;font-weight:700}
@media(max-width:700px){.sc-row{flex-wrap:wrap}.sc-row textarea{flex-basis:calc(100% - 54px);min-height:76px}.sc-row .tok-wrap,.sc-row .tok-wrap .btn{width:100%}}

/* v1.272.0 grafik pracownika w rezerwacji (grafik_pracownika.js): „Mój grafik”, propozycje w Grafiku, Zasady rezerwacji */
.sx-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}
.sx-top h2{margin:0;font-size:20px;white-space:nowrap}
.sx-card .sx-top .wk-nav{display:flex;gap:6px;flex:none;justify-content:flex-end}.sx-top .wk-arr{width:44px;height:44px;padding:0;justify-content:center}
.sx-st{display:flex;gap:10px;align-items:flex-start;margin:4px 0 8px}
.sx-row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px 6px;border:0;border-top:1px solid var(--line2);background:none;font:inherit;color:inherit;text-align:left}
button.sx-row{cursor:pointer}button.sx-row:hover{background:var(--line2)}
.sx-card .sx-row:first-of-type{border-top:0}
.sx-card .sx-row,.sx-card button.sx-row{padding:12px 6px}
.sx-row.past{opacity:.6}
.sx-row .d b{display:block}.sx-row .d span{color:var(--ink2);font-size:13px}
.sx-row .rw{display:flex;align-items:center;gap:4px}
.sx-row .v{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
.sx-row .v b{font-size:17px;font-variant-numeric:tabular-nums}
.sx-row .v b.two{line-height:1.3;border-radius:12px;text-align:center}
.sx-row .v small{color:var(--ink2);font-size:12.5px}
.sx-row.pend .v b{display:inline-block;padding:3px 10px;border-radius:999px;border:1.5px dashed var(--warn);background:var(--warn-soft);color:#6d4600}
.sx-row.okk .v b{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}
.sx-row.auto .v b{color:var(--ink2);font-weight:600}
.sx-row .go{color:var(--accent);font-size:22px;margin-left:6px}
.sx-ans{max-width:220px;font-size:12.5px;color:#7d231d}
.sx-sum{display:flex;justify-content:space-between;padding:12px 6px 4px;border-top:1px solid var(--line);font-weight:700}
.sx-btns{display:grid;gap:8px;margin-top:12px}
.sx-btns .btn{justify-content:center;min-height:46px;font-size:15px;font-weight:600}
.sx-mini{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.sx-mini span{padding:4px 10px;border-radius:999px;background:var(--line2);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.sx-mini span.on{background:var(--accent-soft);color:var(--accent)}
.sx-help{font-size:13px;color:var(--ink2);margin-top:8px}
.sx-ed{display:grid;gap:14px}
.sx-ed .seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.sx-ed .seg button{flex:1;min-height:44px;border:0;background:var(--card);font:inherit;font-size:15px;color:var(--ink);cursor:pointer}
.sx-ed .seg button[aria-pressed="true"]{background:var(--accent);color:#fff;font-weight:600}
.sx-ed .pd-work{display:grid;gap:10px}
.sx-ed .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sx-ed input[type=time]{font:inherit;font-size:18px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;width:100%;box-sizing:border-box;background:var(--input,#fff);color:var(--ink)}
.sx-ed .sx-pbtn{justify-content:center;min-height:44px}
.sx-ed .chk{display:flex;gap:10px;align-items:flex-start;font-size:14.5px}
.sx-ed .chk input{width:22px;height:22px;flex:none;margin:0}
.sx-ed .modal-actions{margin-top:0}
.sx-visit{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:var(--card);border:1px solid #f0d9a8;margin-top:8px}
.sx-visit b{font-variant-numeric:tabular-nums}
.linklike{border:0;background:none;padding:6px 0;font:inherit;font-size:14px;font-weight:600;color:var(--accent);cursor:pointer;text-align:left}
/* tydzień i stały tydzień: wiersz na dzień */
.pw-form{display:grid;gap:0;margin-top:10px}
.pw-r{display:grid;grid-template-columns:150px auto 1fr;gap:6px 12px;align-items:center;padding:10px 0;border-top:1px solid var(--line2)}
.pw-r:first-child{border-top:0}
.pw-r .pw-d b{display:block}.pw-r .pw-d span{color:var(--ink2);font-size:12.5px}
.pw-r.closed{opacity:.6}
.pw-on{display:flex;gap:6px;align-items:center;font-size:14px;white-space:nowrap}
.pw-on input{width:20px;height:20px;margin:0}
.pw-t{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pw-t input[type=time]{font:inherit;font-size:16px;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--input,#fff);color:var(--ink)}
.pw-p{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--ink2)}
@media(max-width:640px){.pw-r{grid-template-columns:1fr auto}.pw-t{grid-column:1/-1}}
/* „Dziś”: przyszły dzień z grafikiem */
.wk-day.plan .wk-v{color:var(--accent);font-weight:700}
.pd-now{gap:10px;align-items:center;margin:4px 0 6px}
.pd-chg{width:100%;justify-content:center}
.pd-info{margin:12px 0 0}
.pd-abs{margin-top:8px}
/* właściciel: propozycje do zatwierdzenia */
.sh-c.px{border:2px dashed var(--warn)!important;background:var(--warn-soft)!important;color:#6d4600!important;position:relative}
.sh-c.px b,.sh-c.px span{color:#6d4600!important}
.sh-c.px .pxl{position:absolute;top:-9px;right:-6px;padding:0 6px;border-radius:999px;background:var(--warn);color:#fff;font-size:10px;font-weight:700;line-height:17px;font-style:normal}
.sh-c.px.two{font-size:12.5px}.sh-c.px.two b{font-size:14px}
.sh-c.px.chg s{display:block;font-size:11.5px;color:var(--ink2)!important;text-decoration:line-through}
.px-card{border:2px solid var(--warn)}
.px-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.px-h h2{margin:0}
.px-it{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding:14px 0;border-top:1px solid var(--line2)}
.px-it>.av{margin-top:2px}.px-it>.px-b{align-self:center}
.px-h + .px-it{border-top:0;margin-top:6px}
.px-it .t b{display:block;font-size:15.5px}
.px-it .t .days{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.px-it .t .days span{padding:3px 9px;border-radius:8px;background:var(--warn-soft);border:1px dashed var(--warn);font-size:13px;font-weight:600;color:#6d4600;font-variant-numeric:tabular-nums}
.px-it .t .days span.free{background:var(--line2);border-color:var(--line);color:var(--ink2)}
.px-it .t .days span s{color:var(--ink2);font-weight:500;margin-right:4px}
.px-tpl{margin-top:6px;font-size:13.5px}
.px-warn{margin-top:8px;padding:8px 10px;border-radius:8px;background:var(--bad-soft);color:#7d231d;font-size:13.5px}
.px-b{gap:6px;flex-wrap:nowrap}
.px-leg{display:flex;flex-wrap:wrap;gap:16px;margin-top:10px;font-size:13px;color:var(--ink2)}
.px-leg i{display:inline-block;width:14px;height:14px;border-radius:4px;vertical-align:-2px;margin-right:6px}
.px-leg .px-i1{border:2px dashed var(--warn);background:var(--warn-soft)}
.px-leg .px-i2{background:var(--accent-soft);border:1.5px solid var(--accent)}
#apPlan .px-card{margin:0}
@media(max-width:700px){.px-it{grid-template-columns:auto 1fr;gap:10px 12px}.px-it>.px-b{grid-column:1/-1;flex-wrap:wrap}.px-b .btn{flex:1;justify-content:center;min-height:44px}}
/* Rezerwacje → Zasady: godziny pracy w rezerwacji i godziny otwarcia */
.pl-card{margin-bottom:16px}
.pl-open{margin:16px 0 0;padding-top:14px;border-top:1px solid var(--line2)}
.pl-start{display:grid;gap:8px;justify-items:start;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--accent-soft)}
.px-hours{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:8px}
.px-hours button{border:1px solid var(--line);border-radius:10px;padding:6px 4px;text-align:center;font:inherit;font-size:12.5px;font-variant-numeric:tabular-nums;background:var(--card);color:var(--ink);cursor:pointer}
.px-hours button b{display:block;font-size:12px;color:var(--ink2);text-transform:uppercase}
.px-hours button.off{background:var(--line2);color:var(--ink2)}
@media(max-width:640px){.px-hours{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* v1.302.0 dyspozycyjność pracowników (grafik_dyspozycyjnosc.js): kratki grafiku, pasek osób, strona pracownika, Zasady grafiku */
.sh-c.av-all{border:1.5px solid #9fd0b2;background:var(--ok-soft)}
.sh-c.av-hours{border:1.5px dashed var(--ok);background:var(--ok-soft)}
.sh-c.av-no{border:1.5px solid var(--line);background:repeating-linear-gradient(135deg,var(--line2) 0 6px,transparent 6px 12px)}
.sh-c .av-c{font-size:12.5px;font-weight:600;color:var(--ok)}
.sh-c.av-no .av-c{color:var(--ink2);font-weight:500}
.av-leg{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;font-size:13px;color:var(--ink2)}
.av-leg span{display:inline-flex;align-items:center;gap:6px}
.av-i{display:inline-block;width:18px;height:14px;border-radius:4px;border:1.5px dashed var(--line)}
.av-i.all{border:1.5px solid #9fd0b2;background:var(--ok-soft)} .av-i.hours{border-color:var(--ok);background:var(--ok-soft)}
.av-i.no{border:1.5px solid var(--line);background:repeating-linear-gradient(135deg,var(--line) 0 3px,transparent 3px 6px)}
.sh-tab tr.sh-br th{padding:14px 6px 6px;font-size:13px;font-weight:700;color:var(--ink);text-transform:none;letter-spacing:0;background:transparent;border-bottom:1.5px solid var(--line)}
.av-bar{margin:12px 0 4px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.av-bh{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;margin-bottom:8px}
.av-bh b{font-size:15px}
.av-grp{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:8px}
.av-gn{flex-basis:100%;font-size:12.5px;font-weight:700;color:var(--ink2)}
.av-p{min-height:36px;padding:4px 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}
.av-p.ok{border-color:#9fd0b2;background:var(--ok-soft);color:#1d5233}
.av-p.miss{border-style:dashed;border-color:var(--bad);color:var(--bad)}
.av-p small{font-size:12px;opacity:.85} .av-p i{font-style:normal;opacity:.7}
.av-notes{margin:2px 0 8px} .av-notes summary{cursor:pointer;font-weight:600;color:var(--blue);min-height:32px;display:flex;align-items:center}
.av-notes ul{margin:4px 0;padding-left:20px} .av-notes li{margin:2px 0}
.av-inf{margin:10px 0 0}
.av-st{margin:4px 0 10px}
.av-card .sx-top .wk-nav{display:flex;gap:6px;flex:none;justify-content:flex-end}.av-card .sx-top .wk-arr{width:44px;height:44px;padding:0;justify-content:center}
.av-quick{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 6px}
.av-quick .btn{flex:1 1 auto;justify-content:center;min-height:42px}
.av-day{padding:14px 0;border-top:1px solid var(--line2)}
.av-days .av-day:first-child{border-top:0}
.av-dh{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px}
.av-dh b{display:block;font-size:16px} .av-dh span{color:var(--ink2);font-size:13px}
.av-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}
.av-sh{font-size:12.5px;font-weight:600;color:var(--accent);white-space:nowrap}
.av-seg{display:flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.av-day.todo .av-seg{border-color:#e3c27d}
.av-seg button{flex:1;min-height:46px;border:0;border-left:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;font-size:15px;cursor:pointer}
.av-seg button:first-child{border-left:0}
.av-seg button[aria-pressed="true"]{background:var(--ok);color:#fff;font-weight:600}
.av-seg button.av-no[aria-pressed="true"]{background:var(--ink2)}
.av-hrs{display:grid;gap:8px;margin-top:10px}
.av-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.av-two input{font-size:18px;padding:10px 12px;width:100%;box-sizing:border-box}
.av-pre{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.av-pre .ga-chip{min-height:36px}
.av-day.ro{display:flex;justify-content:space-between;align-items:center;gap:10px}
.av-day.ro .av-dh{margin:0;flex:1}
.av-day.past{opacity:.6}
.av-v{font-weight:600;text-align:right} .av-v.av-all,.av-v.av-hours{color:var(--ok)} .av-v.av-no,.av-v.av-none{color:var(--ink2)} .av-v.av-none{font-weight:400}
.av-more{display:grid;gap:12px;margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}
.av-more textarea{width:100%;box-sizing:border-box;font-size:16px}
.av-ro{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);color:var(--ink2);font-size:14px;display:grid;gap:4px}
.av-modal{margin-top:10px}
.av-cfg{margin-top:14px}
.av-cfg label.f{min-width:220px}
#avCfg .muted.small{margin-top:8px}
@media(max-width:700px){.av-cfg label.f{min-width:0;flex:1 1 100%}.av-seg button{font-size:14.5px}}
/* v1.303.0: grafik jednego oddzialu - wybor oddzialu, grafik kierownika tylko do podgladu */
.sh-brsel{max-width:220px}
.sh-brinfo{margin:-4px 0 12px}
.sh-ro .sh-c{cursor:default}
.sh-ro .sh-plus{visibility:hidden}
