/* Driftr v45: Crew, Invite, approvals, faces, Show of Hands, tap-ins, Sealed Envelope, Recap.
   Owner: FE-PEOPLE. Every class here starts with pp- (plan 3.6); d- classes are only placed, never restyled
   globally. Tokens only (theme.css); hex only for the invite QR tile (scanners: #FFFFFF / #000000).
   prefers-reduced-motion: opacity only, 120 ms. */

/* ---------- shared bits ---------- */
.pp-av-xs{width:24px;height:24px;font-size:.75rem;}
.pp-has-photo{color:transparent;}
.pp-stack{flex:none;}
span.pp-stack{min-height:0;}
.pp-stack .d-av+.d-av{margin-left:-7px;}
.pp-stack .d-av-sm+.d-av-sm{margin-left:-8px;}
button.pp-stack,a.pp-stack{min-width:var(--tap);min-height:var(--tap);padding:0;border:0;background:none;cursor:pointer;justify-content:center;}
/* board sizes for crew rows: Trip 40 px faces at 30 px steps, Home cards 30 px at 24 px steps. An initials
   face that the next one overlaps centres its letter in the part still showing, so the ring never cuts it. */
.pp-faces-40 .d-av+.d-av{margin-left:-10px;}
.pp-faces-40 .d-av:not(:last-child):not(.pp-has-photo){padding-right:10px;}
.pp-faces-30 .d-av{width:30px;height:30px;font-size:.75rem;}
.pp-faces-30 .d-av+.d-av{margin-left:-6px;}
.pp-faces-30 .d-av:not(:last-child):not(.pp-has-photo){padding-right:6px;}
.pp-center{text-align:center;}
.pp-ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pp-strong{font-weight:600;}
.pp-stack-8{display:flex;flex-direction:column;gap:8px;}
.pp-stack-12{display:flex;flex-direction:column;gap:12px;}
.pp-chips{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px;}
.pp-rule{height:1px;background:var(--line);margin:20px 0 0;}
.pp-sheet-titles{flex:1;min-width:0;}
.pp-sheet-titles .d-t-label{margin-bottom:2px;}
.pp-foot-row{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.pp-foot-row .d-btn-wide{flex:1;width:auto;}
.pp-chev{color:var(--ink-2);flex:none;}
.pp-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;}
.pp-toggle-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.pp-sage-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--sage-ink);flex:none;}
.pp-setrow{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 0;border:0;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer;}
.pp-setrow:active{opacity:.7;}
.pp-setrow-label{flex:1;min-width:0;}
.pp-setrow-value{flex:none;}
.pp-section-label{margin:4px 0 0;}
.pp-linkblock:empty{display:none;}
.pp-linkline{display:flex;align-items:center;gap:8px;min-height:56px;padding:6px 0;}
.pp-linkline-text{display:flex;flex-direction:column;flex:1;min-width:0;}
.pp-linkline-acts{display:flex;align-items:center;gap:4px;flex:none;}
.pp-linkline .d-btn-quiet,.pp-linkline .d-btn-danger{min-width:var(--tap);padding:10px 8px;}
/* a segment is 36 px inside its 44 px track: the band reaches the track's edges */
.pp-seg button{position:relative;}
.pp-seg button::after{content:"";position:absolute;left:0;right:0;top:-4px;bottom:-4px;}

