.an-wrap{max-width:960px;width:100%;box-sizing:border-box;padding:1.5rem 1rem 5rem;overflow-x:hidden}
.an-head{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;margin-bottom:1rem}
.an-range{display:flex;gap:.35rem;flex-wrap:wrap}
.an-custom{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-bottom:1rem}
.an-custom input{width:auto}
.an-insights{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.35rem;margin-bottom:1rem;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.an-insight{flex:0 0 min(260px,80%);background:var(--ok-bg);color:var(--ok-text);border:1px solid var(--ok-border);border-radius:var(--radius);padding:.7rem .85rem;font-size:.92rem;font-weight:600}
.an-insight.warn{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border)}
.an-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:.6rem;margin-bottom:1rem}
.an-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:.75rem .85rem}
.an-kpi small{display:block;color:var(--muted);font-size:.78rem}
.an-kpi strong{display:block;font-size:1.2rem;margin-top:.15rem;word-break:break-word}
.an-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:.8rem}
.an-card h3{margin:0 0 .6rem;font-size:1rem}
.an-bars{display:flex;align-items:flex-end;gap:2px;height:130px}
.an-bars i{flex:1;background:var(--primary);border-radius:2px 2px 0 0;min-height:1px;opacity:.85}
.an-axis{display:flex;justify-content:space-between;color:var(--muted);font-size:.72rem;margin-top:.25rem}
.an-row{display:grid;grid-template-columns:minmax(70px,32%) 1fr auto;gap:.5rem;align-items:center;font-size:.86rem;margin:.35rem 0}
.an-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-track{background:var(--soft-bg);border-radius:99px;height:9px;overflow:hidden}
.an-track b{display:block;height:100%;background:var(--primary);border-radius:99px}
.an-track b.neg{background:var(--danger)}
.an-heat{display:grid;grid-template-columns:2rem repeat(24,1fr);gap:2px;font-size:.62rem;color:var(--muted)}
.an-heat div{aspect-ratio:1;border-radius:2px;background:var(--primary)}
.an-heat span{display:flex;align-items:center}
.an-na{color:var(--muted);font-size:.88rem;margin:0}
.an-note{color:var(--muted);font-size:.8rem;margin:.5rem 0 0}

/* Stability on mobile: no sideways drift, no jumping while loading */
.an-wrap,.an-wrap *{min-width:0}
#an-body{min-height:80vh;overflow-anchor:none}
.an-card{overflow:hidden}
.an-kpi,.an-card,.an-insight{box-sizing:border-box}
.an-row>span{min-width:0}
.an-bars,.an-heat{touch-action:pan-y}
@media (max-width:480px){.an-wrap{padding:1rem .75rem 5rem}.an-heat{font-size:.55rem}.an-heat span{overflow:hidden}}

.an-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.6rem}
.an-card-head h3{margin:0}
.an-card-head .btn{flex:0 0 auto;white-space:nowrap}

/* Popup (Guest visits) */
.pop-backdrop{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.5);display:flex;align-items:flex-end;justify-content:center}
.pop-sheet{background:var(--surface);color:var(--text);width:100%;max-width:520px;max-height:85vh;overflow-y:auto;box-sizing:border-box;border-radius:18px 18px 0 0;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom,0px));box-shadow:0 -8px 32px rgba(0,0,0,.28)}
@media (min-width:640px){.pop-backdrop{align-items:center;padding:1rem}.pop-sheet{border-radius:18px;max-height:80vh}}
.pop-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}
.pop-head h2{margin:0;font-size:1.15rem}
.pop-x{border:0;background:none;color:var(--muted);font-size:1.6rem;line-height:1;cursor:pointer;padding:0 .35rem}
.pop-x:hover,.pop-x:focus-visible{color:var(--text);outline:none}
.pop-body{margin:.9rem 0 .6rem;min-height:4rem}
.pop-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid var(--border);padding-top:.7rem}

/* Prev-period delta on KPI tiles */
.an-delta{display:inline-block;margin-left:.35rem;font-size:.72rem;font-weight:600}
.an-delta.up{color:#16a34a}
.an-delta.down{color:#dc2626}
.an-delta.flat{color:var(--muted)}
.an-cur-group{margin-bottom:.75rem}
.an-toolbar{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:.5rem}
