/* AI People Counting — demo widget + supporting bits, living inside the v2
   editorial layout (light "paper" by default, dark-mode aware). The image
   stage itself stays dark: it's a photo viewer. */

/* Hero watercolor art */
.pcl-hero-art{margin:0}
.pcl-hero-art img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 24px 60px -22px rgba(0,0,0,.4),0 3px 12px rgba(0,0,0,.1)}

/* Demo card */
.pcl-demo{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:1.25rem;padding:1.25rem;box-shadow:0 18px 50px -24px rgba(0,0,0,.35);max-width:1000px;margin:0 auto}
[data-theme="dark"] .pcl-demo{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);box-shadow:none}
.pcl-stage{position:relative;border-radius:.9rem;overflow:hidden;background:#0b0b12;aspect-ratio:16/10}
.pcl-stage img{width:100%;height:100%;object-fit:contain;display:block}
.pcl-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.pcl-scene-info{position:absolute;left:1rem;top:1rem;background:rgba(5,5,12,.72);border-radius:.7rem;padding:.6rem 1rem;max-width:60%}
.pcl-scene-info h3{margin:0;font-size:1.05rem;color:#fff}
.pcl-scene-info p{margin:.15rem 0 0;font-size:.85rem;color:rgba(255,255,255,.65)}
.pcl-counts{position:absolute;right:1rem;bottom:1rem;text-align:right;display:grid;gap:.4rem;justify-items:end}
.pcl-badge{background:rgba(5,5,12,.82);border:1px solid rgba(43,168,255,.5);color:#7cc7ff;border-radius:.6rem;padding:.45rem .85rem;font-weight:700;font-size:.95rem}
.pcl-badge-live{border-color:rgba(74,222,128,.6);color:#4ade80}   /* on your device */
.pcl-badge-cloud{border-color:rgba(43,168,255,.6);color:#7cc7ff}  /* our cloud AI */
.pcl-badge:empty{display:none}
.pcl-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(5,5,12,.6);border:1px solid rgba(255,255,255,.2);color:#fff;width:2.4rem;height:2.4rem;border-radius:50%;cursor:pointer;font-size:1rem}
.pcl-nav:hover{background:rgba(43,168,255,.4)}
.pcl-nav.prev{left:.75rem}.pcl-nav.next{right:.75rem}
.pcl-demo-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;flex-wrap:wrap}
.pcl-dots{display:flex;gap:.4rem;flex-wrap:wrap}
.pcl-dots button{width:.65rem;height:.65rem;border-radius:50%;border:none;background:rgba(0,0,0,.18);cursor:pointer;padding:0}
[data-theme="dark"] .pcl-dots button{background:rgba(255,255,255,.25)}
.pcl-dots button.is-active{background:#2ba8ff}
.pcl-live-cta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
/* Explicit display below beats the UA [hidden]{display:none} rule — restore it,
   or the spinner + retry button stay stuck visible after the detector loads. */
.pcl-btn[hidden],.pcl-loading[hidden]{display:none}
.pcl-btn{border:none;border-radius:.7rem;padding:.7rem 1.4rem;font-size:.95rem;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block;background:#2ba8ff;color:#04212f}
.pcl-btn:hover{filter:brightness(1.08)}
.pcl-btn-ghost{background:transparent;color:var(--text-primary,#233042);border:1.5px solid rgba(43,168,255,.5)}
.pcl-btn-ghost[aria-pressed="false"]{border-color:rgba(0,0,0,.18);opacity:.85}
[data-theme="dark"] .pcl-btn-ghost{color:#e2e8f0;border-color:rgba(43,168,255,.5)}
.pcl-loading{display:inline-flex;gap:.5rem;align-items:center;color:#0284c7;font-size:.9rem}
.pcl-loading .spin{width:1rem;height:1rem;border:2px solid rgba(43,168,255,.3);border-top-color:#2ba8ff;border-radius:50%;animation:pclspin .8s linear infinite;display:inline-block}
@keyframes pclspin{to{transform:rotate(360deg)}}
.pcl-demo-note{color:var(--text-secondary,#5b6472);font-size:.85rem;line-height:1.6;margin:.85rem 0 0}
.pcl-demo-note a{color:#0284c7;font-weight:600}
[data-theme="dark"] .pcl-demo-note{color:rgba(255,255,255,.55)}

/* Two lanes (on-device vs cloud API) */
.pcl-lanes{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;max-width:1000px;margin:0 auto}
.pcl-lane{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:1.1rem;overflow:hidden;box-shadow:0 14px 40px -24px rgba(0,0,0,.35)}
[data-theme="dark"] .pcl-lane{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);box-shadow:none}
.pcl-lane figure{margin:0}
.pcl-lane figure img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.pcl-lane h3{margin:.4rem 1.35rem;font-size:1.35rem}
.pcl-lane p{margin:.35rem 1.35rem 1.5rem;color:var(--text-secondary,#5b6472);line-height:1.65;font-size:.98rem}
.pcl-lane p a{color:#0284c7;font-weight:600}
[data-theme="dark"] .pcl-lane p{color:rgba(255,255,255,.72)}
.pcl-lane-tag{display:inline-flex;align-items:center;gap:.4rem;margin:1.15rem 1.35rem 0;font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:.28rem .7rem;border-radius:999px}
.pcl-lane-tag--green{background:rgba(34,197,94,.13);color:#15803d;border:1px solid rgba(34,197,94,.4)}
.pcl-lane-tag--blue{background:rgba(43,168,255,.12);color:#0369a1;border:1px solid rgba(43,168,255,.4)}
[data-theme="dark"] .pcl-lane-tag--green{color:#4ade80}
[data-theme="dark"] .pcl-lane-tag--blue{color:#7cc7ff}

.pcl-credits{color:var(--text-secondary,#8a919c);font-size:.78rem;line-height:1.7;max-width:900px;margin:0 auto;text-align:center}
.pcl-credits a{color:var(--text-secondary,#8a919c);text-decoration:underline}

@media (max-width:640px){.pcl-scene-info{max-width:75%;padding:.45rem .7rem}.pcl-scene-info h3{font-size:.9rem}.pcl-badge{font-size:.85rem}}
