/* Scoped visitor styles. The admin preview loads this exact file. */
.ip-public-banner,.ip-public-overlay { --ip-primary:#18181b; --ip-surface:#fff; --ip-text:#18181b; --ip-muted:#52525b; --ip-button-text:#fff; --ip-radius:12px; --ip-offset:16px; font:400 14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; color:var(--ip-text); text-align:start; letter-spacing:normal; }
.ip-public-banner *,.ip-public-overlay * { box-sizing:border-box; }
.ip-public-banner { box-sizing:border-box; position:fixed; z-index:99998; inset-inline:16px; width:auto; max-width:520px; margin-inline:auto; padding:20px; display:grid; grid-template-columns:minmax(0,1fr) 32px; grid-template-areas:"copy close" "actions actions"; gap:16px 12px; background:var(--ip-surface); border:1px solid rgb(127 127 127 / 24%); border-radius:var(--ip-radius); box-shadow:0 8px 32px rgb(0 0 0 / 10%); opacity:0; transform:translateY(10px); transition:opacity .18s ease,transform .18s ease; }
.ip-public-banner.has-icon { grid-template-columns:48px minmax(0,1fr) 32px; grid-template-areas:"icon copy close" "actions actions actions"; }
.ip-public-banner--bottom { bottom:calc(var(--ip-offset) + env(safe-area-inset-bottom,0px)); }
.ip-public-banner--top { top:calc(var(--ip-offset) + env(safe-area-inset-top,0px)); transform:translateY(-10px); }
body.admin-bar .ip-public-banner--top { top:calc(48px + var(--ip-offset) + env(safe-area-inset-top,0px)); }
.ip-public-banner.is-visible { opacity:1; transform:translateY(0); }
.ip-public-banner--minimal { box-shadow:0 2px 12px rgb(0 0 0 / 6%); padding:16px; }
.ip-public-banner__icon { grid-area:icon; display:block; width:48px; height:48px; border-radius:10px; object-fit:cover; border:1px solid rgb(127 127 127 / 15%); margin:0; }
.ip-public-banner__copy { grid-area:copy; min-width:0; }
.ip-public-banner__eyebrow { display:none; }
.ip-public-banner__headline { display:block; font-size:15px; font-weight:600; line-height:1.4; color:var(--ip-text); margin:0; overflow-wrap:anywhere; }
.ip-public-banner__body { display:block; margin-top:5px; font-size:13px; line-height:1.55; color:var(--ip-muted); overflow-wrap:anywhere; }
.ip-public-banner__actions { grid-area:actions; display:flex; flex-wrap:wrap; align-items:stretch; gap:8px; min-width:0; }
.ip-public-banner button,.ip-public-overlay button { appearance:none; -webkit-appearance:none; min-width:0; margin:0; font:inherit; text-transform:none; letter-spacing:normal; cursor:pointer; box-shadow:none; white-space:normal; overflow-wrap:anywhere; text-decoration:none; }
.ip-public-banner__primary,.ip-public-dialog__primary { display:inline-flex; justify-content:center; align-items:center; gap:8px; min-height:44px; padding:10px 18px; color:var(--ip-button-text); background:var(--ip-primary); border:1px solid transparent; border-radius:min(var(--ip-radius),8px); font-weight:600!important; }
.ip-public-banner__primary { flex:1 1 120px; }
.ip-public-banner__dismiss-text { flex:1 1 100px; min-height:44px; padding:10px 14px; color:var(--ip-text); background:transparent; border:1px solid rgb(127 127 127 / 30%); border-radius:min(var(--ip-radius),8px); }
.ip-public-banner__close,.ip-public-dialog__close { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:12px; border:0; border-radius:6px; color:var(--ip-muted); background:transparent; }
.ip-public-banner__close { grid-area:close; margin-block-start:-8px!important; margin-inline-end:-8px!important; justify-self:end; }
.ip-public-banner button:hover,.ip-public-overlay button:hover { filter:brightness(.94); }
.ip-public-banner button:disabled { opacity:.6; cursor:wait; }
.ip-public-banner button:focus-visible,.ip-public-overlay button:focus-visible { outline:2px solid var(--ip-text); outline-offset:3px; }
.ip-public-banner svg,.ip-public-overlay svg { display:block; width:20px; height:20px; fill:currentColor; flex:none; }
.ip-public-modal-open { overflow:hidden!important; }
.ip-public-overlay { position:fixed; z-index:100000; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; background:rgb(0 0 0 / 35%); }
.ip-public-dialog { position:relative; width:100%; max-width:400px; max-height:calc(100vh - 40px); max-height:calc(100dvh - 40px); overflow:auto; padding:28px; background:var(--ip-surface); color:var(--ip-text); border:1px solid rgb(127 127 127 / 24%); border-radius:var(--ip-radius); box-shadow:0 12px 48px rgb(0 0 0 / 15%); }
.ip-public-dialog__close { position:absolute; inset-inline-end:8px; top:8px; }
.ip-public-dialog__illustration { display:flex; margin-bottom:20px; width:40px; height:40px; align-items:center; justify-content:center; color:var(--ip-text); border:1px solid rgb(127 127 127 / 25%); border-radius:10px; }
.ip-public-dialog h2 { margin:0 0 8px; padding:0; color:var(--ip-text); font:600 20px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing:-.3px; }
.ip-public-dialog p { margin:0 0 20px; font:inherit; color:var(--ip-muted); }
.ip-public-dialog__steps { margin:0 0 24px; padding:0; list-style:none; }
.ip-public-dialog__steps li { display:flex; align-items:start; gap:12px; padding:12px 0; border-bottom:1px solid rgb(127 127 127 / 18%); font:inherit; }
.ip-public-dialog__steps li span { display:inline-flex; flex:0 0 24px; height:24px; align-items:center; justify-content:center; border:1px solid rgb(127 127 127 / 30%); border-radius:50%; font-size:12px; font-weight:600; color:var(--ip-text); }
.ip-public-dialog__primary { width:100%; }
@media(max-width:360px) { .ip-public-banner { inset-inline:8px; padding:16px; gap:12px 8px; } .ip-public-banner.has-icon { grid-template-columns:40px minmax(0,1fr) 32px; } .ip-public-banner__icon { width:40px; height:40px; } .ip-public-dialog { padding:24px 20px; } }
@media(prefers-reduced-motion:reduce) { .ip-public-banner { transition:none; transform:none; } }
@media(forced-colors:active) { .ip-public-banner,.ip-public-dialog { border:1px solid CanvasText; } .ip-public-banner button,.ip-public-dialog button { border:1px solid ButtonText; } }

/* AppLike 0.3: bounded layout, including large offsets and long translations. */
.ip-public-banner { --ip-view-height:100vh; --ip-admin-offset:0px; --ip-safe-offset:min(var(--ip-offset),12vh); grid-template-rows:minmax(0,1fr) auto; max-height:calc(var(--ip-view-height) - var(--ip-safe-offset) - var(--ip-admin-offset) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 16px); overflow:hidden; }
@supports(height:100dvh) { .ip-public-banner { --ip-view-height:100dvh; --ip-safe-offset:min(var(--ip-offset),12dvh); } }
.ip-public-banner--bottom { bottom:calc(var(--ip-safe-offset) + env(safe-area-inset-bottom,0px)); }
.ip-public-banner--top { top:calc(var(--ip-safe-offset) + env(safe-area-inset-top,0px)); }
body.admin-bar .ip-public-banner--top { --ip-admin-offset:48px; top:calc(48px + var(--ip-safe-offset) + env(safe-area-inset-top,0px)); }
.ip-public-banner__copy { min-height:0; overflow:auto; overscroll-behavior:contain; }
.ip-public-banner__close,.ip-public-banner__icon { align-self:start; }
.ip-public-banner__actions { max-height:40vh; overflow:auto; }
.applike-install-action { display:inline-flex; flex-direction:column; gap:6px; max-width:100%; }
.applike-install-button { appearance:none; min-height:44px; padding:11px 20px; border:1px solid transparent; border-radius:8px; background:#18181b; color:#fff; font:600 15px/1.5 system-ui; cursor:pointer; overflow-wrap:anywhere; }
.applike-install-button:disabled { opacity:.55; cursor:not-allowed; }
.applike-install-button:focus-visible { outline:3px solid currentColor; outline-offset:4px; }
.applike-install-status { font:13px/1.5 system-ui; }
.applike-inspector { position:fixed; z-index:100002; inset-block-start:50px; inset-inline-start:12px; width:min(370px,calc(100vw - 24px)); max-height:60vh; overflow:auto; padding:18px; border:2px solid #18181b; border-radius:10px; background:#fff; color:#18181b; font:13px/1.5 system-ui; box-shadow:0 8px 32px #0002; }
.applike-inspector pre { white-space:pre-wrap; font:12px/1.5 system-ui; color:inherit; background:transparent; }
.applike-inspector button { min-height:44px; background:#18181b; color:white; border:0; border-radius:6px; padding:8px 14px; cursor:pointer; }

.ip-public-banner__copy:focus-visible{outline:2px solid currentColor;outline-offset:-2px;border-radius:3px}
