/* Bounded, non-modal announcement. Shared by the public card and admin preview. */
.knt-banner{box-sizing:border-box;--color-base-100:var(--brand-surface);--color-base-content:var(--brand-ink);--color-primary:var(--brand-primary);--color-primary-content:var(--brand-on-primary);--radius-field:12px;--size-field:4px;--border:1px;position:fixed;z-index:80;inset:auto 24px calc(24px + env(safe-area-inset-bottom)) auto;width:400px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;background:var(--brand-surface);color:var(--brand-ink);border:1px solid var(--brand-border);border-radius:24px;padding:24px;font:400 16px/1.5 Arial,Helvetica,sans-serif;box-shadow:0 12px 40px color-mix(in srgb,var(--brand-ink) 12%,transparent);animation:knt-banner-enter 180ms ease-out both;text-align:start;isolation:isolate}
.knt-banner *{box-sizing:border-box}.knt-banner .knt-banner-brand{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;padding-inline-end:40px;margin-bottom:24px}.knt-banner-brand img{display:block;flex:none;border-radius:0;object-fit:contain}.knt-banner .kt-btn{min-height:44px;height:auto;max-width:100%;font:600 14px/1.4 Arial,Helvetica,sans-serif;border-radius:12px;box-shadow:none;text-decoration:none;cursor:pointer;transition:background 150ms ease-out;white-space:normal;text-align:center}.knt-banner .kt-btn:focus-visible,.knt-banner code:focus-visible{outline:3px solid var(--brand-focus);outline-offset:3px}.knt-banner .knt-banner-close{position:absolute;inset:16px 16px auto auto;display:grid;place-items:center;width:44px;padding:0;background:transparent;color:var(--brand-muted);border:0}.knt-banner .knt-banner-close:hover,.knt-banner .knt-banner-copy:hover{background:var(--brand-section);color:var(--brand-ink)}.knt-banner .knt-banner-eyebrow{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--brand-link);line-height:1.4;overflow-wrap:anywhere}.knt-banner .knt-banner-title{margin:0 0 12px;font-size:24px;font-weight:700;line-height:1.25;letter-spacing:-.02em;color:var(--brand-ink);overflow-wrap:anywhere}.knt-banner .knt-banner-body{margin:0 0 24px;font-size:16px;line-height:1.5;font-weight:400;white-space:pre-line;color:var(--brand-muted);overflow-wrap:anywhere}.knt-banner .knt-banner-code{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 16px;border:1px dashed var(--brand-primary-border);background:var(--brand-primary-soft);border-radius:12px;margin-bottom:16px}.knt-banner-code code{font:600 18px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--brand-ink);min-width:0;overflow-wrap:anywhere;user-select:all}.knt-banner .knt-banner-copy{display:grid;place-items:center;width:44px;flex:none;padding:0;border:0;background:transparent;color:var(--brand-link)}.knt-banner.kontentika-ui .knt-banner-action{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:12px 16px;border:1px solid var(--brand-primary);background:var(--brand-primary);color:var(--brand-on-primary)}.knt-banner.kontentika-ui .knt-banner-action:hover{background:var(--brand-primary-hover);border-color:var(--brand-primary-hover);color:var(--brand-on-primary)}.knt-banner svg{flex:none;vertical-align:middle}.knt-banner .knt-banner-status{margin:12px 0 0;font-size:13px;color:var(--brand-muted);line-height:1.4}.knt-banner-status:empty{display:none}.knt-banner.knt-banner-preview{position:relative;inset:auto;width:100%;max-width:400px;max-height:none;box-shadow:none;animation:none;z-index:auto}
@keyframes knt-banner-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:767px){.knt-banner{inset:auto 12px calc(12px + env(safe-area-inset-bottom)) 12px;width:auto;max-width:none;max-height:calc(100dvh - 32px);padding:20px;border-radius:20px}.knt-banner .knt-banner-brand{margin-bottom:16px}.knt-banner .knt-banner-title{font-size:22px}.knt-banner .knt-banner-body{margin-bottom:16px}.knt-banner .knt-banner-close{inset:8px 8px auto auto}.knt-banner.knt-banner-preview{inset:auto;width:100%}}
@media(prefers-reduced-motion:reduce){.knt-banner{animation:none}.knt-banner .kt-btn{transition:none}}
