/* Offer Suite Pro - front end */
.osp-bar,.osp-modal,.osp-tab,.osp-toast{font-family:inherit;box-sizing:border-box}
.osp-bar *,.osp-modal *,.osp-toast *{box-sizing:border-box}

/* Top bar */
.osp-bar{position:relative;width:100%;z-index:99990;padding:9px 44px 9px 16px;font-size:14px;line-height:1.4;text-align:center}
.osp-bar.osp-sticky{position:sticky;top:0}
body.admin-bar .osp-bar.osp-sticky{top:32px}
@media (max-width:782px){body.admin-bar .osp-bar.osp-sticky{top:46px}}
.osp-bar-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 14px}
.osp-bar-msg{min-height:20px}
.osp-bar-text{display:inline-block;font-weight:600;transition:opacity .28s,transform .28s}
.osp-bar-text.osp-out{opacity:0;transform:translateY(-6px)}
.osp-timer{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.02em;padding:2px 10px;border-radius:999px;background:rgba(255,255,255,.14)}
.osp-chip{font:inherit;font-weight:700;background:transparent;border:1.5px dashed;border-radius:6px;padding:2px 10px;cursor:pointer;line-height:1.5}
.osp-chip:hover{background:rgba(255,255,255,.12)}
.osp-bar-btn{font-weight:700;text-decoration:none;border-radius:6px;padding:4px 14px;line-height:1.5}
.osp-bar-btn:hover{opacity:.88}
.osp-bar-x{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;font-size:22px;line-height:1;cursor:pointer;padding:6px 10px;opacity:.75}
.osp-bar-x:hover{opacity:1}

/* Modal shell */
.osp-overlay{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(15,23,42,.62);opacity:0;transition:opacity .22s}
.osp-overlay.osp-in{opacity:1}
.osp-modal{--osp-accent:#7c3aed;position:relative;width:100%;max-width:440px;max-height:calc(100vh - 32px);overflow:auto;background:#fff;color:#1f2937;border-radius:16px;box-shadow:0 24px 60px rgba(0,0,0,.35);transform:translateY(14px) scale(.98);transition:transform .22s}
.osp-in .osp-modal{transform:none}
.osp-modal.osp-spin{max-width:820px}
.osp-body{padding:34px 30px 26px}
.osp-x{position:absolute;right:10px;top:8px;z-index:3;width:36px;height:36px;border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:#6b7280;border-radius:50%}
.osp-x:hover{background:#f3f4f6;color:#111827}
.osp-title{margin:0 0 8px;font-size:26px;line-height:1.2;font-weight:800;color:#111827}
.osp-text{margin:0 0 18px;font-size:15px;line-height:1.55;color:#4b5563}
.osp-form{display:flex;flex-direction:column;gap:10px}
.osp-input{width:100%;padding:13px 14px;font:inherit;font-size:15px;color:#111827;background:#fff;border:1.5px solid #d1d5db;border-radius:10px;outline:0}
.osp-input:focus{border-color:var(--osp-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--osp-accent) 22%,transparent)}
.osp-btn{width:100%;padding:14px 18px;font:inherit;font-size:16px;font-weight:700;color:#fff;background:var(--osp-accent);border:0;border-radius:10px;cursor:pointer;transition:filter .15s,transform .15s}
.osp-btn:hover:not(:disabled){filter:brightness(1.08)}
.osp-btn:active:not(:disabled){transform:scale(.99)}
.osp-btn:disabled{opacity:.65;cursor:wait}
.osp-btn:focus-visible,.osp-input:focus-visible,.osp-x:focus-visible,.osp-tab:focus-visible,.osp-link:focus-visible{outline:2px solid var(--osp-accent);outline-offset:2px}
.osp-link{display:block;margin:12px auto 0;background:none;border:0;color:#6b7280;font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}
.osp-err{min-height:0;margin:0;font-size:13px;color:#b91c1c}
.osp-err:empty{display:none}
.osp-codebox{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 16px;padding:10px 10px 10px 16px;border:2px dashed var(--osp-accent);border-radius:10px;background:color-mix(in srgb,var(--osp-accent) 8%,#fff)}
.osp-code{font-size:22px;font-weight:800;letter-spacing:.08em;color:#111827;word-break:break-all}
.osp-copy{font:inherit;font-weight:700;font-size:13px;padding:8px 14px;border:0;border-radius:8px;background:var(--osp-accent);color:#fff;cursor:pointer}

/* Wheel */
.osp-spin-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:center}
.osp-wheel-stage{position:relative;width:100%;max-width:380px;aspect-ratio:1;margin:0 auto}
.osp-wheel{width:100%;height:100%;display:block;border-radius:50%;box-shadow:0 10px 28px rgba(0,0,0,.28);will-change:transform}
.osp-pointer{position:absolute;left:50%;top:-6px;width:0;height:0;transform:translateX(-50%);border-left:15px solid transparent;border-right:15px solid transparent;border-top:28px solid #111827;filter:drop-shadow(0 2px 2px rgba(0,0,0,.35));z-index:2}
.osp-hub{position:absolute;left:50%;top:50%;width:54px;height:54px;transform:translate(-50%,-50%);border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.55),0 3px 10px rgba(0,0,0,.3);z-index:1}
.osp-side .osp-title{font-size:28px}

/* Floating tab */
.osp-tab{--osp-accent:#7c3aed;position:fixed;left:0;bottom:90px;z-index:99980;padding:11px 16px 11px 14px;font:inherit;font-size:14px;font-weight:700;color:#fff;background:var(--osp-accent);border:0;border-radius:0 12px 12px 0;box-shadow:0 6px 18px rgba(0,0,0,.28);cursor:pointer}
.osp-tab:hover{filter:brightness(1.1)}

/* Social proof toast */
.osp-toast{position:fixed;bottom:20px;z-index:99970;max-width:320px;padding:12px 38px 12px 14px;background:#fff;color:#111827;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.22);border:1px solid #e5e7eb;opacity:0;transform:translateY(16px);transition:opacity .3s,transform .3s}
.osp-toast.osp-left{left:20px}
.osp-toast.osp-right{right:20px}
.osp-toast.osp-in{opacity:1;transform:none}
.osp-toast-text{font-size:14px;font-weight:600;line-height:1.35}
.osp-toast-time{margin-top:3px;font-size:12px;color:#6b7280}
.osp-toast-x{position:absolute;right:6px;top:4px;border:0;background:none;font-size:18px;color:#9ca3af;cursor:pointer;padding:4px 6px}

@media (max-width:700px){
	.osp-modal.osp-spin{max-width:440px}
	.osp-spin-layout{grid-template-columns:1fr;gap:18px}
	.osp-wheel-stage{max-width:300px}
	.osp-body{padding:28px 20px 22px}
	.osp-title,.osp-side .osp-title{font-size:23px}
	.osp-tab{bottom:70px;padding:9px 12px}
	.osp-toast{left:12px!important;right:12px!important;max-width:none;bottom:12px}
}
@media (prefers-reduced-motion:reduce){
	.osp-overlay,.osp-modal,.osp-toast,.osp-bar-text{transition:none}
}