/* ---------- Crew tab (Crew board) ---------- */
.pp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:8px;}
.pp-waiting{margin-top:12px;}
.pp-wait-head{display:flex;align-items:center;gap:8px;}
.pp-wait{margin-top:4px;}
.pp-wait-row{display:grid;grid-template-columns:40px minmax(0,1fr);gap:12px;align-items:center;min-height:56px;}
.pp-wait-faces{position:relative;width:40px;height:40px;}
.pp-via{position:absolute;right:-5px;bottom:-5px;display:flex;}
.pp-via .d-av{width:22px;height:22px;}
.pp-via .d-av{box-shadow:0 0 0 2px var(--ground);}
.pp-wait-text{display:flex;flex-direction:column;min-width:0;}
.pp-name{font:500 var(--fs-body)/1.35 var(--font);color:var(--ink);}
.pp-wait-acts{display:flex;align-items:center;gap:16px;margin:4px 0 8px 52px;}
.pp-wait-acts .d-btn-primary{padding:10px 24px;}
.pp-notnow{color:var(--ink-2);}
.pp-vibe-slot:empty{display:none;}
.pp-vibe{display:block;width:100%;margin-top:20px;padding:16px 18px;border:0;text-align:left;font:inherit;cursor:pointer;}
.pp-vibe:active{box-shadow:var(--in);}
.pp-vibe-top{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.pp-vibe-lead{display:block;margin-top:2px;color:var(--ink);}
.pp-vibe-line{margin:0;}
.pp-vibe-card{display:flex;flex-direction:column;gap:6px;padding:4px 0;}
.pp-ask-slot:empty{display:none;}
.pp-ask{margin:20px 0 0;padding:14px 16px;border-radius:var(--r-md);background:var(--card);box-shadow:var(--e1);}
.pp-ask-acts{display:flex;align-items:center;gap:12px;margin-top:8px;}
.pp-skip{color:var(--ink-2);min-width:var(--tap);padding:10px 8px;}
.pp-going-list{margin-top:20px;}
.pp-count{margin-bottom:4px;}
.pp-member{display:grid;grid-template-columns:40px minmax(0,1fr) auto 18px;gap:12px;align-items:center;width:100%;min-height:56px;padding:6px 0;border:0;background:none;color:var(--ink);text-align:left;font:inherit;}
button.pp-member{cursor:pointer;}
button.pp-member:active{opacity:.7;}
.pp-member-main{display:flex;flex-direction:column;min-width:0;}
.pp-member-main .pp-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pp-you{font-weight:400;}
.pp-role{white-space:nowrap;}
/* the pack a member brings: one row each, indented under them, the kind in the role column */
.pp-with{display:flex;flex-direction:column;margin:-6px 0 6px 52px;}
.pp-comp{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:40px;padding-right:30px;color:var(--ink);}
.pp-comp-name{font:500 var(--fs-body-sm)/1.35 var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pp-comp-kind{white-space:nowrap;}
.pp-fresh .pp-undo{padding:10px 8px;}
/* Add to the crew: two big cards, each the whole button (inline right under "Just you so far.", or in the Add
   sheet). Equal rows, so one card's line wrapping never leaves the pair uneven; balanced lines, no lone last word. */
.pp-add{padding-left:16px;padding-right:18px;}
.pp-addcards{display:grid;grid-auto-rows:1fr;gap:14px;}
.pp-count+.pp-addcards{margin:10px 0 14px;}
.d-sheet .pp-addcards{padding:4px 0 12px;}
.pp-addcard-txt .d-t-body-sm{text-wrap:balance;}
.pp-addcard{display:flex;align-items:center;gap:14px;width:100%;min-height:84px;padding:16px 18px;border:0;border-radius:var(--r-md);background:var(--ground);box-shadow:var(--e2);color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:box-shadow 120ms var(--ease);}
.pp-addcard:active{box-shadow:var(--in);}
.pp-addcard-ic{display:flex;align-items:center;justify-content:center;width:28px;flex:none;color:var(--ink);}
.pp-addcard-txt{display:flex;flex-direction:column;gap:2px;min-width:0;}
.pp-addcard-t{font:600 var(--fs-head)/1.3 var(--font);letter-spacing:-.01em;}
/* Where do you live? (onboarding and Settings): the small house sits with the words */
.pp-live{display:inline-flex;align-items:center;gap:6px;}
.pp-live .d-ic{flex:none;}

/* ---------- Invite sheet (Invite board) ---------- */
.pp-invite{display:flex;flex-direction:column;}
.pp-qr-slot{min-height:176px;display:flex;justify-content:center;margin-top:8px;}
.pp-qr-wrap{display:flex;flex-direction:column;align-items:center;gap:12px;padding-bottom:8px;}
.pp-qr{position:relative;width:176px;height:176px;padding:10px;border-radius:16px;background:#FFFFFF;box-shadow:var(--e1);flex:none;}
.pp-qr svg{display:block;width:100%;height:100%;}
.pp-qr-mark{position:absolute;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:8px;background:#FFFFFF;display:flex;align-items:center;justify-content:center;}
.pp-qr-mark img{width:22px;height:22px;object-fit:contain;display:block;}
.pp-invite>.pp-center{margin-top:10px;}
.pp-well-row{display:flex;align-items:center;gap:8px;min-height:52px;margin-top:14px;padding:4px 4px 4px 16px;border-radius:var(--r-md);background:var(--well);box-shadow:var(--in);}
.pp-well-row:focus-within{outline:2px solid var(--brass-ink);outline-offset:2px;}
.pp-link-text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);}
.pp-copy{padding:10px 16px;}
.pp-primary-slot{margin-top:12px;}
.pp-email{margin-top:20px;}
.pp-email .pp-well-row{margin-top:0;}
.pp-email-input{flex:1;min-width:0;min-height:var(--tap);border:0;background:transparent;color:var(--ink);font:400 1rem/1.4 var(--font);outline:0;}
.pp-email-input::placeholder{color:var(--ink-2);opacity:1;}
.pp-email-note:empty{display:none;}
.pp-draft{margin-top:8px;}
.pp-invite>.pp-strong{margin-top:18px;}
.pp-invite>.d-seg{margin-top:10px;}
.pp-policy-note{margin-top:10px;}
.pp-invite>.pp-setrow{margin-top:6px;}
.pp-choice{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:60px;padding:10px 16px;border:0;border-radius:var(--r-md);background:var(--ground);box-shadow:var(--e1);color:var(--ink);text-align:left;font:inherit;cursor:pointer;}
.pp-choice[aria-pressed="true"]{background:var(--well);box-shadow:var(--in);}
.pp-choice-text{display:flex;flex-direction:column;gap:2px;min-width:0;}

/* ---------- Who's invited (row, picker, roster) ---------- */
.pp-invrow{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 16px;border:0;border-radius:var(--r-md);background:var(--ground);box-shadow:var(--e1);color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:box-shadow 120ms var(--ease);}
.pp-invrow:active{box-shadow:var(--in);}
.pp-invrow-main{display:flex;flex-direction:column;flex:1;min-width:0;}
.pp-invrow-val{display:flex;align-items:center;gap:6px;font:500 var(--fs-body-sm)/1.35 var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pp-pick{display:flex;flex-direction:column;margin-top:8px;}
.pp-pick-row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:6px 0;border:0;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer;}
.pp-pick-row[aria-disabled="true"]{cursor:default;}
.pp-indent{padding-left:28px;}
.pp-pick-name{flex:1;min-width:0;font:500 var(--fs-body-sm)/1.35 var(--font);}
.pp-check{width:26px;height:26px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 2px var(--ink-2);}
.pp-check.is-on{background:var(--sage);box-shadow:none;color:var(--ground);}
.pp-lost{color:var(--ink);margin:-4px 0 4px 52px;}
.pp-roster{display:flex;flex-direction:column;}
.pp-roster-row{display:flex;align-items:center;gap:12px;min-height:52px;}
.pp-roster-name{font:500 var(--fs-body-sm)/1.35 var(--font);min-width:0;}
.pp-lockpill{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);padding:0 12px;border:0;border-radius:var(--r-pill);background:var(--well);color:var(--ink-2);font:500 var(--fs-label)/1.3 var(--font);cursor:pointer;}
.pp-nudge-btn{color:var(--ink);}

/* ---------- permissions, your face, rate, rank, notifications ---------- */
.pp-perm-head{display:flex;align-items:center;gap:12px;}
.pp-perm-head>div{min-width:0;}
.pp-perm-body{display:flex;flex-direction:column;}
.pp-perm-label{margin-top:20px;}
.pp-perms .pp-toggle-row{border-bottom:1px solid var(--line);}
.pp-perms .pp-toggle-row:last-child{border-bottom:0;}
.pp-remove{align-self:flex-start;margin-top:12px;}
.pp-face-sheet{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:8px 0;}
.pp-rate{display:flex;flex-direction:column;gap:8px;}
.pp-scores{display:flex;gap:10px;justify-content:space-between;}
.pp-score{width:52px;height:52px;border:0;border-radius:50%;background:var(--ground);box-shadow:var(--e1);color:var(--ink);font:600 1.125rem/1 var(--font);cursor:pointer;transition:box-shadow 120ms var(--ease);}
.pp-score[aria-checked="true"]{background:var(--well);box-shadow:var(--in);}
.pp-score-word{min-height:1.4em;}
.pp-rate-note{margin-top:12px;}
.pp-clear{align-self:flex-start;color:var(--ink-2);}
.pp-spread{display:flex;flex-direction:column;gap:4px;padding:12px 16px;margin-bottom:8px;border-radius:var(--r-md);background:var(--well);}
.pp-spread-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;}
.pp-spread-word{font:500 var(--fs-label)/1.4 var(--font);color:var(--ink);}
.pp-spread-note{display:flex;align-items:flex-start;gap:8px;color:var(--ink);}
.pp-spread .d-av{box-shadow:0 0 0 2px var(--well);}
.pp-rank{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}
.pp-rank-row{display:flex;align-items:center;gap:8px;min-height:56px;padding:4px 4px 4px 16px;border-radius:var(--r-md);background:var(--ground);box-shadow:var(--e1);}
.pp-rank-n{width:20px;font-weight:600;color:var(--ink-2);}
.pp-rank-name{flex:1;min-width:0;font:500 var(--fs-body-sm)/1.35 var(--font);}
.pp-up{transform:rotate(-90deg);}
.pp-down{transform:rotate(90deg);}
.pp-notifs{display:flex;flex-direction:column;}
.pp-notif{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:start;width:100%;min-height:56px;padding:10px 0;border:0;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer;}
.pp-notif:active{opacity:.7;}
.pp-notif-ic{width:36px;height:36px;border-radius:50%;background:var(--well);color:var(--ink-2);display:flex;align-items:center;justify-content:center;}
.pp-notif-txt{display:flex;flex-direction:column;gap:2px;min-width:0;}
.pp-notif-title{display:flex;align-items:center;gap:8px;font:500 var(--fs-body)/1.35 var(--font);}
.pp-unread .pp-notif-title{font-weight:600;}
.pp-dot{width:8px;height:8px;border-radius:50%;background:var(--sage-ink);flex:none;}

