/* Componentes nuevos del plugin (perfil, historias, mapa con ficha, horarios). Usa las variables --pl-* para adaptarse al tema. */
:root{--pl-paper:#F6F8F7}
.pl-map.leaflet-container{background:#e6ebe9}
[data-theme="dark"] .pl-map.leaflet-container{background:#1b262c}
.leaflet-tile{outline:1px solid transparent}

/* ---------- Pines: logo del tamaño justo, nombre arriba ---------- */
.pl-pin{background:none;border:0}
.pl-pin .pl-pin-in{position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:44px;height:44px;border-radius:50%;background:var(--c,#2A7378);border:3px solid var(--c,#2A7378);box-shadow:0 6px 14px -4px rgba(0,0,0,.4);color:#fff;font-weight:800;font-size:1.1rem;transition:transform .15s}
.pl-pin .pl-pin-in.has-logo{background:#fff}
.pl-pin .pl-pin-in img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;border-radius:50%;object-fit:cover}
.pl-pin .pl-pin-in::after{content:"";position:absolute;left:50%;bottom:-11px;transform:translateX(-50%);border:7px solid transparent;border-top:11px solid var(--c,#2A7378);border-bottom:0}
.pl-pin.is-active .pl-pin-in{transform:scale(1.18)}
.pl-pin .pl-pin-tag{position:absolute;left:50%;bottom:calc(100% + 12px);transform:translateX(-50%);white-space:nowrap;background:var(--pl-card,#fff);color:var(--pl-ink,#1D2B3A);border:1px solid var(--pl-line,#D5DEDB);border-radius:99px;padding:2px 10px;font-size:.72rem;font-weight:700;box-shadow:0 4px 10px -4px rgba(0,0,0,.3)}
.pl-map:not(.show-tags) .pl-pin-tag{display:none}

/* ---------- Mapa: buscador, botón de ubicación y ficha del local ---------- */
.pl-map-stage{position:relative}
.pl-map-search{position:absolute;top:10px;left:10px;right:66px;z-index:500}
.pl-map-search input{width:100%;min-height:46px;border:1.5px solid var(--pl-line,#D5DEDB);border-radius:99px;padding:0 18px;background:var(--pl-card,#fff);color:var(--pl-ink,#1D2B3A);font:inherit;font-size:1rem;box-shadow:0 8px 20px -10px rgba(0,0,0,.35)}
.pl-map-search input:focus{outline:0;border-color:var(--pl-accent,#2A7378)}
.pl-locate{position:absolute;top:10px;right:10px;z-index:500;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--pl-line,#D5DEDB);background:var(--pl-card,#fff);color:var(--pl-ink,#1D2B3A);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 20px -10px rgba(0,0,0,.35)}
.pl-locate.is-on{background:var(--pl-accent,#2A7378);border-color:var(--pl-accent,#2A7378);color:#fff}
.pl-sheet{position:absolute;left:10px;right:10px;bottom:10px;z-index:500;background:var(--pl-card,#fff);color:var(--pl-ink,#1D2B3A);border:1px solid var(--pl-line,#D5DEDB);border-radius:24px;padding:12px 14px 14px;box-shadow:0 20px 44px -14px rgba(0,0,0,.45);transform:translateY(130%);opacity:0;pointer-events:none;transition:transform .28s cubic-bezier(.2,.9,.3,1),opacity .2s}
.pl-sheet.is-open{transform:none;opacity:1;pointer-events:auto}
.pl-sheet::before{content:"";display:block;width:40px;height:4px;border-radius:4px;background:var(--pl-line,#D5DEDB);margin:0 auto 10px}
.pl-sheet-x{position:absolute;top:10px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:var(--pl-soft,#5B6B73);font-size:1.5rem;line-height:1;cursor:pointer}
.pl-sheet-row{display:flex;gap:12px;padding-right:26px}
.pl-sheet-img,.pl-sheet-ini{width:88px;height:88px;border-radius:18px;flex:none;object-fit:cover;background:var(--c,#2A7378);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.8rem}
.pl-sheet-info{display:grid;gap:2px;align-content:center;min-width:0}
.pl-sheet-info strong{font-size:1.15rem;line-height:1.15}
.pl-sheet-meta{font-size:.85rem;color:var(--pl-soft,#5B6B73);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pl-sheet-status{display:flex;align-items:center;gap:6px;font-size:.85rem;font-weight:700;color:var(--pl-soft,#5B6B73)}
.pl-sheet-status i,.pl-prof-status i{width:9px;height:9px;border-radius:50%;background:currentColor;flex:none}
.pl-sheet-status.is-open,.pl-prof-status.is-open{color:#1F8A4C}
.pl-sheet-status.is-closed,.pl-prof-status.is-closed{color:#C0463A}
.pl-sheet-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.pl-sheet-actions .pl-follow{min-height:38px}
@media (min-width:760px){.pl-sheet{right:auto;width:420px}}
@media (max-width:759px){.leaflet-control-zoom{display:none}}

/* ---------- Perfil del local ---------- */
.pl-prof{display:grid;gap:14px;--c:#2A7378}
.pl-prof-cover{position:relative;height:clamp(150px,34vw,260px);border-radius:24px;overflow:hidden;background:var(--c)}
.pl-prof-cover>img{width:100%;height:100%;object-fit:cover}
.pl-prof-rings{position:absolute;inset:0;background:repeating-radial-gradient(circle at 85% 120%,transparent 0 38px,rgba(255,255,255,.18) 38px 40px)}
.pl-prof-back,.pl-prof-save{position:absolute;top:12px;z-index:2;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);color:#1D2B3A;display:grid;place-items:center;text-decoration:none}
.pl-prof-back{left:12px}
.pl-prof-save{right:12px}
.pl-prof-save .pl-save{color:#1D2B3A;width:42px;height:42px}
.pl-prof-head{display:flex;align-items:flex-end;gap:14px;margin-top:-46px;padding-inline:6px;position:relative;z-index:3}
.pl-prof-avatar{flex:none;display:block;width:92px;height:92px;border-radius:50%;padding:4px;background:var(--pl-paper,#F6F8F7);text-decoration:none;position:relative}
.pl-prof-avatar .pl-avatar{width:100%;height:100%;font-size:2rem}
.pl-prof-avatar.has-story{background:conic-gradient(var(--c),#ffd166,var(--c));padding:4px;cursor:pointer}
.pl-prof-avatar.has-story .pl-avatar{border:3px solid var(--pl-paper,#F6F8F7)}
.pl-prof-id{min-width:0;padding-bottom:4px}
.pl-prof-name{margin:0;font-size:clamp(1.7rem,6vw,2.6rem);font-stretch:78%;line-height:1}
.pl-prof-tags{margin:6px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.pl-prof-tags .pl-badge{text-decoration:none}
.pl-prof-about{margin:0;color:var(--pl-soft,#5B6B73);max-width:62ch}
.pl-prof-status{display:flex;align-items:center;gap:8px;margin:0;font-weight:700;color:var(--pl-soft,#5B6B73)}
.pl-prof-addr{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--pl-line,#D5DEDB);border-radius:16px;background:var(--pl-card,#fff)}
.pl-prof-addr span{flex:1;min-width:0}
.pl-prof-addr a{font-weight:700;color:var(--pl-accent,#2A7378);white-space:nowrap}
.pl-prof-actions{display:flex;gap:10px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none;justify-content:space-between}
.pl-prof-actions::-webkit-scrollbar{display:none}
.pl-act{flex:1 0 64px;display:grid;justify-items:center;gap:6px;text-decoration:none;color:inherit;font-size:.78rem;font-weight:600}
.pl-act-ico{width:56px;height:56px;border-radius:50%;border:1.5px solid var(--pl-line,#D5DEDB);background:var(--pl-card,#fff);display:grid;place-items:center;transition:background .2s}
.pl-act:hover .pl-act-ico{background:var(--pl-accent-soft,#D3E8E5)}
.pl-features{display:flex;flex-wrap:wrap;gap:8px}
.pl-feature{padding:6px 12px;border-radius:99px;background:var(--pl-accent-soft,#D3E8E5);font-size:.85rem;font-weight:600}
.pl-hours-table{border-collapse:collapse;width:100%;max-width:420px}
.pl-hours-table th,.pl-hours-table td{padding:8px 0;border-bottom:1px solid var(--pl-line,#D5DEDB);text-align:left;font-weight:500}
.pl-hours-table td{text-align:right}
.pl-hours-table tr.is-today th,.pl-hours-table tr.is-today td{font-weight:800}

/* Ofertas (tarjetas con mosaico de color) */
.pl-deals{display:grid;gap:12px}
.pl-deal{display:flex;gap:14px;align-items:stretch;padding:10px;border:1px solid var(--pl-line,#D5DEDB);border-radius:20px;background:var(--pl-card,#fff);text-decoration:none;color:inherit}
.pl-deal-tile{flex:none;width:92px;min-height:92px;border-radius:14px;overflow:hidden;background:var(--c,#2A7378);color:#fff;display:grid;place-items:center;text-align:center}
.pl-deal-tile img{width:100%;height:100%;object-fit:cover}
.pl-deal-badge{font-size:1.5rem;font-weight:800;font-stretch:80%;line-height:1;padding:6px;word-break:break-word}
.pl-deal-body{display:grid;gap:2px;align-content:center;min-width:0}
.pl-deal-body strong{font-size:1.05rem;line-height:1.2}
.pl-deal-body span{color:var(--pl-soft,#5B6B73);font-size:.9rem}
.pl-deal-body small{color:var(--pl-soft,#5B6B73);font-weight:700;margin-top:4px}

/* ---------- Historias: burbujas ---------- */
.pl-story{position:relative}
.pl-story .pl-story-ring{position:relative}
.pl-story.has-story .pl-story-ring{background:conic-gradient(var(--c),#ffd166,var(--c))}
.pl-story.has-story.is-seen .pl-story-ring{background:var(--pl-line,#D5DEDB)}
.pl-story:not(.has-story) .pl-story-ring{background:var(--pl-accent-soft,#D3E8E5)}
.pl-story-add .pl-story-ring{background:var(--pl-line,#D5DEDB)}
.pl-story-plus{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:var(--pl-accent,#2A7378);color:#fff;display:grid;place-items:center;font-style:normal;font-weight:800;border:2px solid var(--pl-paper,#F6F8F7)}

/* ---------- Historias: visor ---------- */
.pl-sv-lock{overflow:hidden}
.pl-sv{position:fixed;inset:0;z-index:3000;background:rgba(4,10,14,.94);display:grid;place-items:center}
.pl-sv-stage{position:relative;width:100vw;height:100dvh;background:#000;overflow:hidden;color:#fff;touch-action:pan-y}
@media (min-width:700px){.pl-sv-stage{width:auto;height:min(92dvh,880px);aspect-ratio:9/16;border-radius:22px}}
.pl-sv-bg{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(26px) brightness(.55)}
.pl-sv-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.pl-sv-top{position:absolute;top:0;left:0;right:0;z-index:3;padding:12px 12px 24px;background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent)}
.pl-sv-bars{display:flex;gap:4px;margin-bottom:10px}
.pl-sv-bar{flex:1;height:3px;border-radius:3px;background:rgba(255,255,255,.35);overflow:hidden}
.pl-sv-bar i{display:block;height:100%;width:0;background:#fff}
.pl-sv-head{display:flex;align-items:center;gap:10px}
.pl-sv-ava{width:38px;height:38px;border-radius:50%;overflow:hidden;background:#2A7378;display:grid;place-items:center;font-weight:800;flex:none}
.pl-sv-ava img{width:100%;height:100%;object-fit:cover}
.pl-sv-name{color:#fff;font-weight:700;text-decoration:none}
.pl-sv-ago{opacity:.8}
.pl-sv-close{margin-left:auto;width:40px;height:40px;border:0;background:transparent;color:#fff;font-size:1.9rem;cursor:pointer}
.pl-sv-prev,.pl-sv-next{position:absolute;z-index:2;top:80px;bottom:130px;border:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.pl-sv-prev{left:0;width:32%}
.pl-sv-next{right:0;width:68%}
.pl-sv-foot{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:40px 16px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(to top,rgba(0,0,0,.7),transparent);display:grid;gap:12px}
.pl-sv-text{margin:0;font-size:1.1rem;line-height:1.35;text-shadow:0 1px 6px rgba(0,0,0,.5)}
.pl-sv-actions{display:flex;gap:10px;flex-wrap:wrap}
.pl-sv-btn,.pl-sv-profile{display:inline-flex;align-items:center;min-height:42px;padding:0 20px;border-radius:99px;font-weight:700;text-decoration:none}
.pl-sv-btn{background:#fff;color:#14202B}
.pl-sv-profile{border:1.5px solid rgba(255,255,255,.7);color:#fff}

/* ---------- Panel: historias, horarios y servicios ---------- */
.pl-story-row{display:flex;gap:12px;align-items:center;min-width:0}
.pl-story-row img{width:46px;height:62px;object-fit:cover;border-radius:10px;flex:none}
.pl-story-row div{min-width:0}
.pl-hours{display:grid;gap:10px}
.pl-hours-row{display:grid;grid-template-columns:40px 1fr 1fr 1fr;gap:8px;align-items:center}
.pl-hours-day{font-weight:700}
.pl-features-edit{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
@media (max-width:520px){
  .pl-hours-row{grid-template-columns:40px 1fr 1fr}
  .pl-hours-row .pl-hours-closed{grid-column:2/-1}
  .pl-prof-avatar{width:80px;height:80px}
}

/* ---------- Historias: mantener apretado no selecciona texto ---------- */
.pl-sv,.pl-sv *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.pl-sv-img,.pl-sv-ava img{pointer-events:none;-webkit-user-drag:none}

/* ---------- Perfil: el logo siempre dentro de su círculo ---------- */
.pl-prof-avatar .pl-avatar{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;overflow:hidden}
.pl-prof-avatar .pl-avatar img,.pl-prof-avatar .pl-avatar-img{width:100%;height:100%;max-width:none;object-fit:cover;border-radius:50%}
.pl-prof.is-listing .pl-prof-head{margin-top:-46px}

/* ---------- Plan Gratis ---------- */
.pl-upgrade{display:grid;gap:8px;justify-items:start;padding:16px 18px;margin:14px 0;border-radius:20px;background:var(--pl-accent-soft,#D3E8E5)}
.pl-upgrade p{margin:0;color:var(--pl-soft,#5B6B73)}

/* ---------- QR, carteles y ventanas ---------- */
.pl-modal{position:fixed;inset:0;z-index:2500;background:rgba(5,10,14,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:16px}
.pl-modal-card{position:relative;width:min(380px,100%);display:grid;gap:12px;justify-items:center;text-align:center;padding:24px 20px;border-radius:26px;background:var(--pl-card,#fff);color:var(--pl-ink,#1D2B3A)}
.pl-modal-card h3{margin:0 24px 0}
.pl-modal-x{position:absolute;top:10px;right:12px;width:36px;height:36px;border:0;background:transparent;color:var(--pl-soft,#5B6B73);font-size:1.6rem;cursor:pointer}
.pl-modal .pl-qr{background:#fff;padding:12px;border-radius:18px;line-height:0}
.pl-modal .pl-form-actions{justify-content:center}
.pl-qr-list li{align-items:center}

/* ---------- Cerca tuyo ahora ---------- */
.pl-nearby{display:grid;gap:14px}
.pl-nearby-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.pl-nearby-head h2{margin:0 0 4px}
.pl-nearby-head .pl-lead{margin:0}

/* ---------- Panel: espacio premium ---------- */
.pl-premium{margin-top:28px;padding:22px;border-radius:26px;border:1.5px solid var(--pl-accent,#2A7378);background:linear-gradient(160deg,var(--pl-accent-soft,#D3E8E5),var(--pl-card,#fff) 60%)}
.pl-premium-head{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.pl-premium-head h3{margin:0!important}
.pl-premium-tag{padding:4px 12px;border-radius:99px;background:var(--pl-ink,#1D2B3A);color:var(--pl-paper,#fff);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

/* ---------- Popup premium ---------- */
.pl-pu-lock{overflow:hidden}
.pl-pu-wrap{position:fixed;inset:0;z-index:2800;display:grid;place-items:center;padding:18px;background:rgba(6,14,20,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .25s}
.pl-pu-wrap.is-in{opacity:1}
.pl-pu-card{position:relative;width:min(440px,100%);max-height:calc(100dvh - 36px);overflow:auto;border-radius:30px;background:var(--pl-card,#fff);color:var(--pl-ink,#1D2B3A);box-shadow:0 40px 90px -24px rgba(0,0,0,.55);transform:translateY(24px) scale(.96);transition:transform .35s cubic-bezier(.2,.9,.3,1.1)}
.pl-pu-wrap.is-in .pl-pu-card{transform:none}
.pl-pu-x{position:absolute;z-index:3;top:12px;right:12px;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.92);color:#1D2B3A;font-size:1.5rem;line-height:1;cursor:pointer;box-shadow:0 4px 12px -4px rgba(0,0,0,.4)}
.pl-pu-media{position:relative;aspect-ratio:16/10;background:var(--pl-accent,#2A7378);overflow:hidden}
.pl-pu-media img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.pl-pu-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.28),transparent 55%)}
.pl-pu-tag{position:absolute;z-index:2;left:14px;top:14px;padding:4px 12px;border-radius:99px;background:rgba(255,255,255,.94);color:#1D2B3A;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.pl-pu-body{display:grid;gap:10px;padding:22px 24px 24px}
.pl-pu-from{display:flex;align-items:center;gap:10px;font-weight:700;font-size:.9rem;color:var(--pl-soft,#5B6B73)}
.pl-pu-from img{width:30px;height:30px;border-radius:50%;object-fit:cover}
.pl-pu-body h2{margin:0;font-size:clamp(1.6rem,6vw,2.1rem);font-stretch:82%;line-height:1.05}
.pl-pu-body p{margin:0;color:var(--pl-soft,#5B6B73);font-size:1.05rem}
.pl-pu-actions{display:grid;gap:8px;margin-top:8px}
.pl-pu-btn{display:flex;align-items:center;justify-content:center;min-height:52px;border-radius:99px;background:var(--pl-ink,#1D2B3A);color:var(--pl-paper,#fff);font-weight:800;text-decoration:none;font-size:1.05rem}
.pl-pu-btn:hover{background:var(--pl-accent,#2A7378);color:#fff}
.pl-pu-skip{min-height:44px;border:0;background:transparent;color:var(--pl-soft,#5B6B73);font:inherit;font-weight:600;cursor:pointer}
@media (prefers-reduced-motion:reduce){.pl-pu-wrap,.pl-pu-card{transition:none}}
