/* Vego · projects.css — Projects: tasks, jobs, stages, site reports, materials. Split from app.css (2.77.8); load order: base, crm, docs, accounts, projects. */
.pjmargin b{font-size:18px;white-space:nowrap;flex:none}.pjmargin>div{min-width:0}.pjgopen{display:flex;align-items:center;gap:10px;margin:2px 0 10px}.pjgx{flex:none;width:36px;height:36px;border-radius:50%;border:0;background:var(--glass,#EEF2F8);display:grid;place-items:center;cursor:pointer;color:var(--ink)}.pjgx svg{width:18px;height:18px}.pjgall{flex:none;border:0;background:none;color:#1A16B8;font:inherit;font-size:13px;font-weight:700;cursor:pointer;padding:6px 4px}
.pjmv{flex:none;border:0;background:var(--glass,#EEF2F8);width:34px;height:34px;border-radius:10px;display:grid;place-items:center;cursor:pointer;color:var(--ink2);margin-inline-end:6px}.pjmv svg{width:17px;height:17px}
.miic{width:26px;height:26px;flex:none}.matx{border:0;background:none;color:var(--muted);font-size:20px;line-height:1;padding:4px 8px;cursor:pointer;border-radius:8px}.matx:hover{background:var(--bad-bg);color:var(--bad)}
.payacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.purr{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}.purr em{font-size:11px}
.purs{padding:10px 14px}.pursr{display:grid;grid-template-columns:minmax(0,1.2fr) 1fr auto;gap:10px;align-items:center;padding:6px 0;font-size:13.5px}.pursr span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pursr i{height:8px;border-radius:99px;background:var(--glass);overflow:hidden;display:block}.pursr i b{display:block;height:100%;background:var(--brand,#FF6A13);border-radius:99px}.pursr em{font-style:normal;font-weight:700}
.matbill span{font-size:12px;color:var(--ink2)}.hti{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center}
.hti svg{width:18px;height:18px}
.daystrip{display:flex;align-items:center;gap:4px;margin:0 0 12px;padding:6px;background:var(--pane);border-radius:14px;box-shadow:var(--lift)}
.dsnav{flex:none;width:26px;height:44px;border:0;background:none;font-size:20px;color:var(--muted);cursor:pointer}
.dsdy b{font-size:15px}
.tlt{font-size:12px;font-weight:600;color:var(--ink2);padding-top:1px}
.tlb{display:flex;flex-direction:column;min-width:0}
.tlb b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tlb span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* jobs */
.jrow{display:flex;align-items:center;gap:10px;width:100%;border:0;background:var(--glass);border-radius:12px;padding:10px 12px;margin-bottom:6px;text-align:start;cursor:pointer;color:var(--ink)}
.jmain{flex:1;min-width:0;display:flex;flex-direction:column}
.jmain b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jmain span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jdone summary{font-size:12.5px;color:var(--muted);cursor:pointer;padding:4px 2px}
.jnote{background:var(--glass);border-radius:12px;padding:10px 12px;font-size:13.5px;margin:0 0 12px}
.jnext{width:100%;min-height:46px;font-size:15px}
.stfblk{background:var(--pane);box-shadow:var(--lift);border-radius:14px;padding:10px 12px;margin-bottom:8px}
.stfh{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.stfh b{font-size:14px}.stfh span{font-size:12px;color:var(--muted)}
.stfi{display:grid;grid-template-columns:62px 1fr;gap:8px;width:100%;border:0;background:none;padding:6px 0;border-top:1px solid var(--line);text-align:start;font-size:13px;color:var(--ink);cursor:pointer}
.stfi span:first-child{color:var(--muted);font-size:12px;font-weight:600}
.jplace{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:13px;color:var(--ink2)}
.jplace svg{width:15px;height:15px;flex:none;color:var(--muted)}
.pjgroups button{flex:1 1 0!important;min-width:0!important}
.pjglance{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:12px 0}
.pjg{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:start;border:0;background:var(--pane);box-shadow:0 0 0 1px var(--line);border-radius:14px;padding:11px 13px;font:inherit;color:inherit;cursor:pointer}
.pjg span{font-size:11.5px;font-weight:700;color:var(--muted)}.pjg b{font-size:16px}.pjg small{font-size:12px;color:var(--ink2)}
.pjfn{flex:1;min-width:0}.pjinst{display:flex;align-items:center;gap:8px;background:var(--glass);border-radius:14px;padding:10px 12px;margin-bottom:10px;font-size:13.5px}.pjinst svg{width:18px;height:18px;color:#294CE5;flex:none}.pjinst span{flex:1}
.sclist{display:flex;flex-direction:column;gap:6px}
.sct{flex:1;min-width:0}.sct b{display:block;font-size:13.5px;font-weight:600}.sct small{display:block;font-size:11.5px;color:var(--muted)}
.scadd{display:flex;gap:6px;margin-top:10px}.scadd input{flex:1;min-width:0;height:38px;border:0;border-radius:10px;background:var(--glass);padding:0 10px;font:inherit;font-size:14px;color:var(--ink)}
.subwork{background:var(--glass);border-radius:14px;padding:10px;margin-bottom:8px}.swrow{display:flex;gap:8px;align-items:center}.swrow+.swrow{margin-top:8px}
.swrow select,.swrow input{flex:1;min-width:0;height:38px;border:0;border-radius:10px;background:var(--card,var(--pane));padding:0 10px;font:inherit;font-size:14px;color:var(--ink);box-shadow:0 0 0 1px var(--line)}
.swfoot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:12.5px;color:var(--muted)}
.pdx-hd{display:flex;align-items:center;gap:10px;justify-content:space-between;min-height:24px}
.pdx-base{position:absolute!important;inset-inline-start:0;inset-inline-end:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:7px;}
.pdx-base svg{width:16px;height:16px}
.pdx-base em{font-style:normal;opacity:.5}
.pdx-bar{display:block;width:54px;height:5px;border-radius:9px;overflow:hidden;margin-inline-start:4px}
.pdx-bar i{display:block;height:100%;border-radius:9px}
.routebtn{flex:none;align-self:center}
.pdx-who{margin:12px 0 2px!important;gap:11px!important}
.pdx-av{width:42px!important;height:42px!important;font-size:14.5px!important}
.pdx-wt{flex:1;min-width:0}
.pdx-who b{font-size:17px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdx-st{font-size:12.5px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block!important}
.pdx-st i{display:inline-block;vertical-align:middle;margin-block:-2px 0;margin-inline:0 6px}
.pdx-ic a svg{width:17px;height:17px}
.pdx-base{height:38px!important;font-size:13px!important}
.dvbar{display:flex;align-items:center;justify-content:space-between;margin:0 0 10px;font-size:12.5px;color:var(--muted);font-weight:600}
.sb-ind .co-only{display:none}
#sb-kind button{flex-direction:row!important;gap:7px!important;min-height:42px}
.aqrow{display:flex;align-items:center;gap:10px}
.tric{width:38px;height:38px;flex:none;border-radius:11px;display:grid;place-items:center;background:#1A16B8;color:#fff}.tric svg{width:20px;height:20px}
.trtx{flex:1;min-width:160px}.trtx b{display:block;font-size:14px}.trtx span{font-size:12.5px;color:var(--ink2)}
.trbt{display:flex;gap:6px;flex-wrap:wrap}
.pboard{display:flex;gap:10px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory}
.pcol{flex:0 0 78%;max-width:300px;scroll-snap-align:start;background:var(--glass);border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px;transition:box-shadow .15s}
.pcolh{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 4px}.pcolh b{font-size:13.5px}.pcolh span{font-size:12px;font-weight:700;color:var(--muted)}
.pbcard{background:var(--pane);border-radius:12px;padding:10px;box-shadow:0 1px 2px rgba(15,23,42,.06),0 0 0 1px var(--line);display:flex;flex-direction:column;gap:6px}
.pbcard.drag{opacity:.5}.pbcard[draggable="true"]{cursor:grab}
.pbmain{border:0;background:none;padding:0;text-align:start;font:inherit;color:var(--ink);cursor:pointer}.pbmain b{display:block;font-size:14px}.pbmain span{font-size:12.5px;color:var(--ink2)}
.pbfoot{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.pbfoot .dchip{font-size:11.5px}
.pbcard>small{font-size:12px;color:var(--ink2);font-weight:700}
.pbnext{border:0;border-radius:9px;background:var(--brand-soft,#ECEFFF);color:#1A16B8;font:inherit;font-size:12.5px;font-weight:700;padding:7px;cursor:pointer;text-align:start}
@media (min-width:900px){.pcol{flex:0 0 260px}}
.ptl{border:1px solid var(--line);border-radius:14px;background:var(--pane);overflow:hidden}
.ptlh,.ptlr{display:grid;grid-template-columns:118px 1fr;align-items:center}
.ptlh{background:var(--glass);font-size:10.5px;font-weight:700;color:var(--muted);padding:6px 0}
.ptlw{display:grid;grid-template-columns:repeat(9,1fr)}.ptlw span{white-space:nowrap;overflow:hidden;padding-inline-start:3px;border-inline-start:1px solid var(--line);line-height:1.15}.ptlw small{display:block;font-size:9.5px;font-weight:600}
.ptlr{width:100%;border:0;border-top:1px solid var(--line);background:none;font:inherit;color:var(--ink);text-align:start;padding:8px 0;cursor:pointer}
.ptln{padding:0 8px;min-width:0}.ptln b{display:block;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ptln small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.ptlt{position:relative;height:22px;margin-inline-end:6px;background:repeating-linear-gradient(90deg,transparent 0 calc(100%/9 - 1px),var(--line) calc(100%/9 - 1px) calc(100%/9))}
.ptlb.h-hold{background:#94A3B833;box-shadow:inset 0 0 0 1.5px #94A3B8}.ptlb.h-hold em{background:#94A3B8}
.ptlm{position:absolute;top:7px;width:8px;height:8px;margin-inline-start:-4px;border-radius:2px;transform:rotate(45deg);background:var(--ink)}
.ptlnow{position:absolute;top:-8px;bottom:-8px;width:2px;background:#1A16B8}
.sitewarn svg{width:22px;height:22px;flex:none;}.sitepick svg{width:19px;height:19px}
.replist{display:flex;flex-direction:column;gap:8px}
.reprow{display:flex;gap:12px;align-items:flex-start;width:100%;padding:10px;border:0;border-radius:14px;background:var(--pane);box-shadow:0 0 0 1px var(--line);font:inherit;color:var(--ink);text-align:start;cursor:pointer}
.repd{flex:none;width:44px;text-align:center;border-radius:10px;background:var(--glass);padding:5px 0}.repd b{display:block;font-size:17px;line-height:1.1}.repd small{font-size:11px;color:var(--muted);text-transform:uppercase}
.repm{flex:1;min-width:0}.repm>b{display:block;font-size:14px;line-height:1.3}.repm>small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.reppc{flex:none;font-weight:800;font-size:14px;color:#1A16B8}
.repph em{font-size:12px;font-style:normal;color:var(--muted);font-weight:700}
.repsum{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:6px}.repsum>div{padding:10px 12px;border-radius:12px;background:var(--glass)}.repsum span{display:block;font-size:11.5px;color:var(--muted);font-weight:700;text-transform:uppercase}.repsum b{font-size:15px}
.reptx{white-space:pre-wrap;font-size:14.5px;line-height:1.5;margin:0 0 6px}.phprev{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.phprev img{width:56px;height:56px;border-radius:8px;object-fit:cover}
.sigimg{display:block;max-width:220px;margin:8px 0;padding:6px;border-radius:10px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.stlist{display:flex;flex-direction:column;gap:8px;margin:12px 0}
.stsub{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stsub label{display:flex;flex-direction:column;align-items:stretch;gap:3px;font-size:11.5px;color:var(--muted);font-weight:700;min-width:0}.stsub label>*{width:100%}
.stsub input,.stsub select{height:34px;border-radius:9px;border:1px solid var(--line);padding:0 8px;font:inherit;font-size:13px;background:var(--bg);color:var(--ink);min-width:0}
.stbt{display:flex;flex-direction:column;gap:4px}.stbt button{width:30px;height:28px;border-radius:8px;border:1px solid var(--line);background:var(--pane);color:var(--ink);cursor:pointer;font-weight:800}.stbt button:disabled{opacity:.35}
.snm{flex:1;min-width:0}.snm b{display:block;font-size:14px}.snm small{font-size:12px;color:var(--muted)}
.snimg{width:44px;height:44px;border-radius:8px;object-fit:cover;flex:none;cursor:pointer}
.snadd{display:flex;flex-direction:column;gap:8px;margin-top:12px;padding:12px;border-radius:14px;background:var(--glass)}
.snadd input,.snadd select{height:40px;border-radius:10px;border:1px solid var(--line);padding:0 10px;font:inherit;background:var(--pane);color:var(--ink);min-width:0}
.snadd2{display:flex;gap:8px}.snadd2>*{flex:1}.snadd .phpick{margin-top:0;background:var(--pane)}
.hodone{display:flex;gap:12px;align-items:center;padding:12px;border-radius:14px;background:var(--good-bg);margin-bottom:10px}
.hoic{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;background:#16A34A;color:#fff;font-weight:800;font-size:18px}.hoic svg{width:22px;height:22px}
.hodone b{display:block;font-size:14.5px}.hodone span{font-size:12.5px;color:var(--ink2)}
.wcard>svg{width:22px;height:22px;color:#1A16B8;flex:none}.wcard>div{flex:1;min-width:160px}.wcard b{display:block;font-size:14px}.wcard span{font-size:12.5px;color:var(--ink2)}
.hochk{display:flex;flex-direction:column;gap:6px;margin:0 0 12px}.hochk>div{display:flex;gap:8px;align-items:center;font-size:13.5px}
.hochk i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:800;font-size:12px}.matsum{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 10px}.matsum>div{text-align:center;padding:8px 4px;border-radius:12px;background:var(--glass)}.matsum b{display:block;font-size:18px}.matsum span{font-size:11.5px;color:var(--ink2);font-weight:700}
.matsum .ms-ordered{background:#EAF2FF}.matsum .ms-delivered{background:var(--good-bg)}
.matst{height:34px;border-radius:999px;border:1px solid var(--line);padding:0 10px;font:inherit;font-size:12.5px;font-weight:700;background:var(--pane);color:var(--ink);flex:none}
.matst.ms-needed{background:var(--warn-bg);color:var(--warn);border-color:transparent}.matst.ms-ordered{background:#EAF2FF;color:#1A56DB;border-color:transparent}.matst.ms-delivered{background:var(--good-bg);color:#15803D;border-color:transparent}.matst.ms-used{background:var(--glass);color:var(--muted);border-color:transparent}
@media (min-width:900px){.sitepick{grid-template-columns:repeat(4,1fr)}}
.pbi svg{width:20px;height:20px}
.pbt{flex:1;display:flex;flex-direction:column;min-width:0}
.pbt b{font-size:15px;font-weight:600}
.pbt small{font-size:12.5px;color:#5B6178}
.msbar{display:block;height:5px;border-radius:9px;background:#EEF0F5;margin-top:6px;overflow:hidden;max-width:180px}
.msbar i{display:block;height:100%;background:linear-gradient(90deg,#38BDF8,#2F6BFF);border-radius:9px}
.msamt{display:flex;flex-direction:column;align-items:flex-end}
.msamt small{font-size:11.5px;color:#16A34A}
.payed{font-style:normal;font-size:11px;font-weight:600;color:#1F42D7;background:#FFF1E6;padding:1px 7px;border-radius:999px;margin-inline-start:4px}
.pjgt{font-weight:600!important;font-size:17px!important;letter-spacing:-.01em}
.paybn em{color:#2F5BD6!important}
.hchip.h-risk{background:#EEF4FF!important;color:#2F5BD6!important}.hchip.h-risk i{background:#4F7BEA!important}
.sitewarn{background:#EEF4FF!important}.sitewarn svg{color:#2F5BD6!important}
.tkplus{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#2F5BD6;color:#fff;font-size:22px;line-height:1}
.tklist{display:flex;flex-direction:column;gap:8px}
.tkrow{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:0;border-radius:16px;background:#fff;box-shadow:0 0 0 1px rgba(20,24,60,.07),0 6px 14px -12px rgba(20,24,60,.35);font:inherit;text-align:start;color:#0B0D17;cursor:pointer}
.tkm{flex:1;min-width:0}.tkm b{display:block;font-size:14px;font-weight:600}.tkm small{display:block;font-size:12px;color:#5B6178;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pjsum{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
.pjask{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;background:#EEF3FF;border-radius:16px;padding:12px 14px;margin:0 0 12px}.pjask b{display:block;font-size:14.5px;color:#1F3FD6}.pjask span{font-size:12.5px;color:#55574F}
.pjask-r{display:flex;gap:8px;align-items:center}.pjask-r input{height:38px;border-radius:10px;border:1px solid rgba(0,0,0,.15);padding:0 8px;font:inherit}
.tkpush{display:grid;gap:2px;width:100%;text-align:start;border:0;border-radius:14px;padding:10px 14px;margin:0 0 12px;background:#EEF3FF;color:#1F3FD6;font:inherit;cursor:pointer}.tkpush b{font-size:14px}.tkpush span{font-size:12.5px;color:#55574F}
.repiss{color:#D92D20!important;font-weight:700}
.nbcats{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;margin:0 -2px 10px;scrollbar-width:none}.nbwhere{display:flex;gap:8px;align-items:center;margin-bottom:6px}.nbwhere select{flex:1;min-width:0;height:36px;border-radius:10px;border:1px solid var(--line,#E5E7EB);padding:0 8px;background:var(--pane,#fff);color:inherit}
.nbmap{border-radius:16px;overflow:hidden;border:1px solid var(--line,#E5E7EB);height:min(58vh,440px)}.nbmap iframe{width:100%;height:100%;border:0;display:block}
.nbask{background:#FEF2F2;border-radius:16px;padding:28px 16px;text-align:center;display:flex;flex-direction:column;gap:6px;color:#7F1D1D}.nbask span{font-size:13px;color:#991B1B}
/* 4.7.0: Team today (HR) tiles and the staff-alarm "Seen / Not yet" line */
.tmtiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:12px 0 4px}
.tmtile{display:grid;gap:2px;text-align:start;background:var(--pane);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font:inherit;color:inherit;cursor:pointer}
.tmtile b{font-size:22px;line-height:1.1}.tmtile span{font-size:12.5px;opacity:.75}
.tmtile.warn{border-color:var(--warn,#F2A33A);background:var(--warn-bg,#FFF6E8)}
.jack{margin:6px 0 0;font-size:12.5px}
.bzic.hot{color:var(--warn,#F2A33A)}
/* 5.1.0: payroll run */
.pybanner{display:grid;gap:2px;width:100%;text-align:start;border:0;border-radius:14px;padding:12px 14px;margin:10px 0 12px;background:#EEF3FF;color:#1F3FD6;font:inherit;cursor:pointer}.pybanner span{font-size:12.5px;color:#55574F}
.pylist{display:grid;gap:8px;margin-top:12px}
.pyrow{background:var(--pane);border:1px solid var(--line);border-radius:14px;padding:10px 12px;display:grid;gap:6px}
.pyhd{display:flex;justify-content:space-between;gap:8px}.pyhd .num{font-weight:700}
.pybr{font-size:12px;opacity:.75}
.pyadj{display:grid;grid-template-columns:1fr 1fr 2fr;gap:6px}.pyadj label{display:grid;gap:2px;font-size:11.5px;opacity:.85;min-width:0}
.pyadj input{width:100%;min-width:0;border:1px solid var(--line);border-radius:9px;padding:7px;background:var(--pane);font:inherit;font-size:13px}
@media (max-width:380px){.pyadj{grid-template-columns:1fr 1fr}.pyadj .pynote{grid-column:1/-1}}
.pyft{display:flex;align-items:center;gap:8px}.pyft .pym{flex:1;font-size:12px;opacity:.8}
.pywps{width:100%;margin-top:12px;border-radius:999px}
/* ---------- 5.6.0 Programme (Gantt) — projects/stages/programme.js ---------- */
.pgsum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:0 0 12px}
.pgk{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;background:var(--pane);border:1px solid var(--line);min-width:0}
.pgk span{font-size:11.5px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pgk b{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pgk.bad b{color:var(--bad,#C8283A)}
.pgbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.pgseg{flex:none}
.pgoff{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--muted);margin-inline-start:auto}
.pgoff select{height:34px;border-radius:9px;border:1px solid var(--line);background:var(--pane);padding:0 8px;color:var(--ink);max-width:170px}
.pghint{margin-top:10px}
/* chart */
.pgw{--rh:44px;display:grid;grid-template-columns:150px minmax(0,1fr);border:1px solid var(--line);border-radius:14px;background:var(--pane);overflow:hidden}
.pgnames{border-inline-end:1px solid var(--line);min-width:0;background:var(--pane);z-index:1}
.pghd{height:44px;border-bottom:1px solid var(--line);position:relative}
.pgnm{display:flex;align-items:center;gap:8px;width:100%;height:var(--rh);padding:0 10px;border:0;border-bottom:1px solid var(--line);background:none;text-align:start;color:var(--ink);font:inherit;cursor:pointer;min-width:0}
.pgnm:last-child{border-bottom:0}
.pgnm span{flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--glass);color:var(--ink2)}
.pgnm b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.pgnm.done span{background:var(--good-bg,#E2F6EC);color:#0F8A52}
.pgnm.late span{background:var(--bad-bg,#FDE8EB);color:var(--bad,#C8283A)}
.pgsc{overflow-x:auto;overflow-y:hidden;min-width:0;-webkit-overflow-scrolling:touch;direction:ltr} /* time runs left to right in Arabic too */
.pgin{position:relative}
.pgin .pghd{position:relative}
.pgm{position:absolute;top:5px;font-size:11.5px;font-weight:700;color:var(--ink);white-space:nowrap;padding-inline-start:4px}
.pgt{position:absolute;top:24px;font-size:10.5px;color:var(--muted);white-space:nowrap;padding-inline-start:3px;border-inline-start:1px solid var(--line)}
.pgrows{position:relative;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent calc(var(--rh) - 1px),var(--line) calc(var(--rh) - 1px),var(--line) var(--rh))}
.pgoffd{position:absolute;top:0;bottom:0;background:var(--glass);opacity:.7}
.pgml{position:absolute;top:0;bottom:0;width:1px;background:var(--line)}
.pglinks{position:absolute;inset:0;pointer-events:none;overflow:visible}
.pglinks path{fill:none;stroke:#8C96AE;stroke-width:1.2}
.pglinks marker path{fill:#8C96AE;stroke:none}
.pgnow{position:absolute;top:0;bottom:0;width:0;border-inline-start:2px solid #E0354B;z-index:2;pointer-events:none}
.pgnow em{position:absolute;top:-1px;inset-inline-start:-2px;transform:translateX(-50%);font-style:normal;font-size:10px;font-weight:700;color:#fff;background:#E0354B;border-radius:6px;padding:1px 5px;white-space:nowrap}
.pgb{position:absolute;height:26px;border-radius:8px;background:#DCE6FF;border:1.5px solid #3461DC;overflow:hidden;cursor:grab;touch-action:none;z-index:3;display:flex;align-items:center;user-select:none}
.pgb i{position:absolute;inset:0 auto 0 0;background:#3461DC;opacity:.28}
.pgb span{position:relative;font-size:11px;font-weight:700;color:#1D3A99;padding:0 8px;white-space:nowrap}
.pgb.crit{border-color:#1800AD;background:#E2DEFF}
.pgb.crit i{background:#1800AD}
.pgb.crit span{color:#1800AD}
.pgb.late{border-color:#E0354B;background:#FFE8EB}
.pgb.late i{background:#E0354B}
.pgb.late span{color:#B4232A}
.pgb.done{border-color:#12955A;background:#E1F6EC;cursor:pointer}
.pgb.done i{background:#12955A}
.pgb.done span{color:#0F7A47}
.pgb.drag{box-shadow:0 8px 18px -8px rgba(11,40,120,.5);cursor:grabbing;opacity:.92}
.pgh{position:absolute;inset-inline-end:0;top:0;bottom:0;width:12px;cursor:ew-resize;background:linear-gradient(90deg,transparent,rgba(0,0,0,.08))}
.pgbl{position:absolute;font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;pointer-events:none;z-index:3}
.pgkey{display:flex;gap:14px;flex-wrap:wrap;margin:8px 2px 0;font-size:11.5px;color:var(--muted)}
.pgkey span{display:inline-flex;align-items:center;gap:5px}
.pgkey i{width:14px;height:10px;border-radius:3px;border:1.5px solid}
.pgkey .k-crit{border-color:#1800AD;background:#E2DEFF}
.pgkey .k-late{border-color:#E0354B;background:#FFE8EB}
.pgkey .k-done{border-color:#12955A;background:#E1F6EC}
.pgkey .k-off{border-color:transparent;background:var(--glass)}
/* list (phone) */
.pglist{display:flex;flex-direction:column;gap:8px}
.pgl{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start;width:100%;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--pane);text-align:start;font:inherit;color:var(--ink);cursor:pointer}
.pgln{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--glass);color:var(--ink2)}
.pgl.done .pgln{background:var(--good-bg,#E2F6EC);color:#0F8A52}
.pgl.late{border-color:#F3B4BD}
.pgl.late .pgln{background:var(--bad-bg,#FDE8EB);color:var(--bad,#C8283A)}
.pglm{display:flex;flex-direction:column;gap:3px;min-width:0}
.pglm b{font-size:14.5px;font-weight:600}
.pglm small{font-size:12.5px;color:var(--muted)}
.pgprog{height:5px;border-radius:3px;background:var(--glass);overflow:hidden;margin-top:4px}
.pgprog i{display:block;height:100%;background:#3461DC;border-radius:3px}
.pglt{display:flex;flex-direction:column;align-items:flex-end}
.pgc{font-style:normal;font-size:11.5px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--glass);color:var(--ink2);white-space:nowrap}
.pgc.ok{background:var(--good-bg,#E2F6EC);color:#0F8A52}
.pgc.bad{background:var(--bad-bg,#FDE8EB);color:var(--bad,#C8283A)}
.pgc.crit{background:#E2DEFF;color:#1800AD}
/* stage editor */
.pgedit .frow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pgafter{display:flex;flex-wrap:wrap;gap:6px}
.pgchk{display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.pgchk input{width:16px;height:16px;accent-color:#3461DC;margin:0}
.pgcrit{background:#EEEBFF;border-radius:10px;padding:10px 12px;color:#1800AD}
.pgopen{margin-inline-start:auto}
/* 5.7.0 baseline, diamonds, share, Vegobot plan */
.pgsum.b5{grid-template-columns:repeat(5,minmax(0,1fr))}
.pgk.ok b{color:#0F8A52}
.pgtools{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}
.pgtools .btn{display:inline-flex;align-items:center;gap:6px}
.pgtools .ipdf{width:15px;height:17px}
.pgbase{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 10px;font-size:12.5px;color:var(--muted)}
.pgbase select{height:30px;border-radius:8px;border:1px solid var(--line);background:var(--pane);padding:0 8px;color:var(--ink);font-size:12.5px}
.pgbk{width:18px;height:4px;border-radius:2px;background:#9AA1B2;flex:none}
.pgbb{position:absolute;height:4px;border-radius:2px;background:#9AA1B2;opacity:.8;z-index:2;pointer-events:none}
.pgbb.slip{background:#B9A2A6}
.pgd{position:absolute;width:32px;height:32px;padding:0;border:0;background:none;z-index:4;cursor:pointer;--dc:#0E9AA7}
.pgd::before{content:"";position:absolute;inset:9px;transform:rotate(45deg);border-radius:2px;background:var(--dc);box-shadow:0 0 0 2px var(--pane)}
.pgd.t-appr{--dc:#12955A}.pgd.t-permit{--dc:#3461DC}.pgd.t-expiry{--dc:#E0354B}
.pgd.done::before{opacity:.55}
.pgmrow{cursor:default}.pgmrow span{background:#DFF5F7!important;color:#0B7883!important;font-size:10px!important}
.pgkey .k-base{height:4px!important;border:0!important;background:#9AA1B2}
.pgkey .k-pay,.pgkey .k-appr,.pgkey .k-permit{width:9px!important;height:9px!important;border:0!important;transform:rotate(45deg);border-radius:1px!important;background:#0E9AA7}
.pgkey .k-appr{background:#12955A}.pgkey .k-permit{background:#3461DC}
.pgbl2{color:var(--muted)}.pgbl2.bad{color:var(--bad,#C8283A)}
.pgmh{font-size:14px;margin:16px 2px 8px}
.pgmlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:14px;background:var(--pane);overflow:hidden}
.pgmi{display:grid;grid-template-columns:14px 86px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:13px}
.pgmi:last-child{border-bottom:0}
.pgmi .pgd{position:relative;width:12px;height:12px;cursor:default}.pgmi .pgd::before{inset:1px;box-shadow:none}
.pgmi b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pgmi em{font-style:normal;font-size:11.5px;color:var(--muted)}
.pgmi.done{color:var(--muted)}
.pgailist{display:flex;flex-direction:column;gap:8px}
.pgair{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--pane)}
.pgair.done{grid-template-columns:28px minmax(0,1fr) auto;color:var(--muted)}
.pgaim{display:flex;flex-direction:column;gap:3px;min-width:0}
.pgaim input{height:36px;border-radius:9px;border:1px solid var(--line);background:var(--bg);padding:0 10px;color:var(--ink);font:inherit;font-weight:600;min-width:0}
.pgaim small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pgaid{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.pgaid input{width:58px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--bg);padding:0 8px;color:var(--ink);font:inherit;text-align:center}
/* full screen (big screens) */
@media (min-width:900px){#sheet.pgwide[data-mode="project"]{width:auto!important;inset:16px!important;transform:none!important;max-height:none!important;top:16px!important;left:16px!important;right:16px!important;bottom:16px!important}}
@media (max-width:899px){.pgfull{display:none}}
@media (max-width:560px){.pgsum,.pgsum.b5{grid-template-columns:repeat(2,minmax(0,1fr))}.pgw{grid-template-columns:112px minmax(0,1fr)}.pgoff{margin-inline-start:0}}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .pgb{background:#1A2A52;border-color:#7FA8FF}:root:not([data-theme="light"]) .pgb span{color:#C9D8FF}:root:not([data-theme="light"]) .pgb.crit{background:#2A2152;border-color:#B49BFF}:root:not([data-theme="light"]) .pgb.crit span{color:#D9CCFF}:root:not([data-theme="light"]) .pgb.late{background:#3A1A20;border-color:#FF8A95}:root:not([data-theme="light"]) .pgb.late span{color:#FFC2C8}:root:not([data-theme="light"]) .pgb.done{background:#14301F;border-color:#5ED39A}:root:not([data-theme="light"]) .pgb.done span{color:#B5EBCF}:root:not([data-theme="light"]) .pgcrit{background:#2A2152;color:#D9CCFF}}
:root[data-theme="dark"] .pgb{background:#1A2A52;border-color:#7FA8FF}:root[data-theme="dark"] .pgb span{color:#C9D8FF}:root[data-theme="dark"] .pgb.crit{background:#2A2152;border-color:#B49BFF}:root[data-theme="dark"] .pgb.crit span{color:#D9CCFF}:root[data-theme="dark"] .pgb.late{background:#3A1A20;border-color:#FF8A95}:root[data-theme="dark"] .pgb.late span{color:#FFC2C8}:root[data-theme="dark"] .pgb.done{background:#14301F;border-color:#5ED39A}:root[data-theme="dark"] .pgb.done span{color:#B5EBCF}:root[data-theme="dark"] .pgcrit{background:#2A2152;color:#D9CCFF}