/* ---------- Show of Hands (Hands board) ---------- */
.pp-vote{display:block;}
.pp-vote .d-av{box-shadow:0 0 0 2px var(--card-a);}
.pp-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;}
.pp-readout{font-weight:600;color:var(--ink-2);}
.pp-brass{color:var(--brass-ink);}
.pp-card-title{margin-top:6px;}
.pp-opts{list-style:none;display:flex;flex-direction:column;gap:10px;margin:16px 0 0;padding:0;}
.pp-opt{display:flex;flex-direction:column;gap:4px;width:100%;min-height:64px;padding:10px 14px;border:0;border-radius:var(--r-md);background:var(--ground);box-shadow:var(--e1);color:var(--ink);text-align:left;font:inherit;cursor:pointer;transition:box-shadow 120ms var(--ease);}
.pp-opt[aria-pressed="true"]{background:var(--well);box-shadow:var(--in);}
.pp-opt[aria-pressed="true"] .d-av{box-shadow:0 0 0 2px var(--well);}
.pp-opt-static{cursor:default;box-shadow:none;background:transparent;padding-left:0;padding-right:0;}
.pp-opt-top,.pp-opt-sub{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;}
.pp-opt-name{display:flex;align-items:center;gap:6px;min-width:0;font:500 var(--fs-body)/1.3 var(--font);}
.pp-opt-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pp-opt-check{color:var(--sage-ink);flex:none;}
.pp-opt-count{font:500 var(--fs-body)/1.3 var(--font);color:var(--ink-2);flex:none;}
.pp-opt-count.pp-lead{font-weight:600;color:var(--ink);}
.pp-opt-subtext{font:400 var(--fs-body-sm)/1.35 var(--font);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;}
.pp-opts-flat{gap:4px;margin-top:4px;}
.pp-opts-flat .pp-opt{min-height:56px;padding:8px 12px;box-shadow:none;background:transparent;}
.pp-opts-flat .pp-opt[aria-pressed="true"]{background:var(--ground);box-shadow:var(--e1);}
.pp-quiet-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 16px;margin-top:8px;}
.pp-quiet{color:var(--ink);}
.pp-card-going{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);}
.pp-nudge{margin-top:16px;}

