/* CoreIQ Office — Planner: layout, planogram, execution, programs, review */
.ly-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 340px;gap:16px;align-items:start}
.ly-lib,.ly-right{display:flex;flex-direction:column;gap:16px}
.ly-right{position:sticky;top:0}
.ly-center{display:flex;flex-direction:column;gap:16px;min-width:0}
.ly-lib-list{display:flex;flex-direction:column;gap:4px;margin-top:10px}
.ly-lib-item{display:flex;align-items:center;gap:10px;text-align:left;padding:8px 9px;border-radius:8px;border:1px solid transparent;background:none;cursor:pointer;font-family:inherit;color:var(--text)}
.ly-lib-item:hover{background:var(--bg-subtle)}
.ly-lib-item.is-on{border-color:var(--brand);background:var(--brand-bg)}
.ly-lib-item strong{display:block;font-size:12.5px;font-weight:600}
.ly-lib-item em{display:block;font-size:10.5px;color:var(--text-subtle);font-style:normal}
.ly-sw{width:12px;height:12px;border-radius:3px;flex-shrink:0;display:inline-block}
.ly-canvas{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:10px;overflow:hidden}
.ly-canvas svg{display:block;width:100%;height:auto;touch-action:none;user-select:none}
.ly-canvas.is-placing svg{cursor:crosshair}
.ly-canvas-hint{font-size:11px;color:var(--text-subtle);padding:6px 4px 0}
.ly-t{font-family:var(--font-sans,inherit);text-anchor:middle;dominant-baseline:middle;pointer-events:none}
.ly-t--room{font-size:.32px;fill:var(--text-subtle)}
.ly-t--zone{font-size:.3px;fill:var(--text-muted);text-anchor:start;font-weight:600;text-transform:uppercase;letter-spacing:.02px}
.ly-t--fx{font-size:.3px;fill:#fff;font-weight:700}
.ly-t--door{font-size:.3px;fill:var(--paid-text);font-weight:600}
.ly-t--exit{font-size:.28px;fill:var(--void-text);font-weight:600}
.ly-zone{fill:transparent;stroke:var(--border-strong);stroke-width:.04;stroke-dasharray:.2 .12}
.ly-zone--dispensing{fill:color-mix(in oklch,var(--brand) 7%,transparent);stroke:var(--brand)}
.ly-zone--retail{fill:color-mix(in oklch,var(--text) 2%,transparent)}
.ly-zone--back{fill:var(--bg-subtle)}
.ly-zone.is-on{stroke-width:.08;stroke-dasharray:none}
span.ly-zone--dispensing{background:color-mix(in oklch,var(--brand) 25%,transparent)}
span.ly-zone--retail{background:var(--border-strong)}
span.ly-zone--back{background:var(--bg-subtle);border:1px solid var(--border-strong)}
.ly-fx{fill:var(--ly-c);stroke:color-mix(in oklch,var(--ly-c) 70%,#000);stroke-width:.03}
.ly-fx.is-svc{fill:var(--bg-subtle);stroke:var(--border-strong)}
.ly-fx.is-svc+line+text,.ly-fx.is-svc~.ly-t--fx{fill:var(--text-muted)}
.ly-fx.is-on{stroke:var(--text);stroke-width:.09}
.ly-fx.is-flag{stroke:var(--void-text);stroke-width:.08;stroke-dasharray:.15 .08}
.ly-bayline{stroke:rgba(255,255,255,.55);stroke-width:.03}
.ly-insp{display:flex;flex-direction:column;gap:10px}
.pb-f select{width:100%;box-sizing:border-box;font-family:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;padding:7px 9px}
.ly-insp-h{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.ly-sec{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin-top:6px;display:flex;align-items:center;gap:8px;justify-content:space-between}
.ly-sec span{text-transform:none;letter-spacing:0;font-weight:600}
.ly-warn{color:var(--void-text)!important}
.ly-grid4{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ly-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ly-num{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text-muted)}
.ly-num>div{display:flex;align-items:center;border:1px solid var(--border-strong);border-radius:7px;background:var(--surface);overflow:hidden}
.ly-num input{flex:1;min-width:0;border:0;background:none;padding:6px 8px;font-family:var(--font-mono);font-size:12.5px;color:var(--text)}
.ly-num em{font-style:normal;font-size:11px;color:var(--text-subtle);padding-right:8px}
.ly-bays{display:flex;gap:3px}
.ly-bay{min-width:0;display:flex;flex-direction:column;align-items:center;padding:6px 2px;border-radius:6px;border:1px solid var(--border-strong);background:var(--bg-subtle);cursor:pointer;font-family:inherit;color:var(--text)}
.ly-bay strong{font-size:11.5px}.ly-bay span{font-size:10px;color:var(--text-subtle);font-family:var(--font-mono)}
.ly-bay.is-on{border-color:var(--brand);background:var(--brand-bg)}
.ly-row-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:flex-end;margin-top:6px}
.ly-row-acts .ly-num{width:110px}
.ly-shelves{display:flex;flex-direction:column;gap:10px}
.ly-elev{position:relative;height:170px;border:2px solid var(--ly-c);border-top-width:4px;border-radius:4px;background:var(--bg-subtle)}
.ly-elev-s{position:absolute;left:0;right:0;height:3px;background:var(--ly-c);display:flex;justify-content:space-between}
.ly-elev-s--peg{background:repeating-linear-gradient(90deg,var(--ly-c) 0 3px,transparent 3px 9px)}
.ly-elev-s--basket{height:8px;background:repeating-linear-gradient(90deg,var(--ly-c) 0 1px,transparent 1px 5px);border-bottom:2px solid var(--ly-c)}
.ly-elev-s span,.ly-elev-s em{font-size:9px;font-weight:700;color:var(--text-muted);transform:translateY(-12px);padding:0 4px;font-style:normal}
.ly-elev-s em{color:var(--brand)}
.ly-elev-cap{position:absolute;bottom:-20px;left:0;font-size:10.5px;color:var(--text-subtle);font-family:var(--font-mono)}
.ly-shelf-list{margin-top:14px;display:flex;flex-direction:column;gap:4px}
.ly-shelf-h,.ly-shelf-r{display:grid;grid-template-columns:30px 62px 62px minmax(0,1fr) 26px 26px;gap:5px;align-items:center}
.ly-shelf-h span{font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);font-weight:600}
.ly-shelf-r strong{font-size:11.5px;font-family:var(--font-mono)}
.ly-shelf-r input,.ly-shelf-r select{width:100%;min-width:0;box-sizing:border-box;font-family:inherit;font-size:12px;padding:4px 5px;border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);color:var(--text)}
.ly-x{width:24px;height:24px;display:grid;place-items:center;border:0;background:none;border-radius:6px;color:var(--text-subtle);cursor:pointer}
.ly-x:hover:not(:disabled){background:var(--void-bg);color:var(--void-text)}
.ly-x:disabled{opacity:.35;cursor:not-allowed}
.ly-listbtn{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 9px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer;font-family:inherit;font-size:12.5px;color:var(--text)}
.ly-listbtn em{margin-left:auto;font-style:normal;font-size:11px;color:var(--text-subtle)}
.ly-aisle{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:4px 6px;padding:8px 9px;border-radius:9px;background:var(--bg-subtle)}
.ly-aisle input{font-family:inherit;font-weight:600;font-size:12.5px;border:0;background:none;color:var(--text);padding:0}
.ly-aisle-fx{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px}
.ly-aisle .ly-x{grid-row:1;grid-column:2}
.ly-chip{font-family:inherit;font-size:10.5px;padding:2px 7px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);cursor:pointer}
/* planogram */
.pog-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 320px;gap:16px;align-items:start}
.pog-baylist{max-height:72vh;overflow:auto;display:flex;flex-direction:column;gap:12px}
.pog-grp{display:flex;flex-direction:column;gap:3px}
.pog-baybtn{display:grid;grid-template-columns:62px minmax(0,1fr) 38px;gap:6px;align-items:center;text-align:left;padding:6px 8px;border-radius:7px;border:1px solid transparent;background:none;font-family:inherit;font-size:12px;color:var(--text);cursor:pointer}
.pog-baybtn:hover{background:var(--bg-subtle)}
.pog-baybtn.is-on{background:var(--brand-bg);border-color:var(--brand)}
.pog-baybtn .off-cell-mono{font-size:11px}
.pog-baybtn-c{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pog-baybtn-c em{color:var(--text-subtle)}
.pog-fill{font-family:var(--font-mono);font-size:10.5px;text-align:right;color:var(--paid-text)}
.pog-fill.is-low{color:var(--text-subtle)}.pog-fill.is-over{color:var(--void-text)}
.pog-elev{min-width:0}
.pog-shelves{display:flex;flex-direction:column;gap:6px;margin-top:12px}
.pog-shelf{display:grid;grid-template-columns:118px minmax(0,1fr);gap:8px;align-items:stretch;position:relative}
.pog-shelf-meta{display:grid;grid-template-columns:1fr 1fr;gap:0 6px;font-size:10px;color:var(--text-subtle);font-family:var(--font-mono);align-content:end;padding-bottom:4px}
.pog-shelf-meta strong{font-size:12px;color:var(--text)}
.pog-track{display:flex;align-items:flex-end;height:74px;border-bottom:4px solid var(--text-muted);background:var(--bg-subtle);border-radius:4px 4px 0 0;cursor:pointer;overflow:hidden}
.pog-track--peg{border-bottom-style:dotted}
.pog-track--fridge{background:color-mix(in oklch,oklch(0.6 0.12 220) 10%,var(--bg-subtle));border-bottom-color:oklch(0.6 0.12 220)}
.pog-track--safe{background:color-mix(in oklch,var(--text) 8%,var(--bg-subtle))}
.pog-item{position:relative;flex-shrink:0;display:flex;align-items:stretch;border:0;padding:0;margin:0;background:oklch(0.86 0.06 var(--pg-h));border-right:1px solid var(--surface);cursor:pointer;min-height:24px;overflow:hidden;font-family:inherit}
.pog-item i{flex:1;border-right:1px dashed oklch(0.65 0.08 var(--pg-h))}
.pog-item i:last-of-type{border-right:0}
.pog-item span{position:absolute;inset:auto 2px 2px 2px;font-size:9px;line-height:1.1;color:oklch(0.3 0.06 var(--pg-h));font-weight:600;text-align:left;overflow:hidden;max-height:2.2em}
.pog-item.is-on{outline:2px solid var(--text);outline-offset:-2px;z-index:1}
.pog-item.is-tall{background:repeating-linear-gradient(135deg,var(--void-bg) 0 4px,oklch(0.86 0.06 var(--pg-h)) 4px 8px)}
.pog-item.is-nodim{box-shadow:inset 0 3px 0 var(--hold-text)}
.pog-item.is-del{opacity:.45}
.pog-free{flex-shrink:0;align-self:center;font-size:9.5px;color:var(--text-subtle);text-align:center;font-family:var(--font-mono);white-space:nowrap;overflow:hidden}
.pog-move{position:absolute;right:4px;top:4px;display:flex;gap:2px;z-index:2}
.pog-move button{width:24px;height:22px;display:grid;place-items:center;border:1px solid var(--border-strong);background:var(--surface);border-radius:5px;cursor:pointer;color:var(--text)}
.pog-move button:disabled{opacity:.35}
.pog-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:11px;color:var(--text-muted)}
.pog-legend span{display:flex;align-items:center;gap:6px}
.pog-lg{width:14px;height:10px;border-radius:2px;display:inline-block;background:oklch(0.86 0.06 200)}
.pog-lg.is-tall{background:repeating-linear-gradient(135deg,var(--void-bg) 0 3px,oklch(0.86 0.06 200) 3px 6px)}
.pog-lg.is-nodim{box-shadow:inset 0 3px 0 var(--hold-text)}
.pog-lg.is-del{opacity:.45}
.pog-stepper{display:flex;align-items:center;gap:10px}
.pog-stepper strong{font-family:var(--font-mono);font-size:18px;min-width:22px;text-align:center}
.pog-search{width:100%;box-sizing:border-box;font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text)}
.pog-range{display:flex;flex-direction:column;gap:2px;max-height:52vh;overflow:auto}
.pog-range-i{display:flex;align-items:center;gap:9px;text-align:left;padding:6px 7px;border:0;border-radius:7px;background:none;font-family:inherit;color:var(--text);cursor:pointer}
.pog-range-i:hover{background:var(--bg-subtle)}
.pog-range-i strong{display:block;font-size:12px;font-weight:600}
.pog-range-i em{display:block;font-size:10.5px;color:var(--text-subtle);font-style:normal}
.pog-sw{width:10px;height:22px;border-radius:2px;flex-shrink:0;background:oklch(0.8 0.08 var(--pg-h))}
.pog-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px}
/* execution */
.ex-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.ex-job{display:flex;flex-direction:column;gap:16px;min-width:0}
.ex-jobbtn{display:flex;flex-direction:column;gap:3px;text-align:left;padding:10px 11px;border-radius:9px;border:1px solid var(--border);background:var(--surface);font-family:inherit;color:var(--text);cursor:pointer}
.ex-jobbtn strong{font-size:12.5px}.ex-jobbtn em{font-size:11px;font-style:normal;color:var(--text-subtle)}.ex-jobbtn span{font-size:11px;color:var(--text-muted)}
.ex-jobbtn.is-on{border-color:var(--brand);background:var(--brand-bg)}
.ex-prog{height:6px;border-radius:3px;background:var(--bg-subtle);margin:12px 0 4px;overflow:hidden}
.ex-prog div{height:100%;background:var(--brand);border-radius:3px}
.ex-steps{display:flex;gap:3px;flex-wrap:wrap}
.ex-step{display:inline-flex;align-items:center;gap:3px;font-family:inherit;font-size:10.5px;font-weight:600;padding:3px 7px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-subtle);cursor:pointer}
.ex-step.is-on{background:var(--paid-bg);border-color:transparent;color:var(--paid-text)}
.ex-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin-top:12px}
.ex-pcard{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface)}
.ex-pcard.is-pending{border-color:var(--hold-text)}
.ex-pcard.is-rejected{border-color:var(--void-text)}
.ex-photo-img{aspect-ratio:4/3;background:repeating-linear-gradient(45deg,var(--bg-subtle) 0 10px,color-mix(in oklch,var(--bg-subtle) 60%,var(--border)) 10px 20px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.ex-photo-img span{font-family:var(--font-mono);font-weight:700;font-size:13px}
.ex-photo-img em{font-size:10.5px;color:var(--text-subtle);font-style:normal}
.ex-pcard-b{padding:9px 10px;display:flex;flex-direction:column;gap:6px}
.ex-rej textarea{width:100%;box-sizing:border-box;font-family:inherit;font-size:12px;border:1px solid var(--border-strong);border-radius:7px;padding:6px 8px;background:var(--surface);color:var(--text)}
/* review */
.rv-locs{display:flex;flex-direction:column;gap:2px;font-size:11.5px;margin-top:3px}
.rv-locs b{font-weight:600;margin-right:4px}
.rv-ba,.rv-bar{display:grid;grid-template-columns:90px minmax(0,1fr) 80px;gap:8px;align-items:center;font-size:11.5px}
.rv-ba div,.rv-bar div{height:8px;background:var(--surface);border-radius:4px;overflow:hidden}
.rv-ba i,.rv-bar i{display:block;height:100%;background:var(--text-subtle);border-radius:4px}
.rv-ba.is-after i{background:var(--brand)}
.rv-ba b,.rv-bar b{font-family:var(--font-mono);text-align:right;font-weight:600}
.rv-bar{grid-template-columns:130px minmax(0,1fr) 90px}
.rv-bar div{background:var(--bg-subtle)}
.rv-up{color:var(--paid-text)!important;font-weight:600}.rv-down{color:var(--void-text)!important;font-weight:600}
.rv-exports{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.rv-rule{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-top:1px solid var(--border-subtle)}
.rv-rule strong{display:block;font-size:12.5px}.rv-rule em{display:block;font-size:11.5px;color:var(--text-muted);font-style:normal}
/* approve */
.ap-list{display:flex;flex-direction:column;gap:3px;font-size:12px}
.ap-k{display:inline-block;width:64px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle)}
.ap-k--added{color:var(--paid-text)}.ap-k--removed{color:var(--void-text)}
.ap-checks{display:flex;flex-direction:column;gap:6px}
.ap-check{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:8px;background:var(--bg-subtle);font-size:12.5px}
.ap-check strong{margin-left:auto;font-size:12px}
.ap-check.is-bad{background:var(--void-bg);color:var(--void-text)}
@media (max-width:1280px){.ly-layout{grid-template-columns:220px minmax(0,1fr)}.ly-right{grid-column:1/-1;position:static}.pog-layout{grid-template-columns:220px minmax(0,1fr)}.pog-layout>.ly-insp{grid-column:1/-1}}
@media (max-width:860px){.ly-layout,.pog-layout,.ex-layout{grid-template-columns:minmax(0,1fr)}.pog-baylist{max-height:260px}}

/* wide grids scroll inside their card */
.pm-mode .off-table{overflow-x:auto}
.pm-mode .off-table>.off-grid{min-width:max-content}
@media (max-width:1100px){.ex-layout{grid-template-columns:minmax(0,1fr)}}
