/* WS19-P leftovers — customer batch (~/Projects/reports/ws19p-part-customer.md #5, #6, #13). Loaded LAST. */

/* #5 — the white-label door's logo slot: `.gate-id .gi-logo{display:block}` beat the [hidden] attribute, so an empty <img>
   drew a broken-image speck above the brand name on the first screen a buyer sees */
.gate-id .gi-logo[hidden]{display:none!important}

/* #6 — the gate error reads as an error: danger ink with a mark, directly under the cells (app/index.html), and the six cells
   drop their solid "filled" look for a danger outline while the error stands (they looked complete and accepted) */
#gateerr:not(:empty){color:var(--c-bad);display:flex;align-items:center;justify-content:center;gap:var(--s2);margin-top:var(--s3)}
#gateerr:not(:empty)::before{content:"!";display:inline-grid;place-items:center;flex:none;width:18px;height:18px;border-radius:50%;
  border:1.5px solid currentColor;font-size:12px;font-weight:var(--fw-med);line-height:1}
body .gate:has(#gateerr:not(:empty)) .code .cell input{border-color:var(--c-bad)!important;background:var(--input-bg,transparent)!important;color:var(--fg)!important}

/* #13 — a decided quote's banner says WHICH decision: accepted in the success tint, declined in a quiet neutral (both were the same
   grey box with a heavy black border); the follow-up action sits on its own line */
.acceptbar.done:not([data-declined="1"]){background:var(--c-good-bg);border-color:var(--c-good);color:var(--fg)}
.acceptbar.done[data-declined="1"]{background:var(--card);border-color:var(--line);color:var(--fg)}
.acceptbar.done .ab-msg{color:var(--fg)}
.acceptbar.done #ab-msg button{display:block;margin-top:var(--s3);margin-left:auto}
@media (max-width:767px){.acceptbar.done #ab-msg button{margin-left:0}}

/* ---- WS19-P leftovers — owner batch (~/Projects/reports/ws19p-part-owner.md #8, #9, #20) ---- */
/* #8 — one row-action pattern: Approve is the filled primary, Suspend an outline, Terminate an outline in danger ink (it opens the
   type-the-email confirmation); a pending row is said by its status chip, not a grey band */
.qt .codebtn.pri{background:var(--primary);border-color:var(--primary);color:var(--primary-fg)}
.qt .codebtn.danger{color:var(--c-bad);border-color:var(--c-bad)}
/* #9 — the sub-tab strip on a phone: snap to tabs, and fade at the right edge while more tabs sit off-screen (app-main v22 asubsCue) */
@media (max-width:767px){
  .asubs{scroll-snap-type:x proximity}
  .asubs .asub{scroll-snap-align:start}
  .asubs.more-r{-webkit-mask-image:linear-gradient(to right,#000 82%,transparent);mask-image:linear-gradient(to right,#000 82%,transparent)}
}
/* #20 — the Catalog sync tab says what it is for */
.sync-intro{margin:0 0 var(--s4);color:var(--muted);max-width:68ch}

/* ---- WS19-P leftovers — rep batch (~/Projects/reports/ws19p-part-rep.md #9, #11, #15) ---- */
/* #9 — the undo toast's Undo is a real button; on a desktop builder the toast stack sits bottom-LEFT, clear of the products'
   right-hand actions (Price tiers, + Add to quote) */
.pqb-toast.undoable{display:flex;align-items:center;gap:var(--s3)}
.pqb-toast-undo{margin-left:auto;font:inherit;font-weight:var(--fw-med);background:transparent;border:1px solid currentColor;border-radius:var(--radius-btn);padding:0 var(--s3);min-height:32px;color:inherit;cursor:pointer}
@media (min-width:768px){body.builder-active #pqb-toasts{right:auto;left:calc(var(--rail-w,0px) + 24px)}}
/* #11 — the phone orders table fades at its right edge while columns remain off-screen (app-shell v6 ordCue) */
@media (max-width:767px){#ord-box.more-r{-webkit-mask-image:linear-gradient(to right,#000 85%,transparent);mask-image:linear-gradient(to right,#000 85%,transparent)}}
/* #15 — rail count badges fit two digits ("12" crossed the badge border). The review's hover-vs-current point is NOT changed here:
   the rail's hover fill is a pinned measured reference (the audit's rail checks) — a design decision for Oscar, not a polish fix. */
body.repshell .rail-item .cnt{min-width:24px;height:20px;padding:0 6px;line-height:18px;box-sizing:border-box;text-align:center}
