/* dCover partner portal —  styles on top of the live launch.css (same tokens, same 8-point ladder:
   8 · 16 · 24 · 32 · 40 · 48 · 56 · 64 · 80 · 96 · 128; 4 only inside a component). One red per screen: on the portal it is
   "Share on WhatsApp"; Confirm is ink. */

/* ---------- every page: while the phone keyboard is up, the bottom bar steps aside */
body.typing .thumb{display:none}

/* ---------- the consultant on their own page (index.html via their short link) */
.cpanel{display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:start;padding:16px;border-radius:16px;background:var(--surface);border:1px solid var(--hair-2);box-shadow:var(--lifted)}
.cp-photo{margin:0;width:72px;height:72px;border-radius:8px;overflow:hidden;background:var(--chip)}
.cp-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.cp-k{display:flex;align-items:center;gap:8px;font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}
.cp-k svg{width:16px;height:16px;flex:none}
.cp-name{font-size:20px;line-height:28px;font-weight:700;color:var(--ink);margin-top:4px}
.cp-area{font-size:14px;line-height:20px;color:var(--ink-2)}
.cp-line{margin-top:8px;color:var(--text);font-size:14px;line-height:20px}
@media (min-width:600px){.cp-line{font-size:16px;line-height:24px}}
.cp-line:empty{display:none}
.cp-how{display:none;margin-top:16px;padding-top:16px;border-top:1px solid var(--hair);font-size:14px;line-height:20px;color:var(--ink-2)}
.hero .top .cpanel{margin-top:24px}
body.has-c .hero .passbox{display:none}
@media (min-width:600px){.cpanel{grid-template-columns:96px 1fr}.cp-photo{width:96px;height:96px}}
@media (min-width:1024px){
  .hero .top .cpanel{margin-top:0;grid-template-columns:160px 1fr;gap:24px;padding:24px;align-self:center}
  .cp-photo{width:160px;height:160px;border-radius:16px}
  .cp-name{font-size:24px;line-height:32px}
  .cp-how{display:block}
}
.cnote{display:flex;gap:8px;align-items:flex-start;margin-top:16px;color:var(--text)}
.cnote svg{width:16px;height:16px;flex:none;margin-top:4px;color:var(--ink-2)}

/* ---------- PIN fields (sign-up, sign-in, change PIN) */
.pinrow{display:flex;align-items:center;gap:8px;min-width:0}
.pinrow .v{flex:1;min-width:0}
.fld .v.pin{font-family:"Figtree",sans-serif;letter-spacing:.32em;font-size:20px}
.pinshow{flex:none;min-width:48px;min-height:48px;margin:-8px -8px -8px 0;padding:0 8px;border:0;border-radius:8px;background:transparent;color:var(--ink);font-weight:600;cursor:pointer}
.pinshow:hover{background:var(--chip)}
.pinfld{height:auto;min-height:64px}
.pinhint{margin-top:8px;color:var(--ink-2)}
.pt-msg{margin-top:16px;padding:8px 16px;border-inline-start:4px solid var(--ink);background:var(--chip);border-radius:4px;color:var(--ink);font-weight:600;font-size:14px;line-height:24px}
.pt-links{display:grid;gap:0;margin-top:8px}
.pt-links a{display:inline-flex;align-items:center;min-height:48px;font-weight:600;color:var(--ink)}

/* ---------- the portal */
.portal{padding-block:32px 64px}
.sec.portal .wrap{display:block}
.pt-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.pt-role{font-size:14px;line-height:20px;font-weight:600;color:var(--ink-2);margin-bottom:8px}
.pt-attn{display:flex;align-items:center;gap:8px;min-height:56px;margin-top:24px;padding:8px 16px;border-radius:8px;border:2px solid var(--ink);background:var(--surface);color:var(--ink);font-weight:600;text-decoration:none}
.pt-attn svg{width:24px;height:24px;flex:none}
.pt-attn span:first-of-type{flex:1}
.pt-grid{display:grid;gap:48px;margin-top:32px}
.pt-main > .t3:first-child{margin-bottom:16px}
.pt-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pt-money .stat3{padding:16px}
.pt-money .stat3 b{font-size:24px;line-height:32px}
.payline{margin-top:16px;color:var(--text)}
.pt-counts{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:24px;padding:16px;border-radius:8px;background:var(--chip);color:var(--ink)}
.pt-counts b{font-family:"Figtree",sans-serif;font-size:20px}
.pt-h2{margin-top:48px}
.pt-privacy{margin-top:8px}
.pt-list{display:grid;gap:16px;margin-top:24px}
.pt-empty{padding:24px;border-radius:16px;border:1px dashed var(--field-edge)}
@media (min-width:1024px){.portal{padding-block:64px 96px}.pt-grid{grid-template-columns:minmax(0,1fr) 416px;gap:64px;align-items:start}.pt-money .stat3{padding:16px 24px}.pt-money .stat3 b{font-size:32px;line-height:40px}}
@media (min-width:1280px){.pt-grid{grid-template-columns:minmax(0,1fr) 480px}}

