/* Provider pages · additions to content.css §D. Same grammar: hairlines, dot + word, no fills. */
.pp-acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.pp-acts .sh-btn svg{margin-right:4px}.pp-acts .sh-btn.ghost svg{margin:0 0 0 4px}
.pp-tag{display:inline-block;margin-left:6px;padding:0 5px;border:1px solid var(--app-rule-strong);border-radius:3px;font:500 var(--app-t-micro)/18px var(--app-font);color:var(--app-ink-muted);vertical-align:middle;white-space:nowrap}
.pp-ts{margin-left:auto;font-size:var(--app-t-micro);font-weight:400}
.pp-sub{margin-top:6px;font-size:var(--app-t-micro)}
.pp-sub .sh-dot{margin-right:5px}
.pp-narrow{overflow-x:hidden}
.pp-win{position:relative;margin:10px 0 2px;overflow:hidden;padding-top:6px}.pp-win .ev-bar{height:6px;margin:0}
.pp-win b{position:absolute;top:0;width:2px;height:18px;background:var(--app-accent);margin-left:-1px}
.pp-winlab{display:flex;justify-content:space-between;font-size:var(--app-t-micro);margin-bottom:6px}
.pp-mid{font-variant-numeric:tabular-nums;white-space:nowrap}
.ev-rel .pp-mid{margin-right:8px}
.ev-oh .sh-ava{margin-right:8px}
.ev-oh .mut{margin:0 10px;font-size:var(--app-t-micro)}
.ev-figs .ev-fig.un b{font-size:var(--app-t-title);color:var(--app-ink-faint)}
.sh:is([data-target="mobile"],[data-target="ios"]) .pp-acts .sh-btn:not(.primary){padding-left:10px;padding-right:10px}
.sh:is([data-target="mobile"],[data-target="ios"]) .ev-figs{grid-template-columns:repeat(2,minmax(0,1fr))}
.pp-narrow .ev-ladder th:nth-child(n+5),.pp-narrow .ev-ladder td:nth-child(n+5){display:none}
.pp-narrow .ev-ladder.wide6 th:nth-child(3),.pp-narrow .ev-ladder.wide6 td:nth-child(3){display:none}
.pp-narrow .ev-fresh{white-space:normal;line-height:1.35}
.pp-narrow .ev-figs{grid-template-columns:repeat(2,minmax(0,1fr))}
.pp-narrow .ev-fig .of{white-space:normal}
.ev-cc .ev-fig .of{white-space:normal}
/* Mindbody lanes · Reservations preset */
.pp-lanes{--lw:128px;display:flex;flex-direction:column;border:1px solid var(--app-rule);border-radius:var(--app-r-card);overflow:auto;background:var(--color-base-100);scrollbar-width:thin}
.pp-lanes .hd,.pp-lanes .lane{display:grid;grid-template-columns:160px calc(var(--lw) * var(--n));min-width:max-content}
.pp-lanes .hd{border-bottom:1px solid var(--app-rule-strong);font:500 var(--app-t-micro)/1 var(--app-font);color:var(--app-ink-muted)}
.pp-lanes .hd>div:not(.lane-k){display:none}
.pp-lanes .hd::after{content:"";}
.pp-lanes .hd{grid-template-columns:160px repeat(var(--n),var(--lw))}
.pp-lanes .hd>div:not(.lane-k){display:block;padding:8px 6px;border-left:1px solid var(--app-rule)}
.pp-lanes .lane-k{position:sticky;left:0;z-index:1;background:var(--color-base-100);border-right:1px solid var(--app-rule);padding:8px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.pp-lanes .lane-k b{font-weight:550;color:var(--app-ink);font-size:var(--app-t-body)}.pp-lanes .lane-k small{color:var(--app-ink-muted);font-size:var(--app-t-micro)}
.pp-lanes .lane{border-top:1px solid var(--app-rule);min-height:92px}
.pp-lanes .track{position:relative;background:repeating-linear-gradient(90deg,var(--app-rule) 0 1px,transparent 1px var(--lw))}
.pp-lanes .it{position:absolute;top:6px;bottom:6px;min-width:132px;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:4px 8px;border:1px solid var(--app-rule-strong);border-radius:var(--app-r-card);background:var(--color-base-100);text-align:left;color:var(--app-ink);font:inherit;min-width:0;overflow:hidden}
.pp-lanes .it b{font-weight:550;font-size:var(--app-t-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}.pp-lanes .it b .ev-badge{flex:none}
.pp-lanes .it small{color:var(--app-ink-muted);font-size:var(--app-t-micro);white-space:normal;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pp-lanes button.it{cursor:pointer}.pp-lanes button.it:hover{background:var(--app-table-row-hover-bg)}
.pp-lanes .it.canc{color:var(--app-ink-muted);border-style:dashed}.pp-lanes .it.appt{border-radius:999px}

/* sales over time · cumulative tickets (ink) and revenue (muted, dashed); campaign marks as ticks */
.pp-sales{margin:14px 0 4px}
.pp-sales svg{display:block;width:100%;height:72px;border-bottom:1px solid var(--app-rule);overflow:visible}
.pp-sales .qty{fill:none;stroke:var(--app-ink);stroke-width:1.5;vector-effect:non-scaling-stroke}
.pp-sales .rev{fill:none;stroke:var(--app-ink-muted);stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.pp-sales .mk{stroke:var(--app-accent);stroke-width:1;vector-effect:non-scaling-stroke;opacity:.9}
.pp-sales-lab{display:flex;justify-content:space-between;font-size:var(--app-t-micro);margin-top:4px}
.pp-sales-leg{display:flex;gap:14px;align-items:center;font-size:var(--app-t-micro);margin-top:6px;flex-wrap:wrap}
.pp-sales-leg i{display:inline-block;width:12px;height:0;border-top:1.5px solid var(--app-ink);margin-right:5px;vertical-align:middle}
.pp-sales-leg i.r{border-top:1px dashed var(--app-ink-muted)}.pp-sales-leg i.m{width:0;height:10px;border-top:0;border-left:1px solid var(--app-accent)}
.pp-cmp{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:4px 0 10px;font-size:var(--app-t-micro)}
.pp-attr{margin-top:8px}
.ev-cc-side .pp-sales svg{height:56px}
