/* Public visitor widget. Colours come from the active CMS theme (CSS variables from lib/brand.php). */
.sv-root{position:fixed;right:1.25rem;bottom:1.25rem;z-index:40;font-family:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;color:rgb(var(--c-primary-900))}
.sv-root[hidden],.sv-panel[hidden],.sv-tip[hidden]{display:none}
.sv-btn{display:flex;align-items:center;gap:.5rem;height:3rem;padding:0 1rem;border-radius:1rem;border:1px solid rgb(var(--c-primary-200));background:#fff;color:rgb(var(--c-primary-900));font-weight:800;font-size:.85rem;box-shadow:0 10px 25px -8px rgb(var(--c-primary-900)/.35);cursor:pointer;transition:transform .15s}
.sv-btn:hover{transform:translateY(-2px)}
.sv-btn:focus-visible,.sv-root button:focus-visible,.sv-root a:focus-visible,.sv-bar:focus-visible{outline:3px solid rgb(var(--c-secondary-500));outline-offset:2px}
.sv-count{font-size:1rem;font-variant-numeric:tabular-nums}
.sv-btn-l{font-weight:600;color:rgb(var(--c-neutral-600))}
.sv-dot{position:relative;width:.6rem;height:.6rem;border-radius:999px;background:rgb(var(--c-secondary-500));flex:none}
.sv-dot::after{content:"";position:absolute;inset:-4px;border-radius:999px;border:2px solid rgb(var(--c-secondary-500));animation:sv-pulse 1.8s ease-out infinite}
@keyframes sv-pulse{0%{opacity:.9;transform:scale(.6)}100%{opacity:0;transform:scale(1.6)}}
@media (prefers-reduced-motion:reduce){.sv-dot::after{animation:none}.sv-btn{transition:none}}
.sv-panel{position:absolute;right:0;bottom:3.75rem;width:22rem;max-width:calc(100vw - 2.5rem);max-height:min(34rem,calc(100vh - 6rem));display:flex;flex-direction:column;background:#fff;border:1px solid rgb(var(--c-primary-200));border-radius:1.25rem;box-shadow:0 25px 50px -12px rgb(var(--c-primary-900)/.4);overflow:hidden}
.sv-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem;background:rgb(var(--c-primary-900));color:#fff}
.sv-title{margin:0;font-weight:800;font-size:.95rem}
.sv-x{width:2rem;height:2rem;border-radius:.6rem;border:0;background:rgb(255 255 255/.12);color:#fff;cursor:pointer}
.sv-tabs{display:flex;gap:.25rem;padding:.5rem;border-bottom:1px solid rgb(var(--c-neutral-200));background:rgb(var(--c-neutral-50))}
.sv-tabs [role=tab]{flex:1;padding:.45rem .25rem;border:0;border-radius:.6rem;background:transparent;color:rgb(var(--c-neutral-600));font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}
.sv-tabs [role=tab][aria-selected=true]{background:#fff;color:rgb(var(--c-primary-900));box-shadow:0 1px 3px rgb(0 0 0/.12)}
.sv-body{padding:.9rem 1rem;overflow-y:auto;font-size:.82rem;min-height:9rem}
.sv-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem;padding:.5rem 1rem;border-top:1px solid rgb(var(--c-neutral-200));font-size:.68rem;color:rgb(var(--c-neutral-600))}
.sv-foot a{color:inherit;text-decoration:underline}
.sv-live-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.6rem}
.sv-empty{margin:1.5rem 0;text-align:center;color:rgb(var(--c-neutral-600))}
.sv-cap{margin:0 0 .5rem;font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:rgb(var(--c-neutral-600))}
.sv-list,.sv-rows{list-style:none;margin:0;padding:0}
.sv-list li{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid rgb(var(--c-neutral-200))}
.sv-list li:last-child,.sv-rows li:last-child{border-bottom:0}
.sv-flag{font-size:1.25rem;width:1.6rem;text-align:center;color:rgb(var(--c-primary-900))}
.sv-li-main{flex:1;min-width:0}
.sv-li-t{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-li-s{font-size:.72rem;color:rgb(var(--c-neutral-600));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sv-li-r{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem}
.sv-ontime{font-weight:800;font-variant-numeric:tabular-nums}
.sv-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.9rem}
.sv-kpi{padding:.6rem .7rem;border-radius:.8rem;background:rgb(var(--c-primary-50));border:1px solid rgb(var(--c-primary-100))}
.sv-kpi-v{font-size:1.15rem;font-weight:800;font-variant-numeric:tabular-nums}
.sv-kpi-l{font-size:.72rem;font-weight:700}
.sv-kpi-s{font-size:.66rem;color:rgb(var(--c-neutral-600))}
.sv-chart-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.4rem;font-weight:700;font-size:.72rem;color:rgb(var(--c-neutral-600));text-transform:uppercase;letter-spacing:.04em}
.sv-seg{display:flex;border:1px solid rgb(var(--c-neutral-300));border-radius:.5rem;overflow:hidden}
.sv-seg button{border:0;background:#fff;padding:.2rem .5rem;font:inherit;font-size:.68rem;text-transform:none;letter-spacing:0;color:rgb(var(--c-neutral-600));cursor:pointer}
.sv-seg button[aria-pressed=true]{background:rgb(var(--c-primary-900));color:#fff}
.sv-chart{position:relative;padding-top:1.5rem}
.sv-chart svg{width:100%;height:auto;display:block}
.sv-chart text{font-size:8px;fill:rgb(var(--c-neutral-600))}
.sv-bar-fill{fill:rgb(var(--c-primary-900));transition:fill .15s}
.sv-bar:hover .sv-bar-fill,.sv-bar:focus .sv-bar-fill{fill:rgb(var(--c-secondary-500))}
.sv-bar{outline:none;cursor:default}
.sv-tip{position:absolute;top:0;width:120px;text-align:center;padding:.2rem .3rem;border-radius:.4rem;background:rgb(var(--c-primary-900));color:#fff;font-size:.68rem;font-weight:700;pointer-events:none}
.sv-rows li{padding:.5rem 0;border-bottom:1px solid rgb(var(--c-neutral-200))}
.sv-row-t{display:flex;justify-content:space-between;gap:.5rem;font-weight:700}
.sv-row-t a{color:rgb(var(--c-primary-900));text-decoration:underline;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sv-row-t span:last-child{flex:none;font-variant-numeric:tabular-nums}
.sv-meter{height:.4rem;margin:.3rem 0 .2rem;border-radius:999px;background:rgb(var(--c-primary-100));overflow:hidden}
.sv-meter span{display:block;height:100%;background:rgb(var(--c-secondary-500));border-radius:999px}
@media (max-width:640px){.sv-root{right:.9rem;bottom:.9rem}.sv-btn{height:2.75rem;padding:0 .8rem}.sv-btn-l{display:none}
 .sv-panel{position:fixed;left:.5rem;right:.5rem;bottom:4.25rem;width:auto;max-width:none}}