/* one request: who · where it stands · the trip · (consultant) the price · what it means for them */
.rq{padding:24px;border-radius:16px;background:var(--surface);border:1px solid var(--hair-2)}
.rq-top{display:flex;justify-content:space-between;align-items:center;gap:16px}
.rq-who{font-size:18px;line-height:28px;font-weight:700;color:var(--ink)}
.rq-st{flex:none;padding:4px 8px;border-radius:4px;font-size:14px;line-height:20px;font-weight:600;background:var(--chip);color:var(--ink)}
.st-ticketed .rq-st{background:var(--ink);color:var(--surface)}
.st-refunded .rq-st,.st-closed .rq-st{background:transparent;border:1px solid var(--field-edge)}
.st-refunded,.st-closed{background:var(--surface-2)}
.rq-trip{margin-top:4px;color:var(--text)}
.rq-ref{margin-top:16px;font-size:14px;line-height:20px;color:var(--ink-2)}
.rq-earn{display:flex;align-items:center;gap:8px;margin-top:16px;font-weight:600;color:var(--ink)}
.rq-earn.mute{font-weight:400;color:var(--ink-2);font-size:14px;line-height:20px}
.rq-earn svg{width:20px;height:20px;flex:none}
/* where it stands: three dots on a line — Asked · We're on it · Ticketed */
.track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px;counter-reset:none}
.track li{position:relative;padding-top:24px;font-size:14px;line-height:20px;color:var(--ink-2)}
.track li::before{content:"";position:absolute;top:4px;left:0;width:16px;height:16px;border-radius:50%;border:2px solid var(--field-edge);background:var(--surface);z-index:1}
.track li::after{content:"";position:absolute;top:11px;left:16px;right:0;height:2px;background:var(--hair-2)}
.track li:last-child::after{display:none}
.track li.done::before,.track li.now::before{background:var(--ink);border-color:var(--ink)}
.track li.done::after{background:var(--ink)}
.track li.now{color:var(--ink);font-weight:700}
.track li.now::before{box-shadow:0 0 0 4px var(--chip)}
/* the price step */
.qt{margin-top:16px;padding:16px;border-radius:8px;background:var(--surface-2);border:1px solid var(--hair);display:grid;gap:8px}
.qt.wait{grid-template-columns:24px 1fr;align-items:start;color:var(--text)}
.qt.wait svg{width:24px;height:24px;color:var(--ink-2)}
.qt.open{border:2px solid var(--ink);background:var(--surface)}
.qt-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;color:var(--text)}
.qt-row b{font-family:"Figtree",sans-serif;font-size:18px;line-height:28px;color:var(--ink);white-space:nowrap}
.qt-row.earn{padding-top:8px;border-top:1px solid var(--hair)}
.qt-row.earn b{font-size:20px}
.qt .pfxrow .pfx{font-family:"Figtree",sans-serif;font-weight:600;color:var(--ink);font-size:18px;margin-inline-end:4px}
.qt .fld .v{font-size:18px}
.qt-go[disabled]{opacity:.48;cursor:default}
.qt-lock{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:20px;color:var(--ink-2)}
.qt-lock svg{width:16px;height:16px;flex:none;margin-top:2px}

/* the side: link, their page, account */
.pt-side{display:grid;gap:32px;align-content:start}
.pt-page{display:grid;gap:16px;padding:24px;border-radius:16px;background:var(--surface);border:1px solid var(--hair-2)}
.pt-preview{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:start}
.pt-preview img{width:96px;height:96px;border-radius:8px;object-fit:cover;object-position:50% 25%;background:var(--chip)}
.pt-preview img[hidden]{display:block;visibility:hidden}
.pt-pending{display:grid;grid-template-columns:64px 1fr;gap:16px;align-items:center;padding:16px;border-radius:8px;border:1px dashed var(--field-edge);color:var(--ink)}
.pt-pending img{width:64px;height:64px;border-radius:8px;object-fit:cover}
.pt-upload{cursor:pointer}
.pt-upload svg{width:24px;height:24px}
.pt-account{display:grid;gap:8px;justify-items:start}
.pt-account .t3{margin-bottom:8px}
.pt-pin{width:100%;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.pt-pin summary{display:flex;align-items:center;min-height:48px;font-weight:600;color:var(--ink);cursor:pointer}
.pt-pin form{padding-bottom:16px}