/* ---------- tap-ins (Tokens on the Table) ---------- */
.pp-going{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;min-height:var(--tap);}
.pp-tapin{padding-left:6px;}
.pp-tapin[aria-pressed="false"]{padding-left:10px;}
.pp-tapin .d-av{box-shadow:none;}
/* v45.2: the faces and their count are one group, so "{n} going" always sits right after the faces (never pushed
   to the far edge, never wrapped away from them) */
.pp-going-who{display:inline-flex;align-items:center;gap:8px;flex:none;}
/* v45.2 before the day: "I'm going" | "I'll pass" as one compact .d-seg, with .d-seg's own ink order: the answer
   given is raised in full ink at 600, the other stays secondary ink. "I'll pass" is quiet in having no face and no
   plus, never in being dimmer than the answer not given. 44 px hits from .d-seg. */
.pp-answer{display:inline-flex;flex:none;max-width:100%;}
.pp-answer button{flex:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;}
.pp-answer .pp-answer-go{padding-left:10px;}
.pp-answer .pp-answer-go[aria-pressed="true"]{padding-left:6px;}
.pp-answer .d-av{box-shadow:none;}
.pp-passed{flex-basis:100%;margin:0;}

/* ---------- Sealed Envelope (Envelope and Day boards) ---------- */
.pp-sealed{position:relative;}
.pp-sealed>.d-pebble{pointer-events:none;}
.pp-sealed-body{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;min-height:60px;padding:8px 0;border:0;background:none;color:var(--ink);text-align:left;font:inherit;cursor:pointer;}
.pp-sealed-body:active{opacity:.7;}
.pp-sealed-main{display:flex;flex-direction:column;min-width:0;}
.pp-sealed-title{display:flex;align-items:center;gap:8px;font:500 var(--fs-body)/1.35 var(--font);}
.pp-stub-sheet{display:flex;flex-direction:column;gap:16px;padding-bottom:8px;}
.pp-stub-who{display:flex;align-items:center;gap:12px;}
.pp-insider{margin-top:6px;}
.pp-insider-line{display:flex;align-items:center;gap:6px;color:var(--ink-2);}
.pp-insider-who{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-start;margin-top:10px;}
.pp-insider-col{display:flex;flex-direction:column;gap:6px;min-width:0;}
.pp-insider-col>.d-t-label{white-space:nowrap;}
.pp-insider-hidden{display:flex;align-items:center;gap:8px;min-height:var(--tap);}
.pp-eye{width:32px;height:32px;border-radius:50%;background:var(--ground);box-shadow:var(--e1);color:var(--ink-2);display:flex;align-items:center;justify-content:center;flex:none;}
.pp-insider-names{font:600 var(--fs-body-sm)/1.35 var(--font);}
.pp-insider-card{display:block;}
.pp-insider-card .d-av{box-shadow:0 0 0 2px var(--card-a);}
.pp-card-pebble{top:22px;margin-top:0;}
.pp-surprise-word{display:flex;align-items:center;gap:6px;font-weight:600;color:var(--ink);}
.pp-opens{margin-top:6px;}
.pp-insider-card .pp-rule{margin-top:14px;}
.pp-card-btn{margin-top:16px;}
.pp-revealed{display:flex;align-items:center;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.pp-revealed-txt{display:flex;flex-direction:column;flex:1;min-width:0;}
.pp-surprise{display:flex;flex-direction:column;}
.pp-opens-label{margin-top:12px;}
.pp-open-now{align-self:flex-start;margin-top:4px;}

/* ---------- Recap (Recap board) ---------- */
.pp-recap-head{padding-top:20px;}
.pp-recap-head .d-t-body{margin-top:4px;}
.pp-recap-top{display:flex;gap:16px;margin-top:20px;}
.pp-share-card{display:flex;flex-direction:column;width:54%;max-width:210px;aspect-ratio:4/5;margin:0;padding:14px 16px;flex:none;min-width:0;}
.pp-share-title{font:600 1.125rem/1.25 var(--font);letter-spacing:-.02em;margin-top:2px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.pp-route{display:block;width:100%;flex:1;min-height:0;margin-top:8px;overflow:visible;}
.pp-route-label{font:500 13px var(--font);fill:var(--ink);}
.pp-share-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;}
.pp-share-foot>.d-t-label{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pp-share-logo{flex:none;height:28px;padding:0 8px;border-radius:14px;background:var(--tile);display:flex;align-items:center;justify-content:center;}
.pp-share-logo img{height:16px;width:auto;object-fit:contain;display:block;}
.pp-stats{flex:1;min-width:0;margin:0;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0;}
.pp-stat dd{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pp-stat-n{font:400 1.25rem/1.2 var(--font);color:var(--ink);}
.pp-stat-n b{font-weight:600;}
.pp-walkline{display:flex;align-items:center;gap:8px;margin-top:12px;}
.pp-recap-acts{display:flex;gap:12px;margin-top:20px;}
.pp-recap-acts .d-btn{flex:1;padding-left:12px;padding-right:12px;}
.pp-recap-sec{margin-top:32px;}
.pp-recap-road{margin-top:8px;}
.pp-fav{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;min-height:60px;padding:8px 0;border:0;background:none;color:var(--ink);text-align:left;font:inherit;}
button.pp-fav{cursor:pointer;}
button.pp-fav:active{opacity:.7;}
.pp-fav>.d-pebble{pointer-events:none;}
.pp-hearts{display:inline-flex;align-items:center;gap:6px;font:600 var(--fs-label)/1.3 var(--font);color:var(--ink-2);}
.pp-hearts.pp-all{color:var(--ink);}
.pp-award{display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 0;}
.pp-award-main{display:flex;flex-direction:column;flex:1;min-width:0;}
.pp-recap-foot{margin-top:28px;}
.pp-empty{margin-top:24px;min-height:160px;}
.pp-empty .d-pebble{top:12px;margin-top:0;}
.pp-empty .d-t-body-sm{margin-top:4px;}
.pp-empty-btn{margin-top:16px;}

/* ---------- New people need my OK (v45.1): the owner's request card on Home, its rows in Settings, and the
   person's waiting screen. The crew waiting row look (pp-wait*), with a 44 px photo. ---------- */
.np-card{padding:16px 16px 8px;}
.np-count{margin:0 0 6px;}
.np-row .pp-wait-row{grid-template-columns:44px minmax(0,1fr);}
.np-av{width:44px;height:44px;}
.np-row .pp-wait-acts{margin-left:56px;}
.np-row+.np-row{margin-top:8px;}
.np-email{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.np-title .sh-waitword{color:var(--ink);align-items:baseline;justify-content:center;}
.np-title .sh-sage-dot{transform:translateY(-2px);}

@media (prefers-reduced-motion:reduce){
  .pp-opt,.pp-invrow,.pp-score,.pp-addcard{transition:opacity 120ms linear;}
}
