.loyalty-card,.internal-notice{display:grid;gap:.8rem;min-width:0;margin-block:1rem;overflow-wrap:anywhere}
.loyalty-card h2,.internal-notice h2,.internal-notice p{margin:0}
.loyalty-card progress{width:100%;height:.6rem;accent-color:var(--accent)}
.internal-notice{border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface))}
.internal-notice .btn{justify-self:start;box-shadow:0 5px 16px #0002;white-space:normal;text-align:left;min-height:44px}
.native-stats{display:flex;flex-wrap:wrap;gap:.6rem}.native-stats span{padding:.5rem .7rem;border-radius:12px;background:var(--surface)}
.native-notice-list{display:grid;gap:1rem}.native-notice-list .card{min-width:0;overflow-wrap:anywhere}
.native-form-tags{display:flex;flex-wrap:wrap;gap:.65rem}.native-form-tags label{display:flex;align-items:center;gap:.4rem}
.native-form-tags input{width:auto}.loyalty-history{max-height:40vh;overflow:auto}
@media(prefers-reduced-motion:no-preference){.internal-notice.is-new{animation:notice-arrive .35s ease-out}@keyframes notice-arrive{from{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:none}}}

.modal-bg.native-benefit-modal,.modal-bg:has(.admin-renewal-flow){z-index:80}
.native-benefit-modal .modal{max-height:calc(100dvh - 24px);overflow-y:auto}
/* A single compact, fully tappable notice; the close button is independent. */
.shell.client-shell .client-internal-notice{display:flex;align-items:center;gap:0;padding:3px;width:270px;max-width:calc(100vw - 24px);border-radius:14px;background:var(--surface);border-color:color-mix(in srgb,var(--accent) 30%,var(--border));box-shadow:0 6px 18px #082a2524;transition:transform .25s ease,opacity .2s ease;isolation:isolate}
.client-internal-notice .notice-open{display:flex;align-items:center;gap:8px;min-width:0;flex:1;min-height:54px;padding:7px;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;border-radius:10px}
.client-internal-notice .notice-emblem{display:grid;place-items:center;width:24px;height:24px;flex:none;border-radius:8px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent);font-size:17px}
.client-internal-notice .notice-copy{min-width:0;display:grid;gap:3px}.client-internal-notice .notice-title{font-size:12px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-internal-notice .notice-action{font-size:11px;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.client-internal-notice .client-promo-close{align-self:center;flex:none;width:36px;min-height:44px;padding:0;font-size:20px}.client-internal-notice button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.client-internal-notice button:disabled{opacity:.55}.client-internal-notice.is-leaving{pointer-events:none}
@media(prefers-reduced-motion:reduce){.shell.client-shell .client-internal-notice{transition:opacity .01ms;transform:none}}

/* Notices sit in the feed flow immediately after Highlights. */
.feed-notice-slot:empty{display:none}
.feed-notice-slot{display:grid;justify-items:start;margin:.6rem 0}
.shell.client-shell .feed-notice-slot .client-internal-notice{position:relative;inset:auto;z-index:auto;box-sizing:border-box;max-width:100%;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));opacity:0;transform:translateY(4px);box-shadow:0 3px 10px #082a2514}
.feed-notice-slot .client-internal-notice.is-visible{opacity:1!important;transform:none!important}
.feed-notice-slot .client-internal-notice.is-leaving{opacity:0!important;transform:translateY(4px)!important}
.feed-notice-slot .client-promo-close{border:0;background:transparent;color:var(--muted);cursor:pointer}
@media(prefers-reduced-motion:reduce){.shell.client-shell .feed-notice-slot .client-internal-notice{transform:none!important}}
