/* Purple pins: first-party anonymous accounts, private pins, messaging.
   Used by /network/ (panel under Navigate) and /account/ (sign-in block). No third-party assets. */
.pp{--pp:#B58CFF;--pp2:#cdb0ff;margin:0 0 6px;scroll-margin-top:8px}
.pp *{box-sizing:border-box}
.pp-head{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;padding:0;margin:18px 0 8px;color:var(--pp);font:700 .68rem/1 Georgia,serif;letter-spacing:.22em;text-align:left;cursor:default}
.pp-head .pp-caret{display:none;font-size:.9rem;color:#D4AF6A}
.pp-head .pp-badge{margin-left:8px}
.pp-kick{font:500 .64rem/1.2 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--pp);margin:12px 0 6px}
.pp-intro{margin:0 0 10px;font-size:.8rem;line-height:1.5;color:#b5aea0}
.pp-lbl{display:block;font:700 .64rem/1 Georgia,serif;letter-spacing:.18em;color:#b5aea0;margin:10px 0 5px;text-transform:uppercase}
.pp-in,.pp-ta,.pp-sel{display:block;width:100%;min-width:0;background:#0A0A0C;color:#F2EEE4;border:1px solid rgba(181,140,255,.4);border-radius:8px;padding:9px 10px;font:400 .86rem/1.3 Georgia,serif}
.pp-ta{min-height:64px;resize:vertical}
.pp-in:focus,.pp-ta:focus,.pp-sel:focus{outline:2px solid #B58CFF;outline-offset:1px}
.pp-in[readonly]{color:#cdb0ff;border-style:dashed}
.pp-row{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap;align-items:center}
.pp-btn{background:none;border:1px solid rgba(181,140,255,.55);color:#cdb0ff;border-radius:7px;padding:6px 9px;font:700 .68rem/1 Georgia,serif;letter-spacing:.07em;cursor:pointer;min-height:30px}
.pp-btn:hover{background:rgba(181,140,255,.12)}
.pp-btn:focus-visible{outline:2px solid #6FE3A8;outline-offset:2px}
.pp-btn[aria-pressed="true"]{background:rgba(181,140,255,.2);border-color:#B58CFF;color:#fff}
.pp-btn[disabled]{opacity:.55;cursor:wait}
.pp-btn.pp-main{background:linear-gradient(135deg,#B58CFF,#cdb0ff);color:#0A0A0C;border:0;flex:1 1 auto}
.pp-btn.pp-main:hover{background:linear-gradient(135deg,#c4a0ff,#dcc6ff)}
.pp-btn.pp-danger{border-color:rgba(227,111,111,.6);color:#E36F6F}
.pp-btn.pp-danger:hover{background:rgba(227,111,111,.12)}
.pp-btn.pp-gold{border-color:rgba(212,175,106,.5);color:#D4AF6A}
.pp-msg{margin:8px 0 0;font-size:.8rem;color:#b5aea0;min-height:1.2em}
.pp-msg.err{color:#E36F6F}
.pp-msg.ok{color:#6FE3A8}
.pp-badge{display:inline-block;min-width:18px;padding:2px 6px;border-radius:999px;background:#B58CFF;color:#0A0A0C;font:700 .62rem/1.2 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:0;text-align:center}
.pp-badge[hidden]{display:none}
.pp-who{display:flex;gap:8px;align-items:center;flex-wrap:wrap;border:1px solid rgba(181,140,255,.3);border-radius:10px;padding:8px 10px;background:rgba(181,140,255,.06)}
.pp-who .pp-un{color:#F2EEE4;font-size:.84rem;overflow-wrap:anywhere}
.pp-handle{font:500 .8rem/1.2 'IBM Plex Mono',ui-monospace,monospace;color:#cdb0ff;overflow-wrap:anywhere}
.pp-reveal{border:1px solid #B58CFF;border-radius:12px;padding:12px 14px;margin:0 0 10px;background:rgba(181,140,255,.09);box-shadow:0 0 22px rgba(181,140,255,.18)}
.pp-reveal .pp-big{display:block;font:500 1.35rem/1.2 'IBM Plex Mono',ui-monospace,monospace;color:#fff;letter-spacing:.04em;margin:6px 0 8px;overflow-wrap:anywhere;user-select:all}
.pp-reveal p{margin:0 0 8px;font-size:.8rem;line-height:1.5;color:#d7d1c4}
.pp-check{display:flex;align-items:center;gap:8px;margin:10px 0 4px;font-size:.82rem;color:#b5aea0;cursor:pointer}
.pp-check input{accent-color:#B58CFF}
.pp-form,.pp-compose{margin-top:8px}
.pp-drop{border:1px solid rgba(181,140,255,.45);border-radius:10px;padding:10px 11px;margin-top:8px;background:rgba(181,140,255,.06)}
.pp-coords{font:400 .72rem/1.3 'IBM Plex Mono',ui-monospace,monospace;color:#6FE3A8}
.pp-list{list-style:none;margin:0;padding:0}
.pp-pin{border:1px solid rgba(181,140,255,.28);border-left:4px solid #B58CFF;border-radius:8px;padding:8px 10px;margin-bottom:7px;background:rgba(16,16,20,.8)}
.pp-pin.is-shared{border-left-style:dashed}
.pp-pin-name{all:unset;cursor:pointer;color:#F2EEE4;font-size:.88rem;font-weight:700;overflow-wrap:anywhere;display:inline}
.pp-pin-name:hover{text-decoration:underline}
.pp-pin-name:focus-visible{outline:2px solid #6FE3A8;outline-offset:2px}
.pp-tag{font:500 .6rem/1 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:#cdb0ff;border:1px solid rgba(181,140,255,.45);border-radius:999px;padding:2px 6px;margin-left:6px;white-space:nowrap}
.pp-note{margin:4px 0 0;font-size:.78rem;color:#b5aea0;white-space:pre-wrap;overflow-wrap:anywhere}
.pp-meta{margin:3px 0 0;font:400 .66rem/1.3 'IBM Plex Mono',ui-monospace,monospace;color:#8f897c;overflow-wrap:anywhere}
.pp-sub{margin-top:8px;border-top:1px dashed rgba(181,140,255,.25);padding-top:8px}
.pp-sub:empty{display:none}
.pp-sub .pp-in{margin-top:4px}
.pp-grants{list-style:none;margin:8px 0 0;padding:0;font:400 .72rem/1.4 'IBM Plex Mono',ui-monospace,monospace;color:#b5aea0}
.pp-grants li{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:3px 0;border-bottom:1px dashed rgba(242,238,228,.08)}
.pp-empty{margin:0;font-size:.78rem;color:#8f897c}
.pp-thread{display:flex;width:100%;gap:8px;align-items:baseline;justify-content:space-between;text-align:left;background:none;border:1px solid rgba(181,140,255,.28);border-radius:8px;padding:8px 10px;margin-bottom:6px;color:#d7d1c4;cursor:pointer;font:400 .78rem/1.35 Georgia,serif}
.pp-thread:hover,.pp-thread[aria-current="true"]{background:rgba(181,140,255,.12);border-color:#B58CFF}
.pp-thread:focus-visible{outline:2px solid #6FE3A8;outline-offset:2px}
.pp-thread .pp-th-h{font:500 .74rem/1.2 'IBM Plex Mono',ui-monospace,monospace;color:#cdb0ff;overflow-wrap:anywhere}
.pp-thread .pp-th-l{display:block;color:#8f897c;font-size:.72rem;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:15em}
.pp-conv{border:1px solid rgba(181,140,255,.35);border-radius:10px;padding:10px;margin-top:8px;background:rgba(10,10,12,.7)}
.pp-msgs{list-style:none;margin:8px 0 0;padding:0;max-height:260px;overflow-y:auto}
.pp-m{margin:0 0 7px;padding:6px 8px;border-radius:8px;font-size:.8rem;line-height:1.45;max-width:92%;overflow-wrap:anywhere}
.pp-m.me{margin-left:auto;background:rgba(181,140,255,.16);color:#F2EEE4}
.pp-m.them{background:rgba(242,238,228,.07);color:#d7d1c4}
.pp-m .pp-mt{white-space:pre-wrap}
.pp-m .pp-mm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:3px;font:400 .62rem/1.2 'IBM Plex Mono',ui-monospace,monospace;color:#8f897c}
.pp-m .pp-mm button{all:unset;cursor:pointer;color:#cdb0ff;text-decoration:underline}
.pp-m .pp-mm button:focus-visible{outline:2px solid #6FE3A8;outline-offset:2px}
.pp-skip{position:absolute;left:-9999px}
/* map */
#map.pp-dropping,#map.pp-dropping .leaflet-interactive{cursor:crosshair}
.pp-ic{background:none!important;border:0!important}
.pp-ic svg{display:block;overflow:visible;filter:drop-shadow(0 0 5px rgba(181,140,255,.95)) drop-shadow(0 0 12px rgba(181,140,255,.5)) drop-shadow(0 1px 1px #000)}
.pp-ic.shared svg{filter:drop-shadow(0 0 4px rgba(181,140,255,.8)) drop-shadow(0 1px 1px #000)}
.pp-ic:focus-visible svg{filter:drop-shadow(0 0 3px #6FE3A8) drop-shadow(0 0 8px #6FE3A8)}
.pp-pop{max-width:240px;font:400 .82rem/1.5 Georgia,serif;color:#b5aea0}
.pp-pop h4{margin:0 0 3px;color:#F2EEE4;font-size:.95rem;overflow-wrap:anywhere}
.pp-pop .pp-k{font:500 .64rem/1.2 'IBM Plex Mono',ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#B58CFF}
.pp-pop p{margin:6px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.pp-pop .pp-c{margin-top:6px;font:400 .7rem/1.3 'IBM Plex Mono',ui-monospace,monospace;color:#6FE3A8}
.pp-legend{display:none;margin-top:6px}
.pp-legend.on{display:block}
.pp-legend i{background:#B58CFF;box-shadow:0 0 8px rgba(181,140,255,.9)}
/* account page block */
.aa{width:100%}
.aa .pp-form{max-width:420px}
.aa-row{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.aa-row a{color:#cdb0ff}
@media (max-width:820px){
  .pp-head{cursor:pointer;padding:6px 0;margin:10px 0 0}
  .pp-head .pp-caret{display:inline-flex;align-items:center;justify-content:center;font-size:1.6rem;line-height:1;min-width:44px;min-height:44px;margin:-10px -8px -10px 0}
  .pp.collapsed .pp-body{display:none}
  .pp-btn{min-height:40px;padding:8px 12px}
  .pp-in,.pp-ta,.pp-sel{font-size:16px;padding:10px}
}
@media (prefers-reduced-motion:reduce){.pp *,.pp-ic *{transition:none!important;animation:none!important}}
.aa-dash{border:1px solid rgba(111,227,168,.35);border-radius:12px;padding:12px 14px;margin:0 0 10px;background:rgba(111,227,168,.05)}
.aa-dash p{margin:0 0 10px;font-size:.9rem;color:#d7d1c4}
