/* Audience Insights — the tenant-facing aggregate card (master + location
   portals). Aggregates only; the k-anon floor + the financial/employment
   wall are enforced server-side (/v1/audience/insights). Tokens from
   /shared/brand.css. Real stylesheet on purpose: portals ship a nonce'd
   style-src, so a script-injected <style> is silently dropped. */
.aud-card { position: relative; }
.aud-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.aud-lead { font-size: 15px; line-height: 1.55; color: var(--ink); margin: 0 0 14px; max-width: 64ch; }
.aud-lead b { font-weight: 700; }
.aud-meta { font-size: 12px; color: var(--ink-faint); }
.aud-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px 22px; margin: 6px 0 12px; }
.aud-block h3 { font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--ink-faint); margin: 0 0 8px; }
.aud-bar { display: grid; grid-template-columns: minmax(64px, 40%) 1fr 40px; align-items: center; gap: 8px; font-size: 13px; margin: 5px 0; }
.aud-bar .l { color: var(--ink-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.aud-bar .t { height: 8px; background: var(--warm); border: 1px solid var(--hair); border-radius: 999px; overflow: hidden; }
.aud-bar .f { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--cyan-deep, #0E93A3), var(--cyan, #12B5C9)); border-radius: 999px; transition: width .6s cubic-bezier(.2,.8,.2,1); }
.aud-bar .p { text-align: right; font-variant-numeric: tabular-nums; color: var(--ink-faint); font-size: 12px; }
.aud-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.aud-chip { font-size: 12px; padding: 4px 10px; border-radius: 999px; background: var(--warm); border: 1px solid var(--hair); color: var(--ink-soft); }
.aud-chip b { color: var(--ink); }
.aud-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-top: 1px solid var(--hair); margin-top: 14px; padding-top: 14px; }
.aud-foot .why { font-size: 13px; color: var(--ink-soft); max-width: 52ch; line-height: 1.5; margin: 0; }
.aud-foot .why b { color: var(--ink); }
.aud-cta { padding: 11px 18px; font-size: 14px; font-weight: 700; color: var(--navy, #06122B); background: var(--cyan, #12B5C9); border: 0; border-radius: 10px; cursor: pointer; margin: 0; white-space: nowrap; }
.aud-cta:hover { filter: brightness(1.05); }
.aud-cta:disabled { opacity: .55; cursor: default; }
.aud-ask { display: none; margin-top: 12px; padding: 14px 16px; border-radius: 12px; background: var(--warm); border: 1px solid var(--hair); }
.aud-ask.open { display: block; }
.aud-ask h4 { margin: 0 0 8px; font-size: 14px; }
.aud-goals { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.aud-goal { padding: 8px 12px; border-radius: 10px; border: 1px solid var(--hair); background: var(--white); color: var(--ink); font-size: 13px; font-weight: 600; cursor: pointer; margin: 0; }
.aud-goal.on { border-color: var(--cyan, #12B5C9); box-shadow: 0 0 0 3px rgba(18,181,201,.18); }
.aud-goal small { display: block; font-weight: 500; color: var(--ink-faint); font-size: 11px; margin-top: 2px; }
.aud-ask select { padding: 8px 10px; border-radius: 8px; border: 1px solid var(--hair); background: var(--white); color: var(--ink); font-size: 13px; }
.aud-ask .row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.aud-ask .fine { font-size: 12px; color: var(--ink-faint); margin: 8px 0 0; line-height: 1.5; }
.aud-done { font-size: 14px; color: var(--ink); background: var(--green-bg, #EAF8EE); border: 1px solid var(--green-bd, #BFE6C8); border-radius: 10px; padding: 12px 14px; margin-top: 12px; line-height: 1.5; }
.aud-small { font-size: 13px; color: var(--ink-faint); padding: 4px 0; line-height: 1.5; }
.aud-lock { font-size: 12px; color: var(--ink-faint); display: inline-flex; align-items: center; gap: 6px; }

.aud-stats { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 2px 0 4px; }
.aud-stat { display: flex; flex-direction: column; min-width: 96px; }
.aud-stat b { font-size: 20px; font-weight: 700; letter-spacing: -.3px; color: var(--ink); font-variant-numeric: tabular-nums; }
.aud-stat span { font-size: 12px; color: var(--ink-faint); }

/* ── Payline noticed (weekly noticings, in-portal twin of the email) ── */
.aud-notice-card { border-left: 3px solid var(--cyan, #12B5C9); }
.aud-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 1.4px; text-transform: uppercase; color: var(--ink-faint); }
.aud-notices { margin: 8px 0 0; padding: 0; list-style: none; }
.aud-notice { display: grid; grid-template-columns: 14px 1fr; gap: 12px; padding: 12px 0; border-top: 1px solid var(--hair); align-items: start; }
.aud-notice:first-child { border-top: 0; padding-top: 6px; }
.aud-notice .dot { width: 10px; height: 10px; border-radius: 50%; margin-top: 6px; background: var(--cyan-deep, #067F8D); }
.aud-notice.lapsed_regulars .dot { background: #B26A00; } .aud-notice.vips_quiet .dot { background: #B42318; } .aud-notice.new_members .dot { background: #1E8E5A; } .aud-notice.floor .dot { background: var(--navy, #06122B); }
.aud-notice h4 { margin: 0; font-size: 15px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.aud-notice p { margin: 3px 0 0; font-size: 13px; color: var(--ink-soft); line-height: 1.5; }
.aud-notice a { display: inline-block; margin-top: 4px; font-size: 13px; font-weight: 600; color: var(--cyan-deep, #067F8D); text-decoration: none; }
.aud-notice a:hover { text-decoration: underline; }
.aud-big { font-size: 44px; line-height: 1; font-weight: 800; letter-spacing: -1.5px; color: var(--ink); margin: 10px 0 2px; font-variant-numeric: tabular-nums; }
.aud-big-l { font-size: 15px; font-weight: 600; color: var(--ink); max-width: 40ch; line-height: 1.35; }

/* ── vs network chips ── */
.aud-bench { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.aud-bench .b { font-size: 12px; padding: 4px 10px; border-radius: 999px; background: var(--warm); border: 1px solid var(--hair); color: var(--ink-soft); }
.aud-bench .b b { color: var(--ink); }
.aud-bench .up { color: #1E8E5A; font-weight: 700; } .aud-bench .down { color: #B42318; font-weight: 700; } .aud-bench .flat { color: var(--ink-faint); }

/* ── Look-alikes ring ── */
.aud-look { display: grid; grid-template-columns: 200px 1fr; gap: 18px; align-items: center; }
@media (max-width: 560px) { .aud-look { grid-template-columns: 1fr; } }
.aud-ring { position: relative; width: 200px; height: 200px; }
.aud-ring svg { width: 100%; height: 100%; display: block; }
.aud-ring .n { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.aud-ring .n b { font-size: 34px; font-weight: 800; letter-spacing: -1px; color: var(--ink); line-height: 1; font-variant-numeric: tabular-nums; }
.aud-ring .n span { font-size: 11px; color: var(--ink-faint); margin-top: 4px; }
@keyframes audPulse { 0% { transform: scale(.72); opacity: .55; } 100% { transform: scale(1.02); opacity: 0; } }
.aud-ring .pulse { position: absolute; inset: 14px; border-radius: 50%; border: 2px solid var(--cyan, #12B5C9); animation: audPulse 2.8s ease-out infinite; }
.aud-ring .pulse.two { animation-delay: 1.4s; }
.aud-look h4 { margin: 0 0 4px; font-size: 15px; font-weight: 700; color: var(--ink); }
.aud-look p { margin: 0 0 8px; font-size: 13px; color: var(--ink-soft); line-height: 1.5; }
.aud-look .zip { display: grid; grid-template-columns: 56px 1fr 40px; gap: 8px; align-items: center; font-size: 12px; margin: 4px 0; }
.aud-look .zip .t { height: 6px; background: var(--warm); border: 1px solid var(--hair); border-radius: 999px; overflow: hidden; }
.aud-look .zip .f { display: block; height: 100%; background: var(--cyan, #12B5C9); border-radius: 999px; }
.aud-look .zip .p { text-align: right; color: var(--ink-faint); font-variant-numeric: tabular-nums; }

/* ── VIP roster ── */
.aud-vips { width: 100%; border-collapse: collapse; }
.aud-vips th { text-align: left; font-size: 11px; letter-spacing: .8px; text-transform: uppercase; color: var(--ink-faint); font-weight: 700; padding: 6px 8px; border-bottom: 1px solid var(--hair); }
.aud-vips td { font-size: 14px; padding: 9px 8px; border-bottom: 1px solid var(--hair); color: var(--ink); vertical-align: middle; }
.aud-vips tr:last-child td { border-bottom: 0; }
.aud-vips .r { color: var(--ink-faint); font-variant-numeric: tabular-nums; width: 28px; }
.aud-vips .m { font-variant-numeric: tabular-nums; text-align: right; font-weight: 600; }
.aud-vips .who { font-weight: 700; }
.aud-vips .who small { display: block; font-weight: 500; font-size: 12px; color: var(--ink-faint); }
.aud-seg { font-size: 10px; padding: 2px 7px; border-radius: 999px; border: 1px solid var(--hair); text-transform: uppercase; letter-spacing: .5px; color: var(--ink-soft); }
.aud-seg.vip { color: #B26A00; border-color: rgba(178,106,0,.35); background: #FFF7E8; }
.aud-seg.lapsed { color: #B42318; border-color: rgba(180,35,24,.3); background: #FDECEB; }
.aud-seg.new { color: var(--cyan-deep, #067F8D); }
.aud-vips .quiet td { background: #FFFBF3; }
.aud-vips .quiet .who small { color: #B26A00; }

/* ── master: store ranking ── */
.aud-stores td.n { text-align: right; font-variant-numeric: tabular-nums; }
.aud-stores .name { font-weight: 700; }
